Hoppa till huvudinnehåll

Regelmotorn

Introduktion

Regelmotorn är baserad på IFTTT, vilket står för "If This Then That", och är en kraftfull och användarvänlig service som gör det möjligt att automatisera uppgifter och integrera olika digitala tjänster genom en enkel regelmotor. Kärnfunktionen i IFTTT ligger i dess förmåga att skapa regeluttryck, som följer en grundläggande "om-då" logik. Varje regel kopplar samman två tjänster: "triggern" ("om"-delen) och "aktionen" ("då"-delen). Till exempel kan du ställa in en regel för att automatiskt skicka ett e-postmeddelande, publicera data eller slå på eller av en ställdon när ett visst villkor är uppfyllt. Regelmotorn integreras med Yggio Flow, Yggio Translators och Yggio AI/ML-modulerna för att leverera kraftfulla anpassade analyser, algoritmer och händelsehanteringsmöjligheter.

rule-engine

De flesta regler baseras på enkla villkor, vilket gör plattformen mycket tillgänglig även för användare utan teknisk expertis. Dessa regler fungerar enligt en enkel "sant eller falskt"-logik, där en åtgärd utlöses om ett visst villkor uppfylls. Till exempel kan du ställa in en regel där, om väderprognosen förutspår regn (villkoret), då skickas ett SMS-meddelande för att påminna dig om att ta med ett paraply (åtgärden). Denna enkelhet gör det möjligt för användare att skapa kraftfulla automationssekvenser med minimal ansträngning.

  1. Logga in på ditt konto
  2. Klicka på "Appar" i navigeringsfältet
  3. Klicka på "Regelmotor" för att gå till regelmotorn

Skapa en Regel

rule-engine-create-rule

  1. Klicka på ikonen "Regler" i Regelmotorn
  2. Välj "Lägg till regel" på mitten av vänstra sidan
  3. Ange regelnamn
  4. Välj en NÄR-trigger. Denna funktion definierar när något ska göras. Tryck på ”+”-knappen i mitten och välj sedan en IoT-nod, en timer eller ett cronjob samt ett villkor.
  5. VALFRITT: Välj ett OCH OM-villkor. Denna funktion tillåter regeln att fortsätta att utföras om villkoret uppfylls. Tryck på ”+”-knappen i mitten och välj sedan en IoT-nod och ett villkor eller ett tidsintervall.
  6. Välj en GÖR-åtgärd. Denna funktion kommer att utföra något när NÄR- och OM-villkoren är uppfyllda. Tryck på ”+”-knappen i mitten och 7. välj sedan en åtgärd och ett mål för att utföra åtgärden på.
  7. Tryck på ”Lägg till regel” längst ner till vänster

Kompletterande information

  • Alla textfält är sökbara, vilket gör det snabbt och enkelt att hitta en specifik IoT-nod, ett villkor eller en åtgärd.
  • Flera IoT-noder kan grupperas i en rad för att utvärdera en NÄR-trigger.
  • Flera IoT-noder kan grupperas i en rad för att utvärdera ett OM-villkor.
  • Flera mål kan grupperas i en rad för att utföra en GÖR-åtgärd.
  • Alla NÄR-triggers, även när de är grupperade i en rad, fungerar på en ELLER-basis, vilket innebär att regeln kommer att triggas om någon av dem blir sann.
  • Alla OM-villkor, även när de är grupperade i en rad, fungerar på en OCH-basis, vilket innebär att alla villkor måste vara sanna för att OM-villkoret ska vara uppfyllt.
  • NÄR-triggers är tillståndsbaserade och reagerar endast på förändringar, såsom en övergång från falskt till sant eller en förändring från 19 till 20.
  • När du väljer ett objekt från en lista försvinner det från listan, vilket möjliggör snabb val av även hundratals IoT-noder i en regel genom att först söka och sedan välja.
  • En GÖR-åtgärd är tillgänglig för att initiera en annan regel, vilket gör att regelmotorn kan hantera regelkedjor.
  • Alla GÖR-åtgärder kan fördröjas genom att ställa in en timer, vilket möjliggör skapandet av tidsbaserade regler.

Skapa ett villkor

rule-engine-create-condition

  1. Klicka på ikonen ”Villkor” i Regelmotorn
  2. Välj ”Lägg till villkor” på mitten av vänstra sidan
  3. Ange fältnamnet (som 'temperatureHighAlarm') för ditt villkor från Data-fliken för en IoT-nod i enhetslistan
  4. Ange utvärderingsoperatorn (som '==')
  5. Ange värdet för dina villkor (som 'true'). Denna funktion kommer att använda det angivna värdet som NÄR-trigger eller OM-villkor
  6. Tryck på knappen ”Lägg till villkor” på vänster sida

Exempel:

temperatureHighAlarm == true
temperature > 30
temperature < 39.5 || presence == false
temperature > 39.5 && presence == true
message == 'Missing expected report'

Tillåtna datatyper: Integer, Decimal, Boolean, String

Vanliga operatorer:

  • == Equality operator (=== strict equality)
  • != Inequality operator (!== strict inequality)
  • > More than
  • < Smaller than
  • <= Less than or equal
  • >= More than or equal
  • || Conditional OR
  • && Conditonal AND

Alla tillåtna operatorer: Tillåtna operatorer kan hittas här

Kompletterande information

  • De vanligaste villkoren är fördefinierade och tillgängliga för att användas direkt i reglerna.
  • Ett strängvärde ska kapslas inom enkla citattecken, som 'Missing expected report'. I datafliken för en IoT nod i enhetslistan är strängar färgade röda, nummer blåa och booleans gröna.
  • Rekommendationer angående villkor:
    • Använd enkla sanna eller falska likhets- eller olikhetsvillkor.
    • När > eller < jämförelser är nödvändiga är det att föredra att integrera en översättare med gränsvärdeskontroll direkt i IoT-noden. Detta lokaliserar tillståndshantering till IoT-noden och minskar behovet av ytterligare logik i regelmotorn.
    • För mer komplexa villkor, såsom anpassad avvikelsedetektering, utnyttja befintliga analytiska algoritmer (översättare) eller utveckla en anpassad analyslösning och ladda upp den via API:et.
    • Om analysen kräver ännu mer sofistikering utöver vad anpassade algoritmer erbjuder, utveckla en AI/ML-modell med integrerad datapipeline-formatering för att möta kraven och ladda upp den till Yggio AI-modulen.

Skapa en åtgärd

  1. Klicka på ikonen ”Åtgärd” i Regelmotorn
  2. Välj ”Lägg till åtgärd” på mitten av vänstra sidan
  3. Välj vilken typ av åtgärd du behöver och välj den
  4. Ange namnet på din åtgärd
  5. Ange korrekta värden för din åtgärd
  6. Tryck på knappen ”Lägg till åtgärd” på vänster sida

Vanligt förekommande åtgärder

  • E-post: Skicka ett e-postmeddelande med en anpassad och dynamisk text till mottagaren. E-postens innehåll tillåter HTML-kod för att skapa snyggt formaterade e-postmeddelanden med bilder.

  • SMS: Skicka ett SMS med en anpassad och dynamisk text till mottagaren.

    • Not 1: Ämnesraden för SMS är maximalt 11 tecken annars kommer inget SMS att skickas.
    • Not 2: Varje SMS kostar 2.5 sek, för närvarande debiteras de inte extra men antalet skickade SMS måste vara inom rimliga gränser.
  • Logg: Skapa en anpassad loggpost som kommer att visas i loggen. Detta kan användas för att sätta larm eller spåra när regler körs. Genom att välja alternativet "dynamisk" hämtas logginformationen från log : {} JSON-strukturen i den utlösande IoT-noden där den har satts av en översättare.

    Exempel på en dynamisk logg skriven av en översättare:

    log : {
    'message': 'Modbus configuration not done or not valid.',
    'type': 'Warning',
    'priority': 'Low',
    'category': 'Status'
    }
  • Skapa och skicka en HTML-, CSV- eller enhetsantal (fakturerings)rapport. För detaljer, se Rapportgenerator

  • LoRaWAN nedlänk: Skicka en nedlänk till en LoRaWAN-enhet. Vanligtvis för att kontrollera ett aktuator.

  • Zwave nedlänk: Skicka en nedlänk till en Zwave-enhet. Vanligtvis för att kontrollera en aktuator.

  • Kommando: Mycket mångsidig generisk åtgärd för att skicka ett kommando, används till exempel för att publicera ett meddelande på Yggios MQTT-broker eller en annan broker. En 'connector' krävs som läggs till i DO-delen av en regel. Exempel på kommando (Observera att i regelgränssnittet måste tecknet " använda escape-tecknet, så använd /"):

    Subject: sendDownlink
    Body:
    "message": "myMessage",
    "mqttTopic": "subTopic"

Dynamisk information Många åtgärder, såsom E-post, SMS, Kommandon, Loggar, etc., tillåter inkludering av dynamisk information relaterad till den utlösande IoT-noden. Denna dynamiska information kan införlivas genom att infoga ett uttalande som ${iotnode.fältnamn} inom åtgärdsspecifikationen. Vid regelutlösning kommer platsmarkören ${iotnode.fältnamn} att ersättas med det motsvarande värdet av fältnamnet.

Exempel:

Temperaturen ${iotnode.temperature} grader detekterades.
Enheten rapporterade klockan ${iotnode.reportedAt}
'devEui': '${iotnode.devEui}'

Skapa ett tillstånd

rule-engine-create-condition

  1. Klicka på ikonen för Tillstånd i Regelmotorn
  2. Tryck på knappen "Lägg till tillstånd"
  3. Lägg till tillstånden
  4. Tryck på knappen "Lägg till tillstånd" längst ned till vänster

Kompletterande information

  • Tillstånd används för att konstruera avancerade regelkedjor som inkluderar tillståndshantering. Ofta hänvisas tillståndet i AND IF-delen av en regel.
  • Tillstånd är IoT-noder, vilket innebär att de kommer att visas i enhetslistan och kan ses och hanteras som vilken annan IoT-nod som helst.
  • Värdet av ett tillstånd lagras som en sträng med fältnamnet value. Eftersom värdet av ett tillstånd är en sträng ska det kontrolleras i ett villkor som är inslutet i enkla citattecken, som value=='tillståndsvärde1'.
  • Värdet av ett tillstånd ändras av Tillståndsåtgärden, som placeras i DO-delen av en regel.
  • Det rekommenderas att använda enkla tillstånd som 1, 2, 3, etc. Det finns fördefinierade åtgärder och villkor för att hantera de mest använda tillståndsvärdena.

rule-engine-create-condition

rule-engine-create-condition

Skapa en kontakt

  1. Klicka på ikonen för ”Kontakter” i Regelmotorn
  2. Tryck på knappen ”Lägg till kontakt”
  3. Ange namn, e-post och telefonnummer
  4. Tryck på knappen ”Lägg till kontakt” längst ned till vänster