Dziś pokażę jak sparować panel dotykowy Sonoff z Home Assistant a potem zademonstruję jak można go skonfigurować do praktycznie dowolnego zadania. Po zmianie firmware, panel dotykowy Sonoff jest w stanie zapewnić nam kontrolę nad wieloma, dowolnie dobranymi urządzeniami, może sterować oświetleniem, grzaniem, klimatyzacją i wszystkim innym, co się nam zamarzy. Jest w stanie również wyświetlać dowolne informacje, i to nie tylko pomiary z naszego HA (np. zużycie energii) ale też informacje pobrane z sieci, np. prognozę pogody. Możliwości są bardzo duże, dlatego warto przejść cierpliwie przez cały proces konfiguracji który tu pokażę. Zaczynamy!
Temat o wnętrzu NSPanel
Ten temat jest kontynuacją opisu wnętrza NSPanel, które przedstawiłem tutaj:
Wnętrze Sonoff NSPanel, czyli dotykowego ekranu do puszki do sterowania domem
Tu już skupimy się zmianą wsadu i podłączeniem ekraniku do Home Assistant.
Dodam tylko, że taki gadżet kosztuje około 200 zł, ale nie jest to chyba wysoką ceną, biorąc pod uwagę fakt, że zwykły "smart" włącznik (bez wyświetlacza) kosztuje często nawet 80 zł...
Wstęp
W temacie staram się krok po kroku przedstawić cały proces, ale mimo to pomocna będzie podstawowa znajomość Home Assistant i Tasmoty. Możecie na początek zapoznać się z moimi tematami:
- ESP8266 i Tasmota - sterowanie przekaźnikiem WiFi krok po
- Tutorial Home Assistant - konfiguracja, WiFi, MQTT, Zigbee, Tasmota
W tym temacie będę wykorzystywać część pokazanych wcześniej mechanizmów, m. in:
- będę zarządzać integracjami i pluginami Home Assistant, zakładam, że znacie podstawy interfejsu HA i umiecie sobie znaleźć gdzie to się dodaje...
- będę korzystać z edytora plików Home Assistant, tego wbudowanego w HA, chociaż równie dobrze można przez SMB (Sambę) zmapować udostępniony folder HA bądź robić to przez FTP
- będę korzystać z terminalu HA dostępnego z panelu WWW, też dla wygody
Część starszych wersji HA nie wspiera tego co potrzebne jest dla NSPanel, ale i tak opiszę tutaj aktualizację - po prostu sam musiałem aktualizować i tak wyszło.
Wgrywanie Tasmoty
Pierwszym krokiem jest oczywiście wgranie Tasmoty. Tym razem trzeba wybrać dedykowaną wersję dla NSPanel.
Można wgrać przez instalator webowy, wedle mojego tematu:
Jak łatwo zainstalować Tasmotę - instalator online tasmota.github.io/install przez przeglądarkę WWW
Wystarczy konwerter na UART i solidne źródło 3.3V o dobrej wydajności prądowej. Dodatkowo trzeba zewrzeć IO0 do masy, musi być na poziomie masie w trakcie bootowania ESP by uruchomić tryb bootloadera. RST nawet nie lutuję. Tu widać wyprowadzone sygnały programowania, których pady dodatkowo pobieliłem:
Lutowanie tego jest proste. Wystarczy zwykła lutownica kolbowa. Nie trzeba za wysokiej temperatury ustawiać. Czyścimy grot, nakładamy topnik, pobielamy druciki spoiwem ołowiowym, pobielamy pady i lutujemy.
A to mój cały układ do programowania:
W trakcie programowania nie operuję RESETem, po prostu aby wprowadzić w tryb bootloadera zwieram najpierw GPIO 0 do masy a potem odłączam na moment zasilanie. Aby uruchomić normalnie, odłączam zasilanie, rozwieram GPIO 0 i podłączam zasilanie.
Tak jak w zalinkowanym temacie:
https://tasmota.github.io/install/
Wybieramy pożądaną wersję wsadu z listy:
Przeklikujemy proces instalacji:
Teraz trzeba odpiąć IO0 od masy i wykonać reboot! Wtedy pojawi się sieć WiFi Tasmoty:
Konfiguracja Tasmoty
Tak jak w temacie o instalacji webowej - podłączamy się do AP Tasmoty, wpisujemy dane naszego WiFi, potem sprawdzamy czy urządzenie połączyło się z naszą siecią. Wszystko standardowo...
Można tez już wpisać dane naszego MQTT, ja na tym etapie o tym zapomniałem, ale kolejność tego nie jest aż tak kluczowa.
Konfiguracja Tasmoty dla NSPanel
Pora już na konfigurację przeznaczoną bezpośrednio dla NSPanel.
Wykonujemy instrukcję wg:
https://docs.nspanel.pky.eu/prepare_nspanel/
Tam jest wszystko po angielsku oraz tam jest pewnie aktualna wersja procedury, ale poniżej macie relację z tego jak wykonywałem to sam.
Zatem, najpierw w Configure Other wklejamy szablon:
{"NAME":"NSPanel","GPIO":[0,0,0,0,3872,0,0,0,0,0,32,0,0,0,0,225,0,480,224,1,0,0,0,33,0,0,0,0,0,0,0,0,0,0,4736,0],"FLAG":0,"BASE":1,"CMND":"ADCParam 2,11200,10000,3950 | Sleep 0 | BuzzerPWM 1"}
Zaznaczamy Activate by aktywować szablon, warto też nazwać jakoś lepiej nasze urządzenie, zapisujemy ("Save").
Po restarcie powinien się zmienić główny panel:
Teraz trzeba wgrać autoexec.be (Berry Driver):
Pobieramy go stąd:
https://github.com/joBr99/nspanel-lovelace-ui/blob/main/tasmota/autoexec.be
Wgrywamy go poprzez Consoles->File System i tam wybieramy ten plik:
Wrzucone:
Wgrywanie wsadu na kontroler TFT
Teraz trzeba wgrać wsad na kontroler TFT. W tym celu musimy mieć już TFT podłączony do płytki z ESP, inaczej to nie zadziała! Jeśli jeszcze tego nie zrobiliśmy, to trzeba teraz odlutować programator i złożyć w całość produkt. Można już go zasilić z sieci, oczywiście po wcześniejszym jego pełnym złożeniu.
Aby wgrać nowy wsad TFT Nextion w konsoli wpisujemy:
FlashNextion http://nspanel.pky.eu/lui-release.tft
To się nie powiedzie, jeśli nie jest podłączony ekranik. Urządzenie też musi mieć dostęp do internetu, aby móc pobrać plik binarny LUI.
W trakcie flashowania:
Na ekraniku:
I po chwili:
Teraz pora skonfigurować Home Assistant.
Konfiguracja Home Assistant
Potrzebny nam będzie AppDeamon:
https://appdaemon.readthedocs.io/en/latest/HASS_TUTORIAL.html
Na Home Assistant, wchodzimy w dodatki i dodajemy AppDeamon:
Instalujemy:
Następnie musimy go skonfigurować. Najlepiej w trybie Yaml. Trzeba dodać pakiet Babel. Przed zmianami:
my dopisujemy paczkę babel, w ten sposób:
Restartujemy dodatek.
Teraz musimy zainstalować dodatek-sklep HACS, czyli Home Assistant Community Store. Najlepiej zrobić to przez terminal... jeśli jeszcze nie mamy podpiętego terminalu na stronę HA, to też możemy go teraz zainstalować:
Ok, terminal się instaluje, po chwili mamy:
Warto go dodać do pasku bocznego, trzeba go też wystartować.
Od teraz mamy go na pasku:
otwieramy go, pora zainstalować HACS....
Home Assistant - instalacja HACS
HACS instaluje się we wspomnianej już linii komend. Pobierzemy go z internetu poprzez komendę WGET, która automatycznie go też wykona jako skrypt bash. Ten skrypt będzie kontynuować proces instalacji.
Oto komenda instalacyjna HACS:
wget -O - https://get.hacs.xyz | bash -
Na HA wklei ją CTRL + SHIFT + V:
No i tu może być mały problem - jak mamy za stary HA, to nie ruszymy:
Potrzeba co najmniej 2022.11.0.
Home Assistant - aktualizacja Home Assistant (jeśli trzeba)
Jeśli macie aktualny HA, to nie ma problemów, można pominąć ten akapit. Ja nie miałem, więc musiałem wykonać update HA:
Komenda do aktualizacji:
ha core update --backup
Po chwili - sukces:
Home Assistant - instalacja HACS - ciąg dalszy
Jeśli ze skryptu instalacyjnego HACS otrzymujemy bład:
wget: can't open 'hacs.zip': File exists
To musimy przejść do katalogu custom_components i ręcznie usunąć hacs.zip:
Do usuwania służy komenda:
rm hacs.zip
Ponawiamy instalację, tak jak wcześniej, przez WGET:
Gotowe, pora na restart HA.
Teraz normalnie w Addonach i Usługach można dodać addon HACS:
Zapoznajemy się z informacjami o HACS:
Tu warto jest spokojnie przeanalizować każdy z tych punktów, by potem nie było zaskoczenia, jak coś źle skonfigurujemy.
Teraz trzeba będzie aktywować HACS poprzez Github. Potrzebujemy mieć konto na Githubie. W razie czego trzeba się tam zarejestrować, jeśli jeszcze nie mamy konta.
Wykonujemy proces aktywacji, kopiujemy kod:
Wchodzimy na link z Githuba, aktywujemy:
Aktywujemy naszym kontem Github:
Gotowe:
Sklep HACS - instalacja NSPanel
Teraz wreszcie możemy wejść do sklepu HACS:
W jego ustawieniach włączamy AppDeamon apps discovery & tracking:
Dzięki temu pojawi się nam w HACS nowa zakładka - automatyzacje:
Wyszukujemy NSPanel:
Zapoznajemy się z Readme:
Instalujemy:
UWAGA: U mnie po instalacji dalej jest przycisk "Download". To mylące. Ale wygląda na to, że się zainstalowało... więc nie ma potrzeby klikać go ponownie. Po prostu ktoś nie zaktualizował GUI. Po wszystkim ponownie restartujemy HA.
Połączenie MQTT
Zapomniałem o tym, trzeba jeszcze podać Tasmocie namiary na nasze HA, czyli w Configure MQTT:
Tu standardowo, można też zmienić temat (MQTT Topic) urządzenia na np. nspanel_1 bądź wpisać samo nspanel_ i zostawić niech Tasmota sama dokleja adres MAC do tego tematu. Ważne tylko, by się nie pogubić, bo jak pomieszamy tematy to NSPanel się nie sparuje z HA. Oczywiście restartujemy po tym Tasmotę.
Teraz otwieramy File Editor w HA, wyszukujemy appdeamon.yaml:
Doklejamy namiary na MQTT. To są namiary na nasz serwer MQTT, tak aby appdeamon miał do niego dostęp:
MQTT:
type: mqtt
namespace: mqtt
client_id: "appdaemon"
client_host: 192.168.0.113
client_port: 1883
client_user: "homeassistant"
client_password: "ma1oovoo0pooTie7koa8Eiwae9vohth1vool8ekaej8Voohi7beif5uMuph9Diex"
client_topics: NONE
Po naszych zmianach:
Teraz musimy do apps dopisać MQTT topic naszego panelu. Wcześniej go zmieniałem, wraz z adresem MAC wychodzi:
nspanel_87C448
Pełną nazwę pokazuje Tasmota, zarówno na stronie konfiguracyjnej, jak i w logu:
Wklejamy tam podstawową konfigurację NSPanel:
nspanel-1:
module: nspanel-lovelace-ui
class: NsPanelLovelaceUIManager
config:
panelRecvTopic: "tele/nspanel_87C448/RESULT"
panelSendTopic: "cmnd/nspanel_87C448/CustomSend"
model: eu
Można jeszcze dopisać spolszczenie i kilka dodatkowych ustawień:
nspanel-1:
module: nspanel-lovelace-ui
class: NsPanelLovelaceUIManager
config:
panelRecvTopic: "tele/nspanel_87C448/RESULT"
panelSendTopic: "cmnd/nspanel_87C448/CustomSend"
model: eu
locale: "pl_PL"
updateMode: "auto-notify"
sleepTimeout: 20
W razie czego, tutaj macie aktualną angielskojęzyczną dokumentację tego procesu:
https://docs.nspanel.pky.eu/configure_mqtt/
Widoki NSPanel
Ekran NSPanel jest naprawdę w pełni konfigurowalny - tu nie ma nic na sztywno! Możemy na ekran wrzucić dowolny widok z Home Assistant.
O szczegółach można poczytać w dokumentacji pod zakładką konfiguracji YAML:
https://docs.nspanel.pky.eu/config-overview/
Spróbujmy coś z tego wykonać. Na próbę dodamy pogodę. Kojarzycie ten widget z pogodą z głównego ekranu HA?
W jego ustawieniach jest widoczne jego entity id:
To ID można podpiąć na nasz panel. Zarówno jako ekran domyślny (wygaszacz ekranu), jak i jeden z widoków.
Otwieramy appdeamon/apps/apps.yaml i wklejamy:
nspanel-1:
module: nspanel-lovelace-ui
class: NsPanelLovelaceUIManager
config:
panelRecvTopic: "tele/nspanel_1/RESULT"
panelSendTopic: "cmnd/nspanel_1/CustomSend"
model: eu
locale: "pl_PL"
updateMode: "auto-notify"
sleepTimeout: 20
screensaver:
entity: weather.dom
Wy możecie mieć inne id niż moje weather.dom, więc w razie czego to sprawdźcie.
Rezultat, po restartach:
Ale to dopiero początek. W ten sam sposób można na ekran dać praktycznie wszystko. Chociażby możemy wziąć dowolne entity z Home Discovery, np. LEDówkę RGBCW z OpenBeken:
Wpisujemy jej ID do przykładowej karty, poniżej cały kod:
nspanel-1:
module: nspanel-lovelace-ui
class: NsPanelLovelaceUIManager
config:
panelRecvTopic: "tele/nspanel_1/RESULT"
panelSendTopic: "cmnd/nspanel_1/CustomSend"
model: eu
locale: "pl_PL"
updateMode: "auto-notify"
sleepTimeout: 20
screensaver:
entity: weather.dom
cards:
- type: cardEntities
entities:
- entity: light.obk_n_rgbcw
title: Example 1
- type: cardGrid
entities:
- entity: light.obk_n_rgbcw
title: Example 2
Zapisujemy, restart, no i proszę:
Prezentacja działania na filmiku:
A teraz dodajmy jeszcze jakiś pomiar energii. Tym razem z symulatora OBK:
Na liście entities możemy sobie wyszukać dostępne encje z tego urządzenia (trochę tu tych encji mam, dodawałem je na próbę):
Przepisujemy ich nazwy:
Zapisujemy i... sukces:
No dobra, prawie, ucięło nam stan włącznika... można go przenieść do następnej karty w ten sposób:
Na koniec warto zacytować dokumentację widoków i pokazać co jest możliwe:
Kompilacja różnych widoków:
Na wersji US:
Źródło: https://docs.nspanel.pky.eu/#features
Podsumowanie
Troszkę było pracy z konfiguracją, nawet musieliśmy zmieniać wsad nie raz, a dwa razy (raz wsad ESP32 a potem wsad kontrolera TFT), ale mimo wszystko się udało i mamy pełny sukces. Teraz możemy wyświetlać dowolne widoki na naszym wyświetlaczu oraz dowolnie sterować urządzeniami z HA poprzez ten wyświetlacz. Ogranicza nas chyba tylko wyobraźnia.
Normalnie w tym miejscu opisałbym jeszcze jakie trudności napotkałem przy flashowaniu i łączeniu wszystkiego z HA, ale tym razem naprawdę wszystko poszło sprawnie i bezproblemowo.
Zasadniczo jedynym dodatkowym krokiem który musiałem wykonać była aktualizacja mojego HA (co ująłem w temacie), ale to i tak miałem już dawno zrobić, więc jest to zrozumiałe.
W razie czego, dokumentacja na której bazowałem jest tutaj:
- https://docs.nspanel.pky.eu/ , a zwłaszcza:
- https://docs.nspanel.pky.eu/prepare_nspanel/
- https://docs.nspanel.pky.eu/prepare_ha/
- https://docs.nspanel.pky.eu/config-overview/
Zapraszam do dyskusji - co sądzicie o tego typu rozwiązaniach, jakiego rodzaju widzicie tu potencjalne zastosowania, a może ktoś już ma zamontowany NSPanel i pochwali się jego zdjęciami bądź krótkim filmikiem?
Fajne? Ranking DIY Pomogłem? Kup mi kawę.
