Plattform · MEP

40 Regeln. 40 YAML-Einträge. Null Rust-Dateien.

MEP führt Trigger → Condition → Action-Richtlinien auf dem Gerät aus. In einem visuellen Editor verfassen, als YAML exportieren, ohne Reflash hot-reloaden. Geräte-Automation ohne einen Rust-Entwickler in der Schleife.

Zustandsmaschinen-Richtlinien für den Produktverantwortlichen. T·C·A-Primitive für den Ingenieur. Eine YAML-Datei, zwei Lesarten.

System · ereignisgesteuert

Richtlinien-Modell

Trigger → Condition → Action. Nicht mehr.

Jede Regel hat genau drei Teile. Es gibt kein Ausführungsmodell jenseits dieses Konstrukts.

Trigger

Was die Regel startet

  • · on_change — DB-Schlüssel-Änderung
  • · on_event — benanntes Ereignis von jedem micro service
  • · on_schedule — Delay, Periodic oder Cron (nur UTC)

Condition

Optionales Gate

Ausdruck, der gegen DB-Zustand und Ereignis-Payload ausgewertet wird. Typgeprüft vor dem Deployment — Fehler tauchen in CI auf, nicht auf dem Gerät.

Action

Was ausgeführt wird

  • · set — DB-Schlüssel schreiben
  • · emit — Ereignis veröffentlichen
  • · call_interface — jeden MOS4-micro service aufrufen
  • · schedule — eine andere Regel auslösen

YAML ist das Deployment-Artefakt

Kein Rust. Kein Firmware-Rebuild. Kein Reflash.

Eine Geräte-Automatisierungsregel lebt in einer .yaml-Datei. Sie zu ändern bedeutet YAML zu bearbeiten und die aktualisierte Richtlinie zu pushen — via OTA oder einen direkten Service-Aufruf. Hot-Reload entwässert laufende Regeln und tauscht den Richtlinien-Graphen atomar aus.

Richtlinie deklariert Abhängigkeiten

Jede Richtlinien-Datei trägt eine requires:-Liste mit Semver-Bereichen. Die Engine validiert die Einschränkung bei der Richtlinien-Ladezeit — nicht zur Laufzeit beim ersten Aufruf. Optionale Abhängigkeiten degradieren graceful.

Parallele Ausführung mit Konflikt-Erkennung

Mehrere Regeln, die im gleichen Zyklus zutreffen, werden parallel über einen begrenzten Worker-Pool ausgeführt. Wenn zwei Regeln denselben DB-Schlüssel schreiben, erkennt MEP dies und verwirft das Write mit niedrigerer Priorität — keine stille Daten-Korruption.

Flotten-weites Audit

Jedes Gerät nach geladenen Richtlinien-Namen, Versionen und Regelanzahlen abfragen — auditierbar ohne SSH-Zugriff.

Authoring-Oberfläche

Ein knotenbasierter Editor, der YAML exportiert.

Drei Zustandsautomaten-Bubbles im Dreieck auf dunklem Hintergrund — zwei Cyan-Ringe mit Puls-Glyphen (Idle und Triggered) und ein Amber-Ring mit Sirenen-Glyphe (Alarm), verbunden durch Übergangspfeile
MEP-Designer — knotenbasierter YAML-Regel-Editor mit einer vollständig verbundenen Pipeline
Die visuelle Darstellung und das Deployment-Artefakt sind dieselbe Datei — keine Übersetzungsschicht. Der Designer erkennt auch die requires:-micro service-Liste automatisch aus den im Graphen verwendeten Knoten.

MEP ist einer von vier visuellen Authoring-Engines in MOS4s No-Code-Schicht, neben dem Signal-Graph-Editor, dem KI-Pipeline-Builder und der Multi-Stack-Konfigurations-Ansicht.

Zwei Ansichten, eine Datei

Zustandsmaschine für den Produktverantwortlichen. T·C·A für den Ingenieur.

Dieselbe Geofence-Richtlinie liest sich als Drei-Zustands-Maschine im Designer und als drei T·C·A-YAML-Regeln in der Engineering-Ansicht. Die YAML-Datei ist die Zustandsmaschine — es gibt keine separate Laufzeit.

Produkt-Ansicht — Zustands-Diagramm

Drei Zustände: außerhalb des Polygons, annähern an die Grenze, innerhalb. Der Produktverantwortliche liest das Diagramm; das Gerät führt die Richtlinie aus.

Geofence-Zustandsmaschine — drei Zustände (außerhalb, annähernd, innerhalb) mit Übergängen bei Eintritt-, Nah- und Austritt-Ereignissen. Dasselbe Diagramm wird aus dem YAML unten generiert.

stateDiagram-v2
  [*] --> außerhalb
  außerhalb --> annähernd: nah
  annähernd --> innerhalb: Eintritt
  annähernd --> außerhalb: Austritt
  innerhalb --> annähernd: nah
  innerhalb --> außerhalb: Austritt
Geofence-Richtlinie — Lesart des Produktverantwortlichen.

Ingenieur-Ansicht — drei T·C·A-Regeln

Dieselbe Richtlinie als drei YAML-Regeln. Jeder Übergang ist ein Trigger / Condition / Action-Tripel. Das zusammengesetzte Regelwerk ist die obige Zustandsmaschine.

rules:
  - name: enter_geofence
    on_event: geofence.near
    when: state == "approaching"
    do:
      - set: { state: "inside" }
      - emit: geofence.entered

  - name: leave_geofence
    on_event: geofence.exit
    do:
      - set: { state: "outside" }
      - emit: geofence.left

  - name: approach_geofence
    on_change: distance_m
    when: distance_m < 50 and state == "outside"
    do:
      - set: { state: "approaching" }

Der visuelle Designer rendert das Zustands-Diagramm aus dem YAML; das YAML bleibt das Deployment-Artefakt. Einen Zustand hinzufügen bedeutet eine Regel hinzufügen — das Diagramm aktualisiert sich automatisch.

Pre-Deployment-Validierung

Fehler in CI, nicht auf dem Gerät.

Semantische Lint-Prüfungen und was sie abfangen
Prüfung Was abgefangen wird Wann ausgeführt
Undefinierte DB-Schlüssel Schlüssel-Tippfehler und fehlende Deklarationen CI / Pre-Deploy
Fehlende requires:-Deklarationen micro service-Abhängigkeitslücken CI / Pre-Deploy
Zyklische Regelgraphen Endlose Trigger-Schleifen CI / Pre-Deploy
Unerreichbare Bedingungen Tote Regelzweige CI / Pre-Deploy
Ausdrucks-Typfehler Typ-Diskrepanzen in Bedingungen/Aktionen CI / Pre-Deploy

Ein eigenständiger Szenario-Runner spielt YAML-Dateien Off-Target in CI-Pipelines ab. Ein Richtlinien-Engine-Test-Double erlaubt vollständiges Richtlinien-Auswertungs-Testing ohne einen MOS4-Stack auf Hardware.

Beispiel-Regeln

Was Integratoren ausliefern.

Geofence-Eintritt und -Austritt

Ein Cloud-Ereignis und einen Buzzer auslösen, wenn ein Fahrzeug ein Polygon überquert — einmal geschrieben, flottenweit ausgerollt.

Hartes-Bremsen-Erkennung

Auf ein MSP-abgeleitetes Verzögerungs-Signal hören; wenn ein 1,5-Sekunden-Fenster passt, ein Ereignis mit 5-Sekunden-Pre-Roll auslösen.

Leerlauf bei ausgeschalteter Zündung

Periodische Prüfung von Drehzahl und Zündungszustand; bei N-minütiger Verletzung das Dashboard dimmen und ein Wartungsticket öffnen.

Deployment-Abdeckung

MEP wird in allen sechs Deployment-Szenarien geliefert.

Zustandsmaschinen- und LED-Steuerungs-Richtlinien gehören zu den Fähigkeiten mit der höchsten Abdeckung in der MOS4-Feature-Matrix — verfügbar von leichten Dongle-Formfaktoren bis zu compute-class-Gateway-Plattformen.

IOT Hub

Trigger-Aktions-Richtlinien leiten Sensor-Ereignisse an Cloud-Endpunkte und steuern Geräteausgaben — kein Pro-Regel-Verbindungscode erforderlich.

Landwirtschaft

Regelbasierte Ereignisverarbeitung koordiniert den Zustand von Feldmaschinen: Geofence-Zonen, Gerät-Anhängen/-Abnehmen und Planungsfenster.

Dashcam

Hartes-Ereignis-Richtlinien lösen Clip-Bookmarking und Cloud-Upload aus; LED-Muster bestätigen den Aufnahmezustand gegenüber dem Fahrer.

Dongle OBD

Leichtgewichtige Trigger-Aktions-Regeln reagieren auf OBD-Signale — Leerlauf-Erkennung, DTC-Präsenz, Zündungs-aus-Sequenzen — innerhalb eines begrenzten Fußabdrucks.

C4Max

Multi-Stack-Kompositions-Richtlinien orchestrieren Daten-Routing über Fahrzeugdomänen; MEP treibt ereignisgesteuerte Sequenzen zwischen Signal-Schichten an.

Ekko Drive

Fahrverhalten-Richtlinien werten MSP-abgeleitete Signale aus und geben bewertete Ereignisse aus; Cron-Regeln aggregieren Sitzungsdaten für Cloud-Berichte.

MEP-Richtlinien kombinieren mit der Multi-Stack-Schicht für ereignisgesteuerte Daten-Routing-Sequenzen. Siehe Multi Stacks für Cross-Stack-Strategie-Komposition.

Knoten-Katalog

58 Knoten-Typen über drei Kategorien.

10 Triggers · 17 Conditions · 31 Actions — zur Build-Zeit aus dem Engine-Schema abgeleitet. Jeder Knoten ist im visuellen Designer und in handverfasstem YAML verfügbar.

Triggers (10)

  • on init
  • on event
  • on db changed
  • on schedule
  • on periodic
  • on cron
  • on rule
  • on message
  • any
  • stt listen

Conditions (17)

  • comparison
  • and
  • or
  • not
  • has changed
  • time since changed
  • time since triggered
  • is type
  • matches
  • in range
  • contains
  • is null
  • time since applied
  • time since condition true
  • value
  • rag confidence gate
  • confidence gate

Actions (31)

  • set
  • write db
  • emit event
  • call interface
  • if else
  • for each
  • schedule
  • unschedule
  • trace
  • set led
  • sequence
  • set output
  • set buzzer
  • read input
  • read analog
  • get ignition
  • send message
  • go to idle
  • shutdown
  • reboot
  • register operation
  • complete operation
  • tts announce
  • tts announce stream
  • llm reason
  • llm reason stream
  • rag lookup
  • tool call with confirm
  • input sanitize
  • observer log
  • llm cloud fallback

Mit call_interface-Aktionen MSP, Inferenz-Engines und benutzerdefinierte Treiber aus jeder Richtlinien-Regel erreichen. Siehe das SDK für das Authoring von micro services, die MEP aufrufen kann.

FAQ

Häufig gestellte Fragen

  • Brauche ich einen Rust-Entwickler, um nach dem Deployment eine Regel zu ändern?

    Nein. Eine Regel zu ändern bedeutet YAML zu bearbeiten und die aktualisierte Richtlinie zu pushen — via OTA oder einen direkten Service-Aufruf. Kein Rust-Toolchain, kein Firmware-Rebuild, kein Reflash. Hot-Reload entwässert laufende Regeln und tauscht den Richtlinien-Graphen atomar aus.

  • Was ist das genaue Richtlinien-Modell?

    Jede Regel hat genau drei Teile: einen Trigger (on_change, on_event oder on_schedule — Delay/Periodic/Cron in UTC); eine optionale Bedingung (Ausdruck gegen DB-Zustand und Ereignis-Payload); und eine oder mehrere Aktionen (DB-Schlüssel setzen, Ereignis ausgeben, call_interface oder eine andere Regel planen). Es gibt kein Ausführungsmodell jenseits dieses Konstrukts.

  • Ist MEP eine endliche Zustandsmaschine?

    MEP-Regeln drücken zustandsmaschinen-artiges Verhalten durch T·C·A-Primitive aus. Das Richtlinien-YAML ist die Zustandsmaschine — es gibt keine separate Zustandsmaschinen-Laufzeit. T·C·A ist das Regel-Primitiv; das zusammengesetzte Regelwerk ist die Zustandsmaschine. Beide Lesarten werden geliefert — der visuelle Designer rendert das Zustands-Diagramm für Produktverantwortliche; das YAML bleibt das Engineering-Artefakt.

  • Welche Zeitzone verwendet die Cron-Planung?

    Nur UTC. Zeitzonenbewusste Planung wird derzeit nicht unterstützt.

  • Kann eine Richtlinie einen anderen MOS4-micro service aufrufen?

    Ja. Die call_interface-Aktion erreicht jeden MOS4-micro service — MSP, Inferenz-Engines und benutzerdefinierte Treiber. Der Schnittstellen-Proxy validiert die Semver-Einschränkung bei der Richtlinien-Ladezeit, speichert die Verbindung und wendet ein konfigurierbares Timeout an (Standard 3 000 ms pro Aufruf). Kein Pro-Integration-Verbindungscode. Siehe das SDK für das Authoring benutzerdefinierter micro services.

  • Kann ich Regeln ohne Hardware testen?

    Ja. Ein semantisches Lint-Tool validiert YAML, bevor es ein Gerät erreicht — fängt undefinierte DB-Schlüssel, fehlende requires:-Deklarationen, zyklische Regelgraphen, unerreichbare Bedingungen und Ausdrucks-Typfehler ab. Ein eigenständiger Szenario-Runner spielt YAML-Dateien Off-Target in CI-Pipelines ab. Ein Richtlinien-Engine-Test-Double erlaubt das Testen der Richtlinien-Auswertung in der Integration ohne einen vollständigen MOS4-Stack.

Bringen Sie das Regelwerk mit.

Zeigen Sie uns die Richtlinie, die Sie auf dem Gerät wollen; das Engineering-Team verfasst die Regeln mit Ihnen.

Bauen Sie auf MOS4?

Eine Antwort vom Engineering-Team, ~24 h. Kein Deck, kein NDA.

Mit Engineering sprechen