Como ligar um reed a um Sonoff

Retira esses retain. Só deves usar o powerretain na maioria dos cenários… O problema está relacionado com o facto de o tasmota apenas reportar as mudanças de estado. Podes criar uma rule para que ele reporte o estado ao iniciar…

1 Curtiu

Ao iniciar ele reporta o estado, não sei é como o posso ir buscar essa informação para o HA.

A rule que falas é para configurar no tasmota certo?

Sim, é uma regra que faz com que o Tasmota ao iniciar reporte o estado ao HA.

Estou aqui na luta e não estou a conseguir…

Rule on system#boot do Switch2#state do publish cmnd/reedswitch/POWER2 endon

De momento tenho este rule mas não está a funcionar é a primeira vez que estou a utilizar não o que estou a fazer de mal.

Consegui ter no arranque o estado a ON a pensar que no final ia ler o ultimo estado fisico mas não funciona.

rule on system#boot do publish cmnd/reedswitch/POWER2 ON endon

O @Maddoctor assim que puder já te dá uma ajuda.

No início o sensor afirma que o interruptor está ON… É o relé virtual, também ou nem por isso?

No arranque aparece o estado real.
Só afirma que está on se eu programar a rule:

rule on system#boot do publish cmnd/reedswitch/POWER2 ON endon

O problema é que se o estado fisico fôr NF ele não actualiza, estou a referir me a consola do tasmota porque no HA só depois de alterar o primeiro estado é que começa a actualizar.

Imagina se deligar com ele NF desligar a alimentação colocar NA ao arrancar na consola do tasmota aparece o valor correto, no HA está o valor anterior tenho que colocar NF e depois NA para começar a aparecer.

Não sei se era essa a tua questão?

Se calhar vais ter de alterar a configuração para usar relés virtuais, switchmode 0 e topic stat…

Já estou a testar com relé virtual, neste caso está pior porque quando arranco com o nodemcu arranca sempre com o mesmo estado do que foi desligado e quando colo NF altera logo o estado ou seja sempre que faço isto ele altera sempre o estado de on/off acabo por não saber o estado correcto dele uma vez que está sempre a alterar.
Já tentei com switchretain e powerretain tanto no HA como no Tasmota
Com o binary_sensor mesmo que ele arranca-se OFF e estivesse NA quando colocava NF ele mantinha OFF estáva correto, o problema é mesmo só no caso de falhar a comunicação ou reiniciar e houver uma alteração de estado durante esse tempo.

Retain no HA NUNCA!
para usares relé virtual tens de usar o switchmode apropriado… Provavelmente foi esse o teu problema…

Estou a utilizar como sendo um relé numa saída que não vou utilizar, pode ser por aí vou pesquisar.
Obrigado

Testa a seguinte rule (usando a tua config habitual com switchmode 1 - também deves usar switchretain 1):
rule1 on switch2#boot do publish2 cmnd/reedswitch/POWER2 %value% endon

Já testei continua igual, para já fica sem efeito a probabilidade de acontecer este erro é muito baixa, neste caso era para receber informação se o alarme está ligado mesmo que haja uma falha não é nada de grave.
Muito obrigado pela ajuda!

Coloca aqui o resultado de status0
Essa regra deveria funcionar bem…

Status0:
09:38:58 CMD: status 0
09:38:58 MQT: stat/nodemcu2/STATUS = {“Status”:{“Module”:18,“FriendlyName”:[“Sonoff”,“Sonoff2”,“Sonoff3”,“Sonoff4”],“Topic”:“nodemcu2”,“ButtonTopic”:“0”,“Power”:0,“PowerOnState”:3,“LedState”:1,“SaveData”:1,“SaveState”:1,“SwitchTopic”:“reedswitch”,“SwitchMode”:[1,1,2,0,0,0,0,0],“ButtonRetain”:0,“SwitchRetain”:1,“SensorRetain”:0,“PowerRetain”:1}}
09:38:58 MQT: stat/nodemcu2/STATUS1 = {“StatusPRM”:{“Baudrate”:115200,“GroupTopic”:“sonoffs”,“OtaUrl”:“http://sonoff.maddox.co.uk/tasmota/sonoff.bin",“RestartReason”:"External System”,“Uptime”:“0T00:00:59”,“StartupUTC”:“2019-04-06T08:37:59”,“Sleep”:50,“CfgHolder”:4617,“BootCount”:217,“SaveCount”:658,“SaveAddress”:“F6000”}}
09:38:58 MQT: stat/nodemcu2/STATUS2 = {“StatusFWR”:{“Version”:“6.5.0(release-sonoff)”,“BuildDateTime”:“2019-03-19T12:24:10”,“Boot”:31,“Core”:“2_3_0”,“SDK”:“1.5.3(aec24ac9)”}}
09:38:58 MQT: stat/nodemcu2/STATUS3 = {“StatusLOG”:{“SerialLog”:0,“WebLog”:2,“SysLog”:0,“LogHost”:"",“LogPort”:514,“SSId”:[“Wifi-lan1”,""],“TelePeriod”:300,“Resolution”:“558180C0”,“SetOption”:[“000080A9”,“280500000100000000000000000000000000”,“00000000”]}}
09:38:58 MQT: stat/nodemcu2/STATUS4 = {“StatusMEM”:{“ProgramSize”:507,“Free”:496,“Heap”:14,“ProgramFlashSize”:1024,“FlashSize”:4096,“FlashChipId”:“1640EF”,“FlashMode”:3,“Features”:[“00000809”,“0FDAE394”,“000783A0”,“23B617CE”,“00003BC0”]}}
09:38:58 MQT: stat/nodemcu2/STATUS5 = {“StatusNET”:{“Hostname”:“nodemcu2-3231”,“IPAddress”:“192.168.1.70”,“Gateway”:“192.168.1.1”,“Subnetmask”:“255.255.255.0”,“DNSServer”:“192.168.1.1”,“Mac”:“CC:50:E3:5D:2C:9F”,“Webserver”:2,“WifiConfig”:4}}
09:38:58 MQT: stat/nodemcu2/STATUS6 = {“StatusMQT”:{“MqttHost”:“192.168.1.50”,“MqttPort”:1883,“MqttClientMask”:“nodemcu2”,“MqttClient”:“nodemcu2”,“MqttUser”:“root”,“MqttCount”:1,“MAX_PACKET_SIZE”:1000,“KEEPALIVE”:15}}
09:38:58 MQT: stat/nodemcu2/STATUS7 = {“StatusTIM”:{“UTC”:“Sat Apr 06 08:38:58 2019”,“Local”:“Sat Apr 06 09:38:58 2019”,“StartDST”:“Sun Mar 31 02:00:00 2019”,“EndDST”:“Sun Oct 27 03:00:00 2019”,“Timezone”:"+01:00",“Sunrise”:“06:17”,“Sunset”:“19:27”}}
09:38:58 MQT: stat/nodemcu2/STATUS10 = {“StatusSNS”:{“Time”:“2019-04-06T09:38:58”,“Switch2”:“OFF”}}
09:38:58 MQT: stat/nodemcu2/STATUS11 = {“StatusSTS”:{“Time”:“2019-04-06T09:38:58”,“Uptime”:“0T00:00:59”,“Vcc”:2.765,“SleepMode”:“Dynamic”,“Sleep”:50,“LoadAvg”:19,“POWER1”:“OFF”,“POWER2”:“OFF”,“POWER3”:“OFF”,“POWER4”:“OFF”,“POWER5”:“OFF”,“Wifi”:{“AP”:1,“SSId”:“Wifi-lan1”,“BSSId”:“C4:FF:1F:6A:E6:6C”,“Channel”:8,“RSSI”:66,“LinkCount”:1,“Downtime”:“0T00:00:03”}}}

No HA de momento tenho esta configuração:

binary_sensor:
 - platform: mqtt
   name: reedswitch
   state_topic: "cmnd/reedswitch/POWER2"
   payload_on: "ON"
   payload_off: "OFF"
   device_class: opening

Coloca aqui também o resultado de rule1 e um log logo após reinicio do wemos…

00:00:00 Project sonoff Sonoff Version 6.5.0(release-sonoff)-2_3_0
00:00:00 RUL: SWITCH2#BOOT performs “publish2 cmnd/reedswitch/POWER2 1”
00:00:00 RSL: cmnd/reedswitch/POWER2 = 1
00:00:00 WIF: Connecting to AP1 Wifi-lan1 in mode 11N as nodemcu2-3231…
00:00:03 WIF: Connected
00:00:03 HTP: Web server active on nodemcu2-3231 with IP address 192.168.1.70
21:09:55 MQT: Attempting connection…
21:09:58 MQT: Connected
21:09:58 MQT: tele/nodemcu2/LWT = Online (retained)
21:09:58 MQT: cmnd/nodemcu2/POWER =
21:09:58 MQT: tele/nodemcu2/INFO1 = {“Module”:“Generic”,“Version”:“6.5.0(release-sonoff)”,“FallbackTopic”:“cmnd/nodemcu2_fb/”,“GroupTopic”:“sonoffs”}
21:09:58 MQT: tele/nodemcu2/INFO2 = {“WebServerMode”:“Admin”,“Hostname”:“nodemcu2-3231”,“IPAddress”:“192.168.1.70”}
21:09:58 MQT: tele/nodemcu2/INFO3 = {“RestartReason”:“Power on”}
21:09:58 MQT: stat/nodemcu2/RESULT = {“POWER1”:“OFF”}
21:09:58 MQT: stat/nodemcu2/POWER1 = OFF (retained)
21:09:58 MQT: stat/nodemcu2/RESULT = {“POWER2”:“OFF”}
21:09:58 MQT: stat/nodemcu2/POWER2 = OFF (retained)
21:09:58 MQT: stat/nodemcu2/RESULT = {“POWER3”:“OFF”}
21:09:58 MQT: stat/nodemcu2/POWER3 = OFF (retained)
21:09:58 MQT: stat/nodemcu2/RESULT = {“POWER4”:“OFF”}
21:09:58 MQT: stat/nodemcu2/POWER4 = OFF (retained)
21:09:58 MQT: stat/nodemcu2/RESULT = {“POWER5”:“OFF”}
21:09:58 MQT: stat/nodemcu2/POWER5 = OFF (retained)
21:09:58 MQT: stat/nodemcu2/RESULT = {“POWER5”:“OFF”}
21:09:58 MQT: stat/nodemcu2/POWER5 = OFF (retained)
21:09:58 MQT: stat/nodemcu2/RESULT = {“POWER1”:“OFF”}
21:09:58 MQT: stat/nodemcu2/POWER1 = OFF (retained)
21:09:58 MQT: stat/nodemcu2/RESULT = {“POWER2”:“OFF”}
21:09:58 MQT: stat/nodemcu2/POWER2 = OFF (retained)
21:09:58 MQT: stat/nodemcu2/RESULT = {“POWER3”:“OFF”}
21:09:58 MQT: stat/nodemcu2/POWER3 = OFF (retained)
21:09:58 MQT: stat/nodemcu2/RESULT = {“POWER4”:“OFF”}
21:09:58 MQT: stat/nodemcu2/POWER4 = OFF (retained)
21:10:06 MQT: tele/nodemcu2/STATE = {“Time”:“2019-04-06T21:10:06”,“Uptime”:“0T00:00:15”,“Vcc”:2.784,“SleepMode”:“Dynamic”,“Sleep”:50,“LoadAvg”:19,“POWER1”:“OFF”,“POWER2”:“OFF”,“POWER3”:“OFF”,“POWER4”:“OFF”,“POWER5”:“OFF”,“Wifi”:{“AP”:1,“SSId”:“Wifi-lan1”,“BSSId”:“C4:FF:1F:6A:E6:6C”,“Channel”:6,“RSSI”:74,“LinkCount”:1,“Downtime”:“0T00:00:03”}}
21:10:06 MQT: tele/nodemcu2/SENSOR = {“Time”:“2019-04-06T21:10:06”,“Switch2”:“ON”}
21:15:06 MQT: tele/nodemcu2/STATE = {“Time”:“2019-04-06T21:15:06”,“Uptime”:“0T00:05:15”,“Vcc”:2.762,“SleepMode”:“Dynamic”,“Sleep”:50,“LoadAvg”:19,“POWER1”:“OFF”,“POWER2”:“OFF”,“POWER3”:“OFF”,“POWER4”:“OFF”,“POWER5”:“OFF”,“Wifi”:{“AP”:1,“SSId”:“Wifi-lan1”,“BSSId”:“C4:FF:1F:6A:E6:6C”,“Channel”:6,“RSSI”:80,“LinkCount”:1,“Downtime”:“0T00:00:03”}}
21:15:06 MQT: tele/nodemcu2/SENSOR = {“Time”:“2019-04-06T21:15:06”,“Switch2”:“ON”}

O valor da rule é de 1 ou 2 em vez de ON ou OFF.
Já alterei de forma a arrancar sempre ON só para testar e no HA não recebe esse sinal só quando começo a alterar o estado depois do nodemcu arrancar.

Então pronto, usa a seguinte menos elegante mas eficaz:
rule1 on switch2#boot=1 do publish2 cmnd/reedswitch/POWER2 ON endon on switch2#boot=0 do publish2 cmnd/reedswitch/POWER2 OFF endon

Depois diz coisas…

No nodemcu funciona tudo correcto já aparece ON e OFF, o problema é que o HA continua sem receber o estado inicial quando arranca o nodemcu.

põe aí um log sff de quando reinicia para ver o comportamento da regra…


Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade