6 releases
Uses new Rust 2021
0.2.2 | Oct 25, 2022 |
---|---|
0.2.1 | Sep 1, 2022 |
0.1.2 | Feb 17, 2021 |
0.1.1 | Mar 24, 2019 |
#390 in Parser implementations
35 downloads per month
Used in slimmemeter
29KB
620 lines
DSMR5
A no-std Rust implementation of the DSMR5/4.2 P1 companion standard.
Intended application
In the first instance using an FTDI -> USB module the smart meter emits its status every second.
How to use
Plug an FTDI cable into your P1 port. Your RX line will probably need to be inverted. Most off-the-shelf P1 FTDI's already have this preconfigured.
Then create your own little crate using something like the serial
crate, and use the Reader
class like so:
let mut port = serial::open(&path).unwrap();
let reader = dsmr5::Reader::new(port.bytes().map(|b| b.unwrap()));
for readout in reader {
let telegram = readout.to_telegram().unwrap();
let state = dsmr5::Result::<dsmr5::state::State>::from(&telegram).unwrap();
println!("{}", state.power_delivered.unwrap());
}
References
Dependencies
~0.3–0.9MB
~20K SLoC