Jeszcze nie mam odpowiedzi od pzygmunt, ale chłop zawalony jest robotą, także bez spiny
Mam już źródła na github, ale bez zgody ich nie wrzucę. Robię też testy u siebie. Dzisiaj po kilkunastu godzinach klient przestał wysyłać dane do mqtt i nie wiem dlaczego. Albo gdzieś mam wyciek pamięci, albo czegoś nie przewidziałem. I jedno i drugie jest prawdopodobne. W każdym bądź razie uruchomiłem dzisiaj klienta na docelowej rpi i w chwili obecnej testuję.
Dla zachęty do poczekania wklejam filmik jak to działa z Dashingiem
https://www.youtube.com/watch?v=VY2wNrF ... e=youtu.be
Supla - MQTT - Dashing
-
- Posts: 2915
- Joined: Mon Dec 11, 2017 9:43 pm
You do not have the required permissions to view the files attached to this post.
SOP 2023
SOP 2024
Czekam na kolejne Supla Offline Party
SOP 2024
Czekam na kolejne Supla Offline Party
-
- Posts: 453
- Joined: Tue Nov 06, 2018 1:49 pm
A tutaj Dashing z bieżącym obciążeniem z MEW-01
You do not have the required permissions to view the files attached to this post.
-
- Posts: 453
- Joined: Tue Nov 06, 2018 1:49 pm
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:
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!
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
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!
-
- Posts: 453
- Joined: Tue Nov 06, 2018 1:49 pm
Instalacja Smashing
Poniżej opis instalacji Smashing w wersji kontenerowej.
Pobieramy załączone archiwum zip.
Rozpakowujemy np. w lokalizacji /opt/smashing
Wchodzimy do katalogu smashing
Uruchamiamy polecenie:
to spowoduje zbudowanie obrazu docker z smashingiem.
edytujemy plik /opt/smashing/lib/hc_mqtt.rb
Dostosowujemy poniższą linię do swojej konfiguracji serwera MQTT.
trzeba wpisać host port i ewentualnie nazwę użytkownika i hasło serwera MQTT
Uruchamiamy kontener poleceniem:
Jeśli wszystko się powiedzie możemy w przeglądarce wpisać http://ip_maszyny:3030/default
Po chwili (cierpliwości) powinien pojawić się dashboard taki jaki wklejałem w poprzednich postach
Pierwsze uruchomienie trochę trwa, potem strona ładuje się już szybko.
Jeśli dashboard się otworzy możemy zacząć edytować widgety.
W tym celu edytujemy plik /opt/smashing/dashobards/default.rb
W tym pliku zdefiniowane są wszystkie widoczne widgety. Jak widać każdy widget ma określony rodzaj (ohtemp, ohswitch itp)
Możemy dostosować widgety do naszej instancji supli. Najważniejsze w każdym widgecie jest Id.
Jest to identyfikator kanału Supla. Jeśli mamy przycisk który w supla cloud ma id np. 2 to żeby spiąć go z dashingiem w pliku default.rb musi mieć także id 2.
Oczywiście w tej chwili jeszcze nie zobaczycie działających stanów swoich urządzeń supla.
Do tego potrzebny jest trzeci komponent supla-mqtt-client
Opiszę go w następnej części!. Pozdro!
Poniżej opis instalacji Smashing w wersji kontenerowej.
Pobieramy załączone archiwum zip.
Rozpakowujemy np. w lokalizacji /opt/smashing
Wchodzimy do katalogu smashing
Uruchamiamy polecenie:
Code: Select all
sudo docker build -t smashing .
edytujemy plik /opt/smashing/lib/hc_mqtt.rb
Dostosowujemy poniższą linię do swojej konfiguracji serwera MQTT.
Code: Select all
client = MQTT::Client.connect(:host => 'host', :port => 1883, :username => 'username', :password => 'password')
Uruchamiamy kontener poleceniem:
Code: Select all
sudo docker run -e GEMS=mqtt -v=/opt/smashing:/smashing -d -p 3030:3030 smashing:latest
Jeśli wszystko się powiedzie możemy w przeglądarce wpisać http://ip_maszyny:3030/default
Po chwili (cierpliwości) powinien pojawić się dashboard taki jaki wklejałem w poprzednich postach
Pierwsze uruchomienie trochę trwa, potem strona ładuje się już szybko.
Jeśli dashboard się otworzy możemy zacząć edytować widgety.
W tym celu edytujemy plik /opt/smashing/dashobards/default.rb
W tym pliku zdefiniowane są wszystkie widoczne widgety. Jak widać każdy widget ma określony rodzaj (ohtemp, ohswitch itp)
Możemy dostosować widgety do naszej instancji supli. Najważniejsze w każdym widgecie jest Id.
Jest to identyfikator kanału Supla. Jeśli mamy przycisk który w supla cloud ma id np. 2 to żeby spiąć go z dashingiem w pliku default.rb musi mieć także id 2.
Oczywiście w tej chwili jeszcze nie zobaczycie działających stanów swoich urządzeń supla.
Do tego potrzebny jest trzeci komponent supla-mqtt-client
Opiszę go w następnej części!. Pozdro!
You do not have the required permissions to view the files attached to this post.
-
- Posts: 453
- Joined: Tue Nov 06, 2018 1:49 pm
Cześć!
Miło mi poinformować, że supla-mqtt-client znalazł się w oficjalnych źródłach Supla! (no prawie oficjalnych bo w osobnej gałęzi)
https://github.com/SUPLA/supla-core/tre ... qtt-client
Zachęcam do testów.
Miło mi poinformować, że supla-mqtt-client znalazł się w oficjalnych źródłach Supla! (no prawie oficjalnych bo w osobnej gałęzi)
https://github.com/SUPLA/supla-core/tre ... qtt-client
Zachęcam do testów.
-
- Posts: 78
- Joined: Wed Jul 26, 2017 8:15 am
- Location: Czernichów
Przyznam się, że od kilku dni jest to pierwszy wątek, który sprawdzam na forumBeku wrote: Sat Nov 09, 2019 7:57 am Cześć!
Miło mi poinformować, że supla-mqtt-client znalazł się w oficjalnych źródłach Supla! (...)
Zachęcam do testów.
Lecę instalować i liczę na wsparcie
-
- Posts: 453
- Joined: Tue Nov 06, 2018 1:49 pm
Wsparcie jak najbardziej zapewniam
Mam nadzieję że ruszy bez problemu.
Pamiętaj że trzeba włączyć rejestrację klientów (smartfonów) w Supla Cloud przed uruchomieniem klienta mqtt
no i jako że klient jest w osobnej gałęzi to po git pull z źródeł supli trzeba zrobić git checkout mqtt-experimental
Mam nadzieję że ruszy bez problemu.
Pamiętaj że trzeba włączyć rejestrację klientów (smartfonów) w Supla Cloud przed uruchomieniem klienta mqtt
no i jako że klient jest w osobnej gałęzi to po git pull z źródeł supli trzeba zrobić git checkout mqtt-experimental