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

Moin,

kann mir jemand hier weiterhelfen? Was ist daran falsch?


var attribute = msg.payload.attribute;
var date = new Date();

if (attribute && attribute.node_id === 80 && attribute.id === 320 && attribute.current_value !== attribute.last_value && attribute.current_value === attribute.target_value) {
    global.set("pooltemp",{payload:Math.round(10.0 * attribute.current_value) / 10.0});
    return {payload:Math.round(10.0 * attribute.current_value) / 10.0};

}

Normalerweise würde ich erwarten, dass mir die Sensortemperatur auch an die globale Variable „pooltemp“ übergeben wird. Aber anstatt der Temperatur habe ich da [object Object] stehen. return payload passt.
Setze ich die Variable mit

global.set("pooltemp",19.333)

wird auch die Variable mit 19.333 gefüllt.

Viele Grüße
JayJay

Mach mal daraus:
(Math.round(10.0 * attribute.current_value) / 10.0)

Du hast json übergeben und das ist ein Object.

1 „Gefällt mir“

Danke für die Hilfestellung, das war es.
Nur verstanden habe ich es nicht.
Was ist denn ein Object? Ich wollte doch einfach nur einen Wert in eine Variable schreiben.
Und warum hat es in der return-Zeile funktioniert, aber in der Variable nicht?

Viele Grüße
JayJay

Ich kann dir die Seite empfehlen: https://developer.mozilla.org/de/docs/Learn/JavaScript/Objects/Basics
und ergänzent um zum Thema JSON zukommen dann:
https://developer.mozilla.org/de/docs/Learn/JavaScript/Objects/JSON

Im Prinzip basiert die ganze Nodred-Geschichte auf JSON .

In deinem Problem hast du zwar erfolgreich mit dem return deine in Nodered vorgeschriebene payload zurückgegeben, deine Globale Variable wolltest du aber nicht als JSON (payload) speichern sondern den Wert direkt speichern um ihn direkt zur globalen Verarbeitung zu nutzen.

Du hättest natürlich dein pooltemp - Wert dann über pooltemp.payload bekommen.

2 „Gefällt mir“

Moin,

ich habe noch ein Problem, mit dem ich mal eure Hilfe gebrauchen könnte…
Seit ein paar Tagen stürzt mein node-red immer nachts, aber nicht zur gleichen Uhrzeit, ab. Werden da irgendwo Logs geschrieben, wo mal mal reinschauen kann?
Das nervt langsam :frowning:

Gibt es bei Linux die Möglichkeit so eine Art Watchdog zu installieren, der schaut ob ein Programm läuft und es startet, wenn nicht?

Viele Grüße
JayJay

Habe aktuell ähnliche Probleme, wie @JayJayX. NR läuft unter iobroker und wenn ich in NR Flows bearbeite kann es vorkommen, dass Iobroker hierdurch komplett abstürzt. :man_shrugging:t2:

Tut mir leid, dass es bei dir auch nicht funktioniert :frowning:
Ich hoffe wir können unsere Probleme mit node-red lösen, auch wenn es nicht das Gleiche zu sein scheint.
Ich kriege mein node-red nicht zum abstürzen, selbst wenn ich viel ändere und deploye. Aber in der möchte es gerne schlafen und schaltet ab. Laut Log zwischen 3 und 4 Uhr…

Edit: Ich habe jetzt auf jeden Fall schon mal den Verursacher gefunden. Ich lasse seit Ewigkeiten nachts meine Flows auf sichern, das scheint nun nicht mehr zu funktionieren, wenn ich das manuell anstoße schaltet sich node-red ab…
Hat jemand eine Idee warum das so sein könnte? Würde meine Flows schon gerne weiter sichern…

Edit2: Ich konnte es noch weiter eingrenzen, der Fehler tritt auf seit ich das Update der Fritzbox auf FritzOS 7.20 gemacht habe und der FTP-Server für das Backup ist die Fritzbox. Was FritzOS 7.20 jetzt anders macht als FritzOS 7.10, keine Ahnung. Aber das der FTP-node node-red komplett zum Absturz bringt ist auch nicht so schön.

Weiß jemand, wie ich meine Flows weiterhin automatisiert sichern könnte?

Viele Grüße
JayJay

Mal eine pragmatische Idee, warum sicherst die Nodes so oft? Ist die Sicherung nicht relevant bei NR Änderungen oder hast bei dir ne KI, die deine Flows Nachts anpasst :sweat_smile:

Ich hätte einmal alle Paar Wochen irgendwo im worst case manuell abgelegt :man_shrugging:t4:

Um sie bei Datenverlust so aktuell wie möglich zu haben. Klar könnte man den Intervall vergrößern oder von Hand sichern, aber das finde ich nicht smart.
Außerdem wäre das Problem mit dem FTP-node dann immer noch da. :wink:

