[gelöst] SD_WS_89_TH - Device nach ID unterscheiden

Begonnen von rob, 20 April 2024, 13:36:35

Vorheriges Thema - Nächstes Thema

rob

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


elektron-bbs

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.
Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + LaCrosseGateway

rob

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