NEWS
JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen
-
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 Sorry das stimmt so nicht bei einigen Sensoren bzw Aktoren sind mehrere Daten vorhanden. Kann es sein das ich einfach nur warten muss bis alle mal gesendet haben?
ggf. - das hat aber mit diesem Thema nichts zu tun - ist, dass Du im zigbee2mqtt die availabilty Option zu nutzen.
@mickym Kannst da das noch etwas präzisieren?
-
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 Sorry das stimmt so nicht bei einigen Sensoren bzw Aktoren sind mehrere Daten vorhanden. Kann es sein das ich einfach nur warten muss bis alle mal gesendet haben?
ggf. - das hat aber mit diesem Thema nichts zu tun - ist, dass Du im zigbee2mqtt die availabilty Option zu nutzen.
@mickym sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 Sorry das stimmt so nicht bei einigen Sensoren bzw Aktoren sind mehrere Daten vorhanden. Kann es sein das ich einfach nur warten muss bis alle mal gesendet haben?
ggf. - das hat aber mit diesem Thema nichts zu tun - ist, dass Du im zigbee2mqtt die availabilty Option zu nutzen.
Sorry das meinte ich.
-
@mickym sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 Sorry das stimmt so nicht bei einigen Sensoren bzw Aktoren sind mehrere Daten vorhanden. Kann es sein das ich einfach nur warten muss bis alle mal gesendet haben?
ggf. - das hat aber mit diesem Thema nichts zu tun - ist, dass Du im zigbee2mqtt die availabilty Option zu nutzen.
Sorry das meinte ich.
@noah3112 Bin erst seit kurzem mit zigbee2mqtt unterwegs. Ich hatte sehr viele Probleme mit dem zigbee Adapter und bin bis jetzt sehr angetan. Allerdingt fehlt die Langzeiterfahrung und was damit alles geht.
-
@mickym sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 Sorry das stimmt so nicht bei einigen Sensoren bzw Aktoren sind mehrere Daten vorhanden. Kann es sein das ich einfach nur warten muss bis alle mal gesendet haben?
ggf. - das hat aber mit diesem Thema nichts zu tun - ist, dass Du im zigbee2mqtt die availabilty Option zu nutzen.
Sorry das meinte ich.
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@mickym sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 Sorry das stimmt so nicht bei einigen Sensoren bzw Aktoren sind mehrere Daten vorhanden. Kann es sein das ich einfach nur warten muss bis alle mal gesendet haben?
ggf. - das hat aber mit diesem Thema nichts zu tun - ist, dass Du im zigbee2mqtt die availabilty Option zu nutzen.
Sorry das meinte ich.
Na das hat nichts mit der availabilty zu tun - aber Du kannst ein Update der states erzwingen, wenn Du einen get Datenpunkt erstellst:
https://www.zigbee2mqtt.io/guide/usage/mqtt_topics_and_messages.html#zigbee2mqtt-friendly-name-get
Wenn Du get mit leerem state setzt, kannst Du quasi ein Update des Status via mqtt erzwingen:

-
@noah3112 Bin erst seit kurzem mit zigbee2mqtt unterwegs. Ich hatte sehr viele Probleme mit dem zigbee Adapter und bin bis jetzt sehr angetan. Allerdingt fehlt die Langzeiterfahrung und was damit alles geht.
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 Bin erst seit kurzem mit zigbee2mqtt unterwegs. Ich hatte sehr viele Probleme mit dem zigbee Adapter und bin bis jetzt sehr angetan. Allerdingt fehlt die Langzeiterfahrung und was damit alles geht.
Ja da bist Du nicht der Erste. In meinen Augen ist es in diesem Fall sogar ein Vorteil unabhängig von iobroker Updates zu sein. ;)
-
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@mickym sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 Sorry das stimmt so nicht bei einigen Sensoren bzw Aktoren sind mehrere Daten vorhanden. Kann es sein das ich einfach nur warten muss bis alle mal gesendet haben?
ggf. - das hat aber mit diesem Thema nichts zu tun - ist, dass Du im zigbee2mqtt die availabilty Option zu nutzen.
Sorry das meinte ich.
Na das hat nichts mit der availabilty zu tun - aber Du kannst ein Update der states erzwingen, wenn Du einen get Datenpunkt erstellst:
https://www.zigbee2mqtt.io/guide/usage/mqtt_topics_and_messages.html#zigbee2mqtt-friendly-name-get
Wenn Du get mit leerem state setzt, kannst Du quasi ein Update des Status via mqtt erzwingen:

