Supla - MQTT - Dashing

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
Beku
Posty: 453
Rejestracja: wt lis 06, 2018 1:49 pm

rozwiń ten command w mqtt Explorer i zobacz czy się zmienia jak naciskasz coś w dashing i daj screena z mqtt explorera z payloadem
tomekk87
Posty: 185
Rejestracja: pt sie 02, 2019 12:19 pm

desaint pisze: wt gru 31, 2019 3:41 pm mnie zastanawia czemu masz 5 stopni w domu a 22 na balkonie... :lol:
Wiedziałem, że będziecie się z tego śmiać. Ta niska temp. dotyczy domku letniskowego gdzie nie mam uruchomionego ogrzewania.
tomekk87
Posty: 185
Rejestracja: pt sie 02, 2019 12:19 pm

Beku pisze: wt gru 31, 2019 3:44 pm rozwiń ten command w mqtt Explorer i zobacz czy się zmienia jak naciskasz coś w dashing i daj screena z mqtt explorera z payloadem
O jaki command chodzi?
Załączniki
img_004.JPG
img_004.JPG (82.42 KiB) Przejrzano 2561 razy
darius
Posty: 51
Rejestracja: pn paź 24, 2016 7:35 pm

Cześć
przebijam się przez poradnik instalacji.
Mam serwer i Cloud w wersji dockerowej na własnym VPS z CentOS.
Zainstalowałem brokera i smashing.
Do mqtt łączę się explorerem dasboard mi się pod 3030 wyświetla. Teraz skompilowalem klienta supla uzupełniłem config i odpalam w efekcie mam błąd jak niżej. Klient dodał się jako Supla MQTT Proxy. Sypie tym błędem cały czas jak mogę to debugowac czy klient odkłada jakiś log?

]#
[root@vps Release]# ./supla-mqtt-client -config ../config/config_template.yaml
INFO[1578396568.529555] initializing main loop
INFO[1578396568.530372] Client GUID: 07963CA256165BFE9EAF771E3D8F6AAF
INFO[1578396568.532191] SSL version: OpenSSL 1.0.2k-fips 26 Jan 2017
INFO[1578396568.535090] Connecting...
mqtt client error MQTT_ERROR_SOCKET_ERROR
mqtt client error MQTT_ERROR_SOCKET_ERROR
mqtt client error MQTT_ERROR_SOCKET_ERROR
mqtt client error MQTT_ERROR_SOCKET_ERROR
mqtt client error MQTT_ERROR_SOCKET_ERROR
Beku
Posty: 453
Rejestracja: wt lis 06, 2018 1:49 pm

Zmień w config_template.yaml protocol_version przy mqtt na 3
darius
Posty: 51
Rejestracja: pn paź 24, 2016 7:35 pm

Rewelacja teraz ruszyło. Na przykładzie jednego kanału przetestowałem że działa :) Generalnie świetna robota Beku bardzo dziękuję. Teraz pozostaje szykować dashboard i zamawiać tablet na ścianę
Beku
Posty: 453
Rejestracja: wt lis 06, 2018 1:49 pm

darius pisze: wt sty 07, 2020 1:17 pm Rewelacja teraz ruszyło. Na przykładzie jednego kanału przetestowałem że działa :) Generalnie świetna robota Beku bardzo dziękuję. Teraz pozostaje szykować dashboard i zamawiać tablet na ścianę
Tylko jeśli chodzi o sterowanie z dashing to tam jest obsługa jedynie przycisków - z braku pozostałych nie bawiłem się w rolety czy ściemniacze ale da się to zrobić. Ostatnio mam bardzo mało czasu na to...
darius
Posty: 51
Rejestracja: pn paź 24, 2016 7:35 pm

Co do sterowania roletami to wykorzystałem Twój kod pisany na sucho i po jednej poprawce zaczyna działać.
Zauważyłem że w command MQTT brakuje ID rolety:

command
rollershutter
= {"id" : , "shut" : 100}

więc w pliku cofee zmieniłem wszystkie wystąpienia:

Kod: Zaznacz cały

id: @get('device'),
na:

Kod: Zaznacz cały

id: @get('id'),
i teraz roleta jeździ w dół i górę :)

command
rollershutter
= {"id" : , "shut" : 100}
38 = {"id" : 38 , "shut" : 100}

Zauważyłem jeszcze że roleta zmienia położenie od razu o 10% więc zmieniłem

Kod: Zaznacz cały

plusLevel: ->
    newLevel = parseInt(@get('state'))-10
na

Kod: Zaznacz cały

plusLevel: ->
    newLevel = parseInt(@get('state'))-1
oraz

Kod: Zaznacz cały

minusLevel: ->
    newLevel = parseInt(@get('state'))+10
na

Kod: Zaznacz cały

minusLevel: ->
    newLevel = parseInt(@get('state'))+1
i teraz można podnosić o 1%

Problem jest jednak z pobraniem stanu początkowego. Zawsze ustawia na starcie 0% :(
Odpowiedzialny jest chyba za to fragment (nie jestem programistą)
Jeśli dobrze rozumiem to on na sztywno ustawia o lub 80, jak to zmienić żeby był stan bieżący?

toggleState: ->
newState = if @get('state') > 0 then '0' else '80'
@set 'state', newState
return newState
Beku
Posty: 453
Rejestracja: wt lis 06, 2018 1:49 pm

darius pisze: wt sty 07, 2020 6:10 pm Co do sterowania roletami to wykorzystałem Twój kod pisany na sucho i po jednej poprawce zaczyna działać.
Zauważyłem że w command MQTT brakuje ID rolety:

command
rollershutter
= {"id" : , "shut" : 100}

więc w pliku cofee zmieniłem wszystkie wystąpienia:

Kod: Zaznacz cały

id: @get('device'),
na:

Kod: Zaznacz cały

id: @get('id'),
i teraz roleta jeździ w dół i górę :)

command
rollershutter
= {"id" : , "shut" : 100}
38 = {"id" : 38 , "shut" : 100}

Zauważyłem jeszcze że roleta zmienia położenie od razu o 10% więc zmieniłem

Kod: Zaznacz cały

plusLevel: ->
    newLevel = parseInt(@get('state'))-10
na

Kod: Zaznacz cały

plusLevel: ->
    newLevel = parseInt(@get('state'))-1
oraz

Kod: Zaznacz cały

minusLevel: ->
    newLevel = parseInt(@get('state'))+10
na

Kod: Zaznacz cały

minusLevel: ->
    newLevel = parseInt(@get('state'))+1
i teraz można podnosić o 1%

Problem jest jednak z pobraniem stanu początkowego. Zawsze ustawia na starcie 0% :(
Odpowiedzialny jest chyba za to fragment (nie jestem programistą)
Jeśli dobrze rozumiem to on na sztywno ustawia o lub 80, jak to zmienić żeby był stan bieżący?

toggleState: ->
newState = if @get('state') > 0 then '0' else '80'
@set 'state', newState
return newState
Za stan początkowy w zasadzie jest odpowiedzialna metoda queryState , tam ustawiana jest zmienna state na podstawie tego co przychodzi. Sprawdź jak jest brana wartość np. temperatury czy stan przycisku i analogicznie trzeba z jsona który jest publikowany do MQTT dotyczącego rolet wyłuskać położenie rolety.
darius
Posty: 51
Rejestracja: pn paź 24, 2016 7:35 pm

Chciałem podejrzeć metodę querystate dla ohtemp ale tam jest tylko nagłówek
cat ohtemp.coffee
class Dashing.Ohtemp extends Dashing.Widget

I nic więcej 😞
ODPOWIEDZ

Wróć do „Pomysły i koncepcje”