Cześć.
Znalazłem ciekawą funkcjonalność w esphome:
Wgrałem przykładowy program który zadziałał.
Chciałbym wyświetlać wartości z własnych encji ale jak wpiszę do programu identyfikator encji:
sensor.rejestrator_temperatura
z mojego urządzenia to brak jest wyświetlania tego pomiaru i dodatkowo zegar się nie aktualizuje tak jakby program się zawieszał.
Próbowałem z różnymi encjami i żadna się nie wyświetla na wyświetlaczu, niektóre tylko nie blokują programu.
to jest jakaś istniejąca encja w Home Assistant a konkretnie w tej instancji HA do której masz zintegrowane rzeczone twoje urządzenie odbiornik-rejestratora
to jest encja (tak naprawdę zmienna), która isnieje w tym urządzeniu ESPHome
nie robi śmietnika w HA dzięki temu - nie odsyłamy jej z powrotem do HA pod nową nazwą
Sensor to moje urządzenie “Rejestrator” oparty na esp8266. Dla przykładu z niego chciałbym wyświetlić na OLED temperaturę którą mierzy DS18b20.
Kopiuję identyfikator encji która jest w HA:
sensor.rejestrator_temperatura
Dokładnie tak jak moim pliku .yaml i nie działa. Program się nie zawiesza bo czas pobiera prawidłowy ale temperatury nie wyświetla.
W logach według mnie nie ma niczego niepokojącego.
A kto powiedział że się zawiesza, to drugie ESP musi najpierw opublikować stan sensora do HA, więc może trochę cierpliwości… bo to się musi stać PO uruchomieniu tego ESP z wyświetlaczem
No to wiem ale ja widzę że urządzenie nadawcze “rejestrator” wysłało wartość temperatury do HA ale na wyświetlaczu jej nie mam.
Wyrzuciłem z .yaml ten fragment z warunkiem:
if (id(Temperatura).has_state()) {
I teraz na wyświetlaczu pojawiła mi się wartość “nan” w miejscu temperatury.
Znalazłem problem w udostępnianiu czujników z home homeassistant, wiersz, - platform: homeassistant wskazuje że dane maja być pobierane z Home Assistant (homeasistant.local) i to jest OK, ale jeżeli zmienimy nazwę hosta w ustawieniach sieci na np.: ‘centrala’ po restarcie ładnie się ping-uje centrala.local jednak w przytoczonym kodzie użycie z ESPhome wiersz - platform: centrala; wykazuje błąd i nie można kodu skompilować.
Więc jeśli ktoś zmienił nazwę Home Assistant na inną lub ma dwa o tej samej nazwie to zaczyna się problem i rozwiązanie może całkowicie nie działać. W pierwszym przypadku gdy zminiamy nazę nie możemy się odwołać do sensorów gdyz host nie istnieje i nie mozna go w ESPhome oprogramować, w drugim przypadku nigdy nie wiemy z którego Home Assistant będą pobierane dane z sensorów.
Tak więc gdy mamy więcej niż jeden Home Assistent w sieci, zawsze główny musi mieć nazwę ‘homeassistant’ a innym trzeba zmienić nazwy i sensory które chcemy wykorzystywać w ESPhome muszą być w głównym Home Assistant.
To jest nazwa platformy, a nie hosta, nie możesz wymyślać sobie nazwy platformy integracji.
Nazwa hosta nie ma żadnego znaczenia - połączenie API umożliwia połączenie i tak tylko z jedną instalacją HA niezależnie od tego jak się host nazywa (u mnie akurat żaden host HA nie nazywa się homeassistant) a ołączenie API działa w każdym przypadku.
Tzn. tak było dawniej, ale niewiele się zmieniło poza faktem, że można teraz wymieniać dane z wieloma HA równocześnie, ale podstawowe mechanizmy pozostały z połączenia point to point, de facto w przypadku większości integracji to nie robi różnicy, bo zwykle dane płyną z ESP do HA, no ale tu akurat jest odwrotnie…
Więc istotnie mając więcej niż jeden HA musisz bardziej dbać o nazwy encji lub łączenie sprzętu ESPHome z HA - najwyraźniej twórcy nie przewidzieli jeszcze sytuacji gdy ktoś ma więcej instalacji HA niż jedna w tej samej lokalizacji (to w sumie jedna z kluczowych idei HA, że jest on systemem nadrzędnym dla innych, więc nie ma realnej potrzeby istnienia równolegle 2 instalacji HA w jednym domu) - brakuje funkcji wyboru instancji HA (jeśli danego urządzenia ESPHome nie zintegrujesz w innym HA niż tym który jest interesujący, to problem nie wystąpi - można ignorować urządzenia w integracji ESPHome, wtedy połączenie API jest tylko jedno i problem nie istnieje).
To jest fajny temat na issue - załóż odpowiednie tam jako prośbę o nowe funkcje (o ile już takie nie istnieje, bo jeśli już jest, to się dopisz)
ewentualnie się upewniając czy w zwykłych zgłoszeniach problemów ktoś już o tym nie pisał (ale skoro funkcje nie istnieją, to nie można mówić, że mają jakieś błędy)
Chociaż w sumie swój problem możesz rozwiązać na wiele innych sposobów, np. ustal, który HA jest twoim głównym i tylko z nim integruj cały sprzęt ESPHome, a drugą instalację HA połącz z głównym HA jako remote-ha