A Whisper Before the Fire
Before the siren blares,
Before the smoke curls like secrets in the air—
We ask our devices to see what we cannot.
To wake before we do.
To protect with silence until sound is needed.
In this space between comfort and vigilance,
Technology meets purpose.
And we patch, prod, and flash…
Until it listens properly.
Before the siren blares,
Before the smoke curls like secrets in the air—
We ask our devices to see what we cannot.
To wake before we do.
To protect with silence until sound is needed.
In this space between comfort and vigilance,
Technology meets purpose.
And we patch, prod, and flash…
Until it listens properly.
I’m really into Home Assistant, and recently I decided it was time to upgrade my smoke alarm setup from a DIY ESP8266 hack to something more… integrated. More seamless. ZigBee was the natural choice.
Without digging too deeply into compatibility, I ordered the Frient A/S SMSZB-120 smoke detector. That excitement lasted until pairing—where the problems began.
Initial Device Setup Troubles
Despite being only two meters from the coordinator, the device failed to configure correctly after the ZigBee interview phase.
Here’s what I ran into:
| Problem | What Helped (or Didn’t) |
|---|---|
| Device unresponsive after pairing | Deleting and re-adding it farther from the coordinator improved the outcome |
| Configuration incomplete | Restarting Home Assistant helped populate entities |
| Controls like siren and switch appeared | But configurable options (like test sound, mode) didn’t work |
| Tried newer firmware | Made the device more “alert” in some responses—but didn’t fix the optional settings |
So, I went hunting for a firmware update in hopes of unlocking those missing features.
Locating the Firmware
After some digging, I found firmware version 4.0.8 hosted here:
FireAlarm_4.0.8.zigbee
Preparing Home Assistant for OTA
This was my first time flashing ZigBee firmware through Home Assistant—and surprisingly, it worked smoothly.
Step-by-Step: OTA Prep
| Step | Action |
|---|---|
| 1 | Create a folder at /config/zigpy_ota |
| 2 | Download and save the .zigbee file there |
| 3 | wget the version.zigbee file into the same folder |
| 4 | Add the following to configuration.yaml: |
zha:
zigpy_config:
ota:
otau_directory: /config/zigpy_ota
💡 You may need to restart Home Assistant to apply the changes.
Once this is in place, you’re ready to engage the firmware update.
Issuing the OTA Command
Here’s how to nudge your smoke detector into accepting the new firmware:
Step-by-Step: OTA Trigger
| Action |
|---|
| Go to Settings > Devices & Services > Devices, and click on your smoke detector |
| Open “Manage Zigbee Device” |
Select the OTA Cluster (id: 0x0019) |
In Attribute, choose downloaded_file_version and click “Read Attribute” |
| Confirm the current firmware version |
Now we issue the actual update trigger.
Step-by-Step: Image Notify Command
| Field | Value |
|---|---|
| Command | image_notify (ID: 0x0000) |
payload_type | QueryJitter |
query_jitter slider | Set to a non-zero value (avoid default 0) |
| Other fields | Leave blank (manufacturer_code, etc.) |
After setting it up:
- Click the (still grayed-out) “Issue Zigbee command”.
- Wake up the smoke detector (usually by pressing its test or pairing button).
- Re-check the
downloaded_file_versionto confirm the update went through.
Was It Worth It?
So… did the firmware update fix everything?
| Feature | Status |
|---|---|
| Siren Status | ✔️ Functional and shows current state |
| Core Smoke Detection | ✔️ Works as expected |
| Optional Modes & Config Options | ❌ Still non-functional, even after update |
| General Responsiveness | ⚠️ Improved slightly, but still limited |
Would I recommend this smoke detector to someone wanting full-feature ZigBee configurability? Probably not—at least not until a better firmware appears. But if you just need reliable smoke detection integrated into Home Assistant, it does fulfill that core mission.
Hope this helps others avoid the same head-scratching.
Until the next beep…
Buy Me a Coffee