NEWS
Durch enums iterieren?
-
Hallo zusammen,
ich versuche in einem flow über enums zu iterieren, bzw. suche gerade nach einer Möglichkeit dafür. Dachte eigentlich dass ich den ioBroker list node dafür verwenden kann, aber dieser liefert mir immer nur eine leere Liste, egal wie ich den node konfiguriere.
Habe ich den falschen Ansatz gewählt oder wie sollte man mit dem Node-Red Adapter die ioBroker enums nutzen?
Danke für eure Hilfe!
Micha
-
Hallo zusammen,
ich versuche in einem flow über enums zu iterieren, bzw. suche gerade nach einer Möglichkeit dafür. Dachte eigentlich dass ich den ioBroker list node dafür verwenden kann, aber dieser liefert mir immer nur eine leere Liste, egal wie ich den node konfiguriere.
Habe ich den falschen Ansatz gewählt oder wie sollte man mit dem Node-Red Adapter die ioBroker enums nutzen?
Danke für eure Hilfe!
Micha
@m-schmidt Ja leider ist der NodeRed Adapter hier in der Funktionalität dem Javascript bzw. Blockly unterlegen.
Was Du machen kannst ist über die States der einzelnen Adapter suchen.

In den Objekten der List Node siehst Du dann die enums, die Du dann halt rausfilterst.
{ "_id": "0_userdata.0.homekit.devices.BaDeckenlampen.On", "type": "state", "common": { "name": "On", "role": "switch", "type": "boolean", "desc": "Manuell erzeugt", "read": true, "write": true }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1636298968573, "enums": { "enum.functions.light": "Licht", "enum.rooms.bath": "Bad" } }Also zum Beispiel:
"enum.functions.light": "Licht",Die Arrays aus den einzelnen Adaptern kannst, ja dann ggf. wieder mergen.
-
@m-schmidt Ja leider ist der NodeRed Adapter hier in der Funktionalität dem Javascript bzw. Blockly unterlegen.
Was Du machen kannst ist über die States der einzelnen Adapter suchen.

In den Objekten der List Node siehst Du dann die enums, die Du dann halt rausfilterst.
{ "_id": "0_userdata.0.homekit.devices.BaDeckenlampen.On", "type": "state", "common": { "name": "On", "role": "switch", "type": "boolean", "desc": "Manuell erzeugt", "read": true, "write": true }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1636298968573, "enums": { "enum.functions.light": "Licht", "enum.rooms.bath": "Bad" } }Also zum Beispiel:
"enum.functions.light": "Licht",Die Arrays aus den einzelnen Adaptern kannst, ja dann ggf. wieder mergen.
Super, danke für die Hilfe. Ja ist etwas schade, dass es nicht out of the box einen einfachen Weg gibt um mit den Enums zu arbeiten.
Habe mir mit deinen Informationen jetzt einen kleinen Subflow gebastelt, an den ich ein Such-Topic und den gewünschten Enum-Namen übergeben kann. Der Subflow findet dann alle states welche zum gewünschten enum gehören und gibt mir jede ID mit einer eigenen message zurück. Damit kann ich dann sehr einfach in meinen Flows über die entsprechenden messages weiterarbeiten.
Weiterhin kann ich mit dem Subflow auch gleich unerwünschte enums herausfiltern (habe ein enum mit automatisierten states, welche ich ggf. ignorieren möchte) und der Subflow hat auch noch die Möglichkeit nur aktive states zu berücksichtigen. Damit hab ich eine eierlegende Wollmichsau die ich überall in meinen Flows einsetzen kann. :)
MfG Micha
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden