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 sekcji Hardware (ponownie) tworzymy kolejny element typu Dummy, z jego poziomu tworzymy Virtual Switch i zapamiętujemy jego IDX. Można również wykorzystać już istniejące. U mnie są ogólnie nazwane ESP.
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.
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.
W sekcji Hardware (ponownie) tworzymy kolejny element typu Dummy, z jego poziomu tworzymy Virtual Switch i zapamiętujemy jego IDX. Można również wykorzystać już istniejące. U mnie są ogólnie nazwane ESP.
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. Dla pewności - adres IP naszego Sonoff (jak i innych sprzętów możemy znaleźć za pomocą na przykład za pomocą programu Advanced IP Scanner - http://www.advanced-ip-scanner.com). Ten adres IP musimy później podać w przeglądarce internetowej.
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
Pozostaje kwestia uaktualnienia statusu sonoffa w domoticz, któremu w czasie braku łączności z serwerem zostal zmieniony status przyciskiem fizycznym.
OdpowiedzUsuńMasz na ti jakieś rozwiązanie?
Pozdrawiam
Hmmm. Nie jestem (jeszcze) specem w MQTT, ale czy on na bieżąco nie wysyła statusów urządzeń? Sprawdzę z chęcią
UsuńWedług mnie urządzenie powinno co jakiś czas wysyłać status do serwera (cos na zasadzie timera) a w tej chwili tak nie jest.
OdpowiedzUsuńSpróbuj tak:
Ustaw sonoffa aby domoticz wyswietal aktualny status urzadzenia.
Odłącz serwer domoticz aby nie miał komunikacji z urzadzeniem.
Jezeli jestes pewien, że brak jest polaczenia zmień stan urzadzenia przyciskiem fizycznym.
Wznów połączenie z serwerem.
Sprawdz status-bedzie inny niz na urzadzeniu.
Dopiero po dwukrotnym kliknieciu aktualizuje się prawidlowy status.
U mnie status po ponownym podłaczeniu do sieci sie sam aktualizuje
OdpowiedzUsuńJak przesłać dane w drugą stronę? Z domoticza do esp tak żeby widoczne były jako wirtualny sensor.
OdpowiedzUsuńCześć. Kolega Łukasz opisał to dobrze w tym wpisie: https://blog.jokielowie.com/2016/04/domoticz-cz-3-1-esp-easy-na-esp8266-dodajemy-wyswietlacz-oled-dht22-oraz-bh1750/
UsuńJak wchodzimy do "Wchodzimy, przez stronę, w konfigurację i wybieramy Configure MQTT." Skąd mam widzieć jaki ma adress IP?
OdpowiedzUsuńJa używam Advanced IP Scanner: http://www.advanced-ip-scanner.com/, ale każdy znajdzie program, który my najbardziej pasuje. Możesz nawet użyć w konsoli sudo arp-scan -l i dostaniesz listę adresów IP z adresami MAC.
UsuńTen komentarz został usunięty przez autora.
OdpowiedzUsuńA dla czego nie użyłeś softu Easyesp?
OdpowiedzUsuńHmmm. Aby spróbować Tasmota. W innych projektach użyłem EasyEsp, na przykład w czujniku smogu.
UsuńWitam Czarku, mam problem otóż tworząc 'MQTT Client Gateway with LAN interface',nie mam zakładki do utworzenia Virtual Switch. Czy coś spartoliłem czy coś innego mógł byś mi podpowiedzieć. Pozdrawiam Piotr
OdpowiedzUsuńDobry wieczór. Zgubił mnie 'skrót myślowy'. Virtual Switch nie tworzysz z poziomu MQTT Gateway, a jakiegokolwiek innego Hardware - ja sobie go nazwałem na po prostu ESP. Zaktualizowałem wpis, aby wszystko było jasne.
UsuńCześć
OdpowiedzUsuńW swoim przepisie podajesz:
"Zaczynamy od Hardware, dodajemy 'MQTT Client Gateway with LAN interface', podając tam dane brokera MQTT. Podajemy IP,"
Rozumiem że to jest przykład ale... czy to ma być adres IP Domoticza (mam na Raspberry) czy może zostanie wykreowany nowy interfejs na Raspberry i do obsługi MQTT będzie używany ten ekstra adres.
Pozdrawiam
Wszystko zależy od tego, gdzie zainstalowałeś Mosquitto.
UsuńCzy jest możliwość wysłania danych z Tasmota do dwóch domoticzów?
OdpowiedzUsuńNa Espeasy można, ale nie wiem jak to zrobić na Tasmota
Osobiście nie potrafię, ale może ktoś będzie mógł doradzić.
UsuńWchodzimy, przez stronę, w konfigurację i wybieramy Configure MQTT
OdpowiedzUsuńAle gdzie i jak,wiele osób zaczynających w tym temacie to raczej nie dojdzie co z czym,sam jestem ciekaw gdzie mam wejść,na jaka stronę ???
Dzień dobry. Dziękuję za sugestię! Uzupełniłem wpis. Ja osobiście korzystam z programu Advanced IP Scanner (http://www.advanced-ip-scanner.com)
UsuńWitam
OdpowiedzUsuńA jesli ktoś ma gotowy obraz ze strony https://www.smartnydom.pl/domoticz-obraz/ to jak skonfigurować brokera żeby podłaczyć sonoffa na sofcie tasmota?
Z opisu na stronie wynika, że wszystko powinno tam być skonfigurowane...
UsuńPotrzebuję z domoticz wysterować 5 przekaźników na tasmota.
OdpowiedzUsuńSterowanie chćę zrobić na mqtt.
Sterowanie przekaźnikami skonfigurowane, ale mqtt mogę dodać tylko do 4 przekaźników. Piąty już się nie pokazuje na liście konfiguracji domoticza, gdzie się podaje idx wirtualnego przełącznika.
u mnie status aktualizuje się po ponownym podłączeniu do sieci
OdpowiedzUsuńpotrzebuje pomocy w skonfigurowaniu tasmoty i domoticz. Ustawiłem tasmota mqtt na parametrach dla domoticz i pomimo tego nie odbiera nic. Wskazania ciągle 0. staram się wysłać dane z esp tasmota Waga hx711- na tasmota podaje wskazania ale konfiguracja w domoticzu nic nie odbiera.
OdpowiedzUsuńTen wpis jest dla mnie bardzo interesujący
OdpowiedzUsuń