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öde | Vad det lägger till |
|---|---|
| Default | Ingenting. Translatorer, beräkningar, position, databas, kanaler, regler |
| General Timer | En timer per enhet, så att ett villkor kan krävas bestå över tid |
| General Geo Query | Geofence-kontroller, för spårning |
| General Timer and Geo Query | Bå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

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

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.

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 | |
|---|---|
| timerTriggerField | Enhetsfältet att bevaka, till exempel door eller temperature. Nästlade sökvägar fungerar |
| timerDelay | Hur länge villkoret måste hålla innan larmet utlöses, i sekunder. Standard 600 |
| timerBooleanTriggerValue | Det 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 | |
|---|---|
timerExpired | Larmet. Sant när villkoret har hållit längre än fördröjningen |
timerStart | Om timern är igång |
timerStartedAt | När den startade, som en tidsstämpel |
timerDelay | Fö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
- Sätt enhetens flöde till General Timer.
- Lägg till translatorn
general-timer, en enhet i taget eller med Select many. - Konfigurera dess parametrar - fältet att bevaka, fördröjningen, och tröskelvärdena eller det booleska värdet.
- Bygg en regel på
timerExpired, och läggtimerStartochtimerStartedAtpå 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

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: enter | Trackern gick in i en geofence |
access: inside | Den rapporterade en ny position medan den var inne |
access: exit | Den 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 | |
|---|---|
assets | Hur många assets som är inne |
trackers | Hur många av dem som är den trackertyp du räknar |
assetList | Allt som är inne, var och en med namn, id, position, våning, access-tillstånd och tidsstämpel |
assetUpdate | Den 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" somtrackersmedanassetsrä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
- Sätt trackernas flöde till General Geo Query.
- Skapa en generisk nod för varje planerad geofence med New device.
- Lägg till translatorn
general-geofencepå de noderna, vid skapandet eller senare med Select many. - Rita geofencerna på kartan eller i en kartwidget, och koppla varje till sin nod.
- Bygg regler på enter- och exit-händelserna på geofence-noderna.
General Timer and Geo Query flow

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 | |
|---|---|
timerStart | true startar eller startar om timern, false stoppar den |
timerDelay | Varaktigheten, i millisekunder |
timerStartedAt | När den startade, som en UTC-tidsstämpel. Rensa den när timern stoppas |
timerExpired | Skrivs 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.