Cześć w Nowym Roku.
Próbuję przeparsować dane z JSONa w HA: {"temperature":{"value":22.2,"unit":"C"},"humidity":{"value":51.2,"unit":"%"},"absoluteHumidity":{"value":10.05,"unit":"%"},"heatIndex":{"value":21.81,"unit":"C"},"dewPoint":{"value":11.66,"unit":"C"},"perception":{"value":1,"description":"Very comfortable"},"comfort":{"value":0,"ratio":100.00,"unit":"%","description":"OK"}}.
Jak Waszym zdaniem najlepiej obrobić dane z sensora w HA: a) zdefiniować osobno każdy czujnik wyłuskując wartość przez value_template, czy jest b) możliwość wczytania całej struktury danych zJSONa i potem w regułach adresowanie poszczególnych wartości poprzez 'temperature.value' (o ile to możliwe)?
To co niżej mi nie działa - na Lovelace HA jest info przy sensorze "Unavailable". spodziewam się, że to problem nie z parsowaniem, a samym sięganiem do danych. Z tego co widzę dane wpadają na MQTT prawidłowo co kilka sekund.
BTW, jak to działa? Skoro AFE samo wypycha dane do MQTT co zdefiniowany okres czasu, to rozumiem, że nie trzeba ich pobierać komunikatem "cmd/get"?
- platform: mqttname: "140.Temperatura"state_topic: "SNF140/dht"availability_topic: "SNF140/lwt"value_template: "{{ value_json.temperature.value }}"unit_of_measurement: "°C"
BTW, jak to działa? Skoro AFE samo wypycha dane do MQTT co zdefiniowany okres czasu, to rozumiem, że nie trzeba ich pobierać komunikatem "cmd/get"?
AFE wypycha do brokera dane z interwałem zdefiniowanym w konfiguracji. Normalnie nie ma potrzeby wołać "get"
Hm, już drugi AM2302 mi padł - mam opornik 10K między dane i VCC, a zasilanie z 5V (na 3.3V nie było odczytów).
Zauważyłem, że w takiej sytuacji AFE przestaje w ogóle wypychać dane do MQTT, tzn. nie wstawia nawet wartości zero, która jest w JSONie, gdy się wyśle cmd/get.
edit: Jednak nie padł, po kilku godzinach przerwy (bez zasilania) działa, ale to dziwne, że dokładnie taki sam objaw na dwóch różnych DHT i jednym sonoffie (re5v1c). Po kilkudziesięciu minutach restart i znów wisi. Robię drugi taki sam zestaw, żeby zreplikować.
Miałem podobną sytuacje - brak odczytów z DHT22 .
Miałem tak na dwóch zestawach Sonoff RF z AFE na pokładzie. Wyglądało na to , że padają czujniki DHT22 ale okazało się, że wystarczy odłączyć całego Sonoff od zasilania na 2-3 minuty i odczyty wracały. Idąc dalej - nie wiem co się się stało ale od kilku m-cy wszystko działa jak należy.
Dzięki za info.
Ten sam czujnik DHT, który zasilany zarówno z 3.3V jak i 5V sprawiał problemy na Sonoffie RE5v1c działa bez problemu 230V Sonoff Basic na 3.3V od ponad godziny. Komunikaty są cyklicznie wstawiane do MQTT i mają poprawną wartość.
Drugi egzemplarz RE5v1c nie wstawia komunikatów do MQTT i na żądanie zwraca 0C, czyli objaw się powtarza. Nie jest to problem z zasilaniem - zarówno zasilanie tego Sonoffa jak i napięcie na DHT ma stabilne 5V.
Mam 4 szt. tych czujników (kupowane u różnych chińczyków 😉 ) i niestety już je zdążyłem wymieszać. Nie wiem , które sprawiały problemy ale aktualnie wszystkie 4 od kilku m-cy działają poprawnie ( 2 szt. z Sonoff RF i AFE oraz 2szt z NodeMCU i Tasmotą). Dodam, że nie zmieniałem softu ani ustawień w tych Sonoff z AFE - same się naprawiły 😉 .
Nie, ale mają nadruk "ASAIR".
BTW, z Tasmota nie zauważyłem na razie problemu.
Tutaj jest do przeczytania oglądnięcia o dziwnych zrachowaniach ASAIR, występowały w Suply i u mnie w AFE - odłączenie zasilania rozwiązywało problem na jakiś czas) @espablo sugeruje na YT spróbować na innym gpio podłączyć go. Ja generalnie sugeruje nie kupowanie tej produkcji.
Sprawdzałem na GPIO01 i GPIO02, taki sam objaw. Cóż, bywa i tak, na szczęście wiele to nie kosztowało, będzie trzeba w czajna kupić z 5-10 szt. z innej serii.
Edit: W Tasmota jest tak samo, odcięcie zasilania pomaga.
W takim razie co kupić zamiast tego, AM2320? Co polecacie w dobrej cenie?
- https://allegro.pl/oferta/am2320-czujnik-wilgotnosci-i-temperatury-i2c-7967161096
- https://allegro.pl/oferta/wemos-shield-sht30-czujnik-temperatury-wilgotnosci-8725669024
- https://nettigo.pl/products/sensor-am2302-dht22
Ja u siebie zastosowałem takie czujniki :
https://a.aliexpress.com/_BTLbHe
Małe, ładne dobrze działają ale potrzebujesz czegoś co zbierze z nich odczyty. Ja mam esp32 z OppenMQTTGateway.
@edass Fajny pomysł z tym, że działa jako regularny termomentr ścienny. Staram sie unikać sprzętów wymagających dedykowanych bramek, a tu widzę trzeba wejść w ekosystem Xiaomi.
Seria AOSONG jest sądząc po info w necie ok. Co myślicie?
https://allegro.pl/oferta/modul-dht22-pomiar-temperatury-wilgotnosci-am2302-7186356805
@edass Fajny pomysł z tym, że działa jako regularny termomentr ścienny. Staram sie unikać sprzętów wymagających dedykowanych bramek, a tu widzę trzeba wejść w ekosystem Xiaomi.
Nie potrzebujesz ekosystemu Xioami. Wystarczy coś co odczyta komunikaty przez BT. Da się to zrobić bezpośrednio na malinie ale trzeba wgrać zmodyfikowany fw do tych czujników (sprawa prosta robi się to przez OTA) albo zostawiasz fabryczny soft i dokładasz bramkę OpenMQTTGateway na ESP32 ( ja ich tak używam) .
No i zamiast AOSONGów dostałem DHT22 ASAIR od sprzedawcy, podobno seria jest nowsza, numery seryjne zupełnie inne, wiec może będzie ok (do zwrotu, jak sie posypią).
BTW, czy jest jakiś trik na wyłączenie zasilania 3.3V, albo wymuszenie restartu całego układu przez programowe odcięcie zasilania (taka magia :-)) ?
Drugie GPIO jako przekaźnik , i albo faktycznie fizyczny przekaźnik , albo jakiś tranzystor .
@marcingajda W punkt :-), i reguła, którą odłącza na moment drugie GPIO, jeśli na pierwszym odczyt stał się wadliwy. Tracimy jedno GPIO, ale osczedzamy kilka zł na nowy sensor. Dzięki.