Heiman Smoke Sensor - no state updates - after upgrade from stable deconz 2.12 --> 2.21.2

He ?
"fn": "zcl"
Is the old synthax, all DDF are updated with "fn": "zcl:attr"
It’s the same thing, just an update, but it mean you have an old version or custom DDF not in date. So can be the problem.

A report on battery, so on cluster 0x0001, attribute 0x0021, will be managed by “config/battery”, so it will trigger a “config” websocket.

For information, if you edit the bind/report on a DDF, better to re-include the device, no need to delete it before.
The gateway NEED to configure the new setting and thoses devices are slepper, so you know the story… During the inclusion, the device is awake and deconz make all settings.

No, you misunderstood me.
“fn”:“zcl” was from the old ddfs. I did not use them - I use the new one, but that was the only difference that I could find. In new and old ddfs.

Re-include: without deleting.
I pushed connect button and read basis, power and ias cluster from the existing sensor.

Is that enough - Is that what you meant? Or did I forget something?

After deCONZ restart today - It is like the other days, too - I get exactly one “config” message from all smoke sensors in the first hour and after this only “attr” messages every 2 hours.

Ha ok, so it’s not important, no change on working mode, it’s just cosmetic

Is that enough - Is that what you meant? Or did I forget something?

Deconz configure device during inclusion, when it detect them, and later there is some watchdog during the running
Restart deconz change nothing, the setting is on the device.

The problem is not the detection, but the configuration, deconz need to send request if you use new setting in the DDF, but this is only if you edit a DDF

Like I have said, if I take the device “SmokeSensor-EF-3.0”, all is fine for me

      "report": [
        {
          "at": "0x0021",
          "dt": "0x20",
          "min": 300,
          "max": 7200,
          "change": "0x00000002"
        }
      ]
    },

With this setting you need to have a config/battery notification minium every 2h.

This a PR in waiting list ATM about websocket notifications, but I don’t think you are concerned Fix ghost events for sensors by manup · Pull Request #8189 · dresden-elektronik/deconz-rest-plugin · GitHub

I have the same report part in my ddf. But I don’t get config/battery
I get only this every 2 hours:

18:24:41:056 Websocket 192.168.1.45:58956 send message: {"attr":{"ddf_hash":null,"ddf_policy":"latest_prefer_stable","lastannounced":"2025-04-27T11:46:59Z","lastseen":"2025-04-27T16:24Z","manufacturername":"HEIMAN","modelid":"SmokeSensor-EF-3.0","name":"OG.Ar.Rauchmelder","nwkaddress":42984,"swversion":"2020.7.10","type":"ZHAFire","uniqueid":"80:4b:50:ff:fe:ff:e8:06-01-0500","zonetype":40},"e":"changed","id":"173","r":"sensors","t":"event","uniqueid":"80:4b:50:ff:fe:ff:e8:06-01-0500"} (ret = 433)

And that message is ignored by fhem.

{
  "attr": {
    "ddf_hash": null,
    "ddf_policy": "latest_prefer_stable",
    "lastannounced": "2025-04-27T11:46:59Z",
    "lastseen": "2025-04-27T16:24Z",
    "manufacturername": "HEIMAN",
    "modelid": "SmokeSensor-EF-3.0",
    "name": "OG.Ar.Rauchmelder",
    "nwkaddress": 42984,
    "swversion": "2020.7.10",
    "type": "ZHAFire",
    "uniqueid": "80:4b:50:ff:fe:ff:e8:06-01-0500",
    "zonetype": 40
  },
  "e": "changed",
  "id": "173",
  "r": "sensors",
  "t": "event",
  "uniqueid": "80:4b:50:ff:fe:ff:e8:06-01-0500"
}

Honnestly IDK what was updated, probably just “lastseen”, but I don’t think the device send a report for nothing.
Have you tried to enable more logging to see wich one zigbee request provoke this notification ?

