[-]
Szybkie szukanie


Baner sklepu jdtech.pl
Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Home Assistant (Hass.io) - ogromne możliwości integracji ID
16-11-2019, 05:10 (Ten post był ostatnio modyfikowany: 29-11-2019 00:07 przez szopen.)
Post: #11
Home Assistant (Hass.io) - ogromne możliwości integracji ID
W międzyczasie dotarł do mnie dość miniaturowy wyświetlacz e-ink (znów e-papier Tongue) Waveshare E-Paper 1,54' w wersji czarno-białej (póki co tylko do takiej jest wsparcie w ESPHome, Arduino ma już wsparcie także dla wersji biało-żółto-czarnej i biało-czerwono-czarnej, więc i tu się pewnie z czasem pojawi) z interfejsem 4-Wire SPI, jest to kwadratowy wyświetlacz o rozdzielczości 200x200pix wielkościowo mniej więcej połowa wyświetlacza opisanego w linku:
https://esphome.io/components/display/wa...paper.html
po 2 dniach "walki" uzyskałem końcową konfigurację, która póki co mnie zadowala
(1 dzień to były testy jak się zachowuje sam wyświetlacz i co umożliwia środowisko ESPHome i zabawa w kotka i myszkę co zrobić, aby sobie nie uwalić działającego kodu Tongue, drugi dzień przygotowanie layoutu już "na czysto" i nawet wstępnie mnie on zadowala, choć pozostawiłem sobie dwie naprzemiennie wyświetlane strony, więc jeszcze coś tam można upchnąć gdyby była potrzeba; sam układ elektryczny można jeszcze zoptymalizować, teraz użyłem wszystkich przewodów wyświetlacza, a w finalnym układzie będzie uproszczenie, bo coś czuję, że mi linii GPIO braknie - właściwie to już brakło Big Grin choć nie musiało)

Polecam na początek przeanalizować taki nieskomplikowany przykład użycia wyświetlacza OLED (bazującego na SSD1306 lub SH1106 - takie wyświetlacze swoją drogą są dość taniutkie) a zwracam na to uwagę, bo projekt ESPHome jest dość ciekawy dla początkujących użytkowników HA i umożliwia wymianę danych w obie strony bez uruchamiania dodatkowego brokera MQTT, a w tym przykładzie jest to ładnie opisane:
https://esphome.io/cookbook/display_time_temp_oled.html

Generalnie do pracy z wyświetlaczami trzeba poczytać przed próbami użycia, bo silnik renderujący żywcem opiera się na funkcjach z języka C++ i składnia jest dość radykalnie inna od pozostałych komponentów ESPHome czy HA, gdzie przeważa YAML (ale i tak trzeba pilnować wcięć, bo nawet jedna zbędna spacja nawet przed komentarzem może rozwalić kod na tyle, że kompilacja nie będzie możliwa)
https://esphome.io/components/display/index.html

