Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Shelly per MQTT schalten geht nicht

    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

    Shelly per MQTT schalten geht nicht

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

      @mickym

      Super, danke, funktioniert. Und wieder etwas gelernt, ich wusste weder, dass man zum lesen und schreiben unterschiedliche Datenpunkte verwenden kann noch das mit der Konvertierungsfunktion (das kann ich auch super für die Fensterzustände gebrauchen, Tiltwinkel in auf/zu umrechnen).

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

        Moin,

        ich stehe vor einem ähnlichen Problem. Ich habe einen bockigen Shelly, der per MQTT angebunden ist. Ich steuere das Ding in einem Script an, um alle Lampen abzuschalten.

        Arbeite ich auf dem Shelly oder direkt in den Objekten und setze das Command auf "off", funktioniert die Kiste.
        Arbeite ich per Script, nimmt der Shelly das Kommando oft nicht an. Es ändert sich nicht im Objektbrowser.

        Nun habe ich es über den Alias versucht und sehe dort, dass "on_actual" den korrekten Status anzeigt, SET aber auf "false" steht, wenn die Lampe am Schalter geschaltet worden ist - und dann die Lampe natürlich nicht abschaltet, wenn ich erneut ein false sende. Und so richtig sinnvoll ist es dann ja auch nicht, vor jedem Absenden eines Kommandos an den Alias zu schauen wie er steht und dann "wenn false, dann erst true und dann false" zu setzen.

        Wende ich SET falsch an?

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

          @gutgut30 ich weiß zwar gerade nicht von was du gerade redest, den shelly schaltet man in der Gen1 über command und in der Gen2 über Switch: soweit ich das weiß. Der Status in der Gen1 direkt auf 0 als relay/0 über dem command angezeigt. Du brauchst 2 verschiedene Punkte wie unten zu schreiben und lesen. Dass der Status im set oder Setzen nichts mit dem aktuellen Zustand zu tun hast ist klar. Diese topic enthält immer nur den letzten Befehl, der abgesetzt wurde. Außerdem muss man halt aufpassen dass nicht mehrere Adapter schalten. Du solltest den überall rausnehmen, geschrieben was für ein Shelly das ist Gen1 oder Gen2 und dann implementieren. Jedenfalls macht es keinen Sinn die Shellie’s per mqtt nativ und per Adapter zu schalten.

          a2f9f123-6448-4aec-82a2-6bf1e8eeb9ec-image.png

          Grün: ist der Status
          Gelb: das letzte Kommando

          Kann natürlich unterschiedlich sein, wenn man den Schalter physisch oder mit der App schaltet.

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

            @mickym
            Dann ist das wohl ein Problem, wenn man ihn physisch schaltet. Denn dann hat man dieses Bild und schon war es das mit dem Schalten über die Objekte:
            48f49bf7-590c-441f-8b3b-a63eb89d312e-image.png

            Ich werde dann wohl doch auf den Shelly Adapter umziehen müssen, sofern der nicht in das gleiche Dilemma läuft. Ärgerlich 😞

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

              @gutgut30 Quatsch - ich habe gezeigt wie man das mit dem Alias macht, mit unterschiedlichen Datenpunkten zu Lesen und Schreiben.

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

              Zum Lesen den Relay0 Datenpunkt, zum Schreiben den Command Datenpunkt und auch die unterschiedlichen Konvertierungsfunktionen sind in dem Screenshot - mehr kann man glaub ich nicht zeigen. Wenn Du Fragen hast, dann frag - wenn Du lieber den Shelly Adapter nutzen willst, kannst Du das gerne tun, wenn nicht habe ich es in dem Beitrag gezeigt, wie es geht.

              Wie gesagt, dass ist kein Grund deswegen den Shelly Adapter zu nutzen. In dem Beitrag unten zeigt der Alias dann nur nicht on/off sondern true/false zum Schalten und als Status an.

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

                @mickym
                Dein Posting habe ich gesehen und so habe ich es auch konfiguriert:

                c5de9b80-7dbf-4fe3-b077-e4bc57057698-image.png

                ON_Actual:
                5a77bb92-c865-47bd-bc2f-11ab0ce92783-image.png

                *SET
                e4358672-f962-4704-bee2-f5ebad94627b-image.png

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

                  @gutgut30 Das ist doch verkehrt rum.

                  Du liest doch den Status aus relay.0
                  und schreibst den Status in relay.0.command

                  6ff04114-1be2-4502-bf41-043e04fb8950-image.png

                  und die Konvertierung hast Du auch nicht richtig abgeschrieben:

                  7470e582-fbd6-48e4-bf62-f0c06bbc2f29-image.png

                  Ausserdem mach das nicht mit dem "BLÖDEN" Geräteadapter sondern trage das in den Alias direkt in den Objekten ein.
                  Dieser Adapter macht Dir alles kaputt.

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

                    @mickym OMG - du hast Recht, ich hab lesen und schreiben vertauscht. Ich Idiot! Danke.

                    Die Konvertierung habe ich tatsächlich nicht aus diesem Thread, die Syntax sollte aber passen. Checke ich noch mal.

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

                      @gutgut30 Na und schmeiß diesen Geräteadapter raus - der macht nur UNSINN. Mach das direkt im Alias Datenpunkt in den Objekten. Dieser Geräteadapter macht mehr kaputt, als er ganz macht. Das habe ich schon mehrfach ausprobiert - ICH kann nur abraten.

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

                        @gutgut30 sagte in Shelly per MQTT schalten geht nicht:

                        Die Konvertierung habe ich tatsächlich nicht aus diesem Thread, die Syntax sollte aber passen. Checke ich noch mal.

                        ist nur umständlich, weil val == true ? - entspricht val ?

                        Aber ich habe keine Ahnung warum ich alles da rein schreibe, wenn man es sich dann irgendwoher sucht. Aber am Schlimmsten ist der Geräteadapter - das ist wahrscheinlich auch wieder ein Video aus dem vorigen Jahrhundert.

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

                          @mickym
                          Bin das Spielchen gerade noch mal durch. Auch das klappt nicht. Liegt aber auch wieder am command, das auf off bleibt. Denn auch der Alias macht am Ende ja auch nichts anderes, als aus dem false ein off zu schreiben. Daher aber der command auf off bleibt wenn ich extern schalte, gewinne ich hier nichts.

                          Also doch ein Adapter-Versuch 😞

                          Edit: Alternativ setze ich den Shelly von Edge Switch auf Detached Switch und steure nur im iobroker. Nicht die eleganteste Lösung, aber dann würde immerhin alles über den command laufen und dieser immer korrekt sein.

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

                            @gutgut30 Ich kann Dir nur sagen es geht. Vergiss den Device Adapter und mach es so wie ich beschrieben habe. Wenn Du den Schalter physisch betätigst, dann springt der relay.0 auf den Zustand um. Der command Datenpunkt wird im Alias nie angezeigt, in den wird nur geschrieben. Ich kann Dir nur sagen es funktioniert - ich habe es selbst ausprobiert.

                            Und zwar gerade nochmal:

                            WICHTIG ist, dass Du den Alias als Logikwert definierst. Wir können es gerne Schritt für Schritt durchgehen:

                            61bf8da5-f47c-45f4-859e-e10a6678b482-image.png
                            1b006486-400d-4885-818e-fceee2460e10-image.png

                            30126282-ccc4-4837-836b-331cf57da9e7-image.png

                            Ich hab da zwar toggle switch, aber das spielt keine Rolle.

                            Also Fragen;

                            1. Neuen Alias selbst unter 0.alias - ohne irgendwelche Adapter als Logikwert erstellt?
                            2. relay/0 Datenpunkt zum Lesen im Alias Tab definiert?
                            3. relay/0/command Datenpunkt zum Schreiben im Alias Tab definiert
                            4. Konvertierungsfunktion beim Lesen:
                            val == "on" ? true : false
                            
                            1. Konvertierungsfunktion beim Schreiben
                            val ? "on" : "off"
                            

                            Wichtig ist, dass der Aliasdatenpunkt als Logikwert angelegt wurde.

                            Wenn der Aliasdatenpunkt als Alias angelegt wurde, dann kannst Du keinen Text mehr eingeben:
                            413f611f-0e33-4606-9dac-966e383e1972-image.png

                            Und wie immer beim Schalten - darf man das ganz nur "unbestätigt" schalten - das heißt der Haken Bestätigt darf NIE gesetzt sein.

                            Und egal welchen Schaltertyp (ausser detached) Du verwendest - relay/0 gibt immer den aktuellen Status des Relais aus (egal welcher Schaltertyp - und egal ob Du am Schalter, in einer App oder über VIS geschaltet hast).

                            G E 2 Replies Last reply Reply Quote 0
                            • G
                              gutgut30 @mickym last edited by

                              @mickym
                              Ich hab es letztendlich genau so aufgebaut. Aber wie gesagt, wenn das Command bei einer externen Aktionen nicht umschaltet, dann kann auch der Alias da nichts machen.

                              Ich hab das ganze mal mit einem anderen Shelly 2.5 verglichen. Der andere setzt den Command bei externer Aktion korrekt identisch auf den Wert aus 0. Und dann klappt das auch. Die Settings beider Shellys sind absolut gleich. Auch nach einem Factory Reset tanzt dieser eine leider aus der Reihe.

                              Hab es jetzt mit einem Script gelöst, dass das Command identisch zum relay hält. Vielleicht hat der Shelly einfach einen weg, so gehts jetzt aber.

                              64d0dcce-954f-4a03-afd8-d158c861634d-image.png

                              Danke & frohe Tanne

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

                                @mickym hallo könnte mir auch jemand helfen.
                                Ich möchte auch shelly über mqtt adapter schalten.
                                das Read funktion geht wenn ich den relai über den Web von shelly schalte, dann Aktualisiert sich das Datenpunkt , möchte ich aber über iobroker schalten geht es nicht habe den datenpunkt command nicht unter reali nur 0 befehl on oder off geht nicht.Muss ich den datenpunkt comman selber erstellen wenn ja wie???

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

                                  @exitus ja du musst den Datenpunkt selbst erstellen. Entweder direkt in der Objektansicht oder indem Du „on“ off direkt im topic

                                  xxxxx/command/switch:0
                                  

                                  publishst. Geht auch mit einer mqtt App auf dem Handy wenn du dich mit dem mqtt Broker verbindest.

                                  Mit Blockly gibts auch direkt ein mqtt Puzzleteil.

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

                                    @mickym danke erstmal.
                                    Wie muss es den heissen bzw . Wie mache Ich es über App.
                                    Zb mein Datenpunkt ist
                                    mqtt.4.shellies.Garage_vorne.relay.0
                                    Muss ich jetzt einfach unter garage_vorne Ordner in Objekt ein datenpunkt erstellen der so ist
                                    mqtt.4.shellies.Garage_vorne.relay.command
                                    Oder
                                    mqtt.4.shellies.Garage_vorne.relay.0.command
                                    Das erste klappt nicht

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

                                      @exitus sagte in Shelly per MQTT schalten geht nicht:

                                      mqtt.4.shellies.Garage_vorne.relay.0.command
                                      Wenn es ein Generation 1 ist dann ist we wohl

                                      mqtt.4.shellies.Garage_vorne.relay.0.command
                                      

                                      Wenn es Gen 2 oder 3 ist dann wihl

                                      mqtt.4.shellies.Garage_vorne.command.switch:0
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • mickym
                                        mickym Most Active @exitus last edited by

                                        @exitus sagte in Shelly per MQTT schalten geht nicht:

                                        mqtt.4.shellies.Garage_vorne.relay.0.command
                                        Das erste klappt nicht

                                        Na wenn das klappt ist es doch OK - Gen1

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

                                          verschoben

                                          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

                                          613
                                          Online

                                          31.9k
                                          Users

                                          80.3k
                                          Topics

                                          1.3m
                                          Posts

                                          5
                                          25
                                          3240
                                          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