Dodanie drugiego urządzenia przez mqtt - zamel/supla i solar assistant

WITAM. Dziś potrzebuje pomocy z tematem MQTT a konkretnie z dodaniem drugiego urządzenia, szukałem, nawet udało mi się podobny wątek odszukać ale pogubiłem się bo temat sie rozjechał i nic z niego nie potrafie wyłuskać… ale ale od początku.
HA metal, licznik energii MEW zamel/supla przez MQTT. Wszystko śmiga pięknie
Jednak potrzebuje dorzucić solar_assistant.io po MQTT i tutaj zaczyna się poblem.
Kombinowałem wg informacji znalezionych i namieszałem jeszcze bardziej bo dodatek MQTT nie wstaje:

Cytat
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
cont-init: info: running /etc/cont-init.d/mosquitto.sh
[21:08:14] INFO: SSL is not enabled
cont-init: info: /etc/cont-init.d/mosquitto.sh exited 0
cont-init: info: running /etc/cont-init.d/nginx.sh
cont-init: info: /etc/cont-init.d/nginx.sh exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun mosquitto (no readiness notification)
services-up: info: copying legacy longrun nginx (no readiness notification)
[21:08:15] INFO: Starting NGINX for authentication handling…
s6-rc: info: service legacy-services successfully started
[21:08:15] INFO: Starting mosquitto MQTT broker…
1692731295: Loading config file /share/mosquitto/bridge.conf
1692731295: Loading config file /share/mosquitto/~$bridge.conf
1692731295: Error: Unknown configuration variable “Darek”.
1692731295: Error found at /share/mosquitto/~$bridge.conf:1.
1692731295: Error found at /etc/mosquitto/mosquitto.conf:37.
[19:08:16] WARNING: Halt add-on
s6-rc: info: service legacy-services: stopping
[19:08:16] INFO: Service restart after closing
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

Na szczęscie zrobiłem wczoraj wieczorem kopie całości i wrazie czego zrobie restore. Ale rozwiąże to tylko problem który sam stworzyłem.
Ma ktoś pomysł jak się za to zabrać?

EDIT:
problem z niewstającym mqtt rozwiązany
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
cont-init: info: running /etc/cont-init.d/mosquitto.sh
[21:57:05] INFO: SSL is not enabled
cont-init: info: /etc/cont-init.d/mosquitto.sh exited 0
cont-init: info: running /etc/cont-init.d/nginx.sh
cont-init: info: /etc/cont-init.d/nginx.sh exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun mosquitto (no readiness notification)
services-up: info: copying legacy longrun nginx (no readiness notification)
[21:57:06] INFO: Starting NGINX for authentication handling…
s6-rc: info: service legacy-services successfully started
[21:57:06] INFO: Starting mosquitto MQTT broker…
1692734226: Loading config file /share/mosquitto/bridge.conf
2023-08-22 21:57:06: Warning: Mosquitto should not be run as root/administrator.
[21:57:07] INFO: Successfully send discovery information to Home Assistant.
[21:57:07] INFO: Successfully send service information to the Supervisor.

ale pomysłu jak dodać drugie urządzenie dalej brak

wszystko zależy jak ten MEW-01 dodałeś ? jaką metodą ?

z tego co pamiętam to metoda z aktywną chmurą wg poradnika poniżej

(zawartość pliku .conf )
address TU_ADRES_SUPLI_TAKI JAK_POPRZEDNIO:8883
topic supla/# in
topic homeassistant/# in
topic supla/+/devices/+/channels/+/execute_action out
topic supla/+/devices/+/channels/+/set/+ out
remote_username UŻYTKOWNIK_PRZEPISANY Z SUPLI
remote_password HASŁO_PRZEPISANE Z SUPLI
bridge_capath /etc/ssl/certs

no to w takim razie żadnego innego urządzenia już nie dodasz, tylko urządzenia które dodasz do supli (chmury - mqtt) będziesz miał widoczne w HA. Poczytaj tu →

