explaingit

jeef84/openadr_evse

Analysis updated 2026-05-18

0PythonAudience · ops devopsComplexity · 4/5Setup · hard

TLDR

A Python OpenADR 3.1 system that reads utility electricity prices and Home Assistant solar data to automatically set charging limits on an OpenEVSE electric vehicle charger.

Mindmap

mindmap
  root((repo))
    What it does
      Controls EV charger
      Uses OpenADR signals
      Reads live tariff price
    Tech stack
      Python
      MQTT
      Docker
      Postgres
    Use cases
      Solar based charging
      Time of use savings
      Ready by scheduling
    Audience
      Home Assistant users
      OpenEVSE owners

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Automatically charge an EV using solar surplus power to avoid pulling more expensive grid electricity.

USE CASE 2

Shift EV charging to cheaper time of use pricing windows using real utility tariff data.

USE CASE 3

Set a target battery charge level and a ready by time so charging finishes when needed.

USE CASE 4

Test the OpenADR and MQTT integration with fake telemetry before connecting a real charger and Home Assistant.

What is it built with?

PythonMQTTDockerPostgresOpenLEADRHome Assistant

How does it compare?

jeef84/openadr_evse0xallam/my-recipe0xhassaan/nn-from-scratch
Stars00
LanguagePythonPythonPython
Last pushed2022-11-22
MaintenanceDormant
Setup difficultyhardmoderatemoderate
Complexity4/52/54/5
Audienceops devopsgeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Needs Docker, a Postgres database, an MQTT broker, and existing Home Assistant sensors already configured.

In plain English

OpenADR_EVSE is a Python project that connects an OpenEVSE electric vehicle charger to Home Assistant through a local implementation of the OpenADR 3.1 standard, a protocol utilities use to signal electricity price and demand information. The project's stated goal, described in the README as HOME_EV_FLEX, is to turn editable utility tariff settings and telemetry from Home Assistant, sent over MQTT, into specific amp limits sent to the charger. The system has several pieces working together. Home Assistant, or a set of test fixtures, publishes site data such as solar production and grid import and export power over MQTT. A tariff engine reads a configuration file describing time of use pricing and export credit, then calculates a marginal cost for each situation, whether power is coming from solar surplus or being imported from the grid. This information passes through an OpenADR VTN server, built with OpenLEADR and Postgres, which acts as the standards boundary. A Python VEN adapter then reads the resulting price signal and site data and calculates an integer amp value for the charger, smoothing changes to avoid rapid jumps. A bridge component translates that amp value into MQTT commands the OpenEVSE charger understands. The README lists four operating modes: economic, solar_only, charge_now, and stopped, along with an overlay feature that lets a user set a target state of charge and a time they need the car ready by. Setup requires Docker and Docker Compose to run the backend services on a Linux host or virtual machine, plus Python 3.11 or newer for tests and lab helpers. Home Assistant needs specific sensor entities configured, such as solar production and grid import and export power, before the system can run against real data. The README provides a lab stack option that uses fake telemetry fixtures instead of live sensors, letting someone test the setup with a real OpenEVSE charger before connecting Home Assistant. This is a home energy automation project aimed at someone who already owns an OpenEVSE charger and runs Home Assistant, and wants to charge an EV based on real-time electricity costs and solar availability rather than a fixed schedule.

Copy-paste prompts

Prompt 1
Help me set up Docker Compose to run the OpenADR EVSE lab stack with fake telemetry.
Prompt 2
Walk me through configuring my Home Assistant grid import and export sensors for HOME_EV_FLEX.
Prompt 3
Explain how the tariff engine calculates a marginal cost for charging from solar versus grid power.
Prompt 4
Help me write a tariff.yaml file with time of use pricing and export credit for my utility.

Frequently asked questions

What is openadr_evse?

A Python OpenADR 3.1 system that reads utility electricity prices and Home Assistant solar data to automatically set charging limits on an OpenEVSE electric vehicle charger.

What language is openadr_evse written in?

Mainly Python. The stack also includes Python, MQTT, Docker.

How hard is openadr_evse to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is openadr_evse for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.