@mickym Okay ich verstehe, quasi ein manuelles anstoßen um Daten zu erhalten, gut zu wissen :+1:
-
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@mickym sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 Sorry das stimmt so nicht bei einigen Sensoren bzw Aktoren sind mehrere Daten vorhanden. Kann es sein das ich einfach nur warten muss bis alle mal gesendet haben?
ggf. - das hat aber mit diesem Thema nichts zu tun - ist, dass Du im zigbee2mqtt die availabilty Option zu nutzen.
Sorry das meinte ich.
Na das hat nichts mit der availabilty zu tun - aber Du kannst ein Update der states erzwingen, wenn Du einen get Datenpunkt erstellst:
https://www.zigbee2mqtt.io/guide/usage/mqtt_topics_and_messages.html#zigbee2mqtt-friendly-name-get
Wenn Du get mit leerem state setzt, kannst Du quasi ein Update des Status via mqtt erzwingen:

@mickym sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@mickym sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 Sorry das stimmt so nicht bei einigen Sensoren bzw Aktoren sind mehrere Daten vorhanden. Kann es sein das ich einfach nur warten muss bis alle mal gesendet haben?
ggf. - das hat aber mit diesem Thema nichts zu tun - ist, dass Du im zigbee2mqtt die availabilty Option zu nutzen.
Sorry das meinte ich.
Na das hat nichts mit der availabilty zu tun - aber Du kannst ein Update der states erzwingen, wenn Du einen get Datenpunkt erstellst:
https://www.zigbee2mqtt.io/guide/usage/mqtt_topics_and_messages.html#zigbee2mqtt-friendly-name-get
Wenn Du get mit leerem state setzt, kannst Du quasi ein Update des Status via mqtt erzwingen:

Das mit dem zitieren muss ich noch lernen :blush:
-
@mickym Okay ich verstehe, quasi ein manuelles anstoßen um Daten zu erhalten, gut zu wissen :+1:
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@mickym Okay ich verstehe, quasi ein manuelles anstoßen um Daten zu erhalten, gut zu wissen :+1:
Genau, wenn Du also ein Update willst einfach ein get unter dem friendlyName mit {"state": ""} publishen und Du bekommst ein Update.
-
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 Bin erst seit kurzem mit zigbee2mqtt unterwegs. Ich hatte sehr viele Probleme mit dem zigbee Adapter und bin bis jetzt sehr angetan. Allerdingt fehlt die Langzeiterfahrung und was damit alles geht.
Ja da bist Du nicht der Erste. In meinen Augen ist es in diesem Fall sogar ein Vorteil unabhängig von iobroker Updates zu sein. ;)
@mickym sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 Bin erst seit kurzem mit zigbee2mqtt unterwegs. Ich hatte sehr viele Probleme mit dem zigbee Adapter und bin bis jetzt sehr angetan. Allerdingt fehlt die Langzeiterfahrung und was damit alles geht.
Ja da bist Du nicht der Erste. In meinen Augen ist es in diesem Fall sogar ein Vorteil unabhängig von iobroker Updates zu sein. ;)
Ungelogen ich musste jeden Tag mindestens 2 Sensoren wieder anlernen. Unerklärliche Abstürze obwohl keine Änderungen vorgenommen wurden. Ohne Änderungen ist der Adapter wieder gelaufen. Das war nur ein kleiner Einblick der Probleme. Hab lange mit mir gerungen diesen Schritt zu gehen. Bei inzwischen 109 Zigbee Geräten ist es schon ein bissel Arbeit ;-) Aber es ist geschafft...zumindest das anlernen.
-
@noah3112 Bin erst seit kurzem mit zigbee2mqtt unterwegs. Ich hatte sehr viele Probleme mit dem zigbee Adapter und bin bis jetzt sehr angetan. Allerdingt fehlt die Langzeiterfahrung und was damit alles geht.
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 Bin erst seit kurzem mit zigbee2mqtt unterwegs. Ich hatte sehr viele Probleme mit dem zigbee Adapter und bin bis jetzt sehr angetan. Allerdingt fehlt die Langzeiterfahrung und was damit alles geht.
Etwas was mir sehr positiv aufgefallen ist, gerade bei Lampen, dass Du das Einschaltverhalten steuern kannst. Mit dem Zigbee adapter sind nach Stromausfall immer meine Lampen angegangen. Das kann man zwar mit einem Send-Command irgendwie einstellen, aber das gibt es dort direkt einzustellen:

