NEWS
Zigbee2mqtt installation
-
Ehrlich gesagt ich habe keine Ahnung was du machst und warum du die payload geschachtelt hast. Tut mir leid aber ich steige da aus.
Wenn ich 2 Nachrichten mit einer payload als Objekte enthalte und einfach über eine JOIN Node in einem Array zusammenfasse - dann ist da nichts geschachtelt.
und ich fasse das in einer JOIN Node zu einem Array:
Bei Dir musst halt sekunden nehmen.
Jedenfalls hab ich dann eine payload mit einem sauberen Array der einzelnen Objekte.
Also keine Ahnung was Du da machst mit verschachtelten payloads.
Es steht ja auch verbinde alle msg.payloads - da tauchen keine anderen Eigenschaften in dem Array auf, die außerhalb der payload standen.
-
War verschachtelt weil ich die Join Node versehentlich gelöscht hab, neu eingefügt und vergessen von "Gesamtes Nachrichtenobjekt" auf msg.payload zu ändern. Alles gut.
Wie gesagt, vergiss das wieder^^
Die Tabelle steht, und ich versuche grade nur noch den Text andersfarbig hinzubekommen.
Gebe da jetzt aber auf.
99% der Suchtreffer ändern einfach nur den Hintergrund, und das was ich gefunden hab macht den String in dem Feld rot und fett, aber halt immer und ich bin zu blöd es hinzubekommen dass er unterscheidet zwischen "Online" und "Offline" und dann unterschiedliche Farben nimmt - was ich bei Zahlenwerten problemlos hinbekommen hatte.
Da suchst du nach nem einfachen Beispiel aber 95% der Suchtreffer gehen voll am Thema vorbei, und da wo es passt geben dir 10 Leute 20 Möglichkeiten das zu machen, eine exorbitant komplizierter als die andere - ich hab grad die Schnauze voll^^
Wenn der Frust weggeschlafen ist mach ich "Online" zu ner 1 und "Offline" zu ner 2 und mach nen switch-case... das funktioniert wenigstens ohne Raketenwissenschaft studiert haben zu müssen..... -
@mickym
Nachdem ich jetzt wieder nen Monat quasi nichts mit NR gemacht habe...
Ich versuche grade rauszufinden wie ich dem Payload ein neues Objekt hinzufügen kann.
Könntest du mir hier nochmal aushelfen?Ich möchte meiner Tabelle nun auch den Ort der Sensoren hinzufügen.
In der ersten Change Node erstelle ich msg.name und ziehe den Name aus der Topic:
Direkt in den Payload kann ich es nicht machen, weil "non-object type", also ich kann da keine neue Property im Payload erstellen.
Deshalb verschiebe ich es, nachdem das Payload in ein Objekt geändert wird.
Zweite Change Node:
Das funktioniert soweit auch, aber nachdem ich die Flowvariable setze, ist msg.name wieder vorhanden. Warum?
Der zweite Output ist nach der Change Node in der ich das Verschiebe. Da ist kein msg.name.
Der erste Output im Debug ist nach der Function Node in der ich die Variablen setze. ich verstehe nicht wieso da plötzlich wieder msg.name auftaucht....
-
@schmetterfliege Ehrllich gesagt verstehe ich nicht. Vor der ChangeNode ist msg.name vorhanden, dann verschiebst Du es in die payload (als payload.name) und in der 2. Ausgabe ist es weg. Das ist doch korrekt?
-
@schmetterfliege sagte in Zigbee2mqtt installation:
Das funktioniert soweit auch, aber nachdem ich die Flowvariable setze, ist msg.name wieder vorhanden. Warum?
Wie siehst Du das bitte? - Da ist doch keine debug Node dran? Die Ausgabe passt nicht mit dem Flow zusammen, sondern sah eher so aus, als ob die vor und nach der Change Node stammt.
-
@mickym
ich hoffe das Bild ist nicht zu unübersichtlich^^
-
@schmetterfliege Wenn in dem Code nur das drin steht, was Du unten gepostet hast, dann sage ich eigentlich - nicht möglich.
Am Besten Du exportierst mir mal die beiden Nodes (change und function) und ich versuche das mal mit einer Inject Node nachzuvollziehen.
-
[ { "id": "80c0dd7a6427f6e0", "type": "change", "z": "1090acf7.2d6813", "name": "name to payload", "rules": [ { "t": "move", "p": "name", "pt": "msg", "to": "payload.name", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 990, "y": 1460, "wires": [ [ "e2a57fbfb03ea7b0" ] ] }, { "id": "5cfdb31c9c532c13", "type": "function", "z": "1090acf7.2d6813", "name": "Flow setzen", "func": "flow.set('zigbee.' + msg.topic + '.temperature', msg.payload.temperature);\nflow.set('zigbee.' + msg.topic + '.humidity', msg.payload.humidity);\nflow.set('zigbee.' + msg.topic + '.name', msg.payload.name);\nflow.set('timestamps.' + msg.topic + '.timestamp', msg.timestamp);\n\nreturn msg; \n", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1170, "y": 1460, "wires": [ [ "d7af99069e0a8849", "887b82845ce1a0fb" ] ] } ]
-
@schmetterfliege Tut mir leid. Ich kann es nicht nachvollziehen:
-
Irgendwas ist da kaputt bei mir.
Name taucht gar nicht in der Flowvariable auf:
Jetzt werd ich ganz Banane..
vor der function Node wird msg.name doch ganz offensichtlich - auch laut debug node - nach msg.payload.name gesetzt.
Bei dem was die function node aber bekommt (bzw. was hinten aus der Function node raus kommt) ist das aber wieder in msg.name statt msg.payload.name.
Logischerweiße kann es dann nicht in der Flowvariable sein, weil msg.payload.name ja für die Function node nicht existiert.
Fehler in der Matrix??? -
@schmetterfliege Überprüfe Deine Kabel mal - vielleicht sind die zu eng zusammen und Du bypassed . Sprich die CHange Node ist gar nicht mit der function Node verbunden. - Wahrscheinlich ist die function Node direkt mit dem Vorgänger verbunden und Du hast die nicht richtig eingefügt.
Mach mal alle Kabel weg und verkabel noch mal neu.
-
@mickym said in Zigbee2mqtt installation:
@schmetterfliege Überprüfe Deine Kabel mal - vielleicht sind die zu eng zusammen und Du bypassed . Sprich die CHange Node ist gar nicht mit der function Node verbunden. - Wahrscheinlich ist die function Node direkt mit dem Vorgänger verbunden und Du hast die nicht richtig eingeüftg.
omfg.... ich spring aus'm Fenster....
-
@schmetterfliege sagte in Zigbee2mqtt installation:
@mickym said in Zigbee2mqtt installation:
@schmetterfliege Überprüfe Deine Kabel mal - vielleicht sind die zu eng zusammen und Du bypassed . Sprich die CHange Node ist gar nicht mit der function Node verbunden. - Wahrscheinlich ist die function Node direkt mit dem Vorgänger verbunden und Du hast die nicht richtig eingeüftg.
omfg.... ich spring aus'm Fenster....
Genau das habe ich vermutet.
-
so hart wie ich grad gern den Kopf schütteln würde, würde wahrscheinlich mein Genick brechen...
Danke dir - und sorry -
@schmetterfliege sagte in Zigbee2mqtt installation:
so hart wie ich grad gern den Kopf schütteln würde, würde wahrscheinlich mein Genick brechen...
Danke dir - und sorryNa zum Glück - muss ich nicht den Glauben an die IT verlieren. Ich hatte mal einen Kollegen der meinte bei solchen Phänomen immer: "Es gibt Dinge zwischen Himmel und Erde ... "
und ich habe mich immer geweigert so was zu akzeptieren. Das würde jedes IT-System in den Bereich des Esoterischen verschieben. -
@mickym
Na das traurige ist ja dass ich in der IT arbeite (wenn auch relativ speziell) und den Glauben an mich selbst verlieren muss -
Bei dem Teil wo ich das LastUpdate setze müsste ich auch nochmal was ändern.
Zwar splitte ich alles auf bevor ich das LastUpdate setze, aber der macht das scheinbar anhand der Topic, die bei allen aber gleich ist, und zwar die Topic von dem Sensor, der den Flow gerade getriggert hat.
Ich meine, diese Change Node hätten wir zusammen gemacht (also du hast sie mir vorbereitet und ich habe sie kopiert )
Die Timestamps im Flow sind definitiv unterschiedlich:
In der Change Node, das "payload.id" das da drin steht - was genau ist payload.id?
Aktuell sieht es mir danach aus dass payload.id == msg.topic ist, und er daher für alle Sensoren immer nur den einen Wert nimmt (zb Flur_1 wenn der Sensor gerade geupdated hat).
Wie muss ich das denn umbiegen dass er bei Büro auch Büro nutzt, Wohnzimmer dann Wohnzimmer usw? -
@mickym
Nachtrag:
Hab im Flow die Timestamps schon mal angepasst:
Weil in manchen Räumen mehrere Sensoren sind mit unterschiedlichen Namen.
D.h. ich möchte das LastUpdate auch nicht über den Raum setzen, sondern den jeweiligen Sensor.
Der dann im Flow eben wie im Screenshot abgespeichert ist. -
@schmetterfliege In der payload.id muss genau "Wohnzimmer", "Büro" etc. stehen. Mach halt eine debug Node hinter die split Node.
-
@schmetterfliege Das ist Käse. Was soll denn moments mit einem Objekt anfangen. Dann ändere die das statt Büro halt andere Variablen abgespeichert werden.