Habe aber eine Lösung gefunden: Aus irgendeinem Grund hat das Passwort in node-red nicht mehr zum Passwort in der Fritzbox gepasst. Warum der FTP-node nun node-red komplett abstürzen lässt und nicht einfach meckert…
Kann ja mal wer gegenchecken, ob das generell oder nur bei mir so ist…

Bleibt aber trotzdem noch der Wunsch wichtige Dienste auf dem Raspi zu überwachen und gegebenenfalls neu zu starten…

Viele Grüße
JayJay

1 „Gefällt mir“

Hi,

hatte jemand auch schon mal das Problem, dass im NR alles gut aussah aber die Daten irgendwie im homee nicht mehr ankommen (hatte schon sehr lange funktioniert).Erst seit gestern.

Tagebuch sagt auch, dass seit gestern nix angekommen ist.

Ich habe auch nur ein homee config node.

Keine Ahnung, ob es zusammenhängt aber ich hatte folgende Fehlermeldung erhalten.

Die Richtung homee zu NR funktioniert.

Danke und Grüße

Hat sich selbst geheilt, läuft wieder :man_shrugging:t4:


Leider tritt das Problem wieder auf. NR sieht gut aus, die Knoten bekommen die Daten, zeigen diese auch korrekt an aber es kommt nix im homee an. Tagebuch zeigt hierfür keine Einträge an. Die Geräte sind im homee auch verfügbar.

Aus dem homee heraus kann ich Geräte über den NR schalten.

Ich vermute es liegt an dieser Fehlermeldung mit dem Port 7681 aber ich habe keine Ahnung wie es analysieren oder gar beheben soll.

Wenn ich den Node Red Adapter pausiere und wieder neu starte über den iobroker, dann funktioniert es wieder und es kommt keine Fehlermeldung bzgl. dem Port :see_no_evil:

Hattest du evtl eine 2.Instanz von NR gestartet?

:man_shrugging:t4: Kann ich es im Nachhinein überprüfen?

Nein, dann nicht mehr.

Hi, hattet ihr auch schon mal das Problem, dass HG, die auf Wertänderungen aus dem vhih irgendwie nicht anspringen?

Hier ein Bsp: Ich setze aus den NR ein Alarm, der im Tagebuch sichtbar ankommt (Bild 1) und auch am Gerät (Bild 2).

Allerdings wird das HG, der eine Push schicken soll, irgendwie nicht ausgeführt. HG siehe Bild 3. Wenn ich das HG teste, funktioniert die Bedingung siehe Bild 4.

Ich habe echt keine Ahnung woran es liegen könnte. Habt ihr eine Idee oder ist es euch schon mal passiert?

Kannst du mal das vhih Gerät als Code senden, dann teste ich das mal.

VG

Hi @Micha,

meinst du sowas hier? Ich fülle den Alarm mit:

node.send({payload:{ „attribute“: { „id“:370,„value“: 19, „data“: „AirFlow: Air filter pressure switch or timer“ }}});

Danke und Grüße

Heizung.pdf (1,7 KB)

Moin,

ich möchte die Leistungswerte von 2 Plugs addieren, funktioniert aber nicht :frowning:
Muss ich dafür wirklich globale Variablen nehmen oder geht das einfacher?

//Variablen setzen
var plug1;
var plug2;

// (FRITZ!DECT #1)
if (attribute && attribute.node_id === 691 && attribute.id === 3370 && attribute.current_value !== attribute.last_value && attribute.current_value === attribute.target_value) {
var plug1 = msg.payload.attribute.current_value;
}

// (FRITZ!DECT #2)
if (attribute && attribute.node_id === 801 && attribute.id === 3932 && attribute.current_value !== attribute.last_value && attribute.current_value === attribute.target_value) {
var plug2 = msg.payload.attribute.current_value;

return {payload:Math.round(plug1+plug2)};

}

Viele Grüße
JayJay

Hallo von einem blutigen Node Red Anfänger.
Mit der super netten Hilfe von @HighControl haben wir es geschafft meine Froggit Wetterstation zum homee hinzuzufügen.
Jetzt bin ich am Feinschliff.

Wie kriege ich bei dem Windsensor, dass im homee auch die Nachkomma Stelle angezeigt wird?
Im Flow wird sie mir angezeigt.
So sieht meine Funktion aus

var payload =
{
    "attribute": { 
        "id":9,
        "value": parseFloat(msg.payload)
    }
}
msg.payload=payload
return msg;

So die Attributes

[
    {
        "id": 9,
        "node_id": 3,
        "instance": 0,
        "minimum": 0,
        "maximum": 200,
        "current_value": 0,
        "target_value": 0,
        "last_value": 0,
        "unit": "km/h",
        "step_value": 1,
        "editable": 0,
        "type": 146,
        "state": 1,
        "last_changed": 12345555,
        "changed_by": 1,
        "changed_by_id": 0,
        "based_on": 1,
        "data": ""
    }
]