thingsboard
thingsboard copied to clipboard
[WIP][3.4.1] Bugfix coapClientState config update
Pull Request description
issue: https://github.com/thingsboard/thingsboard/issues/7053
General checklist
- [x] You have reviewed the guidelines document.
- [x] PR name contains fix version. For example, "[3.3.4] Hotfix of some UI component" or "[3.4] New Super Feature".
- [x] Description references specific issue.
- [x] Description contains human-readable scope of changes.
- [x] Description contains brief notes about what needs to be added to the documentation.
- [ ] No merge conflicts, commented blocks of code, code formatting issues.
- [x] Changes are backward compatible or upgrade script is provided.
- [ ] Similar PR is opened for PE version to simplify merge. Required for internal contributors only.
Front-End feature checklist
- [x] Screenshots with affected component(s) are added. The best option is to provide 2 screens: before and after changes;
- [x] If you change the widget or other API, ensure it is backward-compatible or upgrade script is present.
- [x] Ensure new API is documented here
Back-End feature checklist
- [x] Added corresponding unit and/or integration test(s). Provide written explanation in the PR description if you have failed to add tests.
- [x] If new dependency was added: the dependency tree is checked for conflicts.
- [x] If new service was added: the service is marked with corresponding @TbCoreComponent, @TbRuleEngineComponent, @TbTransportComponent, etc.
- [x] If new REST API was added: the RestClient.java was updated, issue for Python REST client is created.
The reason why we added a device profile to the configuration class was no ability to verify the configuration using the equals method cause there descriptors fields that use in configuration have the following issue: https://github.com/protocolbuffers/protobuf/issues/7819
I don't like this implementation. You should detect profile changes in a different way. Why the
CoapSessionListener.onDeviceProfileUpdate is not sufficient?
The problem is that you don't have CoapSessionListener for the regular sessions that simply transmit data (no observations)
The problem is that you don't have CoapSessionListener for the regular sessions that simply transmit data (no observations)
Hi @ashvayka, I agree that this is the root cause of the issue. There is no way to receive the update on CoapSessionListener.onDeviceProfileUpdate, cause there are no regular sessions. Could you please confirm if we need to implement the regular sessions for the coap clients to track the device profile updates, even when we don't have any observation sessions?