Local Fridge and Freezer Temperature Monitoring in Home Assistant Home Automation

Local Fridge and Freezer Temperature Monitoring in Home Assistant

by Joule P. Kraft · July 15, 2026

As an Amazon Associate I earn from qualifying purchases. No affiliate relationship influences my recommendations.

The most expensive thing my smart home ever failed to tell me about was a chest freezer in the garage. A power strip got bumped, the freezer went quiet, and I found out four days later when I opened the lid to a smell I will not describe and roughly two hundred dollars of ruined food. There was no alarm, no notification, nothing. The freezer had been failing silently the entire time, and the only sensor watching it was my nose, four days too late.

That was the day fridge and freezer monitoring stopped being a nice-to-have and became the first thing I tell anyone to automate after smoke alarms. It is cheap, it is easy, and the one time it fires it pays for itself many times over. This is the build log for doing it entirely locally, so the alert that saves your food does not depend on a startup’s servers being up at 2 a.m. on a holiday weekend.

Why This Is the Automation Everyone Skips

Temperature monitoring is unglamorous. There is no satisfying click of a light turning on, no voice assistant to show off to guests. A fridge sensor does nothing visible for months at a time. That is precisely why people skip it, and precisely why it matters. The value is not in the daily experience. The value is entirely in the rare failure: a compressor that dies, a door left ajar overnight, a breaker that trips, a garage freezer on a circuit someone unplugged to run a leaf blower.

Every one of those failures is silent and slow. A freezer does not fail with a bang. It drifts warm over hours, and by the time you notice on your own, the food is gone. A sensor that watches the temperature and shouts the moment it drifts out of range turns a several-hundred-dollar loss into a five-minute fix. I have had it catch a fridge door left cracked open by a cereal box twice this year alone.

Step 0: Understand Why Wireless Sensors Struggle in the Cold

Before you buy anything, understand the one physical fact that determines what hardware works: a fridge, and especially a freezer, is a sealed metal box. Metal boxes block radio. A Zigbee or Wi-Fi sensor sitting entirely inside your freezer is trying to broadcast through what is effectively a Faraday cage, and two bad things happen. First, packets get lost, so your readings go stale and your history fills with gaps at exactly the wrong moments. Second, cold murders battery chemistry. A coin cell that lasts two years at room temperature can die in a couple of months at minus 18C.

This is the mistake I see over and over on r/homeassistant: someone tosses a nice indoor Zigbee sensor into the freezer, it works for a week during testing near the door, then goes silent once buried under food in the back. The signal cannot get out and the battery cannot keep up.

The answer is a probe. You want the electronics, the radio, and the battery living outside the cold box in open air, with only a thin waterproof temperature probe on a cable running through the door gasket into the compartment. Every reliable fridge and freezer sensor uses this arrangement. Keep that picture in your head and the buying decisions get easy.

The DIY Hero: An ESPHome Probe Node

My favorite version of this build is an ESP32 board with a DS18B20 waterproof probe, running ESPHome. The DS18B20 is a sealed stainless probe on a cable, rated well below freezer temperatures, and it costs a few dollars. The ESP32 sits on top of the fridge, the probe runs down through the door seal, and the whole thing reports to Home Assistant over your Wi-Fi with no cloud anywhere in the chain.

The wiring is trivial: the DS18B20 is a one-wire sensor, so it needs three connections (power, ground, and data) plus a single resistor between the data and power lines. If you have ever plugged a jumper wire into a breadboard you can do this.

Here is the entire ESPHome config. Put your real Wi-Fi and API values in secrets.yaml, which is the standard ESPHome practice, and reference them like this:

esphome:
  name: garage-freezer

esp32:
  board: esp32dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

api:
  encryption:
    key: !secret api_encryption_key

logger:

dallas:
  - pin: GPIO4

sensor:
  - platform: dallas
    address: 0x1c0000031edd2a28
    name: "Garage Freezer Temp"
    unit_of_measurement: "F"
    filters:
      - lambda: return x * (9.0/5.0) + 32.0;

Flash it once, ESPHome autodiscovers into Home Assistant, and you have a sensor.garage_freezer_temp entity that updates every few seconds and answers to nobody’s servers. The one fiddly part is the address: the DS18B20 has a unique ID, and ESPHome prints it in the logs on first boot. Copy it from there. If you run two probes on one board, this is how it tells them apart.

The Automations

A sensor without an alert is just a number nobody reads. The whole point is the notification. Here is the freezer version, which fires when the temperature stays too warm for a sustained window rather than the instant it blips, so a normal door-open does not cry wolf.

automation:
  - alias: "Freezer Too Warm Alert"
    trigger:
      - platform: numeric_state
        entity_id: sensor.garage_freezer_temp
        above: 10
        for:
          minutes: 30
    action:
      - service: notify.mobile_app_phone
        data:
          title: "Freezer warming up"
          message: "Garage freezer is above 10F. Check the door and the power."

The for: 30 minutes clause is the entire trick. A freezer opened to grab ice cream spikes for a minute and settles back down. A freezer with a dead compressor climbs and stays there. The delay ignores the first and catches the second. For the fridge, I use the same pattern with above: 45 and the same 30-minute window.

I also add a second automation that watches for the sensor itself going missing, because a sensor that stops reporting is its own kind of failure. If Home Assistant has not heard from the probe in an hour, that is worth a nudge too. A dead sensor and a dead freezer look identical from the outside, and you want to know about both.

The Boxed Alternative: A Zigbee Probe Sensor

Not everyone wants to flash a microcontroller, and that is completely fair. The finished, no-soldering version of this exact build is the SONOFF SNZB-02LD. It is a Zigbee sensor built around the same idea: an LCD unit that magnets to the outside of the fridge, with a 1.5 meter stainless steel probe on a cable rated down to minus 40C that you run inside. It pairs to your Zigbee coordinator through Zigbee2MQTT or ZHA, shows up as a normal temperature entity, and you point the exact same automations above at it. No eWeLink account required for local use.

This is the one I now recommend to most people. It is the right architecture, probe outside-in, radio in open air, in a boxed product for about fifteen dollars. You lose the tinkering and the two-probes-per-board economy of the ESPHome build, and you gain a five-minute setup.

If you specifically want humidity too, or you are monitoring a wine fridge or a root cellar rather than a true freezer, a regular SONOFF SNZB-02P sitting in a fridge (not a freezer) works fine, because a fridge is warmer and less sealed than a freezer and a normal sensor can survive there. Just do not put a sealed puck in the freezer for the reasons above.

The Cloud Option, and Why It Is My Last Choice

You will see a lot of GoveeLife WiFi refrigerator thermometers recommended for this, and the hardware genuinely is good: a probe design, a nice display, cheap, and it does app alerts out of the box with no Home Assistant at all. If you do not run a smart home and just want a freezer alarm today, it is a reasonable buy.

But for a local-control setup it is my last choice, and the reason is the whole theme of this blog. The Govee alert path runs through their gateway and their cloud. The notification that matters most, the freezer-is-thawing alarm, travels out to their servers and back to your phone. If their cloud is down, or your internet is down, or they change the app, that is the moment your alert silently does not fire. I do not want my most important alert to depend on the most fragile link in the chain. A probe reporting to a local Home Assistant automation over your own LAN has no such dependency. That is the entire argument for building it yourself.

The Bottom Line

Fridge and freezer monitoring is the highest return-on-effort automation in the house, and almost nobody does it until they have thrown out a freezer full of food first. Learn from my garage disaster and skip that step. The physics only care about one thing: keep the radio and battery out of the cold metal box and put a probe inside. Get that right and everything works.

If you are handy, an ESP32 with a DS18B20 probe running ESPHome is a few dollars and gives you a fully local sensor you understand end to end. If you would rather buy the outcome, the SONOFF SNZB-02LD is the same architecture in a boxed Zigbee product for the price of a couple of frozen pizzas. Either way, wire up the sustained-threshold automation, add the sensor-went-missing check, and let the house watch the freezer so your nose never has to again.

Frequently Asked Questions

How do I monitor my fridge or freezer temperature in Home Assistant?+
Put a temperature sensor inside the compartment and alert when it stays above a threshold for a set time. The cleanest local options are a Zigbee waterproof probe sensor like the SONOFF SNZB-02LD, which drops the probe inside and keeps the radio outside the metal box, or a DIY ESPHome node with a DS18B20 probe. Both report straight into Home Assistant over your own network with no vendor cloud in the loop.
Will a wireless sensor work inside a metal freezer?+
Often poorly. A freezer is a sealed metal box, which is close to a Faraday cage, so a radio sitting entirely inside it drops packets and burns battery. That is exactly why probe-style sensors exist. The electronics and antenna live outside on the door gasket and only a thin stainless probe on a cable goes into the cold. That is the single biggest reason I favor a probe design over a sealed puck for freezer duty.
What temperature should trigger a fridge or freezer alert?+
The FDA guidance is 40F or below for a fridge and 0F or below for a freezer. I alert when the fridge sits above 45F for 30 minutes or the freezer above 10F for 30 minutes, because a brief door-open spike is normal and you do not want a false alarm every time someone grabs the milk. The delay is what separates a useful alert from a nuisance.
Do I need a hub for the SONOFF SNZB-02LD?+
You need a Zigbee coordinator, not a proprietary SONOFF hub. A USB coordinator running Zigbee2MQTT or ZHA in Home Assistant pairs the sensor directly with no eWeLink account and no cloud. If you already run Zigbee devices you are done. If you are starting from zero, the coordinator is a one-time purchase every future Zigbee sensor shares.
Why not just use the Govee app for freezer alerts?+
You can, and the hardware is fine, but the alert path runs through Govee's cloud and their gateway. If their servers or your internet are down, the alert that matters most, the one warning you a freezer full of food is thawing, is the one that does not arrive. A local sensor firing a Home Assistant notification over your own LAN removes that dependency entirely.