bortolotti80 Allora, nell'ultimo caso che hai indicato sembra non trovi corrispondenza nella mappa (non so però cosa tira fuori)
`
INFO Reading configuration /config/eink-frame-1.yaml...
WARNING GPIO15 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 Generating C++ source...
INFO Compiling app...
Processing eink-frame-1 (board: esp32dev; framework: arduino; platform: platformio/espressif32 @ 5.2.0)
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
- toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch3
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- AsyncTCP-esphome @ 1.2.2
|-- WiFi @ 2.0.0
|-- FS @ 2.0.0
|-- Update @ 2.0.0
|-- ESPAsyncWebServer-esphome @ 2.1.0
| |-- AsyncTCP-esphome @ 1.2.2
|-- DNSServer @ 2.0.0
|-- ESPmDNS @ 2.0.0
|-- SPI @ 2.0.0
Compiling .pioenvs/eink-frame-1/src/main.cpp.o
/config/eink-frame-1.yaml: In lambda function:
/config/eink-frame-1.yaml:308:107: error: no match for 'operator[]' (operand types are 'std::map<std::cxx11::basic_string<char>, std::cxx11::basic_string<char> >' and 'float')
it.printf(245, 335, id(font_mdi_large), color_black, TextAlign::TOP_CENTER, "%s", weather_icon_map[id(weather_condition_now).state].c_str());
^
In file included from /config/.esphome/platformio/packages/toolchain-xtensa-esp32/xtensa-esp32-elf/include/c++/8.4.0/map:61,
from src/esphome/components/text_sensor/filter.h:7,
from src/esphome/components/text_sensor/text_sensor.h:6,
from src/esphome/core/controller.h:20,
from src/esphome/components/api/api_server.h:4,
from src/esphome/components/api/api_connection.h:6,
from src/esphome.h:3,
from src/main.cpp:3:
/config/.esphome/platformio/packages/toolchain-xtensa-esp32/xtensa-esp32-elf/include/c++/8.4.0/bits/stl_map.h:490:7: note: candidate: 'std::map<_Key, _Tp, _Compare, Alloc>::mapped_type& std::map<Key, _Tp, _Compare, _Alloc>::operator[](const key_type&) [with _Key = std::cxx11::basic_string<char>; _Tp = std::cxx11::basic_string<char>; _Compare = std::less<std::cxx11::basic_string<char> >; Alloc = std::allocator<std::pair<const std::cxx11::basic_string<char>, std::cxx11::basic_string<char> > >; std::map<Key, _Tp, _Compare, Alloc>::mapped_type = std::cxx11::basic_string<char>; std::map<Key, _Tp, _Compare, Alloc>::key_type = std::__cxx11::basic_string<char>]'
operator[](const key_type& k)
~~~~
/config/.esphome/platformio/packages/toolchain-xtensa-esp32/xtensa-esp32-elf/include/c++/8.4.0/bits/stl_map.h:490:7: note: no known conversion for argument 1 from 'float' to 'const key_type&' {aka 'const std::cxx11::basic_string<char>&'}
/config/.esphome/platformio/packages/toolchain-xtensa-esp32/xtensa-esp32-elf/include/c++/8.4.0/bits/stl_map.h:510:7: note: candidate: 'std::map<Key, _Tp, _Compare, Alloc>::mapped_type& std::map<Key, _Tp, _Compare, Alloc>::operator[](std::map<Key, _Tp, _Compare, _Alloc>::key_type&&) [with _Key = std::cxx11::basic_string<char>; _Tp = std::cxx11::basic_string<char>; _Compare = std::less<std::cxx11::basic_string<char> >; Alloc = std::allocator<std::pair<const std::cxx11::basic_string<char>, std::cxx11::basic_string<char> > >; std::map<Key, _Tp, _Compare, Alloc>::mapped_type = std::cxx11::basic_string<char>; std::map<Key, _Tp, _Compare, _Alloc>::key_type = std::__cxx11::basic_string<char>]'
operator[](key_type&& k)
~~~~
/config/.esphome/platformio/packages/toolchain-xtensa-esp32/xtensa-esp32-elf/include/c++/8.4.0/bits/stl_map.h:510:7: note: no known conversion for argument 1 from 'float' to 'std::map<std::cxx11::basic_string<char>, std::cxx11::basic_string<char> >::key_type&&' {aka 'std::cxx11::basic_string<char>&&'}
*** [.pioenvs/eink-frame-1/src/main.cpp.o] Error 1
========================= [FAILED] Took 24.98 seconds =========================
`
Se provo a stampare solamente con questo comando, si rompe nello stesso punto:
it.printf(245, 335, id(font_mdi_large), color_black, TextAlign::TOP_CENTER, "%s", id(weather_condition_now).state.c_str());
/config/eink-frame-1.yaml:309:116: error: request for member 'c_str' in 'weather_condition_now->esphome::homeassistant::HomeassistantSensor::<anonymous>.esphome::sensor::Sensor::state', which is of non-class type 'float'
it.printf(245, 335, id(font_mdi_large), color_black, TextAlign::TOP_CENTER, "%s", id(weather_condition_now).state.c_str());
^~~~~
Se provo invece a non mettere la conversion in stringa, viene compilato, ma si impalla in quanto dopo aver flashato il firmware nuovo non si muove nulla, come se non riuscisse più a connettersi per far vedere il log
`
========================= [SUCCESS] Took 50.78 seconds =========================
INFO Successfully compiled program.
INFO Resolving IP address of eink-frame-1.local
INFO -> 192.168.100.219
INFO Uploading /config/.esphome/build/eink-frame-1/.pioenvs/eink-frame-1/firmware.bin (1034384 bytes)
Uploading: [============================================================] 100% Done...
INFO Waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from eink-frame-1.local using esphome API
WARNING Can't connect to ESPHome API for eink-frame-1.local: Error resolving IP address: [Errno -3] Temporary failure in name resolution
INFO Trying to reconnect to eink-frame-1.local in the background
`