Tado Local and python plugin

For heating/cooling related questions in Domoticz

Moderator: leecollings

rhuijben
Posts: 2
Joined: Wednesday 05 November 2025 8:14
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Tado Local and python plugin

Post by rhuijben »

......
I'm working on a more generic solution via a local mini REST api instead of relying on home assistant and gateways between them. Very early stage but already used in my Domoticz. See https://github.com/ampscm/TadoLocal

The repository contains the service and a Domoticz plugin using the service.
jannl
Posts: 823
Joined: Thursday 02 October 2014 6:36
Target OS: Raspberry Pi / ODroid
Domoticz version: 2025.5.x
Location: Geleen
Contact:

Re: Tado Thermostat plugin

Post by jannl »

Sounds promising, might give it a try soon
HvdW
Posts: 663
Joined: Sunday 01 November 2015 22:45
Target OS: Raspberry Pi / ODroid
Domoticz version: 2023.2
Location: Twente
Contact:

Re: Tado Thermostat plugin

Post by HvdW »

I tried the install, but failed
tado-local --bridge-ip 192.168.2.2 --pin 123-45-678 --verbose
2025-11-05 15:33:22 INFO Verbose logging enabled
2025-11-05 15:33:22 DEBUG Using selector: EpollSelector
2025-11-05 15:33:22 ERROR ERROR: Failed to start Tado Local: no such column: d.is_zone_leader
2025-11-05 15:33:22 ERROR ERROR: no such column: d.is_zone_leader
Bugs bug me.
jannl
Posts: 823
Joined: Thursday 02 October 2014 6:36
Target OS: Raspberry Pi / ODroid
Domoticz version: 2025.5.x
Location: Geleen
Contact:

Re: Tado Thermostat plugin

Post by jannl »

Here I get an error in Trixy on: pip install -e

Code: Select all

error: externally-managed-environment
Python version is 3.13.x
User avatar
waltervl
Posts: 6677
Joined: Monday 28 January 2019 18:48
Target OS: Linux
Domoticz version: 2025.1
Location: NL
Contact:

Re: Tado Thermostat plugin

Post by waltervl »

To use plugins in newer OS that uses Python virtual environments look at the instructions in https://zigbeefordomoticz.github.io/wik ... alEnv.html that a plugin author created. It is also mentioned in the wiki https://wiki.domoticz.com/Using_Python_plugins
So important to read both when it is the first time you use Python Plugins in Domoticz.
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
jannl
Posts: 823
Joined: Thursday 02 October 2014 6:36
Target OS: Raspberry Pi / ODroid
Domoticz version: 2025.5.x
Location: Geleen
Contact:

Re: Tado Thermostat plugin

Post by jannl »

So I should use it inside the docker.
User avatar
waltervl
Posts: 6677
Joined: Monday 28 January 2019 18:48
Target OS: Linux
Domoticz version: 2025.1
Location: NL
Contact:

Re: Tado Thermostat plugin

Post by waltervl »

jannl wrote: Wednesday 05 November 2025 20:36 So I should use it inside the docker.
If you run Domoticz in a docker you should install a plugin always through the docker container. As described in the wiki https://wiki.domoticz.com/Docker#Python_Plugins In the container already a venv is enabled.
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
jannl
Posts: 823
Joined: Thursday 02 October 2014 6:36
Target OS: Raspberry Pi / ODroid
Domoticz version: 2025.5.x
Location: Geleen
Contact:

Re: Tado Thermostat plugin

Post by jannl »

The error message is not the plugin but the rest api. I will update my customstart.sh. Which by the way runs in 2 minutes on a pi5 instead of the almost 10 on a pi 3b.

And installing...a new plugin is not more rhan copying the plugin files to the correct directory and restarting domoticz.
User avatar
waltervl
Posts: 6677
Joined: Monday 28 January 2019 18:48
Target OS: Linux
Domoticz version: 2025.1
Location: NL
Contact:

Re: Tado Thermostat plugin

Post by waltervl »

