AyMON — the industrial monitoring and automation engine

AyMON

Features & Protocols

What the engine does

Devices on one side, people and systems on the other

AyMON reads devices, keeps every value in one live tree, raises alarms, keeps history and hands it all to web pages, databases, other systems and AI assistants — in both directions, so a page or an assistant can also change a value when it is allowed to.

A connection is one element with two halves: a transport that moves bytes and a protocol that decides what they mean. They are chosen independently, so Modbus over TCP and Modbus over a serial line are the same protocol with a different first word.

A robot cell run by AyMON (PRJEDU_robotarm)

Protocols

What AyMON speaks

Modbus

TCP and serial, as master and as slave: poll a PLC or be the PLC.

OPC UA

Client: polling, subscriptions, writes, method calls and certificates both ways.

MQTT

Broker and client, over TCP and WebSocket — the same broker for devices and browsers.

HTTP, REST, SOAP, WebSocket

Serve live pages and APIs, or call other systems’ APIs.

SNMP

Manager and agent: read network gear, or answer like one.

Siemens S7

S7 PLCs over ISO-on-TCP, as a plug-in.

SQL

History and queries on SQL Server, PostgreSQL, ODBC sources and the embedded SQLite.

Cameras

USB, MJPEG, RTSP (H.264 / H.265), ONVIF; image analysis inside the engine.

Mail and files

SMTP with STARTTLS, FTP / FTPS and SFTP, ZIP archives — from configuration.

Raw TCP, UDP and serial

Anything else: write the protocol in script on a raw connection.

AI assistants (MCP)

An assistant reads the plant and may change the values it is allowed to.

Another AyMON

Replication between engines, and a cluster that fails over to a spare.

Inside the engine

Configuration first, code when it is really yours

One live tree

Connection, device, request and point are elements of one XML tree, each with an address anything can read or write.

Alarms and limits

Scaling, rounding, limits and alarm levels are attributes — not programs.

Events, not polling

When a value arrives, the functions written beside it run in order: convert, round, check, alarm, publish.

Script

A language close to JavaScript for the logic that is yours; Python when you want its libraries.

Access control

Address filters per connection, logins, and per-element rights for each role.

Health in status

Every connection and thread reports its own queue, latency and errors as alarm bits.

Platforms

Where it runs

Windows x64

One executable and its libraries. No runtime to install, no database required.

Linux x86-64

Ubuntu 22.04+, Debian 12+, RHEL / Rocky 9 and alike; a systemd unit per project.

Plug-ins and modules

Protocols, transports, script libraries and SQL drivers can be added without touching the engine.

Try it on your own machine

Every example runs with one command and needs no hardware, no licence and no database unless it says so.