Node Red - Hilfe-/Frage-/Ideen-/Austausch - Thread

Ich stehe da jetzt an.
Mein Bewegungsmelder steuert ein Lampe für 5 Minuten an, dann aus. Das funktioniert.
Ich möchte nun eine Bedingung einbauen.
Der Trigger soll nur auslösen, wenn die Deckenlampe2 eingeschaltet ist.
Im Trigger selbst habe ich schon eine Bedingung eingebaut (nur triggern wenn ein true kommt)
Wo, muss ich da was einbauen?

@bergjet wo bekommst du den Status deiner zweiten Lampe her ?

Nein das geht nicht @JayJayX, wenn ein Return gesendet wurde dann ist Ende mit der Funktion bis zum nächsten Trigger.
Daher gibt es die Funktion Multimessage.
Damit sendet die Funktion dann mehrere Return.
Ich kann dir mal ein Beispiel fertig machen für eine Multimessage.


Hier ein Beispiel für 2 Ausgaben an zwei Outputs.

1 „Gefällt mir“

Kommt vom huemagic node
45

Habe ich auch schon festgestellt :smiley:
Ich habe das jetzt einfach in eine neue Funktion gemacht… Ist dann zwar blöd, wenn sich mal ein Sensor ändert müssen an mehreren Stellen die IDs geändert werden, aber damit kann ich leben, kommt ja nicht so oft vor…

Danke @Micha, hast mir einige HG eingespart und ich habe einiges an Übersichlichkeit zurückgewonnen. Mal sehen was ich sonst noch alles so auslagern kann :wink:

Viele Grüße
JayJay

1 „Gefällt mir“

@bergjet,

Du hast die Möglichkeit den Zustand deiner Lampen in eine Globale Variable zu speichern und diese dann als Bedingungen für das schalten zu benutzen.
Dies bedarf dann jedoch zwei weitere Funktionen.

Das wird wahrscheinlich das sinnvollste sein.

VG Micha

Danke, habe es nun einmal mit Blockly gemacht.

Gibt es Interesse an einer kleinen Zusammenstellung von Befehlen für den homee Node Red Adapter ?

Würde die dann einfach mal zusammenfassen.

VG Micha

10 „Gefällt mir“

Mach, in Form eines Wiki-Eintrags, ich bin sicher, dass @stfnhmplr das dann sowohl von der homeean-Seite als auch von der Plugin-Seite aus verlinkt, oder?

1 „Gefällt mir“

@hblaschka du weißt doch das ich kein großer Wiki Schreiber bin🙈

Du schaffst das - andere springen dann sicherlich gerne ergänzend ein. Es geht nur um die Inhalte, nicht darum sich zu verkünsteln (wie ich es zu tun pflege).

2 „Gefällt mir“

Ich finde den Vorschlag ja auch super! Bedeutet zwar wieder Arbeit, weil man Ideen bekommt, auf die man sonst nicht gekommen wäre, aber gut finde ich es trotzdem. :slight_smile:
:coffee:

Hallo, ich bastel auch mit Node Red und hab eine Anfängerfrage…
Leider hab ich grad keine Bilder zum Problem , deswegen versuche ich das zu beschreiben, Sorry wenn ich mich da ungenau ausdrücke, bin wirklich blutiger Anfänger mit dem Thema…

Den homee hab ich in Node Red eingebunden, wenn ich mir dann anzeigen lasse was da alles drin steckt, bzw was ich auslesen könnte, ist das ja ziemlich viel…jetzt die Frage.
Wie muss die Function msg.payload ausehen um zb eine bestimmte Temperatur eines sensors auszulesen und zb in eine Gauge einzubringen.
Wie komme ich auf den Pfad zu dem Wert?
War das einigermaßen verständlich?
Vielen Dank für eine Tip.
Grüße

Es ist verständlich.

Du kannst mit einem GET:nodes deine Geräte abfragen.
Hier findest du dann die entsprechenden Node Id‘s und die Attribut id‘s.

Die Funktion folgt dann nochmal.

VG Micha

So, jetzt ein paar Bilder dazu. Hab einiges lösen können. Jetzt bekomm ich im Debug eine Serie an Fehlern angezeigt, der Flow funktioniert aber, aufm Dashboard zeigt es mir die gewünschten Temperaturen an.
Kann mir da jemand vielleicht ein Tip geben.
Vielen Dank

Das ist leider falsch aufgebaut

Bitte entferne das Inject node vom homee.
Der homee sendet automatisch Daten und braucht keine Zeitliche Auslösung .

var attribute = msg.payload.attribute;
If(!attribute){ return }
else if ( attribute.id === 000){
return {payload: attribute.current_value}

probiere mal das in deine Funktion einzusetzen und ändere die 000 gegen die Attribut ID deines Sensors

VG Micha

Vielen Dank für die schnelle Antwort und Hilfe.
Jetzt bleibt noch ein Fehler den ich nicht weg bekomme und die Frage welches die Attribute id ist. Stimmt das was ich angenommen habe.
Sorry, mein Vorgehen ist ein wenig try n error…

Semicolon ( ; ) nach dem return, dann: if (!attribute) { return; }

Ich kenne mich nicht mit Node-Red aus, aber in der Programmierung ist das meistens so.

Mach mal hinter dem ersten Return ein Semikolon.


Hm, irgendwie nicht…

Kann das so funktionieren?