Metainformationen zur Seite
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
digitales:hardware:esp:deep_sleep [24.04.2025] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1digitales:hardware:esp:deep_sleep [24.04.2025] (aktuell) – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden cs
Zeile 1: Zeile 1:
 +{{tag>ESP32 ESP8266 Hardware Deep_Sleep}}
 +
 +====== 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: [[https://randomnerdtutorials.com/esp8266-deep-sleep-with-arduino-ide/|ESP8266 Deep Sleep with Arduino IDE (NodeMCU)]]
 +
 +[[..:..:sdr:hardware:enable_deep_sleep_esp8266.png?media=digitales:hardware:enable_deep_sleep_esp8266.png|{{..:..:sdr:hardware:enable_deep_sleep_esp8266.png?direct&400}}]]
 +
 +===== Auf dem Client =====
 +
 +<file yaml 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
 +
 +
 +</file>
 +
 +===== In home assistant =====
 +
 +==== Automation ====
 +
 +<file yaml 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
 +
 +
 +</file>
 +
 +==== Script ====
 +
 +<code yaml 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
 +</code>
 +
 +<code yaml 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
 +</code>
 +
 +<code yaml 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
 +</code>
 +