#sma #protocols #data #tokio #embedded-devices #speedwire #energy-meter

no-std sma-proto

A Rust implementation of the SMA Speedwire protocol

2 stable releases

1.0.1 Jul 20, 2024

#1380 in Encoding

AGPL-3.0-or-later

145KB
3K SLoC

sma-proto

A Rust crate that provides an implementation of the SMA Speedwire protocol for building custom applications that communicate with SMA energy-meters or inverters.

Crate Features and Goals

  • High level client for easy integration into applications.
  • Implement energy-meter protocol.
  • Implement inverter data readout protocol.
  • Optional no_std support for embedded devices.
  • Verify messages during de-serialization.
  • Being efficient if possible.
  • Simple Wireshark dissector for debugging on network layer. (Lua script is located in the repository root.)

Rust Feature Flags

  • std (default) — Remove this feature to make the library no_std compatible.
  • client — Enables a tokio based high level client.

Specification

  • Energymeter protocol: link
  • Inverter protocol: reverse-engineered

License

sma-proto is licensed under the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Disclaimer

This project is not affiliated with SMA. All trademarks belong to their respective owners.

Dependencies

~0.4–8.5MB
~70K SLoC