Stabiltät der Verbindungen ist auch besser und das Anlernen ging auch schneller, obwohl ja "eigentlich" die gleiche Technik dahinter steckt. Aber das ist hier off-topic-. Ausserdem wurde der conbee2 Stick bis vor einigen Monaten nicht offiziell unterstützt wurde, das zigbee2mqtt hat es aber getan und mir war das dann irgendwann zu blöd, dass man keine Hilfe bekommt, weil man halt ein nicht unterstütztes Gerät benutzt.
-
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 Bin erst seit kurzem mit zigbee2mqtt unterwegs. Ich hatte sehr viele Probleme mit dem zigbee Adapter und bin bis jetzt sehr angetan. Allerdingt fehlt die Langzeiterfahrung und was damit alles geht.
Etwas was mir sehr positiv aufgefallen ist, gerade bei Lampen, dass Du das Einschaltverhalten steuern kannst. Mit dem Zigbee adapter sind nach Stromausfall immer meine Lampen angegangen. Das kann man zwar mit einem Send-Command irgendwie einstellen, aber das gibt es dort direkt einzustellen:

Stabiltät der Verbindungen ist auch besser und das Anlernen ging auch schneller, obwohl ja "eigentlich" die gleiche Technik dahinter steckt. Aber das ist hier off-topic-. Ausserdem wurde der conbee2 Stick bis vor einigen Monaten nicht offiziell unterstützt wurde, das zigbee2mqtt hat es aber getan und mir war das dann irgendwann zu blöd, dass man keine Hilfe bekommt, weil man halt ein nicht unterstütztes Gerät benutzt.
@mickym Ich finde das ganze Handling einfach und intuitiv. Ja ich weiß im Prinzip soll es der Zigbee Adapter nichts anderes sein. Aber das Teil läuft einfach besser. Ich habe auf meinen Proxmox System einen LXC Container nur für zigbee2mqtt laufen. Lies sich super leicht einrichten. Selbst das durchreichen des Sticks war kein Problem.
-
@mickym Ich finde das ganze Handling einfach und intuitiv. Ja ich weiß im Prinzip soll es der Zigbee Adapter nichts anderes sein. Aber das Teil läuft einfach besser. Ich habe auf meinen Proxmox System einen LXC Container nur für zigbee2mqtt laufen. Lies sich super leicht einrichten. Selbst das durchreichen des Sticks war kein Problem.
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@mickym Ich finde das ganze Handling einfach und intuitiv. Ja ich weiß im Prinzip soll es der Zigbee Adapter nichts anderes sein. Aber das Teil läuft einfach besser. Ich habe auf meinen Proxmox System einen LXC Container nur für zigbee2mqtt laufen. Lies sich super leicht einrichten. Selbst das durchreichen des Sticks war kein Problem.
Na um wieder zum Thema zurück zu kommen, dann habe ich ja mit dem Aufbohren des Subflows einen richtigen Mehrwert geschaffen. ;)
-
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 Bin erst seit kurzem mit zigbee2mqtt unterwegs. Ich hatte sehr viele Probleme mit dem zigbee Adapter und bin bis jetzt sehr angetan. Allerdingt fehlt die Langzeiterfahrung und was damit alles geht.
Etwas was mir sehr positiv aufgefallen ist, gerade bei Lampen, dass Du das Einschaltverhalten steuern kannst. Mit dem Zigbee adapter sind nach Stromausfall immer meine Lampen angegangen. Das kann man zwar mit einem Send-Command irgendwie einstellen, aber das gibt es dort direkt einzustellen:

