Bei den Miscellaneous Devices (im Speziellen wieder bei der Implementierung der Xiaomi Devices) ist noch ein komisches Verhalten aufgefallen. Setze ich einen Wert mit setValue zB PRESSURE in Channel 1 sieht das bei Debuglevel 5 in homegear.log so aus:
11/13/18 20:19:40.528 Script Engine Server: Info: Client number 0 is calling RPC method: setValue
(Integer) 7
(Integer) 1
(String) PRESSURE
(Float) 98611/13/18 20:19:40.528 Script Engine Server: Info: Client number 0 is calling RPC method: setValue
(Integer) 7
(Integer) 1
(String) PRESSURE
(Float) 986
11/13/18 20:19:40.529 MQTT Client: Debug: queueMessage(peerId, channel, keys, values) -> peerId=7, channel=1, keys, values
11/13/18 20:19:40.529 MQTT Client: Debug: queueMessage (message) topic: plain/7/1/PRESSURE message:986
11/13/18 20:19:40.529 MQTT Client: Debug: queueMessage(peerId, channel, keys, values) -> peerId=7, channel=1, keys, values
11/13/18 20:19:40.529 MQTT Client: Debug: queueMessage (message) topic: plain/7/1/PRESSURE message:986
So weit alles in Ordnung. Nur bei Channel 0 wird zusätzlich immer zuerst eine 0 übertragen. Beispiel Setzen von VOLTAGE auf Channel 0:
11/13/18 20:18:35.738 Script Engine Server: Info: Client number 0 is calling RPC method: setValue
(Integer) 8
(Integer) 0
(String) VOLTAGE
(Integer) 3025
11/13/18 20:18:35.738 MQTT Client: Debug: queueMessage(peerId, channel, keys, values) -> peerId=8, channel=0, keys, values
11/13/18 20:18:35.738 MQTT Client: Debug: queueMessage (message) topic: plain/8/0/VOLTAGE message:0
11/13/18 20:18:35.738 MQTT Client: Debug: queueMessage(peerId, channel, keys, values) -> peerId=8, channel=0, keys, values
11/13/18 20:18:35.738 MQTT Client: Debug: queueMessage (message) topic: plain/8/0/VOLTAGE message:3025
Also zwei mal queueMessage und der erste ist eine 0, wo auch immer die her kommt.
Ist das eine Besonderheit bei Channel 0 und ich habe die Kanalliste falsch erstellt oder ein Fehler in Homegear?
Siehe auch https://github.com/pfandfrei/Homegear-Xiaomi-Smarthome/issues/6