Supla virtual device MQTT

tomkowski
Posty: 372
Rejestracja: wt paź 09, 2018 7:16 pm
Lokalizacja: Orzesze

Proszę o wsparcie mądrzejszych ode mnie:D

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 :D
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!
dogu18
Posty: 257
Rejestracja: czw paź 11, 2018 8:35 pm

tomkowski pisze: ndz lut 21, 2021 6:51 pm Proszę o wsparcie mądrzejszych ode mnie:D

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 :D
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!
Przyłączam się do pytania. na dniach będzie u mnie czujnik zigbe2mqttktóry wywyła przez mqtt osobno temperaturę i wilgotność
Pozdrawiam
Grzegorz Labudda
markos
Posty: 15
Rejestracja: wt mar 19, 2019 1:40 pm

tomkowski pisze: ndz lut 21, 2021 6:51 pm Proszę o wsparcie mądrzejszych ode mnie:D

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 :D
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!
1. Jeśli w pytaniu "jakbym chciał kilka wartości wyświetlić, muszę definiować osobne kanały?" chodzi Tobie o różne wartości np, temperaturę w kuchni oraz temperaturę w salonie to musisz w SVD utworzyć 2 kanały z różnymi topicami i na nie publikować konkretne wartości odczytane z czujników.
2. Skoro korzystasz z zigbee2mqtt polecam użyć w konfiguracji 'friendly_name', co ułatwi posługiwanie się nazwami topiców.
3. TEMPERATURE_AND_HUMIDITY ogarniesz wysyłając po prostu wartości oddzielone spacją np: "22.0 33.0" na topic, który podepniesz pod odpowiedni kanał w SVD.
4. Serwer nie ma znaczenia.
Awatar użytkownika
SviW
Posty: 8
Rejestracja: śr mar 10, 2021 7:46 pm

cześć,
u mnie wywala takie coś po instalacji
i@raspberrypi:~/supla-virtual-device $ ./supla-virtual-device
SUPLA-VIRTUAL-DEVICE v1.1.2
INFO[1615672687.951014] SSL version: OpenSSL 1.1.1d 10 Sep 2019
Failed to open socket (getaddrinfo): No address associated with hostname
socket error

malinka 2b v1.2 adapter bluetooth jakiś wpinany do usb nie za bardzo wiem jaki może on być przyczyną??
1x RPI zeroW - Supla Virtual Device – 8x Xiaomi LYWSD03MMC
1x RPI 2b + Przekaźnik 8 kanałowy 5V 10A 250V LL/HL 8CH
1x SonOFF DHT-22
dogu18
Posty: 257
Rejestracja: czw paź 11, 2018 8:35 pm

Dzień dobry
Zainstalowałem na Pi 0 W jakiś czas temu SVD z czujnikami Xiaomi - Działa suer
Wczoraj zainstalowałem Mosquitto i Zigbee2Mqtt i niestety niepotrafię skonfigurwać tego z SVD

Wszystko jest zainstalowane na jednej malinie.
W Explorerze Mqtt widzę topic

Kod: Zaznacz cały

zigbee2mqtt/Xiaomi_sensor
a w nim

Kod: Zaznacz cały

{"battery":100,"humidity":48.88,"linkquality":105,"pressure":991,"temperature":22.54,"voltage":3145}
w supla-virtual-device.conf mam

Kod: Zaznacz cały

[GLOBAL]
device_name=SVD Asia


[SERVER]
host=svrX.supla.org
protocol_version=12

[AUTH]
email=xxx

[MQTT]
host=mqtt://localhost
port=1883


[CHANNEL_0]
function=TEMPERATURE_AND_HUMIDITY
file=/home/pi/supla-mi-th/sensor_th0.txt
battery_powered=1
file_write_check_sec=120

[CHANNEL_1]
function=TEMPERATURE_AND_HUMIDITY
file=/home/pi/supla-mi-th/sensor_th1.txt
battery_powered=1
file_write_check_sec=120

[CHANNEL_2]
function=TEMPERATURE_AND_HUMIDITY
file=/home/pi/supla-mi-th/sensor_th2.txt
battery_powered=1
file_write_check_sec=120

[CHANNEL_3]
function=TEMPERATURE_AND_HUMIDITY
file=/home/pi/supla-mi-th/sensor_th3.txt
battery_powered=1
file_write_check_sec=120

[CHANNEL_4]
function=PRESSURESENSOR
state_topic=zigbee2mqtt/Xiaomi_sensor
payload_value=/pressure
Jak zmusić do komunikacji Mosquitto i SVD
Pozdrawiam
Grzegorz Labudda
dogu18
Posty: 257
Rejestracja: czw paź 11, 2018 8:35 pm

dogu18 pisze: śr mar 24, 2021 1:39 pm Dzień dobry
Zainstalowałem na Pi 0 W jakiś czas temu SVD z czujnikami Xiaomi - Działa suer
Wczoraj zainstalowałem Mosquitto i Zigbee2Mqtt i niestety niepotrafię skonfigurwać tego z SVD

Wszystko jest zainstalowane na jednej malinie.
W Explorerze Mqtt widzę topic

Kod: Zaznacz cały

zigbee2mqtt/Xiaomi_sensor
a w nim

Kod: Zaznacz cały

{"battery":100,"humidity":48.88,"linkquality":105,"pressure":991,"temperature":22.54,"voltage":3145}
w supla-virtual-device.conf mam

Kod: Zaznacz cały

[GLOBAL]
device_name=SVD Asia


[SERVER]
host=svrX.supla.org
protocol_version=12

[AUTH]
email=xxx

[MQTT]
host=mqtt://localhost
port=1883


