HACCP temperature logging with Senzemo sensors, without the clipboard

Most kitchens, cold rooms and retail food operations still log temperature by hand. Someone walks the fridges and freezers several times a day with a thermometer and a clipboard, writes down a number, and files the sheet for the inspector. It works, until the person is off shift, the fridge fails at 2am on a Saturday, or the sheet goes missing the week of an audit.

This tutorial provides a step-by-step guide to connect Senzemo LoRaWAN sensors to TagoIO and get live temperature data onto a dashboard, using The Things Network as the example network. By following these instructions you will have a Senzemo sensor reporting into TagoIO with a working dashboard in about fifteen minutes, with no code and no payload parser to write.

The sensors already solve the measuring half of the problem. Senzemo, a Slovenian manufacturer, builds LoRaWAN sensors for exactly this environment: food probes, industrial temperature probes, microclimate and air quality. Their customers include hotel groups running over a thousand sensors across cold rooms, where automating the log cut compliance labour by about a third. What is left is the record that an inspector accepts, the alert that reaches a human when nobody is on site, and the judgment to tell a real problem from someone opening a door. That is a memory and alerting problem, and it does not belong on a battery-powered sensor.

Senzemo recorded the full walkthrough. Watch it here, or follow the written steps below.


Why the food simulant matters here

Most temperature sensors measure air. Air temperature in a fridge spikes every time the door opens, so a system built on air readings either cries wolf constantly or gets its thresholds set so loose it misses real problems.

Senzemo’s STB10 measures a food simulant instead, a buffer with the thermal mass of actual product. It responds the way the food responds, not the way the air does. A door opening barely moves it. A compressor degrading over days does. That is the difference between an alert stream people ignore and one they act on, and it is why the STB10 is the sensor to start with for HACCP.

The same connection steps below work for all eleven Senzemo sensors integrated on TagoIO, including the STF40 food probe, the STP40 industrial probe, the STO10 temperature-only sensor and the SPU30 air quality sensor.


Prerequisites

Before you begin, ensure you have the following:

  • TagoIO account: if you don’t have one, register here. Pick your region carefully, EU or US, you will need it again later.
  • A Senzemo sensor, provisioned on a LoRaWAN network. This guide uses The Things Network, but the flow is the same for any network server.
  • Your device EUI, from the TTN console or your network’s equivalent.

Step 1: Create the device in TagoIO

  1. Add the device

    • In the TagoIO Admin, click Devices in the top left, then Add Device.
    • Search for your Senzemo sensor model and select it.
    • Choose your network provider. For this guide, The Things Network.
  2. Fill in the details

    • Give the device a name.
    • Set the data retention period.
    • Paste the device EUI from your TTN application.
  3. Create it

    • Click Create my Device.

:information_source: Note: the region you selected when creating your TagoIO account, EU or US, determines which API endpoint your data goes to. Keep it in mind, it comes back in Step 4.


Step 2: Install the preset dashboard

Senzemo built a ready-made dashboard for their sensors, so you get a working screen immediately rather than an empty device.

  1. Open the template

  2. Attach it to your device

    • Select the device you just created from the dropdown.
    • Click Create Dashboard.

The dashboard exists now and will populate as soon as the first uplink arrives.


Step 3: Create a Network Authorization

This is what allows your LoRaWAN network to push data into TagoIO. It is a network-level token, not a device token, so do not copy the token from the device page.

  1. Go to Authorizations

    • Click Devices, then Authorization in the top right.
    • Click Add Authorization.
  2. Create it

    • Give it a name, something like TTN.
    • Click Create Authorization.
    • Copy the token. You will paste it into TTN in the next step.

:warning: Use the Network Authorization token here. A device token will not work for a webhook integration.


