Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix OSRAM Classic A60 RGBW crash #7608

Merged
merged 1 commit into from Feb 15, 2024
Merged

Conversation

manup
Copy link
Member

@manup manup commented Feb 15, 2024

The light does crash when ZCL attribute reporting is configured and the binding table is queried. Likely resulting in a watchdog reboot after which the lights turns on in full brightness.

The fix here is to use polling instead of attribute reporting as well as to disable query of the binding table.

Related #7546

The light does crash when ZCL attribute reporting is configured and the binding table is queried. Likely resulting in a watchdog reboot after which the lights turns on in full brightness.

The fix here is to use polling instead of attribute reporting as well as to disable query of the binding table.

Related dresden-elektronik#7546
@manup manup added the Fix label Feb 15, 2024
@manup manup added this to the v2.26.1-beta milestone Feb 15, 2024
@manup manup merged commit cd0fdd4 into dresden-elektronik:master Feb 15, 2024
1 check passed
@ebaauw
Copy link
Collaborator

ebaauw commented Feb 15, 2024

Is the crash caused by (one time) creating the bindings and reporting configuration to by (multiple times) querying these? In other words: does the crash occur since the introduction of the DDF and final state machine actively checking the binding and reporting? In that case, wouldn’t it be better to do a passive check (see if reports arrive), as is done for the polling as safety net?

@manup
Copy link
Member Author

manup commented Feb 15, 2024

The creation of the bindings and also the reporting does work, in fact my test light still sends the reports without crashing.
As I understand the sniffer logs the querying of the binding table makes trouble, and also the verification of the ZCL reporting configuration lets the light crash after a while.

With the addition { "supportsMgmtBind": false } to the DDF the binding table queries are suppressed, and the state machine works like the legacy passive checking for reports (which it always does).

However the verification of the ZCL reporting configuration is still done to check that the values are indeed the ones specified in the DDF. This is usually only done once after startup and in case the passive checking detects that something isn't setup. Normally a nice feature that also allows to update a DDF with new saner values if needed.
This can't be deactivated, and currently I don't plan to do so as it would complicate the code just to workaround a few broken devices (so far only Osram and here only a selection of them).

I think using polling here is a ok'ish tradeoff for now. I don't think the old E27 and GU10 lights will be fixed by Osram but current lights on the market, if they show the problems too, should be reported to Osram so they can work on a bug fix firmware.

@Finne75
Copy link
Contributor

Finne75 commented Feb 16, 2024

I think this will solve a long-standing mistery of lights switching on unsolicitadely :) - apologies for non-technical comment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants