Zdaje sobie sprawę ze ustawienia przesylane do wyswietlacza mogą być błędne ale to tylko na czas testów. Np. Mieszkanie1 docelowo ulica np. “Wielka” itp.
W innym moim poście “zaktom” pomógł rozwiązać problem zmiany stron
Jednak przy tym rozwiazaniu z encoderem i menu mogę sie poruszać i wyświetlać tylko część danych.
Pewnie wynika to z tych ustawień
on_enter:
then:
lambda: 'ESP_LOGI("display_menu", "enter: %s", it->get_text().c_str());'
on_leave:
then:
lambda: 'ESP_LOGI("display_menu", "leave: %s", it->get_text().c_str());'
items:
- type: back
text: 'Back'
- type: label
text: !lambda |-
return id(esp_ip_address).state.c_str();
- type: label
text: 'inne dane woda1'
# it.printf(0, 0, "Woda1 :%.1f m3", id(woda1).state);
# it.printf(0, 1, "Woda2 :%.1f m3", id(woda2).state);
# return id(some_sensor).state / 100.0;
gdzie
lambda: ‘ESP_LOGI(“display_menu”, “enter: %s”, it->get_text().c_str());’
pozwala wyswietlić tylko return id(esp_ip_address).state.c_str();
natomiast innych zmiennych nie id(woda1).state); lub id(time_sntp).now());
Ewentualnie jak to można zmienić.
Przeszukałem wiele stron zanim zamieściłem posta i faktycznie informacji o menu i submenu dla Esphome nie znalazłem jest zatem sporo na arduino ale nietedy droga. Jak widać na zdjeciu można dane wyświetlić ale jak dodać inne próbowałem na różne sposoby ale jestem za słaby nawet ja Validate przechodzi to wysypuje sie przy instalacji i wyswietla blad conversji
/config/esphome/esphome-web-6889a8.yaml: In lambda function:
/config/esphome/esphome-web-6889a8.yaml:161:21: error: could not convert 'woda1->esphome::sensor::Sensor::state' from 'float' to 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'}
return id(woda1).state);
~~~~~~^~~~~
/config/esphome/esphome-web-6889a8.yaml:161:26: error: expected ';' before ')' token
return id(woda1).state);
^
;
/config/esphome/esphome-web-6889a8.yaml:161:26: error: expected primary-expression before ')' token
*** [.pioenvs/esphome-web-6889a8/src/main.cpp.o] Error 1
========================= [FAILED] Took 25.24 seconds =========================
- type: label
text: !lambda |-
return id(esp_ip_address).state.c_str();
- type: label
text: !lambda |-
return id(woda1).state);
# it.printf(0, 1, "Woda2 :%.1f m3", id(woda2).state);
# return id(some_sensor).state / 100.0;