RTL 433 - problemy z instalacją i konfiguracją

Został użyty domyślny, z linii poleceń wymysiłeś tylko inną częstotliwość -f 868,3 M.

@macek Podpowiedziałes dobrze z tymi urządzeniami. Logi rtl_433 widzą bresser😉
Teraz zostało mi przekazać to do mqtt…

Dane widoczne w HA!

Dziękuję serdecznie wszystkim za pomoc

1 polubienie

Mi również udało się uzyskać dane z Bressera. Co ciekawe (a właściwie irytujące) mi nie udało się uzyskać danych na tym samym donglu co @george1255 (Fitipower FC00012) i kupiłem zielonego dongla w metalowej obudowie, który jest wykrywany przez rtl_433 jako Rafael Micro R820T/2 (3x droższy niż Fitipower). I teraz zaczynają się schody. Przy nasłuchu przez putty, rtl_433 wykrywa mi zarówno stację pogody (b. często raportuje - co 24 sekundy) oraz termometr basenowy (b. żadko raportuje i do tego nieregularnie - czasem co minutę, czasem co 6min). Natomiast na podglądzie loga w HA termometru basenowego nie mogę złapać (może log jest za krótki i nie udaje mi się wypatrzyć tego termometru).

To był pierwszy problem.

Drugi to wykrywanie Bressera w MQTT. Korzystam z Mosquito. Mam zainstalowany dodatek RTL_433 MQTT auto discovery. Bresser nie pojawia się w logach dodatku:

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
mqtt found in this Home Assistance instance.
Starting rtl_433_mqtt_hass.py...
INFO:root:Discovering all devices
INFO:root:MQTT connected: Connection Accepted.
INFO:root:Subscribing to: rtl_433/+/events
INFO:root:Published Efergy-e2CT/0: time, battery_ok
INFO:root:Skipped Efergy-e2CT/0: current, interval, learn

Co ciekawe, tego Efergy-e2CT/0 nie mam, ale też nie mogę się pozbyć od czasu gdy rtl_433 wykrył mi to urzadzenie na Fitipower.

To podziel się informacją jakiego “drivera” należy użyć, bedzie dla potomnych.

Bresser 5 in 1, a w zasadzie 6 in 1 - bo tak się zgłasza, to protocol 172

Ale na rynku są różne stacje pogodowe sprzedawane pod tą marką (bo Bresser to tylko znak handlowy importera) w rzeczywistości mają w ofercie stacje pogodowe kilku producentów różniących się protokołami, jakbyś przejrzał wątek to byś zobaczył, że np. @george1255 dysponuje sprzętem pracującym na innym protokole… więc musi używać innego “drivera”.

Odpowiadam sam sobie:
dodanie takiego wpisu do pliku konfiguracyjnego spowodowało, że termometr basenowy został wykryty:

   sample_rate   1000k

Ale pełnego sukcesu nadal nie osiągnąłem.
Pierwsze co mnie dziwi, to brak sygnałów z Bressera w RTL_433 Auto discovery. Tak wygląda konfiguracja:

mqtt_host: ""
mqtt_port: 1883
mqtt_user: ""
mqtt_password: ""
mqtt_retain: false
rtl_topic: rtl_433/+/events
discovery_prefix: homeassistant
discovery_interval: 600
force_update: false
log_level: default

Log z tego dodatku wygląda następująco:

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
mqtt found in this Home Assistance instance.
Starting rtl_433_mqtt_hass.py...
INFO:root:Discovering all devices
INFO:root:MQTT connected: Connection Accepted.
INFO:root:Subscribing to: rtl_433/+/events

Natomiast MQTT Explorer dane z Bressera wykrywa:
image

Mój plik konfiguracyjny od rtl_433 wygląda obecnie tak:

   gain          0
   frequency     868.30M
   hop_interval  600
   ppm_error     0
   sample_rate   1000k
   report_meta   time:tz
   output mqtt=http://192.168.1.164:1883,user=homeassistant,pass=xxx,retain=0,devices=rtl_433/Bresser51
   output json
   protocol 172
   protocol 182

