Is Homematic HmIP-ASIR siren fully supported

Hi,

does anyone know if the HmIP-ASIR or HmIP-ASIR-2 alarm siren is fully supported on pyhomematic and home assistant?
I found a pull request from August 2020 which states:

This pull request:
adds support for HomeMatic device: HmIP-ASIR
New class: IPAlarmSensor
Home Assistant [platform]: DISCOVER_BINARY_SENSORS
does the following: Adds the Sensors: binary_sensor.XXX_low_bat, binary_sensor.XXX_optical_alarm_active, binary_sensor.XXX_acoustic_alarm_active. The last two indicate, if there is a active optical or acoustic alarm.

But it seems that only binary_sensors are being created and no switches. Therefore, I guess, it’s not possible to activate or configure this siren via home assistant.

You should be able to control the device manually via the homematic.set_device_value service. You’ll just have to figure out which parameter on which channel to use. The UI of the CCU should give an indication on where you can control the siren.

i don’t own a HmIP-ASIR yet but will try as soon as I got one.

thx

So, I got a HmIP-ASIR-2 and teached it into the CCU. (debmatic)

following the link you provided, the STATE parameter seems to be the most reasonable but unfortunately it doesn’t work.

service: homematic.set_device_value
data:
  address: "00245BE9968949"
  channel: 3
  param: STATE
  value: true
  interface: ip

Any ideas what I could try instead?

Best

You could use this script to extract the device details. Those will somewhere contain the valid values for all channels.

I found your script a second before you posted. :slight_smile:

