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