---
title: the radio stays outside
canonical_url: https://ensurance.app/guide/the-radio-stays-outside
markdown_url: https://ensurance.app/guide/the-radio-stays-outside.md
subtitle: the probe measures. the gateway speaks. the record is one row about the place
category: ecosystem-services
---

# the radio stays outside

*the probe measures. the gateway speaks. the record is one row about the place*

**Environmental IoT** is instruments in the field — soil probes, rain gauges, water sondes, weather stations — that send a reading onward through a radio or a cell link, so someone far from the creek can see what the creek did. The probe was never the hard part. The hard part is the radio, and what happens to the number after the radio.

A creek, a soil profile, a canopy, and a storm already produce a signal whether or not a network stores it. A probe, a lab assay, a camera, a radar pass, and an indicator sheet are readings of that living system. **[Ensurance](/?from=guide)** keeps the reading beside what the place claims, so funding can cite the condition. It does not replace anyone's sensors, and it is not the living system.

This post is about the part between the probe and the record: where the radio stops.

:::johnson
**the radio stays with the gateway. we keep the conclusion.**

Your instrument keeps measuring. Your gateway keeps decoding. What reaches the record is one dated result about a place you can name. The brand, the frequency, and the file format stay on your side of the fence.

[see the places already named →](/natural-assets?from=guide)
:::

## three jobs in an environmental iot stack

Every environmental IoT stack, from a single gauge on a fence post to a utility's full catchment network, does three jobs. They get sold as one product, which is why they get confused.

| job | what does it | what it decides |
|---|---|---|
| **instrument** | the probe, the gauge, the sonde, the station | what is measured, by what method, how often |
| **carrier** | LoRa, cellular, a CSV on a thumb drive, a webhook — the gateway already decoded the radio | how the number leaves the field |
| **record** | one dated result | what the place did, and where |

The instrument is the only job that touches the water. The carrier is plumbing. The record is the only part anyone downstream ever reads.

Most of the pain in environmental IoT lives in the middle job. A new sensor speaks a protocol the old gateway does not know. A firmware update renames a field. None of that changes what the creek did. It only changes how hard it is to find out.

So the rule is simple: the record does not care which carrier brought the number. By the time a reading arrives, the gateway you own has already decoded the radio. What is left is a dated result, with the device's own name for the measure, a unit, a method, and a place. That is the whole row.

## walk one creek

Take one reach of one creek, the kind a land trust holds or a water utility draws from.

Below the culvert the gage is a stilling well with a staff plate on the outside, marked in feet and hundredths. Every Tuesday, and after any real rain, a steward walks down, reads the water line against the gage datum, and writes a number and a time in a notebook. That is a water-level reading. The method is a person's eye. The place is that plate.

In that well, a pressure transducer sits at a known depth. A logger wakes it on a schedule, records pressure, converts it to depth against the same gage datum the plate is read to, and hands the value to a radio. The radio reaches a gateway at the barn. The gateway forwards the packet; the network server turns it into a named value. That is also a water-level reading. The method is the transducer. The place is the same gage pool.

On the ridge above both, a tipping-bucket gauge counts rain. Each tip is a fixed depth of water. The logger sums the tips, stamps the hour, and sends the total down the same radio path. That is a rainfall reading. The method is a tipping bucket. The place is the ridge station.

Three arrivals. A notebook, a radio packet, and another radio packet. Different makers, different firmware, different intervals. By the time they are a record, they are one kind of thing.

| arrival | measure | unit | method | place |
|---|---|---|---|---|
| the Tuesday notebook | water level | feet | a person reading the plate against the gage datum | the plate on the well |
| the transducer packet | water level | feet | pressure, converted to depth on the same datum | the same well |
| the ridge packet | rainfall | inches | tipping bucket, summed by the hour | the ridge station |

Now watch what the rows do together. The ridge gauge says the storm arrived at two in the morning. The transducer says the creek came up at twenty to four. The steward's Tuesday reading says the plate was still a tenth high three days later. Nobody blends those into a score. Each one stays as itself, and the hydrologist who maintains the plate reads the three against each other.

The plate is the reference the transducer is checked against. The transducer is not a replacement for the plate. They are two sources at one gage. When they disagree, the disagreement is information — sensor drift, a shifted datum, or a well that is silting in. Averaging them would hide it. The record keeps both.

## no driver per brand

Here is where most IoT platforms go wrong, and where an integrator who has written one too many vendor adapters loses patience.

