Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Zigbee2mqtt installation

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Zigbee2mqtt installation

Scheduled Pinned Locked Moved ioBroker Allgemein
284 Posts 6 Posters 46.9k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Schmetterfliege

    Ich wollte mir mal ne Tabelle basteln um mir den Onlinestatus der Zigbee Devices anzeigen zu lassen.
    Ich hab da versehentlich was echt geiles gemacht glaube ich:
    37ae5982-e306-4467-bb3b-c494f5d3adc6-image.png

    Alle Datenpunkte initialisieren mit .availability.
    In der Change Node wird nur die Topic angepasst damit das mqtt.0.zigbee2mqtt nicht mehr drin steht und am ende ".availability" abgeschnitten.
    7b03d441-f6d1-472d-95f9-9e9e591a9dc1-image.png
    In der Function Node schreibe ich dann den Status in den Flow Kontext.
    Ich hätte jetzt eigentlich erwartet dass da sowas rauskommt wie:
    Availability

    • Sp15.Schlafzimmer.Eingang
    • Status: Online
    • Multisensor.Büro.Besta
    • Status: Online
      usw.
      Aber da kam das raus:
      a82fdb49-406f-446e-9ff7-ce5a340893f3-image.png
      Also irgendwie perfekt alles im Kontext, sortiert nach Gerätetyp, Raum und dann - wenn vorhanden - Ort.
      Keine Ahnung wieso das so da raus kommt, aber es ist Hammer.
      Nur... wie addressiere ich im weiteren nun die einzelnen "Kategorien"?
      Mit sowas wie [0], [1] wenn ich zb. die Gerätetypen haben will? (Also 0 = Heizungsthermostat, 1 = Kontaktsensor, usw)
      Bei der anderen Tabelle hab ichs ja leider nicht geschafft diese "Werte" aus dem Kontext zu verwenden (sondern musste ja den Raum separat in den Payload packen nach der Join Node.
      Das dürfte hier aber nicht so easy funktionieren weil es je nach Gerätetyp mehr oder weniger "Ebenen" gibt (Thermostate haben zb nur den Raum, keinen Ort)

    Splitten geht hier ja nicht weil es Kategorien und Unterkategorien gibt, ein Split würde mir ja das ganze Ding dann kaputt machen

    mickymM Online
    mickymM Online
    mickym
    Most Active
    wrote on last edited by mickym
    #201

    @schmetterfliege Na ja deswegen hab ich ja auch den availabilty Punkt- Solche Dinge stehen aber in der Beschreibung:

    2ca720f0-1931-46c0-8683-06607e14e49f-image.png

    Das dürfte hier aber nicht so easy funktionieren weil es je nach Gerätetyp mehr oder weniger "Ebenen" gibt (Thermostate haben zb nur den Raum, keinen Ort)

    Aber bei Deinen Gerätetypen sind doch immer die erste Ebene - wo ist da das Problem? (Egal wieviele Ebenen darunter sind?)

    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 Reply Last reply
    0
    • mickymM mickym

      @schmetterfliege Na ja deswegen hab ich ja auch den availabilty Punkt- Solche Dinge stehen aber in der Beschreibung:

      2ca720f0-1931-46c0-8683-06607e14e49f-image.png

      Das dürfte hier aber nicht so easy funktionieren weil es je nach Gerätetyp mehr oder weniger "Ebenen" gibt (Thermostate haben zb nur den Raum, keinen Ort)

      Aber bei Deinen Gerätetypen sind doch immer die erste Ebene - wo ist da das Problem? (Egal wieviele Ebenen darunter sind?)

      S Offline
      S Offline
      Schmetterfliege
      wrote on last edited by Schmetterfliege
      #202

      @mickym

      Ich glaube mit etwas rumprobieren sollte ich das hinbekommen.
      Nachdem der Kontext in den Payload geladen wird, sieht das so aus:
      715cb442-5c39-4257-8f2b-b1d8e607aeb7-image.png

      Damit kann man also schon mal arbeiten und schritt für schritt splitten.

      In der Tabelle soll ja nicht nur der Gerätetyp stehen, sondern auch der Raum und wenn vorhanden der Ort.
      Und da bin ich halt unsicher wie das geht wenn es verschiedene "Ebenen" gibt, als wenn pro Gerät Raum und Ort jeweils eigene Werte sind die direkt da drunter stehen - statt verschachtelt in Ebenen

      EDIT:
      017b56bf-93e7-4679-85e2-6584ff14571e-image.png
      So sieht es nach dem ersten Splitt aus. Wird also erstmal nach Typen gesplittet.
      Dann whsl einfach eine switch node die die Gerätetypen kennt (kommt ja per Topic rein) und dann je nach Typ noch 1 oder 2 Split Nodes - den Aufbau der einzelnen Typen kenne ich ja.

      mickymM 1 Reply Last reply
      0
      • S Schmetterfliege

        @mickym

        Ich glaube mit etwas rumprobieren sollte ich das hinbekommen.
        Nachdem der Kontext in den Payload geladen wird, sieht das so aus:
        715cb442-5c39-4257-8f2b-b1d8e607aeb7-image.png

        Damit kann man also schon mal arbeiten und schritt für schritt splitten.

        In der Tabelle soll ja nicht nur der Gerätetyp stehen, sondern auch der Raum und wenn vorhanden der Ort.
        Und da bin ich halt unsicher wie das geht wenn es verschiedene "Ebenen" gibt, als wenn pro Gerät Raum und Ort jeweils eigene Werte sind die direkt da drunter stehen - statt verschachtelt in Ebenen

        EDIT:
        017b56bf-93e7-4679-85e2-6584ff14571e-image.png
        So sieht es nach dem ersten Splitt aus. Wird also erstmal nach Typen gesplittet.
        Dann whsl einfach eine switch node die die Gerätetypen kennt (kommt ja per Topic rein) und dann je nach Typ noch 1 oder 2 Split Nodes - den Aufbau der einzelnen Typen kenne ich ja.

        mickymM Online
        mickymM Online
        mickym
        Most Active
        wrote on last edited by
        #203

        @schmetterfliege Verstehe ich alles nicht. Mach mal praktisches Beispiel

        1. Ebene ist doch immer Gerätetyp
        2. Ebene Raum
        3. Ebene ist Ort oder availability

        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 Reply Last reply
        0
        • S Offline
          S Offline
          Schmetterfliege
          wrote on last edited by Schmetterfliege
          #204

          Vielleicht wird es so klarer wo mein Denkproblem ist:
          7fb7a9ef-b35f-474c-a76b-034df506971d-image.png

          Die Tabelle füttere ich ja mit dem gesamten Kontext.
          Wie ich zb den status in die Tabelle packe weiß ich.
          5570f11a-f8e6-4f14-acd6-4e5a9802bb3c-image.png

          Mein Problem: Ich weiß nicht wie ich in der Definition der Tabelle die "Ebenen" einfüge.
          Also Büro, Großes_Bad, Küche, etc.
          status ist ja klar weil das ein Value ist.
          Das andere sind aber Objekte. Wie komme ich an den "Namen" eines Objekts?

          In der Tabelle mit den Temperaturen hatte ich ja das gleiche Problem und bin das umgangen indem ich vorher im Flow den "Raum" mit in den Payload jedes Objektes packe.

          d733d0f5-d401-4999-809d-1945d64c249e-image.png
          An den Status komme ich easy weil es ein Value ist der überall gleich heißt. "*.status"
          An "Abstellkammer.Regal" komme ich aber eben nicht "automatisch" ran, weil das ja überall anders heißt.

          mickymM 1 Reply Last reply
          0
          • S Schmetterfliege

            Vielleicht wird es so klarer wo mein Denkproblem ist:
            7fb7a9ef-b35f-474c-a76b-034df506971d-image.png

            Die Tabelle füttere ich ja mit dem gesamten Kontext.
            Wie ich zb den status in die Tabelle packe weiß ich.
            5570f11a-f8e6-4f14-acd6-4e5a9802bb3c-image.png

            Mein Problem: Ich weiß nicht wie ich in der Definition der Tabelle die "Ebenen" einfüge.
            Also Büro, Großes_Bad, Küche, etc.
            status ist ja klar weil das ein Value ist.
            Das andere sind aber Objekte. Wie komme ich an den "Namen" eines Objekts?

            In der Tabelle mit den Temperaturen hatte ich ja das gleiche Problem und bin das umgangen indem ich vorher im Flow den "Raum" mit in den Payload jedes Objektes packe.

            d733d0f5-d401-4999-809d-1945d64c249e-image.png
            An den Status komme ich easy weil es ein Value ist der überall gleich heißt. "*.status"
            An "Abstellkammer.Regal" komme ich aber eben nicht "automatisch" ran, weil das ja überall anders heißt.

            mickymM Online
            mickymM Online
            mickym
            Most Active
            wrote on last edited by
            #205

            @schmetterfliege sagte in Zigbee2mqtt installation:

            In der Tabelle mit den Temperaturen hatte ich ja das gleiche Problem und bin das umgangen indem ich vorher im Flow den "Raum" mit in den Payload jedes Objektes packe.

            Das ist keine Umgehung. Du musst grundsätzlich alle Spalten, die Du in der Tabelle anzeigen willst, als eigene Eigenschaften in den Objekten mitführen. Das ist keine Umgehung sondern - das ist so definiert.

            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 Reply Last reply
            1
            • mickymM mickym

              @schmetterfliege sagte in Zigbee2mqtt installation:

              In der Tabelle mit den Temperaturen hatte ich ja das gleiche Problem und bin das umgangen indem ich vorher im Flow den "Raum" mit in den Payload jedes Objektes packe.

              Das ist keine Umgehung. Du musst grundsätzlich alle Spalten, die Du in der Tabelle anzeigen willst, als eigene Eigenschaften in den Objekten mitführen. Das ist keine Umgehung sondern - das ist so definiert.

              S Offline
              S Offline
              Schmetterfliege
              wrote on last edited by
              #206

              @mickym said in Zigbee2mqtt installation:

              @schmetterfliege sagte in Zigbee2mqtt installation:

              In der Tabelle mit den Temperaturen hatte ich ja das gleiche Problem und bin das umgangen indem ich vorher im Flow den "Raum" mit in den Payload jedes Objektes packe.

              Das ist keine Umgehung. Du musst grundsätzlich alle Spalten, die Du in der Tabelle anzeigen willst, als eigene Eigenschaften in den Objekten mitführen. Das ist keine Umgehung sondern - das ist so definiert.

              Manno 😞 😁

              dann wird das ziemlich umständlich

              mickymM 1 Reply Last reply
              0
              • S Schmetterfliege

                @mickym said in Zigbee2mqtt installation:

                @schmetterfliege sagte in Zigbee2mqtt installation:

                In der Tabelle mit den Temperaturen hatte ich ja das gleiche Problem und bin das umgangen indem ich vorher im Flow den "Raum" mit in den Payload jedes Objektes packe.

                Das ist keine Umgehung. Du musst grundsätzlich alle Spalten, die Du in der Tabelle anzeigen willst, als eigene Eigenschaften in den Objekten mitführen. Das ist keine Umgehung sondern - das ist so definiert.

                Manno 😞 😁

                dann wird das ziemlich umständlich

                mickymM Online
                mickymM Online
                mickym
                Most Active
                wrote on last edited by mickym
                #207

                @schmetterfliege Verstehe nicht, warum das umständlich sein soll. Jedes Objekt entspricht einer Zeile und jede Eigenschaft des Objektes ist eine Spalte. - So ist die Tabelle aufgebaut. Ich seh das Problem nicht.

                Wenn Du Hierarchien aufbauen willst in der Tabelle - dann geht das denke ich auch - aber da bin ich raus.

                Dann solltest Du Dir anstelle der table NOde - direkt mit dem Tabulator arbeiten.

                Dazu schau Dir mal diesen Flow an:
                https://forum.iobroker.net/post/878465

                und da gibts auch Beispiele - aber wie gesagt da bin ich erst mal raus.

                Damit kannst dann auch Gruppieren oder Baumstrukturen aufbauen. Aber wie gesagt - das hab ich alle noch nicht gemacht.

                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 Reply Last reply
                0
                • mickymM mickym

                  @schmetterfliege Verstehe nicht, warum das umständlich sein soll. Jedes Objekt entspricht einer Zeile und jede Eigenschaft des Objektes ist eine Spalte. - So ist die Tabelle aufgebaut. Ich seh das Problem nicht.

                  Wenn Du Hierarchien aufbauen willst in der Tabelle - dann geht das denke ich auch - aber da bin ich raus.

                  Dann solltest Du Dir anstelle der table NOde - direkt mit dem Tabulator arbeiten.

                  Dazu schau Dir mal diesen Flow an:
                  https://forum.iobroker.net/post/878465

                  und da gibts auch Beispiele - aber wie gesagt da bin ich erst mal raus.

                  Damit kannst dann auch Gruppieren oder Baumstrukturen aufbauen. Aber wie gesagt - das hab ich alle noch nicht gemacht.

                  S Offline
                  S Offline
                  Schmetterfliege
                  wrote on last edited by Schmetterfliege
                  #208

                  @mickym
                  Grade versuche ich mich daran die dinger per Split Node erstmal außeinander zu nehmen.

                  ad85fff6-8f31-4704-bc94-725386b55073-image.png

                  Bei den Kontaktsensoren komme ich dann schon an so einen Punkt.
                  Die nach Raum zu trennen geht mit einer split Node problemlos.
                  Aber in Räumen wo 2 sind habe ich dann 2 Objekte im Payload + den Raum.
                  Da habe ich jetzt 2 Probleme:

                  1. wenn ich jetzt noch eine Split Node dran hänge kommt nur noch einzelnes Zeug raus das nicht mehr zusammenhängt.
                    Also Fenster_Rechts hätte dann keinen Wert "Status" mehr, sondern erster Output = Fenster_Rechts, zweiter Output = status.
                    fdf96725-4597-4464-b483-e0cd5d921d93-image.png

                  2. Könnte ich ja theoretisch umgehen indem ich den raum nicht im Payload vom "Hauptobjekt" habe, sondern in den einzelnen Objekten im Payload.
                    Aber da ist dann wieder das Problem dass ich nicht weiß wie ich payload.status nach payload.*.status verschieben kann. Wildcards gehen da ja nicht.

                  mickymM 1 Reply Last reply
                  0
                  • S Schmetterfliege

                    @mickym
                    Grade versuche ich mich daran die dinger per Split Node erstmal außeinander zu nehmen.

                    ad85fff6-8f31-4704-bc94-725386b55073-image.png

                    Bei den Kontaktsensoren komme ich dann schon an so einen Punkt.
                    Die nach Raum zu trennen geht mit einer split Node problemlos.
                    Aber in Räumen wo 2 sind habe ich dann 2 Objekte im Payload + den Raum.
                    Da habe ich jetzt 2 Probleme:

                    1. wenn ich jetzt noch eine Split Node dran hänge kommt nur noch einzelnes Zeug raus das nicht mehr zusammenhängt.
                      Also Fenster_Rechts hätte dann keinen Wert "Status" mehr, sondern erster Output = Fenster_Rechts, zweiter Output = status.
                      fdf96725-4597-4464-b483-e0cd5d921d93-image.png

                    2. Könnte ich ja theoretisch umgehen indem ich den raum nicht im Payload vom "Hauptobjekt" habe, sondern in den einzelnen Objekten im Payload.
                      Aber da ist dann wieder das Problem dass ich nicht weiß wie ich payload.status nach payload.*.status verschieben kann. Wildcards gehen da ja nicht.

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    wrote on last edited by
                    #209

                    @schmetterfliege sagte in Zigbee2mqtt installation:

                    @mickym
                    Grade versuche ich mich daran die dinger per Split Node erstmal außeinander zu nehmen.

                    Na mach mal - ich kapier nicht, was Du willst. Wie gesagt - Du mussen die Werte aller Spalten als Eigenschaften in den Objekten vorhanden sein.

                    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 Reply Last reply
                    1
                    • mickymM mickym

                      @schmetterfliege sagte in Zigbee2mqtt installation:

                      @mickym
                      Grade versuche ich mich daran die dinger per Split Node erstmal außeinander zu nehmen.

                      Na mach mal - ich kapier nicht, was Du willst. Wie gesagt - Du mussen die Werte aller Spalten als Eigenschaften in den Objekten vorhanden sein.

                      S Offline
                      S Offline
                      Schmetterfliege
                      wrote on last edited by
                      #210

                      @mickym said in Zigbee2mqtt installation:

                      @schmetterfliege sagte in Zigbee2mqtt installation:

                      @mickym
                      Grade versuche ich mich daran die dinger per Split Node erstmal außeinander zu nehmen.

                      Na mach mal - ich kapier nicht, was Du willst. Wie gesagt - Du mussen die Werte aller Spalten als Eigenschaften in den Objekten vorhanden sein.

                      Genau das versuche ich gerade 🙂

                      mickymM 1 Reply Last reply
                      0
                      • S Offline
                        S Offline
                        Schmetterfliege
                        wrote on last edited by
                        #211

                        In anderen Worten:
                        0a66f5e2-a29e-4361-874d-0fb9ed04eedd-image.png
                        "raum" soll in die Objekte verschoben/kopiert werden.
                        Und zwar in einer Syntax die allgemein geht - also wo nicht "payload.Fenster_Links.raum" steht sondern payload.*.raum

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          Schmetterfliege
                          wrote on last edited by
                          #212

                          8a4c3fd9-fcf0-4683-a3fc-1508b115a1ff-image.png

                          JSON schaut schon mal nach einer guten Richtung aus

                          1 Reply Last reply
                          0
                          • S Schmetterfliege

                            @mickym said in Zigbee2mqtt installation:

                            @schmetterfliege sagte in Zigbee2mqtt installation:

                            @mickym
                            Grade versuche ich mich daran die dinger per Split Node erstmal außeinander zu nehmen.

                            Na mach mal - ich kapier nicht, was Du willst. Wie gesagt - Du mussen die Werte aller Spalten als Eigenschaften in den Objekten vorhanden sein.

                            Genau das versuche ich gerade 🙂

                            mickymM Online
                            mickymM Online
                            mickym
                            Most Active
                            wrote on last edited by mickym
                            #213

                            @schmetterfliege

                            Du machst alles einheitlich.

                            Wenn es sich nur darum handelt, dass Du einmal nur Raum hast und einmal Raum und Ort. Dann behandelst Du halt im ersten Schritt alles als Raum.

                            Also in den Objekten wo nur ein Raum vorhanden ist - das halt ein einfacher Raum.

                            Also

                            Gerätetyp/Raum/Gerät

                            oder halt

                            Gerätetyp/Raum/Ort/Gerät

                            Wie gesagt - ich werde sicher keine Flows nachvollziehen jetzt - sondern die Basis muss halt stimmen.

                            Gerätetyp ist die erste Ebene, Gerät ist die letzte Ebene
                            Raum ist erst mal das dazwischen.

                            Das kannst ja dann abprüfen, ob Raum dann solo steht oder Raum/ort enthält. Wie gesagt - mit Deinen Objekten bin ich raus. Weil ich halt das Objekt am Anfang immer nur in 3 Ebenen unterteilen würde.

                            Du machst Dir mit der dummen function Node und aufsplitten des Pfades alles kaputt. Dann speichere Dir lieber den ganzen Pfad als Eigenschaft im Objekt mit und dann kannst Du das im Objekt selbst immer noch auseinanderfieseln.

                            Der status Datenpunkt ist doch immer der letzte in der Hierarchie - also speichere halt den ganzen Pfad ab und anlysiere das in dem Objekt,

                            Wie gesagt in dem Fall, wenn es um die Verfügbarkeit geht, halte ich eine Initialisierung eh für "Schwachsinn" - da bin ich grundsätzlich ein Anhänger von Echtdaten.

                            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 mickymM 2 Replies Last reply
                            0
                            • mickymM mickym

                              @schmetterfliege

                              Du machst alles einheitlich.

                              Wenn es sich nur darum handelt, dass Du einmal nur Raum hast und einmal Raum und Ort. Dann behandelst Du halt im ersten Schritt alles als Raum.

                              Also in den Objekten wo nur ein Raum vorhanden ist - das halt ein einfacher Raum.

                              Also

                              Gerätetyp/Raum/Gerät

                              oder halt

                              Gerätetyp/Raum/Ort/Gerät

                              Wie gesagt - ich werde sicher keine Flows nachvollziehen jetzt - sondern die Basis muss halt stimmen.

                              Gerätetyp ist die erste Ebene, Gerät ist die letzte Ebene
                              Raum ist erst mal das dazwischen.

                              Das kannst ja dann abprüfen, ob Raum dann solo steht oder Raum/ort enthält. Wie gesagt - mit Deinen Objekten bin ich raus. Weil ich halt das Objekt am Anfang immer nur in 3 Ebenen unterteilen würde.

                              Du machst Dir mit der dummen function Node und aufsplitten des Pfades alles kaputt. Dann speichere Dir lieber den ganzen Pfad als Eigenschaft im Objekt mit und dann kannst Du das im Objekt selbst immer noch auseinanderfieseln.

                              Der status Datenpunkt ist doch immer der letzte in der Hierarchie - also speichere halt den ganzen Pfad ab und anlysiere das in dem Objekt,

                              Wie gesagt in dem Fall, wenn es um die Verfügbarkeit geht, halte ich eine Initialisierung eh für "Schwachsinn" - da bin ich grundsätzlich ein Anhänger von Echtdaten.

                              S Offline
                              S Offline
                              Schmetterfliege
                              wrote on last edited by Schmetterfliege
                              #214

                              @mickym
                              5d8f5e98-b01c-4a26-99e3-d53d1298d594-image.png
                              Im Objekt steht doch alles drin, samt dem Pfad...
                              Aber verrate mir mal wie ich den Pfad dann auseinanderfiesel wenn ich nicht nach einheitlichen Mustern suchen kann?
                              Ob Ort am Ende oder mittendrin kommt spielt keine Rolle, weil das Muster trotzdem unterschiedlich ist.
                              Und jetzt bei jedem Gerät nen Ort angeben auch wenn es keinen Sinn ergibt kann ich am Ende immer noch machen.
                              Sehe aktuell aber noch keinen Grund wieso ich das tun sollte.. das muss auch so irgendwie gehen.

                              Das Initialisieren mache ich mit Echtdaten. Wenn ich die Tabelle aber niemals initialisiere wird die niemals voll.
                              Einer meiner Sensoren ist zb Offline, und da hat sich der Datenpunkt seit 5 Tagen nicht geändert - wie soll ich da mitbekommen wenn ein Sensor mal ausfällt wenn ich mir Anfangs nicht den aktuellen Status hole sondern nur auf Änderungen warte - die ja nicht kommen?

                              1 Reply Last reply
                              0
                              • mickymM mickym

                                @schmetterfliege

                                Du machst alles einheitlich.

                                Wenn es sich nur darum handelt, dass Du einmal nur Raum hast und einmal Raum und Ort. Dann behandelst Du halt im ersten Schritt alles als Raum.

                                Also in den Objekten wo nur ein Raum vorhanden ist - das halt ein einfacher Raum.

                                Also

                                Gerätetyp/Raum/Gerät

                                oder halt

                                Gerätetyp/Raum/Ort/Gerät

                                Wie gesagt - ich werde sicher keine Flows nachvollziehen jetzt - sondern die Basis muss halt stimmen.

                                Gerätetyp ist die erste Ebene, Gerät ist die letzte Ebene
                                Raum ist erst mal das dazwischen.

                                Das kannst ja dann abprüfen, ob Raum dann solo steht oder Raum/ort enthält. Wie gesagt - mit Deinen Objekten bin ich raus. Weil ich halt das Objekt am Anfang immer nur in 3 Ebenen unterteilen würde.

                                Du machst Dir mit der dummen function Node und aufsplitten des Pfades alles kaputt. Dann speichere Dir lieber den ganzen Pfad als Eigenschaft im Objekt mit und dann kannst Du das im Objekt selbst immer noch auseinanderfieseln.

                                Der status Datenpunkt ist doch immer der letzte in der Hierarchie - also speichere halt den ganzen Pfad ab und anlysiere das in dem Objekt,

                                Wie gesagt in dem Fall, wenn es um die Verfügbarkeit geht, halte ich eine Initialisierung eh für "Schwachsinn" - da bin ich grundsätzlich ein Anhänger von Echtdaten.

                                mickymM Online
                                mickymM Online
                                mickym
                                Most Active
                                wrote on last edited by
                                #215

                                @mickym

                                @schmetterfliege sagte in Zigbee2mqtt installation:

                                Aber verrate mir mal wie ich den Pfad dann auseinanderfiesel wenn ich nicht nach einheitlichen Mustern suchen kann?
                                Ob Ort am Ende oder mittendrin kommt spielt keine Rolle, weil das Muster trotzdem unterschiedlich ist.

                                Wieso ist doch immer das gleiche -

                                Typ.Raum.Ort

                                oder nur

                                Typ.Raum

                                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 Reply Last reply
                                0
                                • mickymM mickym

                                  @mickym

                                  @schmetterfliege sagte in Zigbee2mqtt installation:

                                  Aber verrate mir mal wie ich den Pfad dann auseinanderfiesel wenn ich nicht nach einheitlichen Mustern suchen kann?
                                  Ob Ort am Ende oder mittendrin kommt spielt keine Rolle, weil das Muster trotzdem unterschiedlich ist.

                                  Wieso ist doch immer das gleiche -

                                  Typ.Raum.Ort

                                  oder nur

                                  Typ.Raum

                                  S Offline
                                  S Offline
                                  Schmetterfliege
                                  wrote on last edited by
                                  #216

                                  @mickym said in Zigbee2mqtt installation:

                                  @mickym

                                  @schmetterfliege sagte in Zigbee2mqtt installation:

                                  Aber verrate mir mal wie ich den Pfad dann auseinanderfiesel wenn ich nicht nach einheitlichen Mustern suchen kann?
                                  Ob Ort am Ende oder mittendrin kommt spielt keine Rolle, weil das Muster trotzdem unterschiedlich ist.

                                  Wieso ist doch immer das gleiche -

                                  Typ.Raum.Ort

                                  oder nur

                                  Typ.Raum

                                  Nicht "oder".
                                  a UND b. Es gibt beides.

                                  Machen wir mal einen ganz anderen Ansatz:
                                  9a0abe7c-f3d9-4849-932e-2ae43f44a45d-image.png
                                  Kann ich bei dem JSON mit einer Schleife durchgehen und für jedes Objekt "raum":"XYZ" als Key-Value hinzufügen?

                                  mickymM 1 Reply Last reply
                                  0
                                  • S Schmetterfliege

                                    @mickym said in Zigbee2mqtt installation:

                                    @mickym

                                    @schmetterfliege sagte in Zigbee2mqtt installation:

                                    Aber verrate mir mal wie ich den Pfad dann auseinanderfiesel wenn ich nicht nach einheitlichen Mustern suchen kann?
                                    Ob Ort am Ende oder mittendrin kommt spielt keine Rolle, weil das Muster trotzdem unterschiedlich ist.

                                    Wieso ist doch immer das gleiche -

                                    Typ.Raum.Ort

                                    oder nur

                                    Typ.Raum

                                    Nicht "oder".
                                    a UND b. Es gibt beides.

                                    Machen wir mal einen ganz anderen Ansatz:
                                    9a0abe7c-f3d9-4849-932e-2ae43f44a45d-image.png
                                    Kann ich bei dem JSON mit einer Schleife durchgehen und für jedes Objekt "raum":"XYZ" als Key-Value hinzufügen?

                                    mickymM Online
                                    mickymM Online
                                    mickym
                                    Most Active
                                    wrote on last edited by mickym
                                    #217

                                    @schmetterfliege Ich komm nicht mehr mit was Du machst.

                                    Wenn Du Dein Topic Kontaktsensor. Schlafzimmer.Fenster_Rechts ist - dann kannst das doch zuordnen. Wenn Ort nicht vorhanden lässt Du das halt leer.

                                    2d5edfb7-61e4-451d-9253-f5a2966811a0-image.png

                                    [
                                       {
                                           "id": "b86796aa4a28b583",
                                           "type": "inject",
                                           "z": "289f539dcc33814e",
                                           "name": "Kontaktsensor. Schlafzimmer.Fenster_Rechts",
                                           "props": [
                                               {
                                                   "p": "topic",
                                                   "vt": "str"
                                               }
                                           ],
                                           "repeat": "",
                                           "crontab": "",
                                           "once": false,
                                           "onceDelay": 0.1,
                                           "topic": "Kontaktsensor. Schlafzimmer.Fenster_Rechts",
                                           "x": 330,
                                           "y": 4200,
                                           "wires": [
                                               [
                                                   "5abbdc0ff690ce3f"
                                               ]
                                           ]
                                       },
                                       {
                                           "id": "3e9555f6428601c2",
                                           "type": "inject",
                                           "z": "289f539dcc33814e",
                                           "name": "",
                                           "props": [
                                               {
                                                   "p": "topic",
                                                   "vt": "str"
                                               }
                                           ],
                                           "repeat": "",
                                           "crontab": "",
                                           "once": false,
                                           "onceDelay": 0.1,
                                           "topic": "Thermometer. Schlafzimmer",
                                           "x": 380,
                                           "y": 4240,
                                           "wires": [
                                               [
                                                   "5abbdc0ff690ce3f"
                                               ]
                                           ]
                                       },
                                       {
                                           "id": "5abbdc0ff690ce3f",
                                           "type": "change",
                                           "z": "289f539dcc33814e",
                                           "name": "",
                                           "rules": [
                                               {
                                                   "t": "set",
                                                   "p": "payload",
                                                   "pt": "msg",
                                                   "to": "$split(topic, \".\")",
                                                   "tot": "jsonata"
                                               },
                                               {
                                                   "t": "set",
                                                   "p": "payload",
                                                   "pt": "msg",
                                                   "to": "{\t    \"typ\": payload[0],\t    \"raum\": payload[1],\t    \"ort\" : payload[2]\t}",
                                                   "tot": "jsonata"
                                               }
                                           ],
                                           "action": "",
                                           "property": "",
                                           "from": "",
                                           "to": "",
                                           "reg": false,
                                           "x": 650,
                                           "y": 4220,
                                           "wires": [
                                               [
                                                   "ae2bc5f4d65b3bb7"
                                               ]
                                           ]
                                       },
                                       {
                                           "id": "ae2bc5f4d65b3bb7",
                                           "type": "debug",
                                           "z": "289f539dcc33814e",
                                           "name": "debug 40",
                                           "active": true,
                                           "tosidebar": true,
                                           "console": false,
                                           "tostatus": false,
                                           "complete": "false",
                                           "statusVal": "",
                                           "statusType": "auto",
                                           "x": 860,
                                           "y": 4220,
                                           "wires": []
                                       }
                                    ]
                                    

                                    Wie gesagt mit deinen Schleifen - da steig ich momentan aus. Ich versteh einfach das Problem 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 Reply Last reply
                                    0
                                    • mickymM mickym

                                      @schmetterfliege Ich komm nicht mehr mit was Du machst.

                                      Wenn Du Dein Topic Kontaktsensor. Schlafzimmer.Fenster_Rechts ist - dann kannst das doch zuordnen. Wenn Ort nicht vorhanden lässt Du das halt leer.

                                      2d5edfb7-61e4-451d-9253-f5a2966811a0-image.png

                                      [
                                         {
                                             "id": "b86796aa4a28b583",
                                             "type": "inject",
                                             "z": "289f539dcc33814e",
                                             "name": "Kontaktsensor. Schlafzimmer.Fenster_Rechts",
                                             "props": [
                                                 {
                                                     "p": "topic",
                                                     "vt": "str"
                                                 }
                                             ],
                                             "repeat": "",
                                             "crontab": "",
                                             "once": false,
                                             "onceDelay": 0.1,
                                             "topic": "Kontaktsensor. Schlafzimmer.Fenster_Rechts",
                                             "x": 330,
                                             "y": 4200,
                                             "wires": [
                                                 [
                                                     "5abbdc0ff690ce3f"
                                                 ]
                                             ]
                                         },
                                         {
                                             "id": "3e9555f6428601c2",
                                             "type": "inject",
                                             "z": "289f539dcc33814e",
                                             "name": "",
                                             "props": [
                                                 {
                                                     "p": "topic",
                                                     "vt": "str"
                                                 }
                                             ],
                                             "repeat": "",
                                             "crontab": "",
                                             "once": false,
                                             "onceDelay": 0.1,
                                             "topic": "Thermometer. Schlafzimmer",
                                             "x": 380,
                                             "y": 4240,
                                             "wires": [
                                                 [
                                                     "5abbdc0ff690ce3f"
                                                 ]
                                             ]
                                         },
                                         {
                                             "id": "5abbdc0ff690ce3f",
                                             "type": "change",
                                             "z": "289f539dcc33814e",
                                             "name": "",
                                             "rules": [
                                                 {
                                                     "t": "set",
                                                     "p": "payload",
                                                     "pt": "msg",
                                                     "to": "$split(topic, \".\")",
                                                     "tot": "jsonata"
                                                 },
                                                 {
                                                     "t": "set",
                                                     "p": "payload",
                                                     "pt": "msg",
                                                     "to": "{\t    \"typ\": payload[0],\t    \"raum\": payload[1],\t    \"ort\" : payload[2]\t}",
                                                     "tot": "jsonata"
                                                 }
                                             ],
                                             "action": "",
                                             "property": "",
                                             "from": "",
                                             "to": "",
                                             "reg": false,
                                             "x": 650,
                                             "y": 4220,
                                             "wires": [
                                                 [
                                                     "ae2bc5f4d65b3bb7"
                                                 ]
                                             ]
                                         },
                                         {
                                             "id": "ae2bc5f4d65b3bb7",
                                             "type": "debug",
                                             "z": "289f539dcc33814e",
                                             "name": "debug 40",
                                             "active": true,
                                             "tosidebar": true,
                                             "console": false,
                                             "tostatus": false,
                                             "complete": "false",
                                             "statusVal": "",
                                             "statusType": "auto",
                                             "x": 860,
                                             "y": 4220,
                                             "wires": []
                                         }
                                      ]
                                      

                                      Wie gesagt mit deinen Schleifen - da steig ich momentan aus. Ich versteh einfach das Problem nicht.

                                      S Offline
                                      S Offline
                                      Schmetterfliege
                                      wrote on last edited by Schmetterfliege
                                      #218

                                      @mickym
                                      2e0afefe-52a9-4675-bb84-d03a2995a9f3-image.png
                                      Wenn ich in der Change Node noch ein paar Sachen hinzufüge geht das schon, aber dann habe ich nen haufen einzelner Objekte.
                                      Wäre halt schön wenn im Kontext das Zeug hierarchisch gespeichert wäre, statt eine ewig lange Liste einzelner Objekte

                                      mickymM 1 Reply Last reply
                                      0
                                      • S Schmetterfliege

                                        @mickym
                                        2e0afefe-52a9-4675-bb84-d03a2995a9f3-image.png
                                        Wenn ich in der Change Node noch ein paar Sachen hinzufüge geht das schon, aber dann habe ich nen haufen einzelner Objekte.
                                        Wäre halt schön wenn im Kontext das Zeug hierarchisch gespeichert wäre, statt eine ewig lange Liste einzelner Objekte

                                        mickymM Online
                                        mickymM Online
                                        mickym
                                        Most Active
                                        wrote on last edited by mickym
                                        #219

                                        @schmetterfliege Wieso Du brauchst doch alles einzelne Objekte - die sammelst nun in ein Array und die Tabelle ist fertig. Deine Tabelle ist NICHT hierarchisch.

                                        Wenn Du das sortiert haben möchtest. Dann sammelst Du alles vorher in einem Array - und sortierst nach dem topic. Splittest Dein array wieder auf und nutzt die Change Node wie Du es jetzt gemacht hast und sammelst wieder.

                                        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 Reply Last reply
                                        0
                                        • mickymM mickym

                                          @schmetterfliege Wieso Du brauchst doch alles einzelne Objekte - die sammelst nun in ein Array und die Tabelle ist fertig. Deine Tabelle ist NICHT hierarchisch.

                                          Wenn Du das sortiert haben möchtest. Dann sammelst Du alles vorher in einem Array - und sortierst nach dem topic. Splittest Dein array wieder auf und nutzt die Change Node wie Du es jetzt gemacht hast und sammelst wieder.

                                          S Offline
                                          S Offline
                                          Schmetterfliege
                                          wrote on last edited by
                                          #220

                                          @mickym

                                          4d50db67-374f-4840-b1d8-410aa2fb86cd-image.png

                                          Function Node angepasst funktioniert auch um das wieder sortiert im Flow zu haben.
                                          Frag mich nicht wieso ich das unbedingt im Kontext sortiert haben wollte, ich weiß dass das absolut keinen Sinn macht weil mich das ja jetzt wieder direkt zu meinem Problem katapultiert.
                                          Mein innerer Fetisch hat das gebraucht.

                                          Die Tabelle baue ich jetzt im Flow ohne den Kontext.
                                          Wie gesagt, frag nicht... ich hätte nachher nicht schlafen können wenn das im Kontext nicht sortiert gewesen wäre^^

                                          mickymM 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

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

                                          230

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe