Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bootloop/wifi connection issues with illegal instruction exception, mostly on Sonoff devices #2309

Open
oxan opened this issue Aug 10, 2021 · 7 comments

Comments

@oxan
Copy link
Member

oxan commented Aug 10, 2021

The problem

There's been an influx of issues about Sonoff devices bootlooping/being unable to connect to wifi since v1.19 or v1.20. To save me and you from having to look a lot of issues, I want to centralize the discussion here.

If you have these symptoms, please:

  • Obtain the full logs over the serial port, either using the esphome logs command or the dashboard.
  • Check if there's an "Exception (0)" message in the output. If not, you don't have this problem, please open a new issue.

If you have this issue, it'd be appreciated if you can try the following things and report back whether any of this solves or doesn't solve the problem:

  • If you upgraded from a version prior to v1.18, check whether v1.18 works.
  • If you upgraded to a version beyond v1.19, check whether v1.19 works.
  • If you have set arduino_version under esphome, try it without.
  • If you have set esp8266_restore_from_flash under esphome in your YAML, try disabling it.
  • Try setting level: INFO under logger in your YAML.
  • Try setting enable_mdns: false under wifi in your YAML (note that this may break the online/offline status in the dashboard, but the device itself should work fine).
  • If you have it enabled, try disabling the captive portal.

Please include the following information in your reply:

  • The exact make & model of your board
  • The RAM/flash usage size reported during compilation
  • The full serial output you obtained, between <details> and </details> tags.
  • The full YAML you're using, between <details> and </details> tags.

Which version of ESPHome has the issue?

v1.19 or v1.20

Board

Mostly Sonoff / Shelly (possibly ESP8285-only?)

Reports

Full reports:

Other reports:

@oxan oxan changed the title Sonoff/Shelly bootloop/wifi connection issues with illegal instruction exception Bootloop/wifi connection issues with illegal instruction exception, mostly on Sonoff devices Aug 10, 2021
@dattas
Copy link

dattas commented Aug 10, 2021

Removing arduino_version resolved the issue for me, it may be useful to remove it from the sample configurations defined on the ESPHome website if that behavior causes problems: https://esphome.io/devices/sonoff_basic.html

@Warter21
Copy link

I am still struggling with the new versions (1.19-1.20). It is working fine with 1.18.
If you need any more details, please let me know. Thanks

HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash - Wemos D1 Mini

RAM: [====== ] 64.4% (used 52748 bytes from 81920 bytes)
Flash: [===== ] 45.8% (used 478528 bytes from 1044464 bytes)

[12:29:01]--------------- CUT HERE FOR EXCEPTION DECODER --------------- [12:29:01] [12:29:01]Exception (29): WARNING Exception type: Access to invalid address: STORE (wild pointer?) [12:29:01]epc1=0x40229ab1 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000004 depc=0x00000000 INFO Need to fetch platformio IDE-data, please stand by INFO Running: platformio run -d epaper-display -t idedata WARNING Decoded 0x40229ab1: std::string::_Rep::_S_create(unsigned int, unsigned int, std::allocator const&) at /workdir/arena.x86_64/gcc/xtensa-lx106-elf/libstdc++-v3/include/bits/basic_string.tcc:611 [12:29:03] [12:29:03]>>>stack>>> WARNING Found stack trace! Trying to decode it [12:29:03] [12:29:03]ctx: sys [12:29:03]sp: 3fffeb90 end: 3fffffb0 offset: 0190 [12:29:03]3fffed20: 00000031 3fffb9b0 00000009 40229aac WARNING Decoded 0x40229aac: std::string::_Rep::_S_create(unsigned int, unsigned int, std::allocator const&) at /workdir/arena.x86_64/gcc/xtensa-lx106-elf/libstdc++-v3/include/bits/basic_string.tcc:621 [12:29:03]3fffed30: 00000001 3fffede0 00000000 40229bb2 WARNING Decoded 0x40229bb2: std::string::_M_mutate(unsigned int, unsigned int, unsigned int) at /workdir/arena.x86_64/gcc/xtensa-lx106-elf/libstdc++-v3/include/bits/basic_string.tcc:481 [12:29:03]3fffed40: 3fff5270 00000001 3fff4d0c 3731ee16 [12:29:03]3fffed50: 00000000 00000000 00000009 4021a39c WARNING Decoded 0x4021a39c: String::concat(char) [12:29:03]3fffed60: 00000009 00000020 3fffede0 3fffee00 [12:29:03]3fffed70: 00000000 00000009 3fffb9b0 40229cb0 WARNING Decoded 0x40229cb0: std::string::_M_replace_safe(unsigned int, unsigned int, char const*, unsigned int) at /workdir/arena.x86_64/gcc/xtensa-lx106-elf/libstdc++-v3/include/bits/basic_string.tcc:687 [12:29:03]3fffed80: 3fffedd0 00000009 3fffee00 3fff4958 [12:29:03]3fffed90: 3fffee00 00000009 3fffb9b0 40229d56 WARNING Decoded 0x40229d56: std::string::assign(char const*, unsigned int) at /workdir/arena.x86_64/gcc/xtensa-lx106-elf/libstdc++-v3/include/bits/basic_string.tcc:278 [12:29:03]3fffeda0: 00000000 3fff494c 3fffede0 40219e35 WARNING Decoded 0x40219e35: String::invalidate() [12:29:03]3fffedb0: 3fffede0 3fffb98c 3fffee00 3fff4ba0 [12:29:03]3fffedc0: 3fffb8ac 3fffb9b0 3fffb9b0 40229d84 WARNING Decoded 0x40229d84: std::string::assign(char const*) at /workdir/arena.x86_64/gcc/xtensa-lx106-elf/libstdc++-v3/include/bits/basic_string.h:1134 [12:29:03]3fffedd0: 3fffee00 00000000 000003e8 40201236 WARNING Decoded 0x40201236: std::_Function_base::_Base_manager::_M_manager(std::_Any_data&, std::_Function_base::_Base_manager const&, std::_Manager_operation) at api_connection.cpp [12:29:03]3fffede0: 302e3000 312e302e 3fffb98c 40229d98 WARNING Decoded 0x40229d98: std::string::operator=(char const*) at /workdir/arena.x86_64/gcc/xtensa-lx106-elf/libstdc++-v3/include/bits/basic_string.h:557 [12:29:03]3fffedf0: 3fffb8ac 00000000 3fffb98c 40201d19 WARNING Decoded 0x40201d19: esphome::api::APIConnection::APIConnection(AsyncClient*, esphome::api::APIServer*) [12:29:03]3fffee00: 302e3031 312e302e 89200037 40201e84 WARNING Decoded 0x40201e84: std::_Function_handler::_M_invoke(std::_Any_data const&, void*, AsyncClient*, void*, unsigned int) at api_connection.cpp [12:29:03]3fffee10: 4021f5b0 1100000a 00000068 4021aca0 WARNING Decoded 0x4021f5b0: precache WARNING Decoded 0x4021aca0: operator new(unsigned int) [12:29:03]3fffee20: 3fffb8ac 3fffb98c 3fff5d5c 40205129 WARNING Decoded 0x40205129: std::_Function_handler::_M_invoke(std::_Any_data const&, void*, AsyncClient*) at api_server.cpp [12:29:03]3fffee30: 3fff5d6c 3fff63cc 3fffb97c 40213e3c WARNING Decoded 0x40213e3c: AsyncClient::AsyncClient(tcp_pcb*) [12:29:03]3fffee40: 3fff5d6c 3fffb8ac 3fff526c 40100119 WARNING Decoded 0x40100119: std::function::operator()(void*, AsyncClient*) const [12:29:03]3fffee50: 3fff5d6c 3fffb8ac 3fff526c 40213ec3 WARNING Decoded 0x40213ec3: AsyncServer::_accept(tcp_pcb*, long) [12:29:03]3fffee60: 3fff63cc 3fffb654 0000001b 3fff4ba0 [12:29:03]3fffee70: 3fff526c 3fff4b84 3fff4b85 40213f10 WARNING Decoded 0x40213f10: AsyncServer::_s_accept(void*, tcp_pcb*, long) [12:29:03]3fffee80: 00000001 3fff2d30 00000000 4022db71 WARNING Decoded 0x4022db71: tcp_process at /local/users/gauchard/arduino/arduino_esp8266/esp8266-lwip/tools/sdk/lwip2/builder/lwip2-src/src/core/tcp_in.c:942 (inlined by) tcp_input at /local/users/gauchard/arduino/arduino_esp8266/esp8266-lwip/tools/sdk/lwip2/builder/lwip2-src/src/core/tcp_in.c:438 [12:29:03]3fffee90: 000067e0 00000000 00000020 40100e02 WARNING Decoded 0x40100e02: malloc [12:29:03]3fffeea0: 3fff4d0c 1900000a 3ffeeb00 3fffbd34 [12:29:03]3fffeeb0: 00000000 00000000 00000020 3fff4dbc [12:29:03]3fffeec0: 3fff4d0c 3fffb622 3fffb604 40233982 WARNING Decoded 0x40233982: ip4_input at /local/users/gauchard/arduino/arduino_esp8266/esp8266-lwip/tools/sdk/lwip2/builder/lwip2-src/src/core/ipv4/ip4.c:1467 [12:29:03]3fffeed0: 00000014 3fff4d0c 0000003c 3fffbd34 [12:29:03]3fffeee0: 00000000 3fff54e4 00000020 40100dcb WARNING Decoded 0x40100dcb: free [12:29:03]3fffeef0: 40245be4 3fff532c 3fff54e4 3fffbd34 WARNING Decoded 0x40245be4: ppRecycleRxPkt [12:29:03]3fffef00: 00000008 3fff4d0c 3fffb604 4022a949 WARNING Decoded 0x4022a949: ethernet_input_LWIP2 at /local/users/gauchard/arduino/arduino_esp8266/esp8266-lwip/tools/sdk/lwip2/builder/lwip2-src/src/netif/ethernet.c:188 [12:29:03]3fffef10: 3fffdc80 3fff54e4 3fff532c 4022a768 WARNING Decoded 0x4022a768: esp2glue_ethernet_input at /local/users/gauchard/arduino/arduino_esp8266/esp8266-lwip/tools/sdk/lwip2/builder/glue-lwip/lwip-git.c:469 [12:29:03]3fffef20: 4025009e 3fff54e4 3fff532c 402500af WARNING Decoded 0x4025009e: ethernet_input at /local/users/gauchard/arduino/arduino_esp8266/esp8266-lwip/tools/sdk/lwip2/builder/glue-esp/lwip-esp.c:365 WARNING Decoded 0x402500af: ethernet_input at /local/users/gauchard/arduino/arduino_esp8266/esp8266-lwip/tools/sdk/lwip2/builder/glue-esp/lwip-esp.c:373 [12:29:03]3fffef30: 3fffb614 3fffb604 00000000 3fffdcc0 [12:29:03]3fffef40: 4024580f 00000000 3fff532c 4024b8af WARNING Decoded 0x4024580f: ppPeocessRxPktHdr WARNING Decoded 0x4024b8af: ets_snprintf [12:29:04]3fffef50: 40000f49 3fffdab0 3fffdab0 40000f49 [12:29:04]3fffef60: 40000e19 00000005 00075d70 00000000 [12:29:04]3fffef70: 00000000 aa55aa55 000000ed 40104d51 WARNING Decoded 0x40104d51: call_user_start_local [12:29:04]3fffef80: 40104d57 00075d70 00000000 00000000 WARNING Decoded 0x40104d57: call_user_start_local [12:29:04]3fffef90: 4010000d 00000002 00000008 3ffea150 WARNING Decoded 0x4010000d: call_user_start [12:29:04]3fffefa0: 402446f0 3fffef3c 402446a1 3fffff28 WARNING Decoded 0x402446f0: cont_ret at cont.S.o WARNING Decoded 0x402446a1: cont_continue at cont.S.o [12:29:04]3fffefb0: 3fffffc0 00000000 00000000 feefeffe [12:29:04]3fffefc0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3fffefd0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3fffefe0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3fffeff0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff000: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff010: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff020: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff030: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff040: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff050: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff060: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff070: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff080: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff090: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff0a0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff0b0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff0c0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff0d0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff0e0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff0f0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff100: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff110: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff120: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff130: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff140: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff150: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff160: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff170: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff180: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff190: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff1a0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff1b0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff1c0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff1d0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff1e0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff1f0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff200: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff210: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff220: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff230: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff240: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff250: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff260: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff270: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff280: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff290: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff2a0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff2b0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff2c0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff2d0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff2e0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff2f0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff300: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff310: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff320: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff330: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff340: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff350: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff360: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff370: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff380: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff390: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff3a0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff3b0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff3c0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff3d0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff3e0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff3f0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff400: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff410: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff420: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff430: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff440: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff450: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff460: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff470: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff480: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff490: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff4a0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff4b0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff4c0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff4d0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff4e0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff4f0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff500: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff510: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff520: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff530: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff540: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff550: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff560: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff570: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff580: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff590: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff5a0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff5b0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff5c0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff5d0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff5e0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff5f0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff600: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff610: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff620: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff630: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff640: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff650: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff660: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff670: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff680: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff690: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff6a0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff6b0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff6c0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff6d0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff6e0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff6f0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff700: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff710: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff720: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff730: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff740: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff750: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff760: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff770: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff780: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff790: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff7a0: 00000002 00000000 00000020 40100554 WARNING Decoded 0x40100554: ets_post [12:29:04]3ffff7b0: 40101dc9 feefeffe 00000002 40101998 WARNING Decoded 0x40101dc9: rcUpdateTxDone WARNING Decoded 0x40101998: pp_post [12:29:04]3ffff7c0: 3ffeea92 40104c33 3fff2200 feefeffe WARNING Decoded 0x40104c33: lmacTxFrame [12:29:04]3ffff7d0: 00000001 40103e0e 3fff2c58 feefeffe WARNING Decoded 0x40103e0e: lmacRecycleMPDU [12:29:04]3ffff7e0: 4010427f feefeffe feefeffe feefeffe WARNING Decoded 0x4010427f: lmacRecycleMPDU [12:29:04]3ffff7f0: feefeffe feefeffe feefeffe feefeffe [12:29:04]3ffff800: 40103d47 00000034 00000002 00040000 WARNING Decoded 0x40103d47: lmacProcessTxSuccess [12:29:04]3ffff810: 00002200 feefeffe feefeffe feefeffe [12:29:04]3ffff820: 40102c0c 00080000 feefeffe feefeffe WARNING Decoded 0x40102c0c: wDev_ProcessFiq [12:29:04]3ffff830: feefeffe 00000000 feefeffe feefeffe [12:29:04]3ffff840: feefeffe 2c9f0300 4000050c 3fffc278 [12:29:04]3ffff850: 401028f4 3fffc200 00000022 feefeffe WARNING Decoded 0x401028f4: wDev_ProcessFiq [12:29:04]3ffff860: 4000e235 00000030 0000001e ffffffff [12:29:04]3ffff870: 4000d529 00000000 00028000 00000002 [12:29:04]3ffff880: 0000000e 00023000 00000000 00000023 [12:29:04]3ffff890: 0000000a 402658d1 3ffffab3 a0000000 WARNING Decoded 0x402658d1: sleep_reset_analog_rtcreg_8266 [12:29:04]3ffff8a0: 00023000 30000000 40227058 00000030 WARNING Decoded 0x40227058: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:180 [12:29:04]3ffff8b0: 00006ff8 00000000 0000000a 00000000 [12:29:04]3ffff8c0: 00000001 00000000 0000000a 3fe8e560 [12:29:04]3ffff8d0: 40103b43 00040000 00000000 00040000 WARNING Decoded 0x40103b43: lmacProcessTXStartData [12:29:04]3ffff8e0: 00002200 40103b40 00040000 19999999 WARNING Decoded 0x40103b40: lmacProcessTXStartData [12:29:04]3ffff8f0: 3fff2c58 40102aa3 0000001c 40101050 WARNING Decoded 0x40102aa3: wDev_ProcessFiq WARNING Decoded 0x40101050: calloc [12:29:04]3ffff900: 3ffffa60 0000001c 0000001c 3ffff970 [12:29:04]3ffff910: 3ffff98d 2c9f0300 4000050c 3fffc278 [12:29:04]3ffff920: 401028f4 3fffc200 00000022 40226e7e WARNING Decoded 0x401028f4: wDev_ProcessFiq WARNING Decoded 0x40226e7e: __d2b at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdlib/mprec.c:786 [12:29:04]3ffff930: 40212e38 00000030 0000001c ffffffff WARNING Decoded 0x40212e38: WiFiServer::available(unsigned char*) [12:29:04]3ffff940: 40212e38 3ffffa70 3fff46ac 3fff5ccc WARNING Decoded 0x40212e38: WiFiServer::available(unsigned char*) [12:29:04]3ffff950: 00000000 00000000 00000000 fffffffe [12:29:04]3ffff960: ffffffff 3fffc6fc 00000050 3fff509c [12:29:04]3ffff970: 3ffffa70 3fffb5e8 3fff5cb4 00000030 [12:29:04]3ffff980: 00000002 3ffffaf4 00000004 3f000033 [12:29:04]3ffff990: 00000000 a0000000 00000000 0000001c [12:29:04]3ffff9a0: 00003000 00000003 00003000 00000000 [12:29:04]3ffff9b0: 3ffffb10 00000000 3ffffb10 40227122 WARNING Decoded 0x40227122: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:233 [12:29:04]3ffff9c0: 0000a000 3ffffab3 0000000a 00000000 [12:29:04]3ffff9d0: 007a1200 194872b9 40221900 00000003 WARNING Decoded 0x40221900: pgm_read_byte_inlined at /home/earle/src/esp-quick-toolchain/arena.x86_64/newlib/xtensa-lx106-elf/newlib/targ-include/sys/pgmspace.h:72 (discriminator 1) (inlined by) _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c:193 (discriminator 1) [12:29:04]3ffff9e0: 00000000 00000000 00000001 40100554 WARNING Decoded 0x40100554: ets_post [12:29:04]3ffff9f0: 00000002 00000000 3fff509c 3fff5cb4 [12:29:04]3ffffa00: 3fffb5e8 3ffffa70 3fff509c 4021b056 WARNING Decoded 0x4021b056: yield [12:29:04]3ffffa10: 00000001 00000000 0000000a 4021b090 WARNING Decoded 0x4021b090: optimistic_yield [12:29:04]3ffffa20: 00000000 a0000000 00000000 40212e32 WARNING Decoded 0x40212e32: WiFiServer::available(unsigned char*) [12:29:04]3ffffa30: 00000000 a0000000 00000000 0000001c [12:29:04]3ffffa40: 00001000 00000001 00001000 00000001 [12:29:04]3ffffa50: 3fffb5e8 00000002 3ffffa70 402077c9 WARNING Decoded 0x402077c9: esphome::ota::OTAComponent::handle_() [12:29:04]3ffffa60: 00000005 00000000 0000000a 00000000 [12:29:04]3ffffa70: 4021f268 00000000 00001388 00000000 WARNING Decoded 0x4021f268: precache [12:29:04]3ffffa80: 00000000 00000000 3ffffbb0 40227122 WARNING Decoded 0x40227122: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:233 [12:29:04]3ffffa90: 00000000 a0000000 00000000 0000001c [12:29:04]3ffffaa0: 00005000 3ffffb41 00005000 00000001 [12:29:04]3ffffab0: 3ffffc10 00000001 3ffffc10 40227122 WARNING Decoded 0x40227122: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:233 [12:29:04]3ffffac0: 00000046 40450000 00000000 40226e7e WARNING Decoded 0x40226e7e: __d2b at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdlib/mprec.c:786 [12:29:04]3ffffad0: 00000015 00000000 00000020 40100554 WARNING Decoded 0x40100554: ets_post [12:29:04]3ffffae0: 3ffffb10 3ffffb14 00000005 40101998 WARNING Decoded 0x40101998: pp_post [12:29:04]3ffffaf0: 3ffeea95 7d978800 3fff24f8 40450000 [12:29:04]3ffffb00: 00000000 00000007 3fffbe3e 40225a59 WARNING Decoded 0x40225a59: _dtoa_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdlib/dtoa.c:858 [12:29:05]3ffffb10: 00000001 00000005 0000000a 00000000 [12:29:05]3ffffb20: 00000001 3ffe8340 00000007 3fffbe1c [12:29:05]3ffffb30: 00000000 3e2d5f88 00000001 00000001 [12:29:05]3ffffb40: 3fffbe3c 00000003 00000000 00000006 [12:29:05]3ffffb50: 00000003 00000000 0000000a 00000000 [12:29:05]3ffffb60: 00000003 00000000 0000000a 00000000 [12:29:05]3ffffb70: 00000046 4082c000 00000000 40226e7e WARNING Decoded 0x40226e7e: __d2b at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdlib/mprec.c:786 [12:29:05]3ffffb80: 0000004b a0000000 00000000 0000001c [12:29:05]3ffffb90: 3ffffbc0 3ffffbc4 00003000 00000000 [12:29:05]3ffffba0: 00000002 00000000 0000000a 00000000 [12:29:05]3ffffbb0: 00000002 00000000 0000000a 00000000 [12:29:05]3ffffbc0: 00000003 00000007 0000000a 00000000 [12:29:05]3ffffbd0: 00000000 a0000000 00000000 0000001c [12:29:05]3ffffbe0: 00002000 00000000 00002000 00000001 [12:29:05]3ffffbf0: 3ffffd50 00000001 3ffffd50 40227122 WARNING Decoded 0x40227122: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:233 [12:29:05]3ffffc00: 0000a000 3ffffcca 0000000a 00000000 [12:29:05]3ffffc10: 00000005 00000000 4022191d 00000002 WARNING Decoded 0x4022191d: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c:194 (discriminator 1) [12:29:05]3ffffc20: 3ffffd50 00000002 3ffffd50 40227122 WARNING Decoded 0x40227122: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:233 [12:29:05]3ffffc30: 3ffffcb0 3ffffcf1 00000000 00000000 [12:29:05]3ffffc40: 3ffffda0 00000000 3ffffda0 40227122 WARNING Decoded 0x40227122: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:233 [12:29:05]3ffffc50: 3ffffd50 3ffffd43 3ffffcb0 40221a48 WARNING Decoded 0x40221a48: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c:246 [12:29:05]3ffffc60: 00000002 00000000 00000000 0000000b [12:29:05]3ffffc70: 3ffffda0 0000000b 3ffffda0 40227122 WARNING Decoded 0x40227122: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:233 [12:29:05]3ffffc80: 3ffffcf3 3fff78a8 3ffffcb0 00000001 [12:29:05]3ffffc90: 00000001 00004288 00005800 40227058 WARNING Decoded 0x40227058: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:180 [12:29:05]3ffffca0: 3ffffda0 3fff78a8 3ffffd00 40221a48 WARNING Decoded 0x40221a48: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c:246 [12:29:05]3ffffcb0: 0000000b ffffffff ffffffff 00000001 [12:29:05]3ffffcc0: 00000000 00000001 3ffffda0 40227122 WARNING Decoded 0x40227122: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:233 [12:29:05]3ffffcd0: 4021bff4 3fff56dc 00000010 ffffffff WARNING Decoded 0x4021bff4: uart_do_write_char at uart.cpp [12:29:05]3ffffce0: 4021bff4 0000007f 6000001c 3fff56dc WARNING Decoded 0x4021bff4: uart_do_write_char at uart.cpp [12:29:05]3ffffcf0: 00000000 3fff56dd 3ffffda0 4022730c WARNING Decoded 0x4022730c: _svfprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c:531 [12:29:05]3ffffd00: 00000000 0000000b 00000000 00000000 [12:29:05]3ffffd10: 0000000b 0000001a 00302073 3ffe8340 [12:29:05]3ffffd20: 00000003 00000003 00000000 402658d1 WARNING Decoded 0x402658d1: sleep_reset_analog_rtcreg_8266 [12:29:05]3ffffd30: 3ffffda3 0000000b 00000000 3ffe9dbc [12:29:05]3ffffd40: 00000004 3ffe8340 000001ee 40224705 WARNING Decoded 0x40224705: _vsnprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/vsnprintf.c:73 [12:29:05]3ffffd50: 00000005 00000000 00000020 40100554 WARNING Decoded 0x40100554: ets_post [12:29:05]3ffffd60: 00000005 00000000 00000005 40101998 WARNING Decoded 0x40101998: pp_post [12:29:05]3ffffd70: 3ffeea95 40104c4b 3fff2520 40101998 WARNING Decoded 0x40104c4b: lmacRxDone WARNING Decoded 0x40101998: pp_post [12:29:05]3ffffd80: 4010252f 3fff2520 3fff2520 3ffe9dbc WARNING Decoded 0x4010252f: rcReachRetryLimit [12:29:05]3ffffd90: fffffff4 006295ec 3fff2f50 40102710 WARNING Decoded 0x40102710: rcReachRetryLimit [12:29:05]3ffffda0: 3ffef34c 00000000 00000000 40102710 WARNING Decoded 0x40102710: rcReachRetryLimit [12:29:05]3ffffdb0: fffffff4 006295ec 40102bd2 00000100 WARNING Decoded 0x40102bd2: wDev_ProcessFiq [12:29:05]3ffffdc0: 3ffef34c 7fffffff 00002200 00000001 [12:29:05]3ffffdd0: 00000001 00004208 00002200 00000001 [12:29:05]3ffffde0: 3ffef34c 00000080 00040000 006295ec [12:29:05]3ffffdf0: 3ffef310 2c9f0300 4000050c 3fffc278 [12:29:05]3ffffe00: 401028f4 3fffc200 00000022 3fffc278 WARNING Decoded 0x401028f4: wDev_ProcessFiq [12:29:05]3ffffe10: 4000066f 00000030 00000010 ffffffff [12:29:05]3ffffe20: 00000003 ffffffff 001d318a 00000000 [12:29:05]3ffffe30: 00004bc6 7d1370d0 3ffffef0 3fff5f0c [12:29:05]3ffffe40: 3fffb5f0 3ffe82fc 3ffe8340 40220da8 WARNING Decoded 0x40220da8: localtime_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/time/lcltime_r.c:126 [12:29:05]3ffffe50: 3fffff24 fffff1f0 3fff5cb4 00000030 [12:29:05]3ffffe60: 00000000 00000000 3fff5d5c 3fff5f0c [12:29:05]3ffffe70: 3fffb5f0 3fffff24 3ffe8340 40220b90 WARNING Decoded 0x40220b90: localtime at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/time/lcltime.c:60 [12:29:05]3ffffe80: 3fffb5f0 3fff5f0c 00000080 402084d8 WARNING Decoded 0x402084d8: esphome::sntp::SNTPComponent::loop() [12:29:05]3ffffe90: 3fffb5e0 3ffe82fc 3ffe8340 40220da8 WARNING Decoded 0x40220da8: localtime_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/time/lcltime_r.c:126 [12:29:05]3ffffea0: 3fffff2c fffff1f0 00000010 3fff5f0c [12:29:05]3ffffeb0: 00000000 4bc6a7f0 00001d8c 3fff6024 [12:29:05]3ffffec0: 3fffb5e0 3fffff2c 3ffe8340 40220b90 WARNING Decoded 0x40220b90: localtime at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/time/lcltime.c:60 [12:29:05]3ffffed0: 3fffb5e0 00000002 3fff6024 40208d30 WARNING Decoded 0x40208d30: esphome::time::CronTrigger::loop() [12:29:05]3ffffee0: 00000000 4bc6a7f0 00001d8c 3fff5f0c [12:29:05]3ffffef0: 00000000 00000000 4bc6a7f0 00000000 [12:29:05]3fffff00: 00000000 4bc6a7f0 40100642 c6666666 WARNING Decoded 0x40100642: millis [12:29:05]3fffff10: 40105635 0023f8d5 3fff48a8 00000000 WARNING Decoded 0x40105635: ets_timer_arm_new [12:29:05]3fffff20: 3fff3da0 3fff48a8 00000010 3fff48a8 [12:29:05]3fffff30: 00001d8c 3fff5f0c 4021b014 3fffefa0 WARNING Decoded 0x4021b014: esp_yield [12:29:05]3fffff40: 3fff48a8 00001d8c 3fff5f0c 4021b66e WARNING Decoded 0x4021b66e: __delay [12:29:05]3fffff50: 3fffb5f4 00000010 3fff4508 4020d080 WARNING Decoded 0x4020d080: esphome::Application::loop() [12:29:05]3fffff60: 00000001 00001ab6 feefef00 feefeffe [12:29:05]3fffff70: 3fffb5f4 3ffffea8 3fff79ac 00000090 [12:29:05]3fffff80: 00000000 00000000 00000001 3fff4848 [12:29:05]3fffff90: 3fffdad0 00000000 3fff4808 4020f94c WARNING Decoded 0x4020f94c: loop [12:29:05]3fffffa0: 3fffdad0 00000000 3fff4808 4021b138 WARNING Decoded 0x4021b138: loop_wrapper() at core_esp8266_main.cpp [12:29:05]<< const&) at /workdir/arena.x86_64/gcc/xtensa-lx106-elf/libstdc++-v3/include/bits/basic_string.tcc:621 [12:29:05] [12:29:05]--------------- CUT HERE FOR EXCEPTION DECODER ---------------
esphome: name: epaper-display platform: ESP8266 board: d1_mini on_boot: priority: -10 then: - delay: 10s - component.update: epaperdisplay

wifi:
networks:
- ssid: !secret wifi_ssid
password: !secret wifi_password
fast_connect: true
enable_mdns: false

ap:
ssid: "Epaper-Display Fallback Hotspot"
password: !secret ap_password

captive_portal:

Enable logging

logger:
level: INFO

Enable Home Assistant API

api:

ota:
password: !secret ota_password

font:

  • file: 'fonts/Roboto-Regular.ttf'
    id: header_font
    size: 10
    glyphs:
    ['&', '@', '!', ',', '.', '"', '%', '(', ')', '+', '-', '_', ':', '°', '0',
    '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E',
    'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',
    'T', 'U', 'V', 'W', 'X', 'Y', 'Z', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
    'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
    'u', 'v', 'w', 'x', 'y', 'z','å', 'ä', 'ö', '/','º','µ','³']

  • file: 'fonts/Roboto-Regular.ttf'
    id: main_sensor_unit
    size: 16
    glyphs:
    ['&', '@', '!', ',', '.', '"', '%', '(', ')', '+', '-', '_', ':', '°', '0',
    '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E',
    'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',
    'T', 'U', 'V', 'W', 'X', 'Y', 'Z', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
    'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
    'u', 'v', 'w', 'x', 'y', 'z','å', 'ä', 'ö', '/','º','µ','³']

  • file: 'fonts/Roboto-Bold.ttf'
    id: date_sensor_unit
    size: 17

  • file: 'fonts/Roboto-Medium.ttf'
    id: sub_sensor_font
    size: 42
    glyphs:
    ['&', '@', '!', ',', '.', '"', '%', '(', ')', '+', '-', '_', ':', '°', '0',
    '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E',
    'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',
    'T', 'U', 'V', 'W', 'X', 'Y', 'Z', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
    'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
    'u', 'v', 'w', 'x', 'y', 'z','å', 'ä', 'ö', '/','º','µ','³']

  • file: 'fonts/Roboto-Medium.ttf'
    id: mid_sensor_font
    size: 35
    glyphs:
    ['&', '@', '!', ',', '.', '"', '%', '(', ')', '+', '-', '_', ':', '°', '0',
    '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E',
    'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',
    'T', 'U', 'V', 'W', 'X', 'Y', 'Z', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
    'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
    'u', 'v', 'w', 'x', 'y', 'z','å', 'ä', 'ö', '/','º','µ','³']

  • file: 'fonts/Roboto-Medium.ttf'
    id: main_sensor_font
    size: 62

  • file: 'fonts/materialdesignicons-webfont.ttf'
    id: mdi_wifi
    size: 20
    glyphs: [
    '󰤫', # mdi-wifi-strength-alert-outline
    '󰤟', # mdi-wifi-strength-1
    '󰤢', # mdi-wifi-strength-2
    '󰤥', # mdi-wifi-strength-3
    '󰤨' # mdi-wifi-strength-4
    ]

  • file: 'fonts/materialdesignicons-webfont.ttf'
    id: mdi_med
    size: 33
    glyphs: [
    '󰀦', # mdi-alert
    '󰊚', # mdi-gauge
    '󰔏', # mdi-themometer
    '󰖎', # mdi-water-percent
    '󰖝', # mdi-weather-windy
    ]

  • file: 'fonts/materialdesignicons-webfont.ttf'
    id: mdi_moon
    size: 52
    glyphs: [
    '󰽡', # mdi-moon-first-quarter
    '󰽢', # mdi-moon-full
    '󰽣', # mdi-moon-last-quarter
    '󰽤', # mdi-moon-new
    '󰽥', # mdi-moon-waning-crescent
    '󰽦', # mdi-moon-waning-gibbous
    '󰽧', # mdi-moon-waxing-crescent
    '󰽨' # mdi-moon-waxing-gibbous
    ]

  • file: 'fonts/materialdesignicons-webfont.ttf'
    id: mdi_big
    size: 82
    glyphs: [
    '󰖙', # mdi-weather-sunny
    '󰖔', # mdi-weather-night
    '󰖐', # mdi-weather-cloudy
    '󰖖', # mdi-weather-pouring
    '󰙿', # mdi-weather-snowy-rainy
    '󰼶', # mdi-weather-snowy-heavy
    '󰖞', # mdi-weather-windy-variant
    '󰖑', # mdi-weather-fog
    '󰼱', # mdi-weather-night-partly-cloudy
    '󰖕', # mdi-weather-partly-cloudy
    '󰙾', # mdi-weather-lightning-rainy
    '󰖓' # mdi-weather-lightning
    ]

time:

  • platform: sntp
    timezone: Europe/Budapest
    id: current_time
    on_time:
    • seconds: 0
      then:
      • component.update: epaperdisplay

sensor:

  • platform: homeassistant
    entity_id: sensor.openweathermap_wind_bearing
    id: wind_bearing

  • platform: homeassistant
    entity_id: sensor.openweathermap_wind_speed
    id: wind_speed

  • platform: homeassistant
    entity_id: sensor.living_room_temperature
    id: temp_indoor

  • platform: homeassistant
    entity_id: sensor.living_room_humidity
    id: humid_indoor

  • platform: homeassistant
    entity_id: sensor.openweathermap_temperature
    id: temp_outdoor

  • platform: homeassistant
    entity_id: sensor.openweathermap_humidity
    id: humid_outdoor

  • platform: homeassistant
    entity_id: sensor.openweathermap_pressure
    id: press_outdoor

  • platform: wifi_signal
    name: "Epaper Display WiFi Signal"
    id: wifisignal
    update_interval: 60s

  • platform: uptime
    name: Epaper Uptime

text_sensor:

  • platform: homeassistant
    entity_id: sensor.openweathermap_condition
    id: weather_cond

  • platform: homeassistant
    entity_id: sensor.openweathermap_forecast_condition
    id: weather_for_cond

  • platform: homeassistant
    entity_id: sensor.moon
    id: moon

spi:
clk_pin: 14
mosi_pin: 13 #DIN

display:

  • platform: waveshare_epaper
    id: epaperdisplay
    cs_pin: 15
    dc_pin: 12
    update_interval: 600s
    busy_pin: 16
    reset_pin: 4
    model: 4.20in
    lambda: |-

    int wind_danger_thres = 14;

    float outdoor_temp = id(temp_outdoor).state;
    int outdoor_humid = int(id(humid_outdoor).state);
    float indoor_temp = id(temp_indoor).state;
    int indoor_humid = int(id(humid_indoor).state);
    float outdoor_press = id(press_outdoor).state;
    float speed_wind = id(wind_speed).state;
    float bearing_wind = id(wind_bearing).state;

    // TIME
    it.printf(7, 10, id(header_font), TextAlign::BASELINE_LEFT, "TIME");
    it.strftime(10, 61, id(main_sensor_font), TextAlign::BASELINE_LEFT, "%H:%M", id(current_time).now());
    it.strftime(231, 35, id(date_sensor_unit), TextAlign::BASELINE_CENTER, "%A", id(current_time).now());
    it.strftime(233, 55, id(date_sensor_unit), TextAlign::BASELINE_CENTER, "%Y. %b. %d.", id(current_time).now());

    // Horizontal line
    it.line(305, 2, 305, 70);

    // Moon
    it.printf(310, 10, id(header_font), TextAlign::BASELINE_LEFT, "MOON");
    if(id(moon).state == "first_quarter") {
    it.print(328, 14, id(mdi_moon), "󰽡");}
    if(id(moon).state == "full") {
    it.print(328, 14, id(mdi_moon), "󰽢");}
    if(id(moon).state == "last_quarter") {
    it.print(328, 14, id(mdi_moon), "󰽣");}
    if(id(moon).state == "new") {
    it.print(328, 14, id(mdi_moon), "󰽤");}
    if(id(moon).state == "waning_crescent") {
    it.print(328, 14, id(mdi_moon), "󰽥");}
    if(id(moon).state == "waning_gibbous") {
    it.print(328, 14, id(mdi_moon), "󰽦");}
    if(id(moon).state == "waxing_crescent") {
    it.print(328, 14, id(mdi_moon), "󰽧");}
    if(id(moon).state == "waxing_gibbous") {
    it.print(328, 14, id(mdi_moon), "󰽨");}

    // Forecast
    it.line(7, 70, 393, 70);
    it.printf(7, 85, id(header_font), TextAlign::BASELINE_LEFT, "CURRENT");

    if(id(weather_cond).state == "clear-night") {
    it.print(7, 95, id(mdi_big), "󰖔");}
    if(id(weather_cond).state == "clear-day") {
    it.print(7, 95, id(mdi_big), "󰖙");}
    if(id(weather_cond).state == "sunny") {
    it.print(7, 95, id(mdi_big), "󰖙");}
    if(id(weather_cond).state == "partlycloudy") {
    it.print(7, 95, id(mdi_big), "󰖕");}
    if(id(weather_cond).state == "nightpartlycloudy") {
    it.print(7, 95, id(mdi_big), "󰼱");}
    if(id(weather_cond).state == "rainy") {
    it.print(7, 95, id(mdi_big), "󰖖");}
    if(id(weather_cond).state == "pouring") {
    it.print(7, 95, id(mdi_big), "󰖖");}
    if(id(weather_cond).state == "snowy-rainy") {
    it.print(7, 95, id(mdi_big), "󰙿");}
    if(id(weather_cond).state == "snowy") {
    it.print(7, 95, id(mdi_big), "󰼶");}
    if(id(weather_cond).state == "fog") {
    it.print(7, 95, id(mdi_big), "󰖑");}
    if(id(weather_cond).state == "windy") {
    it.print(7, 95, id(mdi_big), "󰖞");}
    if(id(weather_cond).state == "cloudy") {
    it.print(7, 95, id(mdi_big), "󰖐");}
    if(id(weather_cond).state == "lightning") {
    it.print(7, 95, id(mdi_big), "󰖓");}
    if(id(weather_cond).state == "lightning-rainy") {
    it.print(7, 95, id(mdi_big), "󰙾");}

    // Forecast
    it.printf(7, 197, id(header_font), TextAlign::BASELINE_LEFT, "FORECAST");

    if(id(weather_for_cond).state == "clear-night") {
    it.print(7, 207, id(mdi_big), "󰖔");}
    if(id(weather_for_cond).state == "clear-day") {
    it.print(7, 207, id(mdi_big), "󰖙");}
    if(id(weather_for_cond).state == "sunny") {
    it.print(7, 207, id(mdi_big), "󰖙");}
    if(id(weather_for_cond).state == "partlycloudy") {
    it.print(7, 207, id(mdi_big), "󰖕");}
    if(id(weather_for_cond).state == "nightpartlycloudy") {
    it.print(7, 207, id(mdi_big), "󰼱");}
    if(id(weather_for_cond).state == "rainy") {
    it.print(7, 207, id(mdi_big), "󰖖");}
    if(id(weather_for_cond).state == "pouring") {
    it.print(7, 207, id(mdi_big), "󰖖");}
    if(id(weather_for_cond).state == "snowy-rainy") {
    it.print(7, 207, id(mdi_big), "󰙿");}
    if(id(weather_for_cond).state == "snowy") {
    it.print(7, 207, id(mdi_big), "󰼶");}
    if(id(weather_for_cond).state == "fog") {
    it.print(7, 207, id(mdi_big), "󰖑");}
    if(id(weather_for_cond).state == "windy") {
    it.print(7, 207, id(mdi_big), "󰖞");}
    if(id(weather_for_cond).state == "cloudy") {
    it.print(7, 207, id(mdi_big), "󰖐");}
    if(id(weather_for_cond).state == "lightning") {
    it.print(7, 207, id(mdi_big), "󰖓");}
    if(id(weather_for_cond).state == "lightning-rainy") {
    it.print(7, 207, id(mdi_big), "󰙾");}

    // Horizontal line
    it.line(100, 70, 100, 299);

    // INDOOR
    it.line(100, 132, 393, 132);
    it.printf(107, 85, id(header_font), TextAlign::BASELINE_LEFT, "INDOOR");

    if(indoor_temp > -100 && indoor_temp < 100){
    it.printf(258, 125, id(sub_sensor_font), TextAlign::BASELINE_RIGHT , "%2.1fºc",indoor_temp);
    }else{
    it.print(258, 125, id(sub_sensor_font), TextAlign::BASELINE_RIGHT , " - ºc");
    }
    it.print(115, 123, id(mdi_med), TextAlign::BASELINE_CENTER, "󰔏"); //thermometer

    if(indoor_humid > 0 && indoor_humid < 150){
    if(indoor_humid < 100){
    it.printf(383, 125, id(sub_sensor_font), TextAlign::BASELINE_RIGHT , "%3d%%", indoor_humid);
    }else{
    it.printf(395, 125, id(sub_sensor_font), TextAlign::BASELINE_RIGHT , "%3d%%", indoor_humid);
    }
    }else{
    it.print(382, 125, id(sub_sensor_font), TextAlign::BASELINE_RIGHT , " - %");
    }
    it.print(285, 125, id(mdi_med), TextAlign::BASELINE_CENTER, "󰖎"); //water-percent

    it.printf(107, 147, id(header_font), TextAlign::BASELINE_LEFT, "PRESSURE");

    if(outdoor_press > 0 && outdoor_press < 2000){
    it.printf(345, 182, id(mid_sensor_font), TextAlign::BASELINE_RIGHT , "%2.0f hPA", outdoor_press);
    }else{
    it.print(327, 182, id(mid_sensor_font), TextAlign::BASELINE_RIGHT , "- hPA");
    }
    it.print(165, 180, id(mdi_med), TextAlign::BASELINE_CENTER, "󰊚"); //gauge

    it.printf(107, 197, id(header_font), TextAlign::BASELINE_LEFT, "WIND DIRECTION");

    if(bearing_wind == 0 || bearing_wind == 360) {
    it.print(210, 232, id(mid_sensor_font), TextAlign::BASELINE_LEFT, "N"); }
    if(bearing_wind > 0 && bearing_wind < 90) {
    it.print(197, 232, id(mid_sensor_font), TextAlign::BASELINE_LEFT, "NE"); }
    if(bearing_wind == 90) {
    it.print(210, 232, id(mid_sensor_font), TextAlign::BASELINE_LEFT, "E"); }
    if(bearing_wind > 90 && bearing_wind < 180) {
    it.print(197, 232, id(mid_sensor_font), TextAlign::BASELINE_LEFT, "SE"); }
    if(bearing_wind == 180) {
    it.print(210, 232, id(mid_sensor_font), TextAlign::BASELINE_LEFT, "S"); }
    if(bearing_wind > 180 && bearing_wind < 270) {
    it.print(190, 232, id(mid_sensor_font), TextAlign::BASELINE_LEFT, "SW"); }
    if(bearing_wind == 270) {
    it.print(210, 232, id(mid_sensor_font), TextAlign::BASELINE_LEFT, "W"); }
    if(bearing_wind > 270 && bearing_wind < 360) {
    it.print(190, 232, id(mid_sensor_font), TextAlign::BASELINE_LEFT, "NW"); }

    it.print(165, 232, id(mdi_med), TextAlign::BASELINE_CENTER, "󰖝"); //wind
    if(speed_wind < 50 && speed_wind > -1){ //Has valid value
    if(speed_wind > 9) {
    it.printf(290, 232, id(mid_sensor_font), TextAlign::BASELINE_RIGHT , "%2.0f", speed_wind+20);
    it.print(295, 232, id(mid_sensor_font),TextAlign::BASELINE_LEFT, "m/s");
    }else{
    it.printf(270, 232, id(mid_sensor_font), TextAlign::BASELINE_RIGHT , "%1.0f", speed_wind);
    it.print(275, 232, id(mid_sensor_font),TextAlign::BASELINE_LEFT, "m/s");
    }
    if(speed_wind > wind_danger_thres){
    it.print(125, 232, id(mdi_med), TextAlign::BASELINE_CENTER, "󰀦"); //warning
    }
    }
    else{ //Invalid or error value
    it.print(255, 232, id(mid_sensor_font), TextAlign::BASELINE_RIGHT , "- ");
    it.print(263, 232, id(mid_sensor_font),TextAlign::BASELINE_LEFT, "m/s");
    }

    // OUTDOOR
    it.line(100, 242, 393, 242);
    it.printf(107, 257, id(header_font), TextAlign::BASELINE_LEFT, "OUTDOOR");

    if(outdoor_temp > -100 && outdoor_temp < 100){
    it.printf(258, 297, id(sub_sensor_font), TextAlign::BASELINE_RIGHT , "%2.1fºc",outdoor_temp);
    }else{
    it.print(258, 297, id(sub_sensor_font), TextAlign::BASELINE_RIGHT , " - ºc");
    }
    it.print(115, 293, id(mdi_med), TextAlign::BASELINE_CENTER, "󰔏"); //thermometer

    if(outdoor_humid > 0 && outdoor_humid < 150){
    if(outdoor_humid < 100){
    it.printf(383, 297, id(sub_sensor_font), TextAlign::BASELINE_RIGHT , "%3d%%", outdoor_humid);
    }else{
    it.printf(395, 297, id(sub_sensor_font), TextAlign::BASELINE_RIGHT , "%3d%%", outdoor_humid);
    }
    }else{
    it.print(382, 297, id(sub_sensor_font), TextAlign::BASELINE_RIGHT , " - %");
    }
    it.print(285, 297, id(mdi_med), TextAlign::BASELINE_CENTER, "󰖎"); //water-percent

    /* FOOTERT */
    //it.strftime(235, 298 , id(header_font), TextAlign::BASELINE_LEFT , "Updated at %Y. %b. %d. %H:%M", id(current_time).now());

    /* WiFi Signal Strenght */
    if(id(wifisignal).has_state()) {
    int x = 390;
    int y = 16;
    if (id(wifisignal).state >= -50) {
    //Excellent
    it.print(x, y, id(mdi_wifi), TextAlign::BASELINE_CENTER, "󰤨");
    ESP_LOGI("WiFi", "Exellent");
    } else if (id(wifisignal).state >= -60) {
    //Good
    it.print(x, y, id(mdi_wifi), TextAlign::BASELINE_CENTER, "󰤥");
    ESP_LOGI("WiFi", "Good");
    } else if (id(wifisignal).state >= -75) {
    //Fair
    it.print(x, y, id(mdi_wifi), TextAlign::BASELINE_CENTER, "󰤢");
    ESP_LOGI("WiFi", "Fair");
    } else if (id(wifisignal).state >= -100) {
    //Weak
    it.print(x, y, id(mdi_wifi), TextAlign::BASELINE_CENTER, "󰤟");
    ESP_LOGI("WiFi", "Weak");
    } else {
    //Unlikely working signal
    it.print(x, y, id(mdi_wifi), TextAlign::BASELINE_CENTER, "󰤫");
    ESP_LOGI("WiFi", "Unlikely");
    }
    }

@bkaufx
Copy link

bkaufx commented Aug 13, 2021

Have you guys tried turning down the wifi power? Default is 20 but Tasmota says do not set over 17. I was having serious bootloop issues with the wifi ap on a different smart plug and lowering the wifi power solved my problems.

Edit:
Wifi Component
output_power (Optional, string): The amount of TX power for the WiFi interface from 10dB to 20.5dB. Default for ESP8266 is 20dB, 20.5dB might cause unexpected restarts.

@j-k-olofsson
Copy link

Removing arduino_version from the device config solved the problem for me (Sonoff basic R3)

@0x3333
Copy link

0x3333 commented Aug 14, 2021

I don’t have arduino_version on my config file. Issue persists. I reverted to 1.16, no issue so far.

oxan added a commit to oxan/esphome-docs that referenced this issue Aug 22, 2021
oxan added a commit to oxan/esphome-docs that referenced this issue Aug 22, 2021
@Warter21
Copy link

my problem is gone with the latest version (2021.9.1).

@dekamilv
Copy link

Sonoff basic (from the first ones)
esphome 2021.9.1

WiFi issue soled only by disabling captive portal in wifi settings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants