Supla - MQTT - Dashing

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
Kaowiec
Posty: 78
Rejestracja: śr lip 26, 2017 8:15 am
Lokalizacja: Czernichów

Ha!
Klient ruszył na svr5.supla.org a na mojej prywatnej starej wersji... nie działa

Dodatkowo nie łączy się z moim mosquitto ale to też pewnie dlatego, że jest stare...

Walczę dalej :)

Dadatkowe info:
jeśli nie uzywacie w mosquitto login i pass trzeba usunąć całe dwa wiersze username i password z config_template
Beku
Posty: 453
Rejestracja: wt lis 06, 2018 1:49 pm

klient MQTT używa wersji 5 protokołu MQTT, i przynajmniej 10 wersji protokołu SUPLA. :)
cino111
Posty: 714
Rejestracja: pn maja 07, 2018 8:00 pm

Widzę, ze trochę trzeba pokombinować. Może zróbcie tutorial pokolej jakie polecenia trzeba wpisywać, bo chcialem wlasnie stawiac u siebie, ale coś czuję ze nie ogarnę.
Beku
Posty: 453
Rejestracja: wt lis 06, 2018 1:49 pm

Generalnie opisywałem po kolei, ale masz rację. Pierwszy użytkownik ma problemy więc jest trochę do poprawki głównie w opisach. Ale z każdą kolejną instalację będzie lepiej :)
Kaowiec
Posty: 78
Rejestracja: śr lip 26, 2017 8:15 am
Lokalizacja: Czernichów

Ciąg dalszy...

Problem z mosquitto - dostaję taką zwrotkę z konsoli klienta-supla:

Kod: Zaznacz cały

pi@supla_server:~/supla-mqtt $ ./supla-mqtt-client -config config_template.yaml
INFO[1573301859.200208] initializing main loop
INFO[1573301859.201796] Client GUID: 1F22D271D0393DBA36FC2F355BF7CCEE
INFO[1573301859.205631] SSL version: OpenSSL 1.1.0l  10 Sep 2019
INFO[1573301859.213739] Connecting...
mqtt client error MQTT_ERROR_SOCKET_ERROR
mqtt client error MQTT_ERROR_SOCKET_ERROR
mqtt client error MQTT_ERROR_SOCKET_ERROR
mam zaktualizowanego brokera

Kod: Zaznacz cały

pi@deCONZ:~ $ mosquitto -v
1573301731: mosquitto version 1.3.4 (build date 2019-10-26 22:21:58+0000) starting
1573301731: Using default config.
1573301731: Opening ipv4 listen socket on port 1883.
1573301731: Error: Address already in use
generalnie mqtt do tej pory cały czas działa z "innymi" usługami.
Nie jest to wersja dockerowa.
nie ma loginu i hasła
Kaowiec
Posty: 78
Rejestracja: śr lip 26, 2017 8:15 am
Lokalizacja: Czernichów

Beku pisze: sob lis 09, 2019 12:13 pm Generalnie opisywałem po kolei, ale masz rację. Pierwszy użytkownik ma problemy więc jest trochę do poprawki głównie w opisach. Ale z każdą kolejną instalację będzie lepiej :)
OK
Instalacja nie jest trudna skoro sobie poradziłem (dzięki @Beku) :)
Opiszę później jeśli bedzie taka potrzeba jak to zrobić po kolei.
Jest jednak problem z mosquitto dla raspberry pi - maliny dostają wersję, która nie gada z supla-mqtt-client.
Trochę powalczyłem ale na chwilę obecną odpuszczam bo boję się, zepsuć broker, który działa u mnie od dawna i ma sporo pracy :)
Spróbuje wersji dockerowej na innej maszynce albo na tej samej ale na innym porcie..
Chwilowo rozwiązałem to instalacją na firmowym serwerze z Win10 :) - działa :)
Raczej nie będzie u mnie to działać to tak jak zostało wymyślone przez @Beku - planuję połączyć Suplę z applowym homekitem :)
Beku
Posty: 453
Rejestracja: wt lis 06, 2018 1:49 pm

Postaram się dorobić wersje gadająca po protokole 3.1 MQTT bo wyglada na to że jest go zdecydowanie więcej niż wersji 5. Ale super że w ogóle działa gdzieś indziej niż u mnie 😄
Kaowiec
Posty: 78
Rejestracja: śr lip 26, 2017 8:15 am
Lokalizacja: Czernichów

Beku pisze: sob lis 09, 2019 6:59 pm Postaram się dorobić wersje gadająca po protokole 3.1 MQTT bo wyglada na to że jest go zdecydowanie więcej niż wersji 5. Ale super że w ogóle działa gdzieś indziej niż u mnie 😄
Super! Świetna robota!
A jakbyś jeszcze zrobił dla "starszego clouda" byłoby rewelacyjnie...
cino111
Posty: 714
Rejestracja: pn maja 07, 2018 8:00 pm

Beku pisze: pn lis 04, 2019 8:25 pm Instalacja Smashing

Poniżej opis instalacji Smashing w wersji kontenerowej.

Pobieramy załączone archiwum zip.

smashing.zip

Rozpakowujemy np. w lokalizacji /opt/smashing
Wchodzimy do katalogu smashing

Uruchamiamy polecenie:

Kod: Zaznacz cały

 sudo docker build -t smashing .
to spowoduje zbudowanie obrazu docker z smashingiem.

edytujemy plik /opt/smashing/lib/hc_mqtt.rb

Dostosowujemy poniższą linię do swojej konfiguracji serwera MQTT.

Kod: Zaznacz cały

client = MQTT::Client.connect(:host => 'host', :port => 1883, :username => 'username', :password => 'password')
trzeba wpisać host port i ewentualnie nazwę użytkownika i hasło serwera MQTT

Uruchamiamy kontener poleceniem:

Kod: Zaznacz cały

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!
Stawiam wszystko na RPI 3B
w lini

Kod: Zaznacz cały

client = MQTT::Client.connect(:host => 'host', :port => 1883, :username => 'username', :password => 'password')
jako host mam wpisać IP maliny? Jezeli nie ustawiałem nazwy i hasla to mam tę cześć usunąć czy zostawić jak jest?

Mam taki błąd

Kod: Zaznacz cały

root@raspberrypi:/opt/smashing# sudo docker run -e GEMS=mqtt -v=/opt/smashing:/smashing -d -p 3030:3030 smashing:latest
d7ba3a6765ae9c27ba836e8805b8701ee9cc8411f29752bc5db63d21e7e0febd
docker: Error response from daemon: driver failed programming external connectivity on endpoint agitated_cartwright (3afee68745b3c36b1205b03ae819a4636c5dd1265d55f7b12afd4dd6be312063):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3030 -j DNAT --to-destination 172.17.0.2:3030 ! -i docker0:  (fork/exec /usr/sbin/iptables: structure needs cleaning)).
Beku
Posty: 453
Rejestracja: wt lis 06, 2018 1:49 pm

w hostname wpisujesz adres ip brokera MQTT, jeśli masz go postawionego na tej malinie to możesz wpisać IP tej maliny.
Ważne jest żeby host był widoczny z wewnątrz docker'a. Username i password wykasuj jeśli nie używasz.

co do błędu ...

pierwsze widzę, możesz spróbować inny port np. -p 3333:3030 lub inny. Być może ten port masz zajęty.
ODPOWIEDZ

Wróć do „Pomysły i koncepcje”