NEWS
Visualisierung mit Node Red erstellen
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
Wie rechne ich diese 5,85 in Stunden und Minuten um?
Na 5,85 Stunden - sind in jedem Fall 5 Stunden und 0,85*60 Minuten. Also 51 Minuten.
-
@mickym Ich weiß Du magst Sie nicht, aber müsste dann die Berechnung doch in eine davor geschaltete function node?
Aber lass mal, ich sollte es eigentlich rausbekommen. -
@damrak2022 Ohne function Node. Du musst nur das ggf. in eine Zahl umwandeln - ist das Text oder Zahl?
-
@mickym Typ ist number
-
@damrak2022 Wie wäre es damit?
$floor(payload) & " Std. - " & (payload - $floor(payload)) * 60 & " Min."
aber wenn Du lieber in Javascript programmieren willst, kannst Du natürlich eine function Node verwenden.
-
@mickym Sorry, ich soll ja nachfragen. Aber das was Du gerade gepostet hast kapiere ich garnicht.
Bei mir sieht das erstmal so aus:
-
@damrak2022 Ja und da machst Du eine Change Node wie unten dargestellt dazwischen. Ich habe den Datenpunkt nicht deswegen habe ich Deine 5.85 aus dem Datenpunkt in eine Inject Node gepackt.
In die Change Node gibst Du den Code ein, den ich unten gepostet habe um Deine payload zu "changen" äh zu "ändern".
-
@mickym Ah, okay - danke
-
@damrak2022 Falls Du aber lieber programmieren möchtest - hier der Javascript Code.
msg.payload = Math.floor(msg.payload) + " Std. - " + Math.round((msg.payload - Math.floor(msg.payload)) * 60 ) + " Min."; return msg;
-
@mickym Ich stelle gerade fest, das bei der Minuten Ausgabe auch nochmal ein Trennzeichen auftaucht. Und bei einem Tag habe ich eine ewig lange Ausgabe, obwohl der Code überall identisch ist. Und das ist die Debug Ausgabe von der betroffenen Change Node.
Ich habe den Flow kopiert und nur die "in node"angepasst. Kann das daher kommen?
-
@damrak2022 OK - dann muss man halt die Minuten noch Runden. Wenn Du das Trennzeichen nicht willst, dann lösche es halt raus.
So hier ohne Trennzeichen und gerundet:
$floor(payload) & " Std. " & $round((payload - $floor(payload)) * 60) & " Min."
-
@mickym sagte in Visualisierung mit Node Red erstellen:
$floor(payload) & " Std. " & $round((payload - $floor(payload)) * 60) & " Min."
Habe mir das gleich mal weggespeichert. So ist es perfekt und ich bin für meine Verhältnisse erstmal zufrieden.
-
@damrak2022 Na das schaut doch schon Klasse aus - und dann auch noch ohne function Node.
-
@mickym Ja, bin auch sehr zufrieden, nur das mit der Zeit hätte ich niemals hinbekommen.
-
@mickym Ich habe noch eine Frage zu diesem Flow, welchen ich ja mit Deiner Hilfe erstellt habe:
Es soll ja nur eine Nachricht gesendet werden, wenn der Wert unter 20 ist. Nach Beendigung der Reinigung bekomme ich aber 4 mal ein "true" als Pushover gesendet.
Die Change Node sind so konfiguriert:
Die Switch Node so:
Ist da ein Fehler drin?
-
@damrak2022 Datentypen?
-
@mickym Bei allen "number".
-
@damrak2022 Ja dann schau mal Deine switch Node an???
-
ist die delay Node - für jedes msg.topic konfiguriert - brauchts ja nicht.
-
Du siehst ja an dem blauen Quadrat - dass alle aktiv sind.
-
Ist doch richtig dass Du 4 mal true bekommst. Wenn Du nichts bekommen willst , dann musst halt alles weglassen was über 21 ist. So ist doch richtig - Du willst anscheinend auch benachrichtigt werden, wenn der Wert über 20 ist, sonst hättest Du es doch weggelassen??? - Oder falls nicht, frage ich mich, warum Du das dran gemacht hast.
-
-
@mickym Okay, dann haben wir uns falsch verstanden. Ich möchte nur benachrichtigt werden, wenn der Wert unter 20 gefallen ist. Also nehme ich die untere Change Node weg.
-
@damrak2022 Ja und aus der Switch Node auch löschen und schau Dir den DATENTYP Deiner Switch Node an!!!
Warum ist das nicht logisch für Dich, wenn Du Dir den Flow anschaust?