Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Zigbee2mqtt installation

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Zigbee2mqtt installation

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @Schmetterfliege last edited by 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 1 Reply Last reply Reply Quote 0
      • S
        Schmetterfliege @mickym last edited by 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.

        mickym 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @Schmetterfliege last edited by

          @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 1 Reply Last reply Reply Quote 1
          • S
            Schmetterfliege @mickym last edited by

            @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 🙂

            mickym 1 Reply Last reply Reply Quote 0
            • S
              Schmetterfliege last edited by

              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 Reply Quote 0
              • S
                Schmetterfliege last edited by

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

                JSON schaut schon mal nach einer guten Richtung aus

                1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @Schmetterfliege last edited by 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 mickym 2 Replies Last reply Reply Quote 0
                  • S
                    Schmetterfliege @mickym last edited by Schmetterfliege

                    @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 Reply Quote 0
                    • mickym
                      mickym Most Active @mickym last edited by

                      @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 1 Reply Last reply Reply Quote 0
                      • S
                        Schmetterfliege @mickym last edited by

                        @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?

                        mickym 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @Schmetterfliege last edited by 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 1 Reply Last reply Reply Quote 0
                          • S
                            Schmetterfliege @mickym last edited by 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

                            mickym 1 Reply Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @Schmetterfliege last edited by 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 1 Reply Last reply Reply Quote 0
                              • S
                                Schmetterfliege @mickym last edited by

                                @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^^

                                mickym 1 Reply Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active @Schmetterfliege last edited by

                                  @schmetterfliege Na gut - das kommentiere ich nicht weiter - aber ich denke die Lösung hast Du jetzt.

                                  S 1 Reply Last reply Reply Quote 0
                                  • S
                                    Schmetterfliege @mickym last edited by Schmetterfliege

                                    @mickym
                                    Noch nicht ganz....

                                    Nevermind. Die Tabelle ist im Dashboard sau weit unten gelandet und ich hab nicht gesehen dass die tatsächlich gebastelt wurde.
                                    Nevermind2: vergiss auch den anderen Teil, bin einfach nur dumm.

                                    mickym 1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active @Schmetterfliege last edited by mickym

                                      Ehrlich gesagt ich habe keine Ahnung was du machst und warum du die payload geschachtelt hast. Tut mir leid aber ich steige da aus.

                                      Wenn ich 2 Nachrichten mit einer payload als Objekte enthalte und einfach über eine JOIN Node in einem Array zusammenfasse - dann ist da nichts geschachtelt.

                                      6697ca13-b1db-4794-94f3-9b0f937c72c8-image.png fa9069bc-a653-44e1-9f37-499042f5b36e-image.png

                                      und ich fasse das in einer JOIN Node zu einem Array:

                                      b74098ae-08e3-49ac-b377-cbeda26520a5-image.png

                                      Bei Dir musst halt sekunden nehmen.

                                      Jedenfalls hab ich dann eine payload mit einem sauberen Array der einzelnen Objekte.

                                      dca54bff-6531-4cd6-9ff2-888c69f35222-image.png

                                      Also keine Ahnung was Du da machst mit verschachtelten payloads.

                                      Es steht ja auch verbinde alle msg.payloads - da tauchen keine anderen Eigenschaften in dem Array auf, die außerhalb der payload standen.

                                      S 1 Reply Last reply Reply Quote 0
                                      • S
                                        Schmetterfliege @mickym last edited by

                                        @mickym

                                        War verschachtelt weil ich die Join Node versehentlich gelöscht hab, neu eingefügt und vergessen von "Gesamtes Nachrichtenobjekt" auf msg.payload zu ändern. Alles gut.

                                        Wie gesagt, vergiss das wieder^^

                                        Die Tabelle steht, und ich versuche grade nur noch den Text andersfarbig hinzubekommen.
                                        Gebe da jetzt aber auf.
                                        99% der Suchtreffer ändern einfach nur den Hintergrund, und das was ich gefunden hab macht den String in dem Feld rot und fett, aber halt immer und ich bin zu blöd es hinzubekommen dass er unterscheidet zwischen "Online" und "Offline" und dann unterschiedliche Farben nimmt - was ich bei Zahlenwerten problemlos hinbekommen hatte.
                                        Da suchst du nach nem einfachen Beispiel aber 95% der Suchtreffer gehen voll am Thema vorbei, und da wo es passt geben dir 10 Leute 20 Möglichkeiten das zu machen, eine exorbitant komplizierter als die andere - ich hab grad die Schnauze voll^^
                                        Wenn der Frust weggeschlafen ist mach ich "Online" zu ner 1 und "Offline" zu ner 2 und mach nen switch-case... das funktioniert wenigstens ohne Raketenwissenschaft studiert haben zu müssen.....

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          Schmetterfliege last edited by

                                          @mickym
                                          Nachdem ich jetzt wieder nen Monat quasi nichts mit NR gemacht habe...
                                          Ich versuche grade rauszufinden wie ich dem Payload ein neues Objekt hinzufügen kann.
                                          Könntest du mir hier nochmal aushelfen?

                                          Ich möchte meiner Tabelle nun auch den Ort der Sensoren hinzufügen.
                                          abc84c94-0931-4108-b1f2-973cd6d1b222-image.png
                                          In der ersten Change Node erstelle ich msg.name und ziehe den Name aus der Topic:
                                          892aeaff-fb4b-40a4-8a72-c7d3f35b5731-image.png
                                          Direkt in den Payload kann ich es nicht machen, weil "non-object type", also ich kann da keine neue Property im Payload erstellen.
                                          Deshalb verschiebe ich es, nachdem das Payload in ein Objekt geändert wird.
                                          Zweite Change Node:
                                          3f0693d4-8788-408d-873f-882fa1ae542a-image.png

                                          Das funktioniert soweit auch, aber nachdem ich die Flowvariable setze, ist msg.name wieder vorhanden. Warum?
                                          42b1de8f-b5e5-46e8-8f30-0d1bbd2782da-image.png
                                          Der zweite Output ist nach der Change Node in der ich das Verschiebe. Da ist kein msg.name.
                                          Der erste Output im Debug ist nach der Function Node in der ich die Variablen setze. ich verstehe nicht wieso da plötzlich wieder msg.name auftaucht....
                                          264220e7-5f20-470e-be70-a64b9498b4b2-image.png

                                          mickym 2 Replies Last reply Reply Quote 0
                                          • mickym
                                            mickym Most Active @Schmetterfliege last edited by mickym

                                            @schmetterfliege Ehrllich gesagt verstehe ich nicht. Vor der ChangeNode ist msg.name vorhanden, dann verschiebst Du es in die payload (als payload.name) und in der 2. Ausgabe ist es weg. Das ist doch korrekt?

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

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

                                            877
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            284
                                            29113
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo