Inledning
Futurehome har lagt till funktionen för att öppna lokal API-åtkomst över MQTT.
OBS! Endast för Smarthubs med version >= 1.9.xx
När åtkomst är aktiverad - porten 1884 på Smarthub kommer att öppnas. Den här porten exponerar MQTT inuti smarthub och låter andra MQTT-klienter ansluta till den. Anslutningen är säkrad med ett användarnamn och lösenord som kan ställas in i Futurehome-appen.
OBS! Det enda sättet att inaktivera den lokala MQTT-åtkomsten är att skicka en förfrågan till Futurehome-support.
Kommunikationen görs med FIMP - Futurehome IoT meddelandeprotokoll och är dokumenterad på Github: https://github.com/futurehomeno/fimp-api
Aktivera åtkomst
- Logga in i Futurehome-appen.
- Gå till det avancerade alternativet under inställningar för webbplatsen.
- Ange ett användarnamn och lösenord (minimum antal tecken).
- Tryck på Aktivera
- Använd ett verktyg som Fing för att hitta IP-adressen till din Smarthub (cube.local) i det lokala nätverket.
- Anslut till MQTT på din Smarthub över port 1884 med användarnamn och lösenord. Du kan använda vilken MQTT-klient som helst för att ansluta. I exemplet nedan kommer vi att använda Node-Red
Användning
All kommunikation görs med FIMP över MQTT - du kan hitta dokumentationen på Github: https://github.com/futurehomeno/fimp-api
I det här exemplet kommer vi att använda Node-Red
Konfigurera MQTT-nod
- Välj mqtt-noden under inmatning
- Lägg till ny mqtt-broker under Server
- Konfigurera noden med IP-adressen som finns i Fing (eller lokalt namn för värd) och användarnamn och lösenord som anges i appen.
- Lägg till konfigurationen
- Prenumerera på ämne: pt:j1/#
Detta kommer att låta dig se alla meddelanden från enheter och appar i Smarthub - Du kan läsa mer om ämnesstrukturen i Github
Få en lista över enheter på Smarthub
För detta kommer vi att behöva två mqtt-noder, en ingång och en utgång. Vi kommer att skicka ett meddelande till utgångsnoden för att begära en lista över enheter. Och vi kommer att få svaret på ingångsnoden. Vi kommer också att använda ingångsnoden för att skicka meddelandet och felsökningsnoden för att visa svaret.
Utgång - mqtt-nod
- Välj den server som du lade till i föregående steg
- Lägg till ämne: pt:j1/mt:cmd/rt:app/rn:vinculum/ad:1
Ingång - injicera nod
- Välj JSON som nyttolast
- Lägg till följande FIMP-meddelande:
{
"ctime": "2019-09-04 17:36:31 +0200",
"props": {},
"resp_to": "pt:j1/mt:rsp/rt:app/rn:node-red/ad:flow1",
"serv": "vinculum",
"src": "node-red",
"tags": [],
"type": "cmd.pd7.request",
"uid": "09936904-8ec8-4280-9285-945d77bd0a74",
"val": {
"cmd": "get",
"component": null,
"id": null,
"param": {
"components": [
"device"
]
},
"requestId": 7294000000007
},
"val_t": "object",
"ver": "1"
}
- Ämne kan lämnas tomt eftersom vi lade till det i mqtt utgångsnoden eller så kan du lägga till: pt:j1/mt:cmd/rt:app/rn:vinculum/ad:1
Ingång - mqtt-nod
- Välj den server som du lade till i första steget
- Lägg till ämnet som vi använde i "resp_to" i injiceringsnoden: pt:j1/mt:rsp/rt:app/rn:node-red/ad:flow1
- Ställ in Utgång som ett parsat JSON-objekt
Utgång - felsökningsnod
- Lägg till felsökningsnoden, inga inställningar behövs
Testa den!
- Anslut noderna så här:
- Du bör se att noderna ansluter efter att ha tryckt på knappen distribuera.
- Tryck på injiceringsnoden för att skicka meddelandet.
- Du bör se det mottagna meddelandet under felsökningsvyn
- Kopiera meddelandet och använd din favoritparser för JSON för att visa den, eller bara det i Node-red
- Detta flöde bifogat i slutet av artikeln
Styr out_bin_switch på en enhet
Detta flöde bifogat i slutet av artikeln
Kommentarer
0 kommentarer
logga in för att lämna en kommentar.