Plataforma · MEP

40 reglas. 40 entradas YAML. Cero archivos Rust.

MEP ejecuta políticas Trigger → Condition → Action en el dispositivo. Diseñe en un editor visual, exporte como YAML, recargue en caliente sin reflash. Automatización del dispositivo sin un desarrollador Rust en el proceso.

Políticas de máquina de estados para el responsable de producto. Primitivas T·C·A para el ingeniero. Un archivo YAML, dos lecturas.

Sistema · controlado por eventos

Modelo de política

Trigger → Condition → Action. Nada más.

Cada regla tiene exactamente tres partes. No existe un modelo de ejecución más allá de este constructo.

Trigger

Qué inicia la regla

  • · on_change — cambio en clave DB
  • · on_event — evento nombrado desde cualquier micro service
  • · on_schedule — delay, periódico o cron (solo UTC)

Condition

Filtro opcional

Expresión evaluada contra el estado de DB y el payload del evento. Se verifica el tipo antes del despliegue — los errores aparecen en CI, no en el dispositivo.

Action

Qué se ejecuta

  • · set — escribir una clave DB
  • · emit — publicar un evento
  • · call_interface — llamar a cualquier micro service de MOS4
  • · schedule — disparar otra regla

YAML es el artefacto de despliegue

Sin Rust. Sin reconstrucción de firmware. Sin reflash.

Una regla de automatización de dispositivo vive en un archivo .yaml. Cambiarla es editar YAML y enviar la política actualizada — mediante OTA o una llamada de servicio directa. La recarga en caliente agota las reglas en vuelo e intercambia atómicamente el grafo de política.

La política declara dependencias

Cada archivo de política lleva una lista requires: con rangos semver. El motor valida la restricción en el momento de cargar la política — no en tiempo de ejecución en la primera llamada. Las dependencias opcionales degradan de forma elegante.

Ejecución paralela con detección de conflictos

Múltiples reglas que coinciden en el mismo ciclo se ejecutan en paralelo mediante un pool de trabajadores acotado. Cuando dos reglas escriben la misma clave DB, MEP lo detecta y descarta la escritura de menor prioridad — sin corrupción de datos silenciosa.

Auditoría de flota

Consulte cualquier dispositivo para obtener nombres de políticas cargadas, versiones y recuentos de reglas — auditable sin acceso SSH.

Superficie de autoría

Un editor basado en nodos que exporta YAML.

Tres burbujas de máquina de estados en triángulo sobre fondo oscuro — dos anillos cian con glifos de pulso (idle y triggered) y un anillo ámbar con glifo de sirena (alarm), conectados por flechas de transición
MEP Designer — editor de reglas YAML basado en nodos con un pipeline completamente conectado
La representación visual y el artefacto de despliegue son el mismo archivo — sin capa de traducción. El diseñador también autodescubre la lista de micro services requires: a partir de los nodos usados en el grafo.

MEP es uno de los cuatro motores de autoría visual de la capa no-code de MOS4, junto al editor de grafo de señales, el constructor de pipeline AI y la vista de configuración multi-stack.

Dos vistas, un archivo

Máquina de estados para el responsable de producto. T·C·A para el ingeniero.

La misma política de geocerca se lee como una máquina de tres estados en el diseñador y como tres reglas YAML T·C·A en la vista de ingeniería. El archivo YAML es la máquina de estados — no hay un runtime separado.

Vista de producto — diagrama de estados

Tres estados: fuera del polígono, aproximándose al límite, dentro. El responsable de producto lee el diagrama; el dispositivo ejecuta la política.

Máquina de estados de geocerca — tres estados (fuera, aproximándose, dentro) con transiciones en eventos de entrada, cercanía y salida. El mismo diagrama se genera a partir del YAML siguiente.

stateDiagram-v2
  [*] --> outside
  outside --> approaching: near
  approaching --> inside: enter
  approaching --> outside: exit
  inside --> approaching: near
  inside --> outside: exit
Política de geocerca — lectura del responsable de producto.

Vista de ingeniero — tres reglas T·C·A

La misma política como tres reglas YAML. Cada transición es una triple Trigger / Condition / Action. El conjunto de reglas compuestas es la máquina de estados anterior.

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" }

El diseñador visual renderiza el diagrama de estados a partir del YAML; el YAML permanece como artefacto de despliegue. Agregar un estado es agregar una regla — el diagrama se actualiza automáticamente.

Validación previa al despliegue

Errores en CI, no en el dispositivo.

Verificaciones de lint semántico y qué detectan
Verificación Qué detecta Cuándo se ejecuta
Claves DB indefinidas Errores tipográficos en claves y declaraciones faltantes CI / pre-despliegue
Declaraciones requires: faltantes Dependencias de micro service faltantes CI / pre-despliegue
Grafos de reglas cíclicos Bucles de disparo infinitos CI / pre-despliegue
Condiciones inalcanzables Ramas de regla muertas CI / pre-despliegue
Errores de tipo en expresiones Incompatibilidades de tipo en condiciones/acciones CI / pre-despliegue

Un ejecutor de escenarios autónomo reproduce archivos YAML fuera del objetivo en pipelines de CI. Un doble de prueba del motor de políticas permite la prueba completa de evaluación de políticas sin una pila MOS4 en hardware.

Reglas de ejemplo

Lo que los integradores despliegan.

Entrada y salida de geocerca

Disparar un evento en la nube y un zumbador cuando un vehículo cruza un polígono — escrito una vez, desplegado en toda la flota.

Detección de frenada brusca

Escuchar una señal de desaceleración derivada de MSP; si una ventana de 1,5 segundos coincide, elevar un evento con un pre-roll de 5 segundos.

Ralentí con motor apagado

Verificación periódica de RPM y estado de encendido; ante una violación de N minutos, atenuar el panel y abrir un ticket de mantenimiento.

Cobertura de despliegue

MEP se incluye en los seis escenarios de despliegue.

Las políticas de máquina de estados y control de LED se encuentran entre las capacidades de mayor cobertura en la matriz de características de MOS4 — disponibles desde factores de forma de dongle ligero hasta plataformas gateway de clase compute.

IOT Hub

Las políticas de trigger-action enrutan eventos de sensores a endpoints en la nube y controlan salidas del dispositivo — sin código de pegamento por regla.

Agricultura

El procesamiento de eventos basado en reglas coordina el estado de la maquinaria de campo: zonas de geocerca, conexión/desconexión de implementos y ventanas de programación.

Dashcam

Las políticas de eventos bruscos disparan el marcado de clips y la carga en la nube; los patrones de LED confirman el estado de grabación al conductor.

Dongle OBD

Las reglas de trigger-action ligeras reaccionan a señales OBD — detección de ralentí, presencia de DTC, secuencias de apagado — dentro de un footprint limitado.

C4Max

Las políticas de composición multi-stack orquestan el enrutamiento de datos entre dominios vehiculares; MEP impulsa secuencias controladas por eventos entre capas de señal.

Ekko Drive

Las políticas de comportamiento del conductor evalúan señales derivadas de MSP y emiten eventos puntuados; las reglas cron agregan datos de sesión para informes en la nube.

Las políticas MEP se componen con la capa multi-stack para secuencias de enrutamiento de datos controladas por eventos. Ver Multi Stacks para la composición de estrategia entre stacks.

Catálogo de nodos

58 tipos de nodo en tres categorías.

10 triggers · 17 conditions · 31 actions — derivados en tiempo de compilación del esquema del motor. Cada nodo está disponible en el diseñador visual y en YAML escrito manualmente.

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

Construya con acciones call_interface para alcanzar MSP, motores de inferencia y drivers personalizados desde cualquier regla de política. Consulte el SDK para crear micro services que MEP pueda llamar.

Preguntas frecuentes

Preguntas habituales

  • ¿Necesito un desarrollador Rust para cambiar una regla después del despliegue?

    No. Cambiar una regla es editar YAML y enviar la política actualizada — mediante OTA o una llamada de servicio directa. Sin toolchain Rust, sin reconstrucción de firmware, sin reflash. La recarga en caliente agota las reglas en vuelo e intercambia atómicamente el grafo de política.

  • ¿Cuál es exactamente el modelo de política?

    Cada regla tiene exactamente tres partes: un trigger (on_change, on_event u on_schedule — delay/periódico/cron en UTC); una condición opcional (expresión contra el estado de DB y el payload del evento); y una o más acciones (establecer una clave DB, emitir un evento, call_interface, o programar otra regla). No existe un modelo de ejecución más allá de este constructo.

  • ¿MEP es una máquina de estados finitos?

    Las reglas MEP expresan comportamiento de tipo máquina de estados mediante primitivas T·C·A. El YAML de política es la máquina de estados — no hay un runtime de máquina de estados separado. T·C·A es la primitiva de regla; el conjunto de reglas compuestas es la máquina de estados. Ambas lecturas se incluyen — el diseñador visual renderiza el diagrama de estados para los responsables de producto; el YAML permanece como artefacto de ingeniería.

  • ¿Qué zona horaria usa la programación cron?

    Solo UTC. La programación con zona horaria no está soportada actualmente.

  • ¿Puede una política llamar a otro micro service de MOS4?

    Sí. La acción call_interface alcanza cualquier micro service de MOS4 — MSP, motores de inferencia y drivers personalizados. El proxy de interfaz valida la restricción semver en el momento de cargar la política, almacena en caché la conexión y aplica un timeout configurable (por defecto 3 000 ms por llamada). Sin código de pegamento por integración. Consulte el SDK para crear micro services personalizados.

  • ¿Puedo probar reglas sin hardware?

    Sí. Una herramienta de lint semántico valida el YAML antes de que llegue a un dispositivo — detectando claves DB indefinidas, declaraciones requires: faltantes, grafos de reglas cíclicos, condiciones inalcanzables y errores de tipo en expresiones. Un ejecutor de escenarios autónomo reproduce archivos YAML fuera del objetivo en pipelines de CI. Un doble de prueba del motor de políticas permite probar la evaluación de políticas en integración sin una pila MOS4 completa.

Traiga el libro de reglas.

Muéstrenos la política que desea en el dispositivo; ingeniería le ayudará a redactar las reglas.

¿Construyendo sobre MOS4?

Una respuesta del equipo de ingeniería, ~24 h. Sin presentación, sin NDA.

Hablar con ingeniería