Cześć!
Nadszedł moment na opisanie poszczególnych klocków mojego rozwiązania.
Aby osiągnąć efekt jaki prezentowałem musimy zainstalować kilka komponentów.
Ja wszystkie z nich instaluję w kontenerach i taką instalację tutaj opiszę, ale jak ktoś nie chce nie musi. Feel free.
Do zarządzania kontenerami polecam Portainer -
https://www.portainer.io/
Oczywiście samo w sobie działa również jako kontener. Ale nie jest ono konieczne aby działało wszystko co opisałem poniżej.
Chciałbym na wstępie zaznaczyć, że nie biorę odpowiedzialności za to, że ktoś popsuje sobie swoją instalacje Linuxa, Rpi itd.
Każdy robi to na własną odpowiedzialność. Mogę jedynie zapewnić, że kroki opisane poniżej wykonywałem sam u siebie i wszystko działa.
W każdym bądź razie potrzebne nam będą:
1. Serwer MQTT
2. Smashing
3. Supla-mqtt-client
Instalacja serwera Mosquitto MQTT - docker
W poniższym opisie zakładam, że Użytkownik ma podstawowe pojecie o docke'rze i potrafi go używać.
Zakładam również że Użytkownik ma zainstalowanego dockera
Instalacja wersji dockerowej serwera MQTT Mosquitto jest stosunkowo prosta.
Ja skorzystałem z kodu udostępnionego pod adresem:
https://github.com/toke/docker-mosquitto
lub to samo na Docker Hub:
https://hub.docker.com/r/toke/mosquitto/
Zasadniczo wszystko sprowadza się do polecenia:
Code: Select all
mkdir -p /srv/mqtt/config/
mkdir -p /srv/mqtt/data/
mkdir -p /srv/mqtt/log/
# place your mosquitto.conf in /srv/mqtt/config/
# NOTE: You have to change the permissions of the directories
# to allow the user to read/write to data and log and read from
# config directory
# For TESTING purposes you can use chmod -R 777 /srv/mqtt/*
# Better use "-u" with a valid user id on your docker host
# Copy the files from the config directory of this project
# into /src/mqtt/config. Change them as needed for your
# particular needs.
docker run -ti -p 1883:1883 -p 9001:9001 \
-v /srv/mqtt/config:/mqtt/config:ro \
-v /srv/mqtt/log:/mqtt/log \
-v /srv/mqtt/data/:/mqtt/data/ \
--name mqtt toke/mosquitto
Spowoduje to pobranie obrazu z Docker Hub i uruchomienie kontenera.
W powyższych wpisach opisane jest jak sprawić aby kontener ruszył przy starcie systemu itd.
Jeśli wszystko się powiedzie możemy sprawdzić czy nas serwer MQTT jest widoczny w sieci.
Może do tego posłużyć narzędzie MQTT Explorer dostępne pod adresem:
http://mqtt-explorer.com/
Wpisujemy w nim adres naszego serwera MQTT i port (domyślnie 1883). Jeśli serwer działa to MQTT Explorer się do niego podłączy.
Zalecam od razu po zainstalowaniu MQTT przejście przez poradnik dotyczący zabezpieczenia serwera użytkownikiem i hasłem (link poniżej)
UWAGA!!! Niektóre z operacji opisanych w poniższym poradniku dotyczącym zabezpieczania serwera MQTT wymagają użycia narzędzi dostępnych w MQTT.
Jeśli zainstalowaliśmy mosquitto jako kontener musimy podłączyć się do tego kontenera poleceniem:
docker exec -it <containerIdOrName> bash
wtedy dostępne będzie np. narzędzie mosquitto_passwd
http://www.steves-internet-guide.com/mq ... d-example/
MQTT Explorer wspiera również autoryzację user/pass wiec możemy od razu ją przetestować.
Jeśli MQTT Explorer może się połączyć do naszego serwera to znaczy, że wszystko jest OK. Możemy przejść do kolejnego kroku.
Jeśli nie - nie idźcie dalej. Lepiej rozwiązywać problemy po kolei. Piszcie w wątku postaram się pomóc.
Ok, w tej części to tyle. Po południu wrzucę źródła z mojego Smashing'a i opis jak go zainstalować. Pozdro!