Hoppa till huvudinnehåll

Dataflöden, timers och geofences

Ett flöde är vägen en inkommande rapport tar genom Yggio. Det avgör vilka tjänster som ser rapporten och i vilken ordning - translatorer, beräkningar, positionstjänsten, databasen, kanalerna och regelmotorn.

De flesta enheter behöver aldrig något annat än standardflödet. Du ändrar flödet när användningsfallet kräver något standardvägen inte klarar. Det finns två sådana saker: en timer som lever längre än en enskild rapport, och en kontroll av om en enhet är inne i en geofence.

FlödeVad det lägger till
DefaultIngenting. Translatorer, beräkningar, position, databas, kanaler, regler
General TimerEn timer per enhet, så att ett villkor kan krävas bestå över tid
General Geo QueryGeofence-kontroller, för spårning
General Timer and Geo QueryBåda

Ett flöde är en uppsättning instruktioner, och det kan innehålla transformfunktioner - kod du laddar upp och som Yggio kör i en sandlåda som en del av flödet.

Flöden är också hur Yggio klarar högfrekventa data: ett flöde kan hoppa över större delen av pipelinen och skriva inkommande data direkt till databasen.

Tilldela ett flöde​

Flödet hör till enheten. Varje enhet kör sitt eget, så en tracker på geofrågeflödet och en temperatursensor på standardflödet kan sitta på samma connector.

Connectorn bär ett standardflöde, som nya enheter skapade på den ärver. Det är det som besparar dig att sätta flödet på varje enhet för hand - sätt det en gång på connectorn, så börjar enheterna som kommer in genom den rätt.

Att tilldela ett flöde görs genom API:et i dag. Det finns ännu inget gränssnitt för att välja ett när en enhet skapas, eller för att ändra det efteråt, och connector-guiden erbjuder bara Default. Egna flöden laddas upp på samma sätt.

Obs: alla integrationer stöder inte alla flöden. Stäm av med din supportkontakt för den du använder, och för att ladda upp ett eget flöde.

Flöden stöds inte på de äldre connectorerna under New Device i Devices.

Default flow​

Standardflödet, som visar tjänsterna en inkommande rapport passerar

Flödet som används när inget har konfigurerats.

Data kommer in från connectorn och går till translatortjänsten, som kör varje translator på enheten. Beräkningar körs härnäst, sedan positionstjänsten, som uppdaterar enhetens position om den har ändrats. Resultatet distribueras till kanalerna, databasen och regelmotorn.

General Timer flow​

Generella timerflödet, med schemaläggaren efter positionstjänsten

Standardflödet, plus schemaläggaren efter positionstjänsten.

En rapport är ett ögonblick. En timer är det som gör ett ögonblick till en varaktighet, så att flödet kan svara på "har det här varit sant i fem minuter" i stället för bara "är det sant nu".

Translatorn general-timer​

Flödet levererar schemaläggningen; translatorn avgör vad som tidtas. Båda behövs - translatorn beräknar timertillståndet vid varje rapport, och flödet är det som faktiskt väntar och skriver tillbaka timerExpired efteråt. Utan flödet löper timern aldrig ut.

Translatorn general-timer konfigurerad med sitt triggerfält och sin fördröjning

general-timer är en kedjad translator: den körs ovanpå enhetens hårdvarutranslator och läser fält som den translatorn redan har avkodat.

Parameter
timerTriggerFieldEnhetsfältet att bevaka, till exempel door eller temperature. Nästlade sökvägar fungerar
timerDelayHur länge villkoret måste hålla innan larmet utlöses, i sekunder. Standard 600
timerBooleanTriggerValueDet booleska värde som startar timern, när triggern är boolesk

Numeriska triggers tar ett högt och ett lågt tröskelvärde med hysteres. Ett tröskelvärde som lämnas på "Unused" är avstängt.

Utdata
timerExpiredLarmet. Sant när villkoret har hållit längre än fördröjningen
timerStartOm timern är igång
timerStartedAtNär den startade, som en tidsstämpel
timerDelayFördröjningen i millisekunder, konverterad från parametern

timerExpired är vad en regel bevakar, och timerStart och timerStartedAt är vad en vy eller dashboard visar för att säga att en timer är igång.

