tokio-sunspec

Crates.iotokio-sunspec
lib.rstokio-sunspec
version0.2.2
sourcesrc
created_at2023-03-02 16:55:14.912815
updated_at2023-03-22 13:33:23.467552
descriptionTokio-based SunSpec library
homepagehttps://github.com/lukaskirner/tokio-sunspec
repositoryhttps://github.com/lukaskirner/tokio-sunspec
max_upload_size
id799021
size219,780
Lukas Kirner (lukaskirner)

documentation

README

tokio-sunspec

A pure Rust SunSpec library based on tokio.

Crates.io Apache 2.0 licensed

Features

  • Pure Rust library
  • Non-blocking
  • TCP Client
  • RTU Client
  • Model discovery
  • Type safe SunSpec models
  • Repeating models

Installation

[dependencies]
tokio-sunspec = "*"

Examples

The src/models/ folder contains all pre generated models which may be available by the device. If you need to add your own model you can generate one with included Python script in the scripts folder.

TCP Connect example for SMA Inverter

let socket_addr = "<ip-address>:502".parse().unwrap();
let device_id: u8 = 126;
let start_addr: u16 = 40000;

let mut client = tokio_sunspec::connect_tcp(socket_addr, device_id, start_addr).await?;

let res = client.read_point(model1::Mn).await?;
assert_eq!(res, "SMA");

Protocol-Specification

Fruther notice

This lib only implements the SunSpec part. The connection via modbus is done by the tokio-modbus lib.

License

Copyright (c) 2023 Lukas Kirner

Apache-2.0

Commit count: 33

cargo fmt