18:47:02:833 	asdu (length: 5): 102D0B0A00
18:47:02:852 APS-DATA.confirm id: 177, status: 0x00 SUCCESS
18:47:02:854 APS-DATA.confirm request id: 177 -> erase from queue
18:47:02:857 aps request id: 177 finished, erase from queue
18:47:03:020 APS-DATA.indication srcAddr: 0xDF4F, srcEp: 0x01 dstAddrMode: 2, profile: 0x0104, cluster: 0x0001, lqi: 255, rssi: -71
18:47:03:022 	asdu: 184e0a210020c4
18:47:03:026 [INFO] - No button map for: SmokeSensor-EF-3.0, unicast to: 0x0000, endpoint: 0x01, cluster: 0X0001, command: 0X0A, payload: 210020C4, zclSeq: 78
18:47:03:028 ZCL attribute report 0x84FD27FFFE045C89 for cluster: 0x0001, ep: 0x01, frame control: 0x18, mfcode: 0x0000 
18:47:03:031 	payload: 210020c4
18:47:03:034 Websocket 192.168.1.120:48294 send message: {"attr":{"ddf_hash":null,"ddf_policy":"latest_prefer_stable","lastannounced":null,"lastseen":"2025-04-27T16:47Z","manufacturername":"HEIMAN","modelid":"SmokeSensor-EF-3.0","name":"DB.Rauchmelder","nwkaddress":57167,"swversion":"2020.7.10","type":"ZHAFire","uniqueid":"84:fd:27:ff:fe:04:5c:89-01-0500","zonetype":null},"e":"changed","id":"145","r":"sensors","t":"event","uniqueid":"84:fd:27:ff:fe:04:5c:89-01-0500"} (ret = 414)
18:47:03:037 Websocket 192.168.1.45:58956 send message: {"attr":{"ddf_hash":null,"ddf_policy":"latest_prefer_stable","lastannounced":null,"lastseen":"2025-04-27T16:47Z","manufacturername":"HEIMAN","modelid":"SmokeSensor-EF-3.0","name":"DB.Rauchmelder","nwkaddress":57167,"swversion":"2020.7.10","type":"ZHAFire","uniqueid":"84:fd:27:ff:fe:04:5c:89-01-0500","zonetype":null},"e":"changed","id":"145","r":"sensors","t":"event","uniqueid":"84:fd:27:ff:fe:04:5c:89-01-0500"} (ret = 414)
18:47:03:042 DEV Binding read bindings /devices/0x84FD27FFFE045C89
18:47:03:045 APS-DATA.request id: 179, addrmode: 0x03, addr: 0x84FD27FFFE045C89, profile: 0x0000, cluster: 0x0033, ep: 0x00 -> 0x00 queue: 0 len: 2 tx.options 0x04
18:47:03:047 	asdu (length: 2): A800
18:47:03:096 skip create link for 0x4BDE (lqi: 0) - 0xEA8C (lqi: 51)
18:47:03:537 DEV Tick: poll enter 0x000D6FFFFE179EAC, managed = 1
18:47:03:545 rule event /config/localtime: 18:47:02.537 -> 18:47:03.537 (1000ms)
18:47:03:546 DEV Poll Idle nothing to poll /devices/0x000D6FFFFE179EAC
18:47:03:547 DEV Binding read bindings /devices/0x000D6FFFFE179EAC
18:47:03:550 DEV Tick: poll done 0x000D6FFFFE179EAC
18:47:03:551 DEV Tick: poll leave 0x000D6FFFFE179EAC
18:47:03:554 APS-DATA.request id: 182, addrmode: 0x03, addr: 0x000D6FFFFE179EAC, profile: 0x0000, cluster: 0x0033, ep: 0x00 -> 0x00 queue: 1 len: 2 tx.options 0x04

Here is another on with more code around…
Which logging switches would be useful??? I turned on INFO/2 ERROR/2 DEV APS APS_L2 ZCL

No need more, it’s fine

18:47:03:028 ZCL attribute report 0x84FD27FFFE045C89 for cluster: 0x0001, ep: 0x01, frame control: 0x18, mfcode: 0x0000 
18:47:03:031 	payload: 210020c4
18:47:03:034 Websocket 192.168.1.120:48294 send message: {"attr":{"ddf_hash":null,"ddf_policy":"latest_prefer_stable","lastannounced":null,"lastseen":"2025-04-27T16:47Z","manufacturername":"HEIMAN","modelid":"SmokeSensor-EF-3.0","name":"DB.Rauchmelder","nwkaddress":57167,"swversion":"2020.7.10","type":"ZHAFire","uniqueid":"84:fd:27:ff:fe:04:5c:89-01-0500","zonetype":null},"e":"changed","id":"145","r":"sensors","t":"event","uniqueid":"84:fd:27:ff:fe:04:5c:89-01-0500"} (ret = 414)

We have the battery report, Cluster 0x0001, attribute 0x0021, and the value 0xC4
But nothing in the websocket.
There is a problem, I m asking to other devs.

1 Like

Ha yes, If you can get the same thing but with the flag “DDF” too ?
As the device is now managed by DDF perphaps we can see something bad inside too ?

Sure, needs a moment… now with ddf ticked - but I can see no more information…