Ställa in det​

  1. Sätt enhetens flöde till General Timer.
  2. Lägg till translatorn general-timer, en enhet i taget eller med Select many.
  3. Konfigurera dess parametrar - fältet att bevaka, fördröjningen, och tröskelvärdena eller det booleska värdet.
  4. Bygg en regel på timerExpired, och lägg timerStart och timerStartedAt på en vy eller dashboard.

Vad det är till för​

  • En dörr eller ett fönster som inte har stängts inom förväntad tid.
  • Ett tröskelvärde som får passeras kort utan att larma - temperatur över sin gräns i högst fem minuter, och bara ett längre överskridande utlöser larmet.
  • Ett booleskt tillstånd som hålls längre än det borde.

General Geo Query flow​

Generella geofrågeflödet, med geofrågan efter positionstjänsten

Standardflödet, plus geofrågan efter positionstjänsten. Använd det för spårning.

Geofrågan jämför en trackers WGS84-position mot geofencerna och producerar en access-händelse:

Händelse
access: enterTrackern gick in i en geofence
access: insideDen rapporterade en ny position medan den var inne
access: exitDen lämnade

En geofence är en polygon, och den är kopplad till en IoT-nod - geofence-referensnoden. Logiken ligger i en translator på den noden, inte på trackern.

Translatorn general-geofence​

general-geofence läggs på geofence-referensnoden. Vid varje access-händelse underhåller den listan över de assets som för närvarande är inne, räknar dem, och släpper assets som har tystnat eller lämnat.

Utdata
assetsHur många assets som är inne
trackersHur många av dem som är den trackertyp du räknar
assetListAllt som är inne, var och en med namn, id, position, våning, access-tillstånd och tidsstämpel
assetUpdateDen asset som just gick in, lämnade eller flyttade sig

Parametrar värda att känna till:

  • contextMapTrackerField och contextMapTrackerFieldValue plockar ut en typ av asset att räkna separat. En geofence med bagagevagnar och rullstolar kan räkna assetType = "Baggage Cart" som trackers medan assets räknar allt.
  • removeIdleAssetsAfterHours släpper assets som slutar rapportera, minst 24 timmar. removeExitedAssetsAfterHours släpper de som lämnat, 0 för att ta bort dem direkt.
  • assetListEnabled och assetListMaxLength stänger av asset-listan eller begränsar den. Stäng av den när en geofence rymmer många assets.

Berätta för trackern var den är​

Som standard vet trackern ingenting om sitt eget geofence-tillstånd - räkningen sker på geofence-noden.

forwardAccessEventToTracker ändrar det. Med den på postas en enter- eller exit-händelse tillbaka till trackern, adresserad med fältet som anges i trackerIdentifier (devEui, säg). Det som skickas är forwardDataStructureToTracker, en port och en hex-payload. Bara händelser inom forwardAccuracyLimit vidarebefordras, så en dålig position flyttar inte en tracker in eller ut.

Ställa in det​

  1. Sätt trackernas flöde till General Geo Query.
  2. Skapa en generisk nod för varje planerad geofence med New device.
  3. Lägg till translatorn general-geofence på de noderna, vid skapandet eller senare med Select many.
  4. Rita geofencerna på kartan eller i en kartwidget, och koppla varje till sin nod.
  5. Bygg regler på enter- och exit-händelserna på geofence-noderna.

General Timer and Geo Query flow​

Det kombinerade generella timer- och geofrågeflödet

Båda de ovanstående. Det svarar på frågor om hur länge en tracker har varit på en sida av en geofence, i stället för bara vilken sida den är på.

En gränszon är det vanliga fallet: en asset får lämna ett geofencat område, men inte i mer än tjugo minuter, och ett visst antal assets måste stanna inne.

Translatorn general-timer täcker det här. Starta en timer när en asset går in eller ut, och om tillståndet inte har ändrats tillbaka inom timerDelay utlöses timerExpired.

För logik som standardtranslatorn inte täcker använder en egen translator på geofence-noden samma fält:

Fält
timerStarttrue startar eller startar om timern, false stoppar den
timerDelayVaraktigheten, i millisekunder
timerStartedAtNär den startade, som en UTC-tidsstämpel. Rensa den när timern stoppas
timerExpiredSkrivs tillbaka av flödet när timern löper ut

Andra flöden​

Två flöden till finns för positioneringsfall: ett löser ut en position från WiFi-accesspunkter och kartmatchar den, och ett gör detsamma och kan skicka en justerande nedlänk tillbaka till enheten. Inget av dem är självbetjäning. Fråga din supportkontakt om något av dem passar det du bygger.