-
-
Notifications
You must be signed in to change notification settings - Fork 114
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
Serveral parsing issues for DSMR v3.0 #22
Comments
I worked around the OBIS id Empty by hacking parse.h. At least I can parse the message.
To get the gasmeter I added a field like this and some manual parsing |
Thanks for your report and examples. I would be happy to get DSMR v3.0 supported correctly. It's been a while since I worked on this, so I had to read up a bit on DSMR again. I noticed that the spec links in my README were broken, so updated the README and added a bunch of spec documents to this repo. CRC Invalid unit for 0-0:17.0.0 Gas meter 0-1:24.3.0 format / obis id empty To support linebreaks at arbitrary places we can do some heuristics about whether a line is really completed (as you're doing now), or perhaps the proper way to parse this is to not decide where one line/entry ends in advance, but simply parse an entry and allow newlines at any point. This does require some structural changes, but I think it should be possible. Second, the format used for the entry is weird. The v3 specification specifies F, but the value shown in your message and the v3 spec example seems to match the "Profile generic" message, which can contain one or more measurements (each with their own id and unit). In both your case and the example, a single Supporting a nested format like this is probably possible, where during the parsing of one field, another field is parsed, but this might also require some significant changes. It's a bit of a pity that these DSMR specs are such a mess, which leaves us guessing... I might not have time soon to pick up these things, but I'm happy to hear your thoughts (if I haven't gone way over your head already with implementation details :-p). |
Thanks for the detailed answer. Invalid unit for 0-0:17.0.0 |
I may have an older unit, as seems the lib does not properly parse my messages
see here what my meter outputs:
The most obvious missing from my meter is the CRC...
The other parsing issues:
and
I worked around the CRC issue, but the gasmeter value on separate line seems more tricky
The text was updated successfully, but these errors were encountered: