Connect meters and sensors: live measurements, alerts that open work orders, and meter-based maintenance
What FreeMaint Connect does, which devices it supports, what the Business plan includes and how measurements turn into maintenance.
FreeMaint Connect brings live measurements from your meters and sensors into FreeMaint — electricity, temperature, humidity, current, vibration or any value your own system can send — and turns them into maintenance: alerts, work orders, run hours and energy reports. It has its own section in the menu: Connected devices.
These models are recognized automatically and their data is decoded by FreeMaint. They carry the Compatible badge: validated on the manufacturer's documentation. The Lab-tested badge is given once a model has been tested on the physical device.
Connecting devices and editing alert rules requires the Business plan, which includes 100 active channels. The Enterprise plan includes 5,000. An inactive channel does not count toward the limit. Data you already collected stays visible on every plan.
FreeMaint does not speak Modbus, MQTT, BACnet or OPC UA directly. A gateway that reads those protocols (Node-RED, Home Assistant, a Teltonika router) can forward the values through the HTTP API.
The Display unit changes how values, the chart, alert rules and alert messages read, for the whole history at once; the stored values stay the same. Multiplier and Offset are different: they correct what the sensor sends (calibration, current transformer ratio) and apply to new values only — do not use them to turn °C into °F.
Each kind of measurement is stored in one unit, whatever the device sends: temperatures in °C, pressures in bar, power in W, energy in kWh. Alerts, history and meters all use it, so two devices measuring the same thing compare directly. To read a channel in another unit, open it and choose its Display unit:
Pair a Shelly Pro 3EM, EM Gen3, Pro EM-50, Plug S Gen3 or 1PM Gen3 with FreeMaint by pasting one script — no gateway needed.
Shelly Gen2 and Gen3 devices (Pro 3EM, EM Gen3, Pro EM-50, Plug S Gen3, 1PM Gen3) send their measurements straight to FreeMaint over Wi-Fi or Ethernet. FreeMaint gives you a short script that already contains your access key: you paste it into the device once.
Within a minute the device appears in Connected devices → Devices and its channels fill up. The script sends the measurements every 60 seconds: power, energy counters, voltage and current per phase, depending on the model.
Issue: The device never appears
Solution: Check on the Shelly's Scripts page that the script is running, and that the Shelly reaches the internet. The integration card shows No data received yet until the first message.
Issue: The device appeared once, then stopped
Solution: Run on startup is probably off: the script stopped after a restart. Turn it on and start the script again.
Issue: New devices are not added
Solution: Automatic adding may be off on the integration. Turn it back on, or add the device yourself.
Issue: The device never appears
Solution: Check on the Shelly's Scripts page that the script is running, and that the Shelly reaches the internet. The integration card shows No data received yet until the first message.
Issue: The device appeared once, then stopped
Solution: Run on startup is probably off: the script stopped after a restart. Turn it on and start the script again.
Issue: New devices are not added
Solution: Automatic adding may be off on the integration. Turn it back on, or add the device yourself.
Warning:
The access key is shown only once. If you lose it, generate a new key from the integration (New access key) and paste the new script into the device.
Send LoRaWAN uplinks to FreeMaint from The Things Stack, ChirpStack or a Milesight gateway, and let FreeMaint decode the certified sensors.
LoRaWAN sensors run on batteries for years and reach far through walls. Your network server — The Things Stack, ChirpStack or the server built into a Milesight gateway — forwards each uplink to FreeMaint over HTTP. For the Milesight CT101 and EM300-TH, FreeMaint decodes the payload itself.
For each LoRaWAN device FreeMaint keeps the battery level, the signal (RSSI and SNR) and the last message. Set the expected reporting interval on the device to be warned when it goes silent. Late and offline are tracked once you confirm the device (Confirm button on its page).
Other LoRaWAN sensors also work when your network server decodes them: FreeMaint stores the decoded values it receives, one channel per numeric field. If a value arrives with the wrong type (a kWh index shown as an instant value, for example), correct it on the channel page under “Measurement type”.
Send JSON from Node-RED, Home Assistant, a PLC gateway or your own script to FreeMaint Connect: format, headers, units and limits.
Any system that can send an HTTP request with a JSON body can feed FreeMaint Connect: Node-RED, Home Assistant, a gateway that reads Modbus, a PLC or a script of your own. Create a connection of type HTTP API (Node-RED, script…) to get its URL and access key.
The body lists devices under items. Each device has an identifier (device), an optional display name, an optional time (ts, ISO 8601) and its points. Each point has a key, a value and, ideally, a unit and a quantity. The creation screen shows a complete example you can copy.
Typical setups: a Node-RED flow that reads a Modbus energy meter every minute and posts its values; a Home Assistant automation that forwards a sensor; a Teltonika router whose Data to Server feature posts readings.
Warning:
Keep the access key secret: anyone who has it can send data to this connection. If it may have leaked, generate a new key and choose Revoke it now.
Watch a channel with a threshold, rate-of-change, vibration-zone or no-data rule; be notified and open a work order automatically.
An alert rule watches one channel. When its condition is met, an alert opens: the right people are notified and, if you chose it, a work order is created on the asset. When the value comes back to normal, the alert closes by itself.
Connected devices → Alerts lists the alerts in progress and the resolved ones. Acknowledge an alert to show it is being handled. Each alert shows its trigger value, its peak and a chart of the channel around the alert. Alerts also appear on the asset and in the mobile app.
Alerts are sent in the app and by push notification to the roles chosen for device alerts in the notification settings (Connected devices category), among the people who can see alerts. Critical alerts are also sent by email, once per alert.
Changing a rule's channel, type, limits, severity or hold time closes its open alert: the next alert starts from the new settings.
Calibrate channels, link them to an asset meter for meter-based preventive maintenance or to an energy meter, and count run hours.
Each measurement of a device is a channel. A channel keeps its history and can feed the rest of FreeMaint: an asset meter that triggers preventive maintenance, an energy meter that computes cost and CO₂, or a calculated channel that counts run hours.
The asset's Analytics tab shows its main sensor measurements — tap a tile to see its curve — and an Energy card with consumption, cost and CO₂ over 30 days, 90 days or 12 months. Open a channel and turn on “Show on the asset page” to choose the measurements shown; if none is on, FreeMaint picks the main ones (temperature, power, energy…). In the mobile app, the asset page shows the same measurements first, with this month's energy.
Attach a device to an asset: its channels follow the asset unless a channel was set to another one. The asset's Connected devices tab shows the live measurements and the alerts in progress, on the web and in the mobile app.
Value stored = value received × multiplier + offset. Use it for a current transformer ratio or a small sensor correction. It applies to new values only. An inactive channel no longer stores values and does not count toward your limit.
Link the channel to an energy meter: one reading every 15 minutes goes to it, with cost (from your tariff) and CO₂ (from your emission factor). The energy dashboard, the bill estimate and the energy report then use these readings like any other.
Under the curve, “Highest” and “Lowest” show the period's extreme readings and when they happened, and “Average” the average of the period shown, weighted by the number of readings — on the web and in the mobile app. They are not shown for a counter or an on/off channel.
Open a channel to see its curve over 6 hours to one year. Recent data is shown point by point; longer periods are shown as 15-minute, hourly or daily averages, so the chart stays fast.
A channel for which nobody has chosen a display unit is shown in the unit your device sends (Pa, Wh, kW…), from the first reading. FreeMaint still stores one unit per quantity, so alerts, meters and energy figures stay consistent. Choose another display unit on the channel at any time: your choice is kept.
A motor rarely sends its run hours. Open a power or current channel and click Calculate run hours: FreeMaint counts the time the value stays above the level you choose. You can also count start cycles from an on/off channel. Link the calculated channel to the asset's run-hours meter, and a preventive maintenance such as an oil change every 2,000 hours triggers by itself.
The download button above a channel's chart exports the readings shown to CSV — same period, same resolution and same display unit — one row per point, times in UTC.
Readings written by a device are marked as coming from a connected device in the meter's history and in the compliance report, so you always know which values were entered by hand.
When your network server decodes a sensor (ChirpStack, The Things Stack or the HTTP API), FreeMaint guesses each channel's type from the field name. If the guess is wrong, open the channel and change its quantity, unit and value kind under “Measurement type”. A kWh index, for example, must be a “Counter (total)” to feed an energy meter and get a cost. Changing the value kind recalculates the last 95 days of history. Channels of certified sensors are decoded by FreeMaint and cannot be changed. If the channel already holds readings in another unit (for example Pa while it was a “Measurement”), FreeMaint asks before saving: readings in a unit it can convert are converted, along with the alert rules and run hours that use them; otherwise they are kept as they are and read in the new unit. A channel that feeds a meter keeps its unit: unlink the meter first.
FreeMaint CMMS
© 2026 FreeMaint. All rights reserved.