Modbus Schema Toolkit

A set of Kotlin/Java libraries and tools to turn meaningless binary Modbus values (from Electricity meters, Heatpumps, Solar Inverters (PV) and SunSpec based devices) into meaningful values, make the modbus queries efficient and expose the values to MQTT (Home Assistant), InfluxDB and GraphQL.
https://github.com/nielsbasjes/modbus-schema

Category: Energy Systems
Sub Category: Building Energy Monitoring

Keywords

modbus modbus-library modbus-mapping

Keywords from Contributors

nifi-processor profile animations stress-test atoms geocoder domain-modeling contributing feature-toggle

Last synced: about 21 hours ago
JSON representation

Repository metadata

Making Modbus devices easier to use by using a standardized form of modbus mapping

README.md

What is this?

This is a specification and a library that makes reading data from Modbus devices a lot easier.

Modbus Schema Toolkit

This is part of the Modbus Schema Toolkit I (Niels Basjes) created that makes retrieving data from Modbus based devices a lot easier.

I have split this into 4 projects:

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

All of this was created by Niels Basjes.

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.

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.

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 7 days ago

Total Commits: 265
Total Committers: 2
Avg Commits per committer: 132.5
Development Distribution Score (DDS): 0.392

Commits in past year: 265
Committers in past year: 2
Avg Commits per committer in past year: 132.5
Development Distribution Score (DDS) in past year: 0.392

Name Email Commits
Niels Basjes n****s@b****l 161
renovate[bot] 2****] 104

Committer domains:


Issue and Pull Request metadata

Last synced: 5 days ago

Total issues: 17
Total pull requests: 104
Average time to close issues: 3 days
Average time to close pull requests: 1 day
Total issue authors: 2
Total pull request authors: 1
Average comments per issue: 0.12
Average comments per pull request: 0.03
Merged pull request: 77
Bot issues: 2
Bot pull requests: 104

Past year issues: 17
Past year pull requests: 104
Past year average time to close issues: 3 days
Past year average time to close pull requests: 1 day
Past year issue authors: 2
Past year pull request authors: 1
Past year average comments per issue: 0.12
Past year average comments per pull request: 0.03
Past year merged pull request: 77
Past year bot issues: 2
Past year bot pull requests: 104

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/nielsbasjes/modbus-schema

Top Issue Authors

  • nielsbasjes (15)
  • renovate[bot] (2)

Top Pull Request Authors

  • renovate[bot] (104)

Top Issue Labels

  • enhancement (7)
  • Wait for external dependencies (5)

Top Pull Request Labels

  • maven-build-plugins (31)
  • testing (8)
  • logging (3)

Package metadata

repo1.maven.org: nl.basjes.modbus:modbus-schema-device

The Modbus Schema Toolkit makes retrieving data from Modbus based devices a lot easier.

  • Homepage: https://modbus.basjes.nl/modbus-schema-device
  • Documentation: https://appdoc.app/artifact/nl.basjes.modbus/modbus-schema-device/
  • Licenses: Apache License, Version 2.0
  • Latest release: 0.14.0 (published 7 months ago)
  • Last Synced: 2026-02-05T03:42:30.460Z (7 days ago)
  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 34.821%
    • Average: 42.304%
    • Dependent packages count: 49.787%
repo1.maven.org: nl.basjes.modbus:modbus-schema-maven-plugin

The Modbus Schema Toolkit makes retrieving data from Modbus based devices a lot easier.

  • Homepage: https://modbus.basjes.nl
  • Documentation: https://appdoc.app/artifact/nl.basjes.modbus/modbus-schema-maven-plugin/
  • Licenses: Apache License, Version 2.0
  • Latest release: 0.14.0 (published 7 months ago)
  • Last Synced: 2026-02-05T03:42:40.397Z (7 days ago)
  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 34.821%
    • Average: 42.304%
    • Dependent packages count: 49.787%
repo1.maven.org: nl.basjes.modbus:modbus-api

The Modbus Schema Toolkit makes retrieving data from Modbus based devices a lot easier.

  • Homepage: https://modbus.basjes.nl
  • Documentation: https://appdoc.app/artifact/nl.basjes.modbus/modbus-api/
  • Licenses: Apache License, Version 2.0
  • Latest release: 0.14.0 (published 7 months ago)
  • Last Synced: 2026-02-05T03:45:06.318Z (7 days ago)
  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 34.821%
    • Average: 42.304%
    • Dependent packages count: 49.787%
repo1.maven.org: nl.basjes.modbus:modbus-api-parent

The Modbus Schema Toolkit makes retrieving data from Modbus based devices a lot easier.

  • Homepage: https://modbus.basjes.nl
  • Documentation: https://appdoc.app/artifact/nl.basjes.modbus/modbus-api-parent/
  • Licenses: Apache License, Version 2.0
  • Latest release: 0.14.0 (published 7 months ago)
  • Last Synced: 2026-02-05T03:42:54.172Z (7 days ago)
  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 34.821%
    • Average: 42.304%
    • Dependent packages count: 49.787%
repo1.maven.org: nl.basjes.modbus:modbus-schema-parent

The Modbus Schema Toolkit makes retrieving data from Modbus based devices a lot easier.

  • Homepage: https://modbus.basjes.nl
  • Documentation: https://appdoc.app/artifact/nl.basjes.modbus/modbus-schema-parent/
  • Licenses: Apache License, Version 2.0
  • Latest release: 0.14.0 (published 7 months ago)
  • Last Synced: 2026-02-05T03:42:15.966Z (7 days ago)
  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 34.821%
    • Average: 42.304%
    • Dependent packages count: 49.787%
repo1.maven.org: nl.basjes.modbus:modbus-schema-bom

The Modbus Schema Toolkit makes retrieving data from Modbus based devices a lot easier.

  • Homepage: https://modbus.basjes.nl
  • Documentation: https://appdoc.app/artifact/nl.basjes.modbus/modbus-schema-bom/
  • Licenses: Apache License, Version 2.0
  • Latest release: 0.14.0 (published 7 months ago)
  • Last Synced: 2026-02-05T03:42:32.227Z (7 days ago)
  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 34.821%
    • Average: 42.304%
    • Dependent packages count: 49.787%
repo1.maven.org: nl.basjes.modbus:modbus-api-digitalpetri

The Modbus Schema Toolkit makes retrieving data from Modbus based devices a lot easier.

  • Homepage: https://modbus.basjes.nl
  • Documentation: https://appdoc.app/artifact/nl.basjes.modbus/modbus-api-digitalpetri/
  • Licenses: Apache License, Version 2.0
  • Latest release: 0.14.0 (published 7 months ago)
  • Last Synced: 2026-02-05T03:43:20.526Z (7 days ago)
  • Versions: 14
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 34.821%
    • Dependent packages count: 49.787%
    • Average: 50.702%
    • Stargazers count: 58.938%
    • Forks count: 59.263%
repo1.maven.org: nl.basjes.modbus:modbus-api-testing

The Modbus Schema Toolkit makes retrieving data from Modbus based devices a lot easier.

  • Homepage: https://modbus.basjes.nl
  • Documentation: https://appdoc.app/artifact/nl.basjes.modbus/modbus-api-testing/
  • Licenses: Apache License, Version 2.0
  • Latest release: 0.14.0 (published 7 months ago)
  • Last Synced: 2026-02-05T03:44:33.415Z (7 days ago)
  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 34.821%
    • Dependent packages count: 49.787%
    • Average: 50.702%
    • Stargazers count: 58.938%
    • Forks count: 59.263%
repo1.maven.org: nl.basjes.modbus:modbus-api-plc4j

The Modbus Schema Toolkit makes retrieving data from Modbus based devices a lot easier.

  • Homepage: https://modbus.basjes.nl
  • Documentation: https://appdoc.app/artifact/nl.basjes.modbus/modbus-api-plc4j/
  • Licenses: Apache License, Version 2.0
  • Latest release: 0.14.0 (published 7 months ago)
  • Last Synced: 2026-02-05T03:45:34.515Z (7 days ago)
  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 34.821%
    • Dependent packages count: 49.787%
    • Average: 50.702%
    • Stargazers count: 58.938%
    • Forks count: 59.263%
repo1.maven.org: nl.basjes.modbus:modbus-schema-reference

The Modbus Schema Toolkit makes retrieving data from Modbus based devices a lot easier.

  • Homepage: https://modbus.basjes.nl
  • Documentation: https://appdoc.app/artifact/nl.basjes.modbus/modbus-schema-reference/
  • Licenses: Apache License, Version 2.0
  • Latest release: 0.14.0 (published 7 months ago)
  • Last Synced: 2026-02-05T03:42:35.537Z (7 days ago)
  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 34.821%
    • Dependent packages count: 49.787%
    • Average: 50.702%
    • Stargazers count: 58.938%
    • Forks count: 59.263%
repo1.maven.org: nl.basjes.modbus:modbus-api-j2mod

The Modbus Schema Toolkit makes retrieving data from Modbus based devices a lot easier.

  • Homepage: https://modbus.basjes.nl
  • Documentation: https://appdoc.app/artifact/nl.basjes.modbus/modbus-api-j2mod/
  • Licenses: Apache License, Version 2.0
  • Latest release: 0.14.0 (published 7 months ago)
  • Last Synced: 2026-02-05T03:42:47.836Z (7 days ago)
  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 34.821%
    • Dependent packages count: 49.787%
    • Average: 50.702%
    • Stargazers count: 58.938%
    • Forks count: 59.263%

Dependencies

.github/workflows/build.yml actions
  • actions/cache 5a3ec84eff668545956fd18022155c47e93e2684 composite
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • actions/setup-java c5195efecf7bdfc987ee8bae7a71cb8b11521c00 composite
  • codecov/codecov-action ad3126e916f78f00edff4ed0317cf185271ccc2d composite
modbus-api-parent/modbus-api/pom.xml maven
  • org.apache.logging.log4j:log4j-api
  • org.jetbrains.kotlin:kotlin-stdlib
  • org.apache.logging.log4j:log4j-core test
  • org.jetbrains.kotlin:kotlin-test-junit5 test
modbus-api-parent/modbus-api-j2mod/pom.xml maven
  • com.ghgande:j2mod
  • nl.basjes.modbus:modbus-api ${project.version}
  • org.jetbrains.kotlin:kotlin-stdlib
  • nl.basjes.modbus:modbus-api-testing ${project.version} test
  • org.apache.logging.log4j:log4j-core test
  • org.apache.logging.log4j:log4j-slf4j2-impl test
  • org.jetbrains.kotlin:kotlin-test-junit5 test
modbus-api-parent/modbus-api-plc4j/pom.xml maven
  • nl.basjes.modbus:modbus-api ${project.version}
  • org.apache.plc4x:plc4j-driver-modbus
  • org.jetbrains.kotlin:kotlin-stdlib
  • nl.basjes.modbus:modbus-api-testing ${project.version} test
  • org.apache.logging.log4j:log4j-core test
  • org.apache.logging.log4j:log4j-slf4j2-impl test
  • org.jetbrains.kotlin:kotlin-test-junit5 test
modbus-api-parent/modbus-api-testing/pom.xml maven
  • nl.basjes.modbus:modbus-api ${project.version}
  • org.jetbrains.kotlin:kotlin-stdlib
  • org.apache.logging.log4j:log4j-core test
  • org.jetbrains.kotlin:kotlin-test-junit5 test
