Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Verfügbarkeit von Sensoren über Node Red überwachen

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    331

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

Verfügbarkeit von Sensoren über Node Red überwachen

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
426 Beiträge 5 Kommentatoren 62.4k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    Schmetterfliege
    schrieb am zuletzt editiert von Schmetterfliege
    #163

    Hi @mickym
    sorry dass ich nochmal störe :(

    Ich überarbeite nach und nach meine Tabelle und möchte nun den tatsächlichen Raumnamen mit anzeigen.
    Das Problem ist folgendes:
    a2faca7b-aaab-4e37-8f47-e0f2dbca7df2-image.png
    Der Raumname wird bei jedem Device unter "enums" gespeichert, allerdings nicht direkt als Wert sondern nochmal als Datenpunkt in dem auch der Raumname drin steht.
    Kennst du eine Möglichkeit wie ich direkt an den Wert (in dem Fall "Flur 1") rankomme, ohne explizit zb. "enum.rooms.flur_1" angeben zu müssen? (sonst brauche ich ja 18 Funktionen die jeweils den entsprechenden Datenpunkt auslesen, da der ja bei jedem einzelnen Device anders aussieht)
    Die Flow Objekte sehen wenn ich nur "enums" zuweise logischerweiße so aus:
    195ecf66-0c8a-4e72-b1c9-0a1d4f27fcaf-image.png

    Ich hoffe es ist einigermaßen verständlich was ich meine^^

    mickymM 1 Antwort Letzte Antwort
    0
    • S Schmetterfliege

      Hi @mickym
      sorry dass ich nochmal störe :(

      Ich überarbeite nach und nach meine Tabelle und möchte nun den tatsächlichen Raumnamen mit anzeigen.
      Das Problem ist folgendes:
      a2faca7b-aaab-4e37-8f47-e0f2dbca7df2-image.png
      Der Raumname wird bei jedem Device unter "enums" gespeichert, allerdings nicht direkt als Wert sondern nochmal als Datenpunkt in dem auch der Raumname drin steht.
      Kennst du eine Möglichkeit wie ich direkt an den Wert (in dem Fall "Flur 1") rankomme, ohne explizit zb. "enum.rooms.flur_1" angeben zu müssen? (sonst brauche ich ja 18 Funktionen die jeweils den entsprechenden Datenpunkt auslesen, da der ja bei jedem einzelnen Device anders aussieht)
      Die Flow Objekte sehen wenn ich nur "enums" zuweise logischerweiße so aus:
      195ecf66-0c8a-4e72-b1c9-0a1d4f27fcaf-image.png

      Ich hoffe es ist einigermaßen verständlich was ich meine^^

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #164

      @schmetterfliege
      Nun es ist kein Datenpunkt, sondern ein Objekt unter enums. Das Problem ist durch eine split Node sehr einfach zu lösen. Das Problem ist eher, dass Du theoretisch ja einem Objekt mehrere Räume zuweisen kannst. Ich habs nun wie im admin5 gelöst und die Räume mal dann in einem kombinierten Strings aufzulisten.
      Ein weiteres Problem ist, dass das enums Projekt ja nicht nur Räume als Aufzählungen enthält, sondern auch Funktionen oder selbst definierte Aufzählungen. Ich habe deshalb mal alle enum.rooms mit einer switch Node rausgefiltert:

      Damit kannst Du dann im Flow Kontext Deine Tabelle neben den Namen auch noch mit den Räumen initialisieren. Muss man halt noch mal eine Function Node bemühen und ggf. die bereits vorhandene Variable nochmal auslesen:

      e671b966-1241-4d3e-ba5d-05e9a8c5d5af-image.png

      Also einfach nochmal diese 4 Nodes dazwischen (also zwischen die function Node, die die Namen schreibt und der Trigger Node) klemmen:

      b21a9635-e932-4b1a-99bf-3aa53adf28ad-image.png

      [
         {
             "id": "1f8eb11.1a70a4f",
             "type": "change",
             "z": "54b226bc.0793e8",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "payload.enums",
                     "tot": "msg"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 1200,
             "y": 1400,
             "wires": [
                 [
                     "59681b14.d1c474"
                 ]
             ]
         },
         {
             "id": "59681b14.d1c474",
             "type": "split",
             "z": "54b226bc.0793e8",
             "name": "",
             "splt": "\\n",
             "spltType": "str",
             "arraySplt": 1,
             "arraySpltType": "len",
             "stream": false,
             "addname": "",
             "x": 1370,
             "y": 1400,
             "wires": [
                 [
                     "82b2a834.355758"
                 ]
             ]
         },
         {
             "id": "82b2a834.355758",
             "type": "switch",
             "z": "54b226bc.0793e8",
             "name": "",
             "property": "parts.key",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "cont",
                     "v": "enum.rooms",
                     "vt": "str"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 1,
             "x": 1510,
             "y": 1400,
             "wires": [
                 [
                     "6407946c.27cc1c"
                 ]
             ]
         },
         {
             "id": "6407946c.27cc1c",
             "type": "function",
             "z": "54b226bc.0793e8",
             "name": "Räume auslesen",
             "func": "var rooms = flow.get('zigbee.' + msg.topic + '.rooms');\nif (rooms === undefined) rooms = msg.payload; else rooms = rooms + ', '+ msg.payload; \n\nflow.set('zigbee.' + msg.topic + '.rooms',rooms);\n\nreturn msg; \n",
             "outputs": 1,
             "noerr": 0,
             "initialize": "",
             "finalize": "",
             "libs": [],
             "x": 1690,
             "y": 1400,
             "wires": [
                 [
                     "32ace99d.216626"
                 ]
             ]
         }
      ]
      

      wichtig ist, dass das Topic erhalten bleibt also in der split Node nicht das Topic überschreiben. Ansonsten bekommst Du die Raumnamen nun direkt in der payload und musst wie gesagt nur prüfen, ob ggf. schon ein Raum gesetzt wurde. Die function Node ist deshalb leicht modifiziert, aber nicht kompliziert:

      var rooms = flow.get('zigbee.' + msg.topic + '.rooms');
      if (rooms === undefined) rooms = msg.payload; else rooms = rooms + ', '+ msg.payload; 
      flow.set('zigbee.' + msg.topic + '.rooms',rooms);
      
      return msg; 
      
      

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      S 1 Antwort Letzte Antwort
      1
      • mickymM mickym

        @schmetterfliege
        Nun es ist kein Datenpunkt, sondern ein Objekt unter enums. Das Problem ist durch eine split Node sehr einfach zu lösen. Das Problem ist eher, dass Du theoretisch ja einem Objekt mehrere Räume zuweisen kannst. Ich habs nun wie im admin5 gelöst und die Räume mal dann in einem kombinierten Strings aufzulisten.
        Ein weiteres Problem ist, dass das enums Projekt ja nicht nur Räume als Aufzählungen enthält, sondern auch Funktionen oder selbst definierte Aufzählungen. Ich habe deshalb mal alle enum.rooms mit einer switch Node rausgefiltert:

        Damit kannst Du dann im Flow Kontext Deine Tabelle neben den Namen auch noch mit den Räumen initialisieren. Muss man halt noch mal eine Function Node bemühen und ggf. die bereits vorhandene Variable nochmal auslesen:

        e671b966-1241-4d3e-ba5d-05e9a8c5d5af-image.png

        Also einfach nochmal diese 4 Nodes dazwischen (also zwischen die function Node, die die Namen schreibt und der Trigger Node) klemmen:

        b21a9635-e932-4b1a-99bf-3aa53adf28ad-image.png

        [
           {
               "id": "1f8eb11.1a70a4f",
               "type": "change",
               "z": "54b226bc.0793e8",
               "name": "",
               "rules": [
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "payload.enums",
                       "tot": "msg"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 1200,
               "y": 1400,
               "wires": [
                   [
                       "59681b14.d1c474"
                   ]
               ]
           },
           {
               "id": "59681b14.d1c474",
               "type": "split",
               "z": "54b226bc.0793e8",
               "name": "",
               "splt": "\\n",
               "spltType": "str",
               "arraySplt": 1,
               "arraySpltType": "len",
               "stream": false,
               "addname": "",
               "x": 1370,
               "y": 1400,
               "wires": [
                   [
                       "82b2a834.355758"
                   ]
               ]
           },
           {
               "id": "82b2a834.355758",
               "type": "switch",
               "z": "54b226bc.0793e8",
               "name": "",
               "property": "parts.key",
               "propertyType": "msg",
               "rules": [
                   {
                       "t": "cont",
                       "v": "enum.rooms",
                       "vt": "str"
                   }
               ],
               "checkall": "true",
               "repair": false,
               "outputs": 1,
               "x": 1510,
               "y": 1400,
               "wires": [
                   [
                       "6407946c.27cc1c"
                   ]
               ]
           },
           {
               "id": "6407946c.27cc1c",
               "type": "function",
               "z": "54b226bc.0793e8",
               "name": "Räume auslesen",
               "func": "var rooms = flow.get('zigbee.' + msg.topic + '.rooms');\nif (rooms === undefined) rooms = msg.payload; else rooms = rooms + ', '+ msg.payload; \n\nflow.set('zigbee.' + msg.topic + '.rooms',rooms);\n\nreturn msg; \n",
               "outputs": 1,
               "noerr": 0,
               "initialize": "",
               "finalize": "",
               "libs": [],
               "x": 1690,
               "y": 1400,
               "wires": [
                   [
                       "32ace99d.216626"
                   ]
               ]
           }
        ]
        

        wichtig ist, dass das Topic erhalten bleibt also in der split Node nicht das Topic überschreiben. Ansonsten bekommst Du die Raumnamen nun direkt in der payload und musst wie gesagt nur prüfen, ob ggf. schon ein Raum gesetzt wurde. Die function Node ist deshalb leicht modifiziert, aber nicht kompliziert:

        var rooms = flow.get('zigbee.' + msg.topic + '.rooms');
        if (rooms === undefined) rooms = msg.payload; else rooms = rooms + ', '+ msg.payload; 
        flow.set('zigbee.' + msg.topic + '.rooms',rooms);
        
        return msg; 
        
        
        S Offline
        S Offline
        Schmetterfliege
        schrieb am zuletzt editiert von
        #165

        @mickym

        Du bist in der Tat ein Meister dieses Fachs!

        Hat wunderbar funktioniert, und ich habe es (glaube ich!) auch verstanden wie das funktioniert :)

        Nur ein kleiner Punkt:
        Durch die if Abfrage in der Function Node hat es bei mir den Raumnamen immer wieder hinzugefügt, obwohl der schon existiert hat. Und zwar jedes Mal, wenn ich die Tabelle nochmal manuell initialisiert habe.
        Beim ersten Ausführen war "rooms: Küche", beim zweiten dann "rooms: Küche, Küche" und so weiter.
        Ich habe also diesen Teil:

        if (rooms === undefined) rooms = msg.payload; else rooms = rooms + ', '+ msg.payload; 
        

        durch das hier ersetzt:

        rooms = msg.payload; 
        

        Also einfach rooms fix gesetzt und if sowie den else Teil rausgenommen.
        Die ganzen Multisensoren die ich in der Tabelle anzeigen möchte sind alle auch nur einem einzigen Raum zugewiesen.
        Daher aus reinem Interesse: welchen Sinn hat es, dass zb. dein Thermometer der Küche sowohl "Küche" als auch "Wohnung" zugeordnet ist?

        mickymM 1 Antwort Letzte Antwort
        0
        • S Schmetterfliege

          @mickym

          Du bist in der Tat ein Meister dieses Fachs!

          Hat wunderbar funktioniert, und ich habe es (glaube ich!) auch verstanden wie das funktioniert :)

          Nur ein kleiner Punkt:
          Durch die if Abfrage in der Function Node hat es bei mir den Raumnamen immer wieder hinzugefügt, obwohl der schon existiert hat. Und zwar jedes Mal, wenn ich die Tabelle nochmal manuell initialisiert habe.
          Beim ersten Ausführen war "rooms: Küche", beim zweiten dann "rooms: Küche, Küche" und so weiter.
          Ich habe also diesen Teil:

          if (rooms === undefined) rooms = msg.payload; else rooms = rooms + ', '+ msg.payload; 
          

          durch das hier ersetzt:

          rooms = msg.payload; 
          

          Also einfach rooms fix gesetzt und if sowie den else Teil rausgenommen.
          Die ganzen Multisensoren die ich in der Tabelle anzeigen möchte sind alle auch nur einem einzigen Raum zugewiesen.
          Daher aus reinem Interesse: welchen Sinn hat es, dass zb. dein Thermometer der Küche sowohl "Küche" als auch "Wohnung" zugeordnet ist?

          mickymM Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von mickym
          #166

          @schmetterfliege das ist ja auch nur für die erstmalige Initialisierung gedacht - deswegen ist das ja auch im Namensstrang. Eventuell hättest Du einfach Deine Flow Variable löschen sollen. Dieser Ast wird dann ja auch nur 1 mal nach NR Start ausgeführt. Wenn da 2 mal Küche Küche drin steht, dann passt was am Flow nicht..

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          S 1 Antwort Letzte Antwort
          0
          • mickymM mickym

            @schmetterfliege das ist ja auch nur für die erstmalige Initialisierung gedacht - deswegen ist das ja auch im Namensstrang. Eventuell hättest Du einfach Deine Flow Variable löschen sollen. Dieser Ast wird dann ja auch nur 1 mal nach NR Start ausgeführt. Wenn da 2 mal Küche Küche drin steht, dann passt was am Flow nicht..

            S Offline
            S Offline
            Schmetterfliege
            schrieb am zuletzt editiert von
            #167

            @mickym

            Okay, ja dann ist das wirklich ein selbstgemachtes Problem :)
            Dann lasse ich es - solange ich am basteln bin - noch ohne die if Abfrage.

            Ich bin nämlich gerade fleißig am Triggern verschiedener Äste um meine Änderungen direkt in der Tabelle anzuschauen und möchte nicht jedes Mal erst die Variablen löschen^^

            Aber dann füge ich das wieder hinzu sobald ich es nicht ständig wieder trigger :)

            Die Sache mit den 2 Zuordnungen in enums würde mich dennoch interessieren, ob das einen tieferen Sinn hat sowohl den Raum als auch die Wohnung anzugeben :D.

            mickymM 1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              Schmetterfliege
              schrieb am zuletzt editiert von
              #168

              Hier mal mein aktueller Flow:
              (Ich hoffe ich crashe jetzt nicht das Forum, mein browser hängt nämlich brutal wenn ich das hier paste^^)

              [
                 {
                     "id": "80964148.05ced",
                     "type": "ioBroker in",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "topic": "zigbee.0.*.temperature",
                     "payloadType": "value",
                     "onlyack": "",
                     "func": "all",
                     "gap": "",
                     "fireOnStart": "false",
                     "x": 120,
                     "y": 1480,
                     "wires": [
                         [
                             "76dc3fa8.dbf32"
                         ]
                     ]
                 },
                 {
                     "id": "76dc3fa8.dbf32",
                     "type": "change",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "rules": [
                         {
                             "t": "change",
                             "p": "topic",
                             "pt": "msg",
                             "from": "/",
                             "fromt": "str",
                             "to": ".",
                             "tot": "str"
                         },
                         {
                             "t": "change",
                             "p": "topic",
                             "pt": "msg",
                             "from": "zigbee\\.0\\.(.*)\\.temperature",
                             "fromt": "re",
                             "to": "$1",
                             "tot": "str"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 330,
                     "y": 1480,
                     "wires": [
                         [
                             "7b61cce2.860ba4"
                         ]
                     ]
                 },
                 {
                     "id": "95d362c7.9cfac",
                     "type": "function",
                     "z": "f24596d3.51bf08",
                     "name": "temperature",
                     "func": "flow.set('zigbee.' + msg.topic + '.temperature',msg.payload);\nflow.set('zigbee.' + msg.topic + '.ttimestamp',msg.timestamp);\nreturn msg; \n",
                     "outputs": 1,
                     "noerr": 0,
                     "initialize": "",
                     "finalize": "",
                     "libs": [],
                     "x": 830,
                     "y": 1480,
                     "wires": [
                         [
                             "4863b357.90db7c"
                         ]
                     ]
                 },
                 {
                     "id": "4863b357.90db7c",
                     "type": "change",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "zigbee",
                             "tot": "flow"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 1030,
                     "y": 1500,
                     "wires": [
                         [
                             "d3c173ae.ad1cf"
                         ]
                     ]
                 },
                 {
                     "id": "75196751.de96a8",
                     "type": "change",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "rules": [
                         {
                             "t": "change",
                             "p": "topic",
                             "pt": "msg",
                             "from": "/",
                             "fromt": "str",
                             "to": ".",
                             "tot": "str"
                         },
                         {
                             "t": "change",
                             "p": "topic",
                             "pt": "msg",
                             "from": "zigbee\\.0\\.(.*)\\.humidity",
                             "fromt": "re",
                             "to": "$1",
                             "tot": "str"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 330,
                     "y": 1520,
                     "wires": [
                         [
                             "ee36bc0f.66ef5"
                         ]
                     ]
                 },
                 {
                     "id": "2659c837.1fab58",
                     "type": "ioBroker in",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "topic": "zigbee.0.*.humidity",
                     "payloadType": "value",
                     "onlyack": "",
                     "func": "all",
                     "gap": "",
                     "fireOnStart": "false",
                     "x": 110,
                     "y": 1520,
                     "wires": [
                         [
                             "75196751.de96a8"
                         ]
                     ]
                 },
                 {
                     "id": "22d8d6e4.0dc77a",
                     "type": "function",
                     "z": "f24596d3.51bf08",
                     "name": "humidity",
                     "func": "flow.set('zigbee.' + msg.topic + '.humidity',msg.payload);\nflow.set('zigbee.' + msg.topic + '.htimestamp',msg.timestamp);\nreturn msg; \n",
                     "outputs": 1,
                     "noerr": 0,
                     "initialize": "",
                     "finalize": "",
                     "libs": [],
                     "x": 820,
                     "y": 1520,
                     "wires": [
                         [
                             "4863b357.90db7c"
                         ]
                     ]
                 },
                 {
                     "id": "d3c173ae.ad1cf",
                     "type": "split",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "splt": "\\n",
                     "spltType": "str",
                     "arraySplt": 1,
                     "arraySpltType": "len",
                     "stream": false,
                     "addname": "",
                     "x": 1190,
                     "y": 1500,
                     "wires": [
                         [
                             "be2b1f6.eaf54e"
                         ]
                     ]
                 },
                 {
                     "id": "be2b1f6.eaf54e",
                     "type": "join",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "mode": "custom",
                     "build": "array",
                     "property": "payload",
                     "propertyType": "msg",
                     "key": "topic",
                     "joiner": "\\n",
                     "joinerType": "str",
                     "accumulate": false,
                     "timeout": "",
                     "count": "18",
                     "reduceRight": false,
                     "reduceExp": "",
                     "reduceInit": "",
                     "reduceInitType": "",
                     "reduceFixup": "",
                     "x": 1310,
                     "y": 1500,
                     "wires": [
                         [
                             "16c03ad2.0d8915"
                         ]
                     ]
                 },
                 {
                     "id": "7a2ab401.4b787c",
                     "type": "function",
                     "z": "f24596d3.51bf08",
                     "name": "Gerätenamen auslesen",
                     "func": "name = msg.payload.common.name;\nname = name.replace(\"Aqara Multisensor \", \"\");\nif (name.includes(\"Heizung\"))\n{\n   name = \"Heizung\";\n}\nelse {\n    name = \"Raum\";\n}\nflow.set('zigbee.' + msg.topic + '.name',name);\nflow.set('zigbee.' + msg.topic + '.id',msg.topic);\nreturn msg; ",
                     "outputs": 1,
                     "noerr": 0,
                     "initialize": "",
                     "finalize": "",
                     "libs": [],
                     "x": 790,
                     "y": 1580,
                     "wires": [
                         [
                             "92fd9730.823b98",
                             "1f8eb11.1a70a4f"
                         ]
                     ]
                 },
                 {
                     "id": "e1957bd4.48b138",
                     "type": "ioBroker list",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "topic": "zigbee.0.*",
                     "objType": "device",
                     "regex": "",
                     "asArray": "false",
                     "onlyIDs": "false",
                     "withValues": "false",
                     "x": 240,
                     "y": 1580,
                     "wires": [
                         [
                             "dc08c77d.a8e5e8",
                             "3645a027.601cf"
                         ]
                     ]
                 },
                 {
                     "id": "926be68c.f45c48",
                     "type": "switch",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "property": "payload.common.name",
                     "propertyType": "msg",
                     "rules": [
                         {
                             "t": "cont",
                             "v": "Multisensor",
                             "vt": "str"
                         }
                     ],
                     "checkall": "true",
                     "repair": false,
                     "outputs": 1,
                     "x": 590,
                     "y": 1580,
                     "wires": [
                         [
                             "7a2ab401.4b787c"
                         ]
                     ]
                 },
                 {
                     "id": "989ce87e.fcffd8",
                     "type": "inject",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": true,
                     "onceDelay": 0.1,
                     "topic": "",
                     "payload": "true",
                     "payloadType": "bool",
                     "x": 90,
                     "y": 1580,
                     "wires": [
                         [
                             "e1957bd4.48b138"
                         ]
                     ]
                 },
                 {
                     "id": "92fd9730.823b98",
                     "type": "trigger",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "op1": "",
                     "op2": "true",
                     "op1type": "nul",
                     "op2type": "bool",
                     "duration": "250",
                     "extend": true,
                     "overrideDelay": false,
                     "units": "ms",
                     "reset": "",
                     "bytopic": "all",
                     "topic": "topic",
                     "outputs": 1,
                     "x": 1240,
                     "y": 1580,
                     "wires": [
                         [
                             "4863b357.90db7c"
                         ]
                     ]
                 },
                 {
                     "id": "7b61cce2.860ba4",
                     "type": "switch",
                     "z": "f24596d3.51bf08",
                     "name": "def IDs",
                     "property": "$exists($lookup($flowContext('zigbee'), topic))\t",
                     "propertyType": "jsonata",
                     "rules": [
                         {
                             "t": "true"
                         }
                     ],
                     "checkall": "true",
                     "repair": false,
                     "outputs": 1,
                     "x": 500,
                     "y": 1480,
                     "wires": [
                         [
                             "7173350d.3ed7dc"
                         ]
                     ]
                 },
                 {
                     "id": "ee36bc0f.66ef5",
                     "type": "switch",
                     "z": "f24596d3.51bf08",
                     "name": "def IDs",
                     "property": "$exists($lookup($flowContext('zigbee'), topic))\t",
                     "propertyType": "jsonata",
                     "rules": [
                         {
                             "t": "true"
                         }
                     ],
                     "checkall": "true",
                     "repair": false,
                     "outputs": 1,
                     "x": 500,
                     "y": 1520,
                     "wires": [
                         [
                             "191dd719.7cbce9"
                         ]
                     ]
                 },
                 {
                     "id": "191dd719.7cbce9",
                     "type": "moment",
                     "z": "f24596d3.51bf08",
                     "name": "-> Berlin",
                     "topic": "",
                     "input": "timestamp",
                     "inputType": "msg",
                     "inTz": "Europe/Berlin",
                     "adjAmount": 0,
                     "adjType": "days",
                     "adjDir": "add",
                     "format": "HH:mm - DD.MM",
                     "locale": "de-DE",
                     "output": "timestamp",
                     "outputType": "msg",
                     "outTz": "Europe/Berlin",
                     "x": 660,
                     "y": 1520,
                     "wires": [
                         [
                             "22d8d6e4.0dc77a"
                         ]
                     ]
                 },
                 {
                     "id": "7173350d.3ed7dc",
                     "type": "moment",
                     "z": "f24596d3.51bf08",
                     "name": "-> Berlin",
                     "topic": "",
                     "input": "timestamp",
                     "inputType": "msg",
                     "inTz": "Europe/Berlin",
                     "adjAmount": 0,
                     "adjType": "days",
                     "adjDir": "add",
                     "format": "HH:mm - DD.MM",
                     "locale": "de-DE",
                     "output": "timestamp",
                     "outputType": "msg",
                     "outTz": "Europe/Berlin",
                     "x": 660,
                     "y": 1480,
                     "wires": [
                         [
                             "95d362c7.9cfac"
                         ]
                     ]
                 },
                 {
                     "id": "2ac4d283.affd8e",
                     "type": "change",
                     "z": "f24596d3.51bf08",
                     "name": "ui_control",
                     "rules": [
                         {
                             "t": "set",
                             "p": "ui_control",
                             "pt": "msg",
                             "to": "topic",
                             "tot": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 780,
                     "y": 1400,
                     "wires": [
                         [
                             "5496f3c3.02729c"
                         ]
                     ]
                 },
                 {
                     "id": "5496f3c3.02729c",
                     "type": "ui_table",
                     "z": "f24596d3.51bf08",
                     "group": "51ce6aa1.620754",
                     "name": "Thermostats",
                     "order": 1,
                     "width": "17",
                     "height": "12",
                     "columns": [],
                     "outputs": 1,
                     "cts": true,
                     "x": 930,
                     "y": 1400,
                     "wires": [
                         []
                     ]
                 },
                 {
                     "id": "16c03ad2.0d8915",
                     "type": "function",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "func": "msg.topic = {\"tabulator\":{\"columnResized\":\"function(column){     var newColumn = {         field: column._column.field,         visible: column._column.visible,         width: column._column.width,         widthFixed: column._column.widthFixed,         widthStyled: column._column.widthStyled     }; this.send({topic:this.config.topic,ui_control:{callback:'columnResized',columnWidths:newColumn}}); }\",\"columnMoved\":\"function(column, columns){     var newColumns=[];     columns.forEach(function (column) {         newColumns.push({'field': column._column.field});     });     this.send({topic:this.config.topic,ui_control:{callback:'columnMoved',columns:newColumns}}); }\",\"groupHeader\":\"function (value, count, data, group) {return value + \\\"<span style='color:#d00; margin-left:10px;'>(\\\" + count + \\\" Termostat\\\"+((count>1) ? \\\"e\\\" : \\\"\\\") + \\\")</span>\\\";}\",\"columns\":[\n{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Room\",\"field\":\"room\",\"width\":100,\"frozen\":true},\n{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Ort\",\"field\":\"name\",\"width\":100,\"align\":\"center\"},\n{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Measurements\",\"columns\":[\n{\"formatterParams\":{\"target\":\"_blank\",\"allowEmpty\":true,\"min\":5,\"max\":25,\"color\":[\"#91bd00\",\"#b3bd00\",\"#bdad00\",\"#bd9700\",\"#bd8700\",\"#bd7e00\",\"#bd7100\",\"#bd6800\",\"#bd5b00\",\"#bd4500\",\"#bd2f00\"],\"legend\":\"function (value) {return '&nbsp;&nbsp;'+value+'°C';}\",\"legendColor\":\"#101010\",\"legendAlign\":\"left\"},\"title\":\"Temperatur\",\"field\":\"temperature\",\"formatter\":\"progress\",\"width\":100},\n{\"formatterParams\":{\"target\":\"_blank\",\"allowEmpty\":true,\"legend\":\"function (value) {return '&nbsp;&nbsp;'+value;}\",\"legendColor\":\"#101010\",\"legendAlign\":\"left\"},\"title\":\"T_TS\",\"field\":\"ttimestamp\",\"formatter\":\"progress\",\"width\":100},\n{\"formatterParams\":{\"target\":\"_blank\",\"allowEmpty\":true,\"min\":0,\"max\":100,\"color\":[\"#91bd00\",\"#b3bd00\",\"#bdad00\",\"#bd9700\",\"#bd8700\",\"#bd7e00\",\"#bd7100\",\"#bd6800\",\"#bd5b00\",\"#bd4500\",\"#bd2f00\"],\"legend\":\"function (value) {return '&nbsp;&nbsp;'+value+'%';}\",\"legendColor\":\"#101010\",\"legendAlign\":\"left\"},\"title\":\"Luftfeuchtigkeit\",\"field\":\"humidity\",\"formatter\":\"progress\",\"width\":100},\n{\"formatterParams\":{\"target\":\"_blank\",\"allowEmpty\":true,\"legend\":\"function (value) {return '&nbsp;&nbsp;'+value;}\",\"legendColor\":\"#101010\",\"legendAlign\":\"left\"},\"title\":\"H_TS\",\"field\":\"htimestamp\",\"formatter\":\"progress\",\"width\":100},\n{\"formatterParams\":{\"target\":\"_blank\",\"allowEmpty\":true,\"min\":1.5,\"max\":4.6,\"color\":[\"red\",\"orange\",\"green\"],\"legend\":\"function (value) {return value+' V';}\",\"legendColor\":\"#101010\",\"legendAlign\":\"center\"},\"title\":\"Voltage\",\"field\":\"voltage\",\"formatter\":\"progress\",\"width\":100}]},\n{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Settings\",\"columns\":[\n{\"formatterParams\":{\"target\":\"_blank\",\"allowEmpty\":true,\"allowTruthy\":true,\"tickElement\":\"<i class='fa fa-clock-o'></i>\",\"crossElement\":\"<i class='fa fa-ban'></i>\"},\"title\":\"Auto\",\"field\":\"AUTO_MODE-value\",\"formatter\":\"tickCross\",\"width\":100,\"align\":\"center\"},\n{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Auto\",\"field\":\"AUTO_MODE-value\",\"formatter\":\"tick\",\"width\":100,\"align\":\"center\"}]}],\"layout\":\"fitColumns\",\"movableColumns\":true,\"groupBy\":\"\"},\"customHeight\":12}\nreturn msg;\n",
                     "outputs": 1,
                     "noerr": 0,
                     "initialize": "",
                     "finalize": "",
                     "libs": [],
                     "x": 640,
                     "y": 1400,
                     "wires": [
                         [
                             "2ac4d283.affd8e"
                         ]
                     ]
                 },
                 {
                     "id": "d3e3848c.f33718",
                     "type": "function",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "func": "msg.topic = msg.topic + \".humidity\";\nreturn msg;",
                     "outputs": 1,
                     "noerr": 0,
                     "initialize": "",
                     "finalize": "",
                     "libs": [],
                     "x": 480,
                     "y": 1860,
                     "wires": [
                         [
                             "93d28fae.f749b"
                         ]
                     ]
                 },
                 {
                     "id": "93d28fae.f749b",
                     "type": "ioBroker get",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "topic": "",
                     "attrname": "payload",
                     "payloadType": "value",
                     "x": 640,
                     "y": 1860,
                     "wires": [
                         [
                             "c6dd57ad.468058"
                         ]
                     ]
                 },
                 {
                     "id": "f31f9bc1.550428",
                     "type": "change",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "fulltopic",
                             "pt": "msg",
                             "to": "topic",
                             "tot": "msg"
                         },
                         {
                             "t": "change",
                             "p": "fulltopic",
                             "pt": "msg",
                             "from": "zigbee.0.(.*)",
                             "fromt": "re",
                             "to": "$1",
                             "tot": "str"
                         },
                         {
                             "t": "delete",
                             "p": "payload",
                             "pt": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 430,
                     "y": 1720,
                     "wires": [
                         [
                             "4fb04433.714c5c"
                         ]
                     ]
                 },
                 {
                     "id": "4fb04433.714c5c",
                     "type": "switch",
                     "z": "f24596d3.51bf08",
                     "name": "def IDs",
                     "property": "$exists($lookup($flowContext('zigbee'), fulltopic))\t",
                     "propertyType": "jsonata",
                     "rules": [
                         {
                             "t": "true"
                         }
                     ],
                     "checkall": "true",
                     "repair": false,
                     "outputs": 1,
                     "x": 600,
                     "y": 1720,
                     "wires": [
                         [
                             "d3e3848c.f33718",
                             "b614d23b.e2de7",
                             "53b6b1a4.10efb"
                         ]
                     ]
                 },
                 {
                     "id": "c6dd57ad.468058",
                     "type": "change",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "rules": [
                         {
                             "t": "move",
                             "p": "fulltopic",
                             "pt": "msg",
                             "to": "topic",
                             "tot": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 840,
                     "y": 1860,
                     "wires": [
                         [
                             "35fa5a1f.cc51a6"
                         ]
                     ]
                 },
                 {
                     "id": "dc08c77d.a8e5e8",
                     "type": "change",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "rules": [
                         {
                             "t": "change",
                             "p": "topic",
                             "pt": "msg",
                             "from": "/",
                             "fromt": "str",
                             "to": ".",
                             "tot": "str"
                         },
                         {
                             "t": "change",
                             "p": "topic",
                             "pt": "msg",
                             "from": "zigbee\\.0\\.(.*)$",
                             "fromt": "re",
                             "to": "$1",
                             "tot": "str"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 430,
                     "y": 1580,
                     "wires": [
                         [
                             "926be68c.f45c48"
                         ]
                     ]
                 },
                 {
                     "id": "e673a660.c153f8",
                     "type": "function",
                     "z": "f24596d3.51bf08",
                     "name": "humidity",
                     "func": "flow.set('zigbee.' + msg.topic + '.humidity',msg.payload);\nflow.set('zigbee.' + msg.topic + '.htimestamp',msg.timestamp);\nreturn msg; \n",
                     "outputs": 1,
                     "noerr": 0,
                     "initialize": "",
                     "finalize": "",
                     "libs": [],
                     "x": 1160,
                     "y": 1860,
                     "wires": [
                         [
                             "92fd9730.823b98"
                         ]
                     ]
                 },
                 {
                     "id": "35fa5a1f.cc51a6",
                     "type": "moment",
                     "z": "f24596d3.51bf08",
                     "name": "-> Berlin",
                     "topic": "",
                     "input": "timestamp",
                     "inputType": "msg",
                     "inTz": "Europe/Berlin",
                     "adjAmount": 0,
                     "adjType": "days",
                     "adjDir": "add",
                     "format": "HH:mm - DD.MM",
                     "locale": "de-DE",
                     "output": "timestamp",
                     "outputType": "msg",
                     "outTz": "Europe/Berlin",
                     "x": 1020,
                     "y": 1860,
                     "wires": [
                         [
                             "e673a660.c153f8"
                         ]
                     ]
                 },
                 {
                     "id": "b614d23b.e2de7",
                     "type": "function",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "func": "msg.topic = msg.topic + \".temperature\";\nreturn msg;",
                     "outputs": 1,
                     "noerr": 0,
                     "initialize": "",
                     "finalize": "",
                     "libs": [],
                     "x": 480,
                     "y": 1900,
                     "wires": [
                         [
                             "959e474e.c1c0d8"
                         ]
                     ]
                 },
                 {
                     "id": "959e474e.c1c0d8",
                     "type": "ioBroker get",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "topic": "",
                     "attrname": "payload",
                     "payloadType": "value",
                     "x": 640,
                     "y": 1900,
                     "wires": [
                         [
                             "baeb3f33.088c"
                         ]
                     ]
                 },
                 {
                     "id": "baeb3f33.088c",
                     "type": "change",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "rules": [
                         {
                             "t": "move",
                             "p": "fulltopic",
                             "pt": "msg",
                             "to": "topic",
                             "tot": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 840,
                     "y": 1900,
                     "wires": [
                         [
                             "23ef661a.10247a"
                         ]
                     ]
                 },
                 {
                     "id": "23ef661a.10247a",
                     "type": "moment",
                     "z": "f24596d3.51bf08",
                     "name": "-> Berlin",
                     "topic": "",
                     "input": "timestamp",
                     "inputType": "msg",
                     "inTz": "Europe/Berlin",
                     "adjAmount": 0,
                     "adjType": "days",
                     "adjDir": "add",
                     "format": "HH:mm - DD.MM",
                     "locale": "de-DE",
                     "output": "timestamp",
                     "outputType": "msg",
                     "outTz": "Europe/Berlin",
                     "x": 1020,
                     "y": 1900,
                     "wires": [
                         [
                             "df4fd1be.9759f"
                         ]
                     ]
                 },
                 {
                     "id": "df4fd1be.9759f",
                     "type": "function",
                     "z": "f24596d3.51bf08",
                     "name": "temperature",
                     "func": "flow.set('zigbee.' + msg.topic + '.temperature',msg.payload);\nflow.set('zigbee.' + msg.topic + '.ttimestamp',msg.timestamp);\nreturn msg; \n",
                     "outputs": 1,
                     "noerr": 0,
                     "initialize": "",
                     "finalize": "",
                     "libs": [],
                     "x": 1170,
                     "y": 1900,
                     "wires": [
                         [
                             "92fd9730.823b98"
                         ]
                     ]
                 },
                 {
                     "id": "53b6b1a4.10efb",
                     "type": "function",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "func": "msg.topic = msg.topic + \".voltage\";\nreturn msg;",
                     "outputs": 1,
                     "noerr": 0,
                     "initialize": "",
                     "finalize": "",
                     "libs": [],
                     "x": 480,
                     "y": 1940,
                     "wires": [
                         [
                             "98fae069.a06d"
                         ]
                     ]
                 },
                 {
                     "id": "98fae069.a06d",
                     "type": "ioBroker get",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "topic": "",
                     "attrname": "payload",
                     "payloadType": "value",
                     "x": 640,
                     "y": 1940,
                     "wires": [
                         [
                             "c40b9a1e.cb5108"
                         ]
                     ]
                 },
                 {
                     "id": "c40b9a1e.cb5108",
                     "type": "change",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "rules": [
                         {
                             "t": "move",
                             "p": "fulltopic",
                             "pt": "msg",
                             "to": "topic",
                             "tot": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 840,
                     "y": 1940,
                     "wires": [
                         [
                             "b3c5c50c.c59b48"
                         ]
                     ]
                 },
                 {
                     "id": "b3c5c50c.c59b48",
                     "type": "function",
                     "z": "f24596d3.51bf08",
                     "name": "temperature",
                     "func": "flow.set('zigbee.' + msg.topic + '.voltage',msg.payload);\nreturn msg; \n",
                     "outputs": 1,
                     "noerr": 0,
                     "initialize": "",
                     "finalize": "",
                     "libs": [],
                     "x": 1170,
                     "y": 1940,
                     "wires": [
                         [
                             "92fd9730.823b98"
                         ]
                     ]
                 },
                 {
                     "id": "1f8eb11.1a70a4f",
                     "type": "change",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "payload.enums",
                             "tot": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 550,
                     "y": 1640,
                     "wires": [
                         [
                             "59681b14.d1c474"
                         ]
                     ]
                 },
                 {
                     "id": "59681b14.d1c474",
                     "type": "split",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "splt": "\\n",
                     "spltType": "str",
                     "arraySplt": 1,
                     "arraySpltType": "len",
                     "stream": false,
                     "addname": "",
                     "x": 710,
                     "y": 1640,
                     "wires": [
                         [
                             "82b2a834.355758"
                         ]
                     ]
                 },
                 {
                     "id": "82b2a834.355758",
                     "type": "switch",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "property": "parts.key",
                     "propertyType": "msg",
                     "rules": [
                         {
                             "t": "cont",
                             "v": "enum.rooms",
                             "vt": "str"
                         }
                     ],
                     "checkall": "true",
                     "repair": false,
                     "outputs": 1,
                     "x": 830,
                     "y": 1640,
                     "wires": [
                         [
                             "6407946c.27cc1c"
                         ]
                     ]
                 },
                 {
                     "id": "6407946c.27cc1c",
                     "type": "function",
                     "z": "f24596d3.51bf08",
                     "name": "Räume auslesen",
                     "func": "var room = flow.get('zigbee.' + msg.topic + '.room');\nroom = msg.payload; \n\nflow.set('zigbee.' + msg.topic + '.room',room);\n\nreturn msg; \n",
                     "outputs": 1,
                     "noerr": 0,
                     "initialize": "",
                     "finalize": "",
                     "libs": [],
                     "x": 990,
                     "y": 1640,
                     "wires": [
                         [
                             "92fd9730.823b98"
                         ]
                     ]
                 },
                 {
                     "id": "3645a027.601cf",
                     "type": "delay",
                     "z": "f24596d3.51bf08",
                     "name": "",
                     "pauseType": "delay",
                     "timeout": "200",
                     "timeoutUnits": "milliseconds",
                     "rate": "1",
                     "nbRateUnits": "1",
                     "rateUnits": "second",
                     "randomFirst": "1",
                     "randomLast": "5",
                     "randomUnits": "seconds",
                     "drop": false,
                     "x": 220,
                     "y": 1640,
                     "wires": [
                         [
                             "f31f9bc1.550428"
                         ]
                     ]
                 },
                 {
                     "id": "51ce6aa1.620754",
                     "type": "ui_group",
                     "name": "ui_control",
                     "tab": "3b08fac0.8f06b6",
                     "order": 1,
                     "disp": true,
                     "width": "22",
                     "collapse": false
                 },
                 {
                     "id": "3b08fac0.8f06b6",
                     "type": "ui_tab",
                     "name": "Home",
                     "icon": "track_changes",
                     "order": 1,
                     "disabled": false,
                     "hidden": false
                 }
              ]
              

              Und so sieht die Tabelle aktuell aus:
              aad9b069-281e-475f-9e36-d589af46ace5-image.png
              Selbstverständlich alles in einem experimentellen Status!
              Farben werden noch angepasst, timestamps irgendwann entfernt, u.U. andere Werte noch mit angezeigt, "Auto" kommt whsl noch weg usw usf.

              1 Antwort Letzte Antwort
              0
              • S Schmetterfliege

                @mickym

                Okay, ja dann ist das wirklich ein selbstgemachtes Problem :)
                Dann lasse ich es - solange ich am basteln bin - noch ohne die if Abfrage.

                Ich bin nämlich gerade fleißig am Triggern verschiedener Äste um meine Änderungen direkt in der Tabelle anzuschauen und möchte nicht jedes Mal erst die Variablen löschen^^

                Aber dann füge ich das wieder hinzu sobald ich es nicht ständig wieder trigger :)

                Die Sache mit den 2 Zuordnungen in enums würde mich dennoch interessieren, ob das einen tieferen Sinn hat sowohl den Raum als auch die Wohnung anzugeben :D.

                mickymM Online
                mickymM Online
                mickym
                Most Active
                schrieb am zuletzt editiert von mickym
                #169

                @schmetterfliege

                Hier mal die function Node - da kannst die Initialisierung öfters aufrufen und das Teil checkt nun, ob der Raum schon erfasst wurde. Aller dings wenn man einen Raum wieder wegnimmt, sollte man das ganze wirklich neu initialisieren.

                var rooms = flow.get('zigbee.' + msg.topic + '.rooms');
                if (rooms === undefined) rooms = msg.payload; else {
                   rooms = rooms.split(',');
                   rooms = rooms.filter( (v) => (v != msg.payload));
                   rooms.push(msg.payload);
                   rooms = rooms.toString();
                }
                flow.set('zigbee.' + msg.topic + '.rooms',rooms);
                
                return msg; 
                
                

                Manuelles Löschen einer Flow Variablen geht über ein Icon

                ed9f449a-4925-4212-b5d4-3c83dd51c0f6-image.png

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                S 1 Antwort Letzte Antwort
                1
                • mickymM mickym

                  @schmetterfliege

                  Hier mal die function Node - da kannst die Initialisierung öfters aufrufen und das Teil checkt nun, ob der Raum schon erfasst wurde. Aller dings wenn man einen Raum wieder wegnimmt, sollte man das ganze wirklich neu initialisieren.

                  var rooms = flow.get('zigbee.' + msg.topic + '.rooms');
                  if (rooms === undefined) rooms = msg.payload; else {
                     rooms = rooms.split(',');
                     rooms = rooms.filter( (v) => (v != msg.payload));
                     rooms.push(msg.payload);
                     rooms = rooms.toString();
                  }
                  flow.set('zigbee.' + msg.topic + '.rooms',rooms);
                  
                  return msg; 
                  
                  

                  Manuelles Löschen einer Flow Variablen geht über ein Icon

                  ed9f449a-4925-4212-b5d4-3c83dd51c0f6-image.png

                  S Offline
                  S Offline
                  Schmetterfliege
                  schrieb am zuletzt editiert von
                  #170

                  @mickym said in Verfügbarkeit von Sensoren über Node Red überwachen:

                  @schmetterfliege

                  Hier mal die function Node - da kannst die Initialisierung öfters aufrufen und das Teil checkt nun, ob der Raum schon erfasst wurde. Aller dings wenn man einen Raum wieder wegnimmt, sollte man das ganze wirklich neu initialisieren.

                  var rooms = flow.get('zigbee.' + msg.topic + '.rooms');
                  if (rooms === undefined) rooms = msg.payload; else {
                     rooms = rooms.split(',');
                     rooms = rooms.filter( (v) => (v != msg.payload));
                     rooms.push(msg.payload);
                     rooms = rooms.toString();
                  }
                  flow.set('zigbee.' + msg.topic + '.rooms',rooms);
                  
                  return msg; 
                  
                  

                  Merci!
                  Allerdings stelle ich mir immer noch die Frage, weshalb ich ein Gerät 2 Räumen zuweisen sollte? Weil nur dann macht es ja auch Sinn diese Abfrage mit einzubauen, oder?

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • S Schmetterfliege

                    @mickym said in Verfügbarkeit von Sensoren über Node Red überwachen:

                    @schmetterfliege

                    Hier mal die function Node - da kannst die Initialisierung öfters aufrufen und das Teil checkt nun, ob der Raum schon erfasst wurde. Aller dings wenn man einen Raum wieder wegnimmt, sollte man das ganze wirklich neu initialisieren.

                    var rooms = flow.get('zigbee.' + msg.topic + '.rooms');
                    if (rooms === undefined) rooms = msg.payload; else {
                       rooms = rooms.split(',');
                       rooms = rooms.filter( (v) => (v != msg.payload));
                       rooms.push(msg.payload);
                       rooms = rooms.toString();
                    }
                    flow.set('zigbee.' + msg.topic + '.rooms',rooms);
                    
                    return msg; 
                    
                    

                    Merci!
                    Allerdings stelle ich mir immer noch die Frage, weshalb ich ein Gerät 2 Räumen zuweisen sollte? Weil nur dann macht es ja auch Sinn diese Abfrage mit einzubauen, oder?

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von
                    #171

                    @schmetterfliege sagte in Verfügbarkeit von Sensoren über Node Red überwachen:

                    Merci!
                    Allerdings stelle ich mir immer noch die Frage, weshalb ich ein Gerät 2 Räumen zuweisen sollte? Weil nur dann macht es ja auch Sinn diese Abfrage mit einzubauen, oder?

                    Da hast Du Recht - ich hab deshalb mal Küche und Wohnung als Beispiel genommen. Theoretisch könnte man jedem Teil als Raum zusätzlich noch Etagen etc. hinzufügen. Ob das Sinn macht oder schön ist, ist eine andere Frage, ich mache das auch nicht.

                    Trotzdem bin ich halt ein Freund davon, solche Situation abzufangen - sonst gibts irgendwelche Seiteneffekte später, wenn man mal nicht mehr dran denkt. In dem Fall nicht - aber Du siehst ja was bei Deinen HUE Nodes passiert - da treten einfach Situationen auf, an die evtl. niemand mehr gedacht hat.

                    Das Problem ist also eher, dass der iobroker es zulässt mehrere Räume einem Datenpunkt zuzuordnen und nicht ob es Sinn macht. ;)

                    5998c07a-89f1-4023-9ed4-2e358319e094-image.png

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    S 1 Antwort Letzte Antwort
                    1
                    • mickymM mickym

                      @schmetterfliege sagte in Verfügbarkeit von Sensoren über Node Red überwachen:

                      Merci!
                      Allerdings stelle ich mir immer noch die Frage, weshalb ich ein Gerät 2 Räumen zuweisen sollte? Weil nur dann macht es ja auch Sinn diese Abfrage mit einzubauen, oder?

                      Da hast Du Recht - ich hab deshalb mal Küche und Wohnung als Beispiel genommen. Theoretisch könnte man jedem Teil als Raum zusätzlich noch Etagen etc. hinzufügen. Ob das Sinn macht oder schön ist, ist eine andere Frage, ich mache das auch nicht.

                      Trotzdem bin ich halt ein Freund davon, solche Situation abzufangen - sonst gibts irgendwelche Seiteneffekte später, wenn man mal nicht mehr dran denkt. In dem Fall nicht - aber Du siehst ja was bei Deinen HUE Nodes passiert - da treten einfach Situationen auf, an die evtl. niemand mehr gedacht hat.

                      Das Problem ist also eher, dass der iobroker es zulässt mehrere Räume einem Datenpunkt zuzuordnen und nicht ob es Sinn macht. ;)

                      5998c07a-89f1-4023-9ed4-2e358319e094-image.png

                      S Offline
                      S Offline
                      Schmetterfliege
                      schrieb am zuletzt editiert von
                      #172

                      @mickym said in Verfügbarkeit von Sensoren über Node Red überwachen:

                      @schmetterfliege sagte in Verfügbarkeit von Sensoren über Node Red überwachen:

                      Merci!
                      Allerdings stelle ich mir immer noch die Frage, weshalb ich ein Gerät 2 Räumen zuweisen sollte? Weil nur dann macht es ja auch Sinn diese Abfrage mit einzubauen, oder?

                      Da hast Du Recht - ich hab deshalb mal Küche und Wohnung als Beispiel genommen. Theoretisch könnte man jedem Teil als Raum zusätzlich noch Etagen etc. hinzufügen. Ob das Sinn macht oder schön ist, ist eine andere Frage, ich mache das auch nicht.

                      Trotzdem bin ich halt ein Freund davon, solche Situation abzufangen - sonst gibts irgendwelche Seiteneffekte später, wenn man mal nicht mehr dran denkt. In dem Fall nicht - aber Du siehst ja was bei Deinen HUE Nodes passiert - da treten einfach Situationen auf, an die evtl. niemand mehr gedacht hat.

                      Das Problem ist also eher, dass der iobroker es zulässt mehrere Räume einem Datenpunkt zuzuordnen und nicht ob es Sinn macht. ;)

                      5998c07a-89f1-4023-9ed4-2e358319e094-image.png

                      Stimmt, valider Punkt!

                      Die Raumzuordnung ist allgemein ein wenig unglücklich implementiert.
                      Beispiel:
                      b22f3929-f162-441f-8683-f3e5bdfceccd-image.png
                      Anfangs hatte ich nur die Devices selbst einem Raum zugeordnet. Bis ich dann mal angefangen habe mit InfluxDB ein paar Sachen zu loggen und dann mit Echarts zu spielen.
                      Da kann man dann auch alles was man loggt in der Liste nach Räumen sortieren:
                      58ced9c9-3104-45ae-843e-c7178944d6e0-image.png
                      Aber: die einzelnen Datenpunkte sind gar nicht den Räumen zugeordnet, sondern nur das Device selbst.
                      Deshalb bin ich hingegangen und hab angefangen alle DP nochmal separat in die Räume gezogen.
                      Sieht dann ungefähr so in den Aufzählungen aus:
                      512437bf-df9b-48ee-ab26-5f6634d14db0-image.png

                      Mein Gott war das ätzend^^ Hab dann irgendwann aufgehört und nur noch das was ich loggen will in die Räume gezogen.
                      Im ersten screenshot sind die DP die den Raum "ausgegraut" haben nicht wirklich dem Raum zugeordnet, auch wenn der da dran steht.

                      mickymM 1 Antwort Letzte Antwort
                      0
                      • S Schmetterfliege

                        @mickym said in Verfügbarkeit von Sensoren über Node Red überwachen:

                        @schmetterfliege sagte in Verfügbarkeit von Sensoren über Node Red überwachen:

                        Merci!
                        Allerdings stelle ich mir immer noch die Frage, weshalb ich ein Gerät 2 Räumen zuweisen sollte? Weil nur dann macht es ja auch Sinn diese Abfrage mit einzubauen, oder?

                        Da hast Du Recht - ich hab deshalb mal Küche und Wohnung als Beispiel genommen. Theoretisch könnte man jedem Teil als Raum zusätzlich noch Etagen etc. hinzufügen. Ob das Sinn macht oder schön ist, ist eine andere Frage, ich mache das auch nicht.

                        Trotzdem bin ich halt ein Freund davon, solche Situation abzufangen - sonst gibts irgendwelche Seiteneffekte später, wenn man mal nicht mehr dran denkt. In dem Fall nicht - aber Du siehst ja was bei Deinen HUE Nodes passiert - da treten einfach Situationen auf, an die evtl. niemand mehr gedacht hat.

                        Das Problem ist also eher, dass der iobroker es zulässt mehrere Räume einem Datenpunkt zuzuordnen und nicht ob es Sinn macht. ;)

                        5998c07a-89f1-4023-9ed4-2e358319e094-image.png

                        Stimmt, valider Punkt!

                        Die Raumzuordnung ist allgemein ein wenig unglücklich implementiert.
                        Beispiel:
                        b22f3929-f162-441f-8683-f3e5bdfceccd-image.png
                        Anfangs hatte ich nur die Devices selbst einem Raum zugeordnet. Bis ich dann mal angefangen habe mit InfluxDB ein paar Sachen zu loggen und dann mit Echarts zu spielen.
                        Da kann man dann auch alles was man loggt in der Liste nach Räumen sortieren:
                        58ced9c9-3104-45ae-843e-c7178944d6e0-image.png
                        Aber: die einzelnen Datenpunkte sind gar nicht den Räumen zugeordnet, sondern nur das Device selbst.
                        Deshalb bin ich hingegangen und hab angefangen alle DP nochmal separat in die Räume gezogen.
                        Sieht dann ungefähr so in den Aufzählungen aus:
                        512437bf-df9b-48ee-ab26-5f6634d14db0-image.png

                        Mein Gott war das ätzend^^ Hab dann irgendwann aufgehört und nur noch das was ich loggen will in die Räume gezogen.
                        Im ersten screenshot sind die DP die den Raum "ausgegraut" haben nicht wirklich dem Raum zugeordnet, auch wenn der da dran steht.

                        mickymM Online
                        mickymM Online
                        mickym
                        Most Active
                        schrieb am zuletzt editiert von mickym
                        #173

                        @schmetterfliege sagte in Verfügbarkeit von Sensoren über Node Red überwachen:

                        Aber: die einzelnen Datenpunkte sind gar nicht den Räumen zugeordnet, sondern nur das Device selbst.
                        Deshalb bin ich hingegangen und hab angefangen alle DP nochmal separat in die Räume gezogen.
                        Sieht dann ungefähr so in den Aufzählungen aus:

                        Das muss aber nicht. Normalerweise werden die Raum und Funktionszuordnungen des Gerätes auf die Datenpunkte vererbt und das scheint auch zu funktionieren:

                        58d6fa96-fc2d-4fd7-aba0-9502d484962a-image.png

                        Ich sehe eher umgekehrt das Problem, dass ich die Vererbung nicht aussetzen kann. Wenn ich bei diesen Multifunktionssensoren beim Gerät Funktionen Feuchtigkeit und Temperatur definiere - kann ich dann beim Datenpunkt humidity - die Temperatur nicht abwählen.

                        Aber wie gesagt eine Zuordnung der DAtenpunkte unter einem Device zu einem Raum ist nicht erforderlich.

                        Ich denke, dass es dann eher ein Problem des Influx Adapters war oder ist.

                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                        S 1 Antwort Letzte Antwort
                        0
                        • mickymM mickym

                          @schmetterfliege sagte in Verfügbarkeit von Sensoren über Node Red überwachen:

                          Aber: die einzelnen Datenpunkte sind gar nicht den Räumen zugeordnet, sondern nur das Device selbst.
                          Deshalb bin ich hingegangen und hab angefangen alle DP nochmal separat in die Räume gezogen.
                          Sieht dann ungefähr so in den Aufzählungen aus:

                          Das muss aber nicht. Normalerweise werden die Raum und Funktionszuordnungen des Gerätes auf die Datenpunkte vererbt und das scheint auch zu funktionieren:

                          58d6fa96-fc2d-4fd7-aba0-9502d484962a-image.png

                          Ich sehe eher umgekehrt das Problem, dass ich die Vererbung nicht aussetzen kann. Wenn ich bei diesen Multifunktionssensoren beim Gerät Funktionen Feuchtigkeit und Temperatur definiere - kann ich dann beim Datenpunkt humidity - die Temperatur nicht abwählen.

                          Aber wie gesagt eine Zuordnung der DAtenpunkte unter einem Device zu einem Raum ist nicht erforderlich.

                          Ich denke, dass es dann eher ein Problem des Influx Adapters war oder ist.

                          S Offline
                          S Offline
                          Schmetterfliege
                          schrieb am zuletzt editiert von Schmetterfliege
                          #174

                          @mickym
                          Stimmt, das scheint echt ein Problem von InfluxDB zu sein:
                          886a014a-82bc-4a0c-9c1e-ff645265c40c-image.png
                          Ich sehe ja dass die Räume vererbt wurden.
                          Ich schätze mal dass InfluxDB nicht die "Räume" anschaut, sondern die Auflistungen von Iobroker durchgeht.
                          Und da dürften in deinem Fall nur die Devices drin stehen, nicht aber die einzelnen Datenpunkte.
                          Doofes Influx! :D.

                          Wie hast du es eigentlich geschafft die Funktionen in enums zuzuweisen? Ist das auch ein Aqara Sensor?
                          Bei mir ist die einzige Funktion die ich bei so ziemlich allen Objekten habe "color" (was auch immer das sein soll?!)- und die ist default nicht aktiv:
                          ec224128-33d0-49c2-af99-9f2e8d9ebe7a-image.png
                          Entsprechend ist in meinen enums auch wirklich nur der Raum den ich zugewiesen habe drin.
                          a6ad6c51-35f2-4e19-8712-b271560241b4-image.png

                          mickymM 1 Antwort Letzte Antwort
                          0
                          • S Schmetterfliege

                            @mickym
                            Stimmt, das scheint echt ein Problem von InfluxDB zu sein:
                            886a014a-82bc-4a0c-9c1e-ff645265c40c-image.png
                            Ich sehe ja dass die Räume vererbt wurden.
                            Ich schätze mal dass InfluxDB nicht die "Räume" anschaut, sondern die Auflistungen von Iobroker durchgeht.
                            Und da dürften in deinem Fall nur die Devices drin stehen, nicht aber die einzelnen Datenpunkte.
                            Doofes Influx! :D.

                            Wie hast du es eigentlich geschafft die Funktionen in enums zuzuweisen? Ist das auch ein Aqara Sensor?
                            Bei mir ist die einzige Funktion die ich bei so ziemlich allen Objekten habe "color" (was auch immer das sein soll?!)- und die ist default nicht aktiv:
                            ec224128-33d0-49c2-af99-9f2e8d9ebe7a-image.png
                            Entsprechend ist in meinen enums auch wirklich nur der Raum den ich zugewiesen habe drin.
                            a6ad6c51-35f2-4e19-8712-b271560241b4-image.png

                            mickymM Online
                            mickymM Online
                            mickym
                            Most Active
                            schrieb am zuletzt editiert von
                            #175

                            @schmetterfliege Ja sind auch Aqara Sensoren

                            Die Funktionen ordnest Du doch einfach über die nächste Spalte zu:

                            66d8f2cc-fb46-4cca-b261-f48661ec90bd-image.png

                            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                            S 1 Antwort Letzte Antwort
                            0
                            • mickymM mickym

                              @schmetterfliege Ja sind auch Aqara Sensoren

                              Die Funktionen ordnest Du doch einfach über die nächste Spalte zu:

                              66d8f2cc-fb46-4cca-b261-f48661ec90bd-image.png

                              S Offline
                              S Offline
                              Schmetterfliege
                              schrieb am zuletzt editiert von Schmetterfliege
                              #176

                              @mickym

                              Oh man, mir wird erst gerade bewusst dass "Funktionen" ebenfalls eine Aufzählung wie Räume sind die man manuell definiert:
                              19e3af2a-1e06-4d86-a529-dfbc131a74d1-image.png

                              Aber ich glaube ich lasse da zur Sicherheit erst mal die Finger von weg.
                              Wäre zwar verlockend da jetzt Zeit zu investieren, aber damit fange ich mal lieber nicht morgens um 5 an :D.

                              Edit: "Color" habe ich aber nicht angelegt oO

                              mickymM 1 Antwort Letzte Antwort
                              0
                              • S Schmetterfliege

                                @mickym

                                Oh man, mir wird erst gerade bewusst dass "Funktionen" ebenfalls eine Aufzählung wie Räume sind die man manuell definiert:
                                19e3af2a-1e06-4d86-a529-dfbc131a74d1-image.png

                                Aber ich glaube ich lasse da zur Sicherheit erst mal die Finger von weg.
                                Wäre zwar verlockend da jetzt Zeit zu investieren, aber damit fange ich mal lieber nicht morgens um 5 an :D.

                                Edit: "Color" habe ich aber nicht angelegt oO

                                mickymM Online
                                mickymM Online
                                mickym
                                Most Active
                                schrieb am zuletzt editiert von
                                #177

                                @schmetterfliege sagte in Verfügbarkeit von Sensoren über Node Red überwachen:

                                "Color" habe ich aber nicht angelegt oO

                                Das war wahrscheinlich einer der Core Entwickler des iobrokers. Kannst aber auch Löschen. Und nein Du musst das nicht nutzen. Ich finde die Funktionen in der Form eh nicht so dolle. Ausser im Admin kannst zumindest im NodeRed nicht danach filtern und geben Dir somit erst mal keinen Mehrwert.

                                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                S 1 Antwort Letzte Antwort
                                1
                                • mickymM mickym

                                  @schmetterfliege sagte in Verfügbarkeit von Sensoren über Node Red überwachen:

                                  "Color" habe ich aber nicht angelegt oO

                                  Das war wahrscheinlich einer der Core Entwickler des iobrokers. Kannst aber auch Löschen. Und nein Du musst das nicht nutzen. Ich finde die Funktionen in der Form eh nicht so dolle. Ausser im Admin kannst zumindest im NodeRed nicht danach filtern und geben Dir somit erst mal keinen Mehrwert.

                                  S Offline
                                  S Offline
                                  Schmetterfliege
                                  schrieb am zuletzt editiert von
                                  #178

                                  @mickym said in Verfügbarkeit von Sensoren über Node Red überwachen:

                                  @schmetterfliege sagte in Verfügbarkeit von Sensoren über Node Red überwachen:

                                  "Color" habe ich aber nicht angelegt oO

                                  Das war wahrscheinlich einer der Core Entwickler des iobrokers. Kannst aber auch Löschen. Und nein Du musst das nicht nutzen. Ich finde die Funktionen in der Form eh nicht so dolle. Ausser im Admin kannst zumindest im NodeRed nicht danach filtern und geben Dir somit erst mal keinen Mehrwert.

                                  Danke! :)
                                  Schade eigentlich dass die keinen Mehrwert liefern, andererseits wüsste ich nicht welchen Mehrwert es für mich hätte.
                                  Mir fällt spontan kein DP ein bei dem nicht im "Name" schon die Funktion steckt (*.humidity).

                                  mickymM 1 Antwort Letzte Antwort
                                  0
                                  • S Schmetterfliege

                                    @mickym said in Verfügbarkeit von Sensoren über Node Red überwachen:

                                    @schmetterfliege sagte in Verfügbarkeit von Sensoren über Node Red überwachen:

                                    "Color" habe ich aber nicht angelegt oO

                                    Das war wahrscheinlich einer der Core Entwickler des iobrokers. Kannst aber auch Löschen. Und nein Du musst das nicht nutzen. Ich finde die Funktionen in der Form eh nicht so dolle. Ausser im Admin kannst zumindest im NodeRed nicht danach filtern und geben Dir somit erst mal keinen Mehrwert.

                                    Danke! :)
                                    Schade eigentlich dass die keinen Mehrwert liefern, andererseits wüsste ich nicht welchen Mehrwert es für mich hätte.
                                    Mir fällt spontan kein DP ein bei dem nicht im "Name" schon die Funktion steckt (*.humidity).

                                    mickymM Online
                                    mickymM Online
                                    mickym
                                    Most Active
                                    schrieb am zuletzt editiert von
                                    #179

                                    @schmetterfliege Na wäre doch toll, wenn man statt zigbee.0..humidity - mit function.humidity. alle Feuchtigkeitswerte bekäme egal von welchem Adapter. Aber wie gesagt, dass wird mit dem Design eher schwierig - außerdem ist der Admin5 mit seinen Prüfungen etc. eher eine Katastrophe als in meinen Augen ein Weg zu neuen Verbesserungen.

                                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                    S 1 Antwort Letzte Antwort
                                    0
                                    • mickymM mickym

                                      @schmetterfliege Na wäre doch toll, wenn man statt zigbee.0..humidity - mit function.humidity. alle Feuchtigkeitswerte bekäme egal von welchem Adapter. Aber wie gesagt, dass wird mit dem Design eher schwierig - außerdem ist der Admin5 mit seinen Prüfungen etc. eher eine Katastrophe als in meinen Augen ein Weg zu neuen Verbesserungen.

                                      S Offline
                                      S Offline
                                      Schmetterfliege
                                      schrieb am zuletzt editiert von Schmetterfliege
                                      #180

                                      @mickym said in Verfügbarkeit von Sensoren über Node Red überwachen:

                                      @schmetterfliege Na wäre doch toll, wenn man statt zigbee.0..humidity - mit function.humidity. alle Feuchtigkeitswerte bekäme egal von welchem Adapter. Aber wie gesagt, dass wird mit dem Design eher schwierig - außerdem ist der Admin5 mit seinen Prüfungen etc. eher eine Katastrophe als in meinen Augen ein Weg zu neuen Verbesserungen.

                                      Ok das wäre echt genial. Manno!

                                      Bezüglich "zigbee.0..humidity" werde ich bald blöd...
                                      Wenn ich eine neue List Node setze und damit die Temp von allen Sensoren auslese, klappt das jetzt plötzlich.
                                      Wenn ich aber eine vorhandene List node aus dem "Flow" für die Tabelle kopieren, und statt "zigbee.0.
                                      " -> "zigbee.0.*.temperature" rein mache, bekomme ich gar keine Ausgabe...
                                      Bin ich doof und sehe den Unterschied zwischen den beiden Nodes nicht?
                                      f37ecf7b-e77f-468f-ae08-637128f0fba3-image.png cba73c04-f6e2-4e99-a1cf-e7f693b14609-image.png

                                      EDIT: nevermind.. "Device" vs. "State"...

                                      mickymM 1 Antwort Letzte Antwort
                                      0
                                      • S Schmetterfliege

                                        @mickym said in Verfügbarkeit von Sensoren über Node Red überwachen:

                                        @schmetterfliege Na wäre doch toll, wenn man statt zigbee.0..humidity - mit function.humidity. alle Feuchtigkeitswerte bekäme egal von welchem Adapter. Aber wie gesagt, dass wird mit dem Design eher schwierig - außerdem ist der Admin5 mit seinen Prüfungen etc. eher eine Katastrophe als in meinen Augen ein Weg zu neuen Verbesserungen.

                                        Ok das wäre echt genial. Manno!

                                        Bezüglich "zigbee.0..humidity" werde ich bald blöd...
                                        Wenn ich eine neue List Node setze und damit die Temp von allen Sensoren auslese, klappt das jetzt plötzlich.
                                        Wenn ich aber eine vorhandene List node aus dem "Flow" für die Tabelle kopieren, und statt "zigbee.0.
                                        " -> "zigbee.0.*.temperature" rein mache, bekomme ich gar keine Ausgabe...
                                        Bin ich doof und sehe den Unterschied zwischen den beiden Nodes nicht?
                                        f37ecf7b-e77f-468f-ae08-637128f0fba3-image.png cba73c04-f6e2-4e99-a1cf-e7f693b14609-image.png

                                        EDIT: nevermind.. "Device" vs. "State"...

                                        mickymM Online
                                        mickymM Online
                                        mickym
                                        Most Active
                                        schrieb am zuletzt editiert von
                                        #181

                                        @schmetterfliege Weil Du im zweiten nach Device filterst. Im ersten State. ;) Und Temperatur ist kein Device sondern ein State.

                                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                        S 1 Antwort Letzte Antwort
                                        1
                                        • mickymM mickym

                                          @schmetterfliege Weil Du im zweiten nach Device filterst. Im ersten State. ;) Und Temperatur ist kein Device sondern ein State.

                                          S Offline
                                          S Offline
                                          Schmetterfliege
                                          schrieb am zuletzt editiert von
                                          #182

                                          @mickym

                                          Wird glaube ich Zeit für's Bettchen :dizzy_face:

                                          Gut's Nächtle, und vielen Dank für all deinen Input! :)

                                          mickymM 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          326

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe