Skip to content

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.

  1. Create a workflow with extraction rules that match your naming conventions → Workflows
  2. Extract equipment from discovered points → Equipment & Points
  3. Classify points with Brick or Haystack tags → Point Labeling
  4. 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:

  1. Go to Applications in the management console.
  2. Click Create and provide the app's repository URL or upload a package.
  3. 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)