Ocalt for

Ocalt for IoT & Smart Environments

Connect every sensor, camera, lock, light, and controller into one living system. React the moment temperature spikes, a door opens after hours, moisture levels drop, or motion is detected in a restricted zone. Automatically adjust HVAC, irrigation, lighting, or security devices across multiple sites, trigger alerts, log everything, and even spin up temporary services when needed. Whether it’s a smart home, office, factory floor, or farm, Ocalt turns scattered hardware into coordinated, intelligent infrastructure you actually control.

One gateway, any protocol

Run the client on an ordinary machine near the devices — a mini PC, an old laptop, an industrial box. That machine becomes the gateway. Your scripts address it with DIRECTIVE; it speaks to the hardware in whatever the hardware understands: HTTP, MQTT, Modbus, a vendor SDK, Home Assistant.

Watching is a verb

A WATCH polls a value and fires only when it changes. That is the whole automation model — no rules engine, no separate scheduler, no vendor cloud deciding what counts as an event.

Across sites, not just rooms

A farm, three depots and a head office are one script away from each other. Peers move files directly between machines without routing through us, and a tunnel exposes a local panel without a static IP or an open port.

Everything is logged because everything is a script

There is no separate audit system. What ran, when, and what it returned is the execution record.

In practice

NEW WATCH [DIRECTIVE "greenhouse" EXEC "cat /sys/soil/moisture"]
EVERY 5 MINUTES ONCHANGE [SIDELOAD `
DIRECTIVE "greenhouse" EXEC "cat /sys/soil/moisture" SET ?m
AFTER IF ?m("stdout") IS LESS THAN 30
OPEN
  DIRECTIVE "greenhouse" EXEC "gpio write 4 1"
  AFTER NOTIFICATION "irrigation on — soil at " & ?m("stdout")
CLOSE
`] SET ?watch

Put a gateway on site

  1. Install the client from client.ocalt.com onto a machine near the hardware — a mini PC, an old laptop, an industrial box.
  2. Configure it at http://localhost:12345: your Ocalt credentials, a machine alias, and the root folder it may serve.
  3. Claim its slot. DIRECTIVE REGISTER "greenhouse". That alias is what every later script addresses.
  4. Prove it reaches the hardware before writing any automation.
  5. Then set the watch. A WATCH polls and fires only on change.
DIRECTIVE REGISTER "greenhouse" SET ?reg
AFTER DIRECTIVE "greenhouse" EXEC "cat /sys/soil/moisture" SET ?m
AFTER EMIT ?m("stdout")

Every plan, including Free, carries the whole language. Open the console, read the documentation, or see what a plan costs.