Stabiltät der Verbindungen ist auch besser und das Anlernen ging auch schneller, obwohl ja "eigentlich" die gleiche Technik dahinter steckt. Aber das ist hier off-topic-. Ausserdem wurde der conbee2 Stick bis vor einigen Monaten nicht offiziell unterstützt wurde, das zigbee2mqtt hat es aber getan und mir war das dann irgendwann zu blöd, dass man keine Hilfe bekommt, weil man halt ein nicht unterstütztes Gerät benutzt.
@mickym So ich glaube ich muss mal kurz die Augen zu machen iss schon bissel spät ;-) Ich weiß nicht wie oft ich mich schon bei dir bedankt habe. Macht Spaß dich um Hilfe zu bitten. Man wird nicht gleich nieder gemacht wenn man etwas nicht verstanden hat...DANKE und gute Nacht
-
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@mickym Ich finde das ganze Handling einfach und intuitiv. Ja ich weiß im Prinzip soll es der Zigbee Adapter nichts anderes sein. Aber das Teil läuft einfach besser. Ich habe auf meinen Proxmox System einen LXC Container nur für zigbee2mqtt laufen. Lies sich super leicht einrichten. Selbst das durchreichen des Sticks war kein Problem.
Na um wieder zum Thema zurück zu kommen, dann habe ich ja mit dem Aufbohren des Subflows einen richtigen Mehrwert geschaffen. ;)
@mickym sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@mickym Ich finde das ganze Handling einfach und intuitiv. Ja ich weiß im Prinzip soll es der Zigbee Adapter nichts anderes sein. Aber das Teil läuft einfach besser. Ich habe auf meinen Proxmox System einen LXC Container nur für zigbee2mqtt laufen. Lies sich super leicht einrichten. Selbst das durchreichen des Sticks war kein Problem.
Na um wieder zum Thema zurück zu kommen, dann habe ich ja mit dem Aufbohren des Subflows einen richtigen Mehrwert geschaffen. ;)
Ja das hast du :+1:
-
@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
@mickym Ich finde das ganze Handling einfach und intuitiv. Ja ich weiß im Prinzip soll es der Zigbee Adapter nichts anderes sein. Aber das Teil läuft einfach besser. Ich habe auf meinen Proxmox System einen LXC Container nur für zigbee2mqtt laufen. Lies sich super leicht einrichten. Selbst das durchreichen des Sticks war kein Problem.
Na um wieder zum Thema zurück zu kommen, dann habe ich ja mit dem Aufbohren des Subflows einen richtigen Mehrwert geschaffen. ;)
@mickym Ich muss mich nochmal zum Thema melden ;-) Diese Fehlermeldung kommt hin und wieder...

Hast du ein Tipp wie ich dem Verursacher auf die Schliche komme?
-
@mickym Ich muss mich nochmal zum Thema melden ;-) Diese Fehlermeldung kommt hin und wieder...

Hast du ein Tipp wie ich dem Verursacher auf die Schliche komme?
@noah3112 Das ist Deine mqtt-IN Node - da hast wahrscheinlich angegeben, dass es sich um ein analysiertes JSON Objekt handelt.

Du musst das nur wieder auf String und Buffer umstellen - der Subflow wandelt Strings automatisch um. Das Problem mit der Analyse eines analysierten JSON Objektes der mqtt-In Node schmeisst den Fehler bei Analyse des Objekts bei normalen Strings. Ich hab das im Node Red Forum schon moniert und hoffe, dass es in der Version 3 behoben wird. Also einfach wieder auf String und Buffer umstellen.
Falls es Dich interessiert habe ich das Problem hier beschrieben.
https://discourse.nodered.org/t/improvement-of-mqtt-in-nodes/55445/17Falls Du in anderen Situationen trotzdem die Funktion des analysierten JSON Objektes in Deiner mqtt-IN Node nutzen willst und aber auch teilweise Strings hast, dann kann man dass auch mit einer Catch NOde abfangen. In dem Fall kann aber der Subflow damit umgehen, da die erste Switch Node sogar den Typ JSON String kennt. ;)
Grundsätzlich kannst Du dich schon verlassen, welche Node einen Fehler verursacht:

