Script: Taster abfragen

Hi,

wie kann ich Abfragen ob ein Taster gedrückt wurde? Also ähnlich wie:

binary_sensor.is_on: my_binary_sensor

ich versuche mir gerade ein Menü in Verbindung mit einem OLED Display zu bauen und würde an gewissen Punkten gerne Taster abfragen (zb. Volume UP oder DOWN).

Die Taster sind an GPIOS angeschlossen und funktionieren soweit auch.

Nun würde ich gerne in ESPhome in einem Script mit IF oder was ähnlichem Abfragen ob der Taster an GPIO22 gerade gedrückt wurde…

Vielen Dank im Voraus

Gruß

Silas

Sollte ja sowas hier sein

binary_sensor:
  - platform: gpio
    internal: true
    id: sensecap_greenbutton
    name: "Green Button"
    pin:
      number: GPIO38
      inverted: yes
      mode:
        input: true
        pullup: true
    on_press: #<-----
      if:
        condition:
          - lvgl.is_paused
        then:
          - lvgl.resume:
          - lvgl.widget.redraw:
          - light.turn_on: sensecap_display_backlight
        else:
          - light.turn_off: sensecap_display_backlight
          - lvgl.pause:

ja das ist mir bekannt, aber das ist ja direkt da wo der button konfiguriert wird.

ich möchte diese abfrage aber in einem script machen, ungefähr so:

script:
  
  - id: ausschalten
    then:
      
      --> HIER ABFRAGE ob Butten gedrückt <--

      - switch.turn_off: led

Warum das, du willst wissen das der Button gedrückt wurde, dann frag das doch am Button ab.

du kannst dann direkt dort das script aus führen ohne if…then…

 - script.execute: ausschalten

oder wenn switch.turn_off das einzige ist dann so

binary_sensor:
  - platform: gpio
    internal: true
    id: mybutton
    name: "Irgendein Button"
    pin:
      number: GPIO00
      inverted: yes
      mode:
        input: true
        pullup: true
    on_press:
        - switch.turn_off: led

weil ich ja am button nicht “weis” in welchem menü ich mich gerade befinde

dann müsstest du mal den Code hier rein pappen, damit man das nachvollziehen kann. Vielleicht fällt mir oder jemand anderen ein Weg ein zum Ziel zu kommen. Es könnte klappen wenn man beim on_press eine Variable setzt die nach der Prüfung wieder zurückgesetzt wird. Dann kannst du im Script diese Variable abfragen.

Warum machst Du es nicht über eine Automation und nimmst den Buttom als Trigger-Event und rufst dann den Skript mit den passenden Parametern auf?

Ich habe mal nach einem Beispiel gesucht…

Im ESPHome Projekt “wohnzimmer.yaml” habe ich den Switch

switch:
  - platform: gpio
    name: "Player_Enabled"
    id: player_enabled
    pin: D3 # GPIO0 
    inverted: false     

In Homeassistant frage ich in der Automation die Entität “switch.wohnzimmer_player_enabled”
(friendly_name: wohnzimmer Player_Enabled) ab

z.B.

         - if:
              - condition: state
                entity_id: switch.wohnzimmer_player_enabled
                state: "on"
            then:
              - action: media_player.turn_off
              ....