Alarm State Voice Announcements (arm/disarm/trigger via any TTS)

Alarm State Voice Announcement Blueprint

Speaks different messages through any TTS-capable speaker when your alarm panel changes state. Works with any alarm panel integration and any TTS service (Piper, Google, Cloud).

What it does:

  • Triggers on alarm_control_panel state changes
  • Different messages for: armed_away, armed_home, armed_night, disarmed, triggered
  • Works with Piper, Google TTS, Cloud TTS, or any HA TTS service
  • All messages are customizable

Blueprint YAML:

blueprint:
  name: "Alarm State Voice Announcement"
  description: >
    Announces alarm panel state changes through any TTS speaker.
    Different messages for armed away, armed home, armed night, disarmed,
    and triggered states.
    
    Free standalone automation from The Automated Home.
    For 9 full automations (welcome home, person detection, garage, goodnight),
    custom Jarvis voice, and distributed audio — check the full Jarvis Voice Pack
    at beslain.gumroad.com/l/ha-jarvis-voice-pack/LAUNCH50
  domain: automation
  input:
    alarm_entity:
      name: "Alarm Panel"
      selector:
        entity:
          domain: alarm_control_panel
    media_player:
      name: "Speaker"
      selector:
        entity:
          domain: media_player
    tts_service:
      name: "TTS Service"
      default: "tts.speak"
      selector:
        select:
          options:
            - "tts.speak"
            - "tts.google_translate_say"
            - "tts.cloud_say"
            - "tts.piper"
    msg_armed_away:
      name: "Armed Away Message"
      default: "System armed. All sensors active."
      selector:
        text:
    msg_armed_home:
      name: "Armed Home Message"
      default: "System armed, home mode."
      selector:
        text:
    msg_armed_night:
      name: "Armed Night Message"
      default: "Alarm armed. Goodnight."
      selector:
        text:
    msg_disarmed:
      name: "Disarmed Message"
      default: "System disarmed."
      selector:
        text:
    msg_triggered:
      name: "Triggered Message"
      default: "Warning. Alarm triggered."
      selector:
        text:

mode: queued

trigger:
  - platform: state
    entity_id: !input alarm_entity

action:
  - choose:
      - conditions:
          - condition: state
            entity_id: !input alarm_entity
            state: "armed_away"
        sequence:
          - service: !input tts_service
            target:
              entity_id: !input media_player
            data:
              message: !input msg_armed_away
      - conditions:
          - condition: state
            entity_id: !input alarm_entity
            state: "armed_home"
        sequence:
          - service: !input tts_service
            target:
              entity_id: !input media_player
            data:
              message: !input msg_armed_home
      - conditions:
          - condition: state
            entity_id: !input alarm_entity
            state: "armed_night"
        sequence:
          - service: !input tts_service
            target:
              entity_id: !input media_player
            data:
              message: !input msg_armed_night
      - conditions:
          - condition: state
            entity_id: !input alarm_entity
            state: "disarmed"
        sequence:
          - service: !input tts_service
            target:
              entity_id: !input media_player
            data:
              message: !input msg_disarmed
      - conditions:
          - condition: state
            entity_id: !input alarm_entity
            state: "triggered"
        sequence:
          - service: !input tts_service
            target:
              entity_id: !input media_player
            data:
              message: !input msg_triggered


This is one automation from a larger voice system. The full Jarvis Voice Announcement Pack includes 9 automations, a custom Jarvis voice model for Piper TTS, speaker group configs, and distributed audio architecture. 50% off with LAUNCH50.

Not knocking it at all and looks like voice is your focus but I know my family would quickly get annoyed at a voice alerting on every alarm state change. One at midnight (armed night is people=home) and one at 6am (disarmed if people=home) would not go over well past the first day.
Arm-away would never be heard since well, we’d be away :wink:

I would focus more on alerting when things aren’t as expected and silent when they are. Like armed-night but the garage door is open.

I know Alarmo exposes attributes like open sensors and bypassed sensors as those are what I use in my custom notifications.
Not sure about other alarm offerings that would allow you to keep the blueprint generic though.

Hello TheAutomatedHome,
Thanks for contributing to the community with a new Blueprint.
I have a suggestion for you. Many people who are not familiar with directory structures will have problems installing this without the Home Assistant MY tools.
Adding a MY link for this Blueprint to your top post would help them a lot.
Here is the link to make that.
Create a link – My Home Assistant