FreeMaint
FeaturesPricing
AcademyFree maintenance coursesDocsGuides & API referenceBlogPlaybooks & product updatesComparisonFreeMaint vs the alternativesChangelogWhat's new
AffiliatesEarn recurring commissionServicesSetup, migration & training
Contact
ENSign inSign up

Product

FeaturesPricing

Resources

AcademyDocsBlogComparisonChangelog

Partnership

AffiliatesServices

Account

ContactSign in
FreeMaint

Free your maintenance

Product

FeaturesPricingComparisonChangelogSign up

Resources

BlogDocumentationAcademyResearchSolutionsIndustriesFree templates

Company

AboutServicesAffiliatesContact

Legal

PrivacyTermsRefund PolicyExport Compliance
FreeMaint © 2026 · All rights reserved.GDPR & LGPD CompliantMobile app
Back to Documentation

FreeMaint CMMS

FreeMaint Connect

FreeMaint Connect

Connect meters and sensors: live measurements, alerts that open work orders, and meter-based maintenance

FreeMaint Connect: connected devices and sensors

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.

Supported devices

These models are recognised 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.

  • Shelly Pro 3EM, Shelly EM Gen3, Shelly Pro EM-50, Shelly Plug S Gen3 and Shelly 1PM Gen3 — Wi-Fi or Ethernet energy meters, plugs and relays.
  • Milesight CT101 — LoRaWAN current transformer clamped on a cable.
  • Milesight EM300-TH — LoRaWAN temperature and humidity sensor.
  • Any other system that can send JSON over HTTP: Node-RED, Home Assistant, a PLC gateway or your own script.

How it works

  1. {"title":"Create a connection","description":"In Connected devices → Integrations, click Connect a device and choose where your measurements come from: a Shelly meter, a LoRaWAN network (The Things Stack, ChirpStack, Milesight gateway) or the HTTP API."}
  2. {"title":"Paste what FreeMaint shows you","description":"FreeMaint displays an access key and, depending on the source, a script, a URL and a header. You paste them into your device or platform — no integrator needed."}
  3. {"title":"Devices appear by themselves","description":"A device that sends data for the first time appears in Connected devices → Devices, with one channel per measurement (for example power, energy, temperature)."}
  4. {"title":"Put the measurements to work","description":"Attach a device to an asset, watch a channel with an alert rule, feed an asset meter for meter-based preventive maintenance, or feed an energy meter for cost and CO₂."}
View connected devices and their readings
Seeing devices, channels and history requires the Connect read permission.
Manage integrations, devices and channels
Creating integrations and editing devices or channels requires the Connect manage permission.
Manage alert rules (thresholds, zones, automatic work orders)
Creating and editing alert rules requires the alert rules permission (Administrators and Managers by default).
View and acknowledge device alerts
Seeing and acknowledging alerts requires the alerts permission (Administrators, Managers, Supervisors and Technicians by default).

Who can do what

View connected devices and their readings
Seeing devices, channels and history requires the Connect read permission.
Manage integrations, devices and channels
Creating integrations and editing devices or channels requires the Connect manage permission.
Manage alert rules (thresholds, zones, automatic work orders)
Creating and editing alert rules requires the alert rules permission (Administrators and Managers by default).
View and acknowledge device alerts
Seeing and acknowledging alerts requires the alerts permission (Administrators, Managers, Supervisors and Technicians by default).

Plans and limits

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.

Integration
One connection with its own access key: a Shelly script, a LoRaWAN application, a gateway or your own script. You can pause it, rotate its key or delete it.
Device
A physical meter or sensor that sends data through an integration. It shows its state (new, online, late, offline), its battery and signal when available, and its last message.
Channel
One measurement of a device — for example the power of phase A or a temperature. Alerts, history curves and meter links are set per channel.

Three words to know

Integration
One connection with its own access key: a Shelly script, a LoRaWAN application, a gateway or your own script. You can pause it, rotate its key or delete it.
Device
A physical meter or sensor that sends data through an integration. It shows its state (new, online, late, offline), its battery and signal when available, and its last message.
Channel
One measurement of a device — for example the power of phase A or a temperature. Alerts, history curves and meter links are set per channel.

Connect a Shelly energy meter

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.

Before you start

  • The Shelly is installed, powered and connected to your network with internet access.
  • You can open its web page by typing its IP address in a browser on the same network.
  • Your company is on the Business plan and you hold the Connect manage permission.

What you get

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.

  • Energy counters are stored as totals that only go up: FreeMaint computes the consumption between two readings, even across a reset.
  • Values sent in Wh are converted to kWh, so a Shelly and a utility meter add up correctly.
  • If a model is not recognised automatically, choose it in the device's Model field.

Pair the device

  1. {"title":"Create the connection","description":"In Connected devices → Integrations, click Connect a device, choose Shelly (Wi-Fi / Ethernet), give it a name (for example: Main switchboard — Shelly) and create it."}
  2. {"title":"Copy the script","description":"FreeMaint shows the script once, with your access key inside. Copy it before closing the window."}
  3. {"title":"Paste it into the Shelly","description":"On the Shelly's web page, open Scripts → Create script, paste the script and save."}
  4. {"title":"Start it for good","description":"Click Start and turn on Run on startup, so the script starts again after a power cut."}

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.

Nothing arrives?

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.


Connect LoRaWAN sensors

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.

ChirpStack

  1. Create the connection in FreeMaint, choosing ChirpStack (LoRaWAN).
  2. In ChirpStack, open your application → Integrations → HTTP → Add.
  3. Keep the JSON payload encoding and paste the event endpoint URL shown by FreeMaint.
  4. Under Headers, add the header shown by FreeMaint (name and value).

Milesight gateway

  1. Create the connection in FreeMaint, choosing Milesight gateway.
  2. In the gateway's web interface, open Network Server → Applications → your application.
  3. Add an HTTP(S) data transmission and paste the uplink data URL shown by FreeMaint.
  4. Add the HTTP header shown by FreeMaint (name and value).
  5. Do not set a payload codec on the gateway: FreeMaint needs the full uplink to decode certified sensors.
Milesight CT101
Current transformer clamped on a cable: current, total current and alarms. Powered by the measured cable, it stops reporting when the current falls below about 1.4 A — a gap in its data can simply mean the machine is off.
Milesight EM300-TH
Temperature and humidity, with battery level. Ideal for cold rooms, server rooms, stores and technical rooms.

Sensors decoded by FreeMaint

Milesight CT101
Current transformer clamped on a cable: current, total current and alarms. Powered by the measured cable, it stops reporting when the current falls below about 1.4 A — a gap in its data can simply mean the machine is off.
Milesight EM300-TH
Temperature and humidity, with battery level. Ideal for cold rooms, server rooms, stores and technical rooms.
The Things Stack
The Things Network or The Things Industries: add a custom webhook to your application.
ChirpStack
Your own LoRaWAN network server: add an HTTP integration to your application.
Milesight gateway
UG65, UG56 and other gateways with the built-in network server: add an HTTP data transmission.

Choose your source

The Things Stack
The Things Network or The Things Industries: add a custom webhook to your application.
ChirpStack
Your own LoRaWAN network server: add an HTTP integration to your application.
Milesight gateway
UG65, UG56 and other gateways with the built-in network server: add an HTTP data transmission.

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.

The Things Stack

  1. In Connected devices → Integrations, click Connect a device, choose The Things Stack (LoRaWAN) and create the connection.
  2. In The Things Stack console, open your application → Integrations → Webhooks → Add webhook → Custom webhook.
  3. Choose the JSON format and paste the base URL shown by FreeMaint.
  4. Under Additional headers, add the header shown by FreeMaint (name and value).
  5. Tick Uplink message and leave its path empty. Do not tick Request authentication: it would replace the FreeMaint header.

Send measurements with the HTTP API

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

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.

key
The channel's name on this device, for example power or energy_total. The same key always lands on the same channel.
value
A number.
unit
For example W, kWh, °C or mm/s. Energy in Wh or MWh is converted to kWh, temperatures to °C, vibration velocity to mm/s.
quantity
What is measured, for example power, energy, temperature or vibration_velocity. It lets FreeMaint pick the right unit and chart.
kind
CUMULATIVE for a counter that only goes up (an energy total, run hours). FreeMaint then computes the consumption between readings. Leave it out for a simple measured value.

Point fields

key
The channel's name on this device, for example power or energy_total. The same key always lands on the same channel.
value
A number.
unit
For example W, kWh, °C or mm/s. Energy in Wh or MWh is converted to kWh, temperatures to °C, vibration velocity to mm/s.
quantity
What is measured, for example power, energy, temperature or vibration_velocity. It lets FreeMaint pick the right unit and chart.
kind
CUMULATIVE for a counter that only goes up (an energy total, run hours). FreeMaint then computes the consumption between readings. Leave it out for a simple measured value.

Limits

  • Up to 500 devices and 5,000 points per request.
  • Up to 120 requests per minute per connection; beyond that FreeMaint answers 429 and your system should retry later.
  • A request that is malformed gets a 400 response naming the problem, so a misconfigured gateway is easy to fix.
  • Each new channel counts toward your plan's limit of active channels.

The request

  • Method: POST, to the URL shown when you create the connection (it ends with /connect/ingest/generic).
  • Header Authorization: Bearer followed by the access key.
  • Header Content-Type: application/json.
  • FreeMaint answers 202 when the data is accepted; it is stored within seconds.

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.


Alert rules: from a measurement to a work order

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.

Create a rule

  1. Open Connected devices → Alert rules and click New rule, or open a channel and add a rule from there.
  2. Choose the channel, the rule type and its limits.
  3. Set the severity and, if needed, how long the condition must last before an alert opens.
  4. Choose whether the rule creates a work order. It is off by default.

Follow the alerts

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.

Who is notified

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.

Threshold
Alert when the value goes above and/or below a limit. A margin to clear avoids alerts that flap on and off around the limit.
Rate of change
Alert when the value changes too fast — a sudden rise or drop per minute.
Vibration zones (ISO 20816)
Zone C opens a warning, zone D a critical alert. There are no default values: enter the zone limits for your machine group, from the manufacturer or your vibration analyst.
No data
Alert when the channel has sent nothing for a while: sensor down, battery empty or network cut.

Rule types

Threshold
Alert when the value goes above and/or below a limit. A margin to clear avoids alerts that flap on and off around the limit.
Rate of change
Alert when the value changes too fast — a sudden rise or drop per minute.
Vibration zones (ISO 20816)
Zone C opens a warning, zone D a critical alert. There are no default values: enter the zone limits for your machine group, from the manufacturer or your vibration analyst.
No data
Alert when the channel has sent nothing for a while: sensor down, battery empty or network cut.

Work orders created by an alert

  • One alert creates at most one work order, even if the condition is met again and again.
  • If a work order created by the same rule is still open on the asset, FreeMaint reuses it instead of creating a duplicate.
  • When the alert ends, the work order is not closed automatically: someone checks the machine and closes it.
  • With a vibration-zone rule, only zone D (critical) opens a work order; zone C remains a warning.

Channels, asset meters and run hours

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.

On the asset

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.

Feed an asset meter

  1. Open the channel and, under Use these values, choose Asset meter.
  2. Choose the meter of the asset (for example its run-hours or counter meter).
  3. FreeMaint writes a reading every 60 minutes by default. The meter's triggers and meter-based preventive maintenance work as with manual readings.

Calibration

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.

Feed an energy meter

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.

History and curves

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.

Count run hours

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.

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.


FreeMaint CMMS

© 2026 FreeMaint. All rights reserved.