Supla - MQTT - Dashing

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
cino111
Posts: 714
Joined: Mon May 07, 2018 8:00 pm

Post

Czy komuś udało się uruchomić od początku do końca na RPI?
Jutro robię drugie podejście :D
Jak zainstalować MQTT Explorer? Najlepeij komenda po komendzie. Pobrałem z Githuba, ale nie wiem co dalej :roll:
Beku
Posts: 453
Joined: Tue Nov 06, 2018 1:49 pm

Post

MQTT Explorer instalujesz z tej strony:
Tam jest wersja instalacyjna pod Windows

http://mqtt-explorer.com/
Kaowiec
Posts: 78
Joined: Wed Jul 26, 2017 8:15 am
Location: Czernichów

Post

cino111 wrote: Fri Nov 15, 2019 4:53 pm Czy komuś udało się uruchomić od początku do końca na RPI?
Jutro robię drugie podejście :D
Jak zainstalować MQTT Explorer? Najlepeij komenda po komendzie. Pobrałem z Githuba, ale nie wiem co dalej :roll:
Na razie udało mi się uruchomić na windowsowym mqtt broker bo z wersją rpi chwilowo nie działa.
Ale @Beku obiecuje, że w kilka dni będzie mieć wersje działająca na malinach.
Protestuj póki co na windowsie:)
cino111
Posts: 714
Joined: Mon May 07, 2018 8:00 pm

Post

Na czystym rasbianie z docker-compose zrobiłem tak:

Code: Select all

git clone https://github.com/toke/docker-mosquitto.git
cd docker-mosquitto
docker build .
docker run -ti -p 1883:1883 -p 9001:9001 toke/mosquitto
i mam

Code: Select all

Digest: sha256:3c18df61133085cec34050ed3d2f851bbe8d883483fb9167a05c616950b5e94b
Status: Downloaded newer image for toke/mosquitto:latest
standard_init_linux.go:211: exec user process caused "exec format error"
To jest ten błąd o którym piszesz @kaowiec?
Beku
Posts: 453
Joined: Tue Nov 06, 2018 1:49 pm

Post

Beku wrote: Mon Nov 04, 2019 10:02 am 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!
Dlaczego nie korzystasz z tego co opisałem??
Beku
Posts: 453
Joined: Tue Nov 06, 2018 1:49 pm

Post

Jedyne co musisz zrobić to to:

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

I nie, nieprawda że nie działa na Mosquitto na RPi. Nie zrobiłem wsparcia dla wersji 3.1.1 MQTT, dla nowszej wszystko działa a powyższy kod taka właśnie wersję instaluje.
Mam wszystko postawione na RPi w kontenerach.
Kaowiec
Posts: 78
Joined: Wed Jul 26, 2017 8:15 am
Location: Czernichów

Post

Beku wrote: Sat Nov 16, 2019 4:01 pm

I nie, nieprawda że nie działa na Mosquitto na RPi. Nie zrobiłem wsparcia dla wersji 3.1.1 MQTT, dla nowszej wszystko działa a powyższy kod taka właśnie wersję instaluje.
Mam wszystko postawione na RPi w kontenerach.
Racja.
Wersja kontenerowa na rpi działa.
Nie działa tylko ta, którą się instaluje bezpośrednio z repozytoriow.
Ale będzie działać...
:)
Beku
Posts: 453
Joined: Tue Nov 06, 2018 1:49 pm

Post

Stosowna zmiana już czeka na akceptację przez naczelnego wodza :)
cino111
Posts: 714
Joined: Mon May 07, 2018 8:00 pm

Post

chyba jednak coś nie tak

Code: Select all

root@raspberrypi:/home/pi# 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
Unable to find image 'toke/mosquitto:latest' locally
latest: Pulling from toke/mosquitto
3d77ce4481b1: Pull complete
846891b17e6d: Pull complete
34157dd498aa: Pull complete
ed5d19727749: Pull complete
0969bf11f82b: Pull complete
2e3e26bab9eb: Pull complete
Digest: sha256:3c18df61133085cec34050ed3d2f851bbe8d883483fb9167a05c616950b5e94b
Status: Downloaded newer image for toke/mosquitto:latest
standard_init_linux.go:211: exec user process caused "exec format error"
root@raspberrypi:/home/pi#
Beku
Posts: 453
Joined: Tue Nov 06, 2018 1:49 pm

Post

Wykonaj:

Code: Select all

sudo apt-get update
sudo apt-get upgrade 
I spróbuj jeszcze raz. U mnie na RPi nie ma problemu z tym obrazem dokerowym.

Możesz również spróbować innej instancji z docker huba:

Code: Select all


docker run -it -p 1883:1883 -p 9001:9001 -v mosquitto.conf:/mosquitto/config/mosquitto.conf -v /mosquitto/data -v /mosquitto/log eclipse-mosquitto

Return to “Pomysły i koncepcje”