setValue bewirkt doppelte Wertänderung

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

Hallo @DasKleingedruckte,

sorry für die sehr späte Antwort :roll_eyes:. Vorweihnachtsstress. Magst du mal schauen, ob der Fehler immer noch auftritt? Falls ja, schreib mir eine E-Mail an sathya@homegear.email, dann sollten wir schnell schaffen, das Problem zu lösen. Auf Anhieb bekomme ich es leider nicht reproduziert.

Viele Grüße

Sathya

Hallo @sathya,

kein Problem, aus meiner Sicht ist es nicht so eilig. Ich muss dann erst mal wieder meine Testumgebung überprüfen. Ich nehme an, dass ich dann die nächste Nightly nehmen sollte …
Ich denke ich kann das im Laufe der kommenden Woche schaffen und melde mich dann auf jeden Fall nachmals.

Gruß,
Frank

1 Like

Kurzer Zwischenstand: Ich habe es mal mit der 0.7.32-2640 probiert. Leider bekomme ich das PHP Skript hier überhaupt nicht zum Laufen und es wird irgendwann mit Signal 11 beendet. Aus Zeitgründen könnte ich aber nicht weiter suchen, wo genau das Problem liegt.
Ich werde bei Gelegenheit nochmal einen RPi aufsetzen und es mit einer 0.8 nightly Version überprüfen.

Hallo @DasKleingedruckte,

0.7.32 ist auch schon gefühlt uralt. Seitdem hat sich sehr viel getan. Inzwischen ist aber ein neues Stable online.

Viele Grüße

Sathya

1 Like

Hallo @sathya,

die 0.7.32 wurde mir damals angeboten, als ich die Nighly installiert habe, aber egal …
Neuer Test mit 0.8. 0-2508:
Leider keine Änderung bei dem Problem:

    01/29/19 22:39:24.026 Script Engine Server: Info: Client number 0 is calling RPC method: setValue
    (Integer) 16
    (Integer) 0
    (String) VOLTAGE
    (Integer) 3035
    01/29/19 22:39:24.027 MQTT Client: Debug: queueMessage(peerId, channel, keys, values) -> peerId=16, channel=0, keys, values
    01/29/19 22:39:24.027 MQTT Client: Debug: queueMessage (message) topic: json/16/0/VOLTAGE message:[0]
    01/29/19 22:39:24.027 MQTT Client: Debug: queueMessage (message) topic: plain/16/0/VOLTAGE message:0
    01/29/19 22:39:24.027 MQTT Client: Debug: queueMessage (message) topic: jsonobj/16/0 message:{"VOLTAGE":0}
    01/29/19 22:39:24.028 MQTT Client: Debug: queueMessage(peerId, channel, keys, values) -> peerId=16, channel=0, keys, values
    01/29/19 22:39:24.028 MQTT Client: Debug: queueMessage (message) topic: json/16/0/VOLTAGE message:[3035]
    01/29/19 22:39:24.028 MQTT Client: Debug: queueMessage (message) topic: plain/16/0/VOLTAGE message:3035
    01/29/19 22:39:24.029 MQTT Client: Debug: queueMessage (message) topic: jsonobj/16/0 message:{"VOLTAGE":3035}

Auffällig ist halt, dass das nur bei Channel 0 passiert und nicht bei den anderen Channels. Wenn ich noch irgendwie zur Lösung des Problems beitragen kann, sag bitte Bescheid.

Gruß,
Frank

1 Like

Hallo @DasKleingedruckte,

vielen Dank! Hab das Problem gefunden. Ist im nächsten Nightly behoben. Kanal 0 ist für Servicemeldungen reserviert und diese wurden in einigen Familien doppelt verarbeitet. Daher trat das Problem auch nur auf Kanal 0 auf.

Viele Grüße

Sathya

1 Like