Homematic IP alarm siren (indoor) and Home Assistant

19/05/2019 - Homematic IP, alarm, siren, HmIP-ASIR

Note: this article is for the indoor siren - for the outdoor siren, see here.

The Homematic IP alarm siren is a wireless alarm siren. I have one paired with a CCU3 central control unit, which in turn is connected to Home Assistant using the Homematic component.

The device has two signal LEDs, an audible siren, and a built-in tamper switch. It is powered by three AA batteries.

These posts describe the sequence of commands needed to activate the alarm and this document describes the parameters that the siren has (HmIP-ASIR).

Home Assistant

The siren does not currently appear to be directly supported by:

  • Home Assistant 0.92.2
  • pyhomematic 0.1.58

This means that the device does not appear in Home Assistant, and it is not possible to catch events (e.g. from the tamper switch), but it is still possible to switch on and off the siren using direct commands.

You will need the address of the siren, which can be found in the CCU web interface (in this case, 000AD8B429ABEF).

Starting the alarm

The following Home Assistant script can be used to activate the alarm for 3 seconds with both the LEDs flashing and siren sounding (assuming that the Homematic component has been correctly setup in Home Assistant):

indoor_alarm_sound:
  alias: "Sound indoor alarm"
  sequence:
    - service: homematic.set_device_value
      data:
        address: '000AD8B429ABEF'
        channel: 3
        param: 'ACOUSTIC_ALARM_SELECTION'
        value: 'FREQUENCY_RISING'
    - service: homematic.set_device_value
      data:
        address: '000AD8B429ABEF'
        channel: 3
        param: 'OPTICAL_ALARM_SELECTION'
        value: 'BLINKING_BOTH_REPEATING'
    - service: homematic.set_device_value
      data:
        address: '000AD8B429ABEF'
        channel: 3
        param: 'DURATION_UNIT'
        value: 'S'
    - service: homematic.set_device_value
      data:
        address: '000AD8B429ABEF'
        channel: 3
        param: 'DURATION_VALUE'
        value: 10

You can adjust the DURATION_VALUE as needed, and the DURATION_UNIT can take values:

  • S = seconds
  • M = minutes
  • H = hours

The OPTICAL_ALARM_SELECTION parameter can take values:

  • DISABLE_OPTICAL_SIGNAL
  • BLINKING_ALTERNATELY_REPEATING
  • BLINKING_BOTH_REPEATING
  • DOUBLE_FLASHING_REPEATING
  • FLASHING_BOTH_REPEATING
  • CONFIRMATION_SIGNAL_0
  • CONFIRMATION_SIGNAL_1
  • CONFIRMATION_SIGNAL_2

The ACOUSTIC_ALARM_SELECTION parameter can take values:

  • DISABLE_ACOUSTIC_SIGNAL
  • FREQUENCY_RISING
  • FREQUENCY_FALLING
  • FREQUENCY_RISING_AND_FALLING
  • FREQUENCY_ALTERNATING_LOW_HIGH
  • FREQUENCY_ALTERNATING_LOW_MID_HIGH
  • FREQUENCY_HIGHON_OFF
  • FREQUENCY_HIGHON_LONGOFF
  • FREQUENCY_LOWON_OFF_HIGHON_OFF
  • FREQUENCY_LOWON_LONGOFF_HIGHON_LONGOFF
  • LOW_BATTERY
  • DISARMED
  • INTERNALLY_ARMED
  • EXTERNALLY_ARMED
  • DELAYED_INTERNALLY_ARMED
  • DELAYED_EXTERNALLY_ARMED
  • EVENT
  • ERROR

Stopping the alarm

The following script can be used to stop the alarm:

indoor_alarm_stop:
  alias: "Stop indoor alarm"
  sequence:
    - service: homematic.set_device_value
      data:
        address: '000AD8B429ABEF'
        channel: 3
        param: 'ACOUSTIC_ALARM_SELECTION'
        value: 'DISABLE_ACOUSTIC_SIGNAL'
    - service: homematic.set_device_value
      data:
        address: '000AD8B429ABEF'
        channel: 3
        param: OPTICAL_ALARM_SELECTION
        value: 'DISABLE_OPTICAL_SIGNAL'
    - service: homematic.set_device_value
      data:
        address: '000AD8B429ABEF'
        channel: 3
        param: 'DURATION_UNIT'
        value: 'S'
    - service: homematic.set_device_value
      data:
        address: '000AD8B429ABEF'
        channel: 3
        param: 'DURATION_VALUE'
        value: 0