How to integrate a temperature sensor with Zabbix, PRTG, Checkmk and Home Assistant
A network temperature sensor should plug into your monitoring through two open interfaces: SNMP for anything that speaks it natively, and a JSON or XML page over HTTP for everything else. If the sensor offers both, no platform needs a vendor plugin, and the integration survives the next upgrade of Zabbix, PRTG, Checkmk or Home Assistant.
In short
- Prefer SNMP v2c read for Zabbix, PRTG, Checkmk, Nagios and LibreNMS. It is native in all of them and needs only the OID and community string.
- Use HTTP GET returning JSON for Home Assistant, Grafana, Node-RED and scripts. One request, one parse, no MIB.
- Vendor plugins for older loggers (Room Alert, Poseidon) break when the platform moves on. The open interfaces do not.
- Keep the device's own e-mail alarm on even after integration. When the monitoring server is what failed, the sensor still tells you.
SNMP or HTTP JSON: which one when
SNMP is the older interface and the one every network monitoring platform was built around. The platform polls the device for a numbered object identifier (OID), gets a number back, and stores it. Read-only v1 or v2c is enough for a sensor; there is nothing to write. HTTP JSON is the newer path: the sensor serves a small page such as http://192.168.1.50/values.json, and anything that can make a web request and parse JSON can use it.
| Platform | Recommended | Also works |
|---|---|---|
| Zabbix | SNMP v2c item, or vendor template | HTTP agent item + JSONPath |
| PRTG | SNMP Custom Advanced sensor | HTTP Data Advanced (JSON) |
| Checkmk | SNMP with a small check plug-in | Local check via curl |
| Nagios / Icinga | check_snmp | check_http with a JSON plug-in |
| LibreNMS | SNMP, custom OID sensor | — |
| Home Assistant | RESTful sensor (JSON) | SNMP integration |
| Grafana / Node-RED | HTTP JSON | Telegraf SNMP input |
The rule of thumb: if the platform already polls your switches over SNMP, add the sensor the same way. If you are building dashboards or automations, take the JSON.
Zabbix
Create a host for the sensor with an SNMP interface, version 2c, community as set on the device. Add an item of type "SNMP agent", enter the OID for temperature, and set the value type to numeric float. If the device reports tenths of a degree as an integer, add a preprocessing step "custom multiplier 0.1". A trigger such as last(/Rack sensor/temp.inlet)>27 raises a warning, a second one at 32 raises high.
The faster route is a template. EnviSensor loggers ship with a free Zabbix script; import it, link the host, and items and triggers appear. The Zabbix documentation on SNMP agent items covers discovery if you have a dozen sensors of the same type.
If you prefer JSON, use an "HTTP agent" item pointing at the device page and a JSONPath preprocessing step, for example $.temperature. One item per value, same triggers.
PRTG
Add the sensor as a device with its IP and the SNMP credentials in the device settings. Then add an SNMP Custom Advanced sensor: one channel per OID, unit "°C", and a multiplier if the device reports tenths. Set channel limits on the sensor, warning above 27 and error above 32, and PRTG's notification system does the rest.
If you have a MIB file for the device, Paessler MIB Importer turns it into an .oidlib file and the SNMP Library sensor lists all values by name. Without a MIB, the manual OIDs from the device documentation work just as well. For the JSON path, the HTTP Data Advanced sensor accepts a page in PRTG's own JSON schema, which most sensors do not emit, so SNMP is the shorter road in PRTG.
Checkmk and Nagios
Checkmk discovers SNMP hosts automatically, but a generic environmental sensor will not match a built-in check. Two options. The lighter one is a local check: a shell script on the Checkmk agent host that curls the JSON page and prints a status line. The cleaner one is a small SNMP-based check plug-in, a Python file of thirty lines that parses the OID and returns a metric with thresholds; the Checkmk developer guide walks through it.
Nagios and Icinga are the simplest of all: check_snmp -H 192.168.1.50 -C public -o <OID> -w 27 -c 32. That is the whole integration. Older environmental loggers whose official Checkmk plug-in stopped working years ago can be rescued the same way, as long as they still answer SNMP.
Home Assistant
Home Assistant is the platform where JSON wins. A RESTful sensor in configuration.yaml with the device URL, a value_template such as {{ value_json.temperature }} and a scan interval of 60 seconds gives you an entity you can put on a dashboard or in an automation. Add a second sensor for humidity from the same page. The built-in SNMP integration also works with a base OID and community, useful if the device does not expose JSON.
The practical warning from the Home Assistant community forums applies here: integrations that depend on a vendor add-on, a USB driver or a specific HA OS version tend to break on updates. A plain HTTP request to a device on the LAN does not. If the aim is an alert when the rack in the garage passes 30 °C, the RESTful sensor plus a numeric-state automation is the setup that still works two years from now.
Why vendor plugins are the wrong dependency
Admins running older environmental loggers know the pattern. The official Checkmk plug-in for the logger targets a Checkmk version from years ago and fails on the current one. The industrial platform has no connector, so someone writes a script that parses the device's JSON, and that script becomes an undocumented part of the infrastructure. The vendor's cloud portal changes its API, and the dashboard goes blank.
Open interfaces avoid all three. SNMP v2c read has not changed in twenty years, and JSON over HTTP GET is as stable as the URL. A sensor that exposes both, plus e-mail alarms from the device itself, can be re-integrated with any platform in an afternoon and keeps alarming while you do it. That is the specification to buy against: not "works with Zabbix", but "SNMP read and JSON over HTTP, documented OIDs and fields". EnviSensor loggers are built that way, with a free Zabbix template on top for the common case.
Frequently asked questions
Should I use SNMP or HTTP JSON for a temperature sensor?
SNMP for network monitoring platforms that already poll switches (Zabbix, PRTG, Checkmk, Nagios, LibreNMS). HTTP JSON for Home Assistant, Grafana, Node-RED and custom scripts. A sensor that offers both fits any platform.
Do I need SNMP v3 for a sensor?
Rarely. The sensor is read-only and sits on a management VLAN. SNMP v2c with a non-default community string is the usual choice; v3 adds authentication if your policy demands it.
How do I get a temperature sensor into Zabbix?
Add a host with an SNMP v2c interface, create an SNMP agent item with the temperature OID, and add triggers at 27 and 32 °C. Or import the vendor template if one ships with the device.
Can Home Assistant read a network temperature sensor?
Yes. A RESTful sensor pointing at the device's JSON page with a value_template for the temperature field creates an entity you can use in dashboards and automations. The SNMP integration is an alternative.
What happens to alarms if the monitoring server goes down?
Nothing, if the sensor sends its own e-mail alarms from the device. Keep those thresholds configured even after integration; they are the backup when the server, the network segment or the cloud is what failed.
Related pages
Software and operating modes
Local, on-premise with your system, or CE MonitorApp cloud.
Cloud or local monitoring
An honest comparison of the two ways to run sensors.
EnviSensor ETH PoE
SNMP, JSON/XML and e-mail alarms from the device.
Need monitoring at your site?
We will help you choose sensors and the way they run — locally on your LAN, in your own monitoring system or in the CE MonitorApp cloud.