TL;DR
I have developed a set of Tasmota Drivers that perform native and real-time synchronization between Hubitat and Tasmota (11 or later) without the need for any custom Tasmota compilation or HTTP hooks. It achieves this using Tasmota' built in triggers and rules to monitor changes and send them in JSON format to Hubitat when they are detected. Changes made on Tasmota show up on Hubitat in 1-2 seconds.
There are 7 unique drivers on github: GitHub - GaryMilne/Hubitat-Tasmota: Respository for Hubitat Tasmota Drivers
-
- Color Bulb
-
- Switch\Plug with optional power monitoring.
-
- Dual Switch\Dual Plug (No power monitoring).
-
- Switch with Dimmer
-
- Switch with Fan
-
- Switch with Sensor
-
- Sensor
You can find documentation on driver installation and setup here on github. I will put the drivers out on HPM once I figure out the process for doing so.
Additionally for those that need help upgrading Tasmota from 8.X to Tasmota 11.X you will find a guide here with pictures.
The bulb driver may be of particular interest includes the ability to save and load preset colors and CT's, which is callable from rules. It also supports Tasmota Fade and Dimmer functions.
I've also done some innovative (as far as I know) stuff with logging in these drivers. The Tasmota Sync driver log entries really pop making it easier to read. Also notice the TasmotaSync requests incoming from a PM and sensor device.
I'm looking for some Tasmota\Hubitat owners interested in trying them out and providing some feedback. All of these drivers are based on a common core and have been running very well in my house.
More Background for those with an appetite for reading
When I first came to Hubitat I quickly found Markus' Tasmota Driver suite. I was very impressed and adopted it quickly. I even wrote the documentation for it. Fast forward 18 months and things have changed. Markus is banned from the Hubitat platform and is no longer maintaining the the code. Over the intervening period I also found several other things about Markus' version to be limiting.
-
To use Markus' version you had to use a special compilation of Tasmota that introduced some Hubitat hooks for synchronization.
Tasmota Sync drivers retain the synchronization between Tasmota and Hubitat by using Tasmota rules to send sync requests whenever a change is detected on Tasmota. This requires version 11 or greater of Tasmota. Polling is also supported for earlier Tasmota versions. -
Markus used a Parent\Child App\Driver architecture. Meaning that a simple Tasmota device like a Bulb or a Switch had two driver entries. I found this unwieldy and cumbersome.
Tasmota Sync drivers are just that, drivers only. Each Tasmota device (IP address) will only have one entry in the driver table making it a little cleaner in that respect. -
Markus' implementation was quite chatty and would sync on changes and at each TelePeriod (usually every 5 minutes).
Tasmota Sync drivers only report on changes at the Tasmota device with the exception of PM & Sensor devices which report at the TelePeriod, but ONLY if there has been a change.
I also found that Markus' drivers were not always complete such as setting colorTemperature on a bulb. Markus' code was also very dense making changes difficult when combined with the App\Parent\Child architecture.
I had previously written much of this code for the Smartthings Classic environment and carried forward some useful elements such as saving and recalling favorite color and CT values and full support for Tasmota Fade. I hope some of you will enjoy using these drivers.