Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Gelöst] [EspHome - HowTo] "Time Based Cover" wie steuern?

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Gelöst] [EspHome - HowTo] "Time Based Cover" wie steuern?

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

      Ich habe mal die Cover Platform ausprobiert.
      Das ganze funktioniert über die Weboberfläche des ESP, aber wie steuere ich das ganze von IO-Broker aus?
      Es wird zwar bei den Objekten ein Objekt "position" angelegt, das ist aber immer 0 (egal wo der Rolladen steht). Wenn ich den Wert ändere passiert auch nichgts.

      Im Log ist mir auch aufgefallen, dass die Position im Gegensatz zu den anderen Zuständen nicht mit "sending state" sondern mit "publishing:" ausgegeben wird.
      Kann es sein, dass "cover" nur über MQTT gesteuert werden kann?

      Kannst Du vielleicht helfen @dutchman ?

      1 Reply Last reply Reply Quote 0
      • W
        WolfgangFB last edited by

        @wolfgangfb
        Ich habe das ganze jetzt erfolgreich gelöst. Da es in der Vergangenheit schon andere gegeben hat, die über das gleiche Problem gestolprt sind hier die ausführliche Lösung:

        Es ist in der Tat so, dass der Rolladen (oder was auch immer man damit steuern möchte) nicht direkt über die ESPHome Datenpunkte sondern über MQTT gesteuert und ausgewertet werden müssen.

        Bei mir wird das ganze über mit einem ESP8266 (Wemos D1 Mini) und 2 Relais gesteuert wobei ich da gleich einen "Hardware" Interlock-Schutz eingebaut habe damit nicht gleichzeitig "Auf" und "Ab" aktiv sein können (man kann zwar in ESPHome ein Interlock aktivieren, das ist aber eben nur Software)..
        Also einfach ein Relais für AnAus und eines für AufAb, damit kann immer nur eine Richtung geschaltet sein.

        switch:
          - platform: gpio
            pin: 
              number: D3
              mode: OUTPUT
              inverted: true
            id: on_rollo
            name: "RelaisAnAus"
            restore_mode: ALWAYS_OFF
           
          - platform: gpio
            pin: 
              number: D4
              mode: OUTPUT
              inverted: true
            id: dir_rollo
            name: "RelaisAufAb"
        
        

        (Den Restore Mode habe ich eingeaut damit im Falle eines Neustartes nicht sofort der Rollo loslegt, Inverted weil es so zu meinen Relais passt, kommt ja immer darauf an,wie man das ganze anschließt).

        Jetzt zur eigentlichen Steuerung:

        cover:
          - platform: time_based
            name: "GastRollo"
            device_class: shutter
            id: gast_rollo
            position_state_topic: "Rollo.Gast.position.ist"
            position_command_topic: "Rollo.Gast.position.wunsch"
            
            open_action:
              - switch.turn_on: on_rollo
              - switch.turn_on: dir_rollo
            open_duration: 20sec
        
            close_action:
              - switch.turn_on: on_rollo
              - switch.turn_off: dir_rollo
            close_duration: 20sec
        
            stop_action:
              - switch.turn_off: on_rollo
                
        

        Die "Actions" sind meiner Meinung nach einfach zu verstehen (Bei "Auf", "Ab" und "Stop" werrden eben die entsprechenden Relais geschaltet).
        Was meiner Meinung nach nicht so gut in der Doku erklärt ist, sind die Eiknträge:

            position_state_topic: "Rollo.Gast.position.ist"
            position_command_topic: "Rollo.Gast.position.wunsch"
        

        Damit definiert man, über welche MQTT Topics der Rollandenzustand gelesen und gesetzt werden kann. Das sind zwingend 2 verschiedene Punkte!

        Um MQTT in ESPHome machen zu können muss noch die MQTT Plattform hinzugefügt werden:

        mqtt:
          broker: 192.168.1.203
        
        

        (Bei mir wird kein Username und kein Password benötigt, wer eins gesetzt hat, muss es hier mit "username:" und "password:" angeben. Natürlich muss die IP Adresse noch angepasst werden)

        Das verwirrende ist meiner Meinung nach, dass in den Objekten des ESPs selbst unter "Cover" ein Objekt "Position" auftaucht, dieses aber scheinbar nicht verwendet wird (bei mir dsteht da immer 0, wozu tilt gut sein soll weiß ich auch nicht, der Stop Button macht bei mir auch nichts.)
        cover.jpg

        In den Datenpunkten von MQTT tauchen aber jetzt die beiden Punkte "ist und "wunsch" auf

        mqtt.jpg

        Über "ist" kann man verfolgen, an welcher Stelle der Rollo gerade ist, wenn man "wunsch" ändert bewirkt das, dass der Rollo zu dieser Position gefahren wird.

        Um das ganze z.B.in VIS z.B. über eine Shutter Komponente steuer zu können benötigt man aber einen gemeinsamen Datenpunkt zum Lesen und Schreiben. Deshalb erzeugt man einfach einen Alias bei dem man unterschiedliche Datenpunkte für Lesen und Schreiben angeben kann.

        alias.jpg

        Um unterschiedliche Datenpunkte einstellen zu können muss man auf den Reiter "Alias klicken.

        Wer jetzt das ganze noch über einen einzelnen Taster steuern möcht (Wechsel "Auf" -> "Halt" -> "Ab" -> "Halt" etc.)

        baut noch folgendes ein:

        binary_sensor:
          - platform: gpio
            name: "RolloTaster"
            pin: 
              number: D8
              mode: INPUT_PULLUP
              inverted: true
            filters:
              - delayed_on: 100ms
            on_press:
              then:
              - cover.toggle: gast_rollo
        
        

        (Ich weiß, dass D8 mit Vorsicht zu genießen ist, der "Filter" ist zum Entprellen des Tasters, da es für D8 keinen internen Pulldown gibt habe ich eben INPUT_PULLUP gewählt (damit ist der Pin ohne das der Taster gedrückt ist immer high, der Taster ist an GND und D8 angeschlossen und zieht den PIN dann eben auf Low, deshalb auch "Inverted")

        Viel Spaß beim nachbauen.

        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

        759
        Online

        31.6k
        Users

        79.5k
        Topics

        1.3m
        Posts

        1
        2
        443
        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