Giter Site home page Giter Site logo

tidbyt-evcc's Introduction

tidbyt-evcc

evcc is a popular open source project, allowing you to charge your BEV using as much self-generated power as possible. The project loves ๐Ÿ’š good UIs, a Tidbyt app displaying the most important statistics (excess solar power, charging power, state of charge) makes totally sense that's why ๐Ÿ˜€.

App design considerations

  • MUST be installable from official Tidbyt app store
  • MUST not create additional security risks by having to expose the evcc API endpoint to the public internet
  • MUST be configurable by a regular evcc user, no coding skills required
  • MUST support free InfluxDB plans
  • MUST not exceed API rate limits exposed by free InfluxDB plans by leverating caching

Setup

Signup to InfluxDB Cloud Serverless

Tidbyt apps are designed to query data only from public API endpoints, not from any local LAN device. However for security reasons exposing the evcc API endpoint to the public internet using DynDNS or so is not ideal too.

The approach is to use a InfluxDB Cloud Serverless with a "Free Plan", allowing to keep 30 days of data and sufficient API requests for reading and writing data.

  • Signup for InfluxDB Cloud InfluxDB Signup page
  • select a region of your choice (EU Frankfurt, US East (Virginia))
  • create an organisation and bucket (for simplicity I called both evcc)
  • create an API token for writing into the evcc bucket (for evcc)
  • create an API token for reading from the evcc bucket (for the Tidbyt app)

Setup evcc InfluxDB v2.x integration

Following evcc InfluxDB v2.x documentation, the evcc.yaml is configured like this:

influx:
  url: https://eu-central-1-1.aws.cloud2.influxdata.com # make sure this fits to the region you picked
  database: evcc # InfluxDB v2.x uses term `bucket` but for compatibility still named `database` here
  token: <YOUR WRITE TOKEN HERE>
  org: evcc # if you named your organisation differently, please adjust here

Restart your evcc and check the logs for errors.

Verify your setup

Use the InfluxDB "Data Explorer" to verify evcc is able to send metrics.

  • select the bucket evcc
  • pick measurement gridPower
  • run the query

You should see some query results matching the statistics of your evcc installation.

Using the app

  • three-columns screen
    • single values - the last known value
  • graphs screen
    • single values- the max value in the last 12 hours
    • graphing the last 12 hours mean value over an aggregate window of 15 minutes

InfluxDB measurements taken into consideration

TODO: check if all are used

metric description
gridPower Current grid feed-in (green) or consumption (red)
chargePower Current charging power
homePower Current house consumption power (without wallbox consumption)
phasesActive Currently active number of current phases of the charging point
pvPower Current solar system output
vehicleSoc Current vehicle state of charge (Soc) in percent

For more details on measurements check out the evcc messaging documentation.

open issues

  • make up my mind if gridPower or homePower should be plotted
  • error handling (like wrong API key) is very basic
  • improving the icons
    • animated car when the car is charging
    • the second column icon depends on whether I produce more solar energy or if I take it from grid, need to make up my mind what icons to present
    • better icons in general
  • the elephant in the room: publishing the app to the community apps store

Credits

Icons from FLATICON

tidbyt-evcc's People

Contributors

cruschke avatar

Stargazers

 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.