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ć.