Technical Project Notes
Technical Blog
Technical project notes, build records, deployment details, diagrams, and practical code examples.
- Posts
- 14
- Latest
- 11 October 2026
Latest Post
Extending the Sensor Network with Zigbee: Inside the Fridge and Freezers
Five SONOFF sensors and a PoE Zigbee hub bring fridge and freezer readings into the existing network, revealing temperature swings and the limits of batteries in the cold.
This deployment extends the existing sensor network into places where running a cable is awkward: inside a fridge and two freezers. Zigbee is commonly associated with commercial home automation. Here, the aim is to collect readings through a local interface and ingest them into the existing sensor network.
The first deployment uses five SONOFF SNZB-02P temperature and humidity sensors and a SMLIGHT SLZB-06p7U hub. It is already producing useful temperature histories. It is also exposing two questions for the next build: how to measure something closer to the temperature of stored food, and how to power a wireless sensor reliably at −20 °C.

This snapshot from 11 October shows the lower and upper fridge at 6.6 °C and 5.5 °C, and the two freezer positions at −20.2 °C and −19.7 °C. These are air readings at particular locations and moments. They need a history and some context to become useful.
Battery sensors, with a PoE connection back to the network
The existing PoE devices have a continuous power supply. A small battery device has a much tighter energy budget, but it can be placed inside an appliance without routing a power cable through the door seal. Zigbee provides a way to explore that trade-off.
Appliance construction, metal surfaces and the contents can weaken the radio link. Locating the hub close to the fridge and freezers helps maintain the radio link. PoE allows placement where reception is useful while carrying both power and data over one Ethernet cable.

The SLZB-06P7U specifications relevant to this deployment are recorded below.
| Feature | Specification |
|---|---|
| Zigbee radio | Texas Instruments CC2652P7 |
| Host processor | Espressif ESP32-S3 |
| Ethernet | WIZnet W5500, 10/100 Mb/s |
| Zigbee antenna | External, rotatable antenna |
| PoE power | IEEE 802.3af, 48 V |
| Alternative power | USB-C, 5 V |
| Standalone hub | SLZB-OS Zigbee Hub mode, with local device access |
Source: SMLIGHT SLZB-06P7U specification, checked 11 October 2026.
Standalone Zigbee Hub mode provides local access to the devices without introducing a separate home automation server.