modbus-api-parent/pom.xml maven
modbus-schema-bom/pom.xml maven
modbus-schema-device/pom.xml maven
  • com.charleskorn.kaml:kaml-jvm 0.77.1
  • nl.basjes.modbus:modbus-api ${project.version}
  • org.antlr:antlr4-runtime
  • org.apache.logging.log4j:log4j-api
  • org.jetbrains.kotlin:kotlin-stdlib
  • nl.basjes.modbus:modbus-api-j2mod ${project.version} test
  • nl.basjes.modbus:modbus-api-plc4j ${project.version} test
  • nl.basjes.modbus:modbus-schema-reference ${project.version} test
  • org.apache.logging.log4j:log4j-slf4j2-impl test
  • org.jetbrains.kotlin:kotlin-test-junit5 test
  • org.junit.jupiter:junit-jupiter-params test
modbus-schema-maven-plugin/pom.xml maven
  • org.apache.maven.plugin-tools:maven-plugin-annotations 3.15.1 provided
  • org.apache.maven:maven-plugin-api 3.9.9 provided
  • org.apache.maven:maven-project 2.2.1 provided
  • nl.basjes.modbus:modbus-schema-device
  • org.apache.logging.log4j:log4j-core
  • org.apache.logging.log4j:log4j-slf4j2-impl
  • org.freemarker:freemarker-gae 2.3.34
  • org.jetbrains.kotlin:kotlin-test-junit5 test
modbus-schema-maven-plugin/src/it/generate_custom/pom.xml maven
  • nl.basjes.modbus:modbus-schema-device
  • org.apache.logging.log4j:log4j-core 2.24.3
  • org.junit.jupiter:junit-jupiter-engine @junit5.version@ test
modbus-schema-maven-plugin/src/it/generate_java/pom.xml maven
  • nl.basjes.modbus:modbus-schema-device
  • org.apache.logging.log4j:log4j-core 2.24.3
  • org.junit.jupiter:junit-jupiter-engine @junit5.version@ test
modbus-schema-maven-plugin/src/it/generate_java_sunspec/pom.xml maven
  • nl.basjes.modbus:modbus-api-plc4j compile
  • nl.basjes.modbus:modbus-schema-device
  • org.apache.logging.log4j:log4j-core 2.24.3
  • org.junit.jupiter:junit-jupiter-engine @junit5.version@ test
modbus-schema-maven-plugin/src/it/generate_kotlin/pom.xml maven
  • nl.basjes.modbus:modbus-schema-device
  • org.apache.logging.log4j:log4j-core 2.24.3
  • org.jetbrains.kotlin:kotlin-test-junit5 @kotlin.version@ test
modbus-schema-maven-plugin/src/it/generate_kotlin_badschema/pom.xml maven
  • nl.basjes.modbus:modbus-schema-device
  • org.apache.logging.log4j:log4j-core 2.24.3
  • org.jetbrains.kotlin:kotlin-test-junit5 @kotlin.version@ test
modbus-schema-maven-plugin/src/it/generate_kotlin_badtest/pom.xml maven
  • nl.basjes.modbus:modbus-schema-device
  • org.apache.logging.log4j:log4j-core 2.24.3
  • org.jetbrains.kotlin:kotlin-test-junit5 @kotlin.version@ test
modbus-schema-maven-plugin/src/it/generate_kotlin_sunspec/pom.xml maven
  • nl.basjes.modbus:modbus-api-plc4j compile
  • nl.basjes.modbus:modbus-schema-device
  • org.apache.logging.log4j:log4j-core 2.24.3
  • org.jetbrains.kotlin:kotlin-test-junit5 @kotlin.version@ test
modbus-schema-reference/pom.xml maven
pom.xml maven
  • org.jetbrains.kotlin:kotlin-stdlib 2.1.0
modbus-api-parent/modbus-api-digitalpetri/pom.xml maven
  • com.digitalpetri.modbus:modbus provided
  • nl.basjes.modbus:modbus-api ${project.version}
  • org.jetbrains.kotlin:kotlin-stdlib
  • com.digitalpetri.modbus:modbus-tcp test
  • nl.basjes.modbus:modbus-api-testing ${project.version} test
  • org.apache.logging.log4j:log4j-core test
  • org.apache.logging.log4j:log4j-slf4j2-impl test
  • org.jetbrains.kotlin:kotlin-test-junit5 test
.git-hooks/pom.xml maven

Score: -Infinity