Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
2c75fd5
prepare for HACS -> HA Marketplace
marq24 Oct 18, 2026
b2a96e4
actions/checkout@v2 -> actions/checkout@v6
marq24 Oct 18, 2026
fe7e80a
I must learn how to use git :-/
marq24 Oct 18, 2026
76b8dd8
added icon to README.md
marq24 Oct 18, 2026
c953777
include resonable stuff from #173
Oct 23, 2026
dbe8058
Target the selected charger and validate PV blueprint measurements (#…
MrCodeLabs Oct 23, 2026
60d9a09
removed tests
marq24 Oct 23, 2026
5328e74
housekeeping of tasks
marq24 Oct 23, 2026
30adcbd
manually merged PR #174
marq24 Oct 23, 2026
a9f9350
PR https://github.com/home-assistant/core/pull/188329 is fixing the i…
marq24 Oct 24, 2026
03b0fc3
bugfixes for 3 issues mentioned in #173
Oct 27, 2026
98af3e0
alternate handling of 'cableCurrentLimit' and MORE logging - looks li…
Oct 28, 2026
eb5da46
fixing stuff based on test-suite
Oct 29, 2026
d4e2b38
first refactoring done (still not 100% happy with the way how to add …
Oct 28, 2026
4702213
fun with tests
Oct 29, 2026
b58ee87
Merge branch 'reviewed-pr-177'
Oct 29, 2026
738c3c6
let's add the tests to main (#178)
marq24 Oct 29, 2026
64855c3
Merge branch 'main' of https://github.com/marq24/ha-goecharger-api2
Oct 29, 2026
9e7d62a
- minor adjustments from `tcl` changes to tests
Oct 29, 2026
bff8404
ci: run the tests on pushes and pull requests, drop the fork-only wor…
OliEder Oct 29, 2026
a23b459
action versions
Oct 29, 2026
d876dfd
stop_charging will use require_ack=True
Oct 29, 2026
047d1c2
tests: lift the known_bug markers of the fixed findings, expect HTTP …
OliEder Oct 29, 2026
e6ee0c3
docs: record the configid decision (E10), update risk status and test…
OliEder Oct 29, 2026
8847024
removed cableLimit detector - at then end it's the task of the wallbo…
marq24 Oct 31, 2026
4cc2b59
ask heavy users for support
marq24 Nov 1, 2026
aa524ea
Merge current upstream main while preserving fork history
MrCodeLabs Nov 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/hacs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
name: HACS Action
runs-on: "ubuntu-latest"
steps:
- uses: "actions/checkout@v2"
- uses: "actions/checkout@v6"
- name: HACS Action
uses: "hacs/action@main"
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/hassfest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ jobs:
validate:
runs-on: "ubuntu-latest"
steps:
- uses: "actions/checkout@v2"
- uses: "actions/checkout@v6"
- uses: "home-assistant/actions/hassfest@master"
42 changes: 12 additions & 30 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,41 +5,23 @@ on:
types:
- published

permissions:
contents: write

jobs:
release:
name: Release goecharger_api2
release_zip_file:
name: Build & Upload HACS zip release
runs-on: ubuntu-latest
permissions:
contents: write
steps:
# Step 1: Check out the code
- name: ⤵️ Check out code from GitHub
uses: actions/checkout@v4

# Step 2: (Optional, but recommended) Install yq (in case it's not present)
#- name: Install yq
# run: sudo apt-get update && sudo apt-get install -y yq

# Step 3: Update version in manifest.json to match the release tag
#- name: 🔢 Adjust version number
# shell: bash
# run: |
# version="${{ github.event.release.tag_name }}"
# version="${version,,}" # convert to lowercase (e.g., V2024.10.1 -> v2024.10.1)
# version="${version#v}" # remove leading 'v' if present
# yq e -P -o=json \
# -i ".version = \"${version}\"" \
# "${{ github.workspace }}/custom_components/goecharger_api2/manifest.json"
- name: Checkout repository
uses: actions/checkout@v6

# Step 4: Create a ZIP archive of the component directory
- name: 📦 Create zipped release package
shell: bash
- name: Build zip archive
run: |
cd "${{ github.workspace }}/custom_components/goecharger_api2"
zip goecharger_api2.zip -r ./
zip -r "${{ github.workspace }}/goecharger_api2.zip" . -x "*__pycache__*" -x "*.pyc"

# Step 5: Upload ZIP as a release asset (for HACS)
- name: ⬆️ Upload zip to release
uses: softprops/action-gh-release@v2
- name: Upload zip to GitHub Release
uses: softprops/action-gh-release@v3
with:
files: ${{ github.workspace }}/custom_components/goecharger_api2/goecharger_api2.zip
files: ${{ github.workspace }}/goecharger_api2.zip
69 changes: 69 additions & 0 deletions .github/workflows/test-report.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Test report (manual)

# Builds the full test report (line, branch and path coverage, criticality) for a version of
# marq24/ha-goecharger-api2. Started by hand only; nothing is committed. The report is shown in the job
# summary and kept as an artifact. It clones the chosen version fresh and copies only tests/integration and
# tests/tools of this branch into it.

on:
workflow_dispatch:
inputs:
ref:
description: "Tag or branch of marq24/ha-goecharger-api2 (empty = latest release)"
required: false
default: ""

permissions:
contents: read

jobs:
report:
runs-on: ubuntu-latest
steps:
- name: Check out the tests (this branch)
uses: actions/checkout@v4

- name: Decide which upstream version to measure
id: ref
env:
GH_TOKEN: ${{ github.token }}
INPUT_REF: ${{ inputs.ref }}
run: |
ref="$INPUT_REF"
[ -n "$ref" ] || ref="$(gh api repos/marq24/ha-goecharger-api2/releases/latest --jq .tag_name)"
echo "ref=$ref" >> "$GITHUB_OUTPUT"

- uses: actions/setup-python@v6
with:
python-version: "3.14"

- name: Install test dependencies
run: pip install -r requirements_dev.txt msgpack pytest-cov radon

- name: Clone the upstream version and add the tests
env:
REF: ${{ steps.ref.outputs.ref }}
run: |
git clone --depth 1 --branch "$REF" https://github.com/marq24/ha-goecharger-api2 "$RUNNER_TEMP/src"
mkdir -p "$RUNNER_TEMP/src/tests"
cp -R tests/integration tests/tools "$RUNNER_TEMP/src/tests/"

- name: Measure and build the report
working-directory: ${{ runner.temp }}/src
env:
TESTS_COMMIT: ${{ github.sha }}
SOURCE_REF: ${{ steps.ref.outputs.ref }}
run: sh tests/tools/measure.sh "$RUNNER_TEMP/report"

- name: Show the report
if: always()
run: |
[ -f "$RUNNER_TEMP/report/testreport.md" ] && cat "$RUNNER_TEMP/report/testreport.md" >> "$GITHUB_STEP_SUMMARY" || true

- name: Keep the report
if: always()
uses: actions/upload-artifact@v4
with:
name: testreport-${{ steps.ref.outputs.ref }}
path: ${{ runner.temp }}/report
if-no-files-found: ignore
50 changes: 50 additions & 0 deletions .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Tests

# Runs the regression tests of tests/integration. Tests marked known_bug or needs_decision describe
# findings that are still open: they run in a second, non-blocking step and are listed in the job summary.
# Manual full report (coverage): test-report.yaml.

on:
push:
branches: [main]
paths:
- "custom_components/**"
- "tests/**"
- "requirements_dev.txt"
- ".github/workflows/tests.yaml"
pull_request:
paths:
- "custom_components/**"
- "tests/**"
- "requirements_dev.txt"
- ".github/workflows/tests.yaml"
workflow_dispatch:

permissions:
contents: read

jobs:
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6

- uses: actions/setup-python@v6
with:
python-version: "3.14"
cache: pip
cache-dependency-path: requirements_dev.txt

- name: Install test dependencies
run: |
python -m pip install -r requirements_dev.txt msgpack
python -m pip show homeassistant pytest-homeassistant-custom-component | grep -E "^(Name|Version)"

- name: Blocking tests
run: python -m pytest tests/integration -p no:cacheprovider -q -m "not known_bug and not needs_decision"

- name: Open findings (known_bug, needs_decision)
continue-on-error: true
run: |
python -m pytest tests/integration -p no:cacheprovider -q -m "known_bug or needs_decision" | tee open-findings.txt
{ echo "### Open findings"; echo; echo '```'; tail -n 40 open-findings.txt; echo '```'; } >> "$GITHUB_STEP_SUMMARY"
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
# Home Assistant Integration 'go-eCharger & go-eController [via WebSocket & APIv2]'
# <sub><img src="https://raw.githubusercontent.com/marq24/ha-goecharger-api2/main/custom_components/goecharger_api2/brand/icon48.png" style="align:bottom;"></sub> Home Assistant Integration 'go-eCharger & go-eController [via WebSocket & APIv2]'

![logo](https://github.com/marq24/ha-goecharger-api2/raw/main/logo.png)

Support for all go-eCharger Wallboxes & go-eController's supporting the APIv2 or a WebSocket connection. This also included other branded Wallboxes that are based on the go-eCharger hardware (like the Fronius Wattpilot) — as long as they support the WebSocket or HTTP APIv2 connection.

[![hacs_badge][hacsbadge]][hacs] [![hainstall][hainstallbadge]][hainstall] [![Wero][werobadge]][wero] [![wise][wisebadge]][wise] [![Revolut][revolutbadge]][revolut] [![PayPal][paypalbadge]][paypal] [![github][ghsbadge]][ghs] [![BuyMeCoffee][buymecoffeebadge]][buymecoffee]

> [!WARNING]
> ## Disclaimer
> Please be aware that we are developing this integration to the best of our knowledge and belief, but can't give a guarantee. Therefore, use this integration **at your own risk**.
Expand All @@ -17,9 +19,8 @@ So it's either enabled HTTP v2 API or password to use the websocket [[see instru


> [!IMPORTANT]
> __Please note__, _that this integration is __not official__, nor is it supported by the go-e manufacture from Austrian. I (marq24) am not affiliated with go-e.com in any way. This integration is based on the go-e API and the available go-e API documentation. (and some reverse engineering)_.
> __Please note__, _that this integration is __not official__, nor is it supported by the go-e manufacture from Austria. I (marq24) am not affiliated with go-e.com in any way. This integration is based on the go-e API and the available go-e API documentation. (and some reverse engineering)_.

[![hacs_badge][hacsbadge]][hacs] [![hainstall][hainstallbadge]][hainstall] [![Wero][werobadge]][wero] [![wise][wisebadge]][wise] [![Revolut][revolutbadge]][revolut] [![PayPal][paypalbadge]][paypal] [![github][ghsbadge]][ghs] [![BuyMeCoffee][buymecoffeebadge]][buymecoffee]

## Latest successfully tested go-eCharger Firmware Versions / go-eController Firmware Versions

Expand Down
Loading
Loading