Home Assistant – migracja z Tasmota na ESPHome

Dzień dobry.

Jako że lubię testować i sprawdzać co się da – postanowiłem sprawdzić ESPHome, skoro już zdecydowałem na przejście na Home Assistant, a akurat ESPHome świetnie się z nim integruje. Do tego – ma dość ciekawe podejście do tematu.

Aby dowiedzieć się wszystkiego polecam wizytę na stronie https://esphome.io/.

Na większości sprzętów Sonoff (oprócz czujnika smogu) przeszedłem już na Tasmota, ESPHome pozwala na bezbolesną migrację z Tasmota (ale również z ESPEasy). Opisane wszystko jest na stronie: https://esphome.io/guides/migrate_sonoff_tasmota.html. Konfiguracja przy użyciu Tasmota i MQTT nie jest jakoś specjalnie skomplikowana, ale używając ESPHome, faktycznie jest to kilka kliknięć i wpisów (mam plik lovelace-ui.yaml edytowany ręcznie).
Najpierw dodajemy repozytorium:

Dodajemy do Home Assistant:

Po starcie wybieramy Open WEB UI:

Jedynym zgrzytem było to, że musiałem zainstalować nowy kernel na moim Raspberry Pi 4, ponieważ bez tego nie mogłem skompilować plików do wgarnia na Sonoffy. 
Nie było to jakoś magicznie trudne.
sudo apt-get install raspi-config

sudo apt-get install rpi-update

uname -a

Po tej operacji kompilacja plików przeszła już bezboleśnie.

Plik .bin wgrałem do Sonoff Basic:

Encje pojawiły się w integracji i można było je dodać do Home Assistant.

Bardziej dla mnie, konfiguracja SDS011 na przyszłość, ale chyba pozostanę przy ESPEasy.
uart:
  rx_pin: D0
  tx_pin: D6
  baud_rate: 9600
sensor:
  – platform: sds011
    pm_2_5:
      name: „Particulate Matter <2.5µm Concentration”
    pm_10_0:
      name: „Particulate Matter <10.0µm Concentration”
    update_interval: 30min


Sonoff TH16, wodoodporny DS18B20 oraz Domoticz. No i Gexon…

Dzień dobry!

Dzisiaj kolejna rzecz z tych 'nie jest mi to do niczego potrzebne, ale zrobię'. Tym razem NAPRAWDĘ nie jest mi to do niczego przydatne, ale skoro się da – to zrobię 😀

Nabyłem swego czasu kolejny włącznik Sonoff. Tym razem TH16, wraz z wodoodpornym termometrem DS18B20. Miałem ambicję wykorzystać jeden z takich, które posiadam, ale słusznie obawiałem się, że nie poradzę sobie z lutowaniem 'poczwórnego jacka'. Kupiłem więc gotowy.

Tym razem sprawdzenie odbyło się w towarzystwie naszego Bojownika (ochrzczonego przez córkę imieniem Gexon). Akurat ta rybka jest bezproblemowa, nie potrzebuje zbyt wiele opieki i jakoś bardzo stabilnego środowiska, ale jak najbardziej wyobrażam sobie użycie tego rozwiązania w przypadku większych akwariów, terrariów czy jakiegokolwiek innego miejsca wymagającego stabilizacji temperatury.

Wgranie oprogramowania alternatywnego opisałem już w innych postach: http://blog.asobczak.pl/2018/08/12/sonoff-pow-zmieniamy-oprogramowanie-na-alternatywne-i-przy-okazji-przekonujemy-sie-ze-warto-byc-upartym/, jedyne co mi przyszło do głowy przy tej operacji to fakt, że nawet nie wiem jak wygląda oryginalne oprogramowanie w Sonoff 😀

Konfiguracja również standardowa, jak poniżej.

Teraz pozostaje albo napisać skrypt w dzVents, albo na szybko coś w Blockly. Rozumieć przez to należy, że poprzez monitorowanie temperatury możemy od razu załączać ten sam włącznik, do którego jest podłączony termometr.

DS18B20 nie jest jedynym który można podłączyć, poza tym on mierzy wyłącznie temperaturę. Inne, jak AM2301 oraz Si7021 mierzą również wilgotność.

ESP8266, aktualizacja oprogramowania Tasmota

Oj, jak ja lubię aktualizować… Oprogramowanie tu, tam, jakoś tak zawsze staram się mieć zainstalowane najnowsze wersje. Dobrze to czy źle – kwestia osobista, 
Dotarło do mnie, że Sonoff Pow ma starszą wersję. Zmian jest mnóstwo (poprawki, dodane nowe obsługiwane sprzęty), do poczytania między innymi tutaj: https://github.com/arendst/Sonoff-Tasmota/wiki/What’s-New.
Tak w ogóle podjąłem decyzję, że na wszystkie Sonoff’y (oprócz, jak na razie, czujnika smogu) wgram oprogramowanie Tasmota.
Czyli do gniazdek, Basic, Pow – zamiast ESPEasy – Tasmota.
Aby zaktualizować, przechodzimy do Firmware Upgrade.
Najnowsze wersje oprogramowania znajdziecie zawsze na stronie: https://github.com/arendst/Sonoff-Tasmota/releases. Z ciekawości – człowiek zawsze jakąś głupotę walnie… Nie wiem co mną kierowało, ale flashując Sonoff Basic, wybrałem również taką wersję Tasmota (no, trochę to logiczne i bardzo się później zdziwiłem, że nie mam zakładki do konfiguracji Domoticz. Jak się okazało – to obcięta, minimalna wersja oprogramowania. Po wgraniu Classic wszystko powróciło do stanu poprzedniego.
Kontynuując, wybieramy odpowiednią wersję:
I po kilku sekundach możemy się cieszyć nową wersją oprogramowania.

I to by było na tyle, cytując klasyka.

Nowe gadżety do okiełznania ! Sonoff POW, Sonoff S26, OLED

Urlop chwilę trwał. A podczas niego poczta nie próżnowała! Możecie się wkrótce spodziewać opisów następujących urządzeń:

– czujniki odległości
– Geekcreit NodeMcu Lua ESP8266
– Geekcreit OLED 0.96 cala, rozdzielczość 128 x 64 pixele

– nowe gniazdka Sonoff  S26

– Sonoff POW V1

Czeka mnie lutowanie, flashowanie, wgrywanie, kasowanie, testowanie, sprawdzanie. Czyli to, co tygrysy lubią najbardziej 😀

Tasmota i MQTT w Domoticz

Dzień dobry. A może dobry wieczór?

W jednym z poprzednich wpisów opisałem sposób załadowania alternatywnego (albo głównego – zależy od podejścia) oprogramowania do sprzętów Sonoff. Piszę sprzętów, ponieważ ich oferta jest dość bogata i stale się powiększa. Sonoff Basic, Sonoff TH (z termometrem), Sonoff Pow (z pomiarem energii), Sonoff G1 (z miejscem na kartę SIM, dla kontaktu w miejscach bez WiFi), gniazda Sonoff S20, Sonoff Touch (naścienne włączniki zdalne), sterowane uchwyty do żarówek – 'żyć, nie umierać', jak to mówią.

Do roboty!

Po pierwsze, jak zawsze, aktualizujmy nasz system. Ja ciągle opieram się na raspbian Jessie, w tym przypadku różnic jednak nie powinno być.

sudo apt-get update
sudo apt-get upgrade

I teraz chwila wstępu. Czym jest MQTT i czemu jest używany? Cytując Wikipedię : 'oparty o wzorzec publikacja/subskrypcja, ekstremalnie prosty, lekki protokół transmisji danych. Przeznaczony jest do transmisji dla urządzeń niewymagających dużej przepustowości. Poprzez ograniczenie prędkości transmisji, protokół zapewnia większą niezawodność. Protokół ten idealnie sprawdza się przy połączeniach maszyna-maszyna, w internecie rzeczy (IoT), w urządzeniach mobilnych, oraz tam, gdzie wymagana jest oszczędność przepustowości, oraz energii.'

Tasmota korzysta akurat z MQTT.

