let berry drivers provide "after_teleperiod" handlers #21351
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is useful if you want to periodically report the state of something handled separately to the sensors output.
Description:
I'm working on Yet Another(tm) driver for micradar devices, the R60ASM1 in particular, which seems to work in a similar fashion to a TuyaMCU device in that it has a concept of independent datapoints that report at different times. Because there are so many different datapoints, the driver relays their updates as separate mqtt topics, (eg, tele/%topic%/R60ASM1/BreathingRate or tele/%topic%/R60ASM1/MonitorSwitch) rather than shove several dozen bits of info into the SENSORS or STATE payloads. Some datapoints are updated very infrequently, so it's handy to report them every teleperiod so stupid downstream systems (eg, HA) don't forget what's going on.
C drivers can hook
FUNC_AFTER_TELEPERIOD
for similar reasons. This extends it to Berry drivers too.Checklist:
NOTE: The code change must pass CI tests. Your PR cannot be merged unless tests pass