Parę uwag:
- wpadłem na genialny pomysł aby podpiąć linię Reset wyświetlacza do GPIO0 ESP8266, bo nie chciało mi się szukać rezystora do pullup'u (to finalnie będzie jedno z uproszczeń), a tymczasem zapomniałem, że GPIO0 jest zarezerwowanym pinem, gdy się korzysta z bajeru z pomiarem napięcia na procku, a tymczasem to dopiero co opisałem w poprzednim poście Big Grin… i pół dnia poszłooo, już myślałem że doszedł uszkodzony wyświetlacz (akurat folia ochronna jest na nim uszkodzona jak po uderzeniu, a opakowanie było wręcz śmieszne… uszkodzenie widać na zdjęciu w dolnej linijce między 1 a 3, bo tej folii póki co nie usuwam - poczeka do ostatecznego montażu w obudowie)
- współrzędne pikseli są numerowane (przynajmniej w przypadku mojego wyświetlacza, ale reguła wygląda na bardziej ogólną) od 0 do 199, a nie od 1 do 200 (dla rozdzielczości 200pix)
- na polskie literki prawdopodobnie nie ma co liczyć (nakombinowałem się ze znalezieniem jakiejś fajnej czcionki z PL znakami, ale odpuściłem znalezienie rozwiązania, bo wiele znaków się i tak nie renderuje jak należy, dlatego użyłem "PM1" zamiast zapisanych symbolicznie "mikrogramów na metr sześcienny"), fonty to zwyczajne *.ttf trzeba je wrzucić do katalogu ESPHome (lub lepiej do podkatalogu by nie utknąć w bałaganie i podawać do ścieżkę względną z nazwą katalogu)
- jeśli chodzi o renderowanie grafiki, to przećwiczyłem *.png z alfakanałem - chciałem mieć ikonki MDI, czyli zgodne wyglądem z HA, pobierając je z https://materialdesignicons.com/ właśnie takie dostaniemy - nie działają, alfakanał jest ignorowany (może można to zrobić prościej, ale nie wiem jak, może nie dokopałem się w dokumentacji?) obszedłem to obrabiając grafikę by się pozbyć alfakanału, przy okazji zredukowałem ilość kolorów do 2 (nie jestem przekonany, czy był to dobry pomysł, ale chciałem zoptymalizować ich rozmiar, a zależy mi tez na czytelności, nie wiem czy się wyświetlą szarości)
- w ramach testów wyszło na to, że obsługiwane są pliki *.bmp, *.gif i *.png (więcej formatów nie próbowałem) byleby bez alfakanału, teoretycznie renderer obsługuje skalowanie, ale skoro już obrabiałem grafikę, to przygotowałem sobie ikony w finalnym rozmiarze 48x48pix (co daje możliwość wyświetlenia 4 linii z wiodąca ikoną), ale oczywiście nie ma musu - testowałem też mniejsze wymiary, ale te były idealne na moje potrzeby (mniejsze niż 24x24pix raczej nie mają sensu); uwaga odnośnie katalogów identyczna jak dla czcionek

A tak wygląda już po konfiguracji (na zdjęciu pierwszy layout - czyli 1 strona, na drugiej mam zegar z datą, czyli nic ciekawego), 3 pierwsze wskazania to lokalne czujniki (opisałem je wcześniej), a czwarte to poziom pyłu PM1 odczytywany z najbliższej miejscu ostatecznej instalacji stacji badania jakości powietrza Airly ("państwowej" tj. sponsorowanej przez gminę).
   

No OK wyświetlanie czasu jednak też jest ciekawe
https://esphome.io/components/time.html#strftime
ja sobie podbieram czas z HA
https://esphome.io/components/time.html#...ime-source
ale można też choćby z… modułu GPS, albo z internetu przez powszechnie stosowany SNTP



