esphome / issues

Issue Tracker for ESPHome
https://esphome.io/
290 stars 36 forks source link

Using esp32_ble_tracker platform seems to crash the module #3039

Closed jcastro closed 1 year ago

jcastro commented 2 years ago

The problem

The ESP32 module seems to be reseting from 5 to 15 minutes after booting

Which version of ESPHome has the issue?

2022.1.4 and also tried beta 2022.2.0b1

What type of installation are you using?

pip

Which version of Home Assistant has the issue?

2022.2.6

What platform are you using?

ESP32

Board

wemos d1 mini esp32

Component causing the issue

esp32_ble_tracker

Example YAML snippet

substitutions:
  devicename: watch
  friendly_name: watch
  roomname: Oficina
  yourname: Jonatan
  rssi_present: id(harssi_present).state
  rssi_not_present: id(harssi_not_present).state

esphome:
  name: $devicename
  platform: ESP32
  board: wemos_d1_mini32

wifi:
  networks:
    - ssid: !secret ssid1
      password: !secret ssid1_password
  domain: .local
  use_address: $devicename.local
  fast_connect: True

api:

ota:
    password: !secret ota_password

web_server:

logger:

captive_portal:  

text_sensor:
    - platform: template
      name: $friendly_name Uptime
      id: uptime_human
      icon: mdi:clock-start

sensor:
  - platform: template
    id: apple_watch_rssi
    name: "$yourname Apple Watch $roomname RSSI"
    device_class: signal_strength
    unit_of_measurement: dBm
    accuracy_decimals: 0
    filters:
      - exponential_moving_average:
          alpha: 0.3
          send_every: 1
    on_value:
      then:
        - lambda: |-
            if (id(apple_watch_rssi).state > $rssi_present) {
              id(room_presence_debounce).publish_state(1);
            } else if (id(apple_watch_rssi).state < $rssi_not_present) {
              id(room_presence_debounce).publish_state(0);
            }
        - script.execute: presence_timeout  # Publish 0 if no rssi received

  - platform: template
    id: room_presence_debounce
    filters:
      - sliding_window_moving_average:
          window_size: 3
          send_every: 1

  - platform: homeassistant
    name: HA RSSI Present Value
    entity_id: input_number.harssipv  #insert your input.number entity id here
    id: harssi_present
  - platform: homeassistant
    name: HA RSSI Not Present Value
    entity_id: input_number.harssinpv  #insert your input.number entity id here
    id: harssi_not_present

  - platform: uptime
    name: $friendly_name Uptime
    id: uptime_sensor
    update_interval: 5s
    internal: true
    on_raw_value:
      then:
        - text_sensor.template.publish:
            id: uptime_human
            state: !lambda |-
              int seconds = round(id(uptime_sensor).raw_state);
              int days = seconds / (24 * 3600);
              seconds = seconds % (24 * 3600);
              int hours = seconds / 3600;
              seconds = seconds % 3600;
              int minutes = seconds /  60;
              seconds = seconds % 60;
              return (
                (days ? String(days) + "d " : "") +
                (hours ? String(hours) + "h " : "") +
                (minutes ? String(minutes) + "m " : "") +
                (String(seconds) + "s")
              ).c_str();

### Apple Watch PResence
esp32_ble_tracker:
  scan_parameters:
    interval: 1.2s
    window: 500ms
    active: false
  on_ble_advertise:
    - then:
      # Look for manufacturer data of form: 4c00 10 05 YY 98 XXXXXX
      # Where YY can be 01..0F or 20..2F; and XXXXXX is ignored
      - lambda: |-
          optional<int16_t> best_rssi = nullopt;
          for (auto data : x.get_manufacturer_datas()) {
            // Guard against non-Apple datagrams, or those that are too small.
            if (data.data.size() < 4 || data.uuid.to_string() != "0x004C" || data.data[0] != 0x10 || data.data[1] < 5) {
              continue;
            }
            const int16_t rssi = x.get_rssi();
            const uint8_t status_flags = data.data[2] >> 4;  // High nibble
            const uint8_t data_flags = data.data[3];

            if (data_flags == 0x98) {  // Match unlocked Apple Watch. To also match locked watch use: if (data_flags == 0x98 || data_flags == 0x18) {
              if (status_flags == 0 || status_flags == 2) {
                best_rssi = max(rssi, best_rssi.value_or(rssi));
                ESP_LOGD("ble_adv", "Found Apple Watch (mac %s) rssi %i", x.address_str().c_str(), rssi);
              } else {
                ESP_LOGD("ble_adv", "Possible Apple Watch? (mac %s) rssi %i, unrecognised status/action flags %#04x", x.address_str().c_str(), rssi, data.data[2]);
              }
            }
          }
          if (best_rssi) {
            id(apple_watch_rssi).publish_state(*best_rssi);
          }

