Publicering till externa tjänster
Yggio stödjer att skicka uppdateringsdata för enheter till externa tjänster.
Det finns två sätt vi uppnår detta på, vår egen interna Publisher och NGSI-prenumerationer. De fungerar på liknande sätt, men det finns några betydande skillnader. De största skillnaderna är stöd för MQTT och formatet på den publicerade datan.
NGSI-prenumerationer
Dokumentation om NGSI-prenumerationer finns här
Publisher
Publisher är en intern tjänst som skickar data genom antingen HTTP eller MQTT.
För att ta emot uppdateringar från en enhet med hjälp av Publisher måste du skapa en channel. Kanalen är en beskrivning av var uppdateringar till iotnoden ska skickas. Se bilden nedan.
HTTP-data skickas genom en POST-förfrågan till kanalens URL.
MQTT-data skickas genom Yggios MQTT-mäklare till kanalens ämne.
Förfrågans kropp kommer att ha följande format:
{
iotnode: Iotnode,
diff: Object,
event: Object
}
iotnode
är iotnode-entiteten som har uppdaterats.
diff
innehåller attributen som ändrades i uppdateringen.
event
innehåller attributen som utlöste uppdateringen.
Skapa en kanal
Att skapa en kanal görs genom en enkel POST-förfrågan till vår REST API, detaljer kan hittas på Swagger.
Krav för HTTP- och MQTT-kanaler skiljer sig och kan hittas nedan. Kanaler kräver alltid en iotnodeId
och ett name
.
HTTP
För att skapa en HTTP-kanal krävs också en url
.
URL:en kommer inte att ändras på något sätt i Yggio, så se till att den matchar din server exakt.
Detta innebär att inkludera http/https om det krävs.
Uppdateringar för iotnoden kommer att POST:as till URL:en med header content-type: application/json
, dvs. det kommer att POST:as som JSON.
MQTT
För att skapa en MQTT-kanal krävs en type
.
Du har möjlighet att välja mellan keycloakUser eller basicCredentialsSet som type
.
Yggio är värd för sin egen mäklare och publicerar iotnode-uppdateringar till användar- eller klientspecifika ämnen. Det krävs fortfarande att skapa en kanal för att se uppdateringarna.
För information om hur du ansluter, hänvisa till MQTT (data consumer).