Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Shellys ("Alt und Plus") über MQTT Adapter

    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

    Shellys ("Alt und Plus") über MQTT Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @hotspot_2 last edited by

      @hotspot_2 sagte in Shellys ("Alt und Plus") über MQTT Adapter:

      @mickym Das wäre super.

      Das was wir bisher gemacht haben - hätte man auch noch ganz ohne Logikmaschine (also ohne Node Red und Blockly) mit einem Alias machen können. Nur wird das bei mehrfachen Paramtern schnell unübersichtlich.

      Also schlaf gut.

      H 1 Reply Last reply Reply Quote 0
      • H
        hotspot_2 @mickym last edited by

        @mickym Ich bin jetzt am einrichten der Nodes und klappt soweit.

        Ich stelle aber fest dass das anlegen der Objekte durch NodeRed nicht einwandfrei funktioniert. Die Objekte werden oft als undefinded angelegt und dann muss ich sie entweder löschen oder von Hand auf boolean setzen.

        Kann man das irgendwie optimieren?

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

          @hotspot_2 Nein - entweder du legst es von vorne an - Du kannst natürlich eine Datentyp schon in der iobroker-out mitgeben - in diesem Fall sollte der richtige Datentyp gleich angelegt sein:

          75fdc129-232a-47cd-a021-113cec21d5bb-image.png

          Evtl. dauert es aber auch. Ansonsten muss ein issue auf github eröffnet werden.

          Normalerweise hat mir @apollon77 erklärt, dass der Datentyp durch die payload automatisch erstellt wird. Aber wie gestern scheint sich das Erstellen von Objekten sehr verschlechtert zu haben, als ob sich da im Hintergrund was ändert.

          H apollon77 3 Replies Last reply Reply Quote 0
          • H
            hotspot_2 @mickym last edited by hotspot_2

            @mickym Das mitgeben des Payload Datentyps in der iobroker-out löst das Problem. Dann funktioniert es bestens.

            18 Plus1 habe ich schon drin, funktioniert alles bestens.

            1 Reply Last reply Reply Quote 2
            • H
              hotspot_2 @mickym last edited by

              @mickym Hallo, ich würde nun gerne einen Shelly Motion (Gen1) anzapfen und das Motion Event und den Batteriestatus abfragen. Per MQTT sind sie schon eingebunden und das JSON habe ich mal hier eingefügt.

              {"motion":false,"timestamp":0,"active":true,"vibration":false,"lux":0,"bat":96}
              

              Wie kann ich das JSON nun so zerlegen und iobroker-out einmal motion, bat, vibration rausschreiben in ein Objekt? Das haben wir gestern glaub noch nicht gemacht. Nur in ein JSON schreiben.

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

                @hotspot_2 Nun das habe ich Dir gezeigt. Ist doch das Gleiche wie Du den output rausgeholt hast. Setze die Payload einfach auf den Pfad der Eigenschaft die Du brauchst.

                also eine Change Node mit setze payload auf payload.motion und einmal eine change Node mit payload auf payload.bat -

                Schau Dir einfach nochmal diesen Post an: https://forum.iobroker.net/post/969387

                f2eb3e2b-2655-42c0-84e2-f414b390b9b1-image.png

                0c47c320-8d61-4848-855b-35e2300834c4-image.png

                H 1 Reply Last reply Reply Quote 0
                • H
                  hotspot_2 @mickym last edited by

                  @mickym Passt! Ich war mir nicht mehr ganz sicher da da was von payload.output stand. Aber wenn ich da payloud.motion eingebe, habe ich was ich brauche. Läuft ;-).

                  Danke!

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

                    @hotspot_2 Nochmal vorher war output die Eigenschaft, die Du extrahieren willst. Wie gesagt Du setzt die payload auf die eingehende Nachricht und dort auf die Eigenschaft. die dich interessiert. Nutze von Anfang an die JSONATA Seite.

                    Schau mal hier kannst Du testen:
                    https://try.jsonata.org/JQEvV10Vd

                    Links trägst Du Dein Eingangsobjekt ein, rechts oben - Dein Kommando - rechts unten das Ergebnis

                    Wie gesagt Du solltest Dich mit rein paar Basics von Objekten vertraut machen. Nicht umsonst habe ich Dir gepostet, wie Du aus dem Debug Output Pfad und Werte kopierst:

                    copy path.gif

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

                      @mickym sagte in Shellys ("Alt und Plus") über MQTT Adapter:

                      Normalerweise hat mir @apollon77 erklärt, dass der Datentyp durch die payload automatisch erstellt wird. Aber wie gestern scheint sich das Erstellen von Objekten sehr verschlechtert zu haben, als ob sich da im Hintergrund was ändert.

                      Was hat sich wo geändert?

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

                        @apollon77 Na ich weiß es nicht. 😉 - Mir ist es nun gerade hier im Thread passiert ist, dass der Datenpunkt nicht angelegt wurde oder plötzlich im Node-Red Adapter aufgetaucht ist. Bislang hatte ich da nie Probleme, aber es ist nicht nur mir passiert. Irgendwie hat das gestern oder vorgestern solche Fehler gegeben, dass die Datenpunkte nicht angelegt wurden oder falsch angelegt wurden - und vorher gabs das Problem eigentlich nicht oder ist nicht aufgetreten. Keine Ahnung. Ich hab auch nicht das Gefühl, dass das immer sondern manchmal auftritt - deshalb habe ich auch noch kein Issue aufgemacht.

                        Im Moment klappt es - wenn der Pfad in mqtt Schreibweise mitgegeben wird - also mit Schrägstrichen, dann wird es unter NodeRed angelegt. Allerdings ist grundsätzlich auch die Pfadangaben mit Schrägstrichschreibweise ja auch supported, sonst hätten wir ja nicht die Option bei den iobroker-IN Nodes.

                        ![0_1680128060162_55536927-9c61-4091-bdb3-7832cdd2f4f3-image.png](Lade 100% hoch)

                        https://forum.iobroker.net/post/969674
                        https://forum.iobroker.net/post/969319
                        https://forum.iobroker.net/post/969318

                        https://forum.iobroker.net/post/969313

                        Das passiert nicht immer - sondern nur manchmal.

                        Fazit: Das mit dem Anlegen der Datenpunkte passiert nicht immer zuverlässig - eine Gesetzmässigkeit konnte ich noch nicht erkennen. Hatte ich aber vorher nicht.

                        Für die iobroker Out Nodes erzeugt die mqtt Schreibweise des topics nachvollziehbar, dass es dann in der Adapterinstanz angelegt wird, obwohl die Schreibweise bei der iobroker-IN Node supported wird. Dazu kann ich ein Issue aufmachen.

                        696a7dba-22a8-4f6b-906b-b2474c70e9ff-image.png

                        786be048-f3ec-432a-ae03-2b94494e6113-image.png

                        Erzeugt den Datenpunkt unter dem Adapter ein chaos.

                        Jetzt gerade wieder versucht

                        51cec8e7-fa0d-44f2-9e18-acc59d85e39b-image.png

                        Datenpunkt wird einfach nicht angelegt.

                        d2041817-3325-419d-b334-329365b61a7f-image.png

                        Irgendwie ist mir diese Unzuverlässigkeit der Objektanlage früher nicht aufgefallen.

                        Ich kann wieder Issues aufmachen - aber es ist halt nicht immer so, dass die Datenpunkte nicht angelegt werden. Keine Ahnung warum es nicht immer klappt.

                        Soll ich 2 getrennte Issues aufmachen - oder wurde irgendwas im Hintergrund geändert, dass hier solche Unregelmäßigkeiten auftreten? - Das war die Ursprungsfrage. Wenn man den Datentyp angibt, scheint es jedoch zuverlässig zu funktionieren.

                        OK - ich denke ich habe ein paar Gesetzmäßigkeiten erkannt. Wenn das topic nicht in der iobroker-Out Node definiert wird, dann ist es zuverlässig.

                        Also wenn das topic variabel ist, dann funktioniert das Anlegen des Datenpunktes ohne Probleme.

                        OK. Ich mache gerade die Issues auf. Ich arbeite immer noch mit 4.0.0

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

                          @apollon77 sagte in Shellys ("Alt und Plus") über MQTT Adapter:

                          @mickym sagte in Shellys ("Alt und Plus") über MQTT Adapter:

                          Normalerweise hat mir @apollon77 erklärt, dass der Datentyp durch die payload automatisch erstellt wird. Aber wie gestern scheint sich das Erstellen von Objekten sehr verschlechtert zu haben, als ob sich da im Hintergrund was ändert.

                          Was hat sich wo geändert?

                          https://github.com/ioBroker/ioBroker.node-red/issues/369

                          https://github.com/ioBroker/ioBroker.node-red/issues/370

                          Irgendwie hat das mit dem Erstellen der Folder Nodes zuverlässig geklappt - da ich den Adapter in der Version 4.0.0 nun schon über ein halbes Jahr benutze - läuft doch da was im Hintergrund (javascript controller??)

                          0d0df0a5-aad2-4738-a0bb-ff9205210c4f-image.png

                          mickym2 created this issue in ioBroker/ioBroker.node-red

                          closed iobroker-out does not create objects if topic is specified in node #369

                          mickym2 created this issue in ioBroker/ioBroker.node-red

                          open iobroker IN Node supports topics in MQTT notation iobroker OUT Node does not #370

                          H 1 Reply Last reply Reply Quote 0
                          • H
                            hotspot_2 @mickym last edited by hotspot_2

                            @mickym Komme gut voran 😉 Habe jetzt noch 4 Shellys am Shelly Adapter.

                            Bin gerade dabei einen I3 einzubinden und dabei auf eine Thema gekommen das ich nochmal nachfragen wollte. Wenn ich ein JSON vom MQTT Server hole das mehrere Felder hat (wie z.B. info oder input_event beim I3).

                            {
                              "event": "",
                              "event_cnt": 0
                            }
                            

                            Gibt es da eine Möglichkeit aus dem MQTT in mehrere Werte rauszuziehen? Ohne das ich jetzt für jeden Wert drei Nodes machen muss? Gerade bei info könnten das schon mehrere Werte sein die ich daraus gerne in die Objekte schreiben würde.

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

                              @hotspot_2 Du kannst doch meine Subflow Node verwenden.

                              Ausserdem kannst Du ja jederzeit mehrere Change Nodes in eine iobroker-out Nodes verkabeln.

                              Und in den topics setzt Du den Pfad. Grundsätzlich kannst Du auch mit einer split Node ein Objekt auseinandernehmen und dann halt das topic selbst setzen. Kannst machen wie du willst. Über debug Nodes siehst ja was passiert.

                              H 1 Reply Last reply Reply Quote 0
                              • H
                                hotspot_2 @mickym last edited by hotspot_2

                                @mickym Danke!

                                5caaa48a-45b6-4375-9132-2d82ade8b3f9-image.png

                                So sieht meine i3 Einbindung jetzt aus.

                                Macht insgesamt richtig Spaß. Toll das Du mir das gesamte Vorgehen gezeigt hast, kommt man viel besser rein in die Thematik.

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

                                  @hotspot_2 Im Prinzip brauchst Du aber nur die Datenpunkte, die Du anzeigen willst oder die weitere Aktionen anstossen sollen und selbst die brauchst Du ja nicht in Datenpunkte schreiben - ausser Du willst mit Blockly weiterarbeiten - ansonsten kannst Du die Aktionen auch direkt mit Node Red auslösen. Wenn Du alle Daten nur wieder in einzelne Datenpunkte aufteilst - dann vervielfältigst Du nur vorhandene Informationen.

                                  H 2 Replies Last reply Reply Quote 0
                                  • H
                                    hotspot_2 @mickym last edited by

                                    @mickym

                                    Ja, ich arbeite momentan noch mit Blockly. Nehme nur die Werte raus die ich in den Blockly Skripten brauche, da ich damit dort weiterarbeite.

                                    Wenn ich den Shelly Adapter komplett raus habe, dann melde ich mich mal bei Gelegenheit. Würde dann gerne meine Blocklies auf NodeRed nach und nach umheben.

                                    1 Reply Last reply Reply Quote 0
                                    • H
                                      hotspot_2 @mickym last edited by

                                      @mickym Habe noch ein Problem wo ich gerade nicht weiterkomme.

                                      fee84080-d186-482d-85e5-e30caebaafe1-image.png

                                      Wie könnte ich den aus dieser Information, die in shellies/licht/keller/flur_keller_hinten/status/sys enthalten ist die Information extrahieren am besten mit true oder false wenn ein Update verfügbar ist (stable)?

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

                                        @hotspot_2 Na da steht doch wenn kein Update verfügbar ist dann kommt ein leeres Objekt raus ansonsten ist halt was drin. Das heißt du hängst halt ein switch dran

                                        b6680dfd-b3aa-4330-8eb5-5ed50c8a5f04-image.png

                                        [
                                           {
                                               "id": "7613e676055cedf2",
                                               "type": "switch",
                                               "z": "289f539dcc33814e",
                                               "name": "",
                                               "property": "payload",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "empty"
                                                   },
                                                   {
                                                       "t": "nempty"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 2,
                                               "x": 750,
                                               "y": 4820,
                                               "wires": [
                                                   [
                                                       "495cb8b569581f4c"
                                                   ],
                                                   [
                                                       "c94a32e6e3493c9d"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "495cb8b569581f4c",
                                               "type": "change",
                                               "z": "289f539dcc33814e",
                                               "name": "leer = false",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "payload",
                                                       "pt": "msg",
                                                       "to": "false",
                                                       "tot": "bool"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 910,
                                               "y": 4800,
                                               "wires": [
                                                   []
                                               ]
                                           },
                                           {
                                               "id": "c94a32e6e3493c9d",
                                               "type": "change",
                                               "z": "289f539dcc33814e",
                                               "name": "nicht leer = true",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "payload",
                                                       "pt": "msg",
                                                       "to": "true",
                                                       "tot": "bool"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 920,
                                               "y": 4840,
                                               "wires": [
                                                   []
                                               ]
                                           }
                                        ]
                                        

                                        H 1 Reply Last reply Reply Quote 0
                                        • H
                                          hotspot_2 @mickym last edited by

                                          @mickym Krieg ich das noch hin das nur bei stable updates ein true rauskommt?

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

                                            @hotspot_2 dann machst halt den false Ausgang weg.

                                            H 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

                                            869
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            512
                                            70070
                                            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