-
Notifications
You must be signed in to change notification settings - Fork 20
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
added files for eBZ DD3 2R06 #13
Conversation
added files for eBZ DD3 2R06 electric meter
hello. thanks for submission and sorry for not merging yet , but i like to merge working examples. did you ever find out why sml_server is not able to decode? unfortunately , my time is too limited to dig into it myself |
I just checked the data using the sml library I'm writing (sml-rs), and it seems to be fine. One caveat is that I can currently only check the transport layer because the actual parser is still a work in progress. But looking at the transport layer, the data contains a single message that correctly validates using the contained checksums. I would therefore say that the data is correct and can be merged. |
I dug a little deeper (using the work-in-progress parser in sml-rs). It seems like the message is fine except that the crc within the SML Message doesn't seem to be right. It's possible that this particular smart meter uses another crc variant. When disabling the crc check, I can decode the message. Here's some debug output:
The output looks good to me. It's odd that the server_id is set to all-zero, but it's quite possible that the meter doesn't populate this field. According to the data, the meter's total energy consumption is 450091 Wh. @eng1neer-com does the output look good to you? |
cool, thanks for the analysis. wouldn't it make sense to implement optional disabling of crc checksum checking in libsml/sml_server ? @eng1neer-com , could you provide a longer/larger sample of binary data which contains multiple sml messages? that would perhaps make it easier to decide if this is a checksum error or if it is different checksum algorithm. adding error message like this should be helpful, too. being curious why it's missing at all. will submit that to libsml if you think it's good/ok sml_message.c:
|
Not sure about that. CRC mismatches almost always indicate corrupted data and allowing users to bypass them could lead to corrupted data being displayed. I'd prefer displaying warnings for messages that have a CRC mismatch (possibly with the calculated / expected values).
LGTM. You could probably add the actual crc values (calculated vs. expected) and also include that the message is discarded due to the mismatch. Something along the lines of "discarding message due to checksum mismatch" maybe?
That'd be great, +1 from me! |
BTW, we already have data from an eBZ DD3 2R06 in the repo (see here). It'd be interesting to know why the other data set works fine. |
@eng1neer-com just checking in, any chance you could provide another dump for us? |
Hi, unfortunately I currently have no access to this particular meter. I will try to get another measurement next time. |
sorry, but this is invalid message data, so no merge |
note that one such case is already implemented: |
I added example files for electric meter eBZ DD3 2R06.
I created the binary file based on the example:
cat yoursmldump.hex | xxd -r -p >yoursmldump.bin
But I was not able to test it with the sml-server example (no output was shown).
cat eBZ_DD3_2R06.bin | ./sml_server - | head -n10