Czyli jest serwis, który nasłuchuje, oczekuje i wysyła pewne komunikaty. W Domoticz obsługa tego protokołu jest zaimplementowana w szczątkowy sposób, ale jest. Jeżeli chcielibyśmy z niego korzystać w większym stopniu, musimy się przygotować do przejścia na Home Assistant.

Przystępujemy do instalacji Mosquitto, najpopularniejszego brokera na Raspberry Pi.

sudo apt-get install mosquitto mosquitto-clients

W sumie tyle – już działa 🙂
Wystarczy skonfigurować użytkownika, nadać mu hasło za pomocą komendy:
sudo mosquitto_passwd -c /etc/mosquitto/passwd [username]
I możemy 'podsłuchiwać' co się dzieje na naszym kanale.
Komenda która podsłucha wszystkie kanały to:
mosquitto_sub -h localhost -t „#” -u „username” -P „password” -v
’#' Oznacza wszystkie w tym przypadku.
Przy okazji – ponownie podziękowania dla Macieja za pomoc przy ogarnięciu tematu.
Jak widać – komunikaty już sobie 'latają'. Obrazek trochę wyprzedza późniejszą konfigurację – bez skonfigurowania MQTT na Sonoff żaden komunikat oczywiście nie zostanie wysłany…
Skonfigurujmy Domoticz, aby obsługiwał MQTT.
Zaczynamy od Hardware, dodajemy 'MQTT Client Gateway with LAN interface', podając tam dane brokera MQTT. Podajemy IP, port (domyślnie 1883), wcześniej założonego użytkownika i hasło. Publish Topic zostawiamy na Out.
Następnie tworzymy Virtual Switch i zapamiętujemy jego IDX.
Jak widać, Domoticz już wysyła komunikaty:
Teraz skupimy się na naszym włączniku Sonoff i wgranym sofcie Tasmota.
Wchodzimy, przez stronę, w konfigurację i wybieramy Configure MQTT.

Podajemy nasze parametry MQTT.

Następnie Configure Domoticz i w Idx 1 podajemy IDX naszego Switcha. Jeżeli macie inne wersje Sonoff (z termometrem, licznikiem zużycia energii, itp.) musicie podać Wasze IDX odpowiednich czujników w Domoticz.

Po zapisaniu od razu można użyć przełącznika w Domoticz, będzie współpracował z MQTT.
Mission accomplished!
Ku pamięci (bardziej mojej). Można stworzyć pliki konfiguracyjne, jeżeli ich potrzebujecie.
sudo nano /etc/mosquitto/conf.d/mosquitto.conf

I kopiujemy:

# Config file for mosquitto
#
# See mosquitto.conf(5) for more information.

user mosquitto
max_queued_messages 200
message_size_limit 0
allow_zero_length_clientid true
allow_duplicate_messages false

listener 1883
autosave_interval 900
autosave_on_changes false
persistence true
persistence_file mosquitto.db
allow_anonymous true
password_file /etc/mosquitto/passwd

Gniazdko Sonoff S20 i Tasmota – na dzień dobry rozwiązanie problemu

Blogowanie ma wiele plusów. Raz, że można przelać własne myśli na 'papier', a dwa – poznaje się fajnych i ambitnych ludzi. I jedna taka osoba (Maciej – Ty wiesz ;)) zmotywowała mnie do wypróbowania innego softu do ESP8266, który jest wykorzystywany w urządzeniach firmy Sonoff. Czy to Sonoff Basic, czy też Sonoff S20. Wcześniej opierałem się głównie na na ESPEasy, teraz Maciej zasugerował Tasmota. To będzie również przyczynkiem do skonfigurowania i zapoznania się z MQTT, który – było nie było – jest standardem w IoT.
UWAGA. Jak się sam na swojej skórze przekonałem – są różne gniazdka dedykowane na Europę. W Polsce trzeba wybrać typ https://www.worldstandards.eu/electricity/plugs-and-sockets/e/. Ja, żeby było zabawniej i niezbyt prosto – kupiłem oczywiście wersję F – czyli wtyczka nie pasuje do gniazdek z bolcem. Cóż… Człowiek się czasem uczy na własnych błędach…