I did a run but honestly I have no idea what I am looking for. Is it “ALARM_SWITCH_VIRTUAL_RECEIVER” "to simply trigger the alarm?

  {
    "TYPE": "HmIP-ASIR-2",
    "SUBTYPE": "ASIR",
    "ADDRESS": "949",
    "RF_ADDRESS": 6777013,
    "CHILDREN": [
      "9:0",
      "9:1",
      "9:2",
      "9:3"
    ],
    "PARENT": "",
    "PARENT_TYPE": "",
    "INDEX": 0,
    "AES_ACTIVE": 1,
    "PARAMSETS": {
      "MASTER": {},
      "SERVICE": {
        "TEST_STATUS": {
          "MIN": 0,
          "OPERATIONS": 1,
          "MAX": 255,
          "FLAGS": 1,
          "ID": "TEST_STATUS",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        },
        "OS_VERSION": {
          "MIN": "0.0.0",
          "OPERATIONS": 1,
          "MAX": "255.255.255",
          "FLAGS": 1,
          "ID": "OS_VERSION",
          "TYPE": "STRING",
          "DEFAULT": "0.0.0"
        },
        "APPLICATION_VERSION": {
          "MIN": "0.0.0",
          "OPERATIONS": 1,
          "MAX": "255.255.255",
          "FLAGS": 1,
          "ID": "APPLICATION_VERSION",
          "TYPE": "STRING",
          "DEFAULT": "0.0.0"
        },
        "BOOTLOADER_VERSION": {
          "MIN": "0.0.0",
          "OPERATIONS": 1,
          "MAX": "255.255.255",
          "FLAGS": 1,
          "ID": "BOOTLOADER_VERSION",
          "TYPE": "STRING",
          "DEFAULT": "0.0.0"
        },
        "HARDWARE_VERSION": {
          "MIN": 0,
          "OPERATIONS": 1,
          "MAX": 65535,
          "FLAGS": 1,
          "ID": "HARDWARE_VERSION",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        }
      }
    },
    "FIRMWARE": "1.4.2",
    "AVAILABLE_FIRMWARE": "0.0.0",
    "UPDATABLE": true,
    "FIRMWARE_UPDATE_STATE": "UP_TO_DATE",
    "VERSION": 2,
    "FLAGS": 1,
    "LINK_SOURCE_ROLES": "",
    "LINK_TARGET_ROLES": "",
    "DIRECTION": 0,
    "GROUP": "",
    "TEAM": "",
    "TEAM_TAG": "",
    "TEAM_CHANNELS": [],
    "INTERFACE": "",
    "ROAMING": 0,
    "RX_MODE": 3
  },
  {
    "TYPE": "MAINTENANCE",
    "SUBTYPE": "",
    "ADDRESS": "9:0",
    "RF_ADDRESS": 3969,
    "CHILDREN": [],
    "PARENT": "949",
    "PARENT_TYPE": "HmIP-ASIR-2",
    "INDEX": 0,
    "AES_ACTIVE": 1,
    "PARAMSETS": {
      "MASTER": {
        "DUTYCYCLE_LIMIT": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 255,
          "FLAGS": 1,
          "ID": "DUTYCYCLE_LIMIT",
          "TYPE": "INTEGER",
          "DEFAULT": 180
        },
        "CYCLIC_INFO_MSG_OVERDUE_THRESHOLD": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 2147483647,
          "FLAGS": 1,
          "ID": "CYCLIC_INFO_MSG_OVERDUE_THRESHOLD",
          "TYPE": "INTEGER",
          "DEFAULT": 2
        },
        "CYCLIC_INFO_MSG_DIS": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 255,
          "FLAGS": 1,
          "ID": "CYCLIC_INFO_MSG_DIS",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        },
        "ENABLE_ROUTING": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "ENABLE_ROUTING",
          "TYPE": "BOOL",
          "DEFAULT": true
        },
        "LOCAL_RESET_DISABLED": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "LOCAL_RESET_DISABLED",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "LOW_BAT_LIMIT": {
          "MIN": 0,
          "UNIT": "V",
          "OPERATIONS": 3,
          "MAX": 25.2,
          "FLAGS": 1,
          "ID": "LOW_BAT_LIMIT",
          "TYPE": "FLOAT",
          "DEFAULT": 3.3
        },
        "ARR_TIMEOUT": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 255,
          "FLAGS": 1,
          "ID": "ARR_TIMEOUT",
          "TYPE": "INTEGER",
          "DEFAULT": 10
        },
        "CYCLIC_INFO_MSG": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 255,
          "FLAGS": 1,
          "ID": "CYCLIC_INFO_MSG",
          "TYPE": "INTEGER",
          "DEFAULT": 1
        },
        "CYCLIC_INFO_MSG_DIS_UNCHANGED": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 255,
          "FLAGS": 1,
          "ID": "CYCLIC_INFO_MSG_DIS_UNCHANGED",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        }
      },
      "VALUES": {
        "SABOTAGE": {
          "MIN": false,
          "OPERATIONS": 5,
          "MAX": true,
          "FLAGS": 9,
          "ID": "SABOTAGE",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "CONFIG_PENDING": {
          "MIN": false,
          "OPERATIONS": 5,
          "MAX": true,
          "FLAGS": 9,
          "ID": "CONFIG_PENDING",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "DUTY_CYCLE": {
          "MIN": false,
          "OPERATIONS": 5,
          "MAX": true,
          "FLAGS": 1,
          "ID": "DUTY_CYCLE",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "LOW_BAT": {
          "MIN": false,
          "OPERATIONS": 5,
          "MAX": true,
          "FLAGS": 9,
          "ID": "LOW_BAT",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "INSTALL_TEST": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 2,
          "ID": "INSTALL_TEST",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "UNREACH": {
          "MIN": false,
          "OPERATIONS": 5,
          "MAX": true,
          "FLAGS": 25,
          "ID": "UNREACH",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "OPERATING_VOLTAGE_STATUS": {
          "MIN": "NORMAL",
          "OPERATIONS": 5,
          "MAX": "EXTERNAL",
          "FLAGS": 1,
          "ID": "OPERATING_VOLTAGE_STATUS",
          "TYPE": "ENUM",
          "DEFAULT": "NORMAL",
          "VALUE_LIST": [
            "NORMAL",
            "UNKNOWN",
            "OVERFLOW",
            "EXTERNAL"
          ]
        },
        "RSSI_DEVICE": {
          "MIN": -128,
          "OPERATIONS": 5,
          "MAX": 127,
          "FLAGS": 1,
          "ID": "RSSI_DEVICE",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        },
        "OPERATING_VOLTAGE": {
          "MIN": 0,
          "OPERATIONS": 5,
          "MAX": 25.2,
          "FLAGS": 1,
          "ID": "OPERATING_VOLTAGE",
          "TYPE": "FLOAT",
          "DEFAULT": 0
        },
        "RSSI_PEER": {
          "MIN": -128,
          "OPERATIONS": 5,
          "MAX": 127,
          "FLAGS": 1,
          "ID": "RSSI_PEER",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        },
        "ERROR_CODE": {
          "MIN": 0,
          "OPERATIONS": 5,
          "MAX": 255,
          "FLAGS": 9,
          "ID": "ERROR_CODE",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        },
        "UPDATE_PENDING": {
          "MIN": false,
          "OPERATIONS": 5,
          "MAX": true,
          "FLAGS": 9,
          "ID": "UPDATE_PENDING",
          "TYPE": "BOOL",
          "DEFAULT": false
        }
      },
      "SERVICE": {
        "TEST_STATUS": {
          "MIN": 0,
          "OPERATIONS": 1,
          "MAX": 255,
          "FLAGS": 1,
          "ID": "TEST_STATUS",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        },
        "OS_VERSION": {
          "MIN": "0.0.0",
          "OPERATIONS": 1,
          "MAX": "255.255.255",
          "FLAGS": 1,
          "ID": "OS_VERSION",
          "TYPE": "STRING",
          "DEFAULT": "0.0.0"
        },
        "APPLICATION_VERSION": {
          "MIN": "0.0.0",
          "OPERATIONS": 1,
          "MAX": "255.255.255",
          "FLAGS": 1,
          "ID": "APPLICATION_VERSION",
          "TYPE": "STRING",
          "DEFAULT": "0.0.0"
        },
        "BOOTLOADER_VERSION": {
          "MIN": "0.0.0",
          "OPERATIONS": 1,
          "MAX": "255.255.255",
          "FLAGS": 1,
          "ID": "BOOTLOADER_VERSION",
          "TYPE": "STRING",
          "DEFAULT": "0.0.0"
        },
        "HARDWARE_VERSION": {
          "MIN": 0,
          "OPERATIONS": 1,
          "MAX": 65535,
          "FLAGS": 1,
          "ID": "HARDWARE_VERSION",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        }
      }
    },
    "FIRMWARE": "",
    "AVAILABLE_FIRMWARE": "",
    "UPDATABLE": true,
    "FIRMWARE_UPDATE_STATE": "",
    "VERSION": 2,
    "FLAGS": 1,
    "LINK_SOURCE_ROLES": "",
    "LINK_TARGET_ROLES": "",
    "DIRECTION": 0,
    "GROUP": "",
    "TEAM": "",
    "TEAM_TAG": "",
    "TEAM_CHANNELS": [],
    "INTERFACE": "",
    "ROAMING": 0,
    "RX_MODE": 0
  },
  {
    "TYPE": "KEY_TRANSCEIVER",
    "SUBTYPE": "",
    "ADDRESS": "9:1",
    "RF_ADDRESS": 4257,
    "CHILDREN": [],
    "PARENT": "949",
    "PARENT_TYPE": "HmIP-ASIR-2",
    "INDEX": 1,
    "AES_ACTIVE": 1,
    "PARAMSETS": {
      "MASTER": {},
      "VALUES": {},
      "LINK": {},
      "SERVICE": {
        "TEST_STATUS": {
          "MIN": 0,
          "OPERATIONS": 1,
          "MAX": 255,
          "FLAGS": 1,
          "ID": "TEST_STATUS",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        },
        "OS_VERSION": {
          "MIN": "0.0.0",
          "OPERATIONS": 1,
          "MAX": "255.255.255",
          "FLAGS": 1,
          "ID": "OS_VERSION",
          "TYPE": "STRING",
          "DEFAULT": "0.0.0"
        },
        "APPLICATION_VERSION": {
          "MIN": "0.0.0",
          "OPERATIONS": 1,
          "MAX": "255.255.255",
          "FLAGS": 1,
          "ID": "APPLICATION_VERSION",
          "TYPE": "STRING",
          "DEFAULT": "0.0.0"
        },
        "BOOTLOADER_VERSION": {
          "MIN": "0.0.0",
          "OPERATIONS": 1,
          "MAX": "255.255.255",
          "FLAGS": 1,
          "ID": "BOOTLOADER_VERSION",
          "TYPE": "STRING",
          "DEFAULT": "0.0.0"
        },
        "HARDWARE_VERSION": {
          "MIN": 0,
          "OPERATIONS": 1,
          "MAX": 65535,
          "FLAGS": 1,
          "ID": "HARDWARE_VERSION",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        }
      }
    },
    "FIRMWARE": "",
    "AVAILABLE_FIRMWARE": "",
    "UPDATABLE": true,
    "FIRMWARE_UPDATE_STATE": "",
    "VERSION": 2,
    "FLAGS": 1,
    "LINK_SOURCE_ROLES": "ALARM_MODE_CONDITIONAL_SWITCH",
    "LINK_TARGET_ROLES": "",
    "DIRECTION": 1,
    "GROUP": "",
    "TEAM": "",
    "TEAM_TAG": "",
    "TEAM_CHANNELS": [],
    "INTERFACE": "",
    "ROAMING": 0,
    "RX_MODE": 0
  },
  {
    "TYPE": "ALARM_COND_SWITCH_RECEIVER",
    "SUBTYPE": "",
    "ADDRESS": "9:2",
    "RF_ADDRESS": 2635,
    "CHILDREN": [],
    "PARENT": "949",
    "PARENT_TYPE": "HmIP-ASIR-2",
    "INDEX": 2,
    "AES_ACTIVE": 1,
    "PARAMSETS": {
      "MASTER": {
        "SD_MULTICAST_ZONE_2": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "SD_MULTICAST_ZONE_2",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "SD_MULTICAST_ZONE_3": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "SD_MULTICAST_ZONE_3",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "SD_MULTICAST_ZONE_4": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "SD_MULTICAST_ZONE_4",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "SD_MULTICAST_ZONE_5": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "SD_MULTICAST_ZONE_5",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "SD_MULTICAST_ZONE_1": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "SD_MULTICAST_ZONE_1",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "SD_MULTICAST_ZONE_6": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "SD_MULTICAST_ZONE_6",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "SD_MULTICAST_ZONE_7": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "SD_MULTICAST_ZONE_7",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "SILENT_ALARM_ZONE_2": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "SILENT_ALARM_ZONE_2",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "SILENT_ALARM_ZONE_1": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "SILENT_ALARM_ZONE_1",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "SILENT_ALARM_ZONE_6": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "SILENT_ALARM_ZONE_6",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "SILENT_ALARM_ZONE_5": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "SILENT_ALARM_ZONE_5",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "SILENT_ALARM_ZONE_4": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "SILENT_ALARM_ZONE_4",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "SILENT_ALARM_ZONE_3": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "SILENT_ALARM_ZONE_3",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "SILENT_ALARM_ZONE_7": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "SILENT_ALARM_ZONE_7",
          "TYPE": "BOOL",
          "DEFAULT": false
        }
      },
      "VALUES": {},
      "SERVICE": {
        "TEST_STATUS": {
          "MIN": 0,
          "OPERATIONS": 1,
          "MAX": 255,
          "FLAGS": 1,
          "ID": "TEST_STATUS",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        },
        "OS_VERSION": {
          "MIN": "0.0.0",
          "OPERATIONS": 1,
          "MAX": "255.255.255",
          "FLAGS": 1,
          "ID": "OS_VERSION",
          "TYPE": "STRING",
          "DEFAULT": "0.0.0"
        },
        "APPLICATION_VERSION": {
          "MIN": "0.0.0",
          "OPERATIONS": 1,
          "MAX": "255.255.255",
          "FLAGS": 1,
          "ID": "APPLICATION_VERSION",
          "TYPE": "STRING",
          "DEFAULT": "0.0.0"
        },
        "BOOTLOADER_VERSION": {
          "MIN": "0.0.0",
          "OPERATIONS": 1,
          "MAX": "255.255.255",
          "FLAGS": 1,
          "ID": "BOOTLOADER_VERSION",
          "TYPE": "STRING",
          "DEFAULT": "0.0.0"
        },
        "HARDWARE_VERSION": {
          "MIN": 0,
          "OPERATIONS": 1,
          "MAX": 65535,
          "FLAGS": 1,
          "ID": "HARDWARE_VERSION",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        }
      }
    },
    "FIRMWARE": "",
    "AVAILABLE_FIRMWARE": "",
    "UPDATABLE": true,
    "FIRMWARE_UPDATE_STATE": "",
    "VERSION": 2,
    "FLAGS": 0,
    "LINK_SOURCE_ROLES": "",
    "LINK_TARGET_ROLES": "",
    "DIRECTION": 0,
    "GROUP": "",
    "TEAM": "",
    "TEAM_TAG": "",
    "TEAM_CHANNELS": [],
    "INTERFACE": "",
    "ROAMING": 0,
    "RX_MODE": 0
  },
  {
    "TYPE": "ALARM_SWITCH_VIRTUAL_RECEIVER",
    "SUBTYPE": "",
    "ADDRESS": "9:3",
    "RF_ADDRESS": 1327,
    "CHILDREN": [],
    "PARENT": "949",
    "PARENT_TYPE": "HmIP-ASIR-2",
    "INDEX": 3,
    "AES_ACTIVE": 1,
    "PARAMSETS": {
      "MASTER": {
        "EVENT_RANDOMTIME_UNIT": {
          "MIN": "100MS",
          "OPERATIONS": 3,
          "MAX": "H",
          "FLAGS": 1,
          "ID": "EVENT_RANDOMTIME_UNIT",
          "TYPE": "ENUM",
          "DEFAULT": "S",
          "VALUE_LIST": [
            "100MS",
            "S",
            "M",
            "H"
          ]
        },
        "EVENT_RANDOMTIME_VALUE": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 63,
          "FLAGS": 1,
          "ID": "EVENT_RANDOMTIME_VALUE",
          "TYPE": "INTEGER",
          "DEFAULT": 1
        },
        "EVENT_DELAY_UNIT": {
          "MIN": "100MS",
          "OPERATIONS": 3,
          "MAX": "H",
          "FLAGS": 1,
          "ID": "EVENT_DELAY_UNIT",
          "TYPE": "ENUM",
          "DEFAULT": "S",
          "VALUE_LIST": [
            "100MS",
            "S",
            "M",
            "H"
          ]
        },
        "EVENT_DELAY_VALUE": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 63,
          "FLAGS": 1,
          "ID": "EVENT_DELAY_VALUE",
          "TYPE": "INTEGER",
          "DEFAULT": 1
        }
      },
      "VALUES": {
        "ACOUSTIC_ALARM_ACTIVE": {
          "MIN": false,
          "OPERATIONS": 5,
          "MAX": true,
          "FLAGS": 1,
          "ID": "ACOUSTIC_ALARM_ACTIVE",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "ACOUSTIC_ALARM_SELECTION": {
          "MIN": "DISABLE_ACOUSTIC_SIGNAL",
          "OPERATIONS": 2,
          "MAX": "ERROR",
          "FLAGS": 1,
          "ID": "ACOUSTIC_ALARM_SELECTION",
          "TYPE": "ENUM",
          "DEFAULT": "DISABLE_ACOUSTIC_SIGNAL",
          "VALUE_LIST": [
            "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"
          ],
          "CONTROL": "ALARM_SWITCH_VIRTUAL_RECEIVER.ACOUSTIC_ALARM_SELECTION"
        },
        "OPTICAL_ALARM_SELECTION": {
          "MIN": "DISABLE_OPTICAL_SIGNAL",
          "OPERATIONS": 2,
          "MAX": "CONFIRMATION_SIGNAL_2",
          "FLAGS": 1,
          "ID": "OPTICAL_ALARM_SELECTION",
          "TYPE": "ENUM",
          "DEFAULT": "DISABLE_OPTICAL_SIGNAL",
          "VALUE_LIST": [
            "DISABLE_OPTICAL_SIGNAL",
            "BLINKING_ALTERNATELY_REPEATING",
            "BLINKING_BOTH_REPEATING",
            "DOUBLE_FLASHING_REPEATING",
            "FLASHING_BOTH_REPEATING",
            "CONFIRMATION_SIGNAL_0",
            "CONFIRMATION_SIGNAL_1",
            "CONFIRMATION_SIGNAL_2"
          ],
          "CONTROL": "ALARM_SWITCH_VIRTUAL_RECEIVER.OPTICAL_ALARM_SELECTION"
        },
        "DURATION_UNIT": {
          "MIN": "S",
          "OPERATIONS": 2,
          "MAX": "H",
          "FLAGS": 1,
          "ID": "DURATION_UNIT",
          "TYPE": "ENUM",
          "DEFAULT": "S",
          "VALUE_LIST": [
            "S",
            "M",
            "H"
          ],
          "CONTROL": "ALARM_SWITCH_VIRTUAL_RECEIVER.DURATION_UNIT"
        },
        "OPTICAL_ALARM_ACTIVE": {
          "MIN": false,
          "OPERATIONS": 5,
          "MAX": true,
          "FLAGS": 1,
          "ID": "OPTICAL_ALARM_ACTIVE",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "DURATION_VALUE": {
          "MIN": 0,
          "OPERATIONS": 2,
          "MAX": 16343,
          "FLAGS": 1,
          "ID": "DURATION_VALUE",
          "TYPE": "INTEGER",
          "DEFAULT": 0,
          "CONTROL": "ALARM_SWITCH_VIRTUAL_RECEIVER.DURATION_VALUE"
        }
      },
      "LINK": {
        "SHORT_CT_ON": {
          "MIN": "VALUE_GE_LO",
          "OPERATIONS": 3,
          "MAX": "VALUE_L_LO_OR_GE_HI",
          "FLAGS": 1,
          "ID": "SHORT_CT_ON",
          "TYPE": "ENUM",
          "DEFAULT": "VALUE_GE_LO",
          "VALUE_LIST": [
            "VALUE_GE_LO",
            "VALUE_GE_HI",
            "VALUE_L_LO",
            "VALUE_L_HI",
            "VALUE_GE_LO_AND_L_HI",
            "VALUE_L_LO_OR_GE_HI"
          ]
        },
        "LONG_PROFILE_ACTION_TYPE": {
          "MIN": "PROFILE_ACTION_TYPE_INACTIVE",
          "OPERATIONS": 3,
          "MAX": "PROFILE_ACTION_TYPE_TOGGLE_DRIVE_COUNTER",
          "FLAGS": 1,
          "ID": "LONG_PROFILE_ACTION_TYPE",
          "TYPE": "ENUM",
          "DEFAULT": "PROFILE_ACTION_TYPE_JUMP",
          "VALUE_LIST": [
            "PROFILE_ACTION_TYPE_INACTIVE",
            "PROFILE_ACTION_TYPE_JUMP",
            "PROFILE_ACTION_TYPE_TOGGLE",
            "PROFILE_ACTION_TYPE_DRIVE_UP",
            "PROFILE_ACTION_TYPE_DRIVE_DOWN",
            "PROFILE_ACTION_TYPE_TOGGLE_DRIVE_LAST_DIR",
            "PROFILE_ACTION_TYPE_TOGGLE_DRIVE_COUNTER"
          ]
        },
        "LONG_OFF_TIME_MODE": {
          "MIN": "TIME_IS_ABSOLUTE",
          "OPERATIONS": 3,
          "MAX": "TIME_IS_MINIMAL",
          "FLAGS": 1,
          "ID": "LONG_OFF_TIME_MODE",
          "TYPE": "ENUM",
          "DEFAULT": "TIME_IS_ABSOLUTE",
          "VALUE_LIST": [
            "TIME_IS_ABSOLUTE",
            "TIME_IS_MINIMAL"
          ]
        },
        "SHORT_OFFDELAY_TIME_BASE": {
          "MIN": "BASE_100_MS",
          "OPERATIONS": 3,
          "MAX": "BASE_1_H",
          "FLAGS": 1,
          "ID": "SHORT_OFFDELAY_TIME_BASE",
          "TYPE": "ENUM",
          "DEFAULT": "BASE_100_MS",
          "VALUE_LIST": [
            "BASE_100_MS",
            "BASE_1_S",
            "BASE_5_S",
            "BASE_10_S",
            "BASE_1_M",
            "BASE_5_M",
            "BASE_10_M",
            "BASE_1_H"
          ]
        },
        "SHORT_JT_OFFDELAY": {
          "MIN": "NOP",
          "OPERATIONS": 3,
          "MAX": "OFF",
          "FLAGS": 1,
          "ID": "SHORT_JT_OFFDELAY",
          "TYPE": "ENUM",
          "DEFAULT": "ON",
          "VALUE_LIST": [
            "NOP",
            "ON_DELAY",
            "RAMP_ON",
            "ON",
            "OFF_DELAY",
            "RAMP_OFF",
            "OFF"
          ]
        },
        "LONG_CT_OFFDELAY": {
          "MIN": "VALUE_GE_LO",
          "OPERATIONS": 3,
          "MAX": "VALUE_L_LO_OR_GE_HI",
          "FLAGS": 1,
          "ID": "LONG_CT_OFFDELAY",
          "TYPE": "ENUM",
          "DEFAULT": "VALUE_GE_LO",
          "VALUE_LIST": [
            "VALUE_GE_LO",
            "VALUE_GE_HI",
            "VALUE_L_LO",
            "VALUE_L_HI",
            "VALUE_GE_LO_AND_L_HI",
            "VALUE_L_LO_OR_GE_HI"
          ]
        },
        "LONG_CT_OFF": {
          "MIN": "VALUE_GE_LO",
          "OPERATIONS": 3,
          "MAX": "VALUE_L_LO_OR_GE_HI",
          "FLAGS": 1,
          "ID": "LONG_CT_OFF",
          "TYPE": "ENUM",
          "DEFAULT": "VALUE_GE_LO",
          "VALUE_LIST": [
            "VALUE_GE_LO",
            "VALUE_GE_HI",
            "VALUE_L_LO",
            "VALUE_L_HI",
            "VALUE_GE_LO_AND_L_HI",
            "VALUE_L_LO_OR_GE_HI"
          ]
        },
        "SHORT_COND_VALUE_LO": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 255,
          "FLAGS": 1,
          "ID": "SHORT_COND_VALUE_LO",
          "TYPE": "INTEGER",
          "DEFAULT": 50
        },
        "SHORT_OFFDELAY_TIME_FACTOR": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 31,
          "FLAGS": 1,
          "ID": "SHORT_OFFDELAY_TIME_FACTOR",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        },
        "LONG_JT_ON": {
          "MIN": "NOP",
          "OPERATIONS": 3,
          "MAX": "OFF",
          "FLAGS": 1,
          "ID": "LONG_JT_ON",
          "TYPE": "ENUM",
          "DEFAULT": "ON",
          "VALUE_LIST": [
            "NOP",
            "ON_DELAY",
            "RAMP_ON",
            "ON",
            "OFF_DELAY",
            "RAMP_OFF",
            "OFF"
          ]
        },
        "LONG_OFF_TIME_FACTOR": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 31,
          "FLAGS": 1,
          "ID": "LONG_OFF_TIME_FACTOR",
          "TYPE": "INTEGER",
          "DEFAULT": 31
        },
        "SHORT_COND_VALUE_HI": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 255,
          "FLAGS": 1,
          "ID": "SHORT_COND_VALUE_HI",
          "TYPE": "INTEGER",
          "DEFAULT": 150
        },
        "SHORT_OFF_TIME_MODE": {
          "MIN": "TIME_IS_ABSOLUTE",
          "OPERATIONS": 3,
          "MAX": "TIME_IS_MINIMAL",
          "FLAGS": 1,
          "ID": "SHORT_OFF_TIME_MODE",
          "TYPE": "ENUM",
          "DEFAULT": "TIME_IS_ABSOLUTE",
          "VALUE_LIST": [
            "TIME_IS_ABSOLUTE",
            "TIME_IS_MINIMAL"
          ]
        },
        "SHORT_CT_ONDELAY": {
          "MIN": "VALUE_GE_LO",
          "OPERATIONS": 3,
          "MAX": "VALUE_L_LO_OR_GE_HI",
          "FLAGS": 1,
          "ID": "SHORT_CT_ONDELAY",
          "TYPE": "ENUM",
          "DEFAULT": "VALUE_GE_LO",
          "VALUE_LIST": [
            "VALUE_GE_LO",
            "VALUE_GE_HI",
            "VALUE_L_LO",
            "VALUE_L_HI",
            "VALUE_GE_LO_AND_L_HI",
            "VALUE_L_LO_OR_GE_HI"
          ]
        },
        "SHORT_OFF_TIME_FACTOR": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 31,
          "FLAGS": 1,
          "ID": "SHORT_OFF_TIME_FACTOR",
          "TYPE": "INTEGER",
          "DEFAULT": 31
        },
        "LONG_SIGNAL_SELECTION_OPTICAL": {
          "MIN": "DISABLE_OPTICAL_SIGNAL",
          "OPERATIONS": 3,
          "MAX": "CONFIRMATION_SIGNAL_2",
          "FLAGS": 1,
          "ID": "LONG_SIGNAL_SELECTION_OPTICAL",
          "TYPE": "ENUM",
          "DEFAULT": "BLINKING_ALTERNATELY_REPEATING",
          "VALUE_LIST": [
            "DISABLE_OPTICAL_SIGNAL",
            "BLINKING_ALTERNATELY_REPEATING",
            "BLINKING_BOTH_REPEATING",
            "DOUBLE_FLASHING_REPEATING",
            "FLASHING_BOTH_REPEATING",
            "CONFIRMATION_SIGNAL_0",
            "CONFIRMATION_SIGNAL_1",
            "CONFIRMATION_SIGNAL_2"
          ]


        },
        "LONG_MULTIEXECUTE": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "LONG_MULTIEXECUTE",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "LONG_ONDELAY_TIME_FACTOR": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 31,
          "FLAGS": 1,
          "ID": "LONG_ONDELAY_TIME_FACTOR",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        },
        "SHORT_ON_TIME_FACTOR": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 31,
          "FLAGS": 1,
          "ID": "SHORT_ON_TIME_FACTOR",
          "TYPE": "INTEGER",
          "DEFAULT": 6
        },
        "LONG_ON_TIME_FACTOR": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 31,
          "FLAGS": 1,
          "ID": "LONG_ON_TIME_FACTOR",
          "TYPE": "INTEGER",
          "DEFAULT": 6
        },
        "LONG_CT_ONDELAY": {
          "MIN": "VALUE_GE_LO",
          "OPERATIONS": 3,
          "MAX": "VALUE_L_LO_OR_GE_HI",
          "FLAGS": 1,
          "ID": "LONG_CT_ONDELAY",
          "TYPE": "ENUM",
          "DEFAULT": "VALUE_GE_LO",
          "VALUE_LIST": [
            "VALUE_GE_LO",
            "VALUE_GE_HI",
            "VALUE_L_LO",
            "VALUE_L_HI",
            "VALUE_GE_LO_AND_L_HI",
            "VALUE_L_LO_OR_GE_HI"
          ]
        },
        "SHORT_ON_TIME_BASE": {
          "MIN": "BASE_100_MS",
          "OPERATIONS": 3,
          "MAX": "BASE_1_H",
          "FLAGS": 1,
          "ID": "SHORT_ON_TIME_BASE",
          "TYPE": "ENUM",
          "DEFAULT": "BASE_1_M",
          "VALUE_LIST": [
            "BASE_100_MS",
            "BASE_1_S",
            "BASE_5_S",
            "BASE_10_S",
            "BASE_1_M",
            "BASE_5_M",
            "BASE_10_M",
            "BASE_1_H"
          ]
        },
        "SHORT_MULTIEXECUTE": {
          "MIN": false,
          "OPERATIONS": 3,
          "MAX": true,
          "FLAGS": 1,
          "ID": "SHORT_MULTIEXECUTE",
          "TYPE": "BOOL",
          "DEFAULT": false
        },
        "LONG_JT_OFF": {
          "MIN": "NOP",
          "OPERATIONS": 3,
          "MAX": "OFF",
          "FLAGS": 1,
          "ID": "LONG_JT_OFF",
          "TYPE": "ENUM",
          "DEFAULT": "ON",
          "VALUE_LIST": [
            "NOP",
            "ON_DELAY",
            "RAMP_ON",
            "ON",
            "OFF_DELAY",
            "RAMP_OFF",
            "OFF"
          ]
        },
        "SHORT_JT_ONDELAY": {
          "MIN": "NOP",
          "OPERATIONS": 3,
          "MAX": "OFF",
          "FLAGS": 1,
          "ID": "SHORT_JT_ONDELAY",
          "TYPE": "ENUM",
          "DEFAULT": "ON",
          "VALUE_LIST": [
            "NOP",
            "ON_DELAY",
            "RAMP_ON",
            "ON",
            "OFF_DELAY",
            "RAMP_OFF",
            "OFF"
          ]
        },
        "LONG_ONDELAY_TIME_BASE": {
          "MIN": "BASE_100_MS",
          "OPERATIONS": 3,
          "MAX": "BASE_1_H",
          "FLAGS": 1,
          "ID": "LONG_ONDELAY_TIME_BASE",
          "TYPE": "ENUM",
          "DEFAULT": "BASE_100_MS",
          "VALUE_LIST": [
            "BASE_100_MS",
            "BASE_1_S",
            "BASE_5_S",
            "BASE_10_S",
            "BASE_1_M",
            "BASE_5_M",
            "BASE_10_M",
            "BASE_1_H"
          ]
        },
        "SHORT_PROFILE_ACTION_TYPE": {
          "MIN": "PROFILE_ACTION_TYPE_INACTIVE",
          "OPERATIONS": 3,
          "MAX": "PROFILE_ACTION_TYPE_TOGGLE_DRIVE_COUNTER",
          "FLAGS": 1,
          "ID": "SHORT_PROFILE_ACTION_TYPE",
          "TYPE": "ENUM",
          "DEFAULT": "PROFILE_ACTION_TYPE_JUMP",
          "VALUE_LIST": [
            "PROFILE_ACTION_TYPE_INACTIVE",
            "PROFILE_ACTION_TYPE_JUMP",
            "PROFILE_ACTION_TYPE_TOGGLE",
            "PROFILE_ACTION_TYPE_DRIVE_UP",
            "PROFILE_ACTION_TYPE_DRIVE_DOWN",
            "PROFILE_ACTION_TYPE_TOGGLE_DRIVE_LAST_DIR",
            "PROFILE_ACTION_TYPE_TOGGLE_DRIVE_COUNTER"
          ]
        },
        "LONG_ON_TIME_MODE": {
          "MIN": "TIME_IS_ABSOLUTE",
          "OPERATIONS": 3,
          "MAX": "TIME_IS_MINIMAL",
          "FLAGS": 1,
          "ID": "LONG_ON_TIME_MODE",
          "TYPE": "ENUM",
          "DEFAULT": "TIME_IS_ABSOLUTE",
          "VALUE_LIST": [
            "TIME_IS_ABSOLUTE",
            "TIME_IS_MINIMAL"
          ]
        },
        "LONG_JT_OFFDELAY": {
          "MIN": "NOP",
          "OPERATIONS": 3,
          "MAX": "OFF",
          "FLAGS": 1,
          "ID": "LONG_JT_OFFDELAY",
          "TYPE": "ENUM",
          "DEFAULT": "ON",
          "VALUE_LIST": [
            "NOP",
            "ON_DELAY",
            "RAMP_ON",
            "ON",
            "OFF_DELAY",
            "RAMP_OFF",
            "OFF"
          ]
        },
        "LONG_OFF_TIME_BASE": {
          "MIN": "BASE_100_MS",
          "OPERATIONS": 3,
          "MAX": "BASE_1_H",
          "FLAGS": 1,
          "ID": "LONG_OFF_TIME_BASE",
          "TYPE": "ENUM",
          "DEFAULT": "BASE_1_H",
          "VALUE_LIST": [
            "BASE_100_MS",
            "BASE_1_S",
            "BASE_5_S",
            "BASE_10_S",
            "BASE_1_M",
            "BASE_5_M",
            "BASE_10_M",
            "BASE_1_H"
          ]
        },
        "LONG_OFFDELAY_TIME_FACTOR": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 31,
          "FLAGS": 1,
          "ID": "LONG_OFFDELAY_TIME_FACTOR",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        },
        "LONG_COND_VALUE_LO": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 255,
          "FLAGS": 1,
          "ID": "LONG_COND_VALUE_LO",
          "TYPE": "INTEGER",
          "DEFAULT": 50
        },
        "SHORT_OFF_TIME_BASE": {
          "MIN": "BASE_100_MS",
          "OPERATIONS": 3,
          "MAX": "BASE_1_H",
          "FLAGS": 1,
          "ID": "SHORT_OFF_TIME_BASE",
          "TYPE": "ENUM",
          "DEFAULT": "BASE_1_H",
          "VALUE_LIST": [
            "BASE_100_MS",
            "BASE_1_S",
            "BASE_5_S",
            "BASE_10_S",
            "BASE_1_M",
            "BASE_5_M",
            "BASE_10_M",
            "BASE_1_H"
          ]
        },
        "SHORT_ON_TIME_MODE": {
          "MIN": "TIME_IS_ABSOLUTE",
          "OPERATIONS": 3,
          "MAX": "TIME_IS_MINIMAL",
          "FLAGS": 1,
          "ID": "SHORT_ON_TIME_MODE",
          "TYPE": "ENUM",
          "DEFAULT": "TIME_IS_ABSOLUTE",
          "VALUE_LIST": [
            "TIME_IS_ABSOLUTE",
            "TIME_IS_MINIMAL"
          ]
        },
        "SHORT_SIGNAL_SELECTION_ACOUSTIC": {
          "MIN": "DISABLE_ACOUSTIC_SIGNAL",
          "OPERATIONS": 3,
          "MAX": "ERROR",
          "FLAGS": 1,
          "ID": "SHORT_SIGNAL_SELECTION_ACOUSTIC",
          "TYPE": "ENUM",
          "DEFAULT": "FREQUENCY_RISING",
          "VALUE_LIST": [
            "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"
          ]
        },
        "LONG_JT_ONDELAY": {
          "MIN": "NOP",
          "OPERATIONS": 3,
          "MAX": "OFF",
          "FLAGS": 1,
          "ID": "LONG_JT_ONDELAY",
          "TYPE": "ENUM",
          "DEFAULT": "ON",
          "VALUE_LIST": [
            "NOP",
            "ON_DELAY",
            "RAMP_ON",
            "ON",
            "OFF_DELAY",
            "RAMP_OFF",
            "OFF"
          ]
        },
        "LONG_COND_VALUE_HI": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 255,
          "FLAGS": 1,
          "ID": "LONG_COND_VALUE_HI",
          "TYPE": "INTEGER",
          "DEFAULT": 150
        },
        "SHORT_CT_OFF": {
          "MIN": "VALUE_GE_LO",
          "OPERATIONS": 3,
          "MAX": "VALUE_L_LO_OR_GE_HI",
          "FLAGS": 1,
          "ID": "SHORT_CT_OFF",
          "TYPE": "ENUM",
          "DEFAULT": "VALUE_GE_LO",
          "VALUE_LIST": [
            "VALUE_GE_LO",
            "VALUE_GE_HI",
            "VALUE_L_LO",
            "VALUE_L_HI",
            "VALUE_GE_LO_AND_L_HI",
            "VALUE_L_LO_OR_GE_HI"
          ]
        },
        "LONG_ON_TIME_BASE": {
          "MIN": "BASE_100_MS",
          "OPERATIONS": 3,
          "MAX": "BASE_1_H",
          "FLAGS": 1,
          "ID": "LONG_ON_TIME_BASE",
          "TYPE": "ENUM",
          "DEFAULT": "BASE_1_M",
          "VALUE_LIST": [
            "BASE_100_MS",
            "BASE_1_S",
            "BASE_5_S",
            "BASE_10_S",
            "BASE_1_M",
            "BASE_5_M",
            "BASE_10_M",
            "BASE_1_H"
          ]
        },
        "SHORT_JT_OFF": {
          "MIN": "NOP",
          "OPERATIONS": 3,
          "MAX": "OFF",
          "FLAGS": 1,
          "ID": "SHORT_JT_OFF",
          "TYPE": "ENUM",
          "DEFAULT": "ON",
          "VALUE_LIST": [
            "NOP",
            "ON_DELAY",
            "RAMP_ON",
            "ON",
            "OFF_DELAY",
            "RAMP_OFF",
            "OFF"
          ]
        },
        "SHORT_ONDELAY_TIME_FACTOR": {
          "MIN": 0,
          "OPERATIONS": 3,
          "MAX": 31,
          "FLAGS": 1,
          "ID": "SHORT_ONDELAY_TIME_FACTOR",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        },
        "LONG_CT_ON": {
          "MIN": "VALUE_GE_LO",
          "OPERATIONS": 3,
          "MAX": "VALUE_L_LO_OR_GE_HI",
          "FLAGS": 1,
          "ID": "LONG_CT_ON",
          "TYPE": "ENUM",
          "DEFAULT": "VALUE_GE_LO",
          "VALUE_LIST": [
            "VALUE_GE_LO",
            "VALUE_GE_HI",
            "VALUE_L_LO",
            "VALUE_L_HI",
            "VALUE_GE_LO_AND_L_HI",
            "VALUE_L_LO_OR_GE_HI"
          ]
        },
        "SHORT_ONDELAY_TIME_BASE": {
          "MIN": "BASE_100_MS",
          "OPERATIONS": 3,
          "MAX": "BASE_1_H",
          "FLAGS": 1,
          "ID": "SHORT_ONDELAY_TIME_BASE",
          "TYPE": "ENUM",
          "DEFAULT": "BASE_100_MS",
          "VALUE_LIST": [
            "BASE_100_MS",
            "BASE_1_S",
            "BASE_5_S",
            "BASE_10_S",
            "BASE_1_M",
            "BASE_5_M",
            "BASE_10_M",
            "BASE_1_H"
          ]
        },
        "LONG_SIGNAL_SELECTION_ACOUSTIC": {
          "MIN": "DISABLE_ACOUSTIC_SIGNAL",
          "OPERATIONS": 3,
          "MAX": "ERROR",
          "FLAGS": 1,
          "ID": "LONG_SIGNAL_SELECTION_ACOUSTIC",
          "TYPE": "ENUM",
          "DEFAULT": "FREQUENCY_RISING",
          "VALUE_LIST": [
            "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"
          ]
        },
        "LONG_OFFDELAY_TIME_BASE": {
          "MIN": "BASE_100_MS",
          "OPERATIONS": 3,
          "MAX": "BASE_1_H",
          "FLAGS": 1,
          "ID": "LONG_OFFDELAY_TIME_BASE",
          "TYPE": "ENUM",
          "DEFAULT": "BASE_100_MS",
          "VALUE_LIST": [
            "BASE_100_MS",
            "BASE_1_S",
            "BASE_5_S",
            "BASE_10_S",
            "BASE_1_M",
            "BASE_5_M",
            "BASE_10_M",
            "BASE_1_H"
          ]
        },
        "SHORT_SIGNAL_SELECTION_OPTICAL": {
          "MIN": "DISABLE_OPTICAL_SIGNAL",
          "OPERATIONS": 3,
          "MAX": "CONFIRMATION_SIGNAL_2",
          "FLAGS": 1,
          "ID": "SHORT_SIGNAL_SELECTION_OPTICAL",
          "TYPE": "ENUM",
          "DEFAULT": "FLASHING_BOTH_REPEATING",
          "VALUE_LIST": [
            "DISABLE_OPTICAL_SIGNAL",
            "BLINKING_ALTERNATELY_REPEATING",
            "BLINKING_BOTH_REPEATING",
            "DOUBLE_FLASHING_REPEATING",
            "FLASHING_BOTH_REPEATING",
            "CONFIRMATION_SIGNAL_0",
            "CONFIRMATION_SIGNAL_1",
            "CONFIRMATION_SIGNAL_2"
          ]
        },
        "SHORT_CT_OFFDELAY": {
          "MIN": "VALUE_GE_LO",
          "OPERATIONS": 3,
          "MAX": "VALUE_L_LO_OR_GE_HI",
          "FLAGS": 1,
          "ID": "SHORT_CT_OFFDELAY",
          "TYPE": "ENUM",
          "DEFAULT": "VALUE_GE_LO",
          "VALUE_LIST": [
            "VALUE_GE_LO",
            "VALUE_GE_HI",
            "VALUE_L_LO",
            "VALUE_L_HI",
            "VALUE_GE_LO_AND_L_HI",
            "VALUE_L_LO_OR_GE_HI"
          ]
        },
        "SHORT_JT_ON": {
          "MIN": "NOP",
          "OPERATIONS": 3,
          "MAX": "OFF",
          "FLAGS": 1,
          "ID": "SHORT_JT_ON",
          "TYPE": "ENUM",
          "DEFAULT": "ON",
          "VALUE_LIST": [
            "NOP",
            "ON_DELAY",
            "RAMP_ON",
            "ON",
            "OFF_DELAY",
            "RAMP_OFF",
            "OFF"
          ]
        }
      },
      "SERVICE": {
        "TEST_STATUS": {
          "MIN": 0,
          "OPERATIONS": 1,
          "MAX": 255,
          "FLAGS": 1,
          "ID": "TEST_STATUS",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        },
        "OS_VERSION": {
          "MIN": "0.0.0",
          "OPERATIONS": 1,
          "MAX": "255.255.255",
          "FLAGS": 1,
          "ID": "OS_VERSION",
          "TYPE": "STRING",
          "DEFAULT": "0.0.0"
        },
        "APPLICATION_VERSION": {
          "MIN": "0.0.0",
          "OPERATIONS": 1,
          "MAX": "255.255.255",
          "FLAGS": 1,
          "ID": "APPLICATION_VERSION",
          "TYPE": "STRING",
          "DEFAULT": "0.0.0"
        },
        "BOOTLOADER_VERSION": {
          "MIN": "0.0.0",
          "OPERATIONS": 1,
          "MAX": "255.255.255",
          "FLAGS": 1,
          "ID": "BOOTLOADER_VERSION",
          "TYPE": "STRING",
          "DEFAULT": "0.0.0"
        },
        "HARDWARE_VERSION": {
          "MIN": 0,
          "OPERATIONS": 1,
          "MAX": 65535,
          "FLAGS": 1,
          "ID": "HARDWARE_VERSION",
          "TYPE": "INTEGER",
          "DEFAULT": 0
        }
      }
    },
    "FIRMWARE": "",
    "AVAILABLE_FIRMWARE": "",
    "UPDATABLE": true,
    "FIRMWARE_UPDATE_STATE": "",
    "VERSION": 2,
    "FLAGS": 1,
    "LINK_SOURCE_ROLES": "",
    "LINK_TARGET_ROLES": "SWITCH REMOTE_CONTROL CONDITIONAL_SWITCH",
    "DIRECTION": 2,
    "GROUP": "",
    "TEAM": "",
    "TEAM_TAG": "",
    "TEAM_CHANNELS": [],
    "INTERFACE": "",
    "ROAMING": 0,
    "RX_MODE": 0
  },

Could you please upload the two raw files exactly how they are produced as gists and share the links?

My first guess would be either the parameters ACOUSTIC_ALARM_SELECTION or OPTICAL_ALARM_SELECTION, both on channel 3.

They both work using value lists, where each entry is enumerated, starting from one. So for ACOUSTIC_ALARM_SELECTION there is:

"VALUE_LIST": [
	"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"
]

So a value of 0 would correspond to DISABLE_ACOUSTIC_SIGNAL, and 6 would be FREQUENCY_HIGHON_OFF.

And the list for OPTICAL_ALARM_SELECTION is:

"VALUE_LIST": [
	"DISABLE_OPTICAL_SIGNAL",
	"BLINKING_ALTERNATELY_REPEATING",
	"BLINKING_BOTH_REPEATING",
	"DOUBLE_FLASHING_REPEATING",
	"FLASHING_BOTH_REPEATING",
	"CONFIRMATION_SIGNAL_0",
	"CONFIRMATION_SIGNAL_1",
	"CONFIRMATION_SIGNAL_2"
]

Maybe prior to enabling the alarm it is required to set the duration for how long the alarm will be active once triggered. Thar probably is done using the DURATION_VALUE, which accepts an integer, possibly in seconds.

Alright, i uploaded it to gists.

the values you identified are the same I get as a drop down menu when pushing the “trigger” button in CCU under devices.

Only after selecting audible and visual signal AND pressing the OK button the siren goes off. So I guess there must be another value to trigger the siren, right?

It seems you were using the old script from the pyhomematic repository. This is the new script that produces two separate files. I collect these here to maybe someday provide a way for automated testing of devices. That’s why I’m asking. Sorry for the inconvenience, but it’s for a good cause. :wink:

Anyways, the screenshot suggest that you have to set all 3 values I have mentioned above. So first the type for audio and visual, then the duration. My assumption is, that sending the duration kicks of the alarm once the other two are set.

That being said, it might be required that the three commands have to be sent very quickly, ore even using a multicall. Multicalls aren’t supported with the current HomeMatic integration though.

Here is a Python Script without multicall, which sets the three values quickly:

#!/bin/python3
from xmlrpc.client import ServerProxy

CCU = "http://1.2.3.4:2010"
DEV_ADDR = "00245BE9968949:3"
PARAM_1 = "ACOUSTIC_ALARM_SELECTION"
VALUE_1 = 1 # FREQUENCY_RISING
PARAM_2 = "OPTICAL_ALARM_SELECTION"
VALUE_2 = 1 # BLINKING_ALTERNATELY_REPEATING
PARAM_3 = "DURATION_VALUE"
VALUE_3 = 5 # 5 Seconds

PROXY = ServerProxy(CCU)

def trigger():
	PROXY.setValue(DEV_ADDR, PARAM_1, VALUE_1)
	PROXY.setValue(DEV_ADDR, PARAM_2, VALUE_2)
	PROXY.setValue(DEV_ADDR, PARAM_3, VALUE_3)

trigger()

And here is a script which does this using the multicall:

#!/bin/python3
from xmlrpc.client import ServerProxy, MultiCall

CCU = "http://1.2.3.4:2010"
DEV_ADDR = "00245BE9968949:3"
PARAM_1 = "ACOUSTIC_ALARM_SELECTION"
VALUE_1 = 1 # FREQUENCY_RISING
PARAM_2 = "OPTICAL_ALARM_SELECTION"
VALUE_2 = 1 # BLINKING_ALTERNATELY_REPEATING
PARAM_3 = "DURATION_VALUE"
VALUE_3 = 5 # 5 Seconds

PROXY = ServerProxy(CCU)

def trigger():
	multicall = MultiCall(PROXY)
	multicall.setValue(DEV_ADDR, PARAM_1, VALUE_1)
	multicall.setValue(DEV_ADDR, PARAM_2, VALUE_2)
	multicall.setValue(DEV_ADDR, PARAM_3, VALUE_3)
	multicall()

