Domoticz na docker
 
Powiadomienia
Wyczyść wszystko

INFORMACJA Strona oraz Forum Smart'ny Dom zostały przeniesione na nowy serwer. W razie zauważenia problemów z działaniem, proszę zgłaszać je tutaj. W ciągu kilku następnych dni serwer będzie "podkręcany" i mogą występować chwilowe przerwy w jego działaniu.

Za niedogodności z góry przepraszam, admin

Domoticz na docker

45 Wpisów
5 Użytkownicy
0 Reactions
13.3 K Wyświetleń
(@maciekk)
Wpisów: 106
Pomocny
Autor tematu
 

Witajcie,

Dzisiaj trochę off topic w związku z obrazem Domoticz. Mam natomiast trochę inny problem i potrzebowałbym Waszej pomocy i wsparcia. Ale od początku: mój domoticz na RPi działa jak należy. Odziedziczyłem ostatnio nettopa i postanowiłem przenieść Domoticz na "nowy" sprzęt i spróbować zainstalować go na Dockerze (jako bazowy zainstalowałem Ubuntu server 16.04 LTS). Wykorzystałem super poradnik opisany stronie raspberrywpraktyce ( https://raspberrywpraktyce.wordpress.com/2019/01/16/docker-i-domoticz-pierwsze-kroki/). No i system działał - Domoticz na nettopie został uruchomiony. Niemniej tutaj pojawiły się moje problemy, z którymi nie potrafię sobie poradzić:

1. Domyślnie Domoticz uruchamia się na porcie 8080, w tekście jest info jak zmienić domyślny port. Próbowałem to zrobić ale wtedy webGUI się nie uruchamia (błąd wczytywania strony). Zmieniłem dodatkowo nr portu w domoticz.sh (był cały czas 8080) ale niewiele to pomogło. Domoticz uruchamia się tylko na porcie 8080. Czy zmianę portu powinienem zrobić jeszcze w jakimś miejscu?

2. Chciałbym przenieść mojego Domoticza z RPi na Dockera - czy jest jakaś możliwość, aby skopiować albo przenieść odpowiednie katalogi i ustawienia do nowej lokalizacji? Wiem, że oczywiście wersja Domoticz'a dla dockera jest inna niż w zamieszczonym tutaj obrazie i konieczne jest doinstalowanie dodatkowych narzędzi jak grafana, infuxdb, itp. I generalnie, czy te dodatkowe narzędzia umieszczać w tym samym kontenerze w którym jest Domoticz?

3. Nie czekając zacząłem instalować urządzenia na nowym Domoticzu i tu pojawiła się nowa "zagwozdka". Długo walczyłem z uruchomieniem Xiaomi Gateway w domoticzu na RPi - w końcu udało się. I zarówno bramka jak i pozostałe czujniki pięknie działają w Domoticz. Natomiast, kiedy próbuję uruchomić bramkę w nowym domoticz - ponownie nie pojawiają się żadne czujniki (standardowo w logach: worker started... i cisza). Port 9898 jest z pewnością otwarty, reszta też powinna działać a jednak nie działa. Próbowałem zainstalować żarówki YeeLight i instalują się bez żadnego problemu. Nie mam pojęcia co może być nie tak z bramką. Aczkolwiek jak sprawdzałem urządzenia w sieci komendą arp - nie ma tam adresu IP bramy (pingując adres bramki i ponownie arp - adres się pojawia). Więc to może jest ten problem. Generalnie zarówno RPi jak i nettop z dockerem podpięte są po lan, natomiast brama jest po WIFI.

Zapewne jestem za słaby w Linux i jeszcze za słaby w Domoticz, aby coś wydedukować bez Waszej pomocy. Przejrzałem chyba połowę internetu, ale tutoriali i pomocy jak na lekarstwo.

Macie może jakieś pomysły odnośnie moich problemów?

 
Dodane : 02/06/2019 6:34 pm
(@mirmil99)
Wpisów: 180
Pomocny
 

a czym jest spowodowana ta kombinacja Ubuntu server 16.04 LTS (i dlaczego nie 18.04?) i na to Docker? tak z ciekawosci sprawdz czy Domoticz widzi pythona 3?

 
Dodane : 03/06/2019 10:41 am
(@maciekk)
Wpisów: 106
Pomocny
Autor tematu
 

W założeniu plan jest taki, aby przerzucić to co mam aktualnie na RPi do kontenerów na nettopie. Poza tym chciałbym jeszcze wykorzystać nettopa do innych zadań (np. w przyszłości pobawić się HA). Dlaczego 16.04? - jak zauważysz to w podanym wyżej linku jest opis do instalacji na takim systemie, poza tym jak wyczytałem, to zmiany w stosunku do 18.04 nie są jakieś mega istotne (a chciałem przynajmniej w ten sposób wyeliminować kolejne potencjalne miejsce, gdzie mogą wystąpić jakieś nie do końca opisane i przetestowane problemy). 

Odnośnie pythona - może to dobry trop - sprawdzę jak tylko wrócę do domu. 

W każdym razie jak mi się pojawił nettop, to szkoda byłoby wstawić go do piwnicy - więc chcę się trochę pobawić. Ale niestety w linuxie to jestem jeszcze słabiutki. . 

 
Dodane : 03/06/2019 11:49 am
kadasz
(@kadasz)
Wpisów: 79
Kontrybutor
 

Heja, 

Ad 1.

W podanym przez Ciebie linku umieszczona jest taka informacja :

Jeżeli chcemy możemy zmienić port modyfikując linię na np:

-p 8009:8009 \

która odpowiada za tzw. opublikowanie portu przez docker'a w schemacie -p port_na_serwerze:port_w_kontenerze, znaczy to tyle że usługa działająca w kontenerze na porcie 8009 będzie widoczna pod adresem IP serwera na porcie 8009. Wszystko fajnie jednak nie ma zamieszczonej tam informacji o tym, że jeśli zmieni się owe mapowanie portów podczas uruchamiana kontenera z domoticzem, trzeba również dokonać zmiany portu usługi, która uruchamiana jest wewnątrz. W związku z tym do startu domoticza przekazać trzeba switch -www 8009.

Ad 2.

Tak, jak najbardziej - przenosisz wszystkie pliczki gdzieś na nowy serwer i wykorzystując dockerowe woluminy ( https://docs.docker.com/storage/volumes/) montujesz katalogi w odpowiednie miejsce w kontenerze z domoticzem. 

P.S.

Jak coś poniżej masz mój image z domoticzem oparty o Ubuntu 18.04 i działa u mnie na QNAP'ie na dockerze, podpatrz sobie lub spróbuj użyć 🙂 

https://github.com/kadasz/image-domoticz  

 

Ad 3.

Wklej może jakieś błędy, co jest w logach...

 
Dodane : 03/06/2019 11:52 am
(@maciekk)
Wpisów: 106
Pomocny
Autor tematu
 

Hejka,

@mirmil99 - sprawdziłem, Domoticz widzi Pythona 3, więc to nie jest raczej ten problem.

@kadasz - wielkie dzięki za wskazówki. W przypadku zmiany portu na inny niż 8080, poza zmianą podczas instalacji Domoticz, zmieniłem również ten port w domoticz.sh (miałeś rację cały czas wskazywał -www8080). Teraz dla pewności zrobię upgrade Ubuntu do wersji 18.04 i potem wykorzystam Twoje wskazówki - wiele mi wyjaśniły. Dzięki za info - niewiele jest w necie instrukcji albo tutoriali na takim poziomie noobasów.

Na razie dzięki. Dam znać jak mi poszło. Albo jak idzie 🙂

 
Dodane : 03/06/2019 6:29 pm
kadasz
(@kadasz)
Wpisów: 79
Kontrybutor
 

@maciek, nie ma problemu, fajnie że trochę rozjaśniłem kwestię i udało się zrobić kolejny krok w przód 😉 

 
Dodane : 03/06/2019 10:57 pm
(@maciekk)
Wpisów: 106
Pomocny
Autor tematu
 

A więc małe info odnośnie mojej walki 🙂

Ubuntu podniesione do wersji 18.04.

Ad.1 Próba instalacji Domoticza (wg wskazówek ze strony podanej wyżej) ze zmianą nr portu. Port zmieniony podczas instalacji (portainer potwierdza, że Domoticz instaluje się na wskazanym porcie). Dodatkowo zmapowanie nowego portu w pliku domoticz.sh. Niestety nadal bez sukcesu - webGUI się nie otwiera. W przypadku portu domyślnego wszystko przebiega bez problemów. Oczywiście po instalacji - ubuntu zrestartowane, cache w przeglądarce wyczyszczony. Więc albo jeszcze w jakimś miejscu należy zmienić nr portu albo być może jest coś w kwestii uprawnień do pliku. Dziwne jest, że podczas kopiowania komendy wyrzuca mi dane z bash (kopiuję to z komendy zapisane w notepad++; tak się nie dzieje w przypadku kopiowania tej komendy ze strony www)

portainer domoticz zmienionyport
domoticz.sh zmienionyport
instalacja terminal

Ad. 2 Kwestia kontenerów będę testował jak ogarnę Domoticza 🙂

Ad. 3 Sprawa uruchomienia Xiaomi Gateway na nowym Domoticzu - niestety nadal nie wykrywa urządzeń (zresztą skoro niewiele zmieniłem to byłbym zdziwiony gdyby wykrywał). W załączeniu log z Domoticz. Na RPi działa bez problemu (udp 9898 jest otwarty).

xiaomi gateway domoticz
9898 udp open
domoticz logi
 
Od jutra będę walczył wg wskazówek od @kadasz. Mam nadzieję, że pójdzie zdecydowanie lepiej. 🤔 
 
Dodane : 04/06/2019 9:10 pm
kadasz
(@kadasz)
Wpisów: 79
Kontrybutor
 
Dodane przez: maciekk

A więc małe info odnośnie mojej walki 🙂

Ubuntu podniesione do wersji 18.04.

Ad.1 Próba instalacji Domoticza (wg wskazówek ze strony podanej wyżej) ze zmianą nr portu. Port zmieniony podczas instalacji (portainer potwierdza, że Domoticz instaluje się na wskazanym porcie). Dodatkowo zmapowanie nowego portu w pliku domoticz.sh. Niestety nadal bez sukcesu - webGUI się nie otwiera. W przypadku portu domyślnego wszystko przebiega bez problemów. Oczywiście po instalacji - ubuntu zrestartowane, cache w przeglądarce wyczyszczony. Więc albo jeszcze w jakimś miejscu należy zmienić nr portu albo być może jest coś w kwestii uprawnień do pliku. Dziwne jest, że podczas kopiowania komendy wyrzuca mi dane z bash (kopiuję to z komendy zapisane w notepad++; tak się nie dzieje w przypadku kopiowania tej komendy ze strony www)

Kwestia zmiany ustawień w odpowiednich plikach konfiguracyjnych to jedno, a drugie czy zmiany te są respektowane... Najpierw sprawdź czy w kontenerze z domoticzem usługa nasłuchuje na odpowienim porcie, wpisując w shellu:

netstat -luntp

jeśli masz informacje w stylu, że nie  znaleziono takiego plecenia to trzeba zainstalować paczkę net-tools:

 

apt-get update; apt-get install net-tools

 

następnie w sytuacji gdy port jest prawidłowy z innego miejsca np. na nettopie zrób curl'a sprawdzającego czy domoticz jest dostępny:

curl -v -I  http://adres_ip_domoticza:nr_portu/ 

wykonaj na tym nettopie polecenie:

 

docker ps 

Wklej tutaj wyniki wszystkich tych poleceń.

 
Dodane : 05/06/2019 11:25 am
(@maciekk)
Wpisów: 106
Pomocny
Autor tematu
 

Hejka,

Zrobiłem wg Twojej instrukcji. Wygląda to mniej więcej tak.

Port 8089 (port ustawiony podczas instalacji i zmieniony w domoticz.sh) - nasłuchuje (przynajmniej tak z tego zrzutu mi się wydaje)

port 8089 nasłuchuje
 
Przy poleceniu curl - połączenie zostaje odrzucone (z mojej ubogiej wiedzy udało mi się ustalić, że to być może problem z elasticsearch...)
No i na końcu polecenie docker ps - chyba trochę wyjaśnia... domoticz wskazany jest na porcie 8080.... chyba, że jest to przekierowanie na 8089..
 
curl docker
 
Generalnie jestem jeszcze zbyt zielony w Linuxie, aby to dokładnie przeanalizować. Niemniej @kadasz, chcę skorzystać z Twoich wskazówek i linków - wydaje mi sie, że to latwiej do ogarnięcia. 🙂
 
 
Dodane : 05/06/2019 6:10 pm
(@maciekk)
Wpisów: 106
Pomocny
Autor tematu
 

Zmieniłem nr portu dodatkowo w pliku start.sh (tam również był 8080). Po restarcie niestety nadal nic. W logach Domoticza w portainer jest ciągle wpis:

2019-06-05 18:33:09.173 Status: Domoticz V4.9701 (c)2012-2018 GizMoCuz
,2019-06-05 18:33:09.173 Status: Build Hash: 98723b7d, Date: 2018-06-28 08:00:58
,2019-06-05 18:33:09.224 Status: Startup Path: /src/domoticz/
,2019-06-05 18:33:10.106 Status: PluginSystem: Started, Python version '3.5.3'.
,2019-06-05 18:33:10.136 Active notification Subsystems: gcm, http (2/13)
,2019-06-05 18:33:10.295 Status: WebServer(HTTP) started on address: 0.0.0.0 with port 8080

A więc ciągle http ciągle próbuje uruchomić się na porcie 8080. Nie żebym bardzo się uparł na nowym porcie, bardziej traktuję to jako zrozumienie, gdzie znajdują się zapisy do konfiguracji Domoticza...

 
Dodane : 05/06/2019 9:06 pm
kadasz
(@kadasz)
Wpisów: 79
Kontrybutor
 
Dodane przez: maciekk

Hejka,

Zrobiłem wg Twojej instrukcji. Wygląda to mniej więcej tak.

Port 8089 (port ustawiony podczas instalacji i zmieniony w domoticz.sh) - nasłuchuje (przynajmniej tak z tego zrzutu mi się wydaje)

Walczysz i dobrze 😉 lecz coś mi tutaj nie gra... 🤔 

Z jakiego miejsca wykonałeś tego netstat'a? Po Twoim screenie sądzę, że spod systemu nettopa, ponieważ wynik posiada za dużo wpisów a jeżeli powinno być. Musisz wejść do kontenera z domoticzem, nie używam Portainer'a korzystam tylko z docker cli, jednak z tego co widzę w Portainer wchodzisz w zakładkę Containers, gdzie wyświetlą się Twoje kontenery, następnie klikasz w kontener z domoticzem, a później w link >_Execute i dalej Connect dostaniesz się do konsoli kontenera z domoticzem, gdzie dopiero w bashu wydajesz polecenie netstat -luntp

 

Dodane przez: maciekk
 
Przy poleceniu curl - połączenie zostaje odrzucone (z mojej ubogiej wiedzy udało mi się ustalić, że to być może problem z elasticsearch...)
No i na końcu polecenie docker ps - chyba trochę wyjaśnia... domoticz wskazany jest na porcie 8080.... chyba, że jest to przekierowanie na 8089..
 

Polecenie curl  zwraca komunikat, iż połączenie zostało odrzucone ponieważ żądany zasób jest nieosiągalny prawdopodobnie z powodu tego że żadna usługa nie działa na takim porcie, w sumie jak podejrzewałem 😆 

Komenda docker ps dużo wyjaśnia dlaczego domoticz nie działa. Widniejący tam port 8080/tcp mówi że kontener expose'uje czyli nasłuchuje na wskazanym porcie sieciowym, natomiast 0.0.0.0:8089->8089/tcp informuje o publikacji portu 8089 i zmapowaniu go na hosta. W związku z powyższym aby móc połączyć się do zdokeryzowanej usługi najpierw trzeba skonfigurować port a następnie opublikować. 

Co trzeba zrobić?

Idąc założeniem że chcemy zmienić port i wystawić usługę na 8089 należy dokonać zmian w źródle obrazu z domoticzem, a więc w pliku Dockerfile edytując instrukcję EXPOSE określającą port którego używa usługa. Można też nadpisać ujawniany port, dodając do polecenia uruchamiania kontenera --expose 8089.

BTW.

Zajrzałem do repo obrazu z którego skorzystałeś -  https://github.com/joshuacox/mkdomoticz. Wg mnie jest tam mały bałagan i trochę nie potrzebnie kompilowany jest domoticz, uważam że lepiej, prościej i przede wszystkim szybciej pobrać gotową binarkę i uruchomić, ponieważ w większości przypadków taki setup wystarcza. Oczywiście z wyjątkiem, kiedy ktoś ma uzasadnioną potrzebę kompilacji domoticza z extra ficzarami. 

 
Dodane : 06/06/2019 10:57 am
(@maciekk)
Wpisów: 106
Pomocny
Autor tematu
 

Hej,

Walczę jak lew 🙄 . @kadasz miałeś rację - zrobiłem netstat z poziomu kontenera i jak widać w logu domoticz nasłuchuje na porcie 8080.

netstat w kontenerze
 
Sprawdziłem plik Dockerfile w obrazie i faktycznie należałoby ujawnić nowy port. Niemniej Twoja rada była cenna, że ten obraz jest trochę przekombinowany (i w sumie obawiałem się, że po tej zmianie pojawią się kolejne problemy i będę dalej bładził po kolejnych poleceniach). Usunąłem więc ten kontener i zainstalowałem dużo lepszy ( z Twojego linku na github). Instalacja przebiegła bezproblemowo, domoticz wystawił usługe na porcie, który wskazałem i dodatkowo upgreade'ował się do wersji 4.10717.
Więc problem z instalacją Domoticza mam z głowy :). Sprawdziłem jak dodają się sprzęty - i ponownie pojawia się problem z dołączeniem bramki Xiaomi Gateway. Walczyłem z nią dosyć długo (cała historia z otwarciem portu udp 9898). I w tej chwili wszystko działa na RPi. Niemniej kiedy próbuję dodać bramkę do nowego Domoticza, nie wykrywa mi sprzętu. W logach pojawia się dziwna sprawa - Xiaomi startuje na adresie IP 192.168.1  (brakuje tu 2 ostatnich cyfr - u mnie bramka ma adres 192.168.1.36) Nie mam pojęcia dlaczego obcina mi ostatnie cyfry z IP. Dla próby podpiąłem również żarówkę YeeLight - poszło bez problemu. A więc problem tkwi w bramce. Dla sprawdzenia w terminalu sprawdziłem czy jest widoczna (arp -e) i nie było tam bramki Xiaomi. Wykonałem ping na adresie bramki (ping odpowiedział) i ponownie arp -e i wtedy bramka się pojawia. Muszę trochę poszperać co może być powodem tej sytuacji. (192.168.1.43 - to adres mojego lapa skąd łącze się z domoticzem). 🤔 
 
domoticz gateway
 
arp gateway
 
Jak tylko ogarnę temat dodania bramki to skopiuję moje pliki z RPi i mam nadzieję, że Domoticz będzie działał na nettopie :). Btw, kiedy próbowałem zweryfikować czy domoticz wystartował (zgodnie z Twoim plikiem: docker exec -it domoticz head /opt/domoticz/log/domoticz.log
Wyrzucił mi błąd, że domoticz.log nie istnieje w  podanej lokacji. 
Ten log jest u mnie w katalogu domoticz/ log ale jakby poziom niżej - w aktualnie zalogowanym użytkowniku (pomimo, ze wykonałem pełne instrukcje podane w Twoim linku).
I jeszcze może lamerskie pytanie: jaka i czy jest różnica pomiędzy  stanem domoticz "healthy" a "running"?
@kadasz jeszcze raz dzięki za taką pomoc - z Twoich instrukcji więcej się nauczyłem, niż ze wszystkich tutków w necie. 🙂 
 
Dodane : 06/06/2019 9:14 pm
kadasz
(@kadasz)
Wpisów: 79
Kontrybutor
 
Dodane przez: maciekk
Btw, kiedy próbowałem zweryfikować czy domoticz wystartował (zgodnie z Twoim plikiem: docker exec -it domoticz head /opt/domoticz/log/domoticz.log
Wyrzucił mi błąd, że domoticz.log nie istnieje w  podanej lokacji. 
Ten log jest u mnie w katalogu domoticz/ log ale jakby poziom niżej - w aktualnie zalogowanym użytkowniku (pomimo, ze wykonałem pełne instrukcje podane w Twoim linku).
I jeszcze może lamerskie pytanie: jaka i czy jest różnica pomiędzy  stanem domoticz "healthy" a "running"?
@kadasz jeszcze raz dzięki za taką pomoc - z Twoich instrukcji więcej się nauczyłem, niż ze wszystkich tutków w necie. 🙂 

Wkradła się mała literówka w howto na githubie /opt/domoticz/log/ jest złą ścieżką do logów prawidłowa to /opt/domoticz/logs/

$ docker run -d --name domoticz --hostname domoticz -p 8888:8080 kadasz/image-domoticz /sbin/my_init
d84d69c5f70b366e3eed9cf034a2b531290bf04f64bdb76f67be476e993a661a
$ docker exec -it domoticz head /opt/domoticz/log/domoticz.log
head: cannot open '/opt/domoticz/log/domoticz.log' for reading: No such file or directory
$ docker exec -it domoticz ls /opt/domoticz/logs/
domoticz.log
$ docker exec -it domoticz head /opt/domoticz/log/domoticz.log
head: cannot open '/opt/domoticz/log/domoticz.log' for reading: No such file or directory
mac-krl:~ krl$ docker exec -it domoticz head /opt/domoticz/logs/domoticz.log
2019-06-07 17:04:34.487 Status: Domoticz V4.10717 (c)2012-2019 GizMoCuz
2019-06-07 17:04:34.487 Status: Build Hash: b38b49e5, Date: 2019-05-09 13:04:08
2019-06-07 17:04:34.487 Status: Startup Path: /opt/domoticz/
2019-06-07 17:04:34.516 BuildManifest: Created directory /opt/domoticz/plugins/
2019-06-07 17:04:34.543 Status: PluginSystem: Started, Python version '3.5.2'.
2019-06-07 17:04:34.545 Active notification Subsystems: gcm, http (2/13)
2019-06-07 17:04:34.545 Status: WebServer(HTTP) started on address: 0.0.0.0 with port 8080
2019-06-07 17:04:34.546 Starting shared server on: 0.0.0.0:6144
2019-06-07 17:04:34.546 Status: TCPServer: shared server started...
2019-06-07 17:04:34.546 Status: RxQueue: queue worker started...

Nie wiem czy o to pytasz, ale wykonując docker ps w kolumnie STATUS wyświetlany jest status kontenera, dodatkowo w nawiasie widnieje stan z tzw. healthcheck'a o ile został skonfigurowany, info -  https://docs.docker.com/engine/reference/builder,  starting jest stanem początkowy dopóty zostanie wykonane polecenie z healthcheck'a (zajrzyj do Dockerfile'a w instrukcję HEALTHCHECK), wówczas gdy healthcheck  powiedzie się mamy healthy w innym wypadku jest unhealthy. 

 

Super 👍 o to chodzi aby podnosić swój skill 😉 

 
Dodane : 07/06/2019 4:41 pm
(@maciekk)
Wpisów: 106
Pomocny
Autor tematu
 

Oki, nie zauważyłem tej literówki i zachodziłem w głowę co może być nie tak. 🙂

Pytanie odnośnie różnicy pomiędzy "healthy" a "running" wynika z opisu stanu w portainer. W tej chwili mam: docker "running", a domoticz "healthy". We poprzedniej wersji domoticza równiez był status "running". Ale to nie jest problem. Domoticz działa i mogę się przygotować do przejścia z RPi na Dockera.

Jedna rzecz, której nie potrafię rozgryźć i nigdzie znaleźć odpowiedzi. Dlaczego po dodatniu bramki Xiaomi do Domoticza, nie dodaje mi sprzętu podpiętego do tej bramki. Generalnie w logu (zamiesciłem wyżej jest: XiaomiGateway IP address starts with: 192.168.1) Obcina mi ostatnie 2 cyfry w adresie IP. Wprowadzałem adres bramki już 2 razy i ciągle ten sam problem. Port udp9898 jest otwarty (długo z tym walczyłem). Generalnie bramka dziala na domoticzu w RPi - wszystko jest OK. Teraz konfigurowałem to dokładnie tak samo i w logu nie ma adresu bramki. Zakładam więc, że to problem konfiguracji w domoticz na dockerze.Znalazłem link, gdzie gość miał bardzo podobny problem (ale jak widać odesłano go na inne forum) https://github.com/linuxserver/docker-domoticz/issues/43. Jedyna sugestia, to zamapować port 9898 - tylko gdzie i jak to zrobić? 🤔 🤔 

 
Dodane : 07/06/2019 7:37 pm
kadasz
(@kadasz)
Wpisów: 79
Kontrybutor
 

Trudno mi coś stwierdzi i podawać konkrety ponieważ nie posiadam Xiaomi Gateway, nie konfigurowałem też nic z gratów Xiaomi w Domoticzu wiec nie mam jak tego przypadku sprawdzić czy przetestować.

 

Internety piszą jednak że ludziska mają problem z dodaniem bramki Xiaomi do domoticza uruchomionego na dockerze. Niektórzy podają iż trzeba wystawić i opublikować porty udp z kontenera. O ile wtyczka domoticza nasłuchuje na jakimś porcie i w ten sposób komunikuje się z bramką ma to sens. Jeśli natomiast co jakis czas odpytuje bramkę po udp uderzając w adres i port który podaje się w ustawieniach to nic nie daje, ponieważ wtyczka korzysta sobie z sieci kontenera,  dockera. Być może właśnie tutaj leży problem 🙄 Xiaomi Gateway wykorzystuje UDP, wykrywanie i komunikacja urządzeń odbywa się przy pomocy broadcastów, unicastów które Domoticz powinien odbierać. Docker ma własną sieć, nat’owaną i być może gdzieś tam to zostaje wycinane, zapewne lepiej będzie jak kontener z domoticzem skorzysta z sieci „hosta”, uruchamiając kontener trzeba dodać —net=host lub —network host. Sprawdź tez tcpdump’em czy na interfejsie w kontenerze jest ruch udp, ew. na interfejsie docker0 na hoście.

P.S. Jestem na wyjeździe, pisze z tel wiec ciężej mi jest sprawdzić pewne rzeczy, mogą być też jakieś literówki 😉


 

 
Dodane : 08/06/2019 12:38 pm
(@maciekk)
Wpisów: 106
Pomocny
Autor tematu
 

@kadasz, dzięki za wskazówki. 

Ja tez jestem poza domem ale wracam wieczorem i zaraz spróbuje przetestować Twoje sugestie.

Teraz przynajmniej wiem w która stronę iść.

Dam znać o rezultatach 😁

 
Dodane : 09/06/2019 8:55 am
(@maciekk)
Wpisów: 106
Pomocny
Autor tematu
 

Wróciłem do domu i usiadłem do kompa, aby przetestować uruchomienie kontenera z domoticzem w sieci hosta. Ale utknąłem już na początku drogi.. 😓 

Zatrzymałem domoticza w portainer (to było proste). i postanowiłem uruchomić go w terminalu (z parametrem networking host).

I tu pojawia się problem: Otrzymuję komunikat, że nie jest w stanie znaleźć obrazu domoticz:latest locally. Wyszperałem w necie, że może to być problem z flagą. Podałem więc ścieżkę z dopisem :local. Niestety nadal ten sam błąd. Jakby docker nie mógł znaleźć obrazu domoticza. Być może źle podaję polecenie uruchomienia domoticza...

W załączeniu moje próby z różnymi wersjami polecenia docker run... Dodatkowo wrzuciłem również zrzut z mc - pokazujący położenie domoticza (w maciekk/image-domoticz... tam jest dockerfile oraz domoticz.run...) Wygląda jednak, że docker oczekuje innej ściezki.  Oczywiście nie ma problemu z uruchomieniem domoticza w kontenerze w portainer...  Coś więc robię źle...

uruchomienie dockera
 
lokalizacja domoticz
 
Dodane : 09/06/2019 8:32 pm
kadasz
(@kadasz)
Wpisów: 79
Kontrybutor
 
Dodane przez: maciekk

I tu pojawia się problem: Otrzymuję komunikat, że nie jest w stanie znaleźć obrazu domoticz:latest locally. Wyszperałem w necie, że może to być problem z flagą. Podałem więc ścieżkę z dopisem :local. Niestety nadal ten sam błąd. Jakby docker nie mógł znaleźć obrazu domoticza. Być może źle podaję polecenie uruchomienia domoticza...

 

Dlatego że nie masz takiego obrazu maciekk/image-domoticz:latest. W Portainer z jakiego image'u uruchamiałeś kontener z domoticzem (zapewne, kadasz/image-domoticz latest) ? Sklonowałeś z githuba moje repo i zbudowałeś image o nazwie maciekk/image-domoticz? 

Wykonaj polecenie docker images | grep domoticz - tak wygląda u mnie:

 

krl$ docker images | grep domoticz
kadasz/image-domoticz latest b71ccbc16230 6 days ago 721MB
image-domoticz v4 97dd7b68a696 6 days ago 721MB
image-domoticz v3 c54dd136a6e8 6 weeks ago 684MB

 

Co do uruchomienia kontenera z opcją "sieci hosta", u mnie poszło:

 

krl$ docker run -d --name domoticz --hostname domoticz --network host -p 8888:8080 kadasz/image-domoticz /sbin/my_init
WARNING: Published ports are discarded when using host network mode
0863d08ea3141a2a42e1d13f1880d8bb1fb5fd939e052d1321cd744cbe30e240

 

A tutaj info nt. https://docs.docker.com/network/host/  

 
Dodane : 10/06/2019 9:10 am
(@maciekk)
Wpisów: 106
Pomocny
Autor tematu
 

@kadasz masz 100% racji - wczoraj walczyłem długo i chyba miałem problemy czytania ze zrozumieniem 🤔 Kiedy dostawalem komunikat, że obraz w maciekk/image-domoticz nie istnieje, więc sprawdziłem docker images | grep domoticz i zobaczyłem, że obraz jest w takiej samej lokalizacji jak podałeś (instalując nie robiłem żadnych zmian, poza portem. Niemniej próbując uruchomić domoticz z tej lokalizacji dostawalem info, że istnieje konflikt z nazwą. I to mnie zwiodło. Komunikat był taki jak na zrzucie.

konflikt
A więc pomimo zatrzymania kontenera w portainer, ciągle był w użyciu i nie pozwalał się uruchomić. W każdym razie aby nie zaśmiecać instalacji usunąłem kontener domoticza, zrobiłem pełną nową instalację na czystym systemie od razu z opcją hosta. Wszystko poszło bezproblemowo, że aż poczułem się niespokojnie 😀 Po zainstalowaniu (domoticz pomimo zmiany nr portu - bo taki miałem już w notatniku do kopiowania) uruchamia się na porcie 8080. Po dodaniu xiaomi gateway - wszystkie graty od xiaomi, które mam podpięte do bramkę pojawiły się po niecałej minucie 😎 Wszystko pięknie się odnalazło i poinstalowało.
Teraz mogę spokojnie spróbowac przekopiować moje ustawienia z RPi i spróbowac zainstalować kolejne elementy domoticza,  (pewno więc będę się odzywał szukając pomocy 🙂
Na razie wielkie dzięki za całe wsparcie i cierpliwość 😉 i powiedz, gdzie wysłać piwko 🍺 
 
Dodane : 10/06/2019 6:03 pm
kadasz
(@kadasz)
Wpisów: 79
Kontrybutor
 

Dobra wiadomość 👍 może gdzieś, kiedyś będzie spotkanie użytkowników Smart'ny Dom więc pojawi się okazja na 🍻 😀 

 
Dodane : 11/06/2019 1:00 pm
Strona 1 / 3
Udostępnij: