TRÅDFRI remote dies without low battery being reported

I’m running OH2.5 M 4 on a Raspberry Pi 3B+.

Not sure if this is related to the current firmware on TRÅDFRI 5-button remotes (version 2.3.014) or if this is something that the TRÅDFRI binding should do, but in the past few weeks several remotes died of depleted batteries without notice.

Fortunately I’m persisting battery levels, so I’ve seen that one remote suddenly went from 16% to 100%, which should ring a bell.

The main problem is that the TRÅDFRI remotes will eventually lose their configuration if the batteries are low for a prolonged time (1-2 days maybe). This means that I then need to factory reset the remote and reassign it to the proper room. This means that the Zigbee identifier changes, which in turn means that I have to add the “new” thing and update my items definitions.

I suppose the TRÅDFRI binding could report if a thing hasn’t been seen for a certain amount of time?

Or you could add watchdog items yourself with the expire binding and sending a notification of some kind

Not sure if that will work unless the TRÅDFRI binding allows e.g. the battery and battery_low related items to be updated by the expire binding configuration (as in expire=12h"which would set the item’s state to UNDEF if nothing was heard from the thing within 12h) without ping-pong state updates happening due to the binding’s way of working.

Otherwise I’ll have to resort on using proxy items that convey the information. I could then define a rule or use the expire binding to report problems, but then that won’t prevent batteries from running low unnoticed.

Use a prxo item
When the tradfi item receive update, reset the watchdog timer
When the timer expires send a message

I do the same for some broadlink devices:

rule "Large Bedroom Sockets Watchdog"
when
    Item LargeBedroom_Socket1 received update
then
    //logInfo("TEST","LargeBedroom_Sockets_Watchdog updated to ON")
    LargeBedroom_Sockets_Watchdog.postUpdate(ON)
end

rule "Small Bedroom Sockets Watchdog"
when
    Item SmallBedroom_Socket1 received update
then
    //logInfo("TEST","SmallBedroom_Sockets_Watchdog updated to ON")
    SmallBedroom_Sockets_Watchdog.postUpdate(ON)
end

rule "Reset Large Bedroom Timer"
when
    Item LargeBedroom_Sockets_Watchdog received command OFF or
    Item SmallBedroom_Sockets_Watchdog received command OFF
then
    //Send Notification
end