Chociaż jak dam retain=0 to dane nie są rejestrowane (a co najmniej nie są pokazywane przez MQTT explorer.

Do pliku configuration.yaml dodałem następujące wpisy:

mqtt:
  - sensor:
      name: "Kierunek wiatru"
      state_topic: "rtl_433/Bresser51"
      value_template: "{{ value_json.wind_dir_deg }}"
      unit_of_measurement: "°"
      icon: mdi:compass-rose
  - sensor:
      name: "Prędkość wiatru"
      state_topic: "rtl_433/Bresser51"
      value_template: "{{ value_json.wind_avg_m_s }}" 
      unit_of_measurement: "m/s"
      icon: mdi:wind-turbine
  - sensor:      
      name: "Prędkość wiatru km/h"
      state_topic: "rtl_433/Bresser-51"
      value_template: "{{ value_json.wind_avg_m_s | float * 3.6 | round(1) }}"
      unit_of_measurement: "km/h"
      icon: mdi:wind-turbine
  - sensor:
      name: "Porywy wiatru"
      state_topic: "rtl_433/Bresser51"
      value_template: "{{ value_json.wind_max_m_s }}"
      unit_of_measurement: "m/s"
      icon: mdi:weather-windy
  - sensor:
      name: "Stacja temperatura"
      state_topic: "rtl_433/Bresser51"
      value_template: "{{ value_json.temperature_C }}"
      unit_of_measurement: "°C"  
  - sensor:
      name: "Stacja wilgotność"
      state_topic: "rtl_433/Bresser51"
      value_template: "{{ value_json.humidity }}"
      unit_of_measurement: "%"
      icon: mdi:water-percent  
  - sensor:
      name: "Stacja bateria"
      state_topic: "rtl_433/Bresser51"
      value_template: "{{ value_json.battery_ok }}"
      icon: mdi:battery  
  - sensor:
      name: "Stacja deszcz"
      state_topic: "rtl_433/Bresser51"
      value_template: "{{ value_json.rain_mm }}"
      unit_of_measurement: "mm"
      icon: mdi:weather-pouring  

I z tych sensorów nie otrzymuję żadnych danych. Co robię źle?

Zobacz czy HA odbiera dane.
Ustawienia ➜Urządzenia oraz usługi ➜ MQTT ➜KONFIGURUJ
Następnie w pozycji “Nasłuch tematu” wpisz:

rtl_433/#

i rozpocznij nasłuch

Dzięki za odzew. Wydaje się, że są odbierane:

mqtt=http://192.168.1.164:1883,user=homeassistant,pass=xxx,retain=0,devices=rtl_433/Bresser51`

dla testu podmień tą linijkę na:

mqtt://192.168.100.119:1883,user=user,pass=pass,retain=0,events=rtl_433[/model][/id]

wstaw oczywiście Swoje dane i jeszcze raz wklej co Ci “łapie” HA

1 polubienie

@osromocon
MQTT nie korzysta z protokołu http, więc na moje oko tu jest błąd.
Natomiast autodiscovery nie wymaga wcale tak szczegółowej konfiguracji (poradzi sobie z domyślną a tymczasem nadpisałeś domyślne połączenie z brokerem).

Ani pozbycie się http, ani zakomentowanie całej lini z output:mqtt nic nie pomogło.
Dalej to samo: Explorer widzi dane, oraz w ustawieniach MQTT nasłuch daje wyniki. Sensory martwe.
Obecnie plik z konfiguracją wygląda tak:

   gain          0
   frequency     868.30M
   hop_interval  600
   ppm_error     0
   sample_rate   1000k
   report_meta   time:tz
   output mqtt://192.168.1.164:1883,user=homeassistant,pass=pas,retain=0,devices=rtl_433/Bresser51
#   output mqtt://192.168.100.119:1883,user=user,pass=pass,retain=0,events=rtl_433[/model][/id]
#   output json
   protocol 172
   protocol 182

Nie możesz całkowicie zakomenderować wyjścia mqtt - poszukaj moich starych postów (chyba w nawet w tym temacie), nie mam teraz czasu by szukać jak powinna wyglądać domyślna konfiguracja Dodatku rtl_433 (a było to opisane, dodajesz tam TYLKO konieczne opcje).

Autodiscovery wymaga do działania w miarę standardowej konfiguracji (więc jak ponadpisujesz połączenie z brokerem to skrypt nie znajdzie telegramów).
Inna sprawa, że MQTT można konfigurować “z palca” (ale po co?).

Wklej co nasłuchuje HA po zmianie o której pisałem wyżej.

Message 24 received on rtl_433/Bresser51/mic at 21:01:
CRC
QoS: 0 - Retain: false
Message 23 received on rtl_433/Bresser51/flags at 21:01:
0
QoS: 0 - Retain: false
Message 22 received on rtl_433/Bresser51/startup at 21:01:
1
QoS: 0 - Retain: false
Message 21 received on rtl_433/Bresser51/uv at 21:01:
0
QoS: 0 - Retain: false
Message 20 received on rtl_433/Bresser51/wind_dir_deg at 21:01:
225
QoS: 0 - Retain: false
Message 19 received on rtl_433/Bresser51/wind_avg_m_s at 21:01:
0
QoS: 0 - Retain: false
Message 18 received on rtl_433/Bresser51/wind_max_m_s at 21:01:
0
QoS: 0 - Retain: false
Message 17 received on rtl_433/Bresser51/sensor_type at 21:01:
1
QoS: 0 - Retain: false
Message 16 received on rtl_433/Bresser51/humidity at 21:01:
94
QoS: 0 - Retain: false
Message 15 received on rtl_433/Bresser51/temperature_C at 21:01:
3
QoS: 0 - Retain: false
Message 14 received on rtl_433/Bresser51/battery_ok at 21:01:
1
QoS: 0 - Retain: false
Message 13 received on rtl_433/Bresser51/channel at 21:01:
0
QoS: 0 - Retain: false
Message 12 received on rtl_433/Bresser51/id at 21:01:
338712120
QoS: 0 - Retain: false
Message 11 received on rtl_433/Bresser51/time at 21:01:
2023-10-16 21:01:15+0200
QoS: 0 - Retain: false
Message 10 received on rtl_433/Bresser51/mic at 21:00:
CRC
QoS: 0 - Retain: false
Message 9 received on rtl_433/Bresser51/flags at 21:00:
1
QoS: 0 - Retain: false
Message 8 received on rtl_433/Bresser51/startup at 21:00:
1
QoS: 0 - Retain: false
Message 7 received on rtl_433/Bresser51/rain_mm at 21:00:
302.39999
QoS: 0 - Retain: false
Message 6 received on rtl_433/Bresser51/wind_dir_deg at 21:00:
225
QoS: 0 - Retain: false
Message 5 received on rtl_433/Bresser51/wind_avg_m_s at 21:00:
0
QoS: 0 - Retain: false
Message 4 received on rtl_433/Bresser51/wind_max_m_s at 21:00:
0
QoS: 0 - Retain: false
Message 3 received on rtl_433/Bresser51/sensor_type at 21:00:
1
QoS: 0 - Retain: false
Message 2 received on rtl_433/Bresser51/channel at 21:00:
0
QoS: 0 - Retain: false
Message 1 received on rtl_433/Bresser51/id at 21:00:
338712120
QoS: 0 - Retain: false
Message 0 received on rtl_433/Bresser51/time at 21:00:
2023-10-16 21:00:15+0200
QoS: 0 - Retain: false

Powyższe dane są z której “wersji”:
tej

output mqtt://192.168.1.164:1883,user=homeassistant,pass=pas,retain=0,devices=rtl_433/Bresser51

czy tej

output mqtt://192.168.100.119:1883,user=user,pass=pass,retain=0,events=rtl_433[/model][/id]

Dopytuje ponieważ nie korzystam z tego dodatku.

Bingo!
Teraz dopatrzyłem się, że oprócz usunięcia http trzeba było również zmienić “devices” na “events”.
Co nagle to po diable.

Mam jeszcze jedno pytanko odnośnie sensorów.
Poczyniłem taki wpis w configuration.yaml

  - sensor:
      state_topic: "rtl_433/Bresser51"
      name: "Basen temperatura"
      unit_of_measurement: "°C"
      value_template: >
        {% if value_json is defined and value_json.id == 68bb9e %}
          {{ value_json.temperature_C }}
        {% else %}
          {{ states('sensor.basen_temperatura') }}
        {% endif %}

który uniemożliwia uruchomienie HA (dev tools>check configuration)

Dla sensora, którego id jest wartością liczbową, zabieg się udał. Oto wpis:

  - sensor:
      state_topic: "rtl_433/Bresser51"
      name: "Stacja temperatura"
      unit_of_measurement: "°C"
      value_template: >
        {% if value_json is defined and value_json.id == 338712120 %}
          {{ value_json.temperature_C }}
        {% else %}
          {{ states('sensor.stacja_temperatura') }}
        {% endif %}

Czy da się również zmusić HA do interpretacji id jak w pierwszym bloku? Jak to zrobić?

Może tak, potaktowac go jako ciąg a nie liczba ?

- sensor:
    state_topic: "rtl_433/Bresser51"
    name: "Basen temperatura"
    unit_of_measurement: "°C"
    value_template: >
      {% if value_json is defined and value_json.id == '68bb9e' %}
        {{ value_json.temperature_C }}
      {% else %}
        {{ states('sensor.basen_temperatura') }}
      {% endif %}

Alleluja!
Zakładajcie chłopaki patronajty czy bajmikofi to będziecie mieli chociaż na piwko.
Bez Was świat by stał w miejscu.
Dzięki wielkie!

Ja od komentowałem wszystkie protokoły, z ciekawości czy wykryje coś ciekawego.

W przeciągu 14dni jak mam stację, rtl_433 ma duże przerwy w odczycie stacji bresser. Działa stabilnie kilka dni, potem luka 24h. Nie wiem czym jest to spowodowane. Nie pomaga restart stacji, dongla, rtl_433. Po czasie samo wraca do normy. Czym to spowodowane?