🚨 Smart Smoke System - Aqara Linker (Ultimate Edition)

The ultimate safety suite for Aqara (JY-GZ-01AQ) smoke detectors in Home Assistant.

Turn your individual Zigbee smoke detectors into a professional, interconnected fire alarm system without buying an expensive hub.

Home Assistant
Devices
Author

:star2: Why this blueprint?

Most Zigbee smoke detectors are “dumb” isolated devices. If a fire starts in the attic, you won’t hear it in the bedroom. This blueprint fixes that.

Key Features (Ultimate Edition)

  • :link: Interconnected Alarms: If one detector triggers, ALL detectors in your home will sound their sirens.
  • :warning: Pre-Alarm Verification: Prevents panic from burnt toast. You get a phone notification first (“Is this real?”). If you don’t answer, the main alarm triggers.
  • :white_check_mark: Guided Self-Test Wizard: A specialized interactive mode. You trigger the test in HA, and your phone guides you room-by-room to physically press the buttons.
  • :fog: Smoke Spray Mode: Optional post-test phase to safely use canned smoke spray without triggering the full evacuation plan.
  • :dog2: Watchdog Protection: If a REAL fire is detected during a self-test, the test is immediately aborted, and the full alarm sounds.
  • :zap: Custom Actions: Fully customizable main alarm actions (turn on lights, unlock doors, open blinds, etc.).

:clipboard: Requirements

  1. Home Assistant (2024.10 or newer).
  2. Aqara Smoke Detectors (Model JY-GZ-01AQ) connected via Zigbee (ZHA or Zigbee2MQTT).
  3. Home Assistant Mobile App installed on your phone.
  4. Mobile Settings (CRITICAL):
    • iOS: Enable ‘Critical Alerts’ in iOS Settings → Home Assistant → Notifications.
    • Android: Notifications are sent to channel alarm_stream. Configure this channel in Android Settings to “Override Do Not Disturb”.

:rocket: Installation

Option 1: Direct Import (Recommended)

  1. Click the badge below to import the blueprint directly into your Home Assistant instance.
    Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint URL.
  2. Click “Preview Blueprint” and then “Import Blueprint”.

Option 2: Manual Installation

  1. Copy the code from the .yaml file.
  2. Go to your Home Assistant config folder: /config/blueprints/automation/xat0x/.
  3. Create a file named xat0x-aqara-smoke-linker-ultimate.yaml and paste the code.
  4. Go to Developer Tools → YAML → Reload Automations.

:gear: Configuration Guide

Create a new automation using this blueprint. The settings are organized into collapsible sections:

1. :pager: Devices & Triggers

  • Smoke Detectors: Select ALL your Aqara smoke entities here.
  • Test Start Trigger: Create a Helper (Button or Toggle) in Home Assistant. Select it here. Pressing this button starts the Self-Test Wizard.
  • Alarm Notification Devices: Phones for the whole family (Critical Alerts).
  • Maintenance Device: The specific phone that will receive the interactive test instructions.

2. :shield: Pre-Alarm

  • Enable Pre-Alarm: Recommended ON.
  • Timeout: Time (default 15s) to confirm “False Alarm” on your phone before the loud sirens and main actions trigger.

3. :fire: Main Alarm

  • Main Alarm Actions: This is where you define your evacuation plan.
    • Example: Add actions to Turn on all lights 100%, Unlock Nuki/Yale locks, Turn off HVAC/Gas.
  • Mute Duration: How long sirens stay silent when you press “Mute”.

4. :white_check_mark: Self-Test & Spray

  • Enable Self-Test: Required for the wizard.
  • Enable Smoke Spray Test: If enabled, the wizard asks after the physical check if you want to perform a real smoke test.

:shield: How it works

Scenario 1: Burnt Toast (Pre-Alarm)

  1. Smoke is detected in the Kitchen.
  2. NO sirens go off yet (if Pre-Alarm is enabled).
  3. Your phone gets a Critical Notification: “Smoke detected in Kitchen. Confirm Fire?”
  4. You press “False Alarm”.
  5. The system resets. The house stays quiet.

Scenario 2: Real Fire (Main Alarm)

  1. Smoke is detected in the Garage.
  2. You don’t answer the notification within 15 seconds.
  3. FULL ALARM triggers.
  4. ALL Aqara detectors start sirens.
  5. Main Alarm Actions run (Lights turn on, doors unlock).
  6. Phones receive: “FIRE - EVACUATE!”.

Scenario 3: Monthly Maintenance

  1. You press the “Test Start Trigger” (Helper button) in your Dashboard.
  2. Your phone receives: “Smoke Detector Self-Test (1/6)”.
  3. You walk to the indicated room (e.g., Living Room) and press the physical button on the detector.
  4. The system detects the beep, logs it, and notifies you to move to the next room.
  5. (Optional) At the end, you can choose to run a “Smoke Spray Test”.

:question: FAQ

Q: How do I start the Self-Test?
A: Unlike older versions, you do not start by pressing a smoke detector button. You must create an input_button helper in Home Assistant, assign it in the Blueprint settings (“Test Start Trigger”), and press that helper in your dashboard to begin the wizard.

Q: I pressed “Mute” on my phone, but the sirens are still going?
A: Zigbee traffic allows limited bandwidth. The blueprint uses an aggressive loop to send the mute command repeatedly. Please wait 5-10 seconds for the network to catch up.

Q: What happens if I am testing and a real fire starts?
A: The “Watchdog” feature is always active. If a detector other than the one you are currently testing reports smoke, the test aborts immediately, and the full alarm triggers.


:warning: Disclaimer

Use at your own risk.

This blueprint is provided “as is”, without warranty of any kind. The author (Xat0X) cannot be held responsible for any failure of the system to operate as expected.

  • This system is NOT a certified fire alarm system.
  • Always ensure you have working, standalone smoke detectors as a primary safety measure.
  • Home Assistant, Zigbee networks, and WiFi can experience downtime; do not rely solely on this software for life-safety.

Created with :heart: by Xat0X

*** credits for voco his blueprint where i get all the inspiration from Aqara Smoke Detector Linker for Test and Alarm (JY-GZ-01AQ)

Main differences:

1. :iphone: Native iOS “Critical Alert” Support

The Xat0X blueprint includes specific logic to bypass the silent switch on iPhones, ensuring you wake up during a fire.

  • Volume Control: It includes a dedicated input slider (ios__critical_volume) to set the specific volume level for critical alerts (0.0 to 1.0), which overrides the phone’s current volume.
  • Interruption Levels: Explicitly sets interruption-level: critical in the notification payload.

2. :shield: Two-Stage “Pre-Alarm” Verification

It implements a “Burnt Toast” prevention logic to avoid unnecessary panic.

  • Phase 1 (Pre-Alarm): When smoke is detected, it sends a high-priority notification asking “Is this a fire?”.
  • Phase 2 (Evacuation): If you confirm “Yes” or do not respond within the timeout (default 15s), it triggers the full siren linkage on all detectors and runs critical actions (like unlocking doors).
  • False Alarm Handling: If you click “False Alarm,” it immediately attempts to mute the triggering detector.

3. :zzz: Advanced Zigbee “Wake-Up” & Mute Logic

Aqara smoke detectors are battery-powered Zigbee devices that sleep deeply, often missing “Mute” commands sent from Home Assistant.

  • Heartbeat Wake-Up: The automation toggles the switch.*_heartbeat_indicator entity in parallel with alarm logic. This forces the device radio to wake up to receive commands.
  • Retry Mute Loop: When you press “Mute,” the blueprint enters a while loop (configurable duration, default 120s). It keeps sending the mute command repeatedly until the device actually stops sounding, ensuring the signal is eventually received.

4. :memo: Interactive Self-Test with Summary Report

The maintenance mode is more robust and provides a “Report Card” at the end.

  • Wizard: It guides you room-by-room with “Test Now,” “Skip,” or “Stop” buttons.
  • Summary: At the end of the test, it generates a notification summarizing the results (e.g., “Total: 5, Tested: 4, Skipped: 1, Reason: Completed”). This confirms that you didn’t miss a room.

5. :earth_africa: Full Localization & Customization

Almost every piece of text sent to the phone is editable via the blueprint inputs.

  • You can translate titles, messages, and button labels (e.g., “False Alarm”, “Evacuate”, “Test Now”) into your native language without editing the code manually.
  • It includes specific customizable “Hint Text” for iOS users (who need to long-press notifications to see buttons).
2 Likes

I’m also planning to add smoke detectors from other brands in this config.
Any feedback would be greatly appreciated.

Great work! Last year was very stressful for me, hence I did not have the time to continue work on this blueprint. I see that you implemented many enhancements I wanted to add myself. I will give it a try to see if it is relacing my blueprint for my needs.

Question:
Back than I tried to implement showing the names / areas of the detectors that are not tested yet and have a counter such as “Tested (1/10)” in the notification. This was not possible since variables could not be changed from inside loops. This is possible since some versions of Ha ago. So, it is now possible.

1 Like

Hi Voco, thank you for your reply.

When initiating the self-test using the button helper, the system guides you through the test by announcing the names and locations of the fire alarms. The sequence follows the order in which the devices are added in the blueprint.

If you encounter any bugs or have feedback, I would be happy to further improve and enhance the blueprint.

Your work has been the main source of inspiration, and this blueprint is essentially built upon yours, serving as the core while extending its functionality.

Great blueprint!
Do you think this could work with other zigbee smoke detectors? E.g the frient smoke detector

One question: currently my smoke detectors act as dumb ones and go off no matter if Home Assistant is online or not when they detect smoke. Would your blueprint prevent that? Do the Aqaras need Home Assistant to function at all or do they have some kind of fail save feature?

Thanks! I can certainly look into adding support for other smoke detectors.
Please point me to the correct model from the following list:

A smoke detector always operates independently of Home Assistant.
It sends and receives MQTT signals when an alarm is triggered. With Home Assistant, you can enhance the behavior of otherwise “dumb” detectors by reacting to or sending additional signals. However, the core functionality “detecting smoke and sounding the alarm” always remains active and unaffected.

Hi @Xat0X,

Did you connect the smoke detectors via ZHA or Zigbee2MQTT? I just tried using the automation via ZHA, but it doesn’t seem to trigger when the smoke detectors change their status from Clear to Detected.