Heiman WarningDevice-EF-3.0 siren, no battery and tampered status

Hi,
Why deCONZ doesn’t expose sensor for battery and tampered status for my new siren Heiman WarningDevice-EF-3.0, Firmware: 2021.2.19 like it does for my old siren Heiman WarningDevice Firmware: 2018.03.21 ?
Best regards
Sensors for firmware 2018.03.21:


No sensors for firmware 2021.2.19.

Could be an indication that the manufacturer name or the modelID deviates. You need to check that via REST API, /lights endpoint.

Thank for your reply.
Is that what you mean?
Firmware 2018.03.21:
Siren_old_ok

Firmware 2021.2.19:
Siren_new_ko

No, that’s not what I was after but luckily, that is equally good and confirms my suspicion. Manufacturer name and modelID deviate over the devices.

Can you do a right click on the working one, then choose Edit DDF? In the preview pane you should get a suggested DDF, please share its content.

{
“schema”: “devcap1.schema.json”,
“manufacturername”: “Heiman”,
“modelid”: “WarningDevice”,
“product”: “WarningDevice”,
“sleeper”: false,
“status”: “Draft”,
“subdevices”: [
{
“type”: “$TYPE_WARNING_DEVICE”,
“restapi”: “/lights”,
“uuid”: [
“$address.ext”,
“0x01”
],
“items”: [
{
“name”: “attr/id”
},
{
“name”: “attr/lastannounced”
},
{
“name”: “attr/lastseen”
},
{
“name”: “attr/manufacturername”
},
{
“name”: “attr/modelid”
},
{
“name”: “attr/name”
},
{
“name”: “attr/swversion”
},
{
“name”: “attr/type”
},
{
“name”: “attr/uniqueid”
},
{
“name”: “state/alert”,
“description”: “The currently active alert effect.”,
“default”: “none”
},
{
“name”: “state/reachable”
}
]
},
{
“type”: “ZHAAlarm”,
“restapi”: “/sensors”,
“uuid”: [
“$address.ext”,
“0x01”,
“0x0500”
],
“fingerprint”: {
“profile”: “0x0104”,
“device”: “0x0403”,
“endpoint”: “0x01”,
“in”: [
“0x0000”,
“0x0001”,
“0x0500”
]
},
“items”: [
{
“name”: “attr/id”
},
{
“name”: “attr/lastannounced”
},
{
“name”: “attr/lastseen”
},
{
“name”: “attr/manufacturername”
},
{
“name”: “attr/modelid”
},
{
“name”: “attr/name”
},
{
“name”: “attr/swversion”
},
{
“name”: “attr/type”
},
{
“name”: “attr/uniqueid”
},
{
“name”: “config/battery”,
“description”: “The current device battery level in 0–100 %.”,
“default”: 0
},
{
“name”: “config/enrolled”,
“description”: “State of IAS enrollment process.”
},
{
“name”: “config/on”
},
{
“name”: “config/pending”,
“description”: “Pending tasks to configure the device.”
},
{
“name”: “config/reachable”
},
{
“name”: “state/alarm”,
“description”: “True when an alarm is detected.”
},
{
“name”: “state/lastupdated”
},
{
“name”: “state/lowbattery”,
“description”: “True when the device battery runs low.”
},
{
“name”: “state/tampered”,
“description”: “True when the device tampered alarm was triggered.”
}
]
}
]
}

This DDF should cover both devices. Put it to the custom location as described here DDF cheat sheet · dresden-elektronik/deconz-rest-plugin Wiki · GitHub

{
  "schema": "devcap1.schema.json",
  "manufacturername": ["Heiman", "HEIMAN"],
  "modelid": ["WarningDevice", "WarningDevice-EF-3.0"],
  "vendor": "Heiman",
  "product": "Smart siren HS2WD-E",
  "sleeper": false,
  "status": "Gold",
  "subdevices": [
    {
      "type": "$TYPE_WARNING_DEVICE",
      "restapi": "/lights",
      "uuid": [
        "$address.ext",
        "0x01"
      ],
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "state/alert",
          "default": "none"
        },
        {
          "name": "state/reachable"
        }
      ]
    },
    {
      "type": "ZHAAlarm",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0500"
      ],
      "fingerprint": {
        "profile": "0x0104",
        "device": "0x0403",
        "endpoint": "0x01",
        "in": [
          "0x0000",
          "0x0001",
          "0x0500"
        ]
      },
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "config/battery"
        },
        {
          "name": "config/enrolled"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/pending"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/alarm"
        },
        {
          "name": "state/lastupdated"
        },
        {
          "name": "state/lowbattery"
        }
      ]
    }
  ],
  "bindings": [
    {
      "bind": "unicast",
      "src.ep": 1,
      "dst.ep": 1,
      "cl": "0x0500"
    }
  ]
}

I assume you will release this new DDF file with the next deCONZ update. As I’m not comfortable accessing DFF file through Hassio, I prefer to wait for the next plugin update.
Thank you for your responsiveness.