19:44:09:111 	asdu: 185d0a210020c8
19:44:09:112 80:4b:50:ff:fe:ff:0b:1c-01-0500/config/battery expression: Item.val = Attr.val / 2 --> 100
19:44:09:113 [INFO] - No button map for: SmokeSensor-EF-3.0, unicast to: 0x0000, endpoint: 0x01, cluster: 0X0001, command: 0X0A, payload: 210020C8, zclSeq: 93
19:44:09:115 ZCL attribute report 0x804B50FFFEFF0B1C for cluster: 0x0001, ep: 0x01, frame control: 0x18, mfcode: 0x0000 
19:44:09:116 	payload: 210020c8
19:44:09:117 Websocket 192.168.1.120:48294 send message: {"attr":{"ddf_hash":null,"ddf_policy":"latest_prefer_stable","lastannounced":null,"lastseen":"2025-04-27T17:44Z","manufacturername":"HEIMAN","modelid":"SmokeSensor-EF-3.0","name":"Wz.KN.Rauchmelder","nwkaddress":54927,"swversion":"2020.7.10","type":"ZHAFire","uniqueid":"80:4b:50:ff:fe:ff:0b:1c-01-0500","zonetype":null},"e":"changed","id":"133","r":"sensors","t":"event","uniqueid":"80:4b:50:ff:fe:ff:0b:1c-01-0500"} (ret = 417)
19:44:09:120 Websocket 192.168.1.45:58956 send message: {"attr":{"ddf_hash":null,"ddf_policy":"latest_prefer_stable","lastannounced":null,"lastseen":"2025-04-27T17:44Z","manufacturername":"HEIMAN","modelid":"SmokeSensor-EF-3.0","name":"Wz.KN.Rauchmelder","nwkaddress":54927,"swversion":"2020.7.10","type":"ZHAFire","uniqueid":"80:4b:50:ff:fe:ff:0b:1c-01-0500","zonetype":null},"e":"changed","id":"133","r":"sensors","t":"event","uniqueid":"80:4b:50:ff:fe:ff:0b:1c-01-0500"} (ret = 417)
19:44:09:123 DEV Binding read bindings /devices/0x804B50FFFEFF0B1C
19:44:09:125 APS-DATA.request id: 230, addrmode: 0x03, addr: 0x804B50FFFEFF0B1C, profile: 0x0000, cluster: 0x0033, ep: 0x00 -> 0x00 queue: 1 len: 2 tx.options 0x04
19:44:09:126 	asdu (length: 2): D300
19:44:09:385 APS-DATA.confirm id: 174, status: 0xF0 TRANSACTION_EXPIRED
19:44:09:387 APS-DATA.confirm id: 174 status: transaction expired
19:44:09:396 DEV Poll Busy /devices/0xD44867FFFEB4607D APS-DATA.confirm id: 174, ZCL seq: 152, status: 0xF0
19:44:09:398 DEV Poll Idle enter /devices/0xD44867FFFEB4607D
19:44:09:537 rule event /config/localtime: 19:44:08.536 -> 19:44:09.537 (1001ms)
19:44:10:111 APS-DATA.confirm id: 230, status: 0x00 SUCCESS
19:44:10:167 APS-DATA.indication srcAddr: 0xD68F, srcEp: 0x00 dstAddrMode: 2, profile: 0x0000, cluster: 0x8033, lqi: 255, rssi: -68
19:44:10:168 	asdu:

So it seem I was wrong.
I can’t test on my side because I have 95% of “attr” notification, so need to use filter and wait for the good one, but from Manup, there is no notification because there is no change.
“config” notifications are send only if there is a battery change for exemple.

So it can explain why it don’t work for this device, but not why it work for others …

The websocket notification was changed since your previous versions, and Manup is on it again ATM, so it will be others changes on next one.

It’s possible the FHEM dev will be forced to use the “attr” to set his own “lastseen”. If “state” and “config” are not send without change, it’s possible you will not have notification at all (a smoke sensor can be untouched during long time), except the “attr”.
But it’s not sure yet, this part is WIP ATM.

But why I get then every 2 hours the attr message - what is changed there? Only lastseen!
But it’s triggered by config/battery ddf 7200 timer. Than I would prefer a non changing battery value with a new timestamp.

By the way my new IKEA Parasoll Window open/closed sensor, the reason why I upgraded deCONZ - seems to generate these “only attribute” messages, too.

In which version / What will be the next version with Manups changes?

Thanks for your efforts :wink:

If you have no change on “state” or “config” (the battery level don’t move) you will not have them in a notification, but as the device make a request it update the “lastseen”, so you have a “attr” notification.

ATM there is this PR Fix ghost events for sensors by manup · Pull Request #8189 · dresden-elektronik/deconz-rest-plugin · GitHub
And Reduce Websocket event pressure due attr/lastseen by manup · Pull Request #8193 · dresden-elektronik/deconz-rest-plugin · GitHub

But he is still on it.

1 Like