Utrzymanie stanu czujnika otwarcia na 433 mhz

Szukam skutecznego rozwiązania dotyczącego stanu kontaktronów w łączności 433mhz.

Nabyłem tanie kontaktrony 433 mhz wskazujące 2 stany (zwarty, rozwarty). Kod odczytuje za pomocą dongla dvbt przez mqtt jako binary sensor. Problem polega na tym, że czujniki wysyłają sygnał w chwili zmiany stanu i to działa dobrze. Niestety jako, że jest to łączność jednokierunkowa po restarcie HA widnieją jako niedostępne. Jak sprawić, żeby HA zapamiętywał ostatni stan czujnika i wskazywał go po restarcie?

Kod wysyłany przez kontaktron:
id = 193
unit = 0
learn = 0
code = 901820 (rozwarty) / code = c01820 (zwarty)

konfiguracja w yaml

- platform: mqtt
    state_topic: "rtl_433/+/devices/Smoke-GS558/193/code"
    name: Okno w salonie
    value_template: '{{value_json.RfReceived.Data}}'
    payload_on: 'c01820'
    payload_off: '901820'
    device_class: window
    unique_id: 193_okno

W jaki sposób wysyłasz dane z dvbt do brokera mqtt?
Aby broker zachował ostatnią wiadomość w konkretnym topicu, trzeba publikując ją, ustawić flagę retain=1.
Dla komendy mosquitto_pub jest to parametr -r
Więcej informacji masz w opisie integracji https://www.home-assistant.io/integrations/binary_sensor.mqtt

Temat rozwiązany dzięki dodatkom rtl_433 oraz rtl_433 MQTT Auto Discovery.

1 polubienie

Witaj, napiszesz coś wiecej w temacie? Ja mam bramke sonoff z wgrana tasmotą.

Udało Ci się odczytać tym dane z termometrów stacji pogodowych?

Cześć
Również używam bramki sonoff z tasmota ale nie wiem jak to ugryźć. Dla tasmoty poniższe komendy nie przynoszą rezultatu. Po restarcie binary sensor mam status niedostępny.

natomiast nie wiem jak skonfigurować binary sensor w configuration.yaml żeby pamiętało ostatni stan. Wiem że to pewnie proste, ale jakoś nie mogę sobie z tym poradzić. Pomoże ktoś?

przykład mojego czujnika okna

- name: "Czujnik_okno1" #sypialnia
  state_topic: "RF_Bridge1/tele/RESULT"
  value_template: "{{value_json.RfReceived.Data}}"
  payload_on: "0E400A"
  payload_off: "0E400E"
  device_class: window
  qos: 1

Nie w config tylko w tasmocie ustaw retained, wtedy mqtt pamięta ostatni stan.

1 polubienie

Hejka tak jak pisałem komendy retained nie przynoszą rezultatu dla binary sensor, ale znalazłem inne rozwiązanie. Z pomocą przychodzą reguły :slight_smile:
zamieszczam kod do kilku sensorów (czujników), żeby było wiadomo jak go rozbudowywać. Oczywiście trzeba to dostosować do swoich potrzeb (nazwy, kody rf) tak by nie trzeba było przerabiać HA (nie tworzyć nowych sensorów);

  1. W tasmota w konsoli należy wkleić każdą linijkę z osobna:
 rule1 ON RfReceived#Data=0E400A DO publish2 stat/rf_bridge1/czujnik_okno_1 open ENDON 
rule1+ ON RfReceived#Data=0E400E DO publish2 stat/rf_bridge1/czujnik_okno_1 close ENDON
rule1+ ON RfReceived#Data=1E940A DO publish2 stat/rf_bridge1/czujnik_okno_2 open ENDON 
rule1+ ON RfReceived#Data=1E940E DO publish2 stat/rf_bridge1/czujnik_okno_2 close ENDON
rule1+ ON RfReceived#Data=23800A DO publish2 stat/rf_bridge1/czujnik_okno_3 open ENDON 
rule1+ ON RfReceived#Data=23800E DO publish2 stat/rf_bridge1/czujnik_okno_3 close ENDON
rule2+ ON RfReceived#Data=E53C0A DO publish2 stat/rf_bridge1/czujnik_okno_4 open ENDON 
rule2+ ON RfReceived#Data=E53C0E DO publish2 stat/rf_bridge1/czujnik_okno_4 close ENDON
rule2+ ON RfReceived#Data=E4170A DO publish2 stat/rf_bridge1/czujnik_okno_5 open ENDON 
rule2+ ON RfReceived#Data=E4170E DO publish2 stat/rf_bridge1/czujnik_okno_5 close ENDON
rule2+ ON RfReceived#Data=F5A30A DO publish2 stat/rf_bridge1/czujnik_okno_7 open ENDON 
rule2+ ON RfReceived#Data=F5A30E DO publish2 stat/rf_bridge1/czujnik_okno_7 close ENDON
rule1 1
rule2 1

a do tego kodu binary sensor wyglądają tak:

- name: "Czujnik_okno1" #sypialnia
  state_topic: "stat/rf_bridge1/czujnik_okno_1"
  unique_id: "czujnik_okno_1"
  payload_on: "open"
  payload_off: "close"
  device_class: window
  qos: 1
- name: "Czujnik_okno2" #kacper
  state_topic: "stat/rf_bridge1/czujnik_okno_2"
  unique_id: "czujnik_okno_2"
  payload_on: "open"
  payload_off: "close"
  device_class: window
  qos: 1
- name: "Czujnik_okno3" #Amela
  state_topic: "stat/rf_bridge1/czujnik_okno_3"
  unique_id: "czujnik_okno_3"
  payload_on: "open"
  payload_off: "close"
  device_class: window
  qos: 1
- name: "Czujnik_okno4" #sypialnia Boczne
  state_topic: "stat/rf_bridge1/czujnik_okno_4"
  unique_id: "czujnik_okno_4"
  payload_on: "open"
  payload_off: "close"
  device_class: window
  qos: 1
- name: "Czujnik_okno5" #korytarz boczne
  state_topic: "stat/rf_bridge1/czujnik_okno_5"
  unique_id: "czujnik_okno_5"
  payload_on: "open"
  payload_off: "close"
  device_class: window
  qos: 1
- name: "Czujnik_okno7" #Kuchnia
  state_topic: "stat/rf_bridge1/czujnik_okno_7"
  unique_id: "czujnik_okno_7"
  payload_on: "open"
  payload_off: "close"
  device_class: window
  qos: 1

Oprócz tego reszta rf pracuje normalnie, tylko te wskazane kody rf mają inne reguły

powodzenia