After You Deploy¶
You've got NF running and data flowing -- nice. This guide covers the next steps to turn a working install into a production-ready system.
Backups are enabled by default and managed through the Normal Portal. You can view backup status and trigger restores from your device's page in the portal.
Configure Data Collection¶
Polling Strategies¶
Not all points need the same polling frequency. A practical approach:
| Point Type | Suggested Interval | Rationale |
|---|---|---|
| Temperature, humidity, CO2 | 60s | Changes frequently, used for control |
| Setpoints, modes | 300s | Changes infrequently |
| Status/alarms | 60s | Important for fault detection |
| Energy meters | 300--900s | Trending, not real-time |
| Static config (names, limits) | 3600s or manual | Rarely changes |
BACnet Change-of-Value (COV)¶
For points that support COV subscriptions, NF can receive updates on change rather than polling. This reduces network traffic and gives you faster response times. Configure COV in the Object Explorer point properties.
Write Guardrails¶
If your application writes to building systems, set up Write Guardrails to prevent accidental or out-of-range writes. Guardrails enforce min/max bounds and rate limits on all write commands.
Normalize Your Data¶
Raw BACnet object names like AHU-1.SAT or FCU_3F_01_ZAT are
meaningful to the person who programmed the controller, but hard to use
at scale. NF's modeling tools let you normalize points into a
consistent ontology.
Recommended Workflow¶
- Create a workflow with extraction rules that match your naming conventions → Workflows
- Extract equipment from discovered points → Equipment & Points
- Classify points with Brick or Haystack tags → Point Labeling
- Define relationships between equipment (e.g., AHU serves zones) → Relationships
This normalization is what makes NF data portable across applications and sites.
Connect to External Systems¶
Cloud Telemetry with Sparkplug¶
Forward point data to an MQTT broker using the Sparkplug B protocol. Configure the broker in Settings > Configuration > Sparkplug or see Sparkplug for the full setup.
Time-Series Export to Timescale¶
For long-term storage and SQL-based analytics, export data to TimescaleDB. See Timescale.
Custom Integrations with the SDK¶
Build your own integrations using the NF SDK:
- Hooks trigger on data changes, schedules, or events → Hooks
- Applications are long-running JavaScript programs with full API access → Writing an App
The API Examples page has 30+ Python snippets covering common integration patterns.
Claude MCP Server¶
NF includes a Model Context Protocol (MCP) server that lets you manage your deployment using Claude or other AI assistants. With the MCP server, you can:
- Discover and scan devices conversationally
- Read point values and diagnose issues
- Classify points and build equipment models
- Create and manage schedules
- Deploy hooks and applications
See Claude MCP Server for setup instructions.
Install Applications¶
The NF SDK supports installing pre-built applications:
- Go to Applications in the management console.
- Click Create and provide the app's repository URL or upload a package.
- Configure the app's settings and enable it.
See Installing an App for details.
Monitor System Health¶
The Normal Portal provides fleet-level monitoring across all your devices. For on-device monitoring:
- Device Health -- error rates, reachability trends, and per-device status timelines
- Discovery page -- check for devices that have gone offline or new devices that appeared
- Object Explorer -- look for points with stale values (not updating)
Dashboards¶
NF supports custom dashboards for visualizing point data. See Dashboard for setup.
Production Checklist¶
- [ ] Polling periods set for all relevant points
- [ ] Write guardrails configured (if writing to devices)
- [ ] License is active and not expiring soon
- [ ] Data export configured (Sparkplug, Timescale, or custom)
- [ ] System modeling started (equipment extraction, point tagging)