Сперва модернизации подвергся напольный вентилятор с электронным управлением. Теперь же, я намеренно приобрел вентилятор именно с механическим управлением… и да, переделать механическое управление в «умное» электронное, намного проще, чем просто электронное в «умное»! – нет колхоза и условностей.
В этом месте самое мудреное, это адаптировать кнопки вентилятора к новым условиям…
В моем случае пришлось полностью выбросить все, кроме самих пластиковых колпачков, и на макетной плате развести 3 тактовые кнопки и DIP-светодиод.
На мой притязательный вкус, получилось прекрасно!
Далее пайка и сборка, где все максимально банально.
На фото нет реле, т.к. оно тут… Увы, жду из Китая двойное, а сейчас, какое было, то и воткнул.
UPD. Наконец-то пришел двойной релейный модуль! Подключил и упаковал, теперь снаружи ничего лишнего.
Для работы логики, необходимо собрать прошивку с поддержкой команды «Subscribe»:
#ifndef SUPPORT_MQTT_EVENT #define SUPPORT_MQTT_EVENT #endif
Процедура прошивки стандартная, описана тут.
Backlog Template {"NAME":"Aceline TFJX-940","GPIO":[0,512,576,0,256,257,0,0,32,33,34,0,320,0],"FLAG":0,"BASE":18}; Module 0
Backlog Interlock 1,2; Interlock 1; PowerOnState 0
Backlog WebButton1 Скорость 1; WebButton2 Скорость 2
Backlog DeviceName Table Fan; FriendlyName1 Настольный вентилятор
Backlog Topic tablefan_%06X; FullTopic %topic%/%prefix%/
Backlog MqttHost 192.168.XXX.XXX; MqttPort 1883; MqttUser RGEHrther; MqttPassword FGTRtGFER; SetOption3 1
Backlog SetOption73 1; SetOption1 1; SetOption32 20; SetOption13 1
Backlog Timezone +10:00; TelePeriod 0; SetOption128 0
Rule1 ON Button1#State=10 DO Event PowerOff=1 ENDON ON Button2#State=10 DO Power1 1 ENDON ON Button3#State=10 DO Power2 1 ENDON ON Power1#State=1 DO Backlog Event PowerOn=50; LedPower1 1; RuleTimer1 10 ENDON ON Power2#State=1 DO Backlog Event PowerOn=100; Event Buzzer; LedPower1 1; RuleTimer2 10 ENDON ON Event#PowerOn DO Backlog Var2 %value%; Add1 1; Var3 1; Event Buzzer ENDON ON Event#PowerOff==%Var1% DO Backlog Power0 0; Buzzer 1,7; LedPower1 0; Var2 0; Var3 0; RuleTimer0 0 ENDON ON Event#Blink DO Backlog Delay 3; LedPower1 2; Delay 3; LedPower1 2 ENDON ON Event#Buzzer DO Backlog LedPower1 2; Buzzer 1,2; Delay 1; LedPower1 2; Delay 3 ENDON ON Power1#State=0 DO Backlog Sub1 1; RuleTimer1 0 ENDON ON Power2#State=0 DO Backlog Sub1 1; RuleTimer2 0 ENDON ON Rules#Timer=1 DO Backlog Event Blink; RuleTimer1 10 ENDON ON Rules#Timer=2 DO Backlog Event Blink; Event Blink; RuleTimer2 10 ENDON
Rule2 ON Event#GetFanPower==1 DO Event SiriPower=0 ENDON ON Event#GetFanPower==0 DO Event PowerOff=1 ENDON ON Event#SiriPower==%Var3% DO Power1 1 ENDON ON Event#GetFanSpeed>50 DO Backlog Var3 1; Power2 1 BREAK ON Event#GetFanSpeed>0 DO Backlog Var3 1; Power1 1 BREAK ON Var2#State DO Publish %topic%/stat/FANSPEED %value% ENDON ON Var3#State DO Publish %topic%/stat/FANPOWER %value% ENDON
Rule3 ON System#Init DO Backlog Var1 0; Var2 0; Var3 0 ENDON ON Mqtt#Connected DO Backlog Power1#State; Power2#State; Subscribe GetFanSpeed, tablefan_0C6DFD/cmnd/FanSpeed; Subscribe GetFanPower, tablefan_0C6DFD/cmnd/FanPower; Publish %topic%/stat/FANSPEED %Var2%; Publish %topic%/stat/FANPOWER %Var3%; ENDON
Backlog Rule1 1; Rule2 1; Rule3 1
Обсуждение