binary_sensor:
  - platform: template
    id: room_presence
    name: "$yourname $roomname presence"
    device_class: occupancy
    lambda: |-
      if (id(room_presence_debounce).state > 0.99) {
        return true;
      } else if (id(room_presence_debounce).state < 0.01) {
        return false;
      } else {
        return id(room_presence).state;
      }
script:
  # Publish event every 30 seconds when no rssi received
  id: presence_timeout
  mode: restart
  then:
    - delay: 30s
    - lambda: |-
        id(room_presence_debounce).publish_state(0);
    - script.execute: presence_timeout

Anything in the logs that might be useful for us?

[22:16:54][D][ble_adv:125]: Found Apple Watch (mac 6F:D1:82:87:6F:B1) rssi -63
[22:16:54][D][sensor:125]: 'Jonatan Apple Watch Oficina RSSI': Sending state -63.54902 dBm with 0 decimals of accuracy
[22:16:54][D][sensor:125]: 'room_presence_debounce': Sending state 1.00000  with 1 decimals of accuracy
[22:16:54][D][script:020]: Script 'presence_timeout' restarting (mode: restart)
[22:16:54]abort() was called at PC 0x401e06e3 on core 1
[22:16:54]
[22:16:54]ELF file SHA256: 0000000000000000
[22:16:54]
[22:16:54]Backtrace: 0x4008f980:0x3ffccae0 0x4008fbfd:0x3ffccb00 0x401e06e3:0x3ffccb20 0x401e072a:0x3ffccb40 0x401e0045:0x3ffccb60 0x401e011c:0x3ffccb80 0x400d80da:0x3ffccba0 0x400d8159:0x3ffccbc0 0x400d8244:0x3ffccbf0 0x400d8495:0x3ffccc10 0x400d8639:0x3ffcccc0 0x400d8765:0x3ffccce0 0x401ea9b1:0x3ffccde0 0x401eaa8d:0x3ffcce00 0x400e12ce:0x3ffcce20 0x400e3d5a:0x3ffcce50 0x400f040c:0x3ffcce70 0x40090c72:0x3ffcce90
WARNING Found stack trace! Trying to decode it
WARNING Decoded 0x4008f980: invoke_abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:715
WARNING Decoded 0x4008fbfd: abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:715
WARNING Decoded 0x401e06e3: __cxxabiv1::__terminate(void (*)()) at /builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/eh_terminate.cc:112
WARNING Decoded 0x401e072a: std::terminate() at /builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/eh_terminate.cc:112
WARNING Decoded 0x401e0045: __cxa_allocate_exception at /builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/eh_alloc.cc:313
WARNING Decoded 0x401e011c: operator new(unsigned int) at /builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/new_op.cc:54
WARNING Decoded 0x400d80da: __gnu_cxx::new_allocator<signed char>::allocate(unsigned int, void const*) at /Users/jonatan/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/ext/new_allocator.h:104
 (inlined by) std::allocator_traits<std::allocator<signed char> >::allocate(std::allocator<signed char>&, unsigned int) at /Users/jonatan/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/alloc_traits.h:360
 (inlined by) std::_Vector_base<signed char, std::allocator<signed char> >::_M_allocate(unsigned int) at /Users/jonatan/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_vector.h:170
 (inlined by) std::_Vector_base<unsigned char, std::allocator<unsigned char> >::_M_create_storage(unsigned int) at /Users/jonatan/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_vector.h:185
 (inlined by) std::_Vector_base<unsigned char, std::allocator<unsigned char> >::_Vector_base(unsigned int, std::allocator<unsigned char> const&) at /Users/jonatan/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_vector.h:136
 (inlined by) std::vector<unsigned char, std::allocator<unsigned char> >::vector(std::vector<unsigned char, std::allocator<unsigned char> > const&) at /Users/jonatan/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_vector.h:320