The SONOFF units are small battery-powered Zigbee 3.0 devices using a CR2477 coin cell. The [manufacturer's manual](https://support.sonoff.tech/snzb-02p-usermanual/) specifies an operating range of −10 °C to 60 °C and non-condensing conditions. The freezer deployment is below that specified temperature range. These units were selected for an initial experiment, with the expectation that a custom replacement may be needed.
Getting readings into the existing system
All five devices are visible in the hub: Lower Fridge, Upper Fridge, Lower Freezer, Upper Freezer and Ice King. Their names make it possible to keep the measurement locations distinct in the dashboard.

The hub exposes a local HTTP API. For example, this request retrieves the stored temperature report for the lower freezer:
curl "http://192.168.1.160/api2?param=6&action=9&topic=zhub/data/c09b9efffed4fc94/1/0402/0000"{"data":{"type_sm":"report","val":"-19.70"}}Here, 192.168.1.160 is the hub's address on the local network. The topic identifies the device, endpoint and temperature attribute. The returned value is a string that the ingestion code can convert to a numeric temperature in °C.
This makes the hub a bridge into the existing data collection system. A successful HTTP request alone does not establish that a reading is fresh: a sleeping battery device reports independently, so tracking last-seen time and avoiding repeated cached values are also part of reliable ingestion.
What the temperature histories show
The Ice King freezer is almost never opened. The other appliances are opened and closed quite often, especially the fridge. That difference in everyday use is essential context when comparing the charts: the Ice King has far fewer door-opening disturbances.
The fridge thermostat setting does not describe every location inside the fridge throughout the day. Door openings, cooling cycles, airflow and sensor placement can all affect the local air reading. The temperature histories can help identify whether a particular part of the fridge is more stable for sensitive items; the setpoint alone cannot establish this.
Sensor placement changes the comparison
“Upper” and “lower” only describe height. Distance from a wall and proximity to an item with high thermal mass also affect the reading. A sensor close to a wall, or touching or sitting beside a substantial chilled item, can respond differently from one exposed to freely circulating air.
The sensors also have a tendency to get pushed around as items are moved in and out of the fridge. That changes the measurement conditions even though the dashboard name stays the same. A change in the trace may therefore reflect a new position as well as a change in the appliance's temperature.
A useful upper/lower comparison requires both sensors to remain in fixed positions with comparable clearance from walls and nearby items. The September chart below shows the comparison when they are placed in the same way at their respective heights.
Fridge temperature with comparable sensor placement, 29–30 September · Open chart at full size

With comparable placement, the lower sensor is generally colder than the upper sensor in this interval: roughly 3 °C versus 4 °C away from the large warming event. Both traces rise during that event, with the upper sensor reaching the higher peak. These are approximate readings from the displayed 30-minute averages, not a calibrated measurement of a fixed temperature difference.
The October chart below shows why placement context matters: the lower trace is often warmer between peaks there. The two periods cannot be treated as a controlled comparison of shelf height alone when the sensors can be moved or end up closer to walls or stored items.
Fridge temperature · Open chart at full size

In this selected interval, the upper fridge trace has a stronger repeating cycle and several brief peaks reaching roughly 8–9 °C. The lower trace is smoother and often slightly warmer between those peaks. These are observations from this chart, not a general rule about which shelf is coldest. The chart uses 30-minute averages, so it also smooths shorter events.
Freezer temperature · Open chart at full size

The two freezer traces sit mostly around −19 to −20 °C, with recurring warming events. The upper trace has the larger excursions. This appliance is opened and closed regularly, so door openings are one possible contributor to the warming events, alongside appliance cycles. Door openings have not been logged or correlated with defrost operation, so individual peaks cannot yet be assigned to a specific cause.
Ice King temperature · Open chart at full size

The Ice King freezer is almost never opened, unlike the frequently used fridge and other freezer. Its trace is comparatively steady around −14 °C over the displayed period, apart from an early excursion. This makes it a useful comparison with an appliance that experiences very few door openings, although the appliances also differ in temperature setting and construction. The shaded bands and dashed lines in these graphs are dashboard reference settings. They are not measurements of the contents.
The cold is already showing up in the battery reports
Battery performance was an anticipated limitation, particularly in the coldest freezer. Evaluating the commercial sensors provides a baseline for designing replacements.
Battery history · Open chart at full size

In the 11 October screenshot, both fridge sensors report 100%, the lower freezer reports 84%, the upper freezer reports 69%, and Ice King reports 100%. The selected upper-freezer history falls from 100% to 69% over the displayed period.
That is a change in the reported battery level, not a measurement showing that 31% of the cell's capacity has been consumed. A useful follow-up is to compare battery voltage and reporting reliability in the cold and after warming. This graph alone does not support a dependable estimate of freezer battery lifetime.
Next steps: a buffered probe and a sensor built for −20 °C
Two follow-up projects are proposed for this deployment.
Give the temperature probe some thermal mass
The present sensors measure local air temperature, but their response also depends on where they end up and what is nearby. Stored objects have more thermal mass and generally respond more slowly to a brief change in air temperature.
This further motivates giving the probe its own controlled thermal mass. A defined buffer would make that mass a deliberate, reproducible part of the measurement, rather than relying on whichever item happens to be beside the sensor. It should also slow the response to brief air-temperature changes, making it useful to compare with an unbuffered air sensor.
The buffered probe will still need a fixed position and consistent clearance from walls and stored items. Its response must be measured, and a small buffer will not reproduce every type or size of food.
The proposed setup places a probe near the centre of a sealed container holding 40–60 g of buffer, starting with a 50 g batch. The available materials are Lucemill food-grade propylene glycol (MPG, 99.8%) and Cabot CAB-O-SIL TS-720 hydrophobic fumed silica. The two-ingredient trial is 47.5 g glycol plus 2.5 g TS-720: add the silica gradually while mixing, then seal and inspect after standing overnight. This is an unverified starting formulation, not a demonstrated stable gel in pure glycol.
The useful test is thermal performance: calibrate the probe against a reference, keep it centred away from the container walls, and record it alongside an air sensor through controlled temperature changes. A sealed liquid buffer can provide a baseline too. Response time must be measured for the actual container and placement; a defensible estimate in minutes is not yet available. This first formulation study is for the fridge, with freezer behaviour requiring separate testing.
Build a custom Zigbee device for the freezer
The second project is a low-power Zigbee sensor with a battery and electronics chosen for sustained operation at −20 °C, with margin below that temperature.
A candidate worth testing is lithium iron disulfide AA cells. For example, the [Energizer L91 datasheet](https://data.energizer.com/pdfs/l91.pdf) specifies operation from −40 °C to 60 °C and includes temperature-dependent discharge data. That makes it a reasonable candidate for a new power design, but it does not establish the lifetime or reliability of the finished device. It is not a drop-in CR2477 replacement: the supply circuit must accommodate the chosen cells' full voltage range.
Validation should measure sleep current, voltage during radio transmissions, missed reports and recovery after temperature changes, with the sensor, radio, regulator and enclosure all evaluated in the cold. The goal is to keep the convenient local Zigbee ingestion path while making the power supply suitable for the environment.
The next steps are to validate the probe buffer and placement, then build and cold-test the custom Zigbee device. These experiments should improve interpretation of the temperature traces and establish a more dependable way to collect them.
Archive
All Posts
14 total
- Extending the Sensor Network with Zigbee: Inside the Fridge and Freezers
Five SONOFF sensors and a PoE Zigbee hub bring fridge and freezer readings into the existing network, revealing temperature swings and the limits of batteries in the cold.
- A Wi-Fi Sensor That Moves Between Networks
Four ESP32-S3 temperature and humidity sensors are ready. A setup button changes Wi-Fi and UDP settings without reflashing the firmware.
- Overclocking the Raspberry Pi 500: Performance and Limits
Testing the Raspberry Pi 500 at 2.8–3.0 GHz: measured CPU gains, stability during 4K video playback, and the role of cooling and power delivery in everyday use.
- Building Heated Sensor Houses for Outdoor Air, Ground, and Underground Temperature Measurements
Protecting outdoor temperature and humidity measurements from weather, condensation, and cold while keeping the sensors connected over PoE Ethernet.
- A Small Encrypted File You Can Carry Anywhere
A quick guide to creating a portable LUKS2 container for private files, carrying copies on USB drives or cloud storage, and opening it only on trusted Linux computers.
- From Mechanical Wind Sensors to Ultrasonic RS-485 and RP2040
Prototyping a Veinasa CXS02B-N ultrasonic wind sensor over USB, then moving its NMEA-0183 stream onto an RP2040 for a permanent PoE-connected installation.
- A Live Linux Performance Dashboard: From SPI to a Wide-Screen Display
An RP2040 and SPI display experiment grows into a Python dashboard for local and remote Linux machines, with an adaptive CPU heatmap and live memory, disk, and network measurements.
- Displaying Photographs on a Six-Colour E-Paper Screen
Comparing dithering, ordered screening, and AM and FM raster techniques on a 600×400 Waveshare Spectra 6 display driven by a Raspberry Pi 4B.
- Building a PoE E-Paper Temperature and Humidity Monitor
Combining an isolated ESP32 PoE board, an SHT40 temperature and humidity sensor, an e-paper display, and a custom 3D-printed enclosure.
- Building a Resilient, Local-First Sensor Network
How a local-first sensor network keeps collecting through internet outages, synchronizes every minute, processes history centrally, and publishes safely through Cloudflare.
- Controlling Raspberry Pi 500+ RGB Keyboard Lights
Using Python to control individual Raspberry Pi 500+ keyboard LEDs for visual effects and functional notifications.
- Indoor Temperature and Humidity Sensors
Building compact wired and wireless sensors for monitoring indoor temperature and humidity.
- 3D-Printed 19-Inch Network Panel
Integrating several compact switches into a 19-inch rack panel.
- Crystal Adventures
A Blender short-film experiment combining crystal materials, a fluid-simulated waterfall, volumetric lighting, smoke effects, and a 3D-printed crystal light.