Mam stację pogodową Bresser 5in1. Nie chciałem rezygnować z oryginalnej stacji odbiorczej więc używając RTL-SDR i rtl_433 (https://github.com/merbanan/rtl_433 czytam i dekoduję sygnał ze stacji pogodowej.
W JSON wygląda to tak:
{"time" : "2021-02-21 16:22:37", "model" : "Bresser-5in1", "id" : 129, "battery_ok" : 1, "temperature_C" : 4.400, "humidity" : 84, "wind_max_m_s" : 0.000, "wind_avg_m_s" : 0.400, "wind_dir_deg" : 67.500, "rain_mm" : 50.000, "mic" : "CHECKSUM"}
wind_dir_deg podawane jest w stopniach (problem konwersji zostawiam sobie na później) , wynik dla rain_mm podawany jest na wyświetlaczu jako różnica między poprzednim a bieżącym odczytem (to też na póżniej:P).
rtl_433 pozwala na wysyłanie danych do MQTT, co robię:
rtl_433 -f 868M -s1024k -R 119 -F "mqtt://localhost:1883,user=,pass=,retain=0,devices=weatherstation" -M utc -Y level=0
To pozwala mi odczytać np. temperaturę subskrybując:
mosquitto_sub -h localhost -t weatherstation/temperature_C
SVD ładnie wysyła to do SUPLI przy ustawieniu w konfiguracji:
[CHANNEL_3]
function=TEMPERATURE
state_topic=weatherstation/temperature_C
Do tego doszedłem metodą prób i [licznych] błędów
I teraz już pojęcia nie mam - jakbym chciał kilka wartości wyświetlić, muszę definiować osobne kanały?
Czy (i jak) mogę użyć kanału TEMPERATURE_AND_HUMIDITY by wyświetlać obydwie wartości obok siebie?
To mój pierwszy kontakt z MQTT i poruszam się nieco po omacku, tak więc wybaczcie banalne pytania:)
Jeśli to ma znaczenie - wszystko śmiga na RPi Zero W które już od jakiegoś czasu obsługuje czujniki Xiaomi.
Dzięki!
