Hi @nayelyz
Since that day, when the problem could be easily reproduced, I have not been able to reproduce the problem again to give more information.
I think it has to do with the filters, the propagation of repetitive or frequent events, which have been introduced into the platform.
If an event is lost at some moment and it does not reach the App and it reaches other endpoints, they become desynchronized and remain in that way until who knows when.
For example, when the driver sends an event of a periodic attribute report, which in switches are by default every 300 seconds, those events emitted by the driver do not all reach the different endpoints on the platform.
Since the event has state_change = false
, then if the reported state has not changed from the previous value, that event:
- Will not be updated in the event history
- Will not be updated in the attribute status in advanced users
- Will not be updated in the App details view
However, if an unknown amount of time has passed, I’ve seen around 1 hour or less, even though state_change = false
and the state has not changed, that new event:
- Will have its timestamp updated in the advanced users attribute status web and consequently should also be updated in the App
- Will not be updated in the event history.
This can be easily verified by looking at the logs with the CLI and the timestamps on the advanced users web, device attributes.
In fact, the last time the On state of the real device and the attribute on the web got out of sync with the state in the App, I left it like that and it synchronized itself after about an hour or so. When some filter met the condition and let the On state propagate and it reached the App again.
This makes no sense, because when it was out of sync and you did several refreshes in the App and you could see in the CLI logs that the driver emitted the On value, it never reached the App, because in the advanced users web the attribute already had the On state and the App gave a network error.
If there had not been something that prevented this periodic or manual refresh of the state, with a simple App refresh everything would have been synchronized.
These filters drive me crazy when I want to debug changes in a driver sometimes.
For example, I am trying to fix the forbidden information in HTML of the clusters and command class of the devices in zigbee and zwave thing driver.
The deviceInfo capability, which I used to send that information in HTML, now when I send it in plain text there is something that prevents that attribute from being seen in the event history, even though I see it in the App and on the advanced users web.
I created another new capability (commandClass), identical and I send the same information to both and the new capability is updated in all endpoints, Attribute status in web, event history and app and yet the deviceInfo attribute never appears in the event history.
It must be that the AI that Samsung is going to apply to its entire platform is already underway and those of us who are not so intelligent do not understand it well.