Tak przy okazji - pod poniższym linkiem jest sporo przykładów gotowych projektów, na których można się oprzeć budując prosty samodzielny projekt (można oprzeć się na samym ESPHome bez Home Asistant'a, bo ESPHome może też pracować stand alone, ale dużo ciekawiej jednak mieć to spięte z HA)
https://esphome.io/cookbook/
i podgląd z ikonkami:
https://esphome.io/index.html#cookbook

Przy czym dość ciekawym projektem z tam przedstawionych może być też port expander
https://esphome.io/cookbook/arduino_port_extender.html
(choć wymaga użycia standardowego IDE dla Arduino, by zaprogramować płytkę, bo spod ESPHome się nie da tego zrobić co jest chyba zrozumiałe)
Oczywiście to dodatkowa komplikacja w konfiguracji, ale może być warta zachodu jeśli pragniemy użyć większej ilości sprzętu podpiętego do pojedynczego modułu ESP.
A wspomniałem o nim, bo po podłączeniu do ESP8266 2 czujników (DHT używa 1 GPIO, a ultradźwięki 2GPIO) i wyświetlacza (6 GPIO ale da się zredukować do 4) osiągnąłem już niemal kraniec możliwości ESP8266 (który ma w tym wykonaniu jakiego używam ma dostępne 9 GPIO (z czego 1 ma opcję wejścia analogowego, a 3 to są naprawdę GPO Tongue bo mogą być tylko wyjściami - akurat OK dla wyświetlacza, więc właściwie mamy tylko 5 wejść cyfrowych lub 6 jeśli nie użyjemy analog-in).
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
30-11-2019, 17:48 (Ten post był ostatnio modyfikowany: 01-12-2019 19:04 przez szopen.)
Post: #12
Home Assistant (Hass.io) - ogromne możliwości integracji ID
Tym razem kubełek zimnej wody - ostatecznie zrozumiałem (właściwie to wiedziałem niemal od początku, ale się o tym upewniłem Tongue) czemu nie udało mi się powrócić w sensowny sposób do backupów po półrocznej przerwie w eksperymentach - rozwój HA idzie w tak szybkim tempie, że niemal każda kolejna aktualizacja wprowadza "przełomowe zmiany" (breaking changes), które wymagają często mniej lub bardziej radykalnych zmian konfiguracji.
Jeśli podążamy z aktualizacjami na bieżąco, to "pół biedy" (choć aktualizacja zdalnego systemu to naprawdę duże ryzyko, bo już przeżyłem totalne zawieszenie się systemu, choć na szczęście lokalnego, ale i tak nawet bez możliwości dobicia się po ssh), ale przy dużym przeskoku między wersjami sytuacja we w miarę rozbudowanym systemie może być naprawdę trudna do opanowania.

A wersje 0.102.x okazały się być dla mnie takimi "przełomowymi", choć update HA z wersji 0.101.3 do 0.102.1 (sprzed ponad tygodnia) przegapiłem z powodu urwania tyłka w pracy.
Oczywiście przed próbą aktualizacji wykorzystuję plugin "Check Home Assistant configuration" i dopiero gdy on nie wykaże błędów, a sam nie zauważę w opisie wydania żadnych "breaking changes" dotyczących mojej konfiguracji, przechodzę do aktualizacji, tym razem nie skończyło się to dobrze.

Opis wydania 0.102:
https://www.home-assistant.io/blog/2019/...lease-102/
(szczególnie polecam filmik https://www.youtube.com/watch?v=SqIMUSegjrs )
Ciekawa wśród nowych integracji jest integracja z WLED (czyli systemem zarządzania LEDami Neopixel, czyli WS2812B, WS2811, SK6812, APA102)
https://github.com/Aircoookie/WLED
można je wprawdzie ogarnąć również za pomocą ESPHome (wymaga to także użycia modułu ESP w charakterze głównego sterownika), choć WLED wydaje się być bardziej elastyczny (nie próbowałem, zawsze LEDy Neopixel przegrywały z ważniejszymi sprawami ze względu na nieciekawe ceny, ale kto wie, może się zdecyduję na jakiś mały eksperyment?)



No ale do rzeczy:

1) Wśród nowych(?) platform znalazło się "Huawei LTE", z możliwością sterowania połączeniem LTE z poziomu HA, no OK jest to nowa platforma, bo nie wymaga już ręcznego klepania konfiguracji, lecz wystarcza użyć kreatora integracji, wszystko fajnie, tylko że ta "nowa platforma" rozwaliła poprawną integrację współpracy z routerem Huawei działającą od miesięcy… mimo, że konfigurację miałem już od dawna zrobioną ręcznie zgodnie z "nową" dokumentacją
https://www.home-assistant.io/integrations/huawei_lte/
(no cóż będę śledził temat, może ud mi się pomóc developerom, póki co mam niedziałający komponent i zakomentowany fragment konfiguracji).

2) Chyba łatwiejszy przypadek (mam 2 instalacje, ta jest testowa i póki co znacznie prostsza) tu próba aktualizacji 0.102.2 na 0.102.3
Kod:
19-11-30 14:27:15 INFO (MainThread) [hassio.homeassistant] Update Home Assistant to version 0.102.3
19-11-30 14:27:15 INFO (SyncWorker_1) [hassio.docker.interface] Update image homeassistant/raspberrypi3-homeassistant:0.102.2 to homeassistant/raspberrypi3-homeassistant:0.102.3
19-11-30 14:27:15 INFO (SyncWorker_1) [hassio.docker.interface] Pull image homeassistant/raspberrypi3-homeassistant tag 0.102.3.
19-11-30 14:27:33 ERROR (SyncWorker_1) [hassio.docker.interface] Can't install homeassistant/raspberrypi3-homeassistant:0.102.3 -> 500 Server Error: Internal Server Error ("Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)").
19-11-30 14:27:33 WARNING (MainThread) [hassio.homeassistant] Update Home Assistant image fails
oczywiście nic do stracenia - spróbuję aż do skutku (pewnie to tymczasowy problem z hostowaniem wydania - czyżby 0.102.2 zawierało tyle błędów że wszyscy mają ciśnienie na aktualizację?)

edit1 - tak jak przypuszcałem w końcu się udało
Kod:
19-11-30 16:20:51 INFO (MainThread) [hassio.homeassistant] Successful run Home Assistant 0.102.3

3) przypadek trudniejszy (log z pluginu "Check Home Assistant configuration"):
Kod:
starting version 3.2.8
[15:11:28] INFO: Don't worry, this temporary installation is not overwriting your current one.
[15:11:28] INFO: Installing Home Assistant: latest...
[15:11:28] INFO: Please be patient, this might take a few minutes...
WARNING: You are using pip version 19.2.2, however version 19.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
[15:17:09] INFO: Installed Home Assistant 0.102.3
[15:17:09] INFO: Making a copy of your configuration for checking...
[15:22:08] INFO: Checking your configuration against this version...
[15:38:22] ERROR: The configuration check did not pass!
[15:38:22] ERROR: See the output below for more details.
INFO:homeassistant.util.package:Attempting install of colorlog==4.0.2
Testing configuration at /tmp/config
INFO:homeassistant.util.package:Attempting install of pyvera==0.3.6
INFO:homeassistant.util.package:Attempting install of construct==2.9.45
INFO:homeassistant.util.package:Attempting install of python-miio==0.4.7
INFO:homeassistant.util.package:Attempting install of aiohttp_cors==0.7.0
INFO:homeassistant.util.package:Attempting install of mutagen==1.42.0
INFO:homeassistant.util.package:Attempting install of gTTS-token==1.1.3
INFO:homeassistant.util.package:Attempting install of opensensemap-api==0.1.5
INFO:homeassistant.util.package:Attempting install of speedtest-cli==2.1.2
INFO:homeassistant.util.package:Attempting install of pyRFXtrx==0.23
INFO:homeassistant.util.package:Attempting install of hass-nabucasa==0.29
INFO:homeassistant.util.package:Attempting install of PyNaCl==1.3.0
INFO:homeassistant.util.package:Attempting install of home-assistant-frontend==20191119.6
INFO:homeassistant.util.package:Attempting install of netdisco==2.6.0
INFO:homeassistant.util.package:Attempting install of distro==1.4.0
INFO:homeassistant.util.package:Attempting install of sqlalchemy==1.3.10
INFO:homeassistant.util.package:Attempting install of getmac==0.8.1
INFO:homeassistant.util.package:Attempting install of huawei-lte-api==1.4.3
INFO:homeassistant.util.package:Attempting install of stringcase==1.2.0
INFO:homeassistant.util.package:Attempting install of url-normalize==1.4.1
INFO:homeassistant.util.package:Attempting install of py17track==2.2.2
INFO:homeassistant.util.package:Attempting install of py-cpuinfo==5.0.0
INFO:homeassistant.util.package:Attempting install of pylaunches==0.2.0
INFO:homeassistant.util.package:Attempting install of bluepy==1.1.4
INFO:homeassistant.util.package:Attempting install of miflora==0.4.0
INFO:homeassistant.util.package:Attempting install of psutil==5.6.5
INFO:homeassistant.util.package:Attempting install of co2signal==0.4.2
INFO:homeassistant.util.package:Attempting install of herepy==0.6.3.1
INFO:homeassistant.util.package:Attempting install of tuyaha==0.0.4
INFO:homeassistant.util.package:Attempting install of pysupla==0.0.3
Failed config
  General Errors:
    - Component error: plant - No module named 'sqlalchemy'

