Created
September 20, 2021 21:51
-
-
Save thxthx0/12074f1f5249e14b2a0aada75f590c9b to your computer and use it in GitHub Desktop.
Tasmota Script Ver. b 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 lolimit | |
spup=10 ;short press uplimit | |
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.0b < | |
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 when on&hold | |
if pwrt>0 | |
then | |
if ddir>0 | |
then | |
;incr dimlevel | |
dval+=dstp | |
if dval>dup | |
then | |
;up limit change dir | |
delay(700) | |
ddir^=1 | |
endif | |
else | |
;decr dimlevel | |
dval-=dstp | |
if dval<dlo | |
then | |
;lo limit change dir | |
delay(700) | |
ddir^=1 | |
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% | |
# |
Hi, I just upgraded to tastmota 10.0.0.3 and it's the same for me.
The dimmer works, but on/off does not?
In the console I get an error: var not found: Dimmer
The dimmer works, but on/off does not?
Hi,
this must be set in my_user_config.h / user_config_override.h:
#define USE_SCRIPT // Add support for script (+17k code)
#define SCRIPT_POWER_SECTION // enable >P section (execute on power changes)
or you may use:
https://github.com/tasmota/install/blob/main/firmware/unofficial/tasmota-scripting.bin
or
https://github.com/tasmota/install/blob/main/firmware/unofficial/tasmota-scripting.bin.gz
Nice! I recompiled v10.0.0.3 with #define SCRIPT_POWER_SECTION and that worked like a charm.
Thanks a lot! :)
Michael
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for the fast respond! Unfortunately, I don't know enough about the material and it is also possible that I destroyed something while soldering? I also have 2 MS-105B, which I implemented with local tuya. Maybe I'll try that one day.