i zrób 2 sposobem (własny broker MQTT i połączenie z chmurą Supli jako “bridge”.

PS. Jeśli chcesz dodać “solar assistant” w podobny sposób jak dodałeś “suplę” to się nie uda.

to po przejsciu z metody 1 na 2 co trzeba bedzie zrobic zeby poza supla zastartowal jeszcze solar assistant?

Zapewne skonfigurować drugi " bridge" dla SA.

No jak wczoraj wieczorem dodałem drugi bridge to śmiga albo supla albo solar assistant. W integracji są widoczne dwa urządzenia i oba działają ale tylko jedne dane odświeża w zależności na które padnie po restarcie dodatku

Takie zachowanie jest normalne jeśli skonfigurujesz mostki jako fallback (round robin) - najprostsza metoda by to uzyskać to podać adresy wszystkich mostków w jednej linii (sprawdź czy czasem tak nie zrobiłeś).

zrobiłem dokłądnie tak jak w opisie 2 osobu:

"A teraz co, jeśli trzeba zmienić to na broker z HA (lub od razu chcesz to u siebie), czyli sposób 2.

  1. Jeśli masz w HA podłączenie z brokerem SUPLA opisane powyżej - usuń wpis w configuration.yaml i usuń integracje z panelu integracji, który tym wpisem utworzyłeś. Samo usunięcie wpisu w configuration nie wystarczy. Zrestartuj HA.

1a. jeśli nie masz połączenia i od razu robisz to na Mosquitto - wykonaj punkty 1-3 z pierwszego sposobu.

  1. Uruchom w HA supervisora i w sklepie z dodatkami wyszukaj i zainstaluj Mosquitto Broker.
  2. Zanim uruchomisz po zainstalowaniu dodatku przejdź do konfiguracji.
  3. w username wpisz sobie jakiegoś użytkownika. Chyba nie ma znaczenia co tu wpisujemy
  4. W password: podobnie, jakieś hasło.
  5. Dopisz do konfiguracji:
customize:
  active: true
  folder: mosquitto

To ważne, bo tylko dzięki temu mosquitto przeczyta nasze wpisy z supli. Zapisz konfigurację.

  1. Teraz trzeba stworzyć właściwy katalog i plik konfigurujący most między SUPLA a mosquitto. Jak ktoś zna unixa, to zapewne wejdzie sobie w terminal SSH (też go trzeba zainstalować jako dodatek w Supervisorze) i komendą:

mkdir -p /root/share/mosquitto

założy katalog a potem założy w nim plik bridge.conf (nano bridge.conf) i wpisze do niego:

connection bridge-COŚ_TU_WPISZ (8-16 przypadkowych znaków, to będzie supertajny identyfikator połączenia)

address TU_ADRES_SUPLI_TAKI JAK_POPRZEDNIO:8883
topic supla/# in
topic homeassistant/# in
topic supla/+/devices/+/channels/+/execute_action out
topic supla/+/devices/+/channels/+/set/+ out
remote_username UŻYTKOWNIK_PRZEPISANY Z SUPLI
remote_password HASŁO_PRZEPISANE Z SUPLI
bridge_capath /etc/ssl/certs

Ja zrobiłem to bardziej leniwie i za pomocą SAMBY (także jako dodatek w Supervisorze) połączyłem się z Windowsa do serwera HA i w katalogu share założyłem prześliczny katalog mosquitto (taki jak w konfiguracji mosquitto brokera dodaliśmy w sekcji customize), oraz zwykłym notatnikiem utworzyłem w nim plik bridge.conf z zawartością jak powyżej.

Zapisuję plik (trzeba uważać na nazwę, notatnik windows ma tendencję do dodawania od siebie rozszerzenia .txt, trzeba je usunąć. Ma być bridge.conf

Teraz można uruchamiać lub zrestartować jeśli już działa Mosquitto Brokera. JA po tym jeszcze zrestartowałem HA, ale nie jestem pewien, czy potrzeba. Jeśli się nie pomyliliśmy, jeśli mamy usuniętą do spodu poprzednią integrację - SUPLA znowu zaczyna działać, urządzenia i encje mają te same nazwy, integracje działają, my się cieszymy. Jeśli ktoś nad tym pracował tak jak ja dłużej, może wykrzyknąć: “Mam Cię k… chu…!!!” Pomaga, sprawdziłem."

Następnie zrobiłem wg poradnika solar_assistanta (integrcja z HA) no i wydaje się że wszystko jest tak jak być powinno a jednak ciągle aktualizuje albo jedno (supla) albo drugie (solar) w zależności od restartu. Logi wylądają tak:

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
cont-init: info: running /etc/cont-init.d/mosquitto.sh
[15:53:55] INFO: SSL is not enabled
cont-init: info: /etc/cont-init.d/mosquitto.sh exited 0
cont-init: info: running /etc/cont-init.d/nginx.sh
cont-init: info: /etc/cont-init.d/nginx.sh exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun mosquitto (no readiness notification)
services-up: info: copying legacy longrun nginx (no readiness notification)
[15:53:55] INFO: Starting NGINX for authentication handling…
s6-rc: info: service legacy-services successfully started
[15:53:56] INFO: Starting mosquitto MQTT broker…
1692798836: Loading config file /share/mosquitto/bridge.conf
1692798836: Loading config file /share/mosquitto/solar_assistant.conf
2023-08-23 15:53:56: Warning: Mosquitto should not be run as root/administrator.
[15:53:57] INFO: Successfully send discovery information to Home Assistant.
[15:53:57] INFO: Successfully send service information to the Supervisor.

W obu zdalnych brokerach ustaw innych użytkowników, nie używaj tego samego użytkownika w każdym kliencie i brokerze, bo wtedy nie da się tego sensownie rozróżnić.

Jak możesz to postaraj sie wyłożyć to bardziej łopatologicznie bo nawet nie wiem jak się dostosować do Twojej rady i wprowadzić zmiany… :confused:

Chodzi o remote_username ustawione w “Supli” i w “Solar”, powinny być różne.
PS. Nie wiem dlaczego dwa “bridge” nie chodzą równocześnie. U mnie przy jednym jak brak oświeżania, pomaga “uruchom ponownie” MQTT (w integracjach).

poległem… przeszukałem już chyba “cały internet” i całą mase zbliżonych wątków i tkwie w miejscu.
A czy miałoby sens wy-outować cały addon mosquitto , restart HA i dodanie wszystkiego od nowa? gdzieś jeszcze przy takim kroku może być ślad który trzeba byłoby usunąć żeby zacząć całkowicie od zera?

Nie ma nigdzie żadnych “śladów” konfiguracja addona jest wczytywana za każdym razem od nowa przy każdym uruchomieniu addona (dlatego zmiana konfiguracji wymaga jego restartu).

Tu masz przykład konfiguracji wielu mostków


Edit: Ponieważ chodzi o MQTT to oczywiście “jakieś ślady” są w działających brokerach jeśli gdzieś miałeś włączone retain, ale to nie są pozostałości konfiguracji tylko zaległe telegramy.

zauważyłem że co jakiś czas po restartach addonu powstają w katalogu share/mosquitto/ pliki jak w logach poniżej… wtedy wogole addon nie wstaje. Może tutaj coś źle robie
LOGI:
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
cont-init: info: running /etc/cont-init.d/mosquitto.sh
[22:32:04] INFO: SSL is not enabled
cont-init: info: /etc/cont-init.d/mosquitto.sh exited 0
cont-init: info: running /etc/cont-init.d/nginx.sh
cont-init: info: /etc/cont-init.d/nginx.sh exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun mosquitto (no readiness notification)
services-up: info: copying legacy longrun nginx (no readiness notification)
[22:32:05] INFO: Starting NGINX for authentication handling…
s6-rc: info: service legacy-services successfully started
[22:32:06] INFO: Starting mosquitto MQTT broker…
1692822726: Loading config file /share/mosquitto/bridge.conf
1692822726: Loading config file /share/mosquitto/solar_assistant.conf
1692822726: Loading config file /share/mosquitto/~$bridge.conf
1692822726: Error: Unknown configuration variable “Darek”.
1692822726: Error found at /share/mosquitto/~$bridge.conf:1.
1692822726: Error found at /etc/mosquitto/mosquitto.conf:37.
[20:32:06] WARNING: Halt add-on
s6-rc: info: service legacy-services: stopping
[20:32:06] INFO: Service restart after closing
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

Co to za plik, mi jakoś tak windowsowo pachnnie jego nazwa.

jak przez sambe przegladam pod windowsem katalog to takie pliki mi się tam pojawiają ale nie zawsze…

Same z siebie się nie pojawiają, to jakieś pozostałości po pracy windowsowego lub microsoftowego edytora (dodałem to, bo może to skutki uboczne działania linuxowewgo VSC?).
Jeśli chcesz edytować pliki z poziomu windowsa w udziale samby to używaj tego
https://notepad-plus-plus.org/
jak dotąd mnie nie zawiódł i nie robi śmietnika po sobie.

1 polubienie

dobrze wiedzieć że takie coś ma jakikolwiek wpływ… jako laik myślałem że to tylko kwestia edycji “byl ejak” :wink:

w instrukcji: Home Assistant — praca monitora energii MEW-01 w trybie lokalnym (MQTT)

jest fragment:

  1. Przechodzimy do ustawień monitora MEW-01, przełączając go w tryb konfiguracji (192.168.4.1).

  2. Ustawiamy protokół komunikacji MEW-01 na MQTT oraz podajemy dane do naszego brokera MQTT. W konfiguracji urządzenia uzupełniłem dane jak poniżej:

  • Server: Adres naszego brokera MQTT (lokalny)
  • Port: W moim wypadku jest to 1883
  • TLS: NO (nie korzystam)
  • Auth: YES
  • Username: homeassistant (podane w konfiguracji Mosquitto broker – ustalamy własne)
  • Password: wilde (podane w konfiguracji Mosquitto broker – ustalamy własne)
  • Topic prefix: nie uzupełniam
  • QOS: 0 (wystarczy 0 to gwarancja dostarczenia wiadomości)
  • Retain: YES (trwałe wiadomości)
  • Pool publication delay (sec.): 5 (moim zdaniem wystarczy co 5 s wysyłać dane parametrów)

Teraz moje pytanie…

  • Server: Adres naszego brokera MQTT (lokalny) to nazwa z supli np mqtt85.supla.org czy adres IP sieci lokalnej na jakim jest zamel/supla?
  • Port: W moim wypadku jest to 1883 to port z supli?

Nie mam nic na współczesnej Supli (i nie mam czasu na zabawę by coś mieć), ale ja rozumiem to co wkleiłeś tak, że zamiast zdalnego brokera MQTT Supli masz ustawić w MEW lokalny broker - ten z którego korzystasz lokalnie w HA.

(jeśli to Dodatek, to jest on zwykle pod IP HA na porcie 1883 lub jeśli z SSL 8883, jeśli inny rodzaj instalacji lub na innej maszynie to chyba wiesz gdzie go szuakać)

Natomiast generalnie użytkownik homeassistant jest od dawna zastrzeżony i nie powinno się go używać (wręcz nie wiem czy zadziała) - stwórz po prostu dodatkowych użytkowników dla MQTT (zgodnie z dokumentacją brokera, którego używasz) po jednym dla każdej integracji po MQTT i użyj w konfiguracji jakiegoś takiego dedykowanego użytkownika.
(w przypadku instalacji brokera Mosquitto, ale tylko i wyłącznie dotyczy to instalacji w postaci Dodatku wystarczy założyć sobie takich zwykłych użytkowników w HA i zrestartować co najmniej broker, ewentualnie całego hosta HAOS, no nie pamiętam szczegółów, jest dokumentacja - można poczytać, może są jakieś nowości, których nie znam)