NEWS
PushButton ESP32/ESPHome wird getriggert. Warum/Wodurch?
-
Hi
habe an einem ESP32 an GPIO39 einen Pushbutton und das Ganze per ESPHome in IOBroker eingebunden. Nun stelle ich immer wieder fest, dass Aktionen die der PushButton triggern soll ausgelöst werden obwohl niemand den PushButton gedrückt hat.Habt ihr Tips wonach ich Suchen kann?
Der GPIO39 scheint unkritisch und ist als "Input Only" zu verwenden und geht beim Reboot nicht in den High-State.
Das heute Morgen angeworfene Logging (Nur Änderung) zeigt eine Änderung des Ack Flag und um 11:37h wo auch wieder ein Trigger ausgelöst wurde:
Das Blockly triggert aber nur auf Wert=wahr, somit kann ich mir das nicht wirklich erklären:
Liegt es für Euch am Trigger oder könnte auch die Integration über ESPHome und zB Verbindungsabbrüche das Problem sein?
Besten Dank für Eure Tips!
-
@dieter_p zeigmal das programm von dem esp.. ich musste ein delay bei mir einbauen..sonst kamen fehlermeldungen
-
@arteck said in PushButton ESP32/ESPHome wird getriggert. Warum/Wodurch?:
@dieter_p zeigmal das programm von dem esp.. ich musste ein delay bei mir einbauen..sonst kamen fehlermeldungen
Hoffe das steckt kein Unfug bei meiner ersten Verwendung drin:
esphome: name: esp32-flur esp32: board: m5stack-core-esp32 framework: type: arduino # Enable loggin logger: # Enable Home Assistant API api: web_server: port: 80 ota: password: "xxx" wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Optional manual IP manual_ip: static_ip: 192.168.7.xxx gateway: 192.168.7.x subnet: 255.255.255.0 # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Esp32-Hotspot" password: "xxx" captive_portal: ## Device-specific esp32_ble_tracker: light: - platform: fastled_clockless chipset: SK6812 pin: 27 num_leds: 1 rgb_order: GRB id: status_led name: RGB LED effects: - random: - flicker: - addressable_rainbow: binary_sensor: - platform: gpio pin: number: 39 inverted: true name: Button # Presence based on MAC address - platform: ble_presence mac_address: D2:83:60:xx:xx:xx name: "BLE Beacon1 Presence" id: beacon1_presence - platform: ble_presence mac_address: F5:5D:42:xx:xx:xx name: "BLE Beacon2 Presence" id: beacon2_presence sensor: # RSSI based on MAC address - platform: ble_rssi mac_address: D2:83:60:xx:xx:xx name: "BLE Beacon1 RSSI value" id: beacon1_rssi on_value: then: - script.execute: presence_timeout # Publish 0 if no rssi received - platform: ble_rssi mac_address: F5:5D:42:xx:xx:xx name: "BLE Beacon2 RSSI value" id: beacon2_rssi on_value: then: - script.execute: presence2_timeout # Publish 0 if no rssi received script: # Publish event every 30 seconds when no rssi received - id: presence_timeout mode: restart then: - delay: 30s - lambda: |- id(beacon1_rssi).publish_state(0); id(beacon1_presence).publish_state(0); - script.execute: presence_timeout - id: presence2_timeout mode: restart then: - delay: 30s - lambda: |- id(beacon2_rssi).publish_state(0); id(beacon2_presence).publish_state(0); - script.execute: presence2_timeout
-
binary_sensor: - platform: gpio pin: number: 39 inverted: true mode: INPUT_PULLUP filters: - delayed_on_off: 1000ms name: Button # Presence based on MAC address - platform: ble_presence mac_address: D2:83:60:xx:xx:xx name: "BLE Beacon1 Presence" id: beacon1_presence - platform: ble_presence mac_address: F5:5D:42:xx:xx:xx name: "BLE Beacon2 Presence" id: beacon2_presence
vergiss die formatierung nicht
-
@arteck said in PushButton ESP32/ESPHome wird getriggert. Warum/Wodurch?:
binary_sensor: - platform: gpio pin: number: 39 inverted: true mode: INPUT_PULLUP filters: - delayed_on_off: 1000ms name: Button # Presence based on MAC address - platform: ble_presence mac_address: D2:83:60:xx:xx:xx name: "BLE Beacon1 Presence" id: beacon1_presence - platform: ble_presence mac_address: F5:5D:42:xx:xx:xx name: "BLE Beacon2 Presence" id: beacon2_presence
Danke. Probiere es mal.
vergiss die formatierung nicht
In der Tat ist mir das noch nicht eindeutig klar wie was zu formattieren ist und auch welche Reihenfolge springt ziemlich.....
-
@arteck
der GPIO 39 scheint den PullUp Mode nicht zu erlauben?INFO Reading configuration /opt/iobroker/iobroker-data/esphome.0/esp32-flur.yaml... Failed config binary_sensor.gpio: [source /opt/iobroker/iobroker-data/esphome.0/esp32-flur.yaml:56] platform: gpio pin: [source /opt/iobroker/iobroker-data/esphome.0/esp32-flur.yaml:58] number: 39 inverted: True GPIO39 (34-39) does not support pullups. mode: INPUT_PULLUP [source /opt/iobroker/iobroker-data/esphome.0/esp32-flur.yaml:60] filters: - delayed_on_off: 1000ms name: Button
-
@dieter_p dann nimm den raus..oder du nimmst einen anderen GPIO
-
@arteck
Ok. hab den PullUp rausgenommen aber der delay ist noch drin.
Anderer GPIO geht leider nicht bei dem ESP:
Edit: Also wird der GPIO39 wohl per Button auf GND gezogen. Durch den fehlenden Pullup ergeben sich undefinierten Zustände ....... irgendwie kann ich es nicht ganz glauben, dass er so als Produkt verkauft wird. Die Probleme müßten ja dann alle haben, die den Button nutzen.
Auch wenn die Zustände weiterhin undefiniert auftreten, würde es etwas die Situation verbessern, wenn ich nur noch auf "Longpress" triggern würde bzw. den Button im ESP auf einen Modus "Longpress" definiere (z.B. delayed_on_off: 3000ms). Anders sehe ich keine Chance in dem Setup, oder?
-
@dieter_p und mit dem delay geht auch nicht ??
-
Hab das Delay jetzt auf 3 Sekunden gesetzt und bisher keine ungewollte Triggerung mehr.
-
habe einen Hinweis bekommen der auch für GPIO39 gilt und es könnte hiermit zu tun haben:
https://github.com/espressif/arduino-esp32/issues/4903Die SDK Version in ESPHome ist aber neuer 3.3.2
Processing esp32-flur (board: m5stack-core-esp32; framework: arduino; platform: platformio/espressif32 @ 3.3.2)
Einen Pullup besitzt der GPIO39 per Hardware.
Als Workaround wird empfohlen ADC Power zu aktivieren. Mmmh bedeutet eine platform ADC in ESPHome und ich muß mir etwas für die Auswertung/Triggerung überlegen, wenn das Sinn macht....