Last active
November 18, 2022 12:24
-
-
Save thxthx0/c22555f6ec25c3367264729a0ff74dce to your computer and use it in GitHub Desktop.
Tasmota Script Ver. a for QS-WiFi-D01-TRIAC 150W 1CH-Dimmer
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
>D | |
sw=0 | |
tmp=0 | |
cnt=0 | |
tmr=0 | |
hold=0 | |
pwrt=0 | |
slid=0 | |
dim="" | |
doff="FF550005DC0A" | |
splo=2 ;short press lo limit | |
spup=10 ;short press up limit | |
ddir=0 ;dim dir 0/1 | |
dmul=2.2 ;dim multipl 1..2.55 | |
dstp=2 ;dim step/speed 1..5 | |
dlo=15 ;dim lolimit min.0 | |
dup=95 ;dim uplimit max.100 | |
dval=50 ;start dim level 0..100 | |
>B | |
print > Wifi-1CH-Dimmer-Script v2.0a < | |
print >> QS-WiFi-D01 150W Dimmer << | |
;hide cnt webui | |
->WebSensor1 0 | |
;reset cnt@teleperiod | |
->SetOption79 1 | |
->Baudrate 9600 | |
;boot sequ | |
=#snddim(dval) | |
delay(1000) | |
->SerialSend5 %doff% | |
=>Power1 0 | |
>F | |
cnt=pc[1] | |
if chg[cnt]>0 | |
;sw press | |
then sw=1 | |
else sw=0 | |
;sw not pressed | |
endif | |
; 100ms timer | |
tmr+=1 | |
; short press | |
if sw==0 | |
and tmr>splo | |
and tmr<spup | |
then | |
pwrt^=1 | |
;change on/off | |
if pwrt>0 | |
then | |
=#snddim(dval) | |
=>Power1 1 | |
else | |
->SerialSend5 %doff% | |
=>Power1 0 | |
endif | |
endif | |
; long press | |
if sw>0 | |
then | |
if tmr>spup | |
then | |
hold=1 | |
;off then on | |
if pwrt==0 | |
then | |
pwrt=1 | |
endif | |
;dim if on&hold | |
if pwrt>0 | |
then | |
if ddir>0 | |
then | |
;incr dimlevel | |
dval+=dstp | |
if dval>dup | |
then | |
;upper limit | |
dval=dup | |
endif | |
else | |
;decr dimlevel | |
dval-=dstp | |
if dval<dlo | |
then | |
;lower limit | |
dval=dlo | |
endif | |
endif | |
endif | |
endif | |
else | |
tmr=0 | |
if hold>0 | |
then | |
hold=0 | |
;change dim dir | |
ddir^=1 | |
endif | |
endif | |
if chg[dval]>0 | |
then | |
=#snddim(dval) | |
=>Dimmer %dval% | |
endif | |
>E | |
; slider | |
slid=Dimmer | |
if chg[slid]>0 | |
then | |
; dim per slider | |
if slid>0 | |
then | |
dval=slid | |
else | |
pwrt=0 | |
endif | |
endif | |
>P | |
; on/off webui | |
if pwr[1]>0 | |
then | |
pwrt=1 | |
dim="FF55"+hn(dval*dmul)+"05DC0A" | |
->SerialSend5 %dim% | |
else | |
pwrt=0 | |
->SerialSend5 %doff% | |
endif | |
; subroutine | |
#snddim(tmp) | |
dim="FF55"+hn(tmp*dmul)+"05DC0A" | |
->SerialSend5 %dim% | |
# |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@MFe-tasmota
Cool!
A possible downside is that by changing GPIO14 to Relay, the integration with Home assistant will not be automatic, as it will be considered as a simple switch, losing the dimmer functionality.