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

      Und wie schalte ich dann z.B. aus VIS heraus ein Licht ein oder aus?

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

        @wolfgangfb Dann nimmst Du den Alias, da Du wahrscheinlich keine unterschiedlichen Punkte zu schreiben und lesen hast, den Shelly Adapter oder eine selbst erstellten Datenpunkt und Deine Logikmaschine.

        Also wenn Du mqtt nehmen willst, wohl am Besten einen Alias. Die Konvertierungsfunktionen habe ich Dir ja unten gepostet. Schreiben tust Du in dem command Datenpunkt - Lesen den 0 Datenpunkt. Ggf. musst Du den Expertenmodus einschalten, um die alias Datenpunkte unter alias.0 zu erstellen.

        1 Reply Last reply Reply Quote 0
        • 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
                                            • First post
                                              Last post

                                            Support us

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

                                            924
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

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