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

Mal ne Frage in die Runde: Arbeitet ihr mit raumübergreifenden Szenen für die Lichtsteuerung (HUE) und wie habt ihr die umgesetzt? Z.B unterschiedliche Modi für Fernsehen, Kino etc.

Wenn ich es richtig sehe, kann man Szenen in der Hue App anlegen, die sind aber nur Raumbezogen.

In HomeKit kann man raumübergreifende Szenen anlegen, aber irgendwie nicht nach NodeRed weitergeben.

Bräuchte einen Denkanstoß, wie man das am besten angehen kann. Danke.

Du könntest ja beim Auslösen der Szene A dann auch diese Szene B und C triggern.

Das stimmt, könnte aber bei vielen Räumen und Szenen unübersichtlich werden.

Schöner wäre, wenn mehrere Szenen einfach nur an oder aus geschaltet werden.

Wäre das auch irgendwie realisierbar?

Eine Szene kannst du aktivieren nicht an oder ausschalten.
Du kannst dir doch einen WeMo anlegen. Beim einschalten werden dann mehrere Szenen aktiviert. Und den WeMo dann wieder atom. ausschalten.

1 „Gefällt mir“

Hi,

ist der Thread hier auch für Anfängerfragen geeignet?

Möchte folgende Flows erzeugen (um meinen Systemfresser Blockly loszuwerden)
Einfaches Verketten eines Payload mit meinem eigenen Text (damit ich auf meinem Dashboard Wochentag und Datum anzeigen kann). Ich bekomme die Wochentagsabfrage hin und auch die aktuelle Zeit, jedoch nicht kombiniert.

Danke - das wird sicher nicht meine letzte Frage gewesen sein.

:coffee:

Klar sind alle Fragen erlaubt.
Erläutere mal wo die Daten her kommen und wo sie hin sollen.

Wie sendest du die Daten an dein Dashboard?
Welches Format müssen diese haben ?

Mein Ansatz:
Ich hole mir über Timestamp minütlich die aktuelle Uhrzeit und ziehe mir über eine Funktion daraus das richtige Datum. Jetzt habe ich einen zusätzlichen Node gefunden, der filtert um welchen Wochentag es sich handelt. Wenn ich an den ein Debug hänge, kommt die Info beim richtigen Tag raus. Nun möchte ich eigentlich nur beide Werte in einen String verketten und den Wert über die iobroker-Schnittstelle an den Datenpunkt übergeben. (Übergabe des Datums an den Datenpunkt klappt auch schon).

:coffee:

Edit: 2. Anwendungsfall: In meinem Dashboard setze ich Checkboxen, welche Räume der Xiaomi saugen soll. Jeder Raum wird über folgendes gesaugt. Um mehrere Räume gleichzeitig zu saugen, müsste ich das per Semikolon getrennt einfügen.

if (msg.payload  === `true`)
{return {payload: `app_zoned_clean;[[3000,3000,3000,3000,1]]` };}

Du hast also ein Ausgang mit dem Wochentag und einen mit dem Datum ? Diese werden gleichzeitig getriggert und kommen als String?
Dann kannst du diese zusammenfügen.
Dafür gibt es ein Node Join.

Mit dem kannst du verschiedene Ausgänge oder Nachrichten zu einer zusammenführen.

Ein einfacher Syntaxfehler…

Hast du noch eine Möglichkeit, wie ich am Ende eines Strings ein Semikolon bereinigen kann?
Jeder Raum des Saugers wird darüber getrennt, am Ende darf jedoch keines auftauchen. Ich möchte aber alle Räume beliebig auswählen können.

Kannst du mal bei slack im Node Red deinen flow als snipped einstellen, dann schaue ich mir das an.

1 „Gefällt mir“

var ohne = text.substr(0, text.length-1);

3 „Gefällt mir“

Thx

Edit: Funktioniert.

Könntest du den Flow dazu bereitstellen? Hab grade einen Knoten im Kopf :slight_smile:

Wie kann ich zwei Werte / payloads miteinander vergleichen?
Bekomme über Parser zwei Zeiten und möchte prüfen, ob identisch. Wenn nicht identisch, soll er mir die Zeit (oder die Differenz in Minuten) anzeigen.

:coffee:

Sind die Werte in einem Payload oder auf zwei Payloads verteilt?

Letzteres geht nicht ohne weiteres, da der Flow ja einfach abgearbeitet wird. Du könntest den ersten Wert höchstens Zwischenspeichern. Z.B auf Flow Ebene. https://nodered.org/docs/writing-functions#storing-data

Für das Vergleichen von Zeitwerten nimmst du am besten eine Bibliothek, Moment.js ist gut. https://flows.nodered.org/node/node-red-contrib-moment

Ich habe leider zwei Payloads, da es aus unterschiedlichen Punkten in iobroker kommt.

Sehe mir deine Links mal an - ich befürchte auf den ersten Blick, dass mir das noch zu hoch geht.

:coffee:

Ich habe einen reinen Node-Red Slack Channel erstellt .

Wer mag kann da dann direkt seine Projekte mit anderen besprechen und Fragen stellen.

Das Ergebnis kann dann hier ja wieder eingestellt werden.

Hier ein Link für eine Einladung

homee-node-red Slack Channel

Hallo,

kann ich folgenden Code abändern, so dass ich statt einer Textausgabe einen HTTP-Request absende?

if (attribute && attribute.node_id == 00 && attribute.id == 000 && attribute.current_value !== attribute.last_value && attribute.current_value === attribute.target_value)
    if (attribute.current_value === 2 && attribute.current_value !== attribute.last_value){
    return {payload: date.toLocaleString() + String `                 Außenrollo Küche z2 Zustand: gestoppt     `  + attribute.current_value};
    }

Viele Grüße
JayJay

Willst du dann die Daten als request senden oder nur einen request auslösen ?

Ich möchte den Request so senden als ob er von homee käme um in den HG aufzuräumen.
Ich möchte dafür keine neuen Nodes anlegen, das wären um die 50-70 Http-Requests, da wird mir dann zu unübersichlich in node-red…

Also das sollte abgesendet werden:
http://xxx.xxx.xxx.xxx:xx/3456543457?value1=stop

Viele Grüße
JayJay