Also die Node "zigbee2mqtt to iobroker"
Also lange Rede - kurzer Sinn - einfach wieder auf Auto-Erkennung (string or buffer) umstellen.
-
@noah3112 Das ist Deine mqtt-IN Node - da hast wahrscheinlich angegeben, dass es sich um ein analysiertes JSON Objekt handelt.

Du musst das nur wieder auf String und Buffer umstellen - der Subflow wandelt Strings automatisch um. Das Problem mit der Analyse eines analysierten JSON Objektes der mqtt-In Node schmeisst den Fehler bei Analyse des Objekts bei normalen Strings. Ich hab das im Node Red Forum schon moniert und hoffe, dass es in der Version 3 behoben wird. Also einfach wieder auf String und Buffer umstellen.
Falls es Dich interessiert habe ich das Problem hier beschrieben.
https://discourse.nodered.org/t/improvement-of-mqtt-in-nodes/55445/17Falls Du in anderen Situationen trotzdem die Funktion des analysierten JSON Objektes in Deiner mqtt-IN Node nutzen willst und aber auch teilweise Strings hast, dann kann man dass auch mit einer Catch NOde abfangen. In dem Fall kann aber der Subflow damit umgehen, da die erste Switch Node sogar den Typ JSON String kennt. ;)
Grundsätzlich kannst Du dich schon verlassen, welche Node einen Fehler verursacht:

Also die Node "zigbee2mqtt to iobroker"
Also lange Rede - kurzer Sinn - einfach wieder auf Auto-Erkennung (string or buffer) umstellen.
@mickym Kaum macht man es richtig und schon ist wieder Ruhe ;-) Dankeschön...mal wieder
PS: Woher die Meldung kam war mir klar. Ich dachte nur weil es nicht ständig passierte das einer der eingelesenen Datenpunkte den Fehler verursacht. Okay falsch gedacht und dazu gelernt. -
@mickym Kaum macht man es richtig und schon ist wieder Ruhe ;-) Dankeschön...mal wieder
PS: Woher die Meldung kam war mir klar. Ich dachte nur weil es nicht ständig passierte das einer der eingelesenen Datenpunkte den Fehler verursacht. Okay falsch gedacht und dazu gelernt.@noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:
Ich dachte nur weil es nicht ständig passierte das einer der eingelesenen Datenpunkte den Fehler verursacht. Okay falsch
Na ja alle Datenpunkte mit "normalen" Strings haben den Fehler verursacht. Wenn Du diese Diskussion in dem Thread nachverfolgst, sind die Entwickler davon ausgegangen, dass man immer wüßte welche Datentypen eingelesen werden - als entweder JSON Strings oder normale Strings. Das man mit Wildcards ganz unterschiedliche Datentypen einlesen kann, hatten sie nicht auf dem Schirm bzw. wollten bewußt einen Fehler erzeugen, dass ein String eben kein analysierbares JSON Objekt ist. Mit den anderen Datentypen hatten sie damit kein Problem (was ich dann als inkonsequent moniert hatte). Wie Du aber an dem Thread erkennen kannst, haben sie doch ein Einsehen - anscheinend haben sie in der kommenden NodeRed Version 3.0 auch generell einiges an den mqtt-Nodes gemacht. Ich hab da im Moment auch einiges komisches Verhalten entdeckt, was angeblich ab der Version 3 behoben ist. Wir werden dann nur wieder unsere iobroker Entwickler überzeugen müssen, dass sie über den Adapter uns diese Version zur Verfügung in einem absehbaren Zeitraum zur Verfügung stellen. Im Moment ist es immer noch Beta. Aber es kommen Dinge die sehr nützlich sind. So wird man Flows im Editor anhalten kann - um zum Beispiel Probleme zu beheben - ohne das man Node Red komplett neu starten muss. ....
-
Wichtig:
In der aktuellen NodeRed Version funktioniert alles wieder ohne Fehlermeldungen
===================================================================
Nachdem hier wohl einige der Meinung sind, dass NodeRed auch noch ioBroker Strukturen von sich aus anlegen können sollte, obwohl es den ioBroker zu dem Zeitpunkt noch gar nicht gab, habe ich mal eine kleinen Subflow erstellt.
Ähnliche Anforderungen wurden ja auch im Blockly oder Javascript Umfeld gestellt.
Ich habe das ganze aber nicht lange durchgetestet, sodass ihr bitte diesen Subflow rein mal als Basis nehmen könnt und ggf. noch anpassen müsst.
Inzwischen denke ich, kann man den Subflow bedenklos nutzen, da er bereits mehrfach seit über einem Jahr im Einsatz ist. ;)Der Objektbaum wird aus einem JSON-String oder einem JS Objekt gebildet. Es kann als topic für den Objektbaum ein Name in der Eigenschaft msg.top mit gegeben werden, dann wird dieser Datenpunkt als Wurzel unter 0_userdata.0.top mit dem im Objekt oder JSON-String zugehörigen Objekten angelegt oder er wird direkt in der Subflow Node unter top definiert. Wenn man nichts eingibt, dann werden alle Datenpunkte unter 0_userdata.0.objRoot angelegt:

