ESP Tasmota + Fim de curso

Olá pessoal.

Tenho um ESP 8266 com tasmota, onde liguei um fim de curso, para verificar o estado de uma porta (Aberta ou Fechada).

Pelo que tenho verificado está a funcionar bem, mas se por acaso não existir interações na porta durante uns dias o sensor passa a indicar o contrario do inicial…

o que me poderá estar a falta?

15:39:21.780 CMD: status
15:39:21.787 MQT: stat/pir/STATUS = {"Status":{"Module":18,"DeviceName":"Tasmota","FriendlyName":["Tasmota"],"Topic":"pir","ButtonTopic":"0","Power":0,"PowerOnState":3,"LedState":1,"LedMask":"FFFF","SaveData":1,"SaveState":1,"SwitchTopic":"","SwitchMode":[2,2,2,2,2,2,2,2],"ButtonRetain":0,"SwitchRetain":0,"SensorRetain":0,"PowerRetain":0,"InfoRetain":0,"StateRetain":0,"StatusRetain":0}}
15:39:25.542 MQT: tele/pir/STATE = {"Time":"2024-01-08T15:39:25","Uptime":"0T00:19:12","UptimeSec":1152,"Heap":26,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Wifi":{"AP":1,"SSId":"Wooden House","BSSId":"DC:9F:DB:1C:B5:48","Channel":11,"Mode":"11n","RSSI":100,"Signal":-42,"LinkCount":1,"Downtime":"0T00:00:04"}}
15:39:25.552 MQT: tele/pir/SENSOR = {"Time":"2024-01-08T15:39:25","Switch1":"ON","Switch2":"ON","Switch3":"OFF","Switch4":"OFF","Switch5":"OFF","Switch6":"OFF","Switch7":"OFF","Switch8":"OFF"}

Obrigado
Cumps

Possível sintoma encontrado…

Este é o estado do sensor a funcionar bem:

imagem

Se reiniciar o sensor não há alteração → PERFEITO

se reiniciar o HA fica como desconhecido,

imagem

imagem

Faltará aqui algum comando no tasmota ou alguma config no HA?:

sensor:  


  - platform: template
    sensors:
      status_porta_oficina1:
        friendly_name: "Porta Oficina"
        value_template: >
          {% if is_state('sensor.sensor_de_porta_oficina', '1') %}
            Porta Fechada
           {% else %}
            Porta Aberta
           {% endif %}
        icon_template: >
          {% if is_state('sensor.sensor_de_porta_oficina', '1') %}      
            mdi:door-closed 
          {% else %}
            mdi:door-open
          {% endif %}
           

mqtt:
  sensor:
   - name: Sensor De Porta Oficina
     state_topic: "stat/pir/Sensor1"
     
   - name: Sensor2
     state_topic: "stat/pir/Sensor2"
     
   - name: Sensor3
     state_topic: "stat/pir/Sensor3"
     
   - name: Sensor4
     state_topic: "stat/pir/Sensor4"
     
   - name: Sensor5
     state_topic: "stat/pir/Sensor5"
     
   - name: Sensor6
     state_topic: "stat/pir/Sensor6"
     
   - name: Sensor7
     state_topic: "stat/pir/Sensor7" 
     
   - name: Sensor8
     state_topic: "stat/pir/Sensor8"     

Obrigado
Cumps

Já me aconteceu algo semelhante num dispositivo Zigbee e resolvi usando a opção de “retain” do Z2M.

No tasmota, penso que seja o comando :

StateRetain 1
1 Curtiu

Estou super confuso com essa configuração.
Pelo que está aí nesse log, diria que em HA devia estar algo assim:

mqtt:
  sensor:
   - name: sensor_porta_oficina
     state_topic: "tele/pir/SENSOR"

O template também me parece que tem problemas…

  - platform: template
    sensors:
      status_porta_oficina1:
        friendly_name: "Porta Oficina"
        value_template: >
          {% if is_state( state_attr('sensor.sensor_porta_oficina', 'Switch1'), 'ON') %}
            Porta Fechada
           {% else %}
            Porta Aberta
           {% endif %}

Não testei nada do que está acima, se isso funcionar assim avisa que vou jogar no euromilhoes.

O tasmota está a enviar para o HA 0 e 1

image

Está? :man_shrugging:

Olá.

@Peixeiro adicionei o comando indicado mas não resolveu, um obrigado de qualquer forma. :slight_smile:

@Bjecas , apaguei a config que tinha e apliquei a tua. Neste momento tenho isto nos sensores:

penso que na parte do mqtt deverá está bem, no entanto, na parte do template não está a extrair o valor pretendido.
Será possível mais uma ajuda?

Obrigado
Cumps

Tal como tinha indicado anteriormente, quando abro e fecho a porta tenho estes logs no tasmota (0 e 1)


15:25:44.793 MQT: stat/pir/RESULT = {"Rule1":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":471,"Free":40,"Rules":"on switch1#state do publish stat/pir/Sensor1 %value% endon on switch2#state do publish stat/pir/Sensor2 %value% endon on switch3#state do publish stat/pir/Sensor3 %value% endon on switch4#state do publish stat/pir/Sensor4 %value% endon on switch5#state do publish stat/pir/Sensor5 %value% endon on switch6#state do publish stat/pir/Sensor6 %value% endon on switch7#state do publish stat/pir/Sensor7 %value% endon on switch8#state do publish stat/pir/Sensor8 %value% endon"}}

Boas camarada,

Estava a pensar que tem que haver uma maneira mais simples de configurar isso.
Podes tentar só isto (sem templates nem nada)?

mqtt:
  - binary_sensor:
      name: "Porta da Oficina"
      state_topic: "tele/pir/SENSOR"
      payload_on: "ON"
      availability:
        - topic: "tele/pir/LWT"
          payload_available: "Online"
          payload_not_available: "Offline"
      device_class: door
      value_template: "{{ value_json.Switch1 }}"

Eu aqui estou a assumir que o tasmota está a enviar o MQTT de availability “normal” para tele/%topic%/LWT, e depois apanha-se o valor logo na config do sensor.

Simulei isto aqui com MQTTs à unha e funciona bem… (assumindo que ON == porta aberta…!)

Olá.

ON = Fechada

Vou testar e depois dou novidades.

Obrigado
Cumps

Ah, oops. Então o “payload_on” deve ser ao contrário, algo tipo:

mqtt:
  - binary_sensor:
      name: "Porta da Oficina"
      state_topic: "tele/pir/SENSOR"
      payload_on: "OFF"
      payload_off: "ON"
      availability:
        - topic: "tele/pir/LWT"
          payload_available: "Online"
          payload_not_available: "Offline"
      device_class: door
      value_template: "{{ value_json.Switch1 }}"

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


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