Lokal API-åtkomst över MQTT (Beta)

  • Uppdaterad

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

  1. Logga in i Futurehome-appen.
  2. Gå till det avancerade alternativet under inställningar för webbplatsen.
  3. Ange ett användarnamn och lösenord (minimum antal tecken).
    mceclip0.png
  4. Tryck på Aktivera
  5. Använd ett verktyg som Fing för att hitta IP-adressen till din Smarthub (cube.local) i det lokala nätverket.
  6. 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

mqtt_setup.png

  • 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"
    }

vinculum_get_device.png

  • Ä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

vinculum_response.png

Utgång - felsökningsnod

  • Lägg till felsökningsnoden, inga inställningar behövs

 

Testa den!

  • Anslut noderna så här:

connected_nodes.png

  • 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

response_msg.png

  • 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

control-out_bin_switch.png

 

 

 

 

Var denna artikel till hjälp?

2 av 2 tyckte detta var till hjälp

Har du fler frågor? Skicka en förfrågan

Kommentarer

0 kommentarer

logga in för att lämna en kommentar.