Skip to content

Releases: yottabytesolutions/gombus

Release list

v1.1.0

Choose a tag to compare

@ichnograph ichnograph released this 01 Aug 15:18
97e315b

Bus scanning, secondary addressing, fixed data responses, wireless M-Bus decoding and a full CLI.

Added

  • Bus scanning. Client.ScanPrimary sweeps a range of primary addresses. Client.ScanSecondary finds meters by secondary address with a wildcard search that fixes the identification number one BCD digit at a time.
  • Secondary addressing. Client.SelectSecondary points address 0xFD at one meter and Client.ReadBySecondary reads it, for buses where primary addresses were never assigned.
  • Fixed data responses (CI=0x73). They decode into the same DecodedFrame with one record per counter, so every matcher and query works on them unchanged.
  • wmbus package: decode-only wireless M-Bus per EN 13757-4 and OMS. Frame format A and B with CRC verification, transport headers with CI 0x72, 0x7A and 0x78, and security modes 0, 5 and 7. Wired and wireless records are the same type.
  • mbusctl CLI with scan, read and set-address subcommands over TCP and serial, and a -json output mode.
  • Runnable godoc examples for decoding, the record query API, scanning, secondary reads and wireless decoding.

Fixed

  • VIF extension types no longer collide with primary VIF types in Unit.Type. Error-flags records used to match MatchType(VIFVolume). Extension types now carry a 0x100/0x200 offset, named by the new VIFExt constants.

Full changelog: https://github.com/yottabytesolutions/gombus/blob/main/CHANGELOG.md

go get github.com/yottabytesolutions/gombus@v1.1.0

v1.0.0

Choose a tag to compare

@ichnograph ichnograph released this 31 Jul 18:30

First stable release.

Go library for reading M-Bus (Meter-Bus, EN 13757) meters over TCP or serial.

Highlights since the fork:

  • Decoding errors are explicit. Undecodable values (BCD filler, invalid dates) set ValueErr on the record instead of silently producing a zero, and structural errors fail the frame with ErrInvalidFrame.
  • VIF type codes (VIFEnergyWh, VIFPowerW, ...) and record function names (FunctionInstantaneous, ...) are exported, so records can be selected without magic numbers.
  • Record lookup helpers on DecodedFrame: Find/FindAll with composable matchers, plus Record, Records, Value and Timestamp for the common cases. Historic values, tariff registers and sub-device readings are reachable without scanning DataRecords by hand.

Install:

go get github.com/yottabytesolutions/gombus@v1.0.0