Skip to content

Lightweight Python API for accessing go-eCharger EV wall box using local HTTP API v2

License

Notifications You must be signed in to change notification settings

bkogler/goecharger-api-lite

Repository files navigation

Lightweight Python API for accessing modern go-eCharger EV wallboxes using local HTTP API v2

go-eCharger models:

  • Gemini
  • Gemini flex
  • HOMEfix
  • HOME+

Table of contents

Features

  • Query Charger Status
  • Set Charger Configuration
  • Uses asynchronous aiohttp requests for communication

Installation

pip install goecharger-api-lite

Usage Examples

Query Status

from goecharger_api_lite import GoeCharger

charger = GoeCharger("192.168.1.150") # --> change to your IP

# get full status
status = charger.get_status(status_type=GoeCharger.STATUS_FULL)

# essential status (car state, wallbox state, wallbox error)
status = charger.get_status(status_type=GoeCharger.STATUS_MINIMUM)

# status for custom API keys (friendly name, OEM manufacturer) 
status = charger.get_status(("fna", "oem"))

Hint: Pretty Print Status

import json

print(json.dumps(status, indent=4))
{
    "fna": "myEVCharger",
    "oem": "go-e"
}

Set Configuration

Interrupt and restart EV charging session

from goecharger_api_lite import GoeCharger

charger = GoeCharger("192.168.1.150") # --> change to your IP

# STOP current charging session
charger.set_charging_mode(charger.SettableValueEnums.ChargingMode.off)

# restart charging session again
charger.set_charging_mode(charger.SettableValueEnums.ChargingMode.neutral)

Set charge rate (ampere) and number of phases

from goecharger_api_lite import GoeCharger

charger = GoeCharger("192.168.1.150") # --> change to your IP

# set to 1 phase, 13 ampere
charger.set_phase_mode(charger.SettableValueEnum.PhaseMode.one)
charger.set_ampere(13)

# set to 3 phases, 16 ampere
charger.set_phase_mode(charger.SettableValueEnum.PhaseMode.three)
charger.set_ampere(16)

# set phase mode to auto
charger.set_phase_mode(charger.SettableValueEnum.PhaseMode.auto)

# set maximum possible charge rate of the charger (ampere)
# this will limit the maximum charge rate that can be set by the user, i.e. via the app
charger.set_absolute_max_current(10)

Set cable lock mode

from goecharger_api_lite import GoeCharger

charger = GoeCharger("192.168.1.150") # --> change to your IP

# set to require unlocking the car first
charger.set_cable_lock_mode(charger.SettableValueEnum.CableLockMode.unlockcarfirst)

# set to automatically unlock after charging
charger.set_cable_lock_mode(charger.SettableValueEnum.CableLockMode.automatic)

# set to always lock the cable
charger.set_cable_lock_mode(charger.SettableValueEnum.CableLockMode.locked)

Set charge limit

from goecharger_api_lite import GoeCharger

charger = GoeCharger("192.168.1.150") # --> change to your IP

# set charge limit to 2.5 kWh
charger.set_charge_limit(2500)

# Disable charge limit
charger.set_charge_limit(None)

Set Generic API Key

from goecharger_api_lite import GoeCharger

charger = GoeCharger("192.168.1.150") # --> change to your IP

# set generic API key (friendly name: "myEVCharger")
charger.set_key("fna", "myEVCharger")

Links

goecharger-api-lite GitHub repository

goecharger-api-lite on Pypi

go-E Website (manufacturer)

go-E API v2 specification

go-E API Keys (query status, set configuration)

About

Lightweight Python API for accessing go-eCharger EV wall box using local HTTP API v2

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages