NEWS
Text anstelle von Nummer to telegram Wassersensor Fibaro
-
Hallo,
wenn sich der status des Wassersensors aendert schickt mir eine Funktion ins Telegram (auch von anderen Sensoren )
let payload = { "chatId": , "type": "message", "content": "Water "+ msg.payload} return {payload};
Die msg.payload ist vom sensor , true, false etc.
Jetzt hat mein Wassersensor folgendes:
jetzt ist payload leider 0 oder 2 , wie kann ich das Value weitergeben? dh. idle oder Water leak detected
msg.value?
wenn ich den pfad verwende
payload.common.states["2"] oder msg.payload.common.states
bekomme ich nur undefined
Bitte seid so nett und sagt mir wie ich das einfuegen muss, danke.
-
@fred-freund nimm einfach eine change node und setze die payload auf
msg.common.states[payload]
-
@mickym
oder ich mache bei 0 text 1 und bei 2 WasserrohrbruchMensch Michym da lern ich ja nix hahaha
-
-
@fred-freund Hi, woher kommt denn die Debug Ausgabe die du gepostet hast? Bei mir geben die Iobroker In Nodes das gar nicht aus, für diese Ausgabe brauche ich die List Node.
-
@fred-freund Ehrlich gesagt habe ich momentan auch ein Problem das common Objekt mit einer Change Node hinzubekommen.
Im Moment schaffe ich es auch nur mit einer function Node.
Wenn deine payload.val = 2 ist, dann würde es so gehen:
Mit einer Change Node bekomme ich es leider auch nicht hin. Die function node schaut so aus:
msg.payload = msg.payload.common.states[msg.payload.val]; return msg;
Ich schau mal im Node Red Forum - ob die das mit einer Change Node eine Möglichkeit haben.
Mal schauen, was die dazu sagen: https://discourse.nodered.org/t/how-to-extract-a-property-with-a-change-node/70345
EDIT:
Die folgende Lösung funktioniert auch mit einer Change Node. Mal schauen ob sie noch eine einfachere Lösung finden.
So würde die Change Node Lösung im Moment aussehen.
-
So der Meister im NodeRed Forum hat gesprochen. So schaut die Lösung mit der Change NOde aus:
-
@mickym Also das ist Spitze, echt !!!!.
Herzlichen Dank!! -
@frankyboy73 Habe eine Abfrage des Sensors gemacht bei genau dieser Eigenschaft dann bekommst es in der Debug.
-
@mickym said in Text anstelle von Nummer to telegram Wassersensor Fibaro:
So der Meister im NodeRed Forum hat gesprochen. So schaut die Lösung mit der Change NOde aus:
Hey Mickym, nach langem hin und her...irgendwie funktioniert das nicht.
ich bekomme
wenn ich es so versuche mit true den status abzufragen:
vielleicht muss ich das irgendwie filtern....wollte nur idle oder water leak detected.
Glaube wie gesagt eine switch anhand der Nummer ist einfacher !! hattest recht! -
@fred-freund ich seh keinen Wert. Nimmst du eine List Node und ist value angehakt? In dem Objekt ist kein val zu sehen
-
-
@fred-freund Ja aber ich habe in dem Objekt, das Du gepostet hast kein val gefunden.
Ausserdem wenn das Deine list Node ist, da kommt ja gar nichts raus:
Du musst schon das gesamte Objekt ausgeben.
Und bei mir funktioniert das auch einwandfrei:
Ich habe mal so einen example state nachgebildet:
Also
{ "common": { "name": "example_state", "desc": "Manuell erzeugt", "role": "state", "type": "multistate", "read": true, "write": false, "states": { "1": "leak", "2": "water leak detected" }, "def": 0 }, "type": "state", "_id": "0_userdata.0.example_state", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1668518985872 }
Über den Admin kannst Du theoretisch den Wert so setzen: