Supla - MQTT - Dashing
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
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
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...
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:
na:
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
na
oraz
na
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
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'),
Kod: Zaznacz cały
id: @get('id'),
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
Kod: Zaznacz cały
plusLevel: ->
newLevel = parseInt(@get('state'))-1
Kod: Zaznacz cały
minusLevel: ->
newLevel = parseInt(@get('state'))+10
Kod: Zaznacz cały
minusLevel: ->
newLevel = parseInt(@get('state'))+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 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:na:Kod: Zaznacz cały
id: @get('device'),
i teraz roleta jeździ w dół i góręKod: Zaznacz cały
id: @get('id'),
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
naKod: Zaznacz cały
plusLevel: -> newLevel = parseInt(@get('state'))-10
orazKod: Zaznacz cały
plusLevel: -> newLevel = parseInt(@get('state'))-1
naKod: Zaznacz cały
minusLevel: -> newLevel = parseInt(@get('state'))+10
i teraz można podnosić o 1%Kod: Zaznacz cały
minusLevel: -> newLevel = parseInt(@get('state'))+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