trigger()

Please try out those scripts with your IP address. I have already inserted the device address you have posted above. Note: I haven’t tested these scripts, so there might be some syntax error I haven’t noticed.

If the first script is working, then it should be doable in Home Assistant using an automation with multiple service calls.

If only the second script is working, then it may be possible one day once the new integration is ready and has added support for multicalls (although we currently don’t know how we should implement them).

If both scripts don’t work I actually don’t know which other parameter has to be set to trigger the alarm. You could head over to the HomeMatic Forum and ask if someone knows how to do this.

Edit:

As a workaround you probably also can add a program in debmatic which gets triggered by one of the internal virtual keys. These can be pressed using the homematic.virtualkey service.

no worries. I am happy your helping me out! :slight_smile:

first file:

second file:

there is even a third file being created by your script called device_cache.json. Is that one needed as well?

I tried both of your scripts. The one without multicall finishes without any output nor triggering the siren.
The one with multicall gives me the following error message:

user@server:~/pyhomematic$ python3 hmip-asir_w-multi.py
Traceback (most recent call last):
  File "/home/mgmtuser02/pyhomematic/hmip-asir_w-multi.py", line 22, in <module>
    trigger()
  File "/home/mgmtuser02/pyhomematic/hmip-asir_w-multi.py", line 20, in trigger
    multicall()
  File "/usr/lib/python3.9/xmlrpc/client.py", line 886, in __call__
    return MultiCallIterator(self.__server.system.multicall(marshalled_list))
  File "/usr/lib/python3.9/xmlrpc/client.py", line 1116, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python3.9/xmlrpc/client.py", line 1456, in __request
    response = self.__transport.request(
  File "/usr/lib/python3.9/xmlrpc/client.py", line 1160, in request
    return self.single_request(host, handler, request_body, verbose)
  File "/usr/lib/python3.9/xmlrpc/client.py", line 1176, in single_request
    return self.parse_response(resp)
  File "/usr/lib/python3.9/xmlrpc/client.py", line 1346, in parse_response
    p.close()
  File "/usr/lib/python3.9/xmlrpc/client.py", line 454, in close
    parser.Parse(b"", True) # end of data
xml.parsers.expat.ExpatError: no element found: line 1, column 0

I run both script directly from the server debmatic is running on.

No, just the two you have posted. Thanks. :+1:

Regarding the scripts:
There is a fourth parameter: DURATION_UNIT. I didn’t expect this to be relevant. But maybe it also has to be included. It has the following options:

"VALUE_LIST": [
"S",
"M",
"H"
]

So maybe it works if you add this as well:

PARAM_4 = "DURATION_UNIT"
VALUE_4 = 0 # Seconds
...
PROXY.setValue(DEV_ADDR, PARAM_4, VALUE_4)
# Or with multicall
multicall.setValue(DEV_ADDR, PARAM_4, VALUE_4)

Regarding the error with the multicall: I actually never have done one of those, so it might be that they don’t work properly with CCUs. I know technically they are implemented. But perhaps they are buggy.

So if even with the 4th parameter it doesn’t work, it either has to be done via a program running directly on the CCU, or someone else who owns such a device has to share some insight. The paramsets you have posted don’t reveal anything else that sound like it could be used to trigger the siren.

good news. :slight_smile:

I did some testing with virtual keys in CCU and created direct device connections as well as CCU programs. Both ways work, but I still have to do some testing, since triggering via virtual key strokes seems to be somehow unreliable at the moment.
However, when setting up a CCU program to trigger the siren, I figured out that the order of commands matters. Based on that, I changed the order of commands in your script and it does work. :+1:

#!/bin/python3
from xmlrpc.client import ServerProxy

CCU = "http://localhost:2010"
DEV_ADDR = "00245BE9968949:3"
PARAM_1 = "DURATION_UNIT"
VALUE_1 = 0
PARAM_2 = "DURATION_VALUE"
VALUE_2 = 3
PARAM_3 = "ACOUSTIC_ALARM_SELECTION"
VALUE_3 = 0
PARAM_4 = "OPTICAL_ALARM_SELECTION"
VALUE_4 = 4

PROXY = ServerProxy(CCU)

def trigger():
        PROXY.setValue(DEV_ADDR, PARAM_1, VALUE_1)
        PROXY.setValue(DEV_ADDR, PARAM_2, VALUE_2)
        PROXY.setValue(DEV_ADDR, PARAM_3, VALUE_3)
        PROXY.setValue(DEV_ADDR, PARAM_4, VALUE_4)

trigger()

The multicall script still doesn’t work but I assume, that’s not really necessary anymore.

So I understand, I have a couple of options for triggering:

  1. sending out these four parameters via homematic.set_device_value (haven’t tested this yet)
  2. trigger a virtual key via homematic.virtualkey which is connected to a direct device connection (tested)
  3. trigger a virtual key via homematic.virtualkey which is connected to a ccu program (tested)

I’m gonna do some more testing but are there any known advantages/disadvantages for these three options?

Thank you for your research. Glad you found a solution.

Regarding your question: My personal preference would actually be to use the homematic.virtualkey method, because it only depends on a single request to the CCU. With several requests done within an automation you never know if it might abort for some reason, or a delay is introduced by something else. So the single request should be the most reliable approach.

Going that rough, I would stick to the direct device connection. It could also be, that the logic part on the CCU crashes or is slow for some reason. The direct connections on the other hand are quite robust. In fact, in my setup I always try to use direct connections for as much as possible. Depending on what they are doing they even work when the CCU or Home Assistant are down, and they consume less wireless traffic.

Of course for some devices / automations they aren’t the best solution. But if you have a KeyMatic for example, you really always want it to work. And the KeyMatic + Keyfobs are battery powered. So with direct connections you can even unlock you smart door when there is a power outage. So, yeah, in my opinion they are the best thing about HomeMatic.

Thank you for guiding me to make it work.

I settled down with several virtuals keys and direct device connetions. This seems, as you said, to be the most realiable way for triggering this device. Even though, I always need the CCU to be online, since it is a virtual key. But that’s not an issue, because my entire system is backed up by an ups.

btw. the sabotage switch also works well with HA when creating a system variable in Homematic.

Best
Pete