[CHANNEL_0]
function=TEMPERATURE_AND_HUMIDITY
file=/home/pi/supla-mi-th/sensor_th0.txt
battery_powered=1
file_write_check_sec=120

[CHANNEL_1]
function=TEMPERATURE_AND_HUMIDITY
file=/home/pi/supla-mi-th/sensor_th1.txt
battery_powered=1
file_write_check_sec=120

[CHANNEL_2]
function=TEMPERATURE_AND_HUMIDITY
file=/home/pi/supla-mi-th/sensor_th2.txt
battery_powered=1
file_write_check_sec=120

[CHANNEL_3]
function=TEMPERATURE_AND_HUMIDITY
file=/home/pi/supla-mi-th/sensor_th3.txt
battery_powered=1
file_write_check_sec=120

[CHANNEL_4]
function=PRESSURESENSOR
state_topic=zigbee2mqtt/Xiaomi_sensor
payload_value=/pressure
Jak zmusić do komunikacji Mosquitto i SVD
Ogarniemy odczyt danych tylko dalej nie potrafię ogarnąć temp/hum.
Pozdrawiam
Grzegorz Labudda
tomkowski
Posty: 372
Rejestracja: wt paź 09, 2018 7:16 pm
Lokalizacja: Orzesze

markos pisze: czw cze 04, 2020 8:59 am Czy ktoś spotkał się z problem rozłączania SVD przy chwilowym braku internetu?
Od pewnego czasu sporadycznie (1 raz na parę dni) występuje u mnie chwilowe rozłączenie niektórych modułów. Niektóre termometry raportują dane pomiary bez przerwy, a w niektórych brakuje 1 pomiary - luka ~10min . Problem mógłby być z zasięgiem lub samym softem natomiast zauważyłem, że rozłączenie było o tej samej porze (fizyczne termometry i termometry z SVD) przy czym standardowe termometry wracają do normalnej pracy natomiast wirtualne urządzenie "SUPLA VIRTUAL DEVICE" od tego czasu pozostaje nieaktywne.

Po restarcie usługi SVD wszystko podnosi się bez błędów.
Czy ktoś miał taki problem lub ma pomysł gdzie szukać problemu braku "autostartu" SVD? (o ile się da, to chciałbym uniknąć cyklicznych restartów usługi)
Czy pojawiło się jakieś rozwiązanie/obejście problemu?
U mnie regularnie zdarzają się zaniki napięcia co powoduje zawieszanie się SVD. Na razie malinkę mam "na wierzchu" ale planuję przenieść ją w mniej widoczne miejsce.
Wydaje mi się, że czytałem gdzieś coś o wymuszeniu cyklicznych restartów ale znaleźć nie potrafię:/
Awatar użytkownika
uchnast.michal
Posty: 1073
Rejestracja: wt cze 04, 2019 11:37 am

tomkowski pisze: śr lip 28, 2021 7:17 am
markos pisze: czw cze 04, 2020 8:59 am Czy ktoś spotkał się z problem rozłączania SVD przy chwilowym braku internetu?
Od pewnego czasu sporadycznie (1 raz na parę dni) występuje u mnie chwilowe rozłączenie niektórych modułów. Niektóre termometry raportują dane pomiary bez przerwy, a w niektórych brakuje 1 pomiary - luka ~10min . Problem mógłby być z zasięgiem lub samym softem natomiast zauważyłem, że rozłączenie było o tej samej porze (fizyczne termometry i termometry z SVD) przy czym standardowe termometry wracają do normalnej pracy natomiast wirtualne urządzenie "SUPLA VIRTUAL DEVICE" od tego czasu pozostaje nieaktywne.

Po restarcie usługi SVD wszystko podnosi się bez błędów.
Czy ktoś miał taki problem lub ma pomysł gdzie szukać problemu braku "autostartu" SVD? (o ile się da, to chciałbym uniknąć cyklicznych restartów usługi)
Czy pojawiło się jakieś rozwiązanie/obejście problemu?
U mnie regularnie zdarzają się zaniki napięcia co powoduje zawieszanie się SVD. Na razie malinkę mam "na wierzchu" ale planuję przenieść ją w mniej widoczne miejsce.
Wydaje mi się, że czytałem gdzieś coś o wymuszeniu cyklicznych restartów ale znaleźć nie potrafię:/
Mozesz wywoływać z crontaba polecenie restartu supervsiora co określony czas. Nalepiej jednak byłoby użyć skryptu, ktory "bada" działanie uslugi jak watchdog i dopiero w przypadku braku odpowiedzi reset. Koledzy sa zapracowani, gdy znajdą przyczynę zawieszania na pewno zrobia poprawkę.
e-talking............
Byłem tam - Supla Offline Party 2023
Awatar użytkownika
uchnast.michal
Posty: 1073
Rejestracja: wt cze 04, 2019 11:37 am

Mam SuplaVirtualDevice na 2 Rospberry Pi 0, jedna łączy się po WiFi druga po kablu. Od jakiegoś czasu zauważyłem, że jak jest (nawet krótka) przerwa Internetu na tej "po kablu" SVD jest niedostępna do czasu zresetowania

Kod: Zaznacz cały

sudo supervisorctl restart supla-virtual-device
W logach mam "file write check error!"
Ktoś spotkał się z podobną sytuacją? Z góry dzięki.
e-talking............
Byłem tam - Supla Offline Party 2023
Beku
Posty: 453
Rejestracja: wt lis 06, 2018 1:49 pm

Z założenia ten komunikat oznacza, że do pliku z którego SVD ma czytać dane nie było zapisu przez określony w konfiguracji czas
ODPOWIEDZ

Wróć do „Projekty użytkowników”