Das Keep-Topic kann man dann auf true setzen, wenn man ganze Bäume also mit Wildcards über mqtt- einliest:
Siehe dieses Posting anhand eines Zigbee2mqtt baums: https://forum.iobroker.net/post/820702

Voraussetzung hierfür ist natürlich, dass man Node-Red die Erlaubnis erteilt selbstständig Objekte anlegen zu dürfen.
In der Adapterkonfiguration des Node-Red Adapters also die Option:

aktivieren.
Hier der Import:
Hier den Subflow zum Importieren:
Hier wieder der Hilfetext zur Node:

EDIT: Den Testflow habe ich rausgenommen, da er die alte Node enthielt. Kann man aber auch anhand des Screenshots erkennen.
EDIT 7.4.2021: So hab den Subflow nochmal geändert, da bei Übergabe eines reinen Arrays - der Flow nicht richtig funktioniert hat. Ausserdem habe ich mal den Subflow durch Beschreibung der Nodes besser dokumentiert.
EDIT 8.4.2021: Für einfache Arrays (die keine Objekte enthielten), hat der Flow noch nicht funktioniert. Nun wurde dies behoben und auch skalare - also auch Input, der kein Objekt enthält wird auf 0_userdata.0.{{msg.top}} durchgereicht. Die Beispiele werden in einem eigenen Post dargestellt.
EDIT 7.12.2021: Anstelle von msg.top kann man den Startpunkt für den Objektbaum nun auch direkt in der Node angeben:

Ist msg.top leer werden alle states direkt unter 0_userdata.0 angelegt.
EDIT 14.6.2022: Ein neue Eigenschaft wurde der Subflow-Node hinzugefügt: keepTopic
Damit kann man die bisherigen Topic behalten und mit Wildcards arbeiten und somit ganze Objektbäume im iobroker erstellen:

Ein Beispiel gibts im Posting vom heutigen Datum also dem 14.6.2022.
EDIT 13.9.2022:
Leerzeichen in den topics werden nicht mehr bei Objekten ersetzt und somit erfolgt keine Ungleichbehandlung zwischen Objekten und anderen Datentypen. Das hat ansonsten zur Mehrfachanlage der Topics geführt.
EDIT 01.11.2022:
Weitere Fehlerbehebungen. Wenn skalare Objekte zu Beginn gesendet wurden und das Topic nicht übernommen werden sollte, oder gar nicht vorhanden war, dann entstanden topics mit einem Punkt am Ende. Das wurde nun behoben. Das bedeutet jedoch andererseits, dass skalare Werte nicht mehr direkt in den top Datenpunkt geschrieben werden, sondern als Wert mit der Bezeichnung ihres Datentyps. "Hello World" als String, wird deshalb als Wert mit Namen "string" ausgegeben - Ausnahme ist, natürlich wenn die topics erhalten bleiben (keepTopic = true)EDIT 22.05.2023:
Objekteigenschaften mit Punkten können im iobroker nicht als topic bzw. state erstellt werden. Deshalb werden alle Punkte in Objekteigenschaften durch Unterstriche ersetzt. Also "Wohnzi." wird zu "Wohnzi_".=============================================================================================================================
Für alle die, die Node bereits benutzen - wie folgt vorgehen.
- Den Code normal in die Zwischenablage kopieren und dann importieren.
- Da das System erkennst, dass es diesen Subflow/Nodes bereits gibt - bitte auf "Zeige Nodes ... " gehen.

- Anschließend braucht man nur den Subflow ersetzen.

- Nach dem man auf "Importiere Auswahl" geklickt hat, wird einem angezeigt, wieviele Nodes ersetzt wurden. Dann noch auf Deploy.
=============================================================================================================================
Anwendungsbeispiele und Flows:

Nun zu den einzelnen Inputs in den Inject-Nodes:
1. Example.SimpleArray
[1,5,6.2,2,3]
Ergebnis
2. Example.ComplexArray
[1,2,[3,4,5],{"Leaving":"288.700000","Returning":"24.900000"}]
Ergebnis
3. Skalar (Input ist kein Objekt)

Ergebnis

4. Objekt:
{"Präsenz Wohnzimmer Essbereich":true,"Präsenz Bad":true,"Präsenz Schlafzimmer":true,"Thermometer Bad":true,"Präsenz Flur":true,"Würfel Wohnzimmer":{"1":"TV"},"Präsenz Küche":true,"Würfel Schlafzimmer":true,"Thermometer Küche":true,"Präsenz Diele":true,"Präsenz Wohnzimmer":true,"Präsenz Büro":true}
Ergebnis:
5. ObjectArray:
[ { "start": 45, "end": 100, "date": "24.3.2021 18:44", "diff": 1, "quantity": 0, "price": "0.00", "basicPrice": 0, "startDate": "24.3.2021 18:44", "duration": 1, "perHour": 0 }, { "start": 51, "end": 52, "date": "24.3.2021 15:59", "diff": 3, "quantity": 0, "price": "0.00", "basicPrice": 0, "startDate": "24.3.2021 15:57", "duration": 3, "perHour": 0 }, { "start": 59, "end": 100, "date": "24.2.2021 14:27", "diff": 29, "quantity": 0, "price": "0.00", "basicPrice": 0, "startDate": "24.2.2021 13:59", "duration": 29, "perHour": 0 } ]
Ergebnis:

6. JSON-String
{"squadName":"Super hero squad","homeTown":"Metro City","formed":2016,"secretBase":"Super tower","active":true,"members":[{"name":"Molecule Man","age":29,"secretIdentity":"Dan Jukes","powers":["Radiation resistance","Turning tiny","Radiation blast"],"dressed":{"head":"Kopfbedeckung"}},{"name":"Madame Uppercut","age":69,"secretIdentity":"Jane Wilson","powers":["Million tonne punch","Damage resistance","Superhuman reflexes"]},{"name":"Eternal Flame","age":1000000,"secretIdentity":"Unknown","powers":["Immortality","Heat Immunity","Inferno","Teleportation","Interdimensional travel"]}]}
Ergebnis:
Hallo @mickym,
erst mal Danke für den Flow, habe aber noch ein paar Probleme die bestimmt vor dem Bildschirm sitzen ;) zu aller erst mal das sind meine ersten steh und geh versuche mit NodeRed, also bitte nicht schlagen :joy:
habe vor nach und nach alles auf Mqtt zu ändern, da sich so einiges angesammelt hat (sonoff, schelly, owtrack,....) evtl.dann im Winter noch Zigbee.
Habe am Wochenende mal einen Test IOBoker aufgesetzt, um mal zu schauen was auf mich zu kommt...
Habe jetzt den Flow mal soweit eingerichtet, läuft auch fast gut. Als Topic habe ich erstmal nur # genommen, macht das sinn? möchte ja im Prinzip erst alles haben, oder mache ich besser für jedes Gerät der jede Gruppe einen eigenen Flow. Bekomme einige Fehler im Log da er alle States als readonly anlegt, das muss ich bestimmt irgendwo ändern, nur wo ?
dann habe ich bei den shellys ein komisches verhalten, da legt er 2 Ordner für jeden shelly an habe mal ein par Bilder angefügt wie es unter Userdata.0 aussieht und im MQTT Adapter. Bestimmt ist da auch nu was falsch eingestellt :see_no_evil:
Hier erst mal die Bilder
Userdata.0

MQTT Adapter

könntest du bitte etwas licht ins dunkle bringen :)
Vielen Dank
Gruß Frank -
Hallo @mickym,
erst mal Danke für den Flow, habe aber noch ein paar Probleme die bestimmt vor dem Bildschirm sitzen ;) zu aller erst mal das sind meine ersten steh und geh versuche mit NodeRed, also bitte nicht schlagen :joy:
habe vor nach und nach alles auf Mqtt zu ändern, da sich so einiges angesammelt hat (sonoff, schelly, owtrack,....) evtl.dann im Winter noch Zigbee.
Habe am Wochenende mal einen Test IOBoker aufgesetzt, um mal zu schauen was auf mich zu kommt...
Habe jetzt den Flow mal soweit eingerichtet, läuft auch fast gut. Als Topic habe ich erstmal nur # genommen, macht das sinn? möchte ja im Prinzip erst alles haben, oder mache ich besser für jedes Gerät der jede Gruppe einen eigenen Flow. Bekomme einige Fehler im Log da er alle States als readonly anlegt, das muss ich bestimmt irgendwo ändern, nur wo ?
dann habe ich bei den shellys ein komisches verhalten, da legt er 2 Ordner für jeden shelly an habe mal ein par Bilder angefügt wie es unter Userdata.0 aussieht und im MQTT Adapter. Bestimmt ist da auch nu was falsch eingestellt :see_no_evil:
Hier erst mal die Bilder
Userdata.0

MQTT Adapter

könntest du bitte etwas licht ins dunkle bringen :)
Vielen Dank
Gruß FrankHallo erstmal - ist immer bissi schwierig das herauszufinden, das herauszufinden.
Habe jetzt den Flow mal soweit eingerichtet, läuft auch fast gut. Als Topic habe ich erstmal nur # genommen, macht das sinn?
Vielleicht solltest Du auch nicht gleich mit # anfangen, um nicht gleich alles zu laden. Aber das nur am Rande.
Ich gehe mal davon aus, dass Du einen mit # das Subscribe Pattern des mqtt Adapters mit einem externen Broker meinst? Oder nutzt Du die mqtt-Nodes ...
Bekomme einige Fehler im Log da er alle States als readonly anlegt, das muss ich bestimmt irgendwo ändern, nur wo ?
Nun das machst Du nur in der iobroker-Out Node - hat mit dem Flow selbst nichts zu tun.
Einfach da fix eintragen. - Ich hätte das zwar auch in dem Flow machen können, aber so ist man ggf. flexibler:
dann habe ich bei den shellys ein komisches verhalten, da legt er 2 Ordner für jeden shelly an habe mal ein par Bilder angefügt wie es unter Userdata.0 aussieht und im MQTT Adapter.
Ich hab den Flow überarbeitet, damit sollte der Fehler nicht mehr auftreten. Bitte die Node aus dem nachfolgenden Post importieren und den Subflow wie beschrieben ersetzen.
@frank579 - also vielen Dank - für das Beschreiben des Bugs - das mit dem 2. Ordner sollte nicht mehr auftreten. So wird der Flow immer besser. ;) - Ich empfehle Dir nochmal den ganzen Objektbaum unter 0_userdata.0 zu löschen, der von dem Flow angelegt wurde und neu zu erstellen - auch wegen den Schreibrechten - ich werde solche Einstellungen aber nicht in dem Flow festlegen, so dass man selbst entscheiden kann über die iobroker-Out Node.