GithubHelp home page GithubHelp logo

logreposit / ve-direct-reader-service Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 101 KB

Communicate with VE.Direct compatible devices and get current measurement values.

License: GNU General Public License v3.0

Kotlin 98.66% Java 0.79% Dockerfile 0.40% Shell 0.15%
victron energy victronenergy victronconnect

ve-direct-reader-service's Introduction

ve-direct-reader-service

branch CI build test coverage
master CircleCI codecov.io
develop CircleCI codecov.io

Service Description

The ve-direct-reader-service reads measurement and fault data from Victron Energy VE.Direct devices and pushes it to the Logreposit API.

The implementation has been tested with a BMV-700 battery monitor and a SmartSolar MPPT 100/50 solar charge controller along with a VE.Direct to USB cable.

It also has been tested and works nicely with Victron Energy devices with a TTL (serial) interface such as the BMV600S and the Victron Energy Blue Smart IP22 Charger. Just be sure to only connect the three pins TX, RX and GND when connecting a USB-to-TTL Adapter to those devices.

All Victron Energy devices which speak the VE.Direct port should be supported.

All measurement values described in the official VE.Direct text protocol documentation, as of beginning of about December 2021, have been implemented and can be found here.

The ve-direct-reader-service is a Spring Boot project and the library com.fazecast.jSerialComm is in use for the serial communication.

Configuration

This service ships as a docker image and has to be configured via environment variables.

Environment Variable Name default value
VEDIRECT_COMPORT /dev/ttyUSB0
LOGREPOSIT_APIBASEURL https://api.logreposit.com
LOGREPOSIT_DEVICETOKEN INVALID needs to be changed!
LOGREPOSIT_INCLUDELEGACYFIELDS false set to true to enable backwards-compatibility to bmv-reader-service
LOGREPOSIT_IGNOREDFIELDS empty comma separated list of logreposit field names to ignore / not report at all. The names are referring to the logrepositName of the VeDirectField in the file which can be found here.
LOGREPOSIT_MINIMUMUPDATEINTERVALINMILLIS 10000 minimum update interval in milliseconds, set to 0 to push on every VE.Direct Text update.
LOGREPOSIT_ADDRESS 1 set to some other value if you have multiple devices

Docker

The latest images can be found on Dockerhub.

Place the following docker-compose.yml file in a new folder, then run docker-compose up -d.

version: '2.4'

services:
  ve-direct-reader-service:
    container_name: logreposit-ve-direct-reader-service
    image: logreposit/ve-direct-reader-service:<VERSION>
    restart: always
    devices:
      - "/dev/ttyUSB0:/dev/ttyUSB0"
    environment:
      LOGREPOSIT_DEVICETOKEN: your-logreposit-device-token
      # uncomment the next line in order to prevent publishing rather static fields
      #LOGREPOSIT_IGNOREDFIELDS: "bmv_model,firmware_version_16,firmware_version_24,product_id,serial_number,bluetooth_cap"

ve-direct-reader-service's People

Contributors

dominic-miglar avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.