Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Taster an Shelly Plus 1

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Taster an Shelly Plus 1

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      Bengab last edited by

      Hallo,
      vorab, ich bin Neuling, hab mich zwar schon etwas eingelesen, hab Adapter konfiguriert (mit S7 verbunden) und etwas mit der Visu gespielt.
      Jetzt würde ich gerne einen Shelly Plus 1 einbinden, eine Shelly Instanz (Version 10.1.0) ist angelegt und ich kann auch den Zustand des geschaltenen Relais sehen.
      Den Schalteingang des Shellys habe ich auf Taster gestellt. Ich würde jetzt gerne über ein Script mitbekommen wenn der Taster gedrückt wird (steigende Flanke). Dementsprechend würde ich gerne auch andere Lichter (über die S7) ein-/ausschalten.
      Bis jetzt weiß ich aber nicht wo dieser Flankenwert steht, bzw. wie ich dieses Event mitbekomme.
      Kann mir jemand einen Tip geben?
      Danke,
      Bengab

      T 1 Reply Last reply Reply Quote 0
      • T
        TT-Tom @Bengab last edited by TT-Tom

        @bengab

        schau dir mal den DP an, sollte der sein den du suchst.

        shelly.0.shellyplus1#441793xxxxxxx#1.Input0.Status

        on({ id: 'shelly.0.shellyplus1#441793xxxxxxx#1.Input0.Status', change: 'gt' }, async function (obj: any) {
            try {
                if (obj.state.val) {
                    setState('alias.0.Licht.Licht_Terasse.SET', true); //Datenpunkt auf true schalten
                } else {
                    setState('alias.0.Licht.Licht_Terasse.SET', false); //Datenpunkt auf alse schalten
                }
            } catch (error) {
                log(`action trigger switch ${error}`, `error`);
            }
        });
        

        hier ein Link zum on-Befehl https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#on---subscribe-on-changes-or-updates-of-some-state

        B 2 Replies Last reply Reply Quote 0
        • B
          Bengab @TT-Tom last edited by

          @tt-tom
          herzlichen Dank für die schnelle Antwort - werde ich ausprobieren

          1 Reply Last reply Reply Quote 0
          • B
            Bengab @TT-Tom last edited by

            @tt-tom
            noch eine kleine Nachfrage, im Script wird ja der Wert true oder false gecheckt. Wie mache ich das mit einem Flankenwechsel, also nur wenn von false auf true gewechselt wird?

            T 1 Reply Last reply Reply Quote 0
            • T
              TT-Tom @Bengab last edited by

              @bengab

              dazu der Link. über change kannst du verschiedene Varianten abfragen bzw. reagieren.

              gt -steht hier für größer als der letzte Wert. Da True größer ist als false reagiert er nur von false nach true.

              B 1 Reply Last reply Reply Quote 0
              • B
                Bengab @TT-Tom last edited by

                @tt-tom
                Ich hab das Script entsprechend übernommen. Zum Test hab ich erstmal mit Merkern aus meiner S7 gearbeitet. Das Script erkennt die Zustandsänderung des Merkers und wird abgearbeitet.
                Wenn ich aber die Status Variable des Shelly nutze passiert nichts. Es scheint so als ob diese Status Variable nicht aktualisiert wird. Muss ich noch was am Shelly (oder Iobroker einstellen?

                wendy2702 1 Reply Last reply Reply Quote 0
                • wendy2702
                  wendy2702 @Bengab last edited by

                  @bengab dann schau dir mal den Datenpunkt an. Ob der sich ändert/aktualisiert wenn du den Taster betätigst.

                  Kannst auch in das Logfile schauen um die Änderung zu sehen. Unter Umständen die Instanz auf Debug stellen.

                  B 1 Reply Last reply Reply Quote 0
                  • B
                    Bengab @wendy2702 last edited by

                    @wendy2702
                    das hab ich schon getan, da ändert sich eben leider nichts. Beim Relais (Relay0) kommt aber die Änderung an.

                    wendy2702 1 Reply Last reply Reply Quote 0
                    • wendy2702
                      wendy2702 @Bengab last edited by wendy2702

                      @bengab dann zeig doch mal die Adapter und Shelly Konfiguration oder Werte den Relais Datenpunkt aus.

                      B 1 Reply Last reply Reply Quote 0
                      • B
                        Bengab @wendy2702 last edited by

                        @wendy2702

                        Hier ist der Status markiert. Dieser wird nicht aktualisiert.
                        1424dbb5-b72e-4d91-946d-72478d50dc43-image.png

                        Es muss irgendwie am Shelly liegen. Als Probe habe ich den Workaround über die Vis gemacht und dieses Flag mit Hilfe eines Buttons mal gesetzt. Dann hat meine Script die Änderung auch erhalten und ist abgelaufen.
                        (dazu hab ich mir die Werte in der history gespeichert und in einem Flotdiagram mal angesehen)

                        T 1 Reply Last reply Reply Quote 0
                        • T
                          TT-Tom @Bengab last edited by TT-Tom

                          @bengab
                          Der markierte ist auch der falsche, eins tiefer ist der den ich geschrieben hatte.
                          Ansonsten passen sie.

                          wie sehen den die Einstellungen im Shelly aus. diese hier:
                          2c341167-38b7-4a94-ad95-96c3fc51f5fd-image.png

                          bei mir ist das ein Schalter, nicht wundern.

                          B 1 Reply Last reply Reply Quote 0
                          • B
                            Bengab @TT-Tom last edited by

                            @tt-tom
                            Sorry, ist natürlich die Zeile unter der Markierung. Dieser Status wird aber auch nicht verändert. Das ist ja das Komische.

                            Meine Definition sieht momentan so aus (hab den Input vom Relais getrennt). Aber auch wenn ich die Definition auf Taster oder Schalter stelle, bleibt "Status" still.
                            IMG_4342.png

                            mcm1957 1 Reply Last reply Reply Quote 0
                            • mcm1957
                              mcm1957 @Bengab last edited by mcm1957

                              @bengab
                              Welcher INPUT TYP Ist ausgewählt? Switch oder Button?
                              Siehe Shelly Doku:

                              40729cc0-683c-40f3-b770-503571f7d22b-image.png

                              STATE wird nur beim Typ SWITCH verwendet / gesetzt.

                              EDIT:
                              Seh schon - steht auf BUTTON. Dann ist State nicht benutzt. Button Aktionen solltest du unter EVENT finden (z.B. single_push, ...)

                              T 1 Reply Last reply Reply Quote 0
                              • T
                                TT-Tom @mcm1957 last edited by TT-Tom

                                @mcm1957
                                Ah, alles klar dann muss auf Event getigert werden. Danke für die Info's. Gibt bestimmt mehrere Events davon.

                                @Bengab

                                
                                on({ id: 'shelly.0.shellyplus1#441793xxxxxxx#1.Input0.Event', change: 'ne' }, async function (obj: any) {
                                    try {
                                        if (obj.state.val == 'single_push') {
                                            log(`EVENT =  single_push`, `info`);
                                            //setState('alias.0.Licht.Licht_Terasse.SET', true); //Datenpunkt auf true schalten
                                         } else {
                                             log(`kein single_push, sondern:  ${obj.state.val}`, `info`);
                                            // setState('alias.0.Licht.Licht_Terasse.SET', false); //Datenpunkt auf alse schalten
                                         }
                                     } catch (error) {
                                         log(`action trigger switch ${error}`, `error`);
                                     }
                                 });
                                
                                
                                1 Reply Last reply Reply Quote 1
                                • First post
                                  Last post

                                Support us

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

                                747
                                Online

                                32.0k
                                Users

                                80.5k
                                Topics

                                1.3m
                                Posts

                                4
                                14
                                300
                                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