Witam serdecznie, tak jak pisałem w innym temacie chciałem przeinstalować od zera HA i tak też uczyniłem gdyż nie mogę sprawić, żeby mqqt współpracował z afe co zaczyna być już flustrujące. Męczę się już ponad 10 dni z konfiguracją wydawać by się było prostej rzeczy, a mianowicie integracja jednego przełącznika z Home Assistant po MQTT. Przeczytałem już masę tutoriali, poradników, tematów na forach i wydawać by się mogło, że powinno działać bez problemów 😠
Mam najnowszą wersję HA bodaj 3.10, z wtyczek zainstalowałem tylko configurator, ale nic jeszcze nie zmieniałem w plikach yaml oraz Mosquitto.
Maszyna ma stały adres ip przypisany z DHCP.
I teraz do rzeczy, konfiguracja mosquitto wygląda tak:
natomiast konfiguracja AFE tak:
Po instalacji brokera wkleiłem tylko configa z pierwszego linka, następnie odpaliłem wtyczkę i w integracjach pojawił się mosquitto na samej górze - konfiguracja po kliknięciu wygenerowała się sama, ja tylko zaznaczyłem dodatkowo autowykrywanie.
Po restarcie malinki dostaję taki oto komunikat:
Natomiast jak wejdę w integracje > mqqt :
Podgląd logów mosquitto jest następujący:
ps. aha próbowałem tak samo z anonymous: false, wtedy jeszcze wrzucam w config mqqt login i pass, które jeszcze wklejam do AFE - ale efekt jest ten sam.
ps2 czekam na wasze propozycje 🙂
A gdzie masz skonfigurowanego użytkownika na, którego się logujesz do MQTT.
Jak jest anonymous true to nigdzie i chyba powinno tak działać? Jak sprawdzałem z użytkownikiem to wpisy były tylko w konfiguracji pluginu mosquitto w sekcji logins oraz w urządzeniu afe. Nie było nic konfigurowane po stronie ha.
Nie wiem gdzie błędu szukać - niby wszystko jest a nie działa ...
Czy AFE mam dobrze ustawione ? Muszę jakoś zawęzić pole poszukiwania.
popróbujmy odszukać problem (nie używam HA więc trochę w ciemno)
- czy mosquitto działa - łączy się z nim urządzenie z AFE - spróbujmy posterować nić z poziomu linii komend
mosquitto_pub -h adres_ip_gdzie_masz_mqtt_broker -p 1883 -t -u nazwa_uzytkownika -P haslo "dom/hol/swiatlo/cmd/cmd" -m "toggle"
Jeśli nie masz klienta mosquitto zainstalowanego
sudo apt-get install mosquitto-clients
W mosquito zostaw domyślną konfigurację, natomiast dodaj to jeśli nie masz do configuration.yaml
mqtt:
discovery: true
discovery_prefix: homeassistant
broker: ip
port: 1883
username: xxxxx
password: xxxxx
wpisz swój adres ip nazwę i hasło.
@lukas121
Dodałem to co mi napisałeś do konfiguracji w pliku yaml - w zasadzie wklejam cały plik gdyż nic tam praktycznie nie ma:
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:
# Uncomment this if you are using SSL/TLS, running in Docker container, etc.
# http:
# base_url: example.duckdns.org:8123
# Text to speech
tts:
- platform: google_translate
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
# Example configuration.yaml entry
mqtt:
discovery: true
discovery_prefix: homeassistant
broker: 192.168.1.100 // tutaj podaję IP malinki na którym jest zainstalowany mosquitto
port: 1883
username: adam // nie tworzyłem specjalnie usera pod mqtt - ten user i hasło jest moim kontem administracyjnym
password: moje_hasło
a brokera moquitto przywróciłem do ustawień fabrycznych, czyli takich:
logins: []
anonymous: false
customize:
active: false
folder: mosquitto
certfile: fullchain.pem
keyfile: privkey.pem
require_certificate: false
Zrestartowałem serwer, w logach pojawiły się takie wpisy:
[08:09:47] INFO: Setup mosquitto configuration [08:09:47] WARNING: SSL not enabled - No valid certs found! [08:09:47] INFO: No local user available [08:09:48] INFO: Initialize Hass.io Add-on services [08:09:48] INFO: Initialize Home Assistant discovery [08:09:48] INFO: Start Mosquitto daemon 1581750589: mosquitto version 1.6.3 starting 1581750589: Config loaded from /etc/mosquitto.conf. 1581750589: Loading plugin: /usr/share/mosquitto/auth-plug.so 1581750589: |-- *** auth-plug: startup 1581750589: ├── Username/password checking enabled. 1581750589: ├── TLS-PSK checking enabled. 1581750589: └── Extended authentication not enabled. 1581750589: Opening ipv4 listen socket on port 1883. 1581750589: Opening ipv6 listen socket on port 1883. 1581750589: Opening websockets listen socket on port 1884. 1581750589: Warning: Mosquitto should not be run as root/administrator. 1581750589: New connection from 192.168.1.7 on port 1883. [INFO] found adam on Home Assistant 1581750592: New client connected from 192.168.1.7 as wl-korytarz (p2, c1, k15, u'adam'). 1581750593: New connection from 192.168.1.100 on port 1883. 1581750594: Socket error on client <unknown>, disconnecting. 1581750594: New connection from 192.168.1.100 on port 1883. 1581750594: New client connected from 192.168.1.100 as auto-509EB64A-7FE7-EAD9-5676-1CE087551CDD (p2, c1, k60, u'adam'). 1581750596: New connection from 172.30.32.1 on port 1883. 1581750597: Socket error on client <unknown>, disconnecting. 1581750597: New connection from 172.30.32.1 on port 1883. [INFO] found homeassistant on local database 1581750598: New client connected from 172.30.32.1 as auto-F56EE82B-50CA-A250-B2BD-4FFD8009D3EB (p2, c1, k60, u'homeassistant'). 1581750599: New connection from 192.168.1.7 on port 1883. 1581750599: Client wl-korytarz already connected, closing old connection. 1581750599: New client connected from 192.168.1.7 as wl-korytarz (p2, c1, k15, u'adam'). 1581750757: Client auto-509EB64A-7FE7-EAD9-5676-1CE087551CDD disconnected. 1581750759: Socket error on client auto-F56EE82B-50CA-A250-B2BD-4FFD8009D3EB, disconnecting. 1581750800: New connection from 192.168.1.100 on port 1883. 1581750800: New client connected from 192.168.1.100 as auto-CC5FA786-C2B5-1679-7CFC-0F6D19451F85 (p2, c1, k60, u'adam'). 1581751628: New connection from 172.30.32.1 on port 1883. [INFO] found adam on Home Assistant 1581751631: New client connected from 172.30.32.1 as mosq-gEUglKG3UmLuwUTIh6 (p2, c1, k60, u'adam'). 1581751631: Client mosq-gEUglKG3UmLuwUTIh6 disconnected. 1581751767: New connection from 172.30.32.1 on port 1883. 1581751767: New client connected from 172.30.32.1 as mosq-R2A8gjTTcDUzcNWCrp (p2, c1, k60, u'adam'). 1581751767: Client mosq-R2A8gjTTcDUzcNWCrp disconnected. 1581752389: Saving in-memory database to /data/mosquitto.db. 1581752743: New connection from 172.30.32.1 on port 1883. [ERROR] Auth error with adam 1581752748: Socket error on client <unknown>, disconnecting. 1581752763: New connection from 172.30.32.1 on port 1883. [INFO] found adam on Home Assistant 1581752766: New client connected from 172.30.32.1 as mosq-txGmWlUJoP0U8aQ4ma (p2, c1, k60, u'adam'). 1581752766: Client mosq-txGmWlUJoP0U8aQ4ma disconnected. 1581752769: New connection from 172.30.32.1 on port 1883. 1581752769: New client connected from 172.30.32.1 as mosq-ljngcirp4BdciQcwYu (p2, c1, k60, u'adam'). 1581752769: Client mosq-ljngcirp4BdciQcwYu disconnected. 1581752771: New connection from 172.30.32.1 on port 1883. 1581752771: New client connected from 172.30.32.1 as mosq-4pMUgdmEdEBlNdnyfa (p2, c1, k60, u'adam'). 1581752771: Client mosq-4pMUgdmEdEBlNdnyfa disconnected. 1581752772: New connection from 172.30.32.1 on port 1883. 1581752772: New client connected from 172.30.32.1 as mosq-RdqygmlfGEPmjvoTYg (p2, c1, k60, u'adam'). 1581752772: Client mosq-RdqygmlfGEPmjvoTYg disconnected.
W integracjach nic nowego się nie pojawiło, a w skonfigurowanych kiedy kliknę na MQTT pojawia się : Ta integracja nie ma żadnych urządzeń.
Jeśli chodzi o sprawdzenie to wygląda to tak, że musiałem trochę zmienić tą komendę i wklepałęm to:
mosquitto_pub -h 192.168.1.100 -p 1883 -u adam -P moje_hasło -t "dom/hol/swiatlo/cmd/cmd" -m "toggle"
Zadziałało i światło się zapala i gasi w zależności od poprzedniego stanu 🙂
Czyli broker działa prawidłowo, tylko po stronie HA czegoś brakuje ??
gdzieś w HA takie coś powinieneś chyba wpisać / zaktualizować
- platform: mqtt
name: "Lampa"
command_topic: "dom/hol/swiatlo/cmd/cmd"
state_topic: "dom/hol/swiatlo/cmd/state"
qos: 1
payload_on: "on"
payload_off: "off"
retain: true
@stefan1818 w integracjach nic ci się nie pojawi bo afe nie ma wykrywania po mqtt ( jeśli się mylę niech mnie @adrian poprawi). Musisz ręcznie dodawać wszystkie urządzenia z afe. Musisz wkleić to do configuration.yaml i w afe konfiguracji mqtt wpisac login i haslo.
light:
- platform: mqtt
name: "Światło"
command_topic: "dom/hol/swiatlo/cmd/cmd"
state_topic: "dom/hol/swiatlo/cmd/state"
qos: 1
payload_on: "on"
payload_off: "off"
retain: true
Dzięki wielkie za pomoc w końcu ruszyło - sam nie wiem co wcześniej robiłem źle - jeszcze to przeanalizuję, ale przy waszej pomocy wreszcie się udało bo już mnie nerwy brały - próbowałem to rozgryźć prawie dwa tygodnie i nie wiedziałem gdzie popełniam błędy - problem w tym, że trzymając się dokumentacji wcale nie jest to takie oczywiste moim zdaniem. Dokumentacja może i jest, ale napisana jest bardzo ogólnie.
Dla potomnych napiszę od początku co było zrobione, aby połączenie Home Assistant + Sonoff touch AFE + MQTT Mosquitto działało prawidłowo - napisze tylko podstawową działającą konfigurację gdyż dopiero zaczynam i póki co nie czuję się na siłach nic więcej doradzać 🙂
Instalacja na RPi (nie ma znaczenia które)
1. Na czystym systemie hassio dodałem następujące addony:
- Configurator (sama wtyczka nie wymaga żadnej dodatkowej konfiguracji),
- SSH Serwer (łączenie się przez PUTTY) - konfiguracja banalnia i nie opisuję jej bo nie jest to krok niezbędny do działania w/w zestawu,
- broker MQTT Mosquitto (tutaj najwięcej rozbieżności, gdyż w zależności od wersji różnie piszą w poradnikach, w dokumentacji też uważam że jest sporo wiedzy ale bardziej zaawansowanej - brakuje prostego minimum, które zadziała)
2. Konfiguracja hassio to w zasadzie ustawienie po stronie dhcp stałego adresu malinki, konfiguracji brokera lepiej nie ruszać, działa ta domyślna, nie tworzyłem również dedykowanego usera pod mqtt, tylko wpisałem dane do konta z którego się loguję do HA, natomiast w pliku configuration.yaml dodałem takie wpisy:
mqtt:
discovery: true
discovery_prefix: homeassistant
broker: 192.168.1.100 // adres IP malinki/brokera
port: 1883
username: xxx
password: hasło_xxx
light:
- platform: mqtt
name: "Światło"
command_topic: "dom/hol/swiatlo/cmd/cmd"
state_topic: "dom/hol/swiatlo/cmd/state"
qos: 1
payload_on: "on"
payload_off: "off"
retain: true
Niby proste, ale się nakombinowałem, żeby działało 🙂
dzięki za instrukcję - komuś zdecydowanie może się przyda.
Sugerowałbym Ci jeszcze zmienić w konfiguracji AFE temat MQTT do sterowania przekaźnikiem - teraz masz taki pokraczny
dom/hol/swiatlo/cmd/cmd
Ustaw w AFE
dom/hol/swiatlo
w HA będziesz miał do sterowania:
dom/hol/swiatlo/cmd
to stanów
dom/hol/swiatlo/state
Jeszcze raz dziękuję za pomoc. Tematy zmieniłem wg wskazówek.
Potestowalem moje poprzednie konfiguracje bo mi to spokoju nie dawało i już wiem czemu nie działały. Jeden mały szczegół nigdzie o tym wprost nie pisze, a wręcz przeczytałem w oficjalnej dokumentacji mosquitto brokera wprowadzającą w błąd informację:
Create a new user for MQTT via the Configuration -> Users (manage users). Note: This name cannot be homeassistant
or addon
, those are reserved usernames.
Tak to nie będzie działało, a przynajmniej nie z najnowszą wersją ha. Musimy dać do konfiguracji usera który został stworzony przy pierwszym logowaniu do ha - tak tego z uprawnieniami admina. Dziwne ale przetestowałem sobie i przy oddzielnym userze - nie ma znaczenia czy admin czy zwykły całość nie działa. Może jakoś można to obejść ale ja nigdzie tego nie znalazłem.
Pozdrawiam serdecznie.
Przed aktualizacją HA do nowszych wersji warto poczytać czy nie wnoszą one istotnych zmian, które to właśnie mogą powodować problemy zanim nie dokonamy modyfikacji w konfiguracji HA. Jak będziesz miał problemy z ha to pisz chętnie pomogę.
W podziękowaniu za pomoc i zainteresowanie przekazałem datek. Świetne oprogramowanie jestem bardzo zadowolony.
Pozdrawiam.