Appearance
Environment sensors
An environment sensor measures the air or the room around it: temperature, humidity, CO₂ and other pollutants, light, pressure, noise, or water where it should not be. This page covers what each kind gives you in Omaya, where to put it, and how to check it is working.
For how full a tank or a bin is (ultrasonic or laser level), see Distance sensors: the Milesight EM310-UDL, EM400 and EM500-UDL report a distance and get the same Distance calibration panel as the MOKO SO2R.
What each kind gives you
The field names are what the device's View panel shows under Latest reading, and what a rule reads with Sensor reading (any field).
| Kind | Example models | Fields | Where they end up |
|---|---|---|---|
| Temperature and humidity | Bluetooth: Minew S1, MOKO H4 Pro, MOKO BXP-DH. LoRaWAN: Milesight EM300-TH, EM320-TH, TS201. Home Assistant: any climate sensor, e.g. Aqara FP300 | temperature (°C, shown in your organisation's unit), humidity (%RH), battery_percent | Reports → Environment, Live tab; the Compliance tab; the Temperature and Humidity rule metrics; Custom Reports |
| Air quality | LoRaWAN: Milesight AM307, AM308, AM319, EM500-CO2. Home Assistant: CO₂ and particulate sensors | co2 (ppm), tvoc, pm25, pm10, plus the same sensor's temperature, humidity, pressure, and occupied from its PIR | Environment report (one card per pollutant measured, and the Compliance tab for CO₂); Custom Reports |
| Light | Milesight EM500-LGT; Aqara FP300 | illuminance (lux) | Environment report (Light) |
| Noise | A sound-level meter through Home Assistant; a LoRaWAN sensor whose decoder names the field noise, sound, sound_level or loudness; a sensor you onboarded with a noise_dba field | noise_dba | Environment report (Noise Level), noise rules |
| Water leak | LoRaWAN: Milesight EM300-SLD (spot), EM300-ZLD (rope), EM300-MLD (membrane), WS303. Home Assistant: any moisture sensor. A toilet-supply leak probe | leak_detected (1 = water, 0 = dry), plus temperature and humidity on the EM300-SLD/ZLD | Rules; the device's latest reading |
One gap worth knowing before you buy
Formaldehyde and ozone (AM319-HCHO, AM319-O3), and the AM-series light level. These are not read. The AM-series sends light as a 0–5 level, not lux, so it is left out on purpose rather than shown as a dark room.
A reading belongs to where the sensor is
A reading is per sensor, not per room. A sensor beside a vent, a window, a door to the street or in the sun is being right about where it is and wrong about the room. Put it where the reading is supposed to represent.
Give it a zone. A fixed sensor with a Location set reports into its own zone, and only a fixed sensor can stand for a room on the Compliance tab. A tag that happens to have a thermometer is filed against the room it was last placed in, and marked as a tag reading.
How many, and where
| Space | How many | Where |
|---|---|---|
| Meeting room, classroom | 1 air-quality sensor (CO₂, temperature, humidity) | Inner wall, about 1.5 m up, away from the door, the window and the air-conditioning outlet |
| Open-plan office | 1 per area of desks that shares an air supply; more where the layout changes (a window wall, a corner) | On a column or partition at desk height, not under a supply diffuser |
| Server or comms room | 1 temperature/humidity sensor at the cold aisle intake; a second at the hot side if you want the difference | At the height of the equipment intakes, not on the wall by the door |
| Cold room, fridge, freezer | 1 temperature sensor inside | Middle of the space, away from the door and the evaporator fan |
| Toilet | 1 if you want humidity or smell (TVOC) | High on the wall, away from the hand dryer |
| Pantry, plant room, under a sink | 1 leak probe per place water can collect | On the floor at the lowest point, where water reaches first |
Milesight's guidance for the AM300 series is at least 1.5 m from the floor, away from windows, vents, fans and air-conditioners, and away from heat and cold sources such as an oven or a refrigerator. For leak probes, Milesight recommends drain pans, floor drains, pits and any place water will reach first or pool; use more than one when the possible leak points are spread out.
Setting up a Bluetooth sensor (Minew S1, MOKO H4 Pro, BXP-DH)
On the bench
- Note the MAC address from the label or the vendor app.
- Turn on the frame that carries the reading. Which frames a beacon broadcasts is set in its own app (MOKO's BeaconX Pro app for the H4 Pro and BXP-DH; Minew's BeaconSET Plus for the S1): make sure the temperature-and-humidity slot is enabled. A slot that is off sends nothing to decode.
- Leave the broadcast interval at the vendor default unless your Omaya operator asks for something else. On the MOKO H4 Pro and BXP-DH it can be changed later from the sensor's Configure page in Omaya; the Minew S1 only with its app.
- MOKO H4 Pro: switch on its battery broadcast. Without it the H4 Pro reports no battery at all. On the sensor's Configure page in Omaya, under Readings and battery, set Broadcast battery & health to On and save. It puts battery voltage, board temperature and uptime into a free broadcast slot, once every 60 seconds; nothing the sensor already broadcasts changes. (Broadcast readings, in the same group, does the same for temperature and humidity.) To switch either off again, use the MOKO app.
Mount it
- Wall, about 1.5 m up (seated head height), on an inside wall.
- Not in direct sun, not above a radiator or under an air-conditioning outlet, not next to a door that opens to the outside.
- In a cold room or fridge: on a shelf or bracket in the middle, not on the door.
Register it
Device → Sensor → Add Sensor, from the top of the form:
- Sensor Name: the place, e.g. L3 Comms Room — intake.
- MAC Address.
- Brand / Vendor and Sensor Model (Minew → S1, Moko Smart → H4 Pro, Moko Smart → BXP-DH). Check What This Device Provides shows Temperature and Humidity.
- Location, Venue, Zone: the room. Set the zone yourself; left empty, Omaya copies the zone of the first gateway that hears the sensor.
- Save.
Check it works
- View the sensor. Last seen should be seconds or minutes ago.
- Latest reading shows
temperatureandhumidity. Breathe on it: the humidity rises within a minute or two. - Within the hour, Reports → Environment (Live tab) shows the zone.
Setting up a LoRaWAN sensor (Milesight EM300, EM500, AM300 series)
These need a LoRaWAN gateway and network server that pass their readings to Omaya. If you have not done that yet, start with Milesight LoRaWAN gateways.
On the bench
- Note the DevEUI from the label (16 characters).
- Configure it with Milesight's ToolBox app (hold the phone's NFC against the sensor): switch it on, check the LoRaWAN band and keys match your gateway, and set the reporting interval. Ten minutes is a sensible start for comfort monitoring; a shorter interval costs battery. Once it is installed, the reporting interval can also be changed from Omaya (see below).
- Add it to the network server (the gateway's embedded server, or ChirpStack) with the decoder for the model, as in the gateway guide.
- Power: the AM307 and AM308 run on USB-C or batteries; the AM319 needs USB-C power, so plan a socket.
Mount it
As for Bluetooth sensors above. For a leak probe: the probe flat on the floor at the lowest point, fixed with a screw or tape so it cannot be kicked away; the sensor body on the wall above, clear of the water.
Register it
Device → Sensor → Add Sensor:
- Sensor Name.
- MAC Address: the DevEUI (16 characters, no separators needed).
- Brand / Vendor Milesight, Sensor Model (e.g. AM307 Ambience Monitoring Sensor, EM500-CO2 CO₂, EM300-TH Temperature & Humidity).
- Location, Venue, Zone.
- Save.
Check it works
- Wait one reporting interval (or press the sensor's button, if it has one, to send an uplink now).
- View: Latest reading shows the fields above. If it shows only
battery_percent, the network server is passing data that Omaya cannot name; check that the decoder in the network server is the Milesight one. - Reports → Environment shows it within the hour. CO₂ shows as its own card, and is checked on the Compliance tab against the room's profile (Office comfort when the room has none).
Change the reporting interval later
Open the sensor (View) and press Configure: How often it reports and Restart. The change is sent through your network server, so the gateway must be set to take changes from Omaya — on a Milesight UG56 or UG65 that is the Downlink data topic (step); with ChirpStack, the MQTT integration. A LoRaWAN sensor listens only for a moment after it reports, so the change reaches it with its next report, and Omaya marks it Done once two reports in a row arrive at the new interval. See Configuring devices from Omaya.
Setting up through Home Assistant
- Pair the sensor with Home Assistant, and give it a clear name.
- In Omaya, Connectors → Smart Home Bridge → Entity mappings → Fetch entities from Home Assistant, then group the sensor's entities and Activate as device… (Create device).
- Device → Sensor: edit the new device and set Location, Venue and Zone. Readings from a device without a zone are dropped and raise a configuration alert, because Home Assistant fronts the whole building.
- Check: Latest reading fills after the next poll.
- Settings that Home Assistant offers for the device can be changed from its Configure page in Omaya.
Omaya names Home Assistant entities by what they measure: temperature, humidity, illuminance, pressure, CO₂, CO, NO₂, PM2.5, PM10 and VOC each land in their own place; a sound pressure entity becomes noise_dba.
First rules
| Goal | Watch | Condition | Recipe |
|---|---|---|---|
| A stuffy meeting room | the room's zone | co2 greater than 1000, with people in it | Stuffy meeting rooms |
| A cold room or server room warming up | the sensor | Temperature greater than the limit, held for 10 minutes | Keeping the building running |
| A water leak becomes a job | the leak probe | leak_detected Becomes 1 | A water leak becomes a job |
| A noise log | the zone | Noise Level greater than a limit | A noise log |
Use a held for condition on temperature and CO₂: a door opening, or someone breathing on the sensor, should not page anyone.
Questions and problems
Two sensors in the same room disagree. Each is right about where it is. The one by the window, the door or the air outlet is the odd one; move it.
The reading is filed under the wrong room. The sensor has the wrong zone, or none (and took the first gateway's zone). Edit it and set Zone.
The Environment report shows nothing for a room with a sensor. Check Last seen. For a Bluetooth beacon, check that its temperature slot is on in the vendor app. For LoRaWAN, check that the network server decodes the uplink: Latest reading should show more than the battery.
An H4 Pro shows no battery on the Battery or Tag Health report. Its battery broadcast is off. Switch on Broadcast battery & health on its Configure page (see On the bench). If Configure says every broadcast slot is in use, free one in the MOKO app first.
Noise Level says no sensor with a microphone reports here. None of the sensors in that place sends a noise reading. See the noise row in the table at the top for what can.
A CO₂ reading is very high after installation. CO₂ sensors settle and self-calibrate over the first days; also check that nobody is standing close to it, and that it is not in a corner with no air movement.
The leak sensor never alarms. Open the device on Devices and look at its latest reading: leak_detected should be there, 0 while dry. Touch the probe's contacts with a wet cloth; within one report it should read 1. No leak_detected at all means the uplink is not being decoded: for LoRaWAN, check the network server's codec for the sensor is installed; for Home Assistant, check the entity is mapped on the bridge's Mappings page. A rule on it uses Becomes 1.