esphome / esphome/feature-requests
DSMR Component Should Also Publish Timestamp from Parsed TimestampedFixedValue of "gas_delivered"
- Dominant language
- No language data
- Stars
- 450
- Forks
- 29
- PR merge metrics
- No merged PRs in 30d
Description
**Describe the problem you have/What new integration you would like**
Currently the DSMR Component throws away the timestamp of the gas_delivered field of a parsed DSMR (v5.x) telegram. This makes it harder to track usage over time (not knowing after for instance a reboot of certain systems when the last received value was actually consumed in this case).
**Please describe your use case for this integration and alternatives you've tried:**
Its a piece of data that's handy for monitoring when the actual last-read usage from the gas meter was consumed instead of "assuming" it was right now. I think it could (should) be included when a user wants to read the gas_delivered field.
**Additional context**
In the past I have made my own crude implementation of a P1 DSMR Reader using ESPHome that was capable of parsing gas_delivered into "gas_delivered" and "gas_timestamp" (see https://github.com/thomasvnl/P1DSMRReader-ESPHome/blob/main/uartp1reader.h#L239), but this code no longer works after ESPHome v2021.10.0. Now I've come at a point in time that I had to update my thus far working/running homebrew DSMR meter and I had to use the newer DSMR Component (which is real nice by the way) because of issues trying to install older ESPHome versions, and this was the only thing that I felt was lacking in comparison to my own implementation.
I don't see an easy way to add this to esphome as of yet, using the now built-in DSMRComponent. Anyone has a brilliant idea how this field can be included too when reading gas_delivered from the DSMR component?
What I had in the past was this:

Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading the DSMR component and compare its handling of gas_delivered with the referenced uartp1reader.h implementation, especially the gas_timestamp output. Trace how parsed values become published component data. Done means the timestamp associated with gas_delivered is available to users without losing the existing value.
Written by the indexing model from the issue text.
Assessment
- Domain
- embedded-iot
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100