Hallo zusammen.
Eine Frage zum Modul SD_WS und konkret Protokoll 89: Lässt sich das umsetzen, dass ein Device gemäß der empfangenen ID unterschieden werden kann?
Hintergrund:
- habe "ORIA Kühlschrank Thermometer" gekauft (https://www.amazon.de/dp/B07B9QZHLS)
- es sind zwei Sensoren dabei (Sensor1 und Sensor2 beschriftet)
- beide Sensoren haben je eine eigene ID, senden via fixem Kanal (1 bzw. 2) und werden auch als verschiedene Devices angelegt (SD_WS_89_TH_1 und SD_WS_89_TH_2)
- soweit so easy
- tatsächlich habe ich 2x dieses Produkt gekauft und somit 4 Sensoren (2x Sensor1 und 2x Sensor2)
- leider werden die empfangenen Daten z.B. für die zwei Sensoren1 nicht getrennt in versch. Devices aktualisiert, sondern in einem - weil beide den Kanal 1 verwenden (die beiden Sensor2 eben Kanal 2)
- statt vier Devices, bekomme ich also nur 2
- die Gefrierschranktemp. wechselt bspw. zwischen -24°C und +20°C (Sensor2 im Gefrierer, der zweite Sensor2 noch draußen)
- zuerst kommt es auch zu Fehlermeldungen im LOG, weil Temp./Hum. zu stark vom Vorwert abweichen ("ERROR - temp diff too large (old 21.4, new -24.4, diff 45.8, age 32)")
Die Kanäle sind also auf 1 oder 2 fixiert, die ID's aber sind jeweils unterschiedlich und statisch. Ich könnte das natürlich so belassen und per Notify 4 Dummies jeweils anhand des Readings ID befüllen lassen - die Events sind ja gut zeitlich getrennt.
Schöner wäre jedoch, wenn es automatisch so gemacht werden würde, sofern machbar. Gerade wenn ein Nachbar auch so ein Teil kauft (Notify ginge trotzdem, aber schwieriger am eigentl. Device zu durchschauen, was ist was).
Randnotiz:
Die Sensoren scheinen Humidity mitzusenden. Werte sind aber unplausibel. Können nur leider nicht am Display verifiziert werden, da dort keine Luftfeuchte angezeigt wird.
Vielen Dank und beste Grüße
rob
List der zwei Devices
define Kuehlschrank_Kueche SD_WS SD_WS_89_TH_1
attr Kuehlschrank_Kueche event-min-interval .*:300
attr Kuehlschrank_Kueche event-on-change-reading .*
attr Kuehlschrank_Kueche room SD_WS
# CFGFN
# CODE SD_WS_89_TH_1
# DEF SD_WS_89_TH_1
# FUUID 66225485-f33f-a385-9d8c-893b060f13b1dd42
# LASTInputDev myMapleDuino
# MSGCNT 3062
# NAME Kuehlschrank_Kueche
# NR 1144
# STATE T: 5.9 H: 10
# TYPE SD_WS
# bitMSG 0000001000000010001011110000101010110110
# eventCount 772
# lastMSG 02022F0AB6
# lastReceive 1713611507.5177
# myMapleDuino_DMSG W89#02022F0AB6
# myMapleDuino_DMSGequal 2
# myMapleDuino_MSGCNT 3171
# myMapleDuino_Protocol_ID 89
# myMapleDuino_RAWMSG MU;P0=-32001;P1=229;P2=-761;P3=710;P4=-503;P5=464;P6=-264;CP=1;R=243;D=012323232141414141414561414141414141456141414561456565656141414145614561456145656145656141432323232141414141414561414141414141456141414561456565656141414145614561456145656145656141432323232141414141414561414141414141456141414561456565656141414145614561456145656145656141432323232141414141414561414141414141456141414561456565656141414145614561456145656145656145;e;
# myMapleDuino_RSSI -80.5
# myMapleDuino_TIME 2024-04-20 13:11:47
# READINGS:
# 2024-04-20 13:11:47 batteryState ok
# 2024-04-20 13:11:47 channel 1
# 2024-04-20 13:11:47 humidity 10
# 2024-04-20 13:11:47 id 02
# 2024-04-20 13:11:47 sendmode auto
# 2024-04-20 13:11:47 state T: 5.9 H: 10
# 2024-04-20 13:11:47 temperature 5.9
# 2024-04-20 13:11:47 type TFA 30.3221.02
#
setstate Kuehlschrank_Kueche T: 5.9 H: 10
setstate Kuehlschrank_Kueche 2024-04-20 13:11:47 batteryState ok
setstate Kuehlschrank_Kueche 2024-04-20 13:11:47 channel 1
setstate Kuehlschrank_Kueche 2024-04-20 13:11:47 humidity 10
setstate Kuehlschrank_Kueche 2024-04-20 13:11:47 id 02
setstate Kuehlschrank_Kueche 2024-04-20 13:11:47 sendmode auto
setstate Kuehlschrank_Kueche 2024-04-20 13:11:47 state T: 5.9 H: 10
setstate Kuehlschrank_Kueche 2024-04-20 13:11:47 temperature 5.9
setstate Kuehlschrank_Kueche 2024-04-20 13:11:47 type TFA 30.3221.02
define Gefrierschrank_Kueche SD_WS SD_WS_89_TH_2
attr Gefrierschrank_Kueche event-min-interval .*:300
attr Gefrierschrank_Kueche event-on-change-reading .*
attr Gefrierschrank_Kueche room SD_WS
# CFGFN
# CODE SD_WS_89_TH_2
# DEF SD_WS_89_TH_2
# FUUID 662275f6-f33f-a385-24d9-1d2ebc1b3f4fe789
# LASTInputDev myMapleDuino
# MSGCNT 2585
# NAME Gefrierschrank_Kueche
# NR 1175
# STATE T: -23.1 H: 78
# TYPE SD_WS
# bitMSG 1000011110010001000011010100111001100011
# eventCount 850
# lastMSG 87910D4E63
# lastReceive 1713611538.75148
# myMapleDuino_DMSG W89#87910D4E63
# myMapleDuino_DMSGequal 2
# myMapleDuino_MSGCNT 2693
# myMapleDuino_Protocol_ID 89
# myMapleDuino_RAWMSG MU;P0=-32001;P1=826;P2=-857;P3=487;P4=-242;P5=238;P6=-507;CP=5;R=13;D=012121212345656565634343434565634565656345656565634345634563456563434345656343456565634343412121212345656565634343434565634565656345656565634345634563456563434345656343456565634345612121212345656565634343434565634565656345656565634345634563456563434345656343456565634343412121212345656565634343434565634565656345656565634345634563456563434345656343456565634345;e;
# myMapleDuino_RSSI -67.5
# myMapleDuino_TIME 2024-04-20 13:12:18
# OLDREADINGS:
# READINGS:
# 2024-04-20 13:12:18 batteryState low
# 2024-04-20 13:12:18 channel 2
# 2024-04-20 13:12:18 humidity 78
# 2024-04-20 13:12:18 id 87
# 2024-04-20 13:12:18 sendmode auto
# 2024-04-20 13:12:18 state T: -23.1 H: 78
# 2024-04-20 13:12:18 temperature -23.1
# 2024-04-20 13:12:18 type TFA 30.3221.02
#
setstate Gefrierschrank_Kueche T: -23.1 H: 78
setstate Gefrierschrank_Kueche 2024-04-20 13:12:18 batteryState low
setstate Gefrierschrank_Kueche 2024-04-20 13:12:18 channel 2
setstate Gefrierschrank_Kueche 2024-04-20 13:12:18 humidity 78
setstate Gefrierschrank_Kueche 2024-04-20 13:12:18 id 87
setstate Gefrierschrank_Kueche 2024-04-20 13:12:18 sendmode auto
setstate Gefrierschrank_Kueche 2024-04-20 13:12:18 state T: -23.1 H: 78
setstate Gefrierschrank_Kueche 2024-04-20 13:12:18 temperature -23.1
setstate Gefrierschrank_Kueche 2024-04-20 13:12:18 type TFA 30.3221.02
Falls die Sensoren tatsächlich kompatibel zu diesem Protokoll sind (89 ist eigentlich für Temperatur-/Feuchtesensor TFA 30.3221.02), verwenden sie auch verschiedene Idents pro Sensor.
Unterschieden werden sie dann anhand dieser Ident, wenn du bei deinem myMapleDuino das Attribut "longids" auf den Wert "SD_WS_89_TH" setzt. Es sollten dann 4 neue Sensoren angelegt werden.
Hallo.
Vielen Dank für Deine flinke Antwort. Habe ich so gemacht und sofort wurden mir 4 neue Devices angelegt. Wie von Dir angekündigt mit jeweils der ID im Namen.
Sehr gut! Mit dem Attribut longids hatte ich zuvor noch keine Berührungspunkte.
Vielen Dank und beste Grüße :)
rob