Ocalt for

Ocalt for Facilities & Property

Monitor and control multiple sites from one system. React the moment a door opens after hours, temperature drifts, motion appears in a restricted zone, or energy use spikes. Automatically adjust HVAC, lighting, access control, and security devices, log everything, notify the right people, and even coordinate across buildings using live maps and device tracking. From single properties to multi-site portfolios, Ocalt turns passive monitoring into active, intelligent facility management.

Monitoring that does something

A camera that records an intrusion and a system that locks the door are different products in most buildings. Here they are two lines of the same script.

One portfolio, one language

Six buildings from three vendors installed across a decade. The gateway machine in each speaks whatever that building speaks; your script speaks to the gateways.

After-hours logic is just logic

Time, day, occupancy, and who is on site are all values. A rule about them is an IF, not a licence tier.

The record is automatic

Every action is a script execution with a timestamp and a result. Compliance evidence is a side effect of how the system works.

In practice

NEW WATCH [DIRECTIVE "block-a" EXEC "cat /sys/access/door_3"]
EVERY 30 SECONDS ONCHANGE [SIDELOAD `
NEW DATE AND TIME SET ?now
AFTER IF ?now("hour") IS GREATER THAN 18
OPEN
  DIRECTIVE "block-a" SCREENSHOT SET ?shot
  AFTER FILE WRITE ?shot TO "/root/security/door3.png"
  AFTER DIRECTIVE "block-a" EXEC "gpio write 9 0"
  AFTER NOTIFICATION "Door 3 opened after hours — locked, image captured"
CLOSE
`] SET ?watch

Bring one building online

  1. One gateway machine per building, running the client from client.ocalt.com. It speaks whatever that building speaks; your scripts only ever speak to it.
  2. Register each one with an alias you will recognise at 3am: DIRECTIVE REGISTER "block-a".
  3. Read a sensor by hand first. If EXEC cannot see it, no automation above it will either.
  4. Add the after-hours rule. Time and occupancy are values; a rule about them is an IF.
  5. The record writes itself — every run is in your query log at accounts.ocalt.com/qllogs.
DIRECTIVE "block-a" EXEC "cat /sys/access/door_3" SET ?d
AFTER EMIT ?d("stdout")

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