Successful config (partial)

Tego rodzaju problemy obchodzę przez zakomentowanie fragmentu konfiguracji (tu błędy są powiązane z integracją "plant", czyli kontroli środowiska dla kwiatków), zwykle się to udawało, choć trzeba przeszukać dokumentację, czy coś się nie zmieniło.

Edit2 - pomogło za-komentowanie części konfiguracji powiązanej z… "huawei lte" (którą przeoczyłem wcześniej), teraz sprawdzanie konfiguracji odbywa się bez błędów i jest możliwa aktualizacja, powiązanie błędów z "plant" było oczywiście fałszywe…
Edit3 - pousuwanie encji powiązanych z "Huawei LTE" (bo komentowanie konfiguracji to wciąż za mało) jednak nie pomogło na działanie tej integracji (choć sprawia wrażenie już poprawnie się konfigurującej, bo rozpoznaje model routera, to jednak jest wszystko co jest do uzyskania u mnie obecnie…)
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
01-12-2019, 17:48 (Ten post był ostatnio modyfikowany: 03-12-2019 16:28 przez szopen.)
Post: #13
Home Assistant (Hass.io) - ogromne możliwości integracji ID
A teraz z coś innej beczki - kupiłem od chińczyka kilka modułów ESP8266 o nieznanej specyfikacji, konkretniej ESP-01(S?) oparty o konstrukcję referencyjną zaprojektowaną pierwotnie bodajże przez producenta chipsetu, czyli Espressif Systems, a produkowaną przez producentów posiadających nazwy oraz jako zupełne noname, więcej tam:
http://forum.jdtech.pl/Watek-jak-rozpozn...low-esp-01