Gniazdko jakie jest – każdy widzi. Tutaj wielkich różnic nie ma w stosunku do gniazdek na RF lub Xiaomi. No, Xiaomi jest mniejsze, ale wymaga przejściówki.

UWAGA 2! Dużo ważniejsza niż poprzednio. Gniazdko pracuje na 230 Volt. Czyli, przy nieodpowiedniej pracy można zginąć albo spalić na ten przykład mieszkanie. Zalecam daleko idącą ostrożność, obserwowanie działania i zachowania – czy zbytnio się nie grzeje, czy nie ma przebić, źle dokręconych lub dolutowanych kabli.

Po rozkręceniu, w lewym dolnym rogu, widać cztery otwory. Teoretycznie wypadałoby tam wlutować piny. Ale akurat w przypadku tego gniazdka nie ma takiej potrzeby. Przy odrobinie sprytu można przeprogramować układ samemu.

Najnowsza wersja Tasmota zawsze pod adresem: https://github.com/arendst/Sonoff-Tasmota/releases. Pobieramy i przygotowujemy się do programowania. Ja napisałem krótki skrypt, wykorzystałem esptool z ESPEasy. Jest nawet polska wersja Tasmota (wtedy musicie zmienić nazwę z sonoff.bin na Waszą, albo odwrotnie ;)).

Połączenia pinów to (w Sonoff S20 liczę od żółtego elementu. Wstyd się przyznać, ale nie wiem co to…):
RXI -> 2
TX0 -> 3
VCC -> 4
GND -> 1

Czyli jakby 'odwrotnie' do tego co jest w Sonoff Basic.

I teraz wymagana odrobina zręczności pawiana. Prawą ręką przytrzymujemy kable oraz wciskamy przycisk. Po podłączeniu programatora to on wprowadzi ESP w tryb programowania. Gdy zaświeci się niebieskie światło – możemy puścić przycisk. Moje kable działają nawet jeżeli ich nie trzymam…

Uruchamiamy nasz przygotowany skrypt. Programowanie przebiega identycznie jak w przypadku ESPEasy.
I teraz kolejny problem. Wgrałem. Drżącymi ręcami włożyłem do przedłużacza. No, jak już znalazłem taki bez bolca…
I nic. Zamrugał na zielono i tyle. Standardowego Access Pointa ani widu, ani słychu. Tyle, że wiedziałem, że dobrze wgrałem, ponieważ przycisk działał, a to znaczyło, że Tasmota od razu zamapowała sobie GPIO. Ogromny plus. Dla przypomnienia, w ESPEasy i Sonoff Basic – musieliśmy pisać kod w Rules, aby obsłużyć GPIO. Tutaj zasada jest taka sama – w przypadku ESPEasy musielibyśmy tak zrobić. Tasmota obsługuje ten przypadek 'od strzału'.
’Spaliłem WiFi' – pomyślałem. 
Dla pewności wgrałem znane mi już ESPEasy. Żadnej sieci ESP, jakiej wersji bym nie wgrywał.
’Cóż, wejdzie w koszty nauki. Ładnie świeci, to chociaż tyle'.
Wzmiankowany tutaj Maciej zasugerował mi coś innego – 'Wbijaj do niego przez COM’a i ustaw sieć WiFi ręcznie. Może się uda'. Podał mi następujący sposób:
– instalujemy Termite (Putty nie podołał – ekran przy tych samych parametrach był 'rozjechany')
– wprowadzamy nasz port COM (u mnie jak widać COM8) i prędkość
– łączymy się z Sonoff
– na samym dole jest pasek z możliwością wpisania komendy
– SSId <WaszeIDSieciBezprzewodowej>, Enter
– Password <WaszeHasłoDoSieciBezprzewodowej>, Enter

ZA DZIA ŁA ŁO! Podłączył się do sieci od razu, włączenie przełącznika również zadziałało. Dobrze posłuchać mądrego.

Na dzisiaj tyle. Dłuższy opis Tasmota w kolejnym wpisie. I przy okazji na pewno MQTT aby dostać się do Domoticz.