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

23 komentarze do “Tasmota i MQTT w Domoticz”

  1. Pozostaje kwestia uaktualnienia statusu sonoffa w domoticz, któremu w czasie braku łączności z serwerem zostal zmieniony status przyciskiem fizycznym.
    Masz na ti jakieś rozwiązanie?
    Pozdrawiam

  2. Hmmm. Nie jestem (jeszcze) specem w MQTT, ale czy on na bieżąco nie wysyła statusów urządzeń? Sprawdzę z chęcią

  3. 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.
    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.

  4. Jak przesłać dane w drugą stronę? Z domoticza do esp tak żeby widoczne były jako wirtualny sensor.

  5. Jak wchodzimy do "Wchodzimy, przez stronę, w konfigurację i wybieramy Configure MQTT." Skąd mam widzieć jaki ma adress IP?

  6. 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

  7. 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.

  8. Cześć
    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

  9. Czy jest możliwość wysłania danych z Tasmota do dwóch domoticzów?
    Na Espeasy można, ale nie wiem jak to zrobić na Tasmota

  10. Wchodzimy, przez stronę, w konfigurację i wybieramy Configure MQTT
    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ę ???

  11. Potrzebuję z domoticz wysterować 5 przekaźników na tasmota.
    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.

  12. 51 year old Electrical Engineer Aarika Saphin, hailing from Baie-Comeau enjoys watching movies like Radio Free Albemuth and Painting. Took a trip to Madriu-Perafita-Claror Valley and drives a Alfa Romeo 8C 2900B Pinin Farina Cabriolet. przeglad strony

Możliwość komentowania została wyłączona.