We’d like to have them tested first.

Modifying ddf files under hassio seems really painful… Sorry but I didn’t succeed!

I will try it thru https://forum.phoscon.de/t/heiman-hs2wd-e-siren-state-alert-always-remains-at-none/2101

1 Like

Is this the same device @BabaIsYou ?

Mine is a Heiman WarningDevice-EF-3.0, Firmware: 2021.2.19 and @Swoop tends to use one DDF for both devices. Then I’ll give a try as soon as I got somme feedback on the other thread.

1 Like

DDF seems to works for me. Created PR #6400

Hi,
Since the deCONZ 2.19.3 update, my 2 Heiman siren, model “WarningDevice-EF-3.0” seems to be well recognized but no sensor linked to the battery goes up in Phoscon as is the case for the Heiman siren, model " WarningDevice".
Best regards.
Siren_2_Deconz_Node_Info
Siren_2_Deconz_Basic
Siren_2_Deconz_Power_Configuration

With DeConz 2.15.2-beta and this DDF

{
  "schema": "devcap1.schema.json",
  "manufacturername": [
    "Heiman",
    "HEIMAN"
  ],
  "modelid": [
    "WarningDevice",
    "WarningDevice-EF-3.0"
  ],
  "vendor": "Heiman",
  "product": "Smart siren HS2WD-E",
  "sleeper": false,
  "status": "Silver",
  "path": "/devices/HS2WD-E.json",
  "subdevices": [
    {
      "type": "$TYPE_WARNING_DEVICE",
      "restapi": "/lights",
      "uuid": [
        "$address.ext",
        "0x01"
      ],
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion",
          "refresh.interval": 84000,
          "read": {
            "at": "0x0006",
            "cl": "0x0000",
            "ep": 0,
            "fn": "zcl"
          },
          "parse": {
            "at": "0x0006",
            "cl": "0x0000",
            "ep": 255,
            "eval": "Item.val = Attr.val",
            "fn": "zcl"
          }
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "state/alert",
          "default": "none"
        },
        {
          "name": "state/reachable"
        }
      ]
    },
    {
      "type": "ZHAAlarm",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0500"
      ],
      "fingerprint": {
        "profile": "0x0104",
        "device": "0x0403",
        "endpoint": "0x01",
        "in": [
          "0x0000",
          "0x0001",
          "0x0500"
        ]
      },
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion",
          "refresh.interval": 84000,
          "read": {
            "at": "0x0006",
            "cl": "0x0000",
            "ep": 0,
            "fn": "zcl"
          },
          "parse": {
            "at": "0x0006",
            "cl": "0x0000",
            "ep": 255,
            "eval": "Item.val = Attr.val",
            "fn": "zcl"
          }
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "config/battery",
          "refresh.interval": 120,
          "read": {
            "at": "0x0021",
            "cl": "0x0001",
            "ep": 1,
            "fn": "zcl"
          },
          "parse": {
            "at": "0x0021",
            "cl": "0x0001",
            "ep": 1,
            "eval": "Item.val = Math.round(Attr.val / 2);",
            "fn": "zcl"
          },
          "default": 0
        },
        {
          "name": "config/enrolled",
          "public": false
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/pending"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/alarm"
        },
        {
          "name": "state/lastupdated"
        },
        {
          "name": "state/lowbattery"
        }
      ]
    }
  ],
  "bindings": [
    {
      "bind": "unicast",
      "src.ep": 1,
      "cl": "0x0001",
      "report": [
        {
          "at": "0x0021",
          "dt": "0x20",
          "min": 120,
          "max": 3600,
          "change": "0x00000001"
        }
      ]
    },
    {
      "bind": "unicast",
      "src.ep": 1,
      "dst.ep": 1,
      "cl": "0x0500"
    },
    {
      "bind": "unicast",
      "src.ep": 1,
      "cl": "0x0502",
      "report": [
        {
          "at": "0x0000",
          "dt": "0x21",
          "min": 30,
          "max": 120
        }
      ]
    }
  ]
}

the sensor is here with battery

Did you activate the use of “Silver” DDF in Control panel ?

Hi,
Tanks for your reply.
You’re right, with using the “Silver” DDF enabled, I get the battery sensors but I lost the tampered binary sensor for the siren!
Is this normal?
Siren 1:

Siren 2:

Best regards.

Ha yes, I don’t see it in the DDF, perhaps not working ?

        {
          "name": "state/tampered"
        },

@Smanar is right, was not included in initial DDF but can easily be added.

Don’t know if it’s supported either. Did you see it working before activating DDF as this device is not « openable » ? Most of devices I know that support tamper switch are devices that you can open to access batteries or config switches … this one is on AC current and has rechargeable battery used as « UPS »

As opening the device destroys it, I didn’t see it working before enabling DDF!
You’r right tamper switch support for this device is not really relevant.