NEWS
Node red Wert regelmäßig senden
-
@mickym
Wie könnte ich den vorhandenen Schalter als Trigger verwenden?
Als „If then“ in der Funktion 7 hinzufügen?
Leider weiß ich nicht wie ich das machen kann. -
@black-jocker Ich weiß zwar nicht welcher Schalter und welche Funktion 7 - aber wenn Du unbedingt mit function Nodes programmieren willst, dann kannst Du doch anhand des topics herausfinden, woher eine Nachricht stammt und diese dann in eine if else Abfrage einbauen.
if (msg.topic === "Schalter"){ //mach was } return msg;
Ansonsten programmiert man aber nicht, sondern verzweigt seinen Flow mit switch Nodes.
-
@black-jocker wo kommt denn der Wert her? Also da ich mit IoBroker arbeite, Versuche ich stets die Werte dort zentral zu holen, mittels Adapter Integrationen, per MQTT usw. Diese werden ja zwangsweise automatisch bei Änderung oder nach Intervallen aktualisiert je nachdem. Wenn ich nun in NodeRed eine Logik baue die einen Wert oder Schaltzustand als Trigger nutzt, nehme ich gerne einen iorboker IN node. Dieser erhält einen Wert, sobald er sich in IoBroker ändert. Hinter diesem kann man dann per Switch oder Function damit eine Aktion starten. Je nachdem was es ist, natürlich was zum entprellen einbauen, damit deinem Relais im Zweifelsfall nicht schwindelig wird
Hier mal ein Beispiel, wie ich den DPL nach Zustand ByPass meines Zenduresystems schalte. Sobald dieser auf true geht, sage ich der DTU SolarPassthrough also Mode 2 und wenn false bekommt sie Mode 0 also Normalbetrieb. Diese Logik würde schon fast zu Deinem Usecase passen, nur wäre deine Abhängigkeit halt der Batterie-Stand wenn ich es richtig verstehe. Der Rest steckt in dem Subflow, finde das übersichtlicher.
-
@felli sein node-red läuft auf einer victron cerbro und da läuft kein iobroker.
-
@mickym danke habe ich verstanden
Sollte auch als Beispiel dienen, irgendwie kommt der Wert ja in sein NodeRed und in seinem Falle würde ich den dann als Trigger nutzen. Sorry wenn das nicht zu 100% rüber kam
-
@black-jocker Den Wert bei Änderung / Aktualisierung in einer Flow Variable ablegen und nur diese einfach per wiederholendem Trigger weitersenden. Dann macht das auch nichts, wenn der Trigger direkt mit dem Schalter evtl. zu früh kommt, weil nach dem Schalten evtl. noch irgendwas zeitbrauchendes passiert.
-
Danke für eure Antworten.
Ich habe es jetzt über ein Swtich Node hinbekommen.
Der Wert kommt über das Dashboard, einen Numeric Node.@mickym: Dein Ansatz gefällt mir, grundsätzlich alles mit Nodes abzubilden und nicht unbedingt in functions zu programmieren. Das ist wohl auch der grundsätzliche Gedanke von Node Red.
Mein Wissen über Node red basiert auf learning by doing sowie aus ein paar youTube Videos. In den Videos wurde viel mit functions programmiert.
Ich habe einen Automatisierungs-Background, d.h. ich habe mal SPS programmiert und im Studium mal etwas Java. Aber meine Java Kenntnisse würde ich als sehr rudimentär bezeichnen.Welche Lektüre oder Webseite könnt ihr mir empfehlen um sich mal grundsätzlich mit Node Red vertraut zu machen?
Ich möchte noch eine paar Dinge auf meinem Dashboard abbilden, wie zum Beispiel die Signalstärke/ den Verbindungsstatus eines Teltonika RUTX 50 Router. Aber das ist wohl für einen Anfänger schon sehr ambitioniert.
Vielleicht stelle ich noch die eine oder andere Frage hier im Forum dazu -
@black-jocker sagte in Node red Wert regelmäßig senden:
Welche Lektüre oder Webseite könnt ihr mir empfehlen um sich mal grundsätzlich mit Node Red vertraut zu machen?
Ich würde nach wie vor das Tutorial von Steve empfehlen, auch wenn es in Englisch ist:
https://stevesnoderedguide.com/
https://www.youtube.com/watch?v=jWjyIz4Jz58Deutschsprachig gibts eine kleine Turorialreihe auch mit dem iobroker - auch wenn das inzwischen auch schon in die Jahre gekommen ist:
https://www.smarthome-tricks.de/uebersicht-iobroker-node-red/Im Prinzip brauchst Du anstelle von function Nodes in der Regel nur Change Nodes, um Deine Nachrichtenobjekte zu verändern und switch Nodes um Deinen Flow mit Bedingungen zu versehen.
Dazwischen sind Input/Trigger Nodes aus dem Dashboard oder aus verschiedenen Systemen und Ausgaben wiederum auf Dashboard oder zum Steuern in Systeme hinein.
Deshalb muss Dein Logik immer sein.
- Was triggert meinen Flow
- Was will ich ausgeben und/oder steuern
Und dazwischen bildest Du 3. Deine Logik ab - in dem Du die Nachrichtenobjekte entsprechende behandelst.
-
@black-jocker ich habe null Plan von Javascript aber mit Programmierung von CNC Maschinen. Daher ist das logische denken nicht das Problem wie bei dir, ich brauche nur jemand der die Sprache spricht. Habe mir selbst an der Stelle viel mit KI geholfen muss ich sagen. Der große Vorteil den ich in function nodes sehe, ist halt das man komplexere Szenarien in einem Flow erschlagen kann, anstatt zig switch und Change nodes. Aber das muss jeder selbst rausfinden was man besser gehandelt bekommt.
Top das es läuft, freut mich
-
@felli Man kann auch komplexere Flows mit Nodes realisieren und das muss nicht unübersichtlich sein - man kann auch Subflows verwenden.
Du kannst auch jeden Flow in einer function Node realisieren - nur das hat halt nichts mehr mit den Vorteilen einer wartungsfreundlichen grafischen Programmierung zu tun.
-
@mickym habe mich falsch ausgedrückt sorry meinte nicht in einem einzelnen Flow sondern einem einzelnen node sorry. Wenn ich mehr als einen Wert in der Logik habe die am Ende entscheiden ob true oder false z.B. nehme ich gerne function nodes, in anderen Fällen arbeite ich ebenso gerne mit Switch - Change usw. Aber am Ende doch egal, jeder macht es so wie es ihm am besten passt und es übersichtlich bleibt. Eine Funktion im Flow ist natürlich Blödsinn das war echt falsch gegriffen das Wort, dann kann man tatsächlich direkt in einem Script hexen
-
@felli Ein Function Node ist halt auch wesentlich schwieriger zu debuggen - Du musst mit node.warn arbeiten etc., wenn Deine Logik in der function Node nicht funktioniert.
In einem Flow kannst Du einfach das Kabel trennen oder irgendwo eine Debug Node hinmachen.
Function Nodes nutze ich wirklich nur, wenn ich einen Nodekontext benötige, ggf. andere NodeJS Funktionen nutze möchte. Je länger ich mit NodeRed arbeite, desto mehr habe ich function Nodes ersetzt.Wenn ich mehr als einen Wert in der Logik habe die am Ende entscheiden ob true oder false z.B. nehme ich gerne function nodes,
Gerade hier ist das grafische Arbeiten von Vorteil, in dem man die Bedingungen als switches implementiert. Ordnet man diese nun parallel oder seriell an, hat man sofort den Überblick ob man mit UND oder ODER verknüpft hat und diese Bedingungen sind leichter zu durchschauen oder zu debuggen.
-
@mickym da hat du Recht aber wenns einmal läuft ist es auch gut. Wie gesagt ich nutze es oft bei einfachen Logiken mit Switch und Change aber z.B. bei einer dynamischen Berechnung der Ladeleistung aus Überschuss inkl Flow Kontext komme ich einfach nicht an der Function vorbei. Lerne hier aber auch mega gerne von Profis ehrlich gesagt, ich bin bei den Sachen noch halbwegs grün hinter den Ohren
Schau dir gerne mal mein Werk an, ist nicht der letzte Stand aber groß hat sich hier nichts mehr geändert.
-
@felli Na schaut schön übersichtlich aus.
- jedenfalls sollte man gerade, wenn man Anfänger Tipps gibt - diesen das Codeschreiben nicht unbedingt angewöhnen und ja ich weiß, dass wenn man im Netz nach Beispielen sucht, die meisten codieren und ChatGPT codiert sowieso am liebsten, da es die Node nicht wirklich malen kann.
Aber gut - ich denke es wurde genügend Argumente ausgetauscht und am Ende zählt das Ergebnis. Nur wie gesagt, man sollte halt das Debuggen und das Verstehen bei der Fehlersuche immer mitbedenken, da dies in meinen Augen halt ein fundamental und wesentlicher Vorteil dieser grafischen Programmierung ist.
-
@mickym ich bin doch hier vollkommen bei Dir und habe auch nicht das Gegenteil empfohlen
Schau in meinen Flow und die Subflows ich nutze beides und immer so wie es muss. Am liebsten mag ich es pragmatisch und einfach und das besonders weil ich auch erst vor kurzem wirklich intensiv angefangen habe mit NodeRed und IoBroker. Aber für so einen Austausch ist ein Forum doch da, alle Meinungen in einen Pott und am Ende kommt hoffentlich was lauffähiges raus
Danke das dir mein Werk gefällt habe auch Monate dran gefeilt ... Aber es läuft mehr soll es ja auch nicht.
By the way, der FC ist wieder erstklassig