WARNING Decoded 0x400d8159: esphome::esp32_ble_tracker::ServiceData::ServiceData(esphome::esp32_ble_tracker::ServiceData const&) at /Users/jonatan/Dropbox/Repositories/esphome/.esphome/build/watch/src/esphome/components/esp32_ble_tracker/esp32_ble_tracker.h:49
 (inlined by) void __gnu_cxx::new_allocator<esphome::esp32_ble_tracker::ServiceData>::construct<esphome::esp32_ble_tracker::ServiceData, esphome::esp32_ble_tracker::ServiceData const&>(esphome::esp32_ble_tracker::ServiceData*, esphome::esp32_ble_tracker::ServiceData const&) at /Users/jonatan/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/ext/new_allocator.h:120
 (inlined by) std::enable_if<std::__and_<std::allocator_traits<std::allocator<esphome::esp32_ble_tracker::ServiceData> >::__construct_helper<esphome::esp32_ble_tracker::ServiceData, esphome::esp32_ble_tracker::ServiceData const&>::type>::value, void>::type std::allocator_traits<std::allocator<esphome::esp32_ble_tracker::ServiceData> >::_S_construct<esphome::esp32_ble_tracker::ServiceData, esphome::esp32_ble_tracker::ServiceData const&>(std::allocator<esphome::esp32_ble_tracker::ServiceData>&, esphome::esp32_ble_tracker::ServiceData*, esphome::esp32_ble_tracker::ServiceData const&) at /Users/jonatan/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/alloc_traits.h:256
 (inlined by) decltype (_S_construct({parm#1}, {parm#2}, (forward<esphome::esp32_ble_tracker::ServiceData const&>)({parm#3}))) std::allocator_traits<std::allocator<esphome::esp32_ble_tracker::ServiceData> >::construct<esphome::esp32_ble_tracker::ServiceData, esphome::esp32_ble_tracker::ServiceData const&>(std::allocator<esphome::esp32_ble_tracker::ServiceData>&, esphome::esp32_ble_tracker::ServiceData*, esphome::esp32_ble_tracker::ServiceData const&) at /Users/jonatan/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/alloc_traits.h:402
 (inlined by) void std::vector<esphome::esp32_ble_tracker::ServiceData, std::allocator<esphome::esp32_ble_tracker::ServiceData> >::_M_emplace_back_aux<esphome::esp32_ble_tracker::ServiceData const&>(esphome::esp32_ble_tracker::ServiceData const&) at /Users/jonatan/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/vector.tcc:416
WARNING Decoded 0x400d8244: std::vector<esphome::esp32_ble_tracker::ServiceData, std::allocator<esphome::esp32_ble_tracker::ServiceData> >::push_back(esphome::esp32_ble_tracker::ServiceData const&) at /Users/jonatan/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/stl_vector.h:923
WARNING Decoded 0x400d8495: esphome::esp32_ble_tracker::ESPBTDevice::parse_adv_(esp_ble_gap_cb_param_t::ble_scan_result_evt_param const&) at /Users/jonatan/Dropbox/Repositories/esphome/.esphome/build/watch/src/esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp:644
WARNING Decoded 0x400d8639: esphome::esp32_ble_tracker::ESPBTDevice::parse_scan_rst(esp_ble_gap_cb_param_t::ble_scan_result_evt_param const&) at /Users/jonatan/Dropbox/Repositories/esphome/.esphome/build/watch/src/esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp:494
WARNING Decoded 0x400d8765: esphome::esp32_ble_tracker::ESP32BLETracker::loop() at /Users/jonatan/Dropbox/Repositories/esphome/.esphome/build/watch/src/esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp:90
WARNING Decoded 0x401ea9b1: esphome::Component::call_loop() at /Users/jonatan/Dropbox/Repositories/esphome/.esphome/build/watch/src/esphome/core/component.cpp:135
WARNING Decoded 0x401eaa8d: esphome::Component::call() at /Users/jonatan/Dropbox/Repositories/esphome/.esphome/build/watch/src/esphome/core/component.cpp:135
WARNING Decoded 0x400e12ce: esphome::Application::loop() at /Users/jonatan/Dropbox/Repositories/esphome/.esphome/build/watch/src/esphome/core/application.cpp:74
WARNING Decoded 0x400e3d5a: loop() at /Users/jonatan/Dropbox/Repositories/esphome/.esphome/build/watch/src/esphome/core/automation.h:208
WARNING Decoded 0x400f040c: loopTask(void*) at /Users/jonatan/.platformio/packages/framework-arduinoespressif32/cores/esp32/main.cpp:23
WARNING Decoded 0x40090c72: vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1)
[22:16:55]
[22:16:55]Rebooting...
[22:16:55]ets Jun  8 2016 00:22:57
[22:16:55]
[22:16:55]rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
[22:16:55]configsip: 0, SPIWP:0xee
[22:16:55]clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
[22:16:55]mode:DIO, clock div:2
[22:16:55]load:0x3fff0018,len:4
[22:16:55]load:0x3fff001c,len:1044
[22:16:55]load:0x40078000,len:10124
[22:16:55]load:0x40080400,len:5828
[22:16:55]entry 0x400806a8
[22:16:55][I][logger:214]: Log initialized
[22:16:55][C][ota:461]: There have been 7 suspected unsuccessful boot attempts.
[22:16:55][D][esp32.preferences:114]: Saving preferences to flash...
[22:16:55][I][app:029]: Running through setup()...
[22:16:56][D][esp32_ble_tracker:217]: Starting scan...
[22:16:56][C][wifi:037]: Setting up WiFi...
[22:16:56][I][wifi:248]: WiFi Connecting to 'IoT'...
[22:16:56][D][text_sensor:067]: 'watch Uptime': Sending state '1s'
[22:16:56][D][sensor:125]: 'watch Uptime': Sending state 0.83700 s with 0 decimals of accuracy
[22:16:56][D][binary_sensor:036]: 'Jonatan Oficina presence': Sending state OFF
[22:16:58][D][ble_adv:125]: Found Apple Watch (mac 6F:D1:82:87:6F:B1) rssi -62
[22:16:58][D][sensor:125]: 'Jonatan Apple Watch Oficina RSSI': Sending state -62.00000 dBm with 0 decimals of accuracy
[22:16:59][D][text_sensor:067]: 'watch Uptime': Sending state '4s'
[22:16:59][D][sensor:125]: 'watch Uptime': Sending state 3.71100 s with 0 decimals of accuracy

Additional information

Using code from https://github.com/dalehumby/ESPHome-Apple-Watch-detection

omarghader commented 2 years ago

+1

lolorc commented 2 years ago

confirmed here as well. I wasn't using api at all before, and I decided to enable it yesterday and it kept crashing or reconnecting to wifi / mqtt every minute or so. It went ok when I disabled esp32_ble_tracker and all dependencies. I've just tried to enable api it on another esp32 => same behavior & same workaround I'll try with a test device later on, curious to know if it's really related to api

jcastro commented 2 years ago

I disabled captive_portal: part and now it still crashes but less

lolorc commented 2 years ago

If I recall correctly, I also happened to encounter this issue 2 weeks ago, I was trying to have ota+mqtt+i2c(2 buses)+bme680_bsec+scd30+sps30+bh1750+esp32_ble_tracker+4ble_rssi+2xiaomi_lywsd02+xiaomi_lywsdcgq+xiaomi_lywsd03mmc on ONE esp32 (no api). I ended up splitting this on two devices because it was crashing as well. And I had to disable ble all together on the esp32 with bme/scd/sps/bh1750. I'll try to reproduce this tomorrow.

lolorc commented 2 years ago

another symptom with a simpler config: it works ok but it crashes when doing ota (api not enabled)

for now I've been able to reproduce the crashes when defining xiaomi_lywsdcgq or xiaomi_lywsd03mmc sensors. But It doesn't crash with 4 ble_rssi sensors and 2 xiaomi_lywsd02 sensors.

Something is also very disturbing, as soon as esp32_ble_tracker is enabled then esphome does stop sending the mqtt homeassistant discovery, ex:

[15:50:34][V][mqtt.component:062]: 'esp32_03 safe_mode': Sending discovery...                                         
[15:50:34][V][mqtt:406]: Publish(topic='homeassistant/switch/esp32_03/esp32_03_safe_mode/config' payload='{}' retain=1
)
lolorc commented 2 years ago

Something is also very disturbing, as soon as esp32_ble_tracker is enabled then esphome does stop sending the mqtt homeassistant discovery, ex:

[15:50:34][V][mqtt.component:062]: 'esp32_03 safe_mode': Sending discovery...                                         
[15:50:34][V][mqtt:406]: Publish(topic='homeassistant/switch/esp32_03/esp32_03_safe_mode/config' payload='{}' retain=1
)

that's ok with 2022.2.5 but not with 2022.2.6 (only change: https://github.com/esphome/esphome/pull/3259) pretty sure last year I had BLE enabled on all my esp32 without any issue, for now when I need BLE I use a dedicated esp32.

lolorc commented 2 years ago

working with 2021.9.3, crashing like this with 2021.10.0:

[14:40:13][V][mqtt.component:060]: 'Bang Bang Climate Controller': Sending discovery...                                                                                                                             
[14:40:13]abort() was called at PC 0x40200777 on core 1                                                                                                                                                             
[14:40:13]                                                                                                                                                                                                          
[14:40:13]ELF file SHA256: 0000000000000000                                                                                                                                                                         
[14:40:13]                                                                                                                                                                                                          
[14:40:13]Backtrace: 0x40090658:0x3ffcd0f0 0x400908d5:0x3ffcd110 0x40200777:0x3ffcd130 0x402007be:0x3ffcd150 0x401ffe87:0x3ffcd170 0x402001be:0x3ffcd190 0x401fff25:0x3ffcd1b0 0x400e20a5:0x3ffcd1d0 0x400e20f2:0x3f
fcd200 0x400e2105:0x3ffcd220 0x400e2127:0x3ffcd240 0x400e5e76:0x3ffcd260 0x400e5eb9:0x3ffcd280 0x400e6115:0x3ffcd2a0 0x400e70d3:0x3ffcd500 0x400e74c5:0x3ffcd5c0 0x400e1fd3:0x3ffcd5e0 0x400e28ca:0x3ffcd600 0x400e4
169:0x3ffcd630 0x400e6c8b:0x3ffcd660 0x400e6d6f:0x3ffcd6b0 0x4020ae49:0x3ffcd6d0 0x400f2e35:0x3ffcd6f0 0x400f859e:0x3ffcd740 0x4010c28e:0x3ffce4f0 0x4009194a:0x3ffce510                                            
WARNING Found stack trace! Trying to decode it                                                                                                                                                                      
WARNING Decoded 0x40090658: invoke_abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:715                                                              
WARNING Decoded 0x400908d5: abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:715                                                                     
WARNING Decoded 0x40200777: __cxxabiv1::__terminate(void (*)()) at /builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/eh_terminate.cc:112                                                         
WARNING Decoded 0x402007be: std::terminate() at /builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/eh_terminate.cc:112                                                                            
WARNING Decoded 0x401ffe87: __cxa_throw at /builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/eh_throw.cc:87                                                                                      
WARNING Decoded 0x402001be: operator new(unsigned int) at /builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/new_op.cc:54
WARNING Decoded 0x401fff25: operator new[](unsigned int) at /builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libstdc++-v3/libsupc++/new_opv.cc:32                                                                      
WARNING Decoded 0x400e20a5: esphome::json::VectorJsonBuffer::reserve(unsigned int) at /home/l2/esphome/esp32_05/.piolibdeps/esp32_05/ArduinoJson-esphomelib/src/ArduinoJson/Deserialization/JsonParserImpl.hpp:166  
WARNING Decoded 0x400e20f2: esphome::json::VectorJsonBuffer::resize(unsigned int) at /home/l2/esphome/esp32_05/.piolibdeps/esp32_05/ArduinoJson-esphomelib/src/ArduinoJson/Deserialization/JsonParserImpl.hpp:166
WARNING Decoded 0x400e2105: esphome::json::VectorJsonBuffer::do_alloc(unsigned int) at /home/l2/esphome/esp32_05/.piolibdeps/esp32_05/ArduinoJson-esphomelib/src/ArduinoJson/Deserialization/JsonParserImpl.hpp:166
WARNING Decoded 0x400e2127: esphome::json::VectorJsonBuffer::alloc(unsigned int) at /home/l2/esphome/esp32_05/.piolibdeps/esp32_05/ArduinoJson-esphomelib/src/ArduinoJson/Deserialization/JsonParserImpl.hpp:166
WARNING Decoded 0x400e5e76: char const* ArduinoJson::Internals::StdStringTraits<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::duplicate<ArduinoJson::JsonBuffer>(std::__cxx11::
basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ArduinoJson::JsonBuffer*) at /home/l2/esphome/esp32_05/.piolibdeps/esp32_05/ArduinoJson-esphomelib/src/ArduinoJson/Deserialization/../Stri
ngTraits/StdString.hpp:28
WARNING Decoded 0x400e5eb9: bool ArduinoJson::Internals::ValueSaver<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void>::save<ArduinoJson::JsonVariant>(ArduinoJson::JsonB
uffer*, ArduinoJson::JsonVariant&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) at /home/l2/esphome/esp32_05/.piolibdeps/esp32_05/ArduinoJson-esphomelib/src/ArduinoJson/
Data/ValueSaver.hpp:31
 (inlined by) bool ArduinoJson::JsonObject::set_impl<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(char const*, std::__cxx11::basic_string<char, std::char_tr
aits<char>, std::allocator<char> > const&) at /home/l2/esphome/esp32_05/.piolibdeps/esp32_05/ArduinoJson-esphomelib/src/ArduinoJson/JsonObject.hpp:298
 (inlined by) bool ArduinoJson::JsonObject::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const>(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, s
td::allocator<char> > const&) at /home/l2/esphome/esp32_05/.piolibdeps/esp32_05/ArduinoJson-esphomelib/src/ArduinoJson/JsonObject.hpp:114
WARNING Decoded 0x400e6115: ArduinoJson::Internals::EnableIf<!ArduinoJson::Internals::IsArray<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::value, ArduinoJson::Internals::Json
ObjectSubscript<char const*>&>::type ArduinoJson::Internals::JsonObjectSubscript<char const*>::operator=<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_strin
g<char, std::char_traits<char>, std::allocator<char> > const&) at /home/l2/esphome/esp32_05/.piolibdeps/esp32_05/ArduinoJson-esphomelib/src/ArduinoJson/JsonObjectSubscript.hpp:41
 (inlined by) esphome::mqtt::MQTTClimateComponent::send_discovery(ArduinoJson::JsonObject&, esphome::mqtt::SendDiscoveryConfig&) at /home/l2/esphome/esp32_05/src/esphome/components/mqtt/mqtt_climate.cpp:48
WARNING Decoded 0x400e70d3: esphome::mqtt::MQTTComponent::send_discovery_()::{lambda(ArduinoJson::JsonObject&)#1}::operator()(ArduinoJson::JsonObject&) const at /home/l2/esphome/esp32_05/src/esphome/components/mq
tt/mqtt_component.cpp:155
WARNING Decoded 0x400e74c5: std::_Function_handler<void (ArduinoJson::JsonObject&), esphome::mqtt::MQTTComponent::send_discovery_()::{lambda(ArduinoJson::JsonObject&)#1}>::_M_invoke(std::_Any_data const&, Arduino
Json::JsonObject&) at /home/l2/esphome/esp32_05/src/esphome/components/mqtt/mqtt_component.cpp:155
WARNING Decoded 0x400e1fd3: std::function<void (ArduinoJson::JsonObject&)>::operator()(ArduinoJson::JsonObject&) const at /home/l2/esphome/esp32_05/.piolibdeps/esp32_05/ArduinoJson-esphomelib/src/ArduinoJson/Dese
rialization/JsonParserImpl.hpp:166
WARNING Decoded 0x400e28ca: esphome::json::build_json(std::function<void (ArduinoJson::JsonObject&)> const&, unsigned int*) at /home/l2/esphome/esp32_05/.piolibdeps/esp32_05/ArduinoJson-esphomelib/src/ArduinoJson
/Deserialization/JsonParserImpl.hpp:166
WARNING Decoded 0x400e4169: esphome::mqtt::MQTTClientComponent::publish_json(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<void (ArduinoJson::JsonObject&)> 
const&, unsigned char, bool) at /home/l2/esphome/esp32_05/src/esphome/components/mqtt/mqtt_client.cpp:497
WARNING Decoded 0x400e6c8b: esphome::mqtt::MQTTComponent::send_discovery_() at /home/l2/esphome/esp32_05/src/esphome/components/mqtt/mqtt_component.cpp:155
WARNING Decoded 0x400e6d6f: esphome::mqtt::MQTTComponent::call_setup() at /home/l2/esphome/esp32_05/src/esphome/components/mqtt/mqtt_component.cpp:155
WARNING Decoded 0x4020ae49: esphome::Component::call() at /home/l2/esphome/esp32_05/src/esphome/core/component.cpp:88
WARNING Decoded 0x400f2e35: esphome::Application::setup() at /home/l2/esphome/esp32_05/src/esphome/core/application.cpp:38
WARNING Decoded 0x400f859e: setup() at /home/l2/esphome/esp32_05/src/esphome/core/gpio.h:62
WARNING Decoded 0x4010c28e: loopTask(void*) at /home/l2/.platformio/packages/framework-arduinoespressif32/cores/esp32/main.cpp:18
WARNING Decoded 0x4009194a: vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1)
ktaragorn commented 2 years ago

FWIW, I have one esp32 that was crashing every 15min, on the dot, and my original esp32 seems to have been crashing every 4 ish hrs, often causing long periods of downtime.