Falscher Status bei MQTT

Mir ist bei den Miscellaneous Devices (genau genommen bei meiner Xiaomi Implementierung) aufgefallen, dass der Status per MQTT bei ACTION Kanälen nicht (mehr) richtig gesendet wird.
Ein Ausschnitt aus homegear.log (Debuglevel 5) zeigt zB folgendes:

11/04/18 19:15:55.435 Script Engine Server: Info: Client number 0 is calling RPC method: setValue
(Integer) 16
(Integer) 1
(String) PRESS_SHORT
(Boolean) 1
11/04/18 19:15:55.436 MQTT Client: Debug: queueMessage(peerId, channel, keys, values) -> peerId=16, channel=1, keys, values
11/04/18 19:15:55.436 MQTT Client: Debug: queueMessage (message) topic: plain/16/1/PRESS_SHORT message:false
11/04/18 19:15:55.436 Script Engine Server: Response:
(void)

Nach meinem Verständnis sollte der Wert der per setValue(16,1,“PRESS_SHORT”, TRUE) gesetzt wird auch entsprechend per MQTT weitergereicht werden. Der Kanal ist als ACTION-Type definiert:

        <parameter id="PRESS_SHORT">
            <properties>
                <writeable>true</writeable>
                <addonWriteable>true</addonWriteable>
                <unit></unit>
                <casts>
                    <rpcBinary/>
                </casts>
            </properties>
            <logicalAction>
            </logicalAction>
            <physicalInteger>
                <operationType>store</operationType>
            </physicalInteger>
        </parameter>

Ich bin mir sehr sicher, dass das in früheren Versionen mal richtig funktioniert hat. Mit Version 0.7.30-1900 und der aktuellsten Nightly ist das leider nicht mehr der Fall.
Die Action-Kanäle aus der BidCos Familie werden übrigens richtig per MQTT übertragen.
Möglicherweise besteht ein Zusammenhang hiermit: https://forum.homegear.eu/t/schalterstatus-%C3%BCber-mqtt-nicht-korrekt/1894

Hallo @DasKleingedruckte,

vielen Dank! Gerade gefixed. Zum Hintergrund: ACTION-Variablen sollen beim Lesen den Wert false zurückgeben. Der Paketkonvertierer von Homegear gibt bei der Rückkonvertierung entsprechend immer false zurück. Früher habe ich vermutlich direkt den an setValue() übergebenen Wert als Ereignis weitergegeben. Damit aber auch ungültige Werte. Der Paketkonvertierer bereinigt die Werte, so dass im Ereignis der real gesetzte Wert übergeben wird. Nur bei ACTION wurde entsprechend ein unsinniger Wert zurückgegeben, da die Rückkonvertierung als “Lesen” interpretiert wurde. Das ist jetzt gefixed.

Ich habe mich da nicht an meine eigene Dokumentation gehalten: https://doc-source.homegear.eu/class_base_lib_1_1_device_description_1_1_parameter.html#a17e243ce3e8cf50f40c55edaaf4e969b

isEvent (default false) Set to “true” if packet is an event packet. Necessary to set value of “Action” correctly.

Viele Grüße

Sathya