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
    358

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • 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 Schmetterfliege

    @mickym
    Lass dich nicht unterbrechen - ich werfe nur die Zwischenfrage ein weil die Bilder nur im Zwischenspeicher sind^^

    Wenn ich die Variable nun nicht über Topic, sondern "bla" setze - weil das was ich will nicht über msg.topic rein kommt sondern über msg.bla:
    2479f890-f1b5-4ed8-a926-03b8ce8a1c9a-image.png
    Würde die switch Node dann so aussehen:
    98ab3a6f-b0c0-4db9-8b32-4b498cfd0179-image.png
    Oder würde ich in der Switch Node trotzdem topic benutzen?

    Oder kann ich in der Funktion die Variable gar nicht erst basteln wenn ich statt "msg.topic" einfach "msg.bla" nehme?

    mickymM Offline
    mickymM Offline
    mickym
    Most Active
    schrieb am zuletzt editiert von mickym
    #149

    @schmetterfliege richtig - in den function Nodes musst Du immer msg. angeben - in JSONATA braucht es nur die Eigenschaft im msg.Objekt.

    Du müsstest halt in Deinem Beispiel beides Mal in msg.bla den Wert haben. Im Prinzip ist das ja egal. Im Prinzip ist der Vergleich im JSONATA

    $exists($lookup($flowContext('zigbee'), '00158d0003f13adf'))

    durch was der Wert nachdem geschaut hat verglichen wird ist also wurscht.

    Ich kann das also mit msg.bla setzen und mit msg.topic, msg.xxx oder was auch immer abfragen - das sind doch alles nur Variablen, die zur Laufzeit gesetzt werden. Die Switch Node interessiert doch nicht durch was der Eigenschaftsname gesetzt wurde - ich gebe nur an mit was verglichen werden soll. Es bietet sich halt nur an die gleiche msg.Eigenschaft zu nehmen da ich diese ja sowohl zum Schreiben und Lesen genutzt habe. Wie gesagt es wird zur Laufzeit ja mit den Inhalten verglichen und das sind ja alles einzelne Nachrichten.

    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 richtig - in den function Nodes musst Du immer msg. angeben - in JSONATA braucht es nur die Eigenschaft im msg.Objekt.

      Du müsstest halt in Deinem Beispiel beides Mal in msg.bla den Wert haben. Im Prinzip ist das ja egal. Im Prinzip ist der Vergleich im JSONATA

      $exists($lookup($flowContext('zigbee'), '00158d0003f13adf'))

      durch was der Wert nachdem geschaut hat verglichen wird ist also wurscht.

      Ich kann das also mit msg.bla setzen und mit msg.topic, msg.xxx oder was auch immer abfragen - das sind doch alles nur Variablen, die zur Laufzeit gesetzt werden. Die Switch Node interessiert doch nicht durch was der Eigenschaftsname gesetzt wurde - ich gebe nur an mit was verglichen werden soll. Es bietet sich halt nur an die gleiche msg.Eigenschaft zu nehmen da ich diese ja sowohl zum Schreiben und Lesen genutzt habe. Wie gesagt es wird zur Laufzeit ja mit den Inhalten verglichen und das sind ja alles einzelne Nachrichten.

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

      @mickym

      Okay, ich glaube ich habe gerade den großes Durchbruch^^
      d83e3162-65b7-4328-994e-ea78d2ebbf3e-image.png
      In der Switch Node bezieht sich das "topic" NICHT auf das was im Flow steht, sondern das, was von der vorherigen Switch Node übergeben wird!
      Also wenn die "change: 2 Regeln" Node statt msg.topic ein msg.blubb weitergeben würde, würde ich im JSONATA auch nach "blubb" statt "topic" suchen.

      Ich bin die ganze Zeit davon ausgegangen dass sich "topic" auf das was im Flow steht bezieht, und nicht auf das was die Switchnode als Input bekommt - ich schäme mich grade ernsthaft

      mickymM 1 Antwort Letzte Antwort
      0
      • S Schmetterfliege

        @mickym

        Okay, ich glaube ich habe gerade den großes Durchbruch^^
        d83e3162-65b7-4328-994e-ea78d2ebbf3e-image.png
        In der Switch Node bezieht sich das "topic" NICHT auf das was im Flow steht, sondern das, was von der vorherigen Switch Node übergeben wird!
        Also wenn die "change: 2 Regeln" Node statt msg.topic ein msg.blubb weitergeben würde, würde ich im JSONATA auch nach "blubb" statt "topic" suchen.

        Ich bin die ganze Zeit davon ausgegangen dass sich "topic" auf das was im Flow steht bezieht, und nicht auf das was die Switchnode als Input bekommt - ich schäme mich grade ernsthaft

        mickymM Offline
        mickymM Offline
        mickym
        Most Active
        schrieb am zuletzt editiert von mickym
        #151

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

        @mickym

        Okay, ich glaube ich habe gerade den großes Durchbruch^^
        d83e3162-65b7-4328-994e-ea78d2ebbf3e-image.png
        In der Switch Node bezieht sich das "topic" NICHT auf das was im Flow steht, sondern das, was von der vorherigen Switch Node übergeben wird!

        Der Kandidat hat 100 Punkte.

        Also wenn die "change: 2 Regeln" Node statt msg.topic ein msg.blubb weitergeben würde, würde ich im JSONATA auch nach "blubb" statt "topic" suchen.

        Genau kannst ja einfach testen - in dem Du in der Change Node nochmal msg.blubb auf msg.topic setzt und dann in der switch node blubb schreibst!!!!

        Ich bin die ganze Zeit davon ausgegangen dass sich "topic" auf das was im Flow steht bezieht, und nicht auf das was die Switchnode als Input bekommt - ich schäme mich grade ernsthaft

        Node Red ist so schön logisch - stell Dir vor Du bist eine Nachricht und wanderst von Node zu Node - bis zur Function Node bzw. Switch NOde - ist alles was im Flow Kontext steht völlig unbekannt. ;) Erst in der Switch Node - im JSONATA referenziere ich ja mit dem flowContext("zigbee") auf den entsprechenden Flow Kontext. Das was Du duchgestrichen hast ist nicht das topic - aber das was das lookup macht. Also insofern wird schon nachgeschaut ob das topic aus der vorangegangenen Change Node mit einer Eigenschaft des Zigbee Objektes übereinstimmt (sprich macht $lookup)

        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:

          @mickym

          Okay, ich glaube ich habe gerade den großes Durchbruch^^
          d83e3162-65b7-4328-994e-ea78d2ebbf3e-image.png
          In der Switch Node bezieht sich das "topic" NICHT auf das was im Flow steht, sondern das, was von der vorherigen Switch Node übergeben wird!

          Der Kandidat hat 100 Punkte.

          Also wenn die "change: 2 Regeln" Node statt msg.topic ein msg.blubb weitergeben würde, würde ich im JSONATA auch nach "blubb" statt "topic" suchen.

          Genau kannst ja einfach testen - in dem Du in der Change Node nochmal msg.blubb auf msg.topic setzt und dann in der switch node blubb schreibst!!!!

          Ich bin die ganze Zeit davon ausgegangen dass sich "topic" auf das was im Flow steht bezieht, und nicht auf das was die Switchnode als Input bekommt - ich schäme mich grade ernsthaft

          Node Red ist so schön logisch - stell Dir vor Du bist eine Nachricht und wanderst von Node zu Node - bis zur Function Node bzw. Switch NOde - ist alles was im Flow Kontext steht völlig unbekannt. ;) Erst in der Switch Node - im JSONATA referenziere ich ja mit dem flowContext("zigbee") auf den entsprechenden Flow Kontext. Das was Du duchgestrichen hast ist nicht das topic - aber das was das lookup macht. Also insofern wird schon nachgeschaut ob das topic aus der vorangegangenen Change Node mit einer Eigenschaft des Zigbee Objektes übereinstimmt (sprich macht $lookup)

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

          @mickym

          Jap, da war wieder genau das Problem was ich schon die ganze Zeit habe:
          Das Grundprinzip verstehe und kenne ich, sobald aber was neues kommt verkompliziere ich es für mich und denke überhaupt gar nicht mehr über die Basics nach - die mir sofort hätten sagen müssen dass sich das topic auf den Input der anderen Change Node bezieht.

          War eine lange Woche^^

          mickymM 1 Antwort Letzte Antwort
          0
          • S Schmetterfliege

            @mickym

            Jap, da war wieder genau das Problem was ich schon die ganze Zeit habe:
            Das Grundprinzip verstehe und kenne ich, sobald aber was neues kommt verkompliziere ich es für mich und denke überhaupt gar nicht mehr über die Basics nach - die mir sofort hätten sagen müssen dass sich das topic auf den Input der anderen Change Node bezieht.

            War eine lange Woche^^

            mickymM Offline
            mickymM Offline
            mickym
            Most Active
            schrieb am zuletzt editiert von mickym
            #153

            @schmetterfliege Na Hauptsache es funktioniert nun so, wie Du willst - Es ist ja wichtig, dass Du lernst selbst Lösungen zu entwickeln. ;) Im Prinzip war Dein Ansatz ja nicht verkehrt alle bekannten IDs zu durchsuchen, wobei da gibts auch einen einfacheren Trick mit RegEx. Sobald man sich bisschen mit den Werkzeugen vertraut macht - stellt man halt fest, dass es viel einfacher Lösungen gibt.

            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.

            mickymM 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              @schmetterfliege Na Hauptsache es funktioniert nun so, wie Du willst - Es ist ja wichtig, dass Du lernst selbst Lösungen zu entwickeln. ;) Im Prinzip war Dein Ansatz ja nicht verkehrt alle bekannten IDs zu durchsuchen, wobei da gibts auch einen einfacheren Trick mit RegEx. Sobald man sich bisschen mit den Werkzeugen vertraut macht - stellt man halt fest, dass es viel einfacher Lösungen gibt.

              mickymM Offline
              mickymM Offline
              mickym
              Most Active
              schrieb am zuletzt editiert von mickym
              #154

              @mickym Wenn Du zum Beispiel nur bestimmte Textwerte (also nicht nur EINEN durchlassen willst) - kannst Du eine Switch Node mit RegEx wie folgt nutzen:

              07db78c3-3ba1-4ff8-9c8a-ed10e1a3c4c2-image.png

              Damit wird ein payload nur durchgelassen wenn sie Schnee oder Regen ist.

              In Deinem Fall hättest Du nun auch alles zigbee IDs so erfassen können.

              Ich habe sowas auch immer in einem eigenen Testflow - weil ich es auch oft vergesse, wie was möglich ist:

              6a1ae901-1707-4a85-accd-b70c73eca20d-image.png

              Eine weitere Möglichkeit ist ein Array mit gültigen Werten und eine Überprüfung in einer Change Node:

              [
                 {
                     "id": "fd359057.be015",
                     "type": "change",
                     "z": "6e170384.60c96c",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "valid",
                             "pt": "msg",
                             "to": "[\"00158d00032c8aa8\",\"00158d0003f4bf3e\",\"00158d0004221522\"]",
                             "tot": "json"
                         },
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "$exists($filter(valid, function($v){$v = payload}))\t\t",
                             "tot": "jsonata"
                         },
                         {
                             "t": "delete",
                             "p": "valid",
                             "pt": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 890,
                     "y": 4420,
                     "wires": [
                         [
                             "b77b076c.2aac58"
                         ]
                     ]
                 },
                 {
                     "id": "df1ee592.280998",
                     "type": "inject",
                     "z": "6e170384.60c96c",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "",
                     "payload": "00158d00032c8aa8",
                     "payloadType": "str",
                     "x": 650,
                     "y": 4400,
                     "wires": [
                         [
                             "fd359057.be015"
                         ]
                     ]
                 },
                 {
                     "id": "b77b076c.2aac58",
                     "type": "debug",
                     "z": "6e170384.60c96c",
                     "name": "",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "false",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 1110,
                     "y": 4420,
                     "wires": []
                 },
                 {
                     "id": "9c97fee3.cc44e",
                     "type": "inject",
                     "z": "6e170384.60c96c",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "",
                     "payload": "00158d00032c8aa9",
                     "payloadType": "str",
                     "x": 650,
                     "y": 4440,
                     "wires": [
                         [
                             "fd359057.be015"
                         ]
                     ]
                 }
              ]
              

              2d0c3a9a-6b11-47df-a6b4-70ea328e6c8a-image.png

              bf4ea09f-3e5b-41b0-ab48-62c677dd94d5-image.png

              Oben definiert man also ein Array mit gültigen Werten, die man unten wieder löscht. In der Mitte wird überprüft, ob die payload in den gültigen Werten enthalten ist. Du siehst die Möglichkeiten sind mannigfaltig.

              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.

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

                @mickym

                JSON/JSONATA/RegEx sind definitv ein Thema, bei dem ich mich wirklich mal hinsetzen muss und mir das dann ins Gedächtnis einspeichern muss. Denn dass sind echt mächtige Werkzeuge, die (nicht nur hier) wirklich unzählige Möglichkeiten bieten!

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

                  Ich habe übrigens meine Tabelle mal um die Timestamps für die Temp und Hum erweitert (inkl. Formatieren):
                  6e0eaa8f-10ad-486e-b9cc-c0e343905cf0-image.png

                  Einer der nächsten Steps wäre dann demnächst diese Timestamps zur "Fehleranalyse" zu nutzen.
                  Beispiel: wenn ein Sensor für längere Zeit keine Aktualisierung liefert, soll das Feld dann zb. rot markiert sein.
                  Dazu werde ich mich dann auch mit dem Godfather der ui-table beschäftigen müssen :D.

                  Ohne dass du mir jetzt eine Lösung nennen sollst oder ich dich wieder dazu bewege für mich Flows zu erstellen:
                  Ist das überhaupt möglich ohne das System zu belasten?
                  In meinem Kopf sieht das dann nämlich so aus, dass für 18 Werte permanent der Timestamp mit der aktuellen Uhrzeit abgeglichen wird, und wenn eine bestimmte Differenz ermittelt wird, verändere ich die Tabelle und mache ein Feld rot.
                  Abgesehen davon dass das nach sau viel Arbeit und Einlesen klingt, kann ich mir gut vorstellen dass das voll aufs System geht, oder?
                  Allgemein kann ich mir adhoc keine Möglichkeit erdenken die prüft ob seit zb. 10 Minuten eine Variable nicht aktualisiert wurde - zumindest nicht ohne dass ich 18x durchgehend eine Überprüfung mache und damit womöglich NR kille^^

                  EDIT: theoretisch kann ich diese Überprüfung ja aber auch nur alle 10 Minuten triggern. Im schlimmsten Fall wäre das Feld dann erst rot wenn der Wert schon 19 Minuten alt ist, aber das wäre ja zumindest mal ein Anfang!

                  EDIT2: für die Formatierung der Timestamps habe ich eine Node aus dem Netz geklaut (contrib-moments)
                  540951eb-e2de-4626-8964-83bd192e1284-image.png

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • S Schmetterfliege

                    Ich habe übrigens meine Tabelle mal um die Timestamps für die Temp und Hum erweitert (inkl. Formatieren):
                    6e0eaa8f-10ad-486e-b9cc-c0e343905cf0-image.png

                    Einer der nächsten Steps wäre dann demnächst diese Timestamps zur "Fehleranalyse" zu nutzen.
                    Beispiel: wenn ein Sensor für längere Zeit keine Aktualisierung liefert, soll das Feld dann zb. rot markiert sein.
                    Dazu werde ich mich dann auch mit dem Godfather der ui-table beschäftigen müssen :D.

                    Ohne dass du mir jetzt eine Lösung nennen sollst oder ich dich wieder dazu bewege für mich Flows zu erstellen:
                    Ist das überhaupt möglich ohne das System zu belasten?
                    In meinem Kopf sieht das dann nämlich so aus, dass für 18 Werte permanent der Timestamp mit der aktuellen Uhrzeit abgeglichen wird, und wenn eine bestimmte Differenz ermittelt wird, verändere ich die Tabelle und mache ein Feld rot.
                    Abgesehen davon dass das nach sau viel Arbeit und Einlesen klingt, kann ich mir gut vorstellen dass das voll aufs System geht, oder?
                    Allgemein kann ich mir adhoc keine Möglichkeit erdenken die prüft ob seit zb. 10 Minuten eine Variable nicht aktualisiert wurde - zumindest nicht ohne dass ich 18x durchgehend eine Überprüfung mache und damit womöglich NR kille^^

                    EDIT: theoretisch kann ich diese Überprüfung ja aber auch nur alle 10 Minuten triggern. Im schlimmsten Fall wäre das Feld dann erst rot wenn der Wert schon 19 Minuten alt ist, aber das wäre ja zumindest mal ein Anfang!

                    EDIT2: für die Formatierung der Timestamps habe ich eine Node aus dem Netz geklaut (contrib-moments)
                    540951eb-e2de-4626-8964-83bd192e1284-image.png

                    mickymM Offline
                    mickymM Offline
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von
                    #157

                    @schmetterfliege ich habe dir ja schon mal gesagt, dass ich von der Überprüfung der Zeitstempel nichts halte und dass ich das easy über eine Trigger Node machen würde, aber das scheint wohl nicht so angekommen zu sein.

                    Ich finde solche Zeitstempel in einer Tabelle eher störend und würde Überwachung eher trennen. Außerdem hast du mir doch erzählt, dass der availabilty Datenpunkt zuverlässig ist. Wie gesagt was ich von solchen Pollerei Ansätzen halte, hab ich glaub schon mehrfach gesagt, aber es ist Dein System. Man kann auch jede Minute zum Fenster rausschauen, um zu überprüfen, ob es noch Tag oder Nacht ist oder man verlässt sich halt darauf, dass die Astrozeiten einen triggers, dass es jetzt hell wird.

                    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 ich habe dir ja schon mal gesagt, dass ich von der Überprüfung der Zeitstempel nichts halte und dass ich das easy über eine Trigger Node machen würde, aber das scheint wohl nicht so angekommen zu sein.

                      Ich finde solche Zeitstempel in einer Tabelle eher störend und würde Überwachung eher trennen. Außerdem hast du mir doch erzählt, dass der availabilty Datenpunkt zuverlässig ist. Wie gesagt was ich von solchen Pollerei Ansätzen halte, hab ich glaub schon mehrfach gesagt, aber es ist Dein System. Man kann auch jede Minute zum Fenster rausschauen, um zu überprüfen, ob es noch Tag oder Nacht ist oder man verlässt sich halt darauf, dass die Astrozeiten einen triggers, dass es jetzt hell wird.

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

                      @mickym

                      Naja, ich kontrolliere leider lieber viel zu viel, als mich nur auf etwas "passives" zu verlassen - zumindest zu Anfang :D.
                      Aber ja, das mit der Trigger Node zu machen, macht wahrscheinlich deeeeutlich mehr Sinn.
                      Ich müsste da dann vermutlich 18 Trigger Nodes nutzen, oder kann man mit einem Trick über einen Trigger alle 18 prüfen (denke nicht, da der Trigger ja dann 18 Verzögerungen bräuchte)?

                      mickymM 1 Antwort Letzte Antwort
                      0
                      • S Schmetterfliege

                        @mickym

                        Naja, ich kontrolliere leider lieber viel zu viel, als mich nur auf etwas "passives" zu verlassen - zumindest zu Anfang :D.
                        Aber ja, das mit der Trigger Node zu machen, macht wahrscheinlich deeeeutlich mehr Sinn.
                        Ich müsste da dann vermutlich 18 Trigger Nodes nutzen, oder kann man mit einem Trick über einen Trigger alle 18 prüfen (denke nicht, da der Trigger ja dann 18 Verzögerungen bräuchte)?

                        mickymM Offline
                        mickymM Offline
                        mickym
                        Most Active
                        schrieb am zuletzt editiert von mickym
                        #159

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

                        @mickym

                        Naja, ich kontrolliere leider lieber viel zu viel, als mich nur auf etwas "passives" zu verlassen - zumindest zu Anfang :D.
                        Aber ja, das mit der Trigger Node zu machen, macht wahrscheinlich deeeeutlich mehr Sinn.
                        Ich müsste da dann vermutlich 18 Trigger Nodes nutzen, oder kann man mit einem Trick über einen Trigger alle 18 prüfen (denke nicht, da der Trigger ja dann 18 Verzögerungen bräuchte)?

                        Du solltest Dich lieber mal mit der Genialität dieser Node befassen:

                        Alleine mal was diese Option bedeutet

                        e3e089f6-4dc3-4a02-8f34-628e73141bb5-image.png
                        sollte Dich zum Überlegen bringen, was das bedeutet.

                        Alleine Deine Aussage:

                        In meinem Kopf sieht das dann nämlich so aus, dass für 18 Werte permanent der Timestamp mit der aktuellen Uhrzeit abgeglichen wird, und wenn eine bestimmte Differenz ermittelt wird, verändere ich die Tabelle und mache ein Feld rot.

                        müssten eigentlich für Dich zu Recht ein Hinweis darauf sein, dass das Unsinn ist. Am Besten machst Du dann solche ein Prüfung noch sekündlich, für eine Ereignis, was vielleicht alle 1-2 Jahre mal auftritt :face_with_rolling_eyes:

                        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:

                          @mickym

                          Naja, ich kontrolliere leider lieber viel zu viel, als mich nur auf etwas "passives" zu verlassen - zumindest zu Anfang :D.
                          Aber ja, das mit der Trigger Node zu machen, macht wahrscheinlich deeeeutlich mehr Sinn.
                          Ich müsste da dann vermutlich 18 Trigger Nodes nutzen, oder kann man mit einem Trick über einen Trigger alle 18 prüfen (denke nicht, da der Trigger ja dann 18 Verzögerungen bräuchte)?

                          Du solltest Dich lieber mal mit der Genialität dieser Node befassen:

                          Alleine mal was diese Option bedeutet

                          e3e089f6-4dc3-4a02-8f34-628e73141bb5-image.png
                          sollte Dich zum Überlegen bringen, was das bedeutet.

                          Alleine Deine Aussage:

                          In meinem Kopf sieht das dann nämlich so aus, dass für 18 Werte permanent der Timestamp mit der aktuellen Uhrzeit abgeglichen wird, und wenn eine bestimmte Differenz ermittelt wird, verändere ich die Tabelle und mache ein Feld rot.

                          müssten eigentlich für Dich zu Recht ein Hinweis darauf sein, dass das Unsinn ist. Am Besten machst Du dann solche ein Prüfung noch sekündlich, für eine Ereignis, was vielleicht alle 1-2 Jahre mal auftritt :face_with_rolling_eyes:

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

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

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

                          @mickym

                          Naja, ich kontrolliere leider lieber viel zu viel, als mich nur auf etwas "passives" zu verlassen - zumindest zu Anfang :D.
                          Aber ja, das mit der Trigger Node zu machen, macht wahrscheinlich deeeeutlich mehr Sinn.
                          Ich müsste da dann vermutlich 18 Trigger Nodes nutzen, oder kann man mit einem Trick über einen Trigger alle 18 prüfen (denke nicht, da der Trigger ja dann 18 Verzögerungen bräuchte)?

                          Du solltest Dich lieber mal mit der Genialität dieser Node befassen:

                          Alleine mal was diese Option bedeutet

                          e3e089f6-4dc3-4a02-8f34-628e73141bb5-image.png
                          sollte Dich zum Überlegen bringen, was das bedeutet.

                          Da hab ich mir die Node tatsächlich nicht ordentlich angeschaut - da ist ja der "Trick" :)

                          Alleine Deine Aussage:

                          In meinem Kopf sieht das dann nämlich so aus, dass für 18 Werte permanent der Timestamp mit der aktuellen Uhrzeit abgeglichen wird, und wenn eine bestimmte Differenz ermittelt wird, verändere ich die Tabelle und mache ein Feld rot.

                          müssten eigentlich für Dich zu Recht ein Hinweis darauf sein, dass das Unsinn ist. Am Besten machst Du dann solche ein Prüfung noch sekündlich, für eine Ereignis, was vielleicht alle 1-2 Jahre mal auftritt :face_with_rolling_eyes:

                          Dass das eine schlechte Idee ist, darauf kam ich ja auch selbst. Sind ja alles erst mal nur Gedanken.
                          Alles was ich in NR mache direkt zu perfektionieren ist natürlich sinnvoll, aber nicht mein Primärziel.
                          Im April bin ich aus der Wohnung hier raus, bis dahin sehe ich NR und allgemein mein aktuelles SmartHome als kleine Spielwiese um zu experimentieren und zu sehen, was alles geht. Je nachdem was nach April mein neues Zuhause wird, muss ich sowieso ggfs. die Hälfte rausschmeißen weil Räume wegfallen, sich ändern usw.
                          Und dass die Sensoren nur alle 1-2 Jahre mal keinen Wert liefern wäre schön - ist aber falsch^^
                          Die Wohnung ist ziemlich weitläufig, mein Raspi mit dem Conbee Stick etwa in der Mitte der Wohnung. Es kommt schon ab und zu vor, dass mal ein Sensor keine Werte mehr liefert. Ende Dezember kommen meine Zigbee Plugs, die dann hoffentlich mein Zigbee Netzwerk deutlich boosten (weil Repeater).
                          Abgesehen davon wird bei 9 Sensoren irgendwann demnächst die Batterie aussteigen :)

                          Nur mal als Beispiel: Mein PC steht im Büro direkt an der Wand zum Gästezimmer.
                          Wenn ich mit dem Bluetooth Headset ins Gästezimmer gehe, und mich am anderen Ende des Gästezimmers runterbeuge, verliert das Headset die Verbindung. Das sind keine 2 Meter Luftlinie und nur eine Wand (und nein, es liegt nicht am Headset oder BT Dongle, sondern an den Wänden)^^

                          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:

                            @mickym

                            Naja, ich kontrolliere leider lieber viel zu viel, als mich nur auf etwas "passives" zu verlassen - zumindest zu Anfang :D.
                            Aber ja, das mit der Trigger Node zu machen, macht wahrscheinlich deeeeutlich mehr Sinn.
                            Ich müsste da dann vermutlich 18 Trigger Nodes nutzen, oder kann man mit einem Trick über einen Trigger alle 18 prüfen (denke nicht, da der Trigger ja dann 18 Verzögerungen bräuchte)?

                            Du solltest Dich lieber mal mit der Genialität dieser Node befassen:

                            Alleine mal was diese Option bedeutet

                            e3e089f6-4dc3-4a02-8f34-628e73141bb5-image.png
                            sollte Dich zum Überlegen bringen, was das bedeutet.

                            Da hab ich mir die Node tatsächlich nicht ordentlich angeschaut - da ist ja der "Trick" :)

                            Alleine Deine Aussage:

                            In meinem Kopf sieht das dann nämlich so aus, dass für 18 Werte permanent der Timestamp mit der aktuellen Uhrzeit abgeglichen wird, und wenn eine bestimmte Differenz ermittelt wird, verändere ich die Tabelle und mache ein Feld rot.

                            müssten eigentlich für Dich zu Recht ein Hinweis darauf sein, dass das Unsinn ist. Am Besten machst Du dann solche ein Prüfung noch sekündlich, für eine Ereignis, was vielleicht alle 1-2 Jahre mal auftritt :face_with_rolling_eyes:

                            Dass das eine schlechte Idee ist, darauf kam ich ja auch selbst. Sind ja alles erst mal nur Gedanken.
                            Alles was ich in NR mache direkt zu perfektionieren ist natürlich sinnvoll, aber nicht mein Primärziel.
                            Im April bin ich aus der Wohnung hier raus, bis dahin sehe ich NR und allgemein mein aktuelles SmartHome als kleine Spielwiese um zu experimentieren und zu sehen, was alles geht. Je nachdem was nach April mein neues Zuhause wird, muss ich sowieso ggfs. die Hälfte rausschmeißen weil Räume wegfallen, sich ändern usw.
                            Und dass die Sensoren nur alle 1-2 Jahre mal keinen Wert liefern wäre schön - ist aber falsch^^
                            Die Wohnung ist ziemlich weitläufig, mein Raspi mit dem Conbee Stick etwa in der Mitte der Wohnung. Es kommt schon ab und zu vor, dass mal ein Sensor keine Werte mehr liefert. Ende Dezember kommen meine Zigbee Plugs, die dann hoffentlich mein Zigbee Netzwerk deutlich boosten (weil Repeater).
                            Abgesehen davon wird bei 9 Sensoren irgendwann demnächst die Batterie aussteigen :)

                            Nur mal als Beispiel: Mein PC steht im Büro direkt an der Wand zum Gästezimmer.
                            Wenn ich mit dem Bluetooth Headset ins Gästezimmer gehe, und mich am anderen Ende des Gästezimmers runterbeuge, verliert das Headset die Verbindung. Das sind keine 2 Meter Luftlinie und nur eine Wand (und nein, es liegt nicht am Headset oder BT Dongle, sondern an den Wänden)^^

                            mickymM Offline
                            mickymM Offline
                            mickym
                            Most Active
                            schrieb am zuletzt editiert von
                            #161

                            @schmetterfliege Na ja - ich habe Dir ja nun oft genug gesagt, was ich von Zeitstempeln und deren Überprüfung halte - aber ich denke DU beschäftigst Du nun schon lange genug mit dem System, dass Du ja solche Dinge nun selbst überprüfen kannst. Vielleicht hilft Dir ja mein neuester Thread: https://forum.iobroker.net/topic/50086/datum-und-zeitverarbeitung-mit-nodered
                            wenn Du Dich so gerne mit Zeitstempeln beschäftigen willst. ;)

                            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 ja - ich habe Dir ja nun oft genug gesagt, was ich von Zeitstempeln und deren Überprüfung halte - aber ich denke DU beschäftigst Du nun schon lange genug mit dem System, dass Du ja solche Dinge nun selbst überprüfen kannst. Vielleicht hilft Dir ja mein neuester Thread: https://forum.iobroker.net/topic/50086/datum-und-zeitverarbeitung-mit-nodered
                              wenn Du Dich so gerne mit Zeitstempeln beschäftigen willst. ;)

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

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

                              @schmetterfliege Na ja - ich habe Dir ja nun oft genug gesagt, was ich von Zeitstempeln und deren Überprüfung halte - aber ich denke DU beschäftigst Du nun schon lange genug mit dem System, dass Du ja solche Dinge nun selbst überprüfen kannst. Vielleicht hilft Dir ja mein neuester Thread: https://forum.iobroker.net/topic/50086/datum-und-zeitverarbeitung-mit-nodered
                              wenn Du Dich so gerne mit Zeitstempeln beschäftigen willst. ;)

                              Genau über den Thread kam ich ja darauf zu schauen was ich mit den Timestamps bei mir so anstellen kann :D.
                              U.a. eben sie mir in der Tabelle anzuzeigen, damit ich schonmal etwas habe mit dem ich nachvollziehen kann, von wann die Werte in der Tabelle sind.
                              Sinn oder Unsinn ist da bei mir wie gesagt erstmal Wurst. Das Einzige was ich nicht möchte, ist NR wieder ständig zu crashen weil ich zb. meine Hue Steuerung in NR in dutzende endless loops verwandelt habe die erst NR crashen und beim Neustart instant sämtliche Lichter in allen Räumen einschalten - Nachts um halb 4...
                              Sachen wieder rauszunehmen wenn ich damit gespielt habe ist ja nicht die Schwierigkeit :P

                              1 Antwort Letzte Antwort
                              0
                              • 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 Offline
                                  mickymM Offline
                                  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 Offline
                                      mickymM Offline
                                      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
                                          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

                                          651

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          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