Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Microcontroller
    5. [gelöst] Sonoff Basic blinken lassen über internen Zeitplan

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Sonoff Basic blinken lassen über internen Zeitplan

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

      @cinimod said in Sonoff Basic blinken lassen über internen Zeitplan:

      nur noch mal zur Verständniss, wenn ich irgendwas editiere, muss ich es neu compilieren und hochladen ja ? Also OTA flashen ...

      Genau, esphome backt immer eine frische firmware und lädt die dann (wenn einmal esphome auf dem Gerät ist) über ota hoch.

      Wenn du im Editor was änderst musst du danach glaube ich auch nur noch auf upload drücken, der speichert und kompiliert das und schiebt es direkt über WLAN auf das Gerät. Dauert im Normalfall nicht länger als 30 Sekunden (außer du kompilierst auf einem pi oder anderem low power Gerät).

      oder übernimmt er einfach meine editierung indem ich sie speichere ?

      Wenn du "nur" speicherst hast du "nur" lokal die yaml geändert aber das Gerät läuft weiterhin mit der firmware welche aus der "alten" yaml (die du zuletzt per ota oder kabel auf das Gerät gespielt hast) gebacken wurde

      Cinimod 1 Reply Last reply Reply Quote 0
      • Cinimod
        Cinimod Most Active @OpenSourceNomad last edited by

        @opensourcenomad

        Danke erstmal bis hier hin, ich habe es nun soweit das zu angegebener Zeit das blinken beginnt, jedoch lässt es sich nicht mehr anhalten.

        Sowohl der Taster vom Basic als auch der an GPIO14 hängende Taster funktionieren nun, und toggle´n das Relais zwar, das blinken endet aber nicht mit tastendruck, leider hilft da gerade nur ihm den Strom zu klauen.

        So sieht es aktuell aus:

        binary_sensor:
         - platform: gpio
           pin:
             number: GPIO0
             mode:
               input: true
               pullup: true
             inverted: true
           name: "Sonoff Basic Button"
           on_press:
             - switch.toggle: relay
         - platform: gpio
           id: taster2
           pin:
             number: GPIO14
             mode:
               input: true
               pullup: true
             inverted: true
           name: "GPIO14 Button"
           on_press:
             - switch.toggle: relay      
        
        switch:
         - platform: gpio
           name: "Sonoff Basic Relay"
           pin: GPIO12
           id: relay
        
        status_led:
         pin:
           number: GPIO13
           inverted: yes
           
        time:
        - platform: sntp
          servers: fritz.box
          on_time:
             - seconds: 0
               minutes: 23
               hours: 8,17,19
               days_of_week: '*'
               then:
                 - while:
                     condition:
                       binary_sensor.is_off: taster2
                     then:
                     - switch.toggle: relay
                     - delay: 5s    
        

        OpenSourceNomad 1 Reply Last reply Reply Quote 0
        • OpenSourceNomad
          OpenSourceNomad Most Active @Cinimod last edited by OpenSourceNomad

          @cinimod said in Sonoff Basic blinken lassen über internen Zeitplan:

          Danke erstmal bis hier hin, ich habe es nun soweit das zu angegebener Zeit das blinken beginnt, jedoch lässt es sich nicht mehr anhalten.

               - while:
                   condition:
                     binary_sensor.is_off: taster2
                   then:
                   - switch.toggle: relay
                   - delay: 5s    
          

          Stimmt, wenn du den Taster aber etwa 5,1 Sekunden gedrückt hältst sollte zumindest das blinken aufhören (allerdings kann es sein das der switch dann auch gerade an ist). 😬

          Wir müssen uns da noch was schöneres überlegen, der code passt noch nicht ganz zu deinem Anwendungszweck 😛

          Soll/muss das blinken durch beide Taster gestoppt werden oder wäre es vertretbar das nur einer (der externe?) das blinken stoppt?

          EDIT: Gibt wahrscheinlich viele Möglichkeiten dein Szenario umzusetzen, aber am besten wird es wohl sein ein wait-until einzubauen und die condition mit den binary_sensor rauszuschmeisen: https://esphome.io/guides/automations.html#wait-until-action

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

            Soll/muss das blinken durch beide Taster gestoppt werden oder wäre es vertretbar das nur einer (der externe?) das blinken stoppt?

            Das würde vollkommen ausreichen.
            Mir stellt sich etwas die frage wie es überhaupt zu stoppen ist? muss man Delay dann mit 0 steuern ?

            Das wird vermutlich nicht funktionieren? :

              - platform: gpio
                id: taster2
                pin:
                  number: GPIO14
                  mode:
                    input: true
                    pullup: true
                  inverted: true
                name: "GPIO14 Button"
                on_press:
                  - switch.turn_off: relay
                  - delay: 0s
            
            OpenSourceNomad 1 Reply Last reply Reply Quote 0
            • OpenSourceNomad
              OpenSourceNomad Most Active @Cinimod last edited by OpenSourceNomad

              @cinimod said in Sonoff Basic blinken lassen über internen Zeitplan:

              Mir stellt sich etwas die frage wie es überhaupt zu stoppen ist? muss man Delay dann mit 0 steuern ?

              Dann blinkt aber nicht's mehr und mit etwas pech geht sogar das relais kaputt ⚠

              mit dem jetzigen vorherigen code prüft er ob der taster "aus" ist und schaltet dann das relais, wartet 5 sekunden, prüft wieder ob der taster aus ist (aber eben nur genau in dieser "millisekunde") und schaltet dann wieder das relais und wartet wieder 5 sekunden und so weiter...

              Ein weiterer Vorschlag zum testen:

              time:
              - platform: sntp
                servers: fritz.box
                on_time:
                   - seconds: 0
                     minutes: 23
                     hours: 8,17,19
                     days_of_week: '*'
                     then:
                       - switch.toggle: relay
                       - delay: 5s
                       - wait_until:
                           binary_sensor.is_on: taster2
                       - switch.turn_off: relay
              

              Bin mir nur nicht sicher ob der auch "ordentlich" blinkt. Stoppen sollte er aber auf tastendruck und ebenfalls das relais ausschalten

              EDIT: hatte einen fehler im snippet und ist jetzt korrigiert:

                       - wait_until:
                           binary_sensor.is_on: taster2
              

              wir wollen warten bis der taster aktiv geht und damit das blinken stoppen

              Cinimod 2 Replies Last reply Reply Quote 0
              • Cinimod
                Cinimod Most Active @OpenSourceNomad last edited by Cinimod

                @opensourcenomad

                gibt es hier nicht auch eine art Variable, die mit dem Taster umgeschaltet wird, und mit in die Prüfung einfließt ? die müsste nur anschließend auch wieder zurück gestellt werden.

                Besser noch die sich nach 10 Sekunden selbst wieder zurück stellt. Sonst geht es ja nachher nicht an wenn jemand einfach mal so drauf gedrückt hat.

                OpenSourceNomad 1 Reply Last reply Reply Quote 0
                • OpenSourceNomad
                  OpenSourceNomad Most Active @Cinimod last edited by

                  @cinimod gibt es auch: https://esphome.io/guides/automations.html#global-variables
                  du könntest auch mit scripts arbeiten: https://esphome.io/guides/automations.html#script-component
                  und das ganze noch mit lambdas verkomplizieren: https://esphome.io/guides/automations.html#lambda-action

                  ich bin nur immer ein freund von keep it save and simple 😛

                  Cinimod 1 Reply Last reply Reply Quote 0
                  • Cinimod
                    Cinimod Most Active @OpenSourceNomad last edited by

                    @opensourcenomad müsste ich dann oben die Funktion vom taster raus nehmen ?

                    1 Reply Last reply Reply Quote 0
                    • Cinimod
                      Cinimod Most Active @OpenSourceNomad last edited by Cinimod

                      @opensourcenomad

                      Hab das Update hoch geladen, nun ist das teil wieder offline, hab kein bock mehr.

                      UPDATE: hat sich offenbar jetzt gefangen.

                      Licht blinkt leider nicht, wartet auf den Tastendruck und geht dann aus.

                      OpenSourceNomad 1 Reply Last reply Reply Quote 0
                      • OpenSourceNomad
                        OpenSourceNomad Most Active @Cinimod last edited by OpenSourceNomad

                        @cinimod said in Sonoff Basic blinken lassen über internen Zeitplan:

                        Licht blinkt leider nicht, wartet auf den Tastendruck und geht dann aus.

                        Eine Funktion gefixt und die andere verbuggt 😬

                        Wir sind nah dran... um deine Idee mit der variablen gleich wieder aufzunehmen:

                        esphome:
                          # ...
                          on_boot:
                            then:
                              - switch.turn_on: tablettenblinklicht
                        
                        switch:
                          - platform: template
                            name: "Tablettenblinklicht Switch"
                            id: tablettenblinklicht
                        
                        time:
                          - platform: sntp
                            servers: fritz.box
                            on_time:
                               - seconds: 0
                                 minutes: 23
                                 hours: 8,17,19
                                 days_of_week: '*'
                                 then:
                                   - while:
                                       condition:
                                         switch.is_on: tablettenblinklicht
                                       then:
                                       - switch.toggle: relay
                                       - delay: 5s
                                   - wait_until:
                                       binary_sensor.is_on: taster2
                                   - switch.turn_off: relay
                        

                        Zwar keine echte variable sondern einfach nur ein template switch. Probier mal ob jetzt was blinkt 😉

                        Wird der template switch auf aus gestellt dann wird das Licht nicht blinken. Mit dem on_boot code oben wird der switch immer auf on gestellt wenn der esp startet. Einzige Möglichkeit den switch auf off zu stellen ist bei dir dann über den web server des esp (sprich ein alter herr kann das wahrscheinlich nicht ohne weiteres 👴)

                        Cinimod 1 Reply Last reply Reply Quote 0
                        • Cinimod
                          Cinimod Most Active @OpenSourceNomad last edited by

                          @opensourcenomad

                          hier hat er wieder was zu meckern:

                          Bildschirmfoto 2021-11-18 um 21.52.25.png

                          OpenSourceNomad 1 Reply Last reply Reply Quote 0
                          • OpenSourceNomad
                            OpenSourceNomad Most Active @Cinimod last edited by

                            @cinimod said in Sonoff Basic blinken lassen über internen Zeitplan:

                            wieder was zu meckern:

                            Dann sind wir halt mal optimistisch 👍

                            switch:
                              - platform: template
                                name: "Tablettenblinklicht Switch"
                                id: tablettenblinklicht
                                optimistic: true
                            
                            Cinimod 1 Reply Last reply Reply Quote 0
                            • Cinimod
                              Cinimod Most Active @OpenSourceNomad last edited by

                              @opensourcenomad

                              Licht blinkt jetzt wieder, Schalter (gpio14) tut aber dieses mal gar nichts 🙄

                              OpenSourceNomad 1 Reply Last reply Reply Quote 0
                              • OpenSourceNomad
                                OpenSourceNomad Most Active @Cinimod last edited by

                                @cinimod ich gebe mich geschlagen, wir machen das jetzt morgen mittels script. Dieses kann nämlich ganz leicht angestoßen werden (von on_time) und ebenfalls ganz einfach vom binary_sensor gestoppt werden. 💤

                                Cinimod 1 Reply Last reply Reply Quote 0
                                • Cinimod
                                  Cinimod Most Active @OpenSourceNomad last edited by

                                  @opensourcenomad

                                  komm wir vergessen das, das teil verbindet sich schon wieder nicht mit dem Wlan. Hab kein bock jedes mal nach dem es stromlos war mit nem FTDI neu zu flashen ... Lasse mir was anderes einfallen.

                                  Danke für dein Mühe und Hilfe

                                  OpenSourceNomad 1 Reply Last reply Reply Quote 0
                                  • OpenSourceNomad
                                    OpenSourceNomad Most Active @Cinimod last edited by OpenSourceNomad

                                    @cinimod said in Sonoff Basic blinken lassen über internen Zeitplan:

                                    das teil verbindet sich schon wieder nicht mit dem Wlan.

                                    Was bringt dich denn genau zu dieser Annahme? Ich habe unter meinem fast 100 esp Gerätschaften auch sonoff basic's und hatte noch schlicht mit keinen einzigen Probleme mit dem WLAN. Ich muss diese außerhalb der reichweite des APs tragen damit diese nicht mehr in's WLAN kommen, bei mir spannen diese dann innerhalb von etwa einer Minute zuverlässig einen Hotpsot auf.

                                    Wenn du aber sowieso mit ftdi Adapter hantierst würde ich dir raten den sonoff basic zum testen gleich dauerhaft daran zu lassen (natürlich ohne jeglicher 230VAC Verbindung ⚠). Das Relais selber (ohne Verbraucher) sollte sich auch zuverlässig über VDC vom ftdi schalten lassen.

                                    Hier noch mal deine gewünschte Logik mittels script verpackt:

                                    esphome:
                                     # ...
                                     on_boot:
                                       then:
                                         - switch.turn_on: tablettenblinklicht
                                    
                                    switch:
                                     - platform: template
                                       name: "Tablettenblinklicht Switch"
                                       id: tablettenblinklicht
                                    
                                    time:
                                     - platform: sntp
                                       servers: fritz.box
                                       on_time:
                                          - seconds: 0
                                            minutes: 23
                                            hours: 8,17,19
                                            days_of_week: '*'
                                            then:
                                              - script.execute: blinklicht
                                    script:
                                     - id: blinklicht
                                       then:
                                        - while:
                                            condition:
                                              switch.is_on: tablettenblinklicht
                                            then:
                                            - switch.toggle: relay
                                            - delay: 5s
                                    
                                    binary_sensor:
                                    - platform: gpio
                                      pin:
                                        number: GPIO0
                                        mode:
                                          input: true
                                          pullup: true
                                        inverted: true
                                      name: "Sonoff Basic Button"
                                      on_press:
                                        then:
                                          - if:
                                              condition:
                                                - script.is_running: blinklicht
                                              then:
                                                - script.stop: blinklicht
                                                - switch.turn_off: relay
                                              else:
                                                - switch.toggle: relay
                                    
                                    
                                    - platform: gpio
                                      id: taster2
                                      pin:
                                        number: GPIO14
                                        mode:
                                          input: true
                                          pullup: true
                                        inverted: true
                                      name: "GPIO14 Button"
                                      on_press:
                                        then:
                                          - if:
                                              condition:
                                                - script.is_running: blinklicht
                                              then:
                                                - script.stop: blinklicht
                                                - switch.turn_off: relay
                                              else:
                                                - switch.toggle: relay
                                    

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

                                      @opensourcenomad sagte in Sonoff Basic blinken lassen über internen Zeitplan:

                                      @cinimod said in Sonoff Basic blinken lassen über internen Zeitplan:

                                      das teil verbindet sich schon wieder nicht mit dem Wlan.

                                      Was bringt dich denn genau zu dieser Annahme? Ich habe unter meinem fast 100 esp Gerätschaften auch sonoff basic's und hatte noch schlicht mit keinen einzigen Probleme mit dem WLAN. Ich muss diese außerhalb der reichweite des APs tragen damit diese nicht mehr in's WLAN kommen, bei mir spannen diese dann innerhalb von etwa einer Minute zuverlässig einen Hotpsot auf.

                                      Die StatusLED blinkt munter vor sich hin, im iobroker wird er als offline angezeigt, auf die Weboberfläche komme ich nicht, und in der FB steht er als nicht verbunden. Keine Ahnung was mit dem ding los ist.

                                      Tasmota drauf gepackt, läuft wie ne eins, komisch alles.

                                      OpenSourceNomad 1 Reply Last reply Reply Quote 0
                                      • OpenSourceNomad
                                        OpenSourceNomad Most Active @Cinimod last edited by OpenSourceNomad

                                        @cinimod said in Sonoff Basic blinken lassen über internen Zeitplan:

                                        Die StatusLED blinkt munter vor sich hin

                                        Das kann zwei gründe haben laut Dokumentation: https://esphome.io/components/light/status_led.html
                                        Entweder Error oder Warning, sprich es könnte WLAN verbunden sein aber die Verbindung (api) zum iobroker steht nicht.

                                        im iobroker wird er als offline angezeigt

                                        Hier muss wieder differenziert werden: Die Verbindung mittels api zum iobroker oder die Verbindung zum esphome Dashboard (Achtung der Screenshot ist veraltet, neuerdings gibt es keine grüne Indikation mehr wenn das Gerät online ist)?

                                        auf die Weboberfläche komme ich nicht

                                        Hast du es mittels DHCP hostname oder die IP versucht? hast du es ebenfalls über den mDNS hostname (.local) versucht?

                                        in der FB steht er als nicht verbunden

                                        Hast du ein paar Minuten in's Land gehen lassen nachdem du den esp bestromt hast? Aus meiner Erfahrung zeigen die Fritzen den online Status von Geräten teils erst mit ordentlicher Verspätung an.

                                        Normalerweise muss man bei esphome auch gar nicht lang im dunkeln stochern weil es ja das logging gibt. Entweder per serial (wenn wirklich Probleme mit dem WLAN bestehen) oder halt einfach ota, wir schreiben ja immerhin das Jahr 2021 😉

                                        Am schnellsten zu erreichen über das esphome dashboard -> Logs:
                                        342b4b40-56bf-4f91-b15d-4a3bac5d7ca7-image.png
                                        (wie gesagt nicht von einem fehlenden grünen Balken irritieren lassen, der wurde leider weg"optimiert" in aktuellen Versionen)

                                        Cinimod 1 Reply Last reply Reply Quote 0
                                        • Cinimod
                                          Cinimod Most Active @OpenSourceNomad last edited by

                                          @opensourcenomad

                                          Nochmals vielen Dank für deine Mühe, so richtig grün werde ich wohl nicht mit ESPhome, weiß auch nicht wirklich wieso es nicht rund läuft. Auf einmal nicht mehr zu erreichen das Teil, habe alles von dir beschriebene bereits geprüft 🤷‍♂️

                                          Ich habe es inzwischen mit Tasmota Rules gelöst, sowohl das blinken, als auch das anhalten klappt prima, war nur halb so kompliziert wie gedacht.

                                          rule1 on Clock#Timer=1 do power 3 endon on Clock#Timer=2 do power 3 endon on Switch1#State do power off endon
                                          

                                          Mir fehlt jetzt noch der Befehl um ein Lebenszeichen an IOT zu senden, hast du eine Idee ... oder sonst jemand?

                                          liv-in-sky 1 Reply Last reply Reply Quote 1
                                          • liv-in-sky
                                            liv-in-sky @Cinimod last edited by

                                            @cinimod

                                            könntest du noch zeigen , was du für power 3 eingestellt hast

                                            wo genau in der rule sieht man, dass da was blinken soll?

                                            https senden geht nicht mit tasmota - für iot brauchst du das
                                            aber evtl kannst du was mit telegram (bot) machen, dass muss aber im tasmota.bin freigeschaltet werden

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            795
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            57
                                            2520
                                            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