Flashing
Using Tasmotizer
pip3 install --upgrade pip wheel pip3 install tasmotizer tasmotizer.py
Setup
From Console on Tasmota UI
Issue the following commands:
module 54 backlog so97 1 ; tuyamcu 11,1 ; tuyamcu 12,9 ; tuyamcu 21,10 backlog ledtable 0 ; dimmerrange 100,1000 ; so59 1 ; so68 0
Add the following rule, this should be all on ONE line.
This rule will not turn the fan on when the fan speed is changed.
Rule1 on TuyaReceived#Data=55AA03070005030400010016 do publish2 stat/%topic%/speed 3,0 endon on TuyaReceived#Data=55AA03070005030400010117 do publish2 stat/%topic%/speed 3,1 endon on TuyaReceived#Data=55AA03070005030400010218 do publish2 stat/%topic%/speed 3,2 endon on TuyaReceived#Data=55AA03070005030400010319 do publish2 stat/%topic%/speed 3,3 endon
Enable the rule with the following
Rule1 1
Homebridge Config
Light
{ "accessory": "mqttthing", "type": "lightbulb", "name": "John's Light", "url": "http://192.168.1.60:1883", "username": "homebridge", "password": "pass", "topics": { "getOn": "stat/johnlight/POWER2", "setOn": "cmnd/johnlight/POWER2", "getBrightness": { "topic": "stat/johnlight/RESULT", "apply": "return JSON.parse(message).Dimmer;" }, "setBrightness": "cmnd/johnlight/Dimmer" }, "onValue": "ON", "offValue": "OFF", "startPub": { "cmnd/johnlight/POWER2": "", "cmnd/johnlight/Dimmer": "" }, "confirmationPeriodms": 1000 }
Fan
{ "accessory": "mqttthing", "type": "fan", "name": "John's Fan", "url": "http://192.168.1.60:1883", "username": "homebridge", "password": "pass", "topics": { "getOn": "stat/johnlight/POWER1", "setOn": "cmnd/johnlight/POWER1", "getRotationSpeed": { "topic": "stat/johnlight/speed", "apply": "return( ( message == '3,0' ) ? 25 : null || ( message == '3,1' ) ? 50 : null || ( message == '3,2' ) ? 75 : null || ( message == '3,3' ) ? 100 : null );" }, "setRotationSpeed": { "topic": "cmnd/johnlight/tuyasend4", "apply": "return( ( message <= 25 ) ? '3,0' : null || ( message > 25 && message <= 50 ) ? '3,1' : null || ( message > 50 && message <= 75 ) ? '3,2' : null || ( message > 75 && message <= 100 ) ? '3,3' : null );" } }, "onValue": "ON", "offValue": "OFF", "startPub": { "cmnd/johnlight/POWER1": "", "cmnd/johnlight/speed": "" }, "confirmationPeriodms": 1000 }
Investigating Tuya Messages
> weblog 4
Manipulating the fan
Console Output
02:06:52 {"TuyaReceived":{"Data":"55AA03070005030400010218","Cmnd":7,"CmndData":"0304000102","DpType4Id3":2,"3":{"DpId":3,"DpIdType":4,"DpIdData":"02"}}} 02:06:52 RUL: TUYARECEIVED#DATA=55AA03070005030400010218 performs "publish2 stat/johnlight/speed 3,2" 02:06:52 SRC: Rule 02:06:52 CMD: Group 0, Index 2, Command "PUBLISH", Data "stat/johnlight/speed 3,2" 02:06:52 MQT: stat/johnlight/speed = 3,2 (retained)
Data: 55AA03070005030400010218
CmndData: 0304000102
Speed: 2
Rule:
Rule1 on TuyaReceived#Data=55AA03070005030400010016 do publish2 stat/%topic%/speed 3,0 endon on TuyaReceived#Data=55AA03070005030400010117 do publish2 stat/%topic%/speed 3,1 endon on TuyaReceived#Data=55AA03070005030400010218 do publish2 stat/%topic%/speed 3,2 endon on TuyaReceived#Data=55AA03070005030400010319 do publish2 stat/%topic%/speed 3,3 endon
Manipulating light brightness
1:49:08 {"TuyaReceived":{"Data":"55AA030700080A020004000003183C","Cmnd":7,"CmndData":"0A02000400000318","DpType2Id10":792,"10":{"DpId":10,"DpIdType":2,"DpIdData":"00000318"}}} 01:49:08 TYA: fnId=21 is set for dpId=10 01:49:08 TYA: RX value 792 from dpId 10 01:49:09 {"TuyaReceived":{"Data":"55AA030700080A020004000002D2F5","Cmnd":7,"CmndData":"0A020004000002D2","DpType2Id10":722,"10":{"DpId":10,"DpIdType":2,"DpIdData":"000002D2"}}} 01:49:09 TYA: fnId=21 is set for dpId=10 01:49:09 TYA: RX value 722 from dpId 10
Observations:
Data: 55AA030700080 A02000400000318 3C
CmdData: A02000400000318
318hex = 792
Checksum: 3C
Rule:
<Doesn't WORK>
Rule2 on TuyaReceived#DpId=10 do publish2 stat/johnlight/bb DpIdData endon Rule2 1
Even this doesn't work! Don't know why.
Rule2 on TuyaReceived#Data=5AA030700080A020004000000 do publish2 stat/%topic%/bb 1,1 endon Rule2 1
Issues
Flickering Light
I think this issue is a result of the triac not having proper adhesion to the heat sink. The triac is simply pushed up against the heatsink. It has a foam pad that allows heat transfer from the triac to the heatsink.
Could we do something better here?
Triac - BTA316-600ET
https://www.digikey.ca/en/products/detail/ween-semiconductors/BTA316-600ET-127/2530340
Datasheet:
https://www.ween-semi.com/sites/default/files/2018-10/bta316-600et.pdf
References
Reference | URL |
---|---|
The Tasmota Fan Controller I've been waiting for... | https://www.digiblur.com/2020/07/the-tasmota-fan-controller-ive-been.html |
Blakadder's DS03 | https://templates.blakadder.com/treatlife_DS03.html |
Combo Speed Fan Controller/Dimmer with Tasmota - How to Flash Shelly devices with NO wires! | https://www.youtube.com/watch?v=o813Kjw76_I |
Tasmotizer | https://github.com/tasmota/tasmotizer |