Ja tylko napiszę, że dodatek w wersji 0.5.2 (ten standardowy, nie next) działa mi niezawodnie. W ogóle nigdy nie miałem z nim żadnych problemów, ale kilka wersji pominąłem (chyba wcześniej siedziałem na 0.4). Mam instalację na Proxmox, gdzie niebieski dongle RTL USB jest przekazany jako Device ID. Konfigurację mam w domyślnym pliku “rtl_433.conf.template”:
Mam małe pytanie na marginesie: skąd dodatek zna użytkownika i hasło “addons”? Czy ten użytkownik wygenerował się podczas instalacji mosquitto i jest w jakiś sposób udostępniany innym dodatkom?
Ok, działa wszystko dobrze ponownie. Zadziałało po tym jak w dodatku rtl_433 next zmieniłem linijkę output na tą która jest w dokumentacji tego dodatku. Wcześniej używałem zwykłego rtl_433 więc brakowało fragmentu po devices=rtl_433, czyli: /9b13b3f4-rtl433/devices[/type][/model][/subtype][/channel][/id],events=rtl_433/9b13b3f4-rtl433/events,states=rtl_433/9b13b3f4-rtl433/states
Zwykły dodatek rtl_433 nie odbiera danych ze stacji, robi to tylko wersja next. Natomiast nie ma znaczenia czy używam Auto Discovery w wersji zwykłej czy next, dane z obu są przesyłane do MQTT
Dodatek Auto Discovery nie bierze udziału w odbiorze telegramów, więc po powstaniu odpowiednich sensorów/encji można go wyłączyć…
On tylko jednorazowo publikuje odpowiednie tematy w brokerze MQTT, więc jeśli już coś raz zostało dodane, to nie wymaga dodawania ponownie, no chyba że pousuwamy te tematy, ale jeśli będzie stale włączony, to potrafią się dodawać “urządzenia-duchy” powstające z błędnie zdekodowanych telegramów (UWAGA niektóre stacje po wymianie baterii zmieniają swój identyfikator i w zasadzie tylko w takim wypadku potrzeba go uruchomić jeszcze raz, no ewentualnie gdy chcemy automatycznie dodać jakieś inne urządzenia które nasłuchał rtl_433).
To, że dane są przesyłane do brokera MQTT nie oznacza, muszą powstać encje w HA. Za ich tworzenie odpowiada mechanizm MQTT Discovery. Jeśli on nie zadziała, to encje nie zostaną automatycznie utworzone.
Exception raised while updating state of sensor.bresser_7in1_43922_timestamp, topic: ‘rtl_433/9b13b3f4-rtl433/devices/Bresser-7in1/43922/time’ with payload: b’2024-11-13 13:07:55.320149’
Exception raised while updating state of sensor.bresser_7in1_43922_timestamp, topic: ‘rtl_433/9b13b3f4-rtl433/devices/Bresser-7in1/43922/time’ with payload: b’2024-11-13 13:08:07.820195’
Exception raised while updating state of sensor.bresser_7in1_43922_timestamp, topic: ‘rtl_433/9b13b3f4-rtl433/devices/Bresser-7in1/43922/time’ with payload: b’2024-11-13 13:08:32.827954’
Exception raised while updating state of sensor.bresser_7in1_43922_timestamp, topic: ‘rtl_433/9b13b3f4-rtl433/devices/Bresser-7in1/43922/time’ with payload: b’2024-11-13 13:08:57.836469’
Exception raised while updating state of sensor.bresser_7in1_43922_timestamp, topic: ‘rtl_433/9b13b3f4-rtl433/devices/Bresser-7in1/43922/time’ with payload: b’2024-11-13 13:09:10.331584’
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/components/mqtt/models.py”, line 366, in process_write_state_requests
entity.async_write_ha_state()
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 1007, in async_write_ha_state
self._async_write_ha_state()
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 1132, in _async_write_ha_state
self.__async_calculate_state()
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 1069, in __async_calculate_state
state = self._stringify_state(available)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 1013, in _stringify_state
if (state := self.state) is None:
^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/sensor/init.py”, line 597, in state
raise ValueError(
ValueError: Invalid datetime: sensor.bresser_7in1_43922_timestamp provides state ‘2024-11-13 13:07:30.313019’, which is missing timezone information
To jest kontynuacja dla opisu rozwiązania problemu z innego tematu:
Co można z takim problemem zrobić?
Wyłączamy dodatek rtl_433 MQTT Auto Discovery odpowiedzialny za uruchomienie skryptu tworzącego urządzenie i encje sensorów w HA przez mechanizm MQTT Auto Discovery i przechodzimy na ręczne, samodzielne stworzenie tych encji w HA, poprzez własne zapisy w YAML.
Ale na początek musimy dokonać małej zmiany w pliku konfiguracji dodatku rtl_433 lub rtl_433 (next), zależnie kto co używa (dla obu AddOn to ten sam plik w tym samym katalogu). Kto nie tworzył tego pliku i działa na ustawieniach domyślnych może dowie się czegoś nowego.
W katalog rtl_433 tworzymy plik rtl_433.conf.template lub edytujemy jeśli już tam go mamy.
czyli de facto wywalając ID z output.
Zmieniłem, zresetowałem rtl_433 i Auio Discovery działa, utworzył nowe urządzenie, ale niestety z ID w nazwie (mimo usunięcia z output)… Skąd on to wziął?
me 2.
Ale kminiąc dalej, pomimo skryptu, w którym ID jest - skoro mam w rtl_433 output do zdefiniowania i tam mu wywalam ID, to Auto Discovery tego ID nie powinno dostawać.
Jedyna opcja, że sobie pamięta ostatni i taki przyjmuje…
tak, też to widziałem. Zresetowałem stacje, ID się zmieniło i nazwa w Auto Discovery też. Więc ewidentnie dostaje.
edit:
Niestety bez zmian w samym skrypcie nie da rady tego obejść. Moje testy z usuwaniem ID z output powierdzają tyle, że i tak za każdym razem tworzy się nowe urządzenie w mosquitto, ale brakuje danych (same stany nieznane), więc to ID musi być.
Obecnie używam dongla sdr, dodatek Rtl_433. Ja postawiony na miniPC jako haOS.
wszystko działało dość sprawnie tylko mam go w kuchni nad lodówką, a widomo że czasami ktoś czymś dotknie antenki i ja przestawi. No i niema odczytów. Stoję często po godzinie i przestawiam ją co milimetry aby złapało odczyt. A i tak jest często lipa.
Obecnie używam dongla sdr, dodatek Rtl_433. Ja postawiony na miniPC jako haOS.
wszystko działało dość sprawnie tylko mam go w kuchni nad lodówką, a widomo że czasami ktoś czymś dotknie antenki i ja przestawi. No i niema odczytów. Stoję często po godzinie i przestawiam ją co milimetry aby złapało odczyt. A i tak jest często lipa.
Odczyty powinny być co 12s a są co godzinę, albo dłużej
W logach RTL_433 mam tylko
[rtl_433] Auto Level: Current noise level -38.6 dB, estimated noise -38.5 dB
[rtl_433] Auto Level: Current noise level -38.5 dB, estimated noise -38.5 dB
’’’
To nie jest żadne czyjeś “widzi mi się”, tylko zasady umożliwiające utrzymanie jako-takiego porządku na forum.
a teraz do sedna
Czyli masz albo intensywne zakłócenia, albo krytycznie niski poziom sygnału ze stacji (ewentualnie i to, i to).
Generalnie kuchnia z dużym AGD, które tłumi sygnał i które często jest źródłem zakłóceń, to jedno z gorszych miejsc na instalację sprzętu do nasłuchu radiowego.
Musisz rozważyć 2 rozwiązania (i 3. jako opcja gdyby kombo 2 pierwszych nie pomogło)
przeniesienie instalacji HA (wraz donglem) w takie miejsce w domu by było wolne od zakłóceń i od tej strony domu, gdzie masz widok na stację pogodową (lub miałbyś go gdyby ściana nie zasłaniała)
użyć przedłużacza USB i czegoś co umożliwi stabilny montaż dongla
antena zewnętrzna na pasmo 868MHz (montaż po stronie stacji pogodowej)
Spotykałem się już z pomysłami montażu stacji pogodowych na dachu (to za to jedno z gorszych miejsc z powodu zafałszowania wskazań, ale jeśli to właścicielowi nie przeszkadza… byleby nie wysyłać danych pogodowych do serwisów online), gdzie odbiornik jest centralnie poniżej stacji - wtedy zwykle pomaga zmiana polaryzacji anteny z pionowej na poziomą…
Gdy odbierzesz poprawny sygnał ustal z którego dekodera korzysta (masz 3 różne w konfiguracji) - moim zdaniem powinieneś używać tylko jeden z nich (ustal który, prawdopodobnie 119 lub 172) to jest wprawdzie tylko optymalizacja dekodowania (ale czasem są kombinacje, które utrudniają właściwe dekodowanie sygnału, nie sądzę, że to ten przypadek, skoro twierdzisz, że w optymalnych warunkach masz telegramy co 12s, mimo to sugeruję wybrać tylko właściwe dekodery, tj. raczej tylko jeden z nich)
[119] Bresser Weather Center 5-in-1
…
[172] Bresser Weather Center 6-in-1, 7-in-1 indoor, soil, new 5-in-1, 3-in-1 wind gauge, Froggit WH6000, Ventus C8488A
[173] Bresser Weather Center 7-in-1, Air Quality PM2.5/PM10 7009970, CO2 7009977, HCHO/VOC 7009978 sensors
I jeszcze jedno - jeśli odbiór się pogorszył przy ostatnich mrozach, to należy wymienić ogniwa zasilające w stacji (możesz poczekać na ocieplenie i zobaczyć czy się zregenerują po wzroście temperatury), przy wymianie sugeruję ogniwa litowe, bo są znacznie bardziej odporne na mróz od zwykłych alkalicznych - u nas łatwe do kupienia to Varta, ale producent nie jest ważny tylko rodzaj chemii.
PS posty wyżej zostały przeniesione tutaj, by nie zachęcały innych do odjeżdżania tak daleko od tematu…