MQTT - odbieranie danych na HA

Cześć, mógłbym prosić o wyoślenie kilku kwestii związanych z MQTT?

Mam sobie jedno raspberry - na nim HA w dockerze.
Od strony rasbiana testuję sobie PUB-SUB - wszystko ładnie działa - tutaj testuję bez podawania hasła w brokerze.

Teraz HA:

Mam zainstalowaną integrację do dongla Zigbee - Zigbee2mqtt - wszystko działa, integracja pracuje na porcie 1883.
Do tego mam urządzenia Sonoffa - SNZB-02 i kilka innych, dla których zainstalowałem kolejną integrację - Mosquitto Broker - z tym, że początkowo miałem problem - musiałem zmienić port na inny - wybrałem 1889. Wszystkie urządzenia działają.

Teraz chciałem zrozumieć jak coś z systemu raspberry po MQTT przesłać do HA.

kiedy z raspberry testuję:
mosquitto_pub -t ‘testTopic/czujnik’ -m ‘Test’
i
mosquitto_sub -v -t ‘testTopic/czujnik’
Wszystko działa jak należy.

Teraz patrzę do HA:

  • integracja Mosquitto Broker w konfiguracji ma podaną nazwę użytkownika i hasło - czy to oznacza, że testując na mosquitto_pub muszę użyć też tej nazwy użytkownika i hasła?
  • konfiguracja Mosquitto Broker jak pisałem wcześniej ustawiona jest na port 1889 - menu konfiguracja → Dodatki, Kopie zapasowe oraz Supervisor → Mosquitto Broker → Konfiguracja - w związku z tym, że Zigbee2mqtt mam na 1883, gdybym miał urządzenie do którego mogę wysyłać urządzenia MQTT - musiałbym robić to po porcie 1889, gdyż 1883 jest dedykowany w tej chwili na urządzeń zigbee…?
  • konfiguracja → Urządzenia oraz usługi → Mosquitto broker → Konfiguruj → kliknięcie re-configure pokazuje opcje obokera - w tym nazwę użytkownika i hasło, ale też port - 1883, co nie wiem jak odnieść do ustawionego w poprzednim miejscu 1889 :expressionless:
  • W tym samym miejscu co wyżej - próbuję nasłuch tematu - wprowadzam ten sam temat co na oknie konsoli z raspberry - konsola odbiera, HA nie. Ustawiłem configuration.yaml jak poniżej:

sensor:

  • platform: mqtt
    state_topic: “testTopic/czujnik”
    name: Czujnik

po samym konfiguracja → kontrola serwera → uruchom ponownie, encja nie pojawia się, pojawiła się dopiero po ‘ha core restart’ od strony Raspberry - jednak nic nie odczytuję.

Mogę mieć konflikt przez to, że mam zainstalowane obie integracje naraz i obie chcą uzywać portu 1883? A może chodzi o to, że konfiguracja mosquitto broker ma podanego usera i hasło, a od strony mosquitto_pub podaję bez hasła? Czy całkiem coś innego?

Pomożecie zrozumieć temat?

Pomieszałeś wszystko :slight_smile:, działa to skrócie tak:
do działania jest potrzebny broker MQTT, do tego brokera łączy sie Zigbee2MQTT, jednocześnie do tego samego brokera MQTT łączy sie także HA, cała wymiana komunikacji działa przez brokera MQTT. Jak nie działa broker MQTT to HA nie moze sterować urządzenia Zigbee, które są dodane do Zigbee2MQTT. HA może byc zintegrowane jednocześnie tylko z jednym brokerem MQTT.

Do działania wystarczy Ci jeden broker MQTT więc tego bezpośrednio na RPi odinstaluj, wtedy Mosquitto brokera będziesz mógł zainstalować (uruchomić) na domyślnym porcie 1883. Oczywiście możesz mieć dwa brokery MQTT na tym samym urządzeniu ale na różnych portach, aby przesyłać dane między tymi brokerami musisz zrobić miedzy nimi most ale to trochę trudniejsze.

Podstawy działania protokolu TCP, propuje tak jak wyżej uprościć sobie życie i zostawić tylko Mosquitto Broker, uprościsz sobie życie.

No to rozjaśnia sprawę, faktycznie namieszałem :smiley:

A jeśli z innej maszyny chciałbym wysyłać coś do HA - jakieś proste zliczanie czegokolwiek - to stosując konfigurację configuracion.yaml taką, jak napisałem wyżej, jak rozumiem muszę wskazać jeszcze nazwę hosta na którym odpaliłem brokera - tak?
I start typu:

mosquitto_pub -t ‘testTopic/czujnik’ -m ‘Test’
powinien wystarczyć, aby HA po restarcie zobaczył encję i zbierał wysyłane w ten sposób dane?

Nie, nie wysyłasz do HA tylko do brokera MQTT, wysyłasz poleceniem (poczytaj Using The Mosquitto_pub and Mosquitto_sub MQTT Client Tools- Examples):

mosquitto_pub -h <broker-mqtt> -u <username> -P <password> -t testTopic/czujnik -m "Test"

Aby pojawiła się encja w HA, należą ją dodać do konfiguracji (MQTT Sensor - Home Assistant):

# Example configuration.yaml entry
sensor:
  - platform: mqtt
    name: nazwa_czujnik
    state_topic: "testTopic/czujnik"