Pinologia ESP32 Deep Sleep i Wake-up

Witam mam pytanko dotyczące pinów w esphome. Mam esp32 i dwa czujniki do niego podłączyłem , ogólnie wszystko działa tylko mam mały problem. Zasilanie jest z ogniw i żeby oszczędzić baterie to usypiam esp, budzi się jak wykryje ruch z jednego czujnika i raportuje i z znowu usypia . Drugi czujnik jak esp jest uśpione to nie działa więc muszę dodać dodatkowy pin z tego drugiego czujnika dadaje zdjęcie 12
czyli wstaje z pinu 13 ale chciałbym zęby z dwóch pinów stawało esp. Wiem że dla nikóry z was to jest banalne, ale ja przepatrzyłam dokumentacje i nic nie znalazłem :frowning:

" esp32_ext1_wakeup (Optional): Use the EXT1 wakeup source of the ESP32 to wake from deep sleep to wake up on multiple pins. This cannot be used together with wakeup pin."

tak ma wyglądać ten wpis??? bo coś nie bardzo… 1

Zobacz tak:

deep_sleep:
  run_duration: 90s
  esp32_ext1_wakeup:
    pins:
      - 12
      - 13
    mode: "ANY_HIGH"
  wakeup_pin_mode: "INVERT_WAKEUP"
1 Like

Sprawdziłem plus jest takie że składnia jest dobra, ale nadal esp budzi się z jednego pinu…

A używasz pinów typu RTC EXT1?

tu za to jest przykładowy moduł ESP32 z opisanymi pinami

PS zmieniłem nieco temat wątku, bo to kwestia ściśle sprzętowa (i nie dotyczy wyłącznie ESPHome)

Piny mam dobre nawet z ciekawości wpisałem "wakeup_pin: GPIO12 " i działa z 12 i 13 pojedynczo tylko teraz kwestia żeby jeden i drugi budził esp. Zauważyłem jeszcze jedna ciekawostkę że jak mam ustawiony wakeup_pin to działa normalnie czyli pochodzi na zadanym czasie i usypia się, czeka aż któryś pin da sygnał. Natomiast jak mam ustawione te dwa piny naraz nawet jak żaden czujnik nie jest podpięty to esp pochodzi chwile uśpi się,ale po 5 sek samo się budzi i raportuje… aha i jeszcze zastanawiam się jak rozwiązać sprawę ze stanem encji a mianowicie. Mam zrobiony dzielnik napieć do monitorowania baterii i gdy esp śpi i np otworzą i zamknę drzwi do esp jak się obudzi to pokazuje mi tylko stan baterii bez encji otwarcia lub zamknięcia drzwi (jak już chodzi to otworze i zamknę drzwi to odrazu pokaże .

Nigdy nie korzystałem z deep-sleep na ESP32, nie mam więc żadnej praktyki z możliwością wykorzystania kilku pinów naraz (ESP8266 ma tylko jedno wejście tego rodzaju), musisz więc pokopać po dokumentacji i przykładach, np. konieczny zewnętrzny pulldown wszystkich wykorzystywanych pinów przy budzeniu EXT1 stanem wysokim

(to akurat potwierdza oficjalna dokumentacja Espressif’a).

Witam ponownie nie chcę zakładać kolejnego tematu więc napiszę tuta. Zrezygnowałem z baterii i pociągnąłem prąd pod bramę także już nie jest mi potrzebne usypianie esp32. Usunąłem dziennik napięć, deep_sleep z konfiguracji esp i ku mojemu zaskoczeniu esp32 działa nieprawidłowo. Esp jest w sieci ale czujniki nie działają czy coś się zmieniło w konfiguracji tego esp dadam parę zdjęć może to wyjaśni bardziej problem

WARNING GPIO12 is a Strapping PIN and should be avoided.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Starting log output from 192.168.2.12 using esphome API
INFO Successfully connected to 192.168.2.12
[21:42:36][I][app:102]: ESPHome version 2022.6.2 compiled on Jul 24 2022, 12:00:13
[21:42:36][C][wifi:491]: WiFi:
[21:42:36][C][wifi:353]:   Local MAC: 30:AE:A4:99:56:7C
[21:42:36][C][wifi:354]:   SSID: [redacted]
[21:42:36][C][wifi:355]:   IP Address: 192.168.2.12
[21:42:36][C][wifi:357]:   BSSID: [redacted]
[21:42:36][C][wifi:358]:   Hostname: 'listy'
[21:42:36][C][wifi:360]:   Signal strength: -54 dB ▂▄▆█
[21:42:36][C][wifi:364]:   Channel: 6
[21:42:36][C][wifi:365]:   Subnet: 255.255.255.0
[21:42:36][C][wifi:366]:   Gateway: 192.168.2.1
[21:42:36][C][wifi:367]:   DNS1: 0.0.0.0
[21:42:36][C][wifi:368]:   DNS2: 0.0.0.0
[21:42:36][C][logger:275]: Logger:
[21:42:36][C][logger:276]:   Level: DEBUG
[21:42:36][C][logger:277]:   Log Baud Rate: 115200
[21:42:36][C][logger:278]:   Hardware UART: UART0
[21:42:36][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'listy'
[21:42:36][C][gpio.binary_sensor:015]:   Device Class: 'door'
[21:42:36][C][gpio.binary_sensor:016]:   Pin: GPIO12
[21:42:36][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'brama1'
[21:42:36][C][gpio.binary_sensor:015]:   Device Class: 'door'
[21:42:36][C][gpio.binary_sensor:016]:   Pin: GPIO13
[21:42:36][C][status:034]: Status Binary Sensor 'status skrzynki'
[21:42:36][C][status:034]:   Device Class: 'connectivity'
[21:42:36][C][status:034]: Status Binary Sensor 'skrzynka pocztowa'
[21:42:36][C][status:034]:   Device Class: 'connectivity'
[21:42:36][C][captive_portal:088]: Captive Portal:
[21:42:36][C][mdns:084]: mDNS:
[21:42:36][C][mdns:085]:   Hostname: listy
[21:42:36][C][ota:085]: Over-The-Air Updates:
[21:42:36][C][ota:086]:   Address: 192.168.2.12:3232
[21:42:36][C][ota:089]:   Using Password.
[21:42:36][C][api:138]: API Server:
[21:42:36][C][api:139]:   Address: 192.168.2.12:6053
[21:42:36][C][api:141]:   Using noise encryption: YES

ee

a tutaj jest diagnostyki

  "home_assistant": {
    "installation_type": "Home Assistant Supervised",
    "version": "2022.7.3",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.10.5",
    "docker": true,
    "arch": "x86_64",
    "timezone": "UTC",
    "os_name": "Linux",
    "os_version": "5.10.0-14-amd64",
    "supervisor": "2022.07.0",
    "host_os": "Debian GNU/Linux 11 (bullseye)",
    "docker_version": "20.10.16",
    "chassis": "desktop",
    "run_as_root": true
  },
  "custom_components": {
    "sonoff": {
      "version": "3.1.0",
      "requirements": [
        "pycryptodome>=3.6.6"
      ]
    },
    "reversotts": {
      "version": "1.0.2",
      "requirements": [
        "pyttsreverso==0.4"
      ]
    },
    "hacs": {
      "version": "1.25.5",
      "requirements": [
        "aiogithubapi>=22.2.4"
      ]
    },
    "burze_dzis_net": {
      "version": "v1.0.4",
      "requirements": [
        "zeep"
      ]
    }
  },
  "integration_manifest": {
    "domain": "esphome",
    "name": "ESPHome",
    "config_flow": true,
    "documentation": "https://www.home-assistant.io/integrations/esphome",
    "requirements": [
      "aioesphomeapi==10.10.0"
    ],
    "zeroconf": [
      "_esphomelib._tcp.local."
    ],
    "dhcp": [
      {
        "registered_devices": true
      }
    ],
    "codeowners": [
      "@OttoWinter",
      "@jesserockz"
    ],
    "after_dependencies": [
      "zeroconf",
      "tag"
    ],
    "iot_class": "local_push",
    "loggers": [
      "aioesphomeapi",
      "noiseprotocol"
    ],
    "is_built_in": true
  },
  "data": {
    "config": {
      "entry_id": "07e9b8c573689858ee0c46a4da7d2749",
      "version": 1,
      "domain": "esphome",
      "title": "listy",
      "data": {
        "host": "192.168.2.12",
        "port": 6053,
        "password": "",
        "noise_psk": "**REDACTED**"
      },
      "options": {},
      "pref_disable_new_entities": false,
      "pref_disable_polling": false,
      "source": "zeroconf",
      "unique_id": "listy",
      "disabled_by": null
    },
    "storage_data": {
      "device_info": {
        "uses_password": false,
        "name": "listy",
        "mac_address": "**REDACTED**",
        "compilation_time": "Jul 24 2022, 12:00:13",
        "model": "esp32dev",
        "has_deep_sleep": false,
        "esphome_version": "2022.6.2",
        "project_name": "",
        "project_version": "",
        "webserver_port": 0
      },
      "services": [],
      "api_version": {
        "major": 1,
        "minor": 6
      },
      "binary_sensor": [
        {
          "object_id": "status_skrzynki",
          "key": 3849835841,
          "name": "status skrzynki",
          "unique_id": "listybinary_sensorstatus_skrzynki",
          "disabled_by_default": false,
          "icon": "",
          "entity_category": 2,
          "device_class": "connectivity",
          "is_status_binary_sensor": true
        },
        {
          "object_id": "listy",
          "key": 2272994462,
          "name": "listy",
          "unique_id": "listybinary_sensorlisty",
          "disabled_by_default": false,
          "icon": "",
          "entity_category": 0,
          "device_class": "door",
          "is_status_binary_sensor": false
        },
        {
          "object_id": "skrzynka_pocztowa",
          "key": 2192686790,
          "name": "skrzynka pocztowa",
          "unique_id": "listybinary_sensorskrzynka_pocztowa",
          "disabled_by_default": false,
          "icon": "",
          "entity_category": 2,
          "device_class": "connectivity",
          "is_status_binary_sensor": true
        },
        {
          "object_id": "brama1",
          "key": 3863227325,
          "name": "brama1",
          "unique_id": "listybinary_sensorbrama1",
          "disabled_by_default": false,
          "icon": "",
          "entity_category": 0,
          "device_class": "door",
          "is_status_binary_sensor": false
        }
      ]
    }
  }
}

Konfiguracja HA nie jest tu niezbędna.
Aktualizowałeś firmware ESPHome przed zmianami i nadal działało poprawnie?
Wrzuć YAMLa z którego powstaje firmware.
Zazwyczaj po radykalnych zmianach konfiguracji warto usunąć urządzenie z HA i po restarcie HA dodać je ponownie (lub dać szansę na auto-detekcję).

Wydaje mi się że po zmianach aktualizowałem

esphome:
  name: listy

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "KkpKhpgHSx1YbBjq40uJ5lbaDkKuNTBw6zxrwzz5t2M="

ota:
  password: "71463cd82acd256735b646311045e3e1"

wifi:
  ssid: "Basdfdfaobi"
  password: "pufosfcasdfek18987987892"
  
  

  # Optional manual IP
  manual_ip:
    static_ip: 192.168.2.12
    gateway: 192.168.2.1
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Listy Fallback Hotspot"
    password: "JZJ4vExvWWUL"

captive_portal:


binary_sensor:
  - platform: status
    name: "status skrzynki"

  - platform: gpio
    filters:
      - delayed_on_off: 50ms
    pin:
      number: GPIO12
      mode: INPUT_PULLUP
    name: "listy"
    device_class: door

  - platform: status
    name: "skrzynka pocztowa"

  - platform: gpio
    filters:
      - delayed_on_off: 100ms
    pin:
      number: GPIO13
    name: "brama1"
    device_class: door    

Pytałem o aktualizacje firmware przed zmianami, by nie kopać po całej dokumentacji czy może masz coś nieaktualnego w konfiguracji.

Aktualizacje zrobiłem po zmianach. Problem może tutauj być tutaj:

WARNING GPIO12 is a Strapping PIN and should be avoided.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.

tego pinu używam wcześnie to chodziło teraz może jakieś zmiany są

Jeśli używasz pinów, które biorą udział w bootowaniu to są takie ostrzeżenia, sprzętu jak rozumiem nie zmieniłałeś.

Masz kopię starej konfiguracji? (jest dostępna w backupach HA) - porównanie by może coś podpowiedziało?

Nie widzę póki co żadnych błędów, w logu który wrzuciłeś też nie ma błędów.
(nie ma powodów by ukrywać cokolwiek poza hasłami)
Co więc nie działa?
Z kodu usunąłem całe mnóstwo białych znaków, ale jeśli kompiluje się poprawnie to jest OK.

A jednak coś grzebałeś w sprzęcie

tylko nie rozumiem co. (Dzielnik rezystorowy do pomiaru napięcia?)

Czy miejsce instalacji ESP względem kontaktronów się zmieniło?
Jeśli kable przekraczają długość kilku cm to musisz użyć prawdziwe rezystory pullup, a nie programową opcję, która odpala słaby pullup wewnątrz ESP.
Przy okazji możesz zmienić piny GPIO, to się pozbędziesz ostrzeżenia.

sprzętu nie ruszałem usunąłem z konfiguracji ten dzielnik. Nie działa to że jak otwieram bramę czy ktoś wrzuca list do skrzynki to nie zmienia mi się status (otwarte zamknięte )i nie gada mi . Miejsce jest takie same , chciałem uniknąć zmiany pinów ponieważ esp zabezpieczyłem specjalnym lakierem i jest zamontowane w obudowie za zewnątrz. Znalazłem starą konfigurację

esphome:
  name: listy

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  password: "71463cd82acd256735b646311045e3e1"

wifi:
  ssid: "Basdfdfaobi"
  password: "pufosfcasdfek18987987892"
  
  
    # Optional manual IP
  manual_ip:
    static_ip: 192.168.2.12
    gateway: 192.168.2.1
    subnet: 255.255.255.0
  

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Listy Fallback Hotspot"
    password: "T53zscV7P00c"

captive_portal:


binary_sensor:
  - platform: status
    name: "status skrzynki"

  - platform: gpio
    filters:
      - delayed_on_off: 50ms
    pin:
      number: GPIO12
      mode: INPUT_PULLUP
    name: "listy"
    device_class: door
    
    
    
    
    

  - platform: status
    name: "skrzynka pocztowa"

  - platform: gpio
    filters:
      - delayed_on_off: 100ms
    pin:
      number: GPIO13
      mode: INPUT_PULLUP
    name: "brama1"
    device_class: door    
    
    
    
    
    

sensor:
  - platform: adc
    pin: GPIO34
    name: "bateria w skrzynce"
    attenuation: 11db
    update_interval: 3s
    filters:
      - calibrate_linear:
        - 2.80 -> 4.2
        - 3.15 -> 4.1
        - 3.20 -> 4.0
        - 3.30 -> 3.90
        - 8.40 -> 3.70
        
        
deep_sleep:
  run_duration: 90s
  wakeup_pin: GPIO13
  wakeup_pin_mode: INVERT_WAKEUP
  id: mail_deep_sleep   
  
  
  
mqtt:
  broker: 192.168.2.112
  username: andrzej
  password: 3333333333
  discovery: false
  discovery_retain: false

Czemu z nowej wyciachałeś MQTT?
Jakkolwiek widzę, że w starej miałeś równolegle integrację po API?
I tu pytanie czy używasz API (natywnej integracji w HA) czy MQTT?

W nowej konfiguracji masz za to szyfrowane API.
Więc jak rozumiem i tak powinieneś usunąć i dodać ponownie urządzenie w HA (powinien zniknąć ten sensor baterii).

Wywaliłem po to żeby sprawdzić czy to coś zmieni ale nie wiele to pomogło bo teraz mam to w logach

INFO Reading configuration /config/esphome/listy.yaml...
WARNING GPIO12 is a Strapping PIN and should be avoided.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Starting log output from 192.168.2.12 using esphome API
INFO Successfully connected to 192.168.2.12
[17:41:35][I][app:102]: ESPHome version 2022.6.2 compiled on Jul 28 2022, 23:11:27
[17:41:35][C][wifi:491]: WiFi:
[17:41:35][C][wifi:353]:   Local MAC: 30:AE:A4:99:56:7C
[17:41:35][C][wifi:354]:   SSID: [redacted]
[17:41:35][C][wifi:355]:   IP Address: 192.168.2.12
[17:41:35][C][wifi:357]:   BSSID: [redacted]
[17:41:35][C][wifi:358]:   Hostname: 'listy'
[17:41:35][C][wifi:360]:   Signal strength: -56 dB ▂▄▆█
[17:41:35][C][wifi:364]:   Channel: 6
[17:41:35][C][wifi:365]:   Subnet: 255.255.255.0
[17:41:35][C][wifi:366]:   Gateway: 192.168.2.1
[17:41:35][C][wifi:367]:   DNS1: 0.0.0.0
[17:41:35][C][wifi:368]:   DNS2: 0.0.0.0
[17:41:35][C][logger:275]: Logger:
[17:41:35][C][logger:276]:   Level: DEBUG
[17:41:35][C][logger:277]:   Log Baud Rate: 115200
[17:41:35][C][logger:278]:   Hardware UART: UART0
[17:41:35][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'listy'
[17:41:35][C][gpio.binary_sensor:015]:   Device Class: 'door'
[17:41:35][C][gpio.binary_sensor:016]:   Pin: GPIO12
[17:41:35][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'brama1'
[17:41:35][C][gpio.binary_sensor:015]:   Device Class: 'door'
[17:41:35][C][gpio.binary_sensor:016]:   Pin: GPIO13
[17:41:36][C][status:034]: Status Binary Sensor 'status skrzynki'
[17:41:36][C][status:034]:   Device Class: 'connectivity'
[17:41:36][C][status:034]: Status Binary Sensor 'skrzynka pocztowa'
[17:41:36][C][status:034]:   Device Class: 'connectivity'
[17:41:36][C][captive_portal:088]: Captive Portal:
[17:41:36][C][mdns:084]: mDNS:
[17:41:36][C][mdns:085]:   Hostname: listy
[17:41:36][C][ota:085]: Over-The-Air Updates:
[17:41:36][C][ota:086]:   Address: 192.168.2.12:3232
[17:41:36][C][ota:089]:   Using Password.
[17:41:36][C][api:138]: API Server:
[17:41:36][C][api:139]:   Address: 192.168.2.12:6053
[17:41:36][C][api:141]:   Using noise encryption: YES
[17:41:36][C][mqtt:065]: MQTT:
[17:41:36][C][mqtt:067]:   Server Address: 192.168.2.130:1883 (192.168.2.130)
[17:41:36][C][mqtt:068]:   Username: [redacted]
[17:41:36][C][mqtt:069]:   Client ID: [redacted]
[17:41:36][C][mqtt:074]:   Topic Prefix: 'listy'
[17:41:36][C][mqtt:076]:   Log Topic: 'listy/debug'
[17:41:36][C][mqtt:079]:   Availability: 'listy/status'
[17:41:36][C][mqtt.binary_sensor:022]: MQTT Binary Sensor 'status skrzynki':
[17:41:36][C][mqtt.binary_sensor:023]:   State Topic: 'listy/status'
[17:41:36][C][mqtt.binary_sensor:022]: MQTT Binary Sensor 'listy':
[17:41:36][C][mqtt.binary_sensor:023]:   State Topic: 'listy/binary_sensor/listy/state'
[17:41:36][C][mqtt.binary_sensor:022]: MQTT Binary Sensor 'skrzynka pocztowa':
[17:41:36][C][mqtt.binary_sensor:023]:   State Topic: 'listy/status'
[17:41:36][C][mqtt.binary_sensor:022]: MQTT Binary Sensor 'brama1':
[17:41:36][C][mqtt.binary_sensor:023]:   State Topic: 'listy/binary_sensor/brama1/state'

może faktycznie usunę to esp i wgram od nowa. W dns1 i dns2 nie mam żadnych wartość tak powinno być ?, co jakiś czas nie powinno mi czytać stan z czujników ?

Chodziło mi o usunięcie integracji (a konkretniej całego urządzenia w “urządzenia i usługi”), a nie o usunięcie konfigu w ESPHome (to moim zdaniem nie ma sensu, bo ten sam moduł zawsze będzie miał ten sam MAC-adres) - to są 2 zupełnie niezależne sprawy.

Sprawę komplikuje MQTT (i nie pomogę, bo sam korzystam wyłącznie z integracji po api).

Sumie ja głównie że używam API chciałem sprawdzić na będzie działało to MQTT na innych esp mam po api a tutaj nie powinno być “no” zamiast yes?

[21:42:36][C][api:138]: API Server:
[21:42:36][C][api:139]:   Address: 192.168.2.12:6053
[21:42:36][C][api:141]:   Using noise encryption: YES

To zależy czy chcesz używać komunikacji szyfrowanej czy nie.