Step 4: Create the webhook in TTN

  1. Start a custom webhook

    • In your TTN application, go to Integrations, then Webhooks.
    • Choose Custom webhook and give it a name.
  2. Set the base URL

    • Use the TagoIO endpoint for The Things Network from the TagoIO documentation, and replace the region part of the URL with your region, eu-w1 or us-e1.
    • You can confirm your region by looking at the URL of your TagoIO Admin page.
  3. Add the authorization header

    • Under Additional headers, add a header named Authorization.
    • Paste the Network Authorization token from Step 3 as the value.
  4. Enable uplinks

    • Under Enabled event types, check Uplink message.
    • Set the path to /uplink.
  5. Save it

    • Click Create webhook.

:warning: The region is the most common reason data does not arrive. Your account region, the dashboard template host parameter and the webhook base URL all need to match.


Step 5: Power on and verify

  1. Wake the sensor

    • Power on your Senzemo sensor and wait for its first transmission. Sensors report on their own interval, so this may take a few minutes.
  2. Check TagoIO

    • Back in Devices, the Last Input field for your device should update.
    • Open your dashboard. Live measurements are showing.
  3. If you want to watch it arrive

    • Open the device and use the Live Inspector to see the raw uplink as TTN delivers it.

That is the whole connection. Your sensor is live.


What to turn on once the data has history

A temperature number on a screen is monitoring, not compliance. Three things turn it into something an inspector and a night manager can both use, and none of them require code.

Alerts that reach a person. Set an Action on the temperature variable so that a reading outside range sends an email, an SMS or a message to whoever is on call. The alert is what makes 2am on a Saturday survivable.

Anomaly detection against a learned baseline. Fixed thresholds are noisy. A fridge at full load behaves differently from one that was just restocked, so static limits either miss real problems or fire until people stop reading them. Models trained on each unit’s own history learn what normal looks like for that specific fridge and catch the slow drift that precedes a compressor failure, days before it crosses any fixed line.

Time to threshold. Point a forecast at the temperature and set the limit at your HACCP boundary. The output is a countdown in days, not a surprise. That turns a sensor into a maintenance planning tool.

All three arrive as ordinary TagoIO variables, so they feed Dashboards, reports, and a branded portal your own customers can log into.


On building this yourself

You can get temperature readings into a spreadsheet in an afternoon. Plenty of operations have, and for one fridge it works.

What tends to surface later, in roughly this order: an audit trail that proves the log was not edited, retention that survives staff turnover, alerts that reach someone who is not looking at a screen, several sites in one view instead of one spreadsheet per location, and enough history to know what normal looks like before you can spot abnormal. Each is solvable. Together they are a product, and maintaining that product is not the business a kitchen or a retailer is in.

The reasonable position is not to avoid building anything, it is to build on something that already handles the parts above. Put the application layer together with an assistant, use the MCP server to query your own data, and let the platform carry ingestion, storage, permissions and the audit trail underneath.


Troubleshooting

No data arriving in TagoIO

  • Region mismatch: confirm your account region, the dashboard host parameter and the webhook base URL all say the same thing, eu-w1 or us-e1.
  • Wrong token type: the webhook needs the Network Authorization token, not a device token. Check the Authorization page under Devices.
  • Uplink not enabled: in the TTN webhook, confirm Uplink message is checked and the path is /uplink.
  • Sensor has not transmitted: Last Input stays empty until the first uplink. Wait for the sensor’s interval, or trigger a transmission if your model supports it.

Dashboard is empty

  • Device not attached: reopen the template link and make sure you selected the correct device from the dropdown before clicking Create Dashboard.
  • Data arrived after the dashboard was created: refresh. The dashboard populates from the device’s data, so it fills in as soon as the first uplink lands.

Device shows Last Input but the dashboard is wrong

  • Different sensor model: the preset dashboard is built for Senzemo’s sensor variables. If you used a connector for a different model, the variable names may not match. Check the device’s Data tab for the actual variable names.

Senzemo built the preset dashboard and recorded the walkthrough this tutorial is based on. Watch their video on connecting a sensor to TagoIO, and read both sides of the integration story: Seamless sensor integration with TagoIO on Senzemo’s blog, and Senzemo Sensors and TagoIO: From First Uplink to a Full Application on ours.