NEWS
Daten 1 mal im Monat schreiben
-
Hallo Zusammen
stehe gerade vor einem Kleinen Problem und vieleicht hat hier jemand eine Passende Lösung.
Ich Lese Daten von Stromzählern wasserzählern etc. ab.
Diese Daten möchte ich gerne für die Weitere Verarbeitung in eine csv schreiben.
Soweit gut und Funktioniert.Allerdings werden die Daten ja permanente geschrieben was die csv nur ünnötig Groß macht.
Ich Benötige die Werte nur am 1sten des Monats in der csv.Weis jemand wie ich das am einfachsten steuern kann ?
-
@saschah2511 nimm eine cron-plus Node. Die triggert wann du es Dir wünschst.
-
@mickym soweit verstanden und auch schon eingebaut aber wie verknüpf ich das nun? (wie ein und)
der Ausgang der Funktion 18 schreibt ja immer !Muss da ja jetzt irgendwie dazwischen das das dann nur zur eingestellten zeit durchgeht in die write file
-
@saschah2511 Na durch irgendwas wird der Flow ja getriggert. Wenn Du das aus den iobroker-In Nodes nimmst, dann ersetze die durch die Cron Node und hol Dir die Werte über iobroker-get Nodes. Man sieht halt nur einen Miniausschnitt.
Die andere Möglichkeit ist - Du kannst es so lassen wie es ist und nutzt eine switch Node um zu filtern - zusätzlich nimmst Du noch ein trigger Node, damit in dem gewünschten Zeitfenster nur eine Nachricht durchkommt. Das geht auch.
Ich würde allerdings die 1. Methode verwenden und genau auf den Punkt triggern und die Werte holen.
-
@mickym Muss leider nochmal Stören
komm hier echt nicht weiter bzw. versteh es warscheinlich einfach nicht.
Meine Werte Hole ich leider nicht über einen IO Brocker sondern habe die Direkt in Node Red und im Endefekt Spukt die Funktion 18 Folgendes Aus was genau so in die CSV muss ! Jedoch nur 1 Mal im Monat !
Crone-Plus soweit verstanden Würde auch Funktionieren gibt ein Payload zur eingestellten Zeit aus !Aber wie Verknüpf ich das jetzt das ich nur wenn Crone Plus sein Ausgang bringt die SCV Mit dem Inhalt der Function 18 beschrieben wird ?
-
Du schreibst den Inhalt Deiner function 18 in einer Flowvariable und die cronnode holt diese dann ab:
Deine function 18 - speicher die payload in einer Flow variablen - z.Bsp SML
dann machst den Ausgang Deiner function Node einfach weg:
Deine payload speicherst Du in einer Flow variable:
msg.payload = { "SML.Total.in" : 5000, "SML.Total.out": 15000, "SML.Power_curren": 500, "Time" : new Date() } flow.set ("SML", msg.payload);
Die function Node selbst gibt nichts mehr aus!!! (Also return msg; als letzte Zeile kannst wegschmeissen und die Ausgänge der function Node auf 0 stellen).
EDIT: Kannst natürlich auch den Ausgang dran lassen, um zu Debug Zwecken irgendwas mit einer Debug Node zu kontrollieren!! Wichtig ist ja nur die Speicherung im Flow-Kontext.In Deinem Kontext sind aber die Inhalt gespeichert und werden aktualisiert.
Die cron-plus Node holt nun den Inhalt der Flowvariablen ab und Du schreibst in die csv:
Hier der Beispielflow zum Import:
=============================================================================================
Du musst halt dafür Sorge tragen, dass zum Zeitpunkt halt was korrektes im Flowkontext drin steht.