NEWS
Statusüberwachung
-
@mickym
Vielen Dank!
Es funktioniert wie gewünscht. Im Netz hatte ich in einem Erklär-Video diese Einstellung gefunden:Kannst Du mir erklären, warum diese nicht funktioniert?
-
@tontechniker
Hier kommt meine Anwendung:Nochmal vielen Dank für Deine Hilfe!
-
@tontechniker sagte in Statusüberwachung:
Kannst Du mir erklären, warum diese nicht funktioniert?
Ich kann es Dir nicht genau - sagen. Man müsste untersuchen, welche Eigenschaft der Nachrichten von Deinen ioBroker in-Nodes die mail Node gestört hat.
Ich war nur einfach zu faul das zu untersuchen.
mit msg={};
erstellst Du halt ein komplett neues Nachrichtenobjekt und somit wird alles weggeschmissen, was sonst noch von Deinen ioBroker in-nodes kam. Eigentlich müsste man das halt untersuchen, welche Parameter das war. Aber ich denke Du wolltest eine schnelle Hilfe.
-
@mickym
Danke für Deine Antwort.
Ich habe noch eine Frage: Gibt es die Möglichkeit, im Funktionsblock noch die Uhrzeit mitzugeben (wäre in der Mail bei Fehlern sehr hilfreich).
LG Hans -
@tontechniker sagte in Statusüberwachung:
@mickym
Danke für Deine Antwort.
Ich habe noch eine Frage: Gibt es die Möglichkeit, im Funktionsblock noch die Uhrzeit mitzugeben (wäre in der Mail bei Fehlern sehr hilfreich).
LG HansNatürlich ist das möglich - aber ich bin kein Freund davon, wie Du alles über eine function-Node machst. Da kannst Du gleich in JAVA Programmieren. Für Deine quick & dirty Lösung:
.... msg.topic = "Überwachung ...."; var date = new Date(); msg.topic = msg.topic + ' ' + date; ....
Ich werde Dir aber sicher nicht mehr bei Formatieren des Datums helfen. Dann machen wir wirklich einen richtigen Flow daraus und nicht so was quick & dirty. Schließlich will man so was mit schönen Mitteln eines Flows machen und nicht mit JS. Leider findet man im Netz dauernd solche Beispiele weil man sich nicht mit Node Red beschäftigen will und dann schnell ein paar Javazeilen schreibt.
Wenn Du aber wirklich wissen willst, den Datumstring gescheit formatieren willst usw. und auch Node Red lernen und beherrschen willst , dann zeige ich Dir wie man ein schönes Mail und ein vernünftigen Flow daraus macht da helfe ich Dir gerne. Dann nehmen wir auch den orginalen Timestamp von dem Datenpunkt - einverstanden?
So sträuben sich mir eigentlich alle Nackenhaare.
So geht das alles eigentlich am Sinn von NodeRed vorbei.EDIT: Ich habe das auch gerade mit meinen Datenpunkten getestet und deren Inhalte lassen sich auch direkt verschicken - also ich kann Deinen Fehler von gestern nicht nachvollziehen. Was er davor nicht mag - das gilt es halt herauszufinden und auch ob es sich bei jedem Datenpunkt so verhält.
-
@mickym
Danke für Deine Antwort!
Da ich Node Red nicht so gut kenne wie Du, war für mich die "quick and dirty" - Lösung das naheliegende.
Ich gehe aber gern mit Dir konform und bin deiner Lösung nicht abgeneigt.
Zu Edit: Kann das Problem mit dem Datenpunkt daher kommen, dass die Daten von KNX kommen? -
@tontechniker Ich kann Dir Deine Frage nicht beantworten - das würde es halt gelten herauszufinden und erfordert natürlich, dass wir etwas Zeit hier im Thread verbringen.
Ich habe mal das direkt getestet mit einer ioBroker InNode als Quelle - den Trigger nur true senden lassen - und das ging einwandfrei.
Mein Mail sah dann ganz schlicht so aus - das boolean wurde konvertiert.
Damit NodeRed einigermaßen vergleichbar ist, solltest Du in der Adapterkonfiguration diese leider standardgesetzte Funktion, dass alles in Strings konvertiert wird ausschalten. Je nachdem wieviele Flows Du hast, bedeutet es aber unter Umständen etwas Umstellungsaufwand - der aber je früher Du das machst - umso geringer ist.
EDIT:
Du kannst ja parallel einen Flow entwickeln - neben dem bestehenden - die Uhrzeit übrigens wann Du das Mail bekommen hast, hast Du ja eigentlich sowieso.
Im Prinzip müsstest Du halt nochmal die Situation von gestern wieder in dem Flow nachbilden.
-
@mickym
Wie und wo schalte ich denn die Adapterkonfiguration aus?
Zeitangabe in der Mail: Je nach Provider kommen die Mails nicht sofort durch. -
@tontechniker sagte in Statusüberwachung:
@mickym
Wie und wo schalte ich denn die Adapterkonfiguration aus?
Zeitangabe in der Mail: Je nach Provider kommen die Mails nicht sofort durch.Nun in Deiner NodeRed Instanz - diesen Haken für die Stringkonvertierung wegmachen!
Die Zeitangabe sollte eigentlich das Erstellungsdatum der Mail sein und nicht das Empfangsdatum - aber egal wir setzen das Datum.
-
@mickym
Habe Node Red Instanz umgestellt.
Ich greife jetzt die Daten nach dem Trigger und nach der Funktion ab.Das funktioniert so, die Mail wird gesendet.
Wenn ich die zwischengeschaltete Funktion herausnehme, bekomme ich wieder die Fehlermeldung "Senden fehlgeschlagen". -
@tontechniker Bitte wieder das gesamte msg.Objekt posten und auch alle Felder bitte aufklappen.
Ein grafischer Schnappschuss des Flows zur Orientierung finde ich auch immer gut.
-
@mickym
Keine Ahnung, was ich jetzt posten soll (msg.Objekt?, Felder aufklappen?)? Hier erstmal der screenshot. -
@tontechniker Nein in der Debug Node - wird nur die msg.payload ausgegeben und ich will das ganze Objekt.
Und wenn Du die Debugausgabe des ganzen Objektes postest - achte darauf dass Du es ausklappst - Pfeil nach unten
Außerdem sehe ich ja den funktionierenden Flow - ich will den ja ohne function Node sehen. - Damit wir sehen wie wir den Fehler ausmerzen können.
Soweit ich nämlich Deinen unteren Screenshot sehe - glaube ich, dass in Deiner lastchange Eigentschaft ein Mist mit irgendwelchen Steuerzeichen steht. Da ist nämlich nach der Zahl so ein komischer Strich.
-
@mickym
So, hier kommt hoffentlich das richtige. -
Na die Pfeile stehen zwar immer noch nicht senkrecht bei dem Objekt - also sind noch eingeklappt - aber gut.
Wir versuchen als erstes Mal den lastchange Parameter zu retten - kann schon sein, dass der KNX Adapter da Schmarrn macht.
Mach als erstes mal hinter Deine iobroker In-Node eine Change Node
Am einfachsten ist, Du importierst diese und hängst sie hinter Deine iobroker In-Node:
[ { "id": "92862062.7a3ea", "type": "change", "z": "6e170384.60c96c", "name": "save lastchange", "rules": [ { "t": "change", "p": "lastchange", "pt": "msg", "from": "(\\d*)\\s.*", "fromt": "re", "to": "$1", "tot": "str" }, { "t": "set", "p": "lastchange", "pt": "msg", "to": "$number(lastchange)\t", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2680, "y": 4120, "wires": [ [ "ff206ae0.4782b8" ] ] } ]
Die importierte Change Node sollte so aussehen:
Wenn das nicht geht, schmeissen wir die letzte Änderung einfach weg - brauchen die eh nicht.Wenn DU nicht weißt - wie Du die Node importierst, dann sag Bescheid !!!
-
@tontechniker sagte in Statusüberwachung:
@mickym
So, hier kommt hoffentlich das richtige.Ach eine wichtige Frage habe ich noch- Lässt Du Dir aus den ioBroker In Nodes - den Value oder das Objekt ausgeben???
-
@mickym
Die Value -
@tontechniker
Hier die neue Ausgabe:Gelöscht
-
@tontechniker sagte in Statusüberwachung:
@mickym
Die ValueNa das Objekt sieht gut aus.
Anscheinend hast Du aber die Mail Node kopiert - da gehen dann aus Sicherheitsgründen die ganzen Anmeldedaten verloren, die musst Du in die Mail Node nochmals eingeben. (und lösch die letzte Ausgabe - man sieht dort Dein Mailadresse. )
Deswegen kannst Du in der Regel auch solche Flows exportieren und veröffentlichen - die sensiblen Daten werden NIE mitgeschickt.
-