Czemu o tym piszę? bo to bardzo popularny i równocześnie taniutki moduł, a ESPHome (doskonały plugin dla HA) zawiera preset dla ESP-01, ale w wersji 512kB flash (a nie miałem jakoś zdrowia do sprawdzenia co zawierają wszystkie inne gotowe presety)
   
gdzie nagłówek kodu wygląda jakoś tak:
Kod:
esphome:
  name: nasza_nazwa_modulu
  platform: ESP8266
  board: esp01
wystarczy zmienić go na taki dla modułu z 1MB flasha
Kod:
esphome:
  name: nasza_nazwa_modulu
  platform: ESP8266
  board: esp01_1m
i już możemy kompilować bardziej skomplikowane projekty, które nie zmieściłyby się w 512kB (oczywiście sprzęt MUSI mieć zamontowany flash tej wielkości!).

Na dobry początek polecam pomiar napięcia zasilania (opisany gdzieś wyżej) oraz wskaźnik siły sygnału WiFi
https://esphome.io/components/sensor/wifi_signal.html
warto wiedzieć czy dany moduł nie jest na granicy zasięgu, szczególnie że antena w postaci ścieżki na płytce nie ma świetnych parametrów (pod tym względem wygrywają moduły wyposażone w gniazdo U.FL mające możliwośc podłączenia anteny zewnętrznej, choć wiele z nich, a właściwie wszystkie wyposażone w zintegrowaną antenę, wymaga przelutowania zwory SMT).

Inny przydatny podczas uruchamiania sensor "wbudowany" to uptime, czyli czas nieprzerwanej pracy modułu
https://esphome.io/components/sensor/uptime.html



a na bis ciekawostka (choć "siedzący w temacie" pewnie wiedzą o tym od dawna, ale parę razy już zapomniałem o tym wspomnieć Tongue)- Home Assistant w pierwszej dziesiątce szybko rosnących otwartoźródłowych projektów na githubie
https://octoverse.github.com/#top-and-trending-projects

i jest to jedyny tak duży projekt bez wsparcia ogromnych korporacji
https://www.home-assistant.io/blog/#were...-the-world
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
Odpowiedz 


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Sterowanie głosowe Alexa / Google Home + Xiaomi Gateway grzech1991 24 5 239 21-01-2019 00:36
Ostatni post: szopen