NEWS
MQTT on und off als true und false interpretieren
-
@paul53
sollte "on" und "off" beim lesen nicht automatisch in "true" und "false" gemappt werden?
bei "on" funktioniert es ja auch -
@mibr85 sagte: sollte "on" und "off" beim lesen nicht automatisch in "true" und "false" gemappt werden?
Bei einem Alias vom Typ "boolean": Ja.
In einem Skript / Blockly: Nein. -
@paul53
wieso script?
der wert kommt über MQTT und wird in einen Datenpunkt geschrieben "on" wird automatisch zu "true" gewandelt ein "off" komischerweise nicht in "false"
ich steh irgendwie auf dem Schlauch -
@mibr85 sagte: der wert kommt über MQTT und wird in einen Datenpunkt geschrieben "on" wird automatisch zu "true" gewandelt
Ist der MQTT-Datenpunkt vom Typ "boolean"? Wenn "on" und "off" empfangen werden, muss er vom Typ "string" sein und die Wandlung nach "boolean" muss per Alias erfolgen.
-
@paul53
Geht leider nicht, ich denke an der Alias regel ist noch was falsch oder?der Quell Datenpunkt:
{ "common": { "name": "Fingerscanner Micha", "desc": "Manuell erzeugt", "role": "indicator", "type": "string", "read": true, "write": true, "def": false, "custom": { "mqtt-client.0": { "enabled": true, "publish": false, "pubChangesOnly": false, "pubAsObject": false, "qos": false, "retain": false, "subscribe": true, "subChangesOnly": false, "subAsObject": false, "subQos": false, "setAck": false, "topic": "ekey/Micha" } } }, "type": "state", "_id": "0_userdata.0.eKey.Fingerscanner_Micha", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1648981213519 }
Der Alias Datenpunkt:
{ "common": { "name": "Fingerscanner Micha", "desc": "Manuell erzeugt", "role": "state", "type": "boolean", "read": true, "write": true, "def": "", "alias": { "id": "0_userdata.0.eKey.Fingerscanner_Micha", "read": "val == 'on'" } }, "type": "state", "_id": "alias.0.Fingerscanner_Micha", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1648981930887 }
-
@mibr85
Da bei "read" automatisch gewandelt wird, muss man nur "write" vorgeben:"alias": { "id": "0_userdata.0.eKey.Fingerscanner_Micha", "write": "val ? 'on' : 'off'" }
Ändere "role" von "state" in "switch". Da jeweils "read" und "write" true sind, nehme ich an, dass der Datenpunkt in beide Richtungen wirkt?
-
@paul53
muss ich denn noch was neustarten oder der gleichen?
weil der Wert von ALias ändert sich leider nicht der bleibt bei "null" egal ob "on" oder "off" im datenpunkt steht???{ "common": { "name": "Fingerscanner Micha", "desc": "Manuell erzeugt", "role": "state", "type": "boolean", "read": true, "write": true, "def": "", "alias": { "id": "0_userdata.0.eKey.Fingerscanner_Micha", "write": "val ? 'on' : 'off'" } }, "type": "state", "_id": "alias.0.Fingerscanner_Micha", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1648988101911 }
wenn ich über die Maske eingebe meckert er:
-
@mibr85 sagte: wenn ich über die Maske eingebe meckert er:
Nicht unter "Lesen" eingeben, sondern unter "Schreiben".
@mibr85 sagte in MQTT on und off als true und false interpretieren:
muss ich denn noch was neustarten oder der gleichen?
Mach mal einen Browser-Refresh.
-
@paul53
Leider funktioniert es immer noch nicht wirklich evtl habe ich einen Denkfehler..-
ich lege eine Uservariable an z.B. 0_userdata.0.eKey.Fingerscanner_Micha (Muss die Variable Boolean oder string sein?)
-
auf diese Variable aboniere ich mit MQTT subscribe den topic: ekey/Micha (darüber empfange ich on / off)
-
ich richte ein Alias ein mit folgenden Parametern, leider kommt dann immer diese Fehlermeldung:
-
das Alias wandelt den Wert der Variable 0_userdata.0.eKey.Fingerscanner_Micha automatisch von on / off in true / false um oder den Wert der Variable alias.0.Fingerscanner_Micha?
-
-
@mibr85 sagte: Uservariable an z.B. 0_userdata.0.eKey.Fingerscanner_Micha (Muss die Variable Boolean oder string sein?)
Da der Datenpunkt "on" oder "off" enthält, muss er vom Typ "string" sein.
@mibr85 sagte in MQTT on und off als true und false interpretieren:
Alias wandelt den Wert der Variable 0_userdata.0.eKey.Fingerscanner_Micha automatisch von on / off in true / false um
Ja, wenn der Alias vom Typ "boolean" und das Original vom Typ "string" sind.