Ah okay. Da fehlt mir dann noch das Verständnis zu Node Red.
Dachte ich könnte direkt mit den Werten Arbeiten die jetzt schon raus kommen, da ich sie am zu sehenden [definition=12,0]debug[/definition] Node schon als Werte erhalte.
Ah okay. Da fehlt mir dann noch das Verständnis zu Node Red.
Dachte ich könnte direkt mit den Werten Arbeiten die jetzt schon raus kommen, da ich sie am zu sehenden [definition=12,0]debug[/definition] Node schon als Werte erhalte.
Wenn sie da sind haben sie auch andere Namen, sei doch mal so gut und poste die [definition=12,4][definition='1','3']Debug[/definition][/definition] Ausgabe. Aufgeklappt oder Roh.
Werde ich heute Nachmittag/Abend machen.
Dies ist eines der Systeme die ich bisher nicht von außen zugänglich haben wollte/möchte.
Wenn sie da sind haben sie auch andere Namen, sei doch mal so gut und poste die [definition=12,4][definition='1','3']Debug[/definition][/definition] Ausgabe. Aufgeklappt oder Roh.
Das wäre die Ausgabe:
Wenn ich es richtig identifiziere kommt es momentan nur als Text raus oder?
Wenn ich nun mit ner Change Node arbeite bekomme ich diese Ausgabe:
Du hast da zwei verschiedene Datentypen. Gaszähler gibt ein Array raus, die beiden anderen nur ein String.
Was hast du jetzt bei den change node eingetragen?
Der [definition=12,0]debug[/definition] node sollte übrigens so eingestellt sein:
Dann sollte bei den beiden undefinied zumindest schonmal der Wert stehen.
Fehlt noch der Gaszähler.
Da musst du das Change Node für Ändern, wir müssen aber die gesamte Nachricht mal sehen.
Kannst du die mir mal kopieren (geht mit den Symbolen in der [definition=12,4][definition='1','3']Debug[/definition][/definition] Liste)
Sieht nun so aus:
Liegt es vielleicht daran das ich die falsche Node zum Einlesen der Werte nutze?
Die Ausgaben wie folgt:
[definition=12,4][definition='1','3']Debug[/definition][/definition] Node "Gaszaehler_m3"
{"payload":[{"result":"Gaszaehler","table":0,"_start":"2022-10-24T16:56:43.131625387Z","_stop":"2022-10-24T17:56:43.131625387Z","_time":"2022-10-24T17:56:20.047544532Z","_field":"value","_measurement":"mqtt_consumer","host":"telegraf_zaehler","topic":"gaszaehler/main/value"}],"_msgid":"3939b93e341602b9","Gaszaehler_m3":1235.486}
[definition=12,4][definition='1','3']Debug[/definition][/definition] Node "Gas_Zustandszahl"
[definition=12,4][definition='1','3']Debug[/definition][/definition] Node "Gas_Brennwert"
Also erstmal haste nicht das gemacht wie ich es gesagt habe -g- dein Change node wechselt nicht zu msg.wert1,wert2 usw.
Ist aber nicht schlimm. Lass es so.
Verbinde mal alle Ausgaben mit einem Functions Array (du willst ja alle multiplizieren, nicht addieren - hatte mein Hirn im Brei)
msg.payload = msg.Gas_Brennwert * msg.Gas_Zustandszahl * msg.Gaszaehler_m3;
return msg;
ob das so einfach jetzt geht weiß ich nicht. Rechnen mit Objekten im msg ist doof.
maybe weiß es auch wer besser`?
Hatte wert1 usw. gleich auf meine Benamung geändert^^
Klappt noch nicht mit den Dateiformaten, msg.Gaszaehler_m3 kann ich problemlos mit konstanten Zahlen rechnen, sobald ich aber einen der Hilfswerte nehmen will kommt als Ergebnis nur NaN (Not a Number). Muss mal schauen wie ich den string-Wert konvertieren kann.
Number(msg.Gaszaehler_m3) ist tzu einfach glaub ich
Jup zu einfach^^
Glaube es liegt daran, dass einen Wert aus einem array mit zwei objects multiplizieren will.
Edit:
Das Rechnen in der function mit einer "msg." und einem statischen Wert, bspw. mit * 5, funktioniert immer. Sobald ich aber mehr als eine msg. miteinander rechnen lassen will geht es nicht mehr...
uff ich bin doof.
Number(msg.Gaszaehler_m3) ist tzu einfach glaub ich
Versuchs mal mit msg.payload.Gaszaehler_m3
Egal was ich mache, sobald ich versuche einen zweiten Wert mit in die Multiplikation zu nehmen kommt als payload nur noch NaN raus.
Kannst du bei dir mal testen und einfach zwei Helfer und Home Assistant anzulegen vom Typ "Nummer", diese zu Node Red importieren und dann mit denen zu rechnen?
so ich hab das mal angesehen und du hast Recht.
Das Problem ist man muss das objekt zwischenspeichern und dann danach verfahren,
http://noderedguide.com/node-red-lectu…-function-node/
Ich rechne dann doch lieber in Home Assistant und hol mir dann die passende Entinität.
Dafür hab ich mir nen Template erstellt.
Einmal eine Zeile in die configuration.yaml zum auslagern (sonst wird die zu unsauber)
Danach die Sensors.yaml erstellt und einen zusätzliches template erstellt und einfach berechnet.
Und wenn ich den Wert jetzt noch unbedingt in Node-Red haben will hol ich ihn mir einfach.
Und jup, damit hab ich das Problem jetzt nicht gelöst sondern nur umgangen seitdem ich weis das da im Hintergrund die Daten von HomeAssistant kommen. Aber das Ergebnis zählt dann ja doch.
Danke dir, wäre dann Variante B, halte ich mal vor.
Ich werde wohl noch n bissl Jugend forscht betreiben und sonst auf den Weg um schwenken.
Möchte halt möglichst die Dinge nicht so verteilen, daher der Ansatz und auch ne gewisse Flussrichtung für den Datenstrom vorsehen (bezogen auf meine telegraf Thematik)
Ich habe es hinbekommen, endlich.
Was habe ich gemacht:
Ich habe nun drei mal msg.payload (je Wert einer). Diese verbinde ich zu einem Array mit dem join-Node. Um nun einfach rechnen zu können habe ich mir das node node-red-contrib-calc zusäätzlich installiert und dadurch calculator erhalten.
Dieser node kann wunderbar Rechnen, einfach auswählen welche Rechenart genommen werden soll, die Ausgabe dann für meinen Bedarf auf zwei Stellen nach dem Komma begrenzt und schon habe ich endlich meinen kWh-Wert.
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!