Paikallisen ohjelmointirajapinnan käyttöoikeus MQTT:n kautta (beta)

  • Päivitetty

Esittely

Futurehome on lisännyt toiminnon, joka avaa paikallisen ohjelmointirajapinnan käyttöoikeuden MQTT:n kautta.

HUOM!  Vain Smarthubeille, joiden versio on >= 1.9.xx

Kun käyttöoikeus on luotu – Smarthubin portti 1884 avataan. Tämä portti päästää MQTT-välittäjän Smarthubiin ja antaa muiden MQTT-asiakasohjelmien muodostaa siihen yhteyden. Yhteys suojataan käyttäjätunnuksella ja salasanalla, jotka voidaan asettaa Futurehome-sovelluksessa.

HUOM!  Ainoa tapa poistaa paikallinen MQTT-käyttöoikeus on lähettää pyyntö Futurehomen tukeen.

Viestintä tapahtuu FIMP-protokollalla (Futurehome IoT Messaging Protocol) ja se dokumentoidaan Githubissa: https://github.com/futurehomeno/fimp-api

Käyttöoikeuden luominen

  1. Kirjaudu sisään Futurehome-sovellukseen.
  2. Siirry asetussivulla lisäasetuksiin.
  3. Anna käyttäjätunnus ja salasana (minimimerkkimäärä).
    mceclip0.png
  4. Paina Aktivoi
  5. Käytä työkalua, kuten Fing, löytääksesi Smarthubin IP-osoitteesi (cube.local) paikallisverkosta.
  6. Muodosta MQTT-yhteys Smarthubissa portin 1884 kautta käyttäjätunnuksella ja salasanalla. Voit käyttää mitä tahansa MQTT-asiakasohjelmaa yhteyden luomiseen. Seuraavassa esimerkissä käytämme Node-Red-ohjelmointityökalua

Käyttö

Kaikki viestintä tapahtuu FIMP-protokollalla MQTT:n kautta – löydät dokumentaation Githubista: https://github.com/futurehomeno/fimp-api

Tässä esimerkissä käytämme Node-Red-ohjelmointityökalua

Määritä MQTT-solmu

  • Valitse tulon alta MQTT-solmu
  • Lisää uusi MQTT-välittäjä kohtaan Server (palvelin)
  • Määritä solmu Fingistä löytyvällä IP-osoitteella (tai paikallisella isäntänimellä) sekä sovellukseen syötetyllä käyttäjätunnuksella ja salasanalla.
  • Lisää määritys

mqtt_setup.png

  • Tilaa aihe: pt:j1/#
    Tämän avulla näet kaikki viestit Smarthubin laitteista ja sovelluksista
  • Voit lukea lisää aiherakenteesta Githubissa

 

Hae Smarthubin laiteluettelo

Tätä varten tarvitsemme kaksi MQTT-solmua, yhden tulon ja yhden lähdön. Lähetämme lähtösolmuun viestin, joka pyytää laiteluettelon. Saamme vastauksen tulosolmuun. Käytämme myös lisäyssolmua viestin lähettämiseen ja virheenkorjaussolmua vastauksen katseluun.

Lähtö – MQTT-solmu

  • Valitse edellisessä vaiheessa lisäämäsi palvelin
  • Lisää aihe: pt:j1/mt:cmd/rt:app/rn:vinculum/ad:1

Tulo – lisäyssolmu

  • Valitse JSON tietosisällöksi
  • Lisää seuraava FIMP-viesti:
    {
    "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

  • Aihe voidaan jättää tyhjäksi, koska lisäsimme sen MQTT-lähtösolmuun, tai voit lisätä: pt:j1/mt:cmd/rt:app/rn:vinculum/ad:1

Tulo – MQTT-solmu

  • Valitse ensimmäisessä vaiheessa lisäämäsi palvelin
  • Lisää aihe, jota käytimme kohdassa resp_to, lisäyssolmuun: pt:j1/mt:rsp/rt:app/rn:node-red/ad:flow1
  • Määritä lähtö jäsennetyksi JSON-objektiksi

vinculum_response.png

Lähtö – virheenkorjaussolmu

  • Lisää virheenkorjaussolmu, asetuksia ei tarvita

 

Testaa!

  • Yhdistä solmut näin:

connected_nodes.png

  • Näet, että solmut muodostavat yhteyden lähetyspainikkeen painamisen jälkeen.
  • Lähetä viesti painamalla lisäyssolmua.
  • Näet vastaanotetun viestin virheenkorjausnäkymässä

response_msg.png

  • Kopioi viesti ja katso se haluamallasi JSON-jäsentäjällä tai vain Node-redissä
  • Tämä virtaus on liitetty artikkelin loppuun

 

 

Ohjaa out_bin_switch laitteella

Tämä virtaus on liitetty artikkelin loppuun

control-out_bin_switch.png

 

 

 

 

Oliko tämä artikkeli hyödyllinen?

3/3 koki tästä olevan apua

Lisäkysymyksiä? Lähetä pyyntö

Kommentit

0 kommenttia

Kirjaudu sisään jättääksesi kommentin.