We do not write a driver for each brand. A driver belongs to the carrier job, and the carrier job is yours. Your gateway and your network server have already turned the packet into named values. The payload decoder for a particular brand stays on your side; that work is real, and it is not ours. Asking a record to re-decode a radio it never heard would be asking it to do your gateway's job, worse.

What arrives instead is a name. Your logger calls the measure `wl_ft`. The lab calls the same thing `stage`. The steward's notebook calls it `water level`. A new brand on a door that already speaks is a name in a table, and the table is optional. An unmapped name is still stored under that name. The table, when it exists, only says that two names describe the same measure. It does not decide which readings are allowed in.

That is the difference between a catalog and a gate. A catalog says: here are names we have seen, and which ones mean the same thing. A gate says: come back when you are on the list. Soil moisture, soil temperature, rainfall, water level, canopy, soil carbon, something living was detected — those are examples. Your name can arrive as itself.

OGC SensorThings is the open web shape for exactly this kind of exchange — a thing, a sensor, the property it observes, and an observation with the time it happened — and the how-to for using it is the last post in this series.

Where a device makes a judgment call rather than a measurement, the record keeps that honest too. A camera that says *a heron was here* has made a model's call on a photo. The reading that arrives is the conclusion, labeled as the camera's conclusion. The photo stays with whoever holds the camera. The radio stays with the gateway. We keep the conclusion.

## what is on today

There is no public ingest to point a gateway at today. No URL on ensurance.app receives a webhook. There is no observation log to open, no continuous refresh, and no login that comes with a probe. The shape of the row is decided: one dated result, with the device's own name, a unit, a method, and a place. The writer that accepts that row from the public is not switched on.

So the radio can keep doing what it does. The sonde keeps waking up. The gateway keeps decoding. The steward keeps walking down on Tuesday. Nothing in that stack has to change.

What exists now is the place. A creek, a stand, or a floodplain can already be named and held, and a sentence about what it is for can sit with that hold. Why sensor intake is not a login is in [the place keeps the record](/guide/the-place-keeps-the-record?from=guide). The note described in the last post of this series is how a reading you already take gets a home beside that place.

## frequently asked questions

### what is environmental iot?

Environmental IoT is field instruments — soil probes, rain gauges, water sondes, weather stations, cameras — connected by radio or cell link so their readings can be seen away from the site. The instrument measures. A gateway decodes the radio. The reading then becomes a record: one dated result, with a unit, a method, and a place.

### do you support my sensor brand?

The brand is not the question. Your gateway or your vendor's export already decodes the brand. What arrives is the device's own name for a measure, a value, a unit, a method, and a place. If that name is already in a table, it maps. If it is not, it is stored under its own name. There is no list a brand has to be on.

### what is a gateway?

A gateway is the box that hears the field radio — LoRa, a proprietary band, a cell modem — and turns the packet into a message a network understands. Everything on the field side of the gateway is radio. Everything on the other side is a message with a timestamp. That is why the radio can stay outside the record.

### can a spreadsheet count?

Yes. A CSV from a logger download, a lab, or a season of notebook readings is a carrier like any other. Each row that has a measure name, a value, a unit, a method, a time, and a place is a reading. A row missing the place or the unit can be kept as a note. It does not count as evidence until those are filled in.

## read next

The next post in this series takes the one instrument this post left out: radar. Weather radar looks at the storm in the air. Imaging radar looks at the ground through cloud. Neither one is the plate below the culvert, and the next post is about why that is fine. Read [what radar can see](/guide/what-radar-can-see?from=guide).

If you run a water utility, the reach above your intake is already the place, and the sonde there is already the instrument. The utilities page lists [source watershed investment](/solutions/utilities?from=guide&topic=sensor-plug-in) as work a utility can fund on that place. The readings you already take are how that work gets cited. They are not a dashboard, and no one is asking you to pull the sonde.

## sources

[OGC SensorThings API](https://www.ogc.org/standards/sensorthings/) — the open, royalty-free standard for exchanging IoT observations over the web; Part 1 (Sensing) v1.1 is OGC 18-088

## the series

1. [what your sensors already measure](/guide/what-your-sensors-already-measure?from=guide)
2. [a claim is not a reading](/guide/a-claim-is-not-a-reading?from=guide)
3. [what mrv actually is](/guide/what-mrv-actually-is?from=guide)
4. the radio stays outside — this post
5. [what radar can see](/guide/what-radar-can-see?from=guide)
6. [how to plug a sensor stack in](/guide/how-to-plug-a-sensor-stack-in?from=guide)
7. [what lidar can see](/guide/what-lidar-can-see?from=guide) — a laser times a return; height is that distance
