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
    473

  • 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.
  • mickymM mickym

    @schmetterfliege Die Init Node - hatte ich ja geschrieben - die muss halt einmalig trigger - da musst halt den Haken setzen. Dann sind die Namen doch direkt nach NR Start verfügbar. Die Werte kommen erst peu a peu, wenn Du die halt unbedingt einmalig initialisieren willst - dann musst halt noch zusätzliche list Nodes zum Auslesen benutzen.

    Also noch den Haken in der Init Node - dann werden die Namen sofort nach Systemstart gesetzt.

    ee2f6351-ba5b-4e70-90a3-625f2ce96d8c-image.png

    Manchmal scheine ich mich doch nicht klar auszudrücken:

    4b8adfdc-aa66-4ac6-a99a-12ab481850d9-image.png

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

    @mickym
    Sorry falls ich mich komplett blöd anstelle, solangsam befürchte ich es^^
    Ich habe (im Prinzip) schon verstanden was du meinst!
    Also den Haken in der Init Node habe ich nun drin.
    Wenn ich den Flow neu starte, habe ich in damit also sofort alle Namen verfügbar.
    Die Tabelle ist aber leer.
    Die ist erst da, wenn irgendein Sensor nun einen Wert aktualisiert.
    => Das ist das, was du für mich aufgebaut hast.

    Genau das - das kursive - möchte ich nun verkürzen indem die Namen nicht nur sofort verfügbar sein sollen, sondern auch sofort in der Tabelle stehen.
    Das habe ich gerade die ganze Zeit durch meine Tests versucht^^

    Wenn ich jetzt deine letzte Nachricht richtig interpretiere, müsste ich den Flow also so anpassen:
    56bc21d1-8859-4e75-b31b-8bb58ff1f531-image.png
    Also die Function node mit der Change Node verbinden, und in der Function meine msg ausgeben.
    Oder muss ich die beiden Nodes nicht miteinander verbinden?

    mickymM 1 Antwort Letzte Antwort
    0
    • S Schmetterfliege

      @mickym
      Sorry falls ich mich komplett blöd anstelle, solangsam befürchte ich es^^
      Ich habe (im Prinzip) schon verstanden was du meinst!
      Also den Haken in der Init Node habe ich nun drin.
      Wenn ich den Flow neu starte, habe ich in damit also sofort alle Namen verfügbar.
      Die Tabelle ist aber leer.
      Die ist erst da, wenn irgendein Sensor nun einen Wert aktualisiert.
      => Das ist das, was du für mich aufgebaut hast.

      Genau das - das kursive - möchte ich nun verkürzen indem die Namen nicht nur sofort verfügbar sein sollen, sondern auch sofort in der Tabelle stehen.
      Das habe ich gerade die ganze Zeit durch meine Tests versucht^^

      Wenn ich jetzt deine letzte Nachricht richtig interpretiere, müsste ich den Flow also so anpassen:
      56bc21d1-8859-4e75-b31b-8bb58ff1f531-image.png
      Also die Function node mit der Change Node verbinden, und in der Function meine msg ausgeben.
      Oder muss ich die beiden Nodes nicht miteinander verbinden?

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

      @schmetterfliege Ja

      3981d44d-4ffb-4861-b835-2aca7ddd35dd-image.png

      und dazwischen hängst eine trigger Node - damit nur die letzte Nachricht triggert - sprich alles fertig ist:

      7bf9f904-4a1a-42dd-a852-2b962762dce6-image.png

      Irgendwann wirst Du Node Red schon noch lieben - ist doch alles super easy wie man vorhandenes einfach miteinander verkabeln kann, um den individuellen Wünschen gerecht zu werden. ;) ;) ;)

      Übrigens nutzte selbst halt Debug Nodes soviel Du kannst um immer zu sehen, was passiert - also müsste aus der trigger Node nur eine Nachricht anstelle von 18 rauskommen. ;)

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

      S 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        @schmetterfliege Ja

        3981d44d-4ffb-4861-b835-2aca7ddd35dd-image.png

        und dazwischen hängst eine trigger Node - damit nur die letzte Nachricht triggert - sprich alles fertig ist:

        7bf9f904-4a1a-42dd-a852-2b962762dce6-image.png

        Irgendwann wirst Du Node Red schon noch lieben - ist doch alles super easy wie man vorhandenes einfach miteinander verkabeln kann, um den individuellen Wünschen gerecht zu werden. ;) ;) ;)

        Übrigens nutzte selbst halt Debug Nodes soviel Du kannst um immer zu sehen, was passiert - also müsste aus der trigger Node nur eine Nachricht anstelle von 18 rauskommen. ;)

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

        @mickym

        Ich liebe NR!
        Es nervt bloß dass ich so viel Hilfe brauche und mich doof anstelle :D.
        Meinem Spaß an NR tut das keinen Abbruch, im Gegenteil!

        Mit dem Trigger hat es nun geklappt, vielen Dank!

        Bitte hasse mich nicht:
        Nun müsste ich den Flow noch anpassen dass er mir nur die richtigen Sensoren beim aktualisieren liefert.
        Hier zur Veranschaulichung:
        cba4a77b-4b6c-4a87-ab99-37f364f76b5d-image.png
        Der obere Teil - also da wo die Aktualisierungen kommen - liefert mir Daten von 22 Sensoren. 18 die ich will, 2 Sensoren die nicht Konfiguriert sind, und 2 Motion Sensoren die dummerweiße auch einen Temp Sensor haben...
        Der untere Teil, also da wo ich die Namen auslesen, spuckt eigentlich 32 Sensoren aus (weil 32 Zigbee Devices).
        Über die Switch Node hole ich mir die 18 die ich brauche (haben alle "Multisensor" im Namen) raus.
        Das klappt.
        Nun muss ich den oberen Teil so anpassen, dass ich auch nur die Daten von den 18 Sensoren bekomme.
        Ansonsten habe ich 4 Einträge in der Tabelle, die keinen Namen haben (von den unkonfigurierten und von den motion sensoren).

        Was ich tun würde:
        Mit einer Switch Node VOR den Function Nodes checken ob das was ich bekomme ein bestimmtes Topic hat (die IDs von den Sensoren). Sprich: 18 Outputs, wo ich die 18 die ich brauche raussuche und jeweils einem Output zuweise.
        Mit den anderen 4 würde dann nichts passieren, weil die nicht in die Funktionen kommen.
        Zur Veranschaulichtung würde das dann so aussehen:
        21e3c788-8c29-4255-ad8f-b1877a4f6d5d-image.png
        Die 18 outputs gehen dann alle in die Funktion Nodes jeweils.

        Alternativ könnte ich auch - statt mir die 18 rauszusuchen die ich möchte - die 4 raussuchen die ich NICHT möchte, und den Output dann nicht verwenden.
        So:
        ee40af29-035c-47c1-b970-1341767cf1da-image.png
        Da würde dann output1-4 nichts machen, und output 5 hänge ich dann an die Funktion Nodes.
        Aber ich nehme an das ist nicht gerade die beste Lösung?

        mickymM 1 Antwort Letzte Antwort
        0
        • S Schmetterfliege

          @mickym

          Ich liebe NR!
          Es nervt bloß dass ich so viel Hilfe brauche und mich doof anstelle :D.
          Meinem Spaß an NR tut das keinen Abbruch, im Gegenteil!

          Mit dem Trigger hat es nun geklappt, vielen Dank!

          Bitte hasse mich nicht:
          Nun müsste ich den Flow noch anpassen dass er mir nur die richtigen Sensoren beim aktualisieren liefert.
          Hier zur Veranschaulichung:
          cba4a77b-4b6c-4a87-ab99-37f364f76b5d-image.png
          Der obere Teil - also da wo die Aktualisierungen kommen - liefert mir Daten von 22 Sensoren. 18 die ich will, 2 Sensoren die nicht Konfiguriert sind, und 2 Motion Sensoren die dummerweiße auch einen Temp Sensor haben...
          Der untere Teil, also da wo ich die Namen auslesen, spuckt eigentlich 32 Sensoren aus (weil 32 Zigbee Devices).
          Über die Switch Node hole ich mir die 18 die ich brauche (haben alle "Multisensor" im Namen) raus.
          Das klappt.
          Nun muss ich den oberen Teil so anpassen, dass ich auch nur die Daten von den 18 Sensoren bekomme.
          Ansonsten habe ich 4 Einträge in der Tabelle, die keinen Namen haben (von den unkonfigurierten und von den motion sensoren).

          Was ich tun würde:
          Mit einer Switch Node VOR den Function Nodes checken ob das was ich bekomme ein bestimmtes Topic hat (die IDs von den Sensoren). Sprich: 18 Outputs, wo ich die 18 die ich brauche raussuche und jeweils einem Output zuweise.
          Mit den anderen 4 würde dann nichts passieren, weil die nicht in die Funktionen kommen.
          Zur Veranschaulichtung würde das dann so aussehen:
          21e3c788-8c29-4255-ad8f-b1877a4f6d5d-image.png
          Die 18 outputs gehen dann alle in die Funktion Nodes jeweils.

          Alternativ könnte ich auch - statt mir die 18 rauszusuchen die ich möchte - die 4 raussuchen die ich NICHT möchte, und den Output dann nicht verwenden.
          So:
          ee40af29-035c-47c1-b970-1341767cf1da-image.png
          Da würde dann output1-4 nichts machen, und output 5 hänge ich dann an die Funktion Nodes.
          Aber ich nehme an das ist nicht gerade die beste Lösung?

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

          @schmetterfliege Warte halt mal - ich bin ja schon dabei - was als Lösung vorzuschlagen. Das heißt mit den Namen sind nur die gewünschten Sensoren vorselektiert und Du willst nur, dass diese dann auch trigger und in die Tabelle schreiben? - Habe ich hoffentlich so richtig verstanden.

          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 Warte halt mal - ich bin ja schon dabei - was als Lösung vorzuschlagen. Das heißt mit den Namen sind nur die gewünschten Sensoren vorselektiert und Du willst nur, dass diese dann auch trigger und in die Tabelle schreiben? - Habe ich hoffentlich so richtig verstanden.

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

            @mickym

            Genau.
            Durch den Part der die Werte aktualisiert bekomme ich aber 4 zusätzliche, die dann ebenfalls in der Tabelle landen:
            f5caa095-c72f-48c3-a782-13625d0454d2-image.png
            Hier ganz unten - da sind schon 2 von 4. Die sollen da nicht landen.
            Wenn die 4 gar nicht erst reinkommen, könnte ich die JOIN Node auch wieder auf 18 begrenzen - da ja dann immer die gleichen 18 reinkommen. Aktuell muss ich das auf 22 lassen, weil sonst die 4 doofen Sensoren die eigentlichen Sensoren aus der Tabelle schmeißen^^

            mickymM 1 Antwort Letzte Antwort
            0
            • S Schmetterfliege

              @mickym

              Genau.
              Durch den Part der die Werte aktualisiert bekomme ich aber 4 zusätzliche, die dann ebenfalls in der Tabelle landen:
              f5caa095-c72f-48c3-a782-13625d0454d2-image.png
              Hier ganz unten - da sind schon 2 von 4. Die sollen da nicht landen.
              Wenn die 4 gar nicht erst reinkommen, könnte ich die JOIN Node auch wieder auf 18 begrenzen - da ja dann immer die gleichen 18 reinkommen. Aktuell muss ich das auf 22 lassen, weil sonst die 4 doofen Sensoren die eigentlichen Sensoren aus der Tabelle schmeißen^^

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

              @schmetterfliege So diese Node zwischen die Change und die Function Node - filtert alle unebkannten IDs aus:

              bf76ed04-155a-4cdd-9596-12b659855885-image.png

              [
                 {
                     "id": "bfe1061.7e771f8",
                     "type": "switch",
                     "z": "54b226bc.0793e8",
                     "name": "Nur definierte IDs",
                     "property": "$exists($lookup($flowContext('zigbee'), topic))\t",
                     "propertyType": "jsonata",
                     "rules": [
                         {
                             "t": "true"
                         }
                     ],
                     "checkall": "true",
                     "repair": false,
                     "outputs": 1,
                     "x": 890,
                     "y": 1480,
                     "wires": [
                         []
                     ]
                 }
              ]
              

              fd3fa7cf-6f47-466c-9893-e098f37f9fca-image.png

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

              S 1 Antwort Letzte Antwort
              0
              • mickymM mickym

                @schmetterfliege So diese Node zwischen die Change und die Function Node - filtert alle unebkannten IDs aus:

                bf76ed04-155a-4cdd-9596-12b659855885-image.png

                [
                   {
                       "id": "bfe1061.7e771f8",
                       "type": "switch",
                       "z": "54b226bc.0793e8",
                       "name": "Nur definierte IDs",
                       "property": "$exists($lookup($flowContext('zigbee'), topic))\t",
                       "propertyType": "jsonata",
                       "rules": [
                           {
                               "t": "true"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 1,
                       "x": 890,
                       "y": 1480,
                       "wires": [
                           []
                       ]
                   }
                ]
                

                fd3fa7cf-6f47-466c-9893-e098f37f9fca-image.png

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

                @mickym

                Danke!

                Verständnisfrage:
                27dd848c-c521-47ea-8371-217a8da03dda-image.png
                Sind die "Namen" der Objekte (rechts zu sehen) Topics? (also in dem Beispiel: ist 00158d... das "topic"?)

                mickymM 1 Antwort Letzte Antwort
                0
                • S Schmetterfliege

                  @mickym

                  Danke!

                  Verständnisfrage:
                  27dd848c-c521-47ea-8371-217a8da03dda-image.png
                  Sind die "Namen" der Objekte (rechts zu sehen) Topics? (also in dem Beispiel: ist 00158d... das "topic"?)

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

                  @schmetterfliege Na was machen wir denn hier?

                  001ba12e-9c7e-4351-a593-8dc9a7422a9d-image.png

                  So fügt sich zusammen, was zusammengehört. ;)

                  Und das topic hole ich doch davor aus dem Pfad raus:

                  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 was machen wir denn hier?

                    001ba12e-9c7e-4351-a593-8dc9a7422a9d-image.png

                    So fügt sich zusammen, was zusammengehört. ;)

                    Und das topic hole ich doch davor aus dem Pfad raus:

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

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

                    @schmetterfliege Na was machen wir denn hier?

                    001ba12e-9c7e-4351-a593-8dc9a7422a9d-image.png

                    So fügt sich zusammen, was zusammengehört. ;)

                    EDIT: Moment, muss doch nochmal kurz nachdenken.
                    Also:
                    In den Funktionen definieren wir die FlowVariablen. Das is klar.
                    Dass wir die anhand der Topics die wir übergeben bekommen setzen, ist soweit auch klar.
                    Nur: in dem Moment wo sie dann als FlowVariable gesetzt sind, ist der "Name" den jedes Object hat ein Topic?

                    Gegenbeispiel: Wenn ich der Funktion die ID nicht per msg.topic, sondern als msg.id gebe (weil die über msg.id reinkommt statt msg.topic), dann erhalte ich doch ebenso die FlowVariable mit den richtigen "Werten".
                    Würde man dann in der Switch Node statt "topic" -> "id" nutzen, oder weiterhin topic?
                    Das ist nämlich der Kern meiner Frage: f3887a7d-de9a-4d08-aa1e-f9839ba2c1b6-image.png ist die Definition hiervon ein TOPIC:
                    Sind das alles Topic per Definition oder weil wir in der Funktion Node den Namen per "msg.topic" gesetzt haben? (was für mich persönlich kein Sinn ergeben würde)

                    mickymM 2 Antworten Letzte Antwort
                    0
                    • S Schmetterfliege

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

                      @schmetterfliege Na was machen wir denn hier?

                      001ba12e-9c7e-4351-a593-8dc9a7422a9d-image.png

                      So fügt sich zusammen, was zusammengehört. ;)

                      EDIT: Moment, muss doch nochmal kurz nachdenken.
                      Also:
                      In den Funktionen definieren wir die FlowVariablen. Das is klar.
                      Dass wir die anhand der Topics die wir übergeben bekommen setzen, ist soweit auch klar.
                      Nur: in dem Moment wo sie dann als FlowVariable gesetzt sind, ist der "Name" den jedes Object hat ein Topic?

                      Gegenbeispiel: Wenn ich der Funktion die ID nicht per msg.topic, sondern als msg.id gebe (weil die über msg.id reinkommt statt msg.topic), dann erhalte ich doch ebenso die FlowVariable mit den richtigen "Werten".
                      Würde man dann in der Switch Node statt "topic" -> "id" nutzen, oder weiterhin topic?
                      Das ist nämlich der Kern meiner Frage: f3887a7d-de9a-4d08-aa1e-f9839ba2c1b6-image.png ist die Definition hiervon ein TOPIC:
                      Sind das alles Topic per Definition oder weil wir in der Funktion Node den Namen per "msg.topic" gesetzt haben? (was für mich persönlich kein Sinn ergeben würde)

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

                      @schmetterfliege Kannst ja testen - Du kannst ja 2 Inject Nodew davor plazieren mit einem msg.topic und einer bekannten und unbekannten ID. Es sollte nur die mit der bekannten ID durchgelassen werden. Mach am Besten einfach eine Kopie der Switch Node damit kannst testen.

                      fe53c17c-a92d-4b75-80df-20ec2d487b76-image.png

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

                      S 1 Antwort Letzte Antwort
                      0
                      • mickymM mickym

                        @schmetterfliege Kannst ja testen - Du kannst ja 2 Inject Nodew davor plazieren mit einem msg.topic und einer bekannten und unbekannten ID. Es sollte nur die mit der bekannten ID durchgelassen werden. Mach am Besten einfach eine Kopie der Switch Node damit kannst testen.

                        fe53c17c-a92d-4b75-80df-20ec2d487b76-image.png

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

                        @mickym

                        Dass es funktioniert glaube ich ja, ich möchte nur verstehen nach was genau wir da Filtern^^
                        Also was dieses "topic" ist.

                        1 Antwort Letzte Antwort
                        0
                        • S Schmetterfliege

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

                          @schmetterfliege Na was machen wir denn hier?

                          001ba12e-9c7e-4351-a593-8dc9a7422a9d-image.png

                          So fügt sich zusammen, was zusammengehört. ;)

                          EDIT: Moment, muss doch nochmal kurz nachdenken.
                          Also:
                          In den Funktionen definieren wir die FlowVariablen. Das is klar.
                          Dass wir die anhand der Topics die wir übergeben bekommen setzen, ist soweit auch klar.
                          Nur: in dem Moment wo sie dann als FlowVariable gesetzt sind, ist der "Name" den jedes Object hat ein Topic?

                          Gegenbeispiel: Wenn ich der Funktion die ID nicht per msg.topic, sondern als msg.id gebe (weil die über msg.id reinkommt statt msg.topic), dann erhalte ich doch ebenso die FlowVariable mit den richtigen "Werten".
                          Würde man dann in der Switch Node statt "topic" -> "id" nutzen, oder weiterhin topic?
                          Das ist nämlich der Kern meiner Frage: f3887a7d-de9a-4d08-aa1e-f9839ba2c1b6-image.png ist die Definition hiervon ein TOPIC:
                          Sind das alles Topic per Definition oder weil wir in der Funktion Node den Namen per "msg.topic" gesetzt haben? (was für mich persönlich kein Sinn ergeben würde)

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

                          @schmetterfliege

                          Also die Flow variable ist ein Objekt. Dieses Objekt besteht aus Eigenschaften die wiederum ein Objekte sind.

                          Das Objekt der Flow variable heißt zigbee.

                          Das Objekt der nun Eigenschaften die ich so benennen wie das msg.topic. Das ist das A und O - die id - spielt nur für die Tabelle eine Rolle für uns nicht.

                          Im Prinzip interessiert uns wie das Objekt aussieht überhaupt nicht - wir benennen die Eigenschaften des Objektes immer nach dem msg.topic - und somit bleibt auch die Zuordnung immer korrekt:

                          2b6bcab9-f246-40be-bb96-608ed499a0c2-image.png

                          Auch beim Setzen der Namen interessiert mich der Inhalt - der Wert der Eigenschaft überhaupt nicht, sondern es wird nur die Zuordnung über das msg.topic gesetzt

                          a831b0eb-d195-4d27-9719-81cd9762cd66-image.png

                          Die Eigenschaften im zigbee Objekt stammen also alle aus der msg.topic und nur die ist interessant für die Zuordung und Identifikation:
                          screen.png

                          Nun liest Du mit der JSONATA das Objekt aus - wichtig ist hier die lookup Funktion:

                          d67d8359-920c-4d91-99a4-894cadcf95ca-image.png

                          Sprich da ich ja vorher die Eigenschaften alle mit msg.topic festgelegt habe, kann ich natürlich auch mit lookup suchen, ob das Wert existiert.

                          Die Switch Node prüft also ob es im Objekt zigbee eine Eigenschaft "00158d0003f13adf" gibt - falls ja wird das Objekt zurückgeliefert - also am Anfang nur : { "name" : " Gerät Büro"}. Das interessiert uns aber nicht. Deswegen rufe ich mit Exists nur auf - ob lookup ein Objekt zurückliefert oder nicht. Falls true - lässt er die Originalnachricht durch. Ansonsten wird undefined anstelle eines Objektes zurückgegeben und exists liefert false und die Nachricht wird blockiert.

                          Fertig - viel genauer kann ich es eingentlich nicht mehr erklären.

                          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

                            Also die Flow variable ist ein Objekt. Dieses Objekt besteht aus Eigenschaften die wiederum ein Objekte sind.

                            Das Objekt der Flow variable heißt zigbee.

                            Das Objekt der nun Eigenschaften die ich so benennen wie das msg.topic. Das ist das A und O - die id - spielt nur für die Tabelle eine Rolle für uns nicht.

                            Im Prinzip interessiert uns wie das Objekt aussieht überhaupt nicht - wir benennen die Eigenschaften des Objektes immer nach dem msg.topic - und somit bleibt auch die Zuordnung immer korrekt:

                            2b6bcab9-f246-40be-bb96-608ed499a0c2-image.png

                            Auch beim Setzen der Namen interessiert mich der Inhalt - der Wert der Eigenschaft überhaupt nicht, sondern es wird nur die Zuordnung über das msg.topic gesetzt

                            a831b0eb-d195-4d27-9719-81cd9762cd66-image.png

                            Die Eigenschaften im zigbee Objekt stammen also alle aus der msg.topic und nur die ist interessant für die Zuordung und Identifikation:
                            screen.png

                            Nun liest Du mit der JSONATA das Objekt aus - wichtig ist hier die lookup Funktion:

                            d67d8359-920c-4d91-99a4-894cadcf95ca-image.png

                            Sprich da ich ja vorher die Eigenschaften alle mit msg.topic festgelegt habe, kann ich natürlich auch mit lookup suchen, ob das Wert existiert.

                            Die Switch Node prüft also ob es im Objekt zigbee eine Eigenschaft "00158d0003f13adf" gibt - falls ja wird das Objekt zurückgeliefert - also am Anfang nur : { "name" : " Gerät Büro"}. Das interessiert uns aber nicht. Deswegen rufe ich mit Exists nur auf - ob lookup ein Objekt zurückliefert oder nicht. Falls true - lässt er die Originalnachricht durch. Ansonsten wird undefined anstelle eines Objektes zurückgegeben und exists liefert false und die Nachricht wird blockiert.

                            Fertig - viel genauer kann ich es eingentlich nicht mehr erklären.

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

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

                                          752

                                          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