Metainformationen zur Seite
ESP32/ESP8266 Deep Sleep
Besonderheiten ESP8266
Um das Timer-Wake-up mit ESP8266 zu verwenden, muss der RST-Pin mit GPIO 16 (D0) verbunden werden. Siehe: ESP8266 Deep Sleep with Arduino IDE (NodeMCU)
Auf dem Client
- deep-sleep-d1-mini.yaml
esphome: name: deep-sleep-d1-mini friendly_name: Deep Sleep D1-Mini on_boot: priority: 250.0 then: on_loop: then: - if: condition: - not: - script.is_running: demo_script then: - script.execute: demo_script esp8266: board: esp01_1m logger: api: encryption: key: "zDQR1Ju6tofuK+hhVtttACIJWRrwNd9Swo2eVMmf4cE=" ota: password: "e70cec7b819f8420caf809f11f4da29b" wifi: ssid: !secret wifi_ssid password: !secret wifi_password fast_connect: true # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Deep-Sleep-D1-Mini" password: !secret fallback_password captive_portal: deep_sleep: id: deep_sleep_1 run_duration: 20s sleep_duration: 5s mqtt: broker: homeassistant.local username: MQTT-user password: !secret mqtt_password discovery: true on_message: - topic: deep-sleep-d1-mini/ota_mode payload: 'ON' then: - logger.log: OTA Mode set to ON from MQTT - deep_sleep.prevent: deep_sleep_1 - topic: deep-sleep-d1-mini/ota_mode payload: 'OFF' then: - logger.log: OTA Mode set to OFF from MQTT - deep_sleep.allow: deep_sleep_1 # - deep_sleep.enter: deep_sleep_1 switch: - platform: template id: sleep_demo_switch name: sleep_demo_switch optimistic: true script: id: demo_script mode: single then: - switch.toggle: sleep_demo_switch - delay: 1s
In home assistant
Automation
- automation.yaml
alias: deep-sleep-d1-mini/ota_mode description: "" trigger: - platform: state entity_id: - input_select.deep_sleep_d1_mini_ota_mode condition: [] action: - choose: - conditions: - condition: state entity_id: input_select.deep_sleep_d1_mini_ota_mode state: "ON" sequence: - service: script.deep_sleep_d1_mini_ota_mode data: {} - choose: - conditions: - condition: state entity_id: input_select.deep_sleep_d1_mini_ota_mode state: "OFF" sequence: - service: script.deep_sleep_d1_mini_ota_mode_off data: {} mode: single
Script
- deep-sleep-d1-mini_ota_mode_ON.yaml
alias: deep-sleep-d1-mini/ota_mode_ON sequence: - service: mqtt.publish data: qos: "0" retain: true topic: deep-sleep-d1-mini/ota_mode payload: "ON" mode: single icon: mdi:facebook-messenger
- deep-sleep-d1-mini_ota_mode_OFF.yaml
alias: deep-sleep-d1-mini/ota_mode_ON sequence: - service: mqtt.publish data: qos: "0" retain: true topic: deep-sleep-d1-mini/ota_mode payload: "ON" mode: single icon: mdi:facebook-messenger
- deep-sleep-d1-mini.yaml
substitutions: devicename: deep-sleep-d1-mini upper_devicename: Deep Sleep D1-Mini esphome: name: $devicename friendly_name: $upper_devicename on_boot: priority: 250.0 then: on_loop: then: - if: condition: - not: - script.is_running: demo_script then: - script.execute: demo_script esp8266: board: esp01_1m logger: packages: wifi: !include packages/wifi.yaml mqtt: !include packages/mqtt.yaml ota: !include packages/ota.yaml #wifi: # use_address: 192.168.178.36 # Notice that ‘api’ is commented out, as it clashes with deep sleep as it can take a minute or two to connect to the HA api. #api: captive_portal: deep_sleep: id: deep_sleep_1 run_duration: 20s sleep_duration: 10s mqtt: on_message: - topic: deep-sleep-d1-mini/ota_mode payload: 'ON' then: - logger.log: OTA Mode set to ON from MQTT - deep_sleep.prevent: deep_sleep_1 - topic: deep-sleep-d1-mini/ota_mode payload: 'OFF' then: - logger.log: OTA Mode set to OFF from MQTT - deep_sleep.allow: deep_sleep_1 # - deep_sleep.enter: deep_sleep_1 switch: - platform: template id: sleep_demo_switch optimistic: true script: id: demo_script mode: single then: - logger.log: format: "Ich bin ESP8266 ESP-01 1M" - switch.toggle: sleep_demo_switch - delay: 1s