Torsteuerung mit ESP8266

Hallo, ich benötige Eure Hilfe.

Ich habe ein ESP-Home Device erstellt.

Es besitzt folgende Komponenten:

output:
  - platform: gpio
    pin: GPIO4
    id: AUF
  - platform: gpio
    pin: GPIO5
    id: ZU
  - platform: gpio
    pin: GPIO14
    id: Licht 

button:
  - platform: template
    name: Button_AUF
    id: B_AUF
  - platform: template
    name: Button_ZU
    id: B_ZU
  - platform: template
    name: Button_STP
    id: B_STP   

Ich sehe aber nur die drei BUTTON Entitäten.
Ich möchte über diese drei BUTTON die Ausgänge entsprechend schalten.
Ich habe leider keine Idee und auch keine Beispiele gefunden.
Ich bin mir sicher, das es möglich ist.

Kann mir jemand Hilfeleistung geben?

Danke, veileGrüße

Detlef

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
s.a.: (Neues Update & Features - Hier in der Community 🫶)

Ein Output wird in Homeassistant nicht angezeigt. Dazu müsstest du zum Beispiel einen Switch erstellen, der auf den Output zugreift.

Die Outputs sind mit ihrer ID nur auf dem ESP nutzbar.

So zum Beispiel als Licht und Lüfter:

output:
  - platform: gpio
    pin: GPIO13
    id: licht_eingang

  - platform: gpio
    pin: GPIO14
    id: luefter_bad

fan:
  - platform: binary
    output: luefter_bad
    name: "ESP Relais Keller Lüfter Bad"    
    id: esp_relais_keller_luefter_bad
    icon: mdi:fan
    
light:
  - platform: binary
    output: licht_eingang
    name: "ESP Relais Keller Licht Eingang"
    id: esp_relais_keller_licht_eingang
    icon: mdi:lightbulb-outline

Hallo Frank501,

ich habe absichtlich nicht die SWITCH Komponente verwendet, da diese meines Erachtens sofort den OUTPUT beeinflusst.

Ich möchte aber den OUTPUT noch von anderen Ergebnissen abhängig machen und mit Hilfe einer Automatisierung schalten.

In der Automatisierung kann ich nicht auf den Ausgang zugreifen (nach meinen jetzigen Wissensstand). Ist das so überhaupt möglich?

Wenn ja (vermutlich) bin ich für Hinweise dankbar.

Grüß Detlef

Wenn du mit Automationen in Homeassistant arbeiten willst, musst du den Ausgang schon für Homeassistant sichtbar machen.
Wenn du die im ESP laufen lassen willst, ist die Output-Komponente schon richtig, aber der Ausgang ist eben nicht in Homeassistant sichtbar. Wobei du den Output auch auf dem ESP nutzen kannst (über dessen ID), wenn du ihn in Homeassistant sichtbar machst.

O.K.

Jetz zur Frage: Wie mache ich den Output in HA sichtbar?

Indem du ihm, wie oben im Beispiel, eine Komponente zuweist. Ob das switch, fan, light oder GPIO ist, ist egal und kommt auf deine Anwendung an.

Hallo Frank501,

ich sehe jetzt die OUTPUTs.

Danke für den hilfreichen Tip.

Ich muß nun noch einen analogen Stromfühler für den Motorstrom und einen binär Sensor für die Lichtschranke einfügen. Das habe ich schon gemacht, sollte kein Problem darstellen.

Nochmals besten Dank

Detlef

Beispiel für Torsteuerung mit Taster/Relais und zwei Reed-Kontakten:

esphome:
  name: garagentor
  friendly_name: garagentor

esp8266:
  board: d1_mini

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "XXXXXXXX"

ota:
  - platform: esphome
    password: "XXXXXXXXXXXXXXX"

wifi:
  ssid: "XXXXXXXXXXXXXXXX"
  password: "XXXXXXXXXXXXXXXXXXXXX"
 
  # Set minimum WiFi security - reject connections to networks with weaker security
  # Default is WPA2 on ESP32, WPA on ESP8266 (will change to WPA2 in 2026.6.0)
  min_auth_mode: WPA2  # Or WPA3 for ESP32 if all your networks support it

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "XXXXXXXXXXXXXXXXXX"
    password: "XXXXXXXXXXXXXXXXXXXXXXX"

# After 1 minute of unsuccessful WiFi connection attempts, the ESP will start a WiFi hotspot (with the credentials ap: from your configuration)
captive_portal:

script:
# Programmablauf während Tor sich öffnet
  - id: door_opening
    mode: restart
    then:
      - script.execute: stop_running_end_scripts
 
# Programmablauf wenn Tor vollständig geöffnet wurde
  - id: door_opened
    mode: restart
    then:
      - script.execute: stop_running_moving_scripts

# Programmablauf während Tor sich schließt
  - id: door_closing
    mode: restart
    then:
      - script.execute: stop_running_end_scripts

# Programmablauf wenn Tor vollständig geschlossen wurde
  - id: door_closed
    mode: restart
    then:
      - script.execute: stop_running_moving_scripts

# ggf. aktive Scripte stoppen
  - id: stop_running_end_scripts
    mode: restart
    then:
      - if:
          condition:
            - script.is_running: door_opened
          then:
            - script.stop: door_opened
      - if:
          condition:
            - script.is_running: door_closed
          then:
            - script.stop: door_closed

  - id: stop_running_moving_scripts
    mode: restart
    then:
      - if:
          condition:
            - script.is_running: door_opening
          then:
            - script.stop: door_opening
      - if:
          condition:
            - script.is_running: door_closing
          then:
            - script.stop: door_closing




switch:
# Relais für Signal an Motor
# mit on_turn_on automatisch wieder abschalten
  - platform: gpio
    name: "Garage Rolltor"
    id: garagentor_tor_relais
    pin: D7
    on_turn_on:
      - delay: 1s
      - switch.turn_off: garagentor_tor_relais    



binary_sensor:
# Reed-Kontakt für Tor vollständig geöffnet
  - platform: gpio
    name: "Garage Rolltor Offen"
    device_class: garage_door
    id: garagentor_tor_open_sensor
    pin: 
      number: D5
      inverted: true
    filters:
      - delayed_off: 500ms      
      - delayed_on: 100ms      
    on_release:
      - text_sensor.template.publish:
          id: garagentor_tor_status
          state: "Geöffnet"
      - script.execute: door_opened
    on_press:
      - text_sensor.template.publish:
          id: garagentor_tor_status
          state: "Tor schließt sich"
      - script.execute: door_closing

# Reed-Kontakt für Tor vollständig geschlossen
  - platform: gpio
    name: "Garage Rolltor geschlossen"
    device_class: garage_door
    id: garagentor_tor_closed_sensor
    pin: 
      number: D6
      inverted: true
    filters:
      - delayed_off: 500ms      
      - delayed_on: 100ms      
    on_release:
      - text_sensor.template.publish:
          id: garagentor_tor_status
          state: "Geschlossen"
      - script.execute: door_closed
    on_press:
      - text_sensor.template.publish:
          id: garagentor_tor_status
          state: "Tor öffnet sich"
      - script.execute: door_opening

# Taster zur manuellen Bedienung des Tores
# schaltet bei Druck das Relais
  - platform: gpio
    name: "Garagentor Taster"
    id: garagentor_tor_btn
    pin: D1
    filters:
      - delayed_off: 500ms
    on_press:
      then:
        - switch.turn_on: garagentor_tor_relais
    on_release:
      then:
        - switch.turn_off: garagentor_tor_relais


text_sensor:
  - platform: template
    name: "Garagentor Tor-Status"
    id: garagentor_tor_status
    lambda: |-
      if(!id(garagentor_tor_closed_sensor).state){
        return {"Geschlossen"};
      } else if (!id(garagentor_tor_open_sensor).state){
        return {"Geöffnet"};
      } else {
        return {"In Bewegung"};
      }
    update_interval: 20s

Da müsste alles sichtbar sein, was benötigt wird. Vielleicht kannst du davon irgendetwas gebrauchen…

Danke für Eure wertvollen Hinweise.

Ich habe jetzt noch die Lichtschranke, Eingänge AUF/ZU mit Schlüsselschalter, Motorstromsensor dazu gefügt.

Dei Steuerung erledige ich mit mehreren Automationen.

Das geht bestimmt auch anders. Für mich ist das der einfachste Weg.

Das ganze läuft auf einem D1mini.

Nochmal Danke für die Hilfestellung