Yes, I meant installing the extra python modules that need to be installed fo a python plugin. The error you mentioned came from installing a module (for a python plugin...) But all is described on the wiki....
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
jannl
Posts: 823
Joined: Thursday 02 October 2014 6:36
Target OS: Raspberry Pi / ODroid
Domoticz version: 2025.5.x
Location: Geleen
Contact:

Re: Tado Thermostat plugin

Post by jannl »

Got a bit further, but ran into an error already logged as an issue on github. We'll see.
sloeber70
Posts: 45
Joined: Wednesday 08 July 2020 10:59
Target OS: Linux
Domoticz version: latest
Location: Bruges
Contact:

Re: Tado Thermostat plugin

Post by sloeber70 »

Hi,

Installed the TadoLocal environment on my domoticz test system.

Local UI works fine on localhost:4402... and is getting changes when I alter a temperature set in Tado App... but setting a temperature setpoint from TadoLOcal does not work. Also I get errormsg : no leader device for zone...

Getting plugin in domoticz too... working... all devices are installed... But when trying to set a higher temperature for a zone: error

2025-11-10 14:07:03.101 Error: TadoLocal: Failed to connect to Zones Fetch: Connection refused (Status: 111)
2025-11-10 14:07:33.254 Error: TadoLocal: CConnection_disconnect, disconnection request from 'TadoLocal' ignored. Transport does not exist.
2025-11-10 14:07:33.364 Error: TadoLocal: CConnection_disconnect, disconnection request from 'TadoLocal' ignored. Transport does not exist.

What did I miss?
Python requirements for Domoticz plugins are OK....

tado-local output:
2025-11-10 14:11:29 INFO [E] Bureel | TargetTemperature: 20.5 -> 24
2025-11-10 14:11:35 INFO 10.10.3.114:49641 - "GET / HTTP/1.1" 200
2025-11-10 14:11:35 INFO 10.10.3.114:49641 - "GET /zones HTTP/1.1" 200
2025-11-10 14:11:35 INFO 10.10.3.114:50481 - "GET /events?types=zone HTTP/1.1" 200
2025-11-10 14:11:35 INFO 10.10.3.114:61449 - "GET /status HTTP/1.1" 200
2025-11-10 14:11:44 INFO POST /zones/4/set temperature=18.0 heating_enabled=True
2025-11-10 14:11:44 INFO 10.10.3.114:62824 - "POST /zones/4/set?temperature=18&heating_enabled=true HTTP/1.1" 400
2025-11-10 14:11:52 INFO [E] Slaapkamer | CurrentTemperature: 20.9 -> 20.8
2025-11-10 14:12:35 INFO 10.10.3.114:52954 - "GET /zones HTTP/1.1" 200
2025-11-10 14:13:08 INFO [E] Bureel | CurrentTemperature: 22.7 -> 22.8
2025-11-10 14:13:35 INFO 10.10.3.114:64970 - "GET /zones HTTP/1.1" 200
2025-11-10 14:14:11 INFO [E] Hall | CurrentTemperature: 21 -> 20.9
2025-11-10 14:14:35 INFO 10.10.3.114:55800 - "GET /zones HTTP/1.1" 200
2025-11-10 14:15:31 INFO [E] LivingHall | CurrentTemperature: 21.1 -> 21
2025-11-10 14:15:35 INFO 10.10.3.114:60354 - "GET /zones HTTP/1.1" 200
2025-11-10 14:16:35 INFO 10.10.3.114:56908 - "GET /zones HTTP/1.1" 200
2025-11-10 14:16:58 INFO [E] Slaapkamer | CurrentTemperature: 20.8 -> 20.7
2025-11-10 14:17:14 INFO [E] Keuken | CurrentTemperature: 20.8 -> 20.6
2025-11-10 14:17:35 INFO 10.10.3.114:58645 - "GET /zones HTTP/1.1" 200
2025-11-10 14:18:04 INFO [E] Badkamer | CurrentTemperature: 21.2 -> 21.1
2025-11-10 14:18:35 INFO 10.10.3.114:63567 - "GET /zones HTTP/1.1" 200
2025-11-10 14:20:04 INFO 10.10.3.114:65394 - "GET /zones HTTP/1.1" 200
2025-11-10 14:20:35 INFO 10.10.3.114:62049 - "GET /zones HTTP/1.1" 200
Attachments
2025-11-10_14-20-33.jpg
2025-11-10_14-20-33.jpg (279.05 KiB) Viewed 434 times
Kind regards,
Sloeber70

Linux Debian 13 standard edition
Domoticz latest beta on ProxmoxVE Virtual Machine
jannl
Posts: 823
Joined: Thursday 02 October 2014 6:36
Target OS: Raspberry Pi / ODroid
Domoticz version: 2025.5.x
Location: Geleen
Contact:

Re: Tado Thermostat plugin

Post by jannl »

There is seperate TadoLocal topic and I think you better also create an issue on github.
manjh
Posts: 859
Joined: Saturday 27 February 2016 12:49
Target OS: Raspberry Pi / ODroid
Domoticz version: 2020.2
Location: NL
Contact:

Re: Tado Thermostat plugin

Post by manjh »

Is there an overview somewhere showing which functionality TadoLocal offers?
In the screenshot it shows the different zones. I assume you can manually change temperatures.
But can you change the programming schedule? times/temperatures per day?
Hans
User avatar
waltervl
Posts: 6677
Joined: Monday 28 January 2019 18:48
Target OS: Linux
Domoticz version: 2025.1
Location: NL
Contact:

Re: Tado Local and python plugin

Post by waltervl »

Splitted off from the original Tado integration topic.
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
User avatar
waltervl
Posts: 6677
Joined: Monday 28 January 2019 18:48
Target OS: Linux
Domoticz version: 2025.1
Location: NL
Contact:

Re: Tado Thermostat plugin

Post by waltervl »

manjh wrote: Tuesday 11 November 2025 12:33 Is there an overview somewhere showing which functionality TadoLocal offers?
In the screenshot it shows the different zones. I assume you can manually change temperatures.
But can you change the programming schedule? times/temperatures per day?
This is the current functionality with the plugin:
https://github.com/AmpScm/TadoLocal/blo ... /README.md
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
HvdW
Posts: 663
Joined: Sunday 01 November 2015 22:45
Target OS: Raspberry Pi / ODroid
Domoticz version: 2023.2
Location: Twente
Contact:

Re: Tado Local and python plugin

Post by HvdW »

Maybe I am too stupid for this.
What I did.

Code: Select all

# Clone the repository
git clone https://github.com/ampscm/TadoLocal.git
cd TadoLocal

# Install (requires Python 3.11+)
pip install -e .
The python system was protesting, so I continued like this.

Code: Select all

python3 -m venv venv
source venv/bin/activate
then another pip install -e .
and SUCCESS
Running setup.py develop for tado-local
Successfully installed tado-local-1.0.0a1
then

Code: Select all

(venv) (venv) pi@RPI4:~/TadoLocal $ tado-local --bridge-ip 192.168.2.2 --pin 123-45-678
2025-11-12 18:55:06 INFO Loaded 0 devices from cache
2025-11-12 18:55:06 INFO Loaded 0 zones from cache
2025-11-12 18:55:06 INFO Loaded latest state for 0 devices from database
2025-11-12 18:55:06 INFO Tado Cloud API: Starting authentication flow...
2025-11-12 18:55:06 INFO Started background cloud sync (4h battery, 24h config)
2025-11-12 18:55:06 INFO API authentication disabled (no TADO_API_KEYS configured)
2025-11-12 18:55:06 INFO No existing pairing found for specified IP: 192.168.2.2
2025-11-12 18:55:06 INFO Starting fresh pairing with 192.168.2.2 using PIN 488-89-183...
2025-11-12 18:55:06 INFO Starting controller-based pairing with 192.168.2.2:80 using PIN: 123-45-678
2025-11-12 18:55:06 INFO Using Controller ID: f780edf2-0605-4030-a02d-ec451f45f4cc
2025-11-12 18:55:06 INFO Starting fresh pairing with persistent controller f780edf2...
2025-11-12 18:55:06 INFO --- Trying approach: single_connection ---
2025-11-12 18:55:06 INFO Description: Keep connection open throughout
2025-11-12 18:55:06 INFO Requesting device authorization code from Tado...
2025-11-12 18:55:06 WARNING Overall attempt failed with approach single_connection, feature flags 0: step bytearray(b'\x02')
2025-11-12 18:55:06 INFO ======================================================================
2025-11-12 18:55:06 INFO TADO CLOUD API AUTHENTICATION REQUIRED
2025-11-12 18:55:06 INFO ======================================================================
2025-11-12 18:55:06 INFO To connect to Tado Cloud API, please visit this URL:
2025-11-12 18:55:06 INFO     https://login.tado.com/oauth2/device?user_code=GBQVVC
2025-11-12 18:55:06 INFO Your code: GBQVVC
2025-11-12 18:55:06 INFO (This code expires in 300 seconds)
2025-11-12 18:55:06 INFO
2025-11-12 18:55:06 INFO Once authenticated, you see a success result here in the log. Polling for authorization...
2025-11-12 18:55:06 INFO
2025-11-12 18:55:06 INFO You can also access this information via the web-ui or the /status endpoint:
2025-11-12 18:55:06 INFO     curl http://localhost:4407/status
2025-11-12 18:55:06 INFO ======================================================================
2025-11-12 18:55:06 WARNING Overall attempt failed with approach single_connection, feature flags 1: step bytearray(b'\x02')
2025-11-12 18:55:06 INFO --- Approach single_connection completed, trying next approach ---
2025-11-12 18:55:06 INFO --- Trying approach: reconnect_between_parts ---
2025-11-12 18:55:06 INFO Description: Reconnect between Part 1 and Part 2
2025-11-12 18:55:06 WARNING Overall attempt failed with approach reconnect_between_parts, feature flags 0: step bytearray(b'\x02')
2025-11-12 18:55:06 WARNING Overall attempt failed with approach reconnect_between_parts, feature flags 1: step bytearray(b'\x02')
2025-11-12 18:55:06 INFO --- Approach reconnect_between_parts completed, trying next approach ---
2025-11-12 18:55:06 ERROR ============================================================
2025-11-12 18:55:06 ERROR ALL PAIRING ATTEMPTS FAILED
2025-11-12 18:55:06 ERROR ============================================================
2025-11-12 18:55:06 ERROR Tried approaches:
2025-11-12 18:55:06 ERROR - single_connection: Keep connection open throughout
2025-11-12 18:55:06 ERROR - reconnect_between_parts: Reconnect between Part 1 and Part 2
2025-11-12 18:55:06 ERROR Controller identity persisted: f780edf2-0605-4030-a02d-ec451f45f4cc
2025-11-12 18:55:06 ERROR Part 1 state may be saved - retry might resume from Part 2
2025-11-12 18:55:06 ERROR Possible issues:
2025-11-12 18:55:06 ERROR 1. Device is already paired to another HomeKit controller
2025-11-12 18:55:06 ERROR 2. Device is not in pairing mode
2025-11-12 18:55:06 ERROR 3. Wrong PIN code
2025-11-12 18:55:06 ERROR 4. Device needs to be reset/factory reset
2025-11-12 18:55:06 ERROR 5. Network connectivity issues
2025-11-12 18:55:06 ERROR 6. Device-specific pairing behavior not yet understood
2025-11-12 18:55:06 ERROR Troubleshooting steps:
2025-11-12 18:55:06 ERROR - Check if device is showing on other HomeKit controllers
2025-11-12 18:55:06 ERROR - Try factory resetting the device
2025-11-12 18:55:06 ERROR - Verify the PIN is correct from device label
2025-11-12 18:55:06 ERROR - Ensure device is in pairing mode
2025-11-12 18:55:06 ERROR - Retry - we'll attempt to resume from saved Part 1 state
2025-11-12 18:55:06 ERROR ============================================================
2025-11-12 18:55:06 ERROR Controller-based pairing failed: All pairing attempts failed - see troubleshooting info above
Traceback (most recent call last):
  File "/home/pi/TadoLocal/tado_local/bridge.py", line 541, in perform_pairing_with_controller
    pairing_data = await TadoBridge.perform_fresh_pairing(host, port, hap_pin, controller_id, db_path)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pi/TadoLocal/tado_local/bridge.py", line 355, in perform_fresh_pairing
    raise Exception("All pairing attempts failed - see troubleshooting info above")
Exception: All pairing attempts failed - see troubleshooting info above
2025-11-12 18:55:06 ERROR Pairing failed with error: All pairing attempts failed - see troubleshooting info above
Traceback (most recent call last):
  File "/home/pi/TadoLocal/tado_local/bridge.py", line 541, in perform_pairing_with_controller
    pairing_data = await TadoBridge.perform_fresh_pairing(host, port, hap_pin, controller_id, db_path)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pi/TadoLocal/tado_local/bridge.py", line 355, in perform_fresh_pairing
    raise Exception("All pairing attempts failed - see troubleshooting info above")
Exception: All pairing attempts failed - see troubleshooting info above
2025-11-12 18:55:06 ERROR Pairing failed: All pairing attempts failed - see troubleshooting info above
2025-11-12 18:55:06 ERROR ERROR: Failed to start Tado Local: All pairing attempts failed - see troubleshooting info above
2025-11-12 18:55:06 INFO Performing cleanup...
2025-11-12 18:55:06 INFO Stopping Tado Cloud API background tasks...
2025-11-12 18:55:06 INFO Background cloud sync task cancelled
2025-11-12 18:55:06 INFO Stopped background cloud sync task
2025-11-12 18:55:06 INFO Starting cleanup...
2025-11-12 18:55:06 INFO Cleanup complete
2025-11-12 18:55:06 INFO Shutdown complete. Process will exit in 3 seconds.
2025-11-12 18:55:06 ERROR ERROR: All pairing attempts failed - see troubleshooting info above
2025-11-12 18:55:09 WARNING Forcing process exit after 3 seconds to avoid lingering SSE connections.
Authentication succeeded and another ~/TadoLocal $ tado-local --bridge-ip 192.168.2.2 --pin 123-45-678 -> same result

Any idea what I did wrong here?
Bugs bug me.
jorknu
Posts: 5
Joined: Friday 12 September 2025 15:33
Target OS: Raspberry Pi / ODroid
Domoticz version: 2025.2
Location: NL
Contact:

Re: Tado Local and python plugin

Post by jorknu »

Wow, I think I will set up a new container to give this a try.
I have been trying to come up with some python stuff (also using aiohomekit) and then trying to get that connected to C++ so it can be build into the existing integration. But with little time this seems like a futile attempt.

What I was wondering about:
I have 4-5 years of data in my database of the C++ implementation.
Is there anyway to "import" the old data into the new sensors generated by a python implementation?

I know I can always just make some SQL to get the data out of one sensor and then inject it back in another.
But I do not feel like hacking out the DB and then reloading it with modified content if I do not have to.
User avatar
waltervl
Posts: 6677
Joined: Monday 28 January 2019 18:48
Target OS: Linux
Domoticz version: 2025.1
Location: NL
Contact:

Re: Tado Local and python plugin

Post by waltervl »

There are some API calls to add history data to a counter device https://wiki.domoticz.com/Domoticz_API/ ... n_counters

But adding data directly in the database is not big problem if you already know some sql. Also you will add the data in a meter or multimeter _calendar table that only stores summarized daily history data. So not much harm you can do there.

And with an application like SQLite DB browser you can add data from a prepared excel file. So you do not have to know SQL. You only have to stop Domoticz when adding data to prevent locking.
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
jannl
Posts: 823
Joined: Thursday 02 October 2014 6:36
Target OS: Raspberry Pi / ODroid
Domoticz version: 2025.5.x
Location: Geleen
Contact:

Re: Tado Local and python plugin

Post by jannl »

There is an issue regarding the pairing on github
User avatar
waltervl
Posts: 6677
Joined: Monday 28 January 2019 18:48
Target OS: Linux
Domoticz version: 2025.1
Location: NL
Contact:

Re: Tado Local and python plugin

Post by waltervl »

And there seem to be some related changes in the plugin on the repository last few days so perhaps do a
git pull
in the plugin folder and test again...
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest