Hallo!
Ich arbeite mich so langsam in Node-Red ein und stehe vor einem Problem.
Von meinem Marstek Speicher lese ich per Modbus schon einige Werte ein und bringe sie im Dashboard zur Anzeige. Jetzt bekomme ich auf einem Modbusregister die Zahlenwerte 0,1,2,3 . Diese entsprechen gewissen Zuständen wie 1: Standby oder 2: Charge etc. Den entprechenden momentan Textwert möchte ich in Dashbord zur Anzeige bringen. Ich habe so gar keine Idee wie ich das machen könnte. Ich hab das bist jetzt immer in eine Senor Node geschrieben und dann die Werte zur Anzeige im Dashbord gebracht. Aber ich glaube das ist für mein Problem nicht der Lösungsweg.
Wer hat eine Idee?
Danke!
Ein change node in node-red, was der Name ja vermuten lässt, damit kann man changen, also ändern Und man kann halt mehrere Changes in einem Node definieren, soviele wie man braucht.
ändere 1 ==> standby
ändere 2 ==> charge
…
Danke! Aber ich bin blutiger Anfänger.
Wie sieht das aus. Hättest du ein Beispiel für mich? (Snapshot)
Auch als Anfänger kann man Dinge selbst mal probieren, denn sonst bleibt man ja ewig Anfänger wen man nur fertige Lösungen per copy&paste einsetzt
So schwer ist es nicht.
Change node in den Flow ziehen an besten gleich direkt auf die Verbindung zwischen den buffer parser node und den sensor node, denn da muss er ja hin.
Der buffer liefert ne zahl und möchst aber einen text.
Doppelklick auf den Change Node.
Und dann unten links auf das Icon das aussieht wie ein Buch.
Und schon wird rechts erklärt was dieser Node macht und wie.
Du möchtest “Ändern”, per default steht der Node vermutlich bei den Regeln auf “Setze”.
Also hier auf “Ändern” umstellen. msg.payload sollte klappen.
Dann prüfen ob du den Zahlenwert als Zahl oder Text bekommst, ich würde aber vermuten es ist ne Zahl.
Also “Suche nach”, dann “number aus dem Dropdown wählen” und ne 1 eintippen. Und bei “Ersetze durch” dann “string” aus dem Dropdown und in das Feld den von dir gewünschten Text also z.B. “running” eintippen.
Fertig mit Teil 1 von x.
Unten links gibts ein “+ hinzufügen” mit dem du eine weitere Regeln hinzufügen kannst oder halt auch mehrere, für die Zahlen 2,3,4,5…
Und der Change node muss letztendlich zwischen den number parser und den
Hallo! Ja, probieren geht über studieren. Ich selbst habe schon vieles ausprobiert kam aber nicht zum Erfolg, da mir der Lösungsweg fehlt. Wenn man wie früher im Matheunterricht den Lösungsweg einmal erlernt hat geht es leichter. Ich habe das mit der Change Node jetzt mal probiert aber ich bekomme in der SensorNode nach wie vor noch die Zahl angezeigt. Ich vermute mal das die SensorNode vielleicht nicht die richtige Node sein könnte? Könntest Du da noch mal darüber schauen?
Bist du dir sicher?
also bei mir funktioniert das tadellos.
Den node-red companion über HACS hast du aber installiert oder?
[{"id":"26cc016061fcae42","type":"tab","label":"Flow 2","disabled":false,"info":"","env":[]},{"id":"d3d5e769e7bfe567","type":"inject","z":"26cc016061fcae42","name":"1","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"1","payloadType":"num","x":130,"y":120,"wires":[["e91be56e12b6517d"]]},{"id":"e91be56e12b6517d","type":"change","z":"26cc016061fcae42","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"num","to":"Sleep","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"2","fromt":"num","to":"Standby","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":330,"y":140,"wires":[["92e3fa5c4691dbbe","4d3c781b3872c6d5"]]},{"id":"92e3fa5c4691dbbe","type":"debug","z":"26cc016061fcae42","name":"debug 8","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":580,"y":100,"wires":[]},{"id":"a7ca83015903191a","type":"inject","z":"26cc016061fcae42","name":"2","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"2","payloadType":"num","x":130,"y":180,"wires":[["e91be56e12b6517d"]]},{"id":"4d3c781b3872c6d5","type":"ha-sensor","z":"26cc016061fcae42","name":"marstek_status","entityConfig":"f863a7e5be2af469","version":0,"state":"payload","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":620,"y":180,"wires":[[]]},{"id":"f863a7e5be2af469","type":"ha-entity-config","server":"c283ebd9.37ee08","deviceConfig":"","name":"","version":6,"entityType":"sensor","haConfig":[{"property":"name","value":"marstek"},{"property":"icon","value":""},{"property":"entity_picture","value":""},{"property":"entity_category","value":"diagnostic"},{"property":"device_class","value":"enum"},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":"measurement"}],"resend":false,"debugEnabled":false},{"id":"c283ebd9.37ee08","type":"server","name":"Home Assistant","addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"","connectionDelay":false,"cacheJson":false,"heartbeat":false,"heartbeatInterval":"","statusSeparator":"at:","statusYear":"hidden","statusMonth":"hidden","statusDay":"hidden","statusHourCycle":"h23","statusTimeFormat":"h:m:s","enableGlobalContextStore":true}]
Anbei mein Beispiel flow wie im Bild zu sehen.
Ich probiere es mal aus. Danke!
Danke! Jetzt funktioniert es. Die Ursache war die Anpassung der buffer parser Node an die change Node. Vielen, vielen Dank für die Hilfe!
by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)