The open building automation platform
Normal runs buildings. It discovers and normalizes what is already installed — BACnet, Modbus, Niagara, MQTT — then schedules it, commands it, guards what gets written, and runs your own programs on the device. One site or a thousand, on your hardware, and you can install it yourself today.
Data Acquisition
BTL-Conformant BACnet, End to End
BACnet/IP, /SC, and /Ethernet with Network Port objects, segmentation, MS/TP slave discovery, and proprietary property mapping. Sites with 100,000+ objects scan in minutes.
Native Fox and Modbus Support
Connect directly to Niagara stations without reconfiguring your JACE, and poll tens of thousands of Modbus devices with concurrent batching.
Advanced, User-Friendly Admin Console with AI and LLM Equipment Modeling
Quickly set up data sources and batch map raw data with AI and LLM support using your choice of Brick, Haystack 4.0
Sparkplug B and UDMI, Both Directions
Ingest telemetry from external MQTT and UDMI devices, and publish your modeled equipment back out as a UDMI gateway device. UDMI ships in the next release.
Custom Plugins
Use our growing library of plugins to access other data sources; or write your own
Normal Portal
Sign In, and the Gateway Licenses Itself
One browser sign-in authorizes both the image pull and the license. Enterprise fleets skip even that with zero-touch auto-provisioning on first boot.
System Health Monitoring and Backups
Track every site from one console, with managed database backups handled for you
Secure Remote Access, No VPN
Open the on-site console in your browser through an authenticated per-site tunnel — no inbound firewall rules to open
Direct Support Access
Quickly connect with Normal’s team for expert assistance
Controls & AI Tools
AI JavaScript Programming Environment
Filter, alarm, and integrate with any system with a few lines of code; or develop controls that run on-device
Commands and Overrides
Send commands to downstream devices that automatically relinquish control when they expire
AI Integrated Development Environment with GitHub
Develop new integrations right on the device; collaborate by pushing your changes back to GitHub
Graphical, function-block style configuration
Use our familiar graphical programming tool to deploy code to 1 or 1000 devices at the same time
Schedules & Commands
One Schedule Service Across Every Protocol
BACnet schedule objects are discovered and imported during scans, then managed alongside everything else from a single interface
Bidirectional Sync
Read schedule rules off the devices, edit them in Normal, and write the changes back — with a sync log recording every change
Writes That Relinquish Themselves
Commands carry a priority and a lifetime. If a device is offline when one expires, the release is retried until it lands.
Guardrails on Every Application
Deny-by-default policy rules controlling exactly what each integration is permitted to write
Data Quality
Eleven Ways Data Goes Wrong, Detected Automatically
Stale, dead, intermittent, flatlined, railed, out-of-range, sentinel, and non-monotonic points are flagged continuously as they report
Backtest Before You Enable
Preview exactly what a rule would flag against your history before turning it on — no surprise alert storms
Queryable, Filterable, Countable
Flags are an indexed field on the point, so they show up as an Object Explorer column with live counts and work in any point query
Runs Off the Ingest Path
A background projector sweeps the index on a timer, so data collection is never slowed down by quality evaluation
DataOps
Units That Match Across Vendors
A conversions library for flow, temperature, power, and pressure — applied on the read path, so CFM and L/s stop being two different points
Device Health Monitoring
Ensure data quality by quickly finding sources of network outages
Publish Anywhere Downstream
Sparkplug B to any MQTT broker, and every point and its metadata straight into PostgreSQL/TimescaleDB for Grafana, Tableau, or Power BI
Serve Your Model Over OPC-UA
SCADA systems and historians browse the equipment model, read live values, pull history, and command points over opc.tcp — no REST integration required. Ships in the next release.
REST and gRPC APIs
Integrate any workflow into your application
Debug with power
Access system logs and raw debugging information right from the comfort of your browser
How we Compare
Two kinds of product get bought for this job today. Here is how we differ from each in shape, not in brand.
| Normal Framework | Site-oriented integration frameworks | Analytics-first platforms | |
|---|---|---|---|
| How you get it | Install it yourself, free, today | Certified channel, quoted | Reseller, quoted |
| Licensing | Per building, unlimited points | Per driver, per point, per station | Per point or per site |
| Time to first data | Minutes | Days to weeks | Needs someone else to connect the building first |
| Scope | Integration, modeling, scheduling, and supervisory control | Supervisory control at one site | Analysis of data someone else acquired |
| Write-back | Priority, lifetime, guardrails, automatic relinquish, retried reversions | Native, site-scoped | Typically none |
| Extension language | JavaScript, with gRPC and REST APIs | Proprietary visual wiring plus a JVM language | Proprietary rule language |
| Data model | Brick, Haystack 4, or your own schemas — portable out | Proprietary object model | Tag model, resident in the platform |
| Fleet management | Native — portal, tunnels, provisioning, backups | Add-on | Per instance |
| Deployment | Container on your hardware, a VM, or your cloud | Appliance-anchored | Vendor cloud |
We are not trying to replace the station in your closet. Normal speaks Fox natively and connects to existing Niagara stations — most of our customers run both.