An open API service indexing awesome lists of open source software.

https://github.com/nielsbasjes/sunspec-device

Special handling of the Modbus Schema for SunSpec devices
https://github.com/nielsbasjes/sunspec-device

modbus modbus-library solar-energy sunspec

Last synced: 12 months ago
JSON representation

Special handling of the Modbus Schema for SunSpec devices

Awesome Lists containing this project

README

          

# What is this?
The Modbus Schema of a SunSpec device depends on the device itself.
Even a software upgrade can and will change the Modbus Schema.

This SunSpec specific library combines discovering the SunSpec models in a specific device with the officially published SunSpec models to generate the Modbus Schema automatically.

Note that code that wraps "sunspec-models" does make a few corrections to the official models:
- Some typos
- Some unclear labels
- Introduces the `timestamp` type for all Points that are essentially "The number of seconds since 2000-01-01"

# Modbus Schema Toolkit
This is part of the Modbus Schema Toolkit I ([Niels Basjes](https://niels.basjes.nl)) created that makes retrieving data from Modbus based devices a lot easier.

I have split this into 4 projects:
- [Modbus Schema](https://github.com/nielsbasjes/modbus-schema):
- A toolkit and schema definition
- [![License](https://img.shields.io/:license-apache-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)
[![Github actions Build status](https://img.shields.io/github/actions/workflow/status/nielsbasjes/modbus-schema/build.yml?branch=main&label=main%20branch)](https://github.com/nielsbasjes/modbus-schema/actions) [![Maven Central](https://img.shields.io/maven-central/v/nl.basjes.modbus/modbus-schema-parent.svg?label=Maven%20Central)](https://central.sonatype.com/namespace/nl.basjes.modbus)
[![Reproducible Builds](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/jvm-repo-rebuild/reproducible-central/master/content/nl/basjes/modbus/modbus-schema-parent/badge.json)](https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/nl/basjes/modbus/modbus-schema-parent/README.md)
[![GitHub stars](https://img.shields.io/github/stars/nielsbasjes/modbus-schema?label=GitHub%20stars)](https://github.com/nielsbasjes/modbus-schema/stargazers)

- [Modbus Devices](https://github.com/nielsbasjes/modbus-devices):
- The actual schemas of a few devices.
- [![License](https://img.shields.io/:license-apache-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)
[![Github actions Build status](https://img.shields.io/github/actions/workflow/status/nielsbasjes/modbus-devices/build.yml?branch=main&label=main%20branch)](https://github.com/nielsbasjes/modbus-devices/actions)
[![Maven Central](https://img.shields.io/maven-central/v/nl.basjes.modbus.devices/modbus-devices-parent.svg?label=Maven%20Central)](https://central.sonatype.com/namespace/nl.basjes.modbus.devices)
[![Reproducible Builds](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/jvm-repo-rebuild/reproducible-central/master/content/nl/basjes/modbus/devices/modbus-devices-parent/badge.json)](https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/nl/basjes/modbus/devices/modbus-devices-parent/README.md)
[![GitHub stars](https://img.shields.io/github/stars/nielsbasjes/modbus-devices?label=GitHub%20stars)](https://github.com/nielsbasjes/modbus-devices/stargazers)

- [SunSpec Device](https://github.com/nielsbasjes/sunspec-device):
- Generate the Modbus Schema for the specific SunSpec you have
- [![License](https://img.shields.io/:license-apache-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)
[![Github actions Build status](https://img.shields.io/github/actions/workflow/status/nielsbasjes/sunspec-device/build.yml?branch=main&label=main%20branch)](https://github.com/nielsbasjes/sunspec-device/actions)
[![Maven Central](https://img.shields.io/maven-central/v/nl.basjes.sunspec/sunspec-device-parent.svg?label=Maven%20Central)](https://central.sonatype.com/namespace/nl.basjes.sunspec)
[![Reproducible Builds](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/jvm-repo-rebuild/reproducible-central/master/content/nl/basjes/sunspec/sunspec-device-parent/badge.json)](https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/nl/basjes/sunspec/sunspec-device-parent/README.md)
[![GitHub stars](https://img.shields.io/github/stars/nielsbasjes/sunspec-device?label=GitHub%20stars)](https://github.com/nielsbasjes/sunspec-device/stargazers)

- [Modbus GraphQL](https://github.com/nielsbasjes/modbus-graphql):
- Wrap any Modbus Schema and serve a device over GraphQL
- [![License](https://img.shields.io/:license-apache-blue.svg?classes=inline)](https://www.apache.org/licenses/LICENSE-2.0.html)
[![Github actions Build status](https://img.shields.io/github/actions/workflow/status/nielsbasjes/modbus-graphql/build.yml?branch=main&label=main%20branch&classes=inline)](https://github.com/nielsbasjes/modbus-graphql/actions)
[![Maven Central](https://img.shields.io/maven-central/v/nl.basjes.modbus.graphql/modbus-graphql-parent.svg?label=Maven%20Central&classes=inline)](https://central.sonatype.com/namespace/nl.basjes.modbus.graphql)
[![GitHub stars](https://img.shields.io/github/stars/nielsbasjes/modbus-graphql?label=GitHub%20stars&classes=inline)](https://github.com/nielsbasjes/modbus-graphql/stargazers)

The documentation can be found here https://modbus.basjes.nl/

All of this was created by [Niels Basjes](https://niels.basjes.nl/).

# License
I'm publishing this under the Apache 2.0 license because I believe this can be part of making this planet a bit more in control of the energy consumption.
I also believe that making this open for all to use is the best way to achieve this.

But do not underestimate how much work went into this. From my first attempts to releasing the first version took me about 5 years of spending my spare time.

So what I want to see in return is a little bit of gratitude from the people who use this.
If you are a home user/hobbyist/small business then a simple star on the projects you use is enough for me. Seeing that people use and like the things I create is what I'm doing this for.
What also really helps are bug reports, dumps from real devices I do not have and discussions on things you think can be done better.

Despite there not being any obligation (because of the Apache 2.0 license); If you are a big corporation where my code really adds value to the products you make/sell then I would really appreciate it if you could do a small sponsor thing. Buy me lunch (€10), Buy me a game (€100) or what ever you think is the right way to say thank you for the work I have done.

[![If this project has business value for you then don't hesitate to support me with a small donation.](https://img.shields.io/badge/Sponsor%20me-via%20Github-darkgreen.svg)](https://github.com/sponsors/nielsbasjes)

Modbus Schema Toolkit
Copyright (C) 2019-2025 Niels Basjes

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.