Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
235b403
Merge pull request #123 from moehrem/dev
moehrem Mar 17, 2026
5875eb7
Merge pull request #124 from moehrem/main
moehrem Mar 17, 2026
740b20f
prototype for multicluster and multiuser support
moehrem Mar 18, 2026
2eb45d6
added migration logic to v2.0.0
moehrem Mar 19, 2026
02dcc1e
refactor DiveraConfigFlowAPI
moehrem Mar 19, 2026
6eab083
- removed webhook support and related code
moehrem Mar 24, 2026
4834bd8
deleted webhook related commented coding
moehrem Mar 24, 2026
17fba64
added entities: select user status, user info
moehrem Mar 25, 2026
fc01b43
Update custom_components/diveracontrol/utils.py
moehrem Mar 25, 2026
a215dd5
Update custom_components/diveracontrol/translations/de.json
moehrem Mar 25, 2026
2a2f540
Update custom_components/diveracontrol/sensor_entity.py
moehrem Mar 25, 2026
28bbf96
Update custom_components/diveracontrol/divera_api.py
moehrem Mar 25, 2026
d2c5ad8
Update custom_components/diveracontrol/select_entity.py
moehrem Mar 25, 2026
f69853f
Update custom_components/diveracontrol/utils.py
moehrem Mar 25, 2026
cef4e10
Update custom_components/diveracontrol/sensor_entity.py
moehrem Mar 25, 2026
ecb3af9
Update custom_components/diveracontrol/entity.py
moehrem Mar 25, 2026
e42145a
bugfixing for v2.0.0-beta.1
moehrem Mar 26, 2026
a3ff7a9
Update custom_components/diveracontrol/service.py
moehrem Mar 26, 2026
8c6cad5
Update custom_components/diveracontrol/utils.py
moehrem Mar 26, 2026
be3e7ab
Merge pull request #125 from moehrem/v2.0
moehrem Mar 26, 2026
1a84cf9
reworked device names for better identification
moehrem Mar 26, 2026
718f851
implementing new device action "request_refresh"
moehrem Mar 26, 2026
30dced9
refactored service data handling: each service call will request the …
moehrem Mar 27, 2026
7816b5b
added device triggers for new alarms and all alarms closed
moehrem Mar 27, 2026
248b31a
refactored config entry to use subentries per user
moehrem Mar 28, 2026
aa0be3e
fix: handle dict sorting in _get_alarm_data to prevent KeyError
AmSach May 21, 2026
37f1d85
Merge pull request #129 from AmSach/fix/keyerror-when-sorting-is-dict
moehrem Jun 2, 2026
56f4965
Merge branch 'v2.0' into main
moehrem Jun 2, 2026
f7b1ceb
Merge pull request #130 from moehrem/main
moehrem Jun 2, 2026
94e1e6b
merge confict
moehrem Jun 3, 2026
8563da6
Merge pull request #132 from moehrem/v2.0
moehrem Jun 3, 2026
5f2c71c
Merge pull request #133 from moehrem/main
moehrem Jun 3, 2026
c317d84
Add sorting retrieval in _get_alarm_data method
moehrem Jun 3, 2026
a679f77
Merge pull request #134 from moehrem/v2.0
moehrem Jun 3, 2026
5818ada
merge conflict
moehrem Jun 3, 2026
6e9b67e
Merge pull request #135 from moehrem/v2.0
moehrem Jun 3, 2026
d66db83
bug: migration 1.4.1 -> 2.0.0 didn't created subentries for config_entry
moehrem Jun 3, 2026
da233e8
bug: created wrong formatted subentries
moehrem Jun 3, 2026
1b8cfd5
optimized data handling in migration to v2.0.0
moehrem Jun 3, 2026
65521ce
removed webhooks parameter in migration to v2.0.0
moehrem Jun 3, 2026
39ddefd
added entity cleanup upon migrating to v2.0.0
moehrem Jun 3, 2026
76c6d8d
changing structure to Hub and User-devices
moehrem Jun 3, 2026
37b0388
modified structure: removed subentries, so every
moehrem Jun 3, 2026
bccb5b5
refactor: Optimize config_flow structure and extract options flow
moehrem Jun 6, 2026
ba9f0d1
- Extract migration steps into separate helper functions (_migrate_to…
moehrem Jun 7, 2026
c645de5
fixed import error
moehrem Jun 7, 2026
9ebd102
updated readme to reflect the new features and changes in version 2.0
moehrem Jun 8, 2026
b5d83cb
debugging readme....
moehrem Jun 8, 2026
ffc0d52
added translations for action 'post_user_status'
moehrem Jun 8, 2026
86f698d
added device_classes "vehicle" & "alarm"
moehrem Jun 8, 2026
122a941
updated diagnostics and log handler to new config_entry data structure
moehrem Jun 8, 2026
f81c8a7
consitent divera wording: changed 'api_key' to 'accesskey'
moehrem Jun 9, 2026
dcb3188
removed 'usergroup_id' from config flow and init
moehrem Jun 9, 2026
0e95b94
centralized handling of coordinators and ucrs
moehrem Jun 9, 2026
e3734a2
moved initial data loading into parallel tasks to enhance performance
moehrem Jun 9, 2026
ecb8786
linting and minor optimizations
moehrem Jun 10, 2026
e2bed59
coordinator: optimized interval handling
moehrem Jun 10, 2026
4052daf
data validation moved from config_flow to divera_api
moehrem Jun 11, 2026
37998cb
added type_dicts to divera_api.py
moehrem Jun 12, 2026
0ba4438
updated readmes with 'triggers'
moehrem Jun 12, 2026
6381e80
Add confirm alarm API endpoint integration
invalid-email-address Jul 9, 2026
1f5c586
Remove range specification from status_id description
invalid-email-address Jul 9, 2026
ff79f65
Merge pull request #1 from N1co93/n1co93-add-confirm-alarm-endpoint
N1co93 Jul 9, 2026
bc3cff7
Adjust Payload for confirming alarm
N1co93 Jul 17, 2026
191ba85
bugfix: calendar entity not updating when divera api returns no data
moehrem Aug 18, 2026
24e53ab
Merge branch 'v2.0' into add_confirm_alarm
moehrem Aug 18, 2026
1df64c8
Merge conflict resolved: Added post_confirm_alarm
moehrem Aug 18, 2026
520d932
Merge pull request #139 from N1co93/add_confirm_alarm
moehrem Aug 18, 2026
90a5478
refactored workflows
moehrem Aug 18, 2026
7eb028d
fixing workflows
moehrem Aug 18, 2026
b23f089
workflow correction
moehrem Aug 18, 2026
7cadc93
bugfix services.yaml: changing request_refresh to device.selector
moehrem Aug 18, 2026
841383b
updated tests to fit v2.0
moehrem Aug 19, 2026
26ab57f
refactored tests to fit v2.0.0
moehrem Aug 20, 2026
8f65b58
altering tests again
moehrem Aug 20, 2026
31b0994
bugfix: included versioning into config_flow
moehrem Aug 20, 2026
db1ca2b
bugfix: remove old entities from entity registry when migrating to v2.0
moehrem Aug 20, 2026
2f6db4c
bugfix: remove old entity entries during migration
moehrem Aug 20, 2026
6e1c3fa
improve old entity handling upon migrating to v2.0.0
moehrem Aug 20, 2026
4877ab0
optimizing migration to v2.0.0
moehrem Aug 20, 2026
3693130
migration optimizations it is
moehrem Aug 20, 2026
a3657aa
tweaked post_confirm_alarm:
moehrem Aug 20, 2026
b9baf9b
bugfix: services to use entity instead of device as target
moehrem Aug 20, 2026
d253873
linting
moehrem Aug 20, 2026
b2ccd22
bugfix: config_flow imports
moehrem Aug 20, 2026
d6445b8
workflow: ci_pipeline to use black
moehrem Aug 21, 2026
6705dc5
workflow error handling
moehrem Aug 21, 2026
654abdc
workflow fixes
moehrem Aug 21, 2026
3d6bf61
workflow: Update CI pipeline and test dependencies
moehrem Aug 21, 2026
d3ff290
refactored workflows
moehrem Aug 21, 2026
dd97a32
workflow: Update CI pipeline and test workflow
moehrem Aug 21, 2026
21fbdb2
removed old files
moehrem Sep 27, 2026
9bd3def
Merge pull request #140 from moehrem/v2.0
moehrem Sep 27, 2026
ce4a5a4
updated workflows to use python 3.14 and HA-version 2024.9.4
moehrem Sep 27, 2026
c75705a
updated mypy.ini to use python 3.14 instead of 3.12
moehrem Sep 27, 2026
ab48f84
Merge branch 'main' into v2.0
moehrem Sep 27, 2026
e95e2e8
Merge pull request #143 from moehrem/v2.0
moehrem Sep 27, 2026
092e94a
docs: fix README inaccuracies (base URL, CI badges, missing confirm-a…
mistral-vibe Oct 9, 2026
c2453f2
docs: add AI-assistance note to both READMEs
mistral-vibe Oct 9, 2026
f6a64e4
Merge pull request #145 from moehrem/vibe/readme-fixes-2618e1
moehrem Oct 9, 2026
0eb8323
fix: do not report 0/0 as tracker position when Divera has no position
mistral-vibe Oct 9, 2026
19a2c63
style: apply black formatting
mistral-vibe Oct 9, 2026
200103f
Merge pull request #146 from moehrem/vibe/no-zero-position-tracker-30…
moehrem Oct 9, 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
36 changes: 36 additions & 0 deletions .github/actions/setup-python/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Setup Python
description: Sets up Python and installs dependencies
inputs:
python-version:
description: Python version to set up
default: "3.14"
cache-dependencies:
description: Whether to cache pip dependencies
default: "true"
runs:
using: composite
steps:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ inputs.python-version }}

- name: Cache pip dependencies
if: inputs.cache-dependencies == 'true'
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('requirements*.txt') }}
restore-keys: |
${{ runner.os }}-pip-

- name: Install dependencies
run: |
pip install --upgrade pip
if [ -f "requirements_test.txt" ]; then
pip install -r requirements_test.txt
fi
if [ -f "requirements.txt" ]; then
pip install -r requirements.txt
fi
shell: bash
76 changes: 0 additions & 76 deletions .github/workflows/ci_pipeline.yml

This file was deleted.

27 changes: 0 additions & 27 deletions .github/workflows/hacs.yml

This file was deleted.

23 changes: 0 additions & 23 deletions .github/workflows/hass.yml

This file was deleted.

79 changes: 79 additions & 0 deletions .github/workflows/homeassistant_ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: ✅ HomeAssistant CI

on:
pull_request:
branches: [dev, main]
push:
branches: [dev, main]
schedule:
- cron: "0 3 * * 1" # Jeden Montag um 03:00 UTC

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event_name == 'push' && github.ref_name || github.event.pull_request.number }}
cancel-in-progress: true

jobs:
lint:
name: "🔍 Linting & Static Analysis"
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # Wichtig für pylint!

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.14"
cache: "pip"

- name: Install Dependencies
run: |
pip install -r requirements.txt
pip install \
pylint==4.0.9 \
flake8==6.1.0 \
mypy==1.13.0 \
black==24.3.0 \
ruff==0.4.4

- name: Check Black Formatting
run: black . --check --diff --line-length=88

- name: Run ruff
run: ruff check custom_components/diveracontrol

- name: Run pylint
run: pylint custom_components/diveracontrol --rcfile=.pylintrc

- name: Run flake8
run: flake8 custom_components/diveracontrol

- name: Run mypy (Type Checking)
run: mypy custom_components/diveracontrol

hassfest:
name: "🏠 HomeAssistant Validation (hassfest)"
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Run hassfest
uses: home-assistant/actions/hassfest@master

hacs:
name: "🎯 HACS Validation"
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Run HACS Validation
uses: hacs/action@main
with:
category: "integration"
Original file line number Diff line number Diff line change
@@ -1,44 +1,43 @@
name: Tests
name: 🧪 HomeAssistant Tests

on:
pull_request:
branches: [dev, main]
push:
branches: [dev, main]

permissions:
contents: read

concurrency:
# Bei Push: "Tests-push-main", bei PR zu main: "Tests-pr-123"
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event_name == 'push' && github.ref_name || github.event.pull_request.number }}
cancel-in-progress: true

jobs:
test:
name: Run tests
tests:
name: "🧪 Unit & Integration Tests (Python 3.14)"
runs-on: ubuntu-latest

steps:
- name: Checkout code
- name: Checkout Repository
uses: actions/checkout@v4

- name: Set up Python 3.13
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
python-version: "3.14"
cache: "pip"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements_test.txt
- name: Install Dependencies
run: pip install -r requirements.txt

- name: Run tests with coverage
- name: Run Tests
run: |
pytest tests/ \
--cov=custom_components.diveracontrol \
--cov-report=xml \
--cov-report=term-missing

- name: Upload coverage to Codecov
- name: Upload Coverage to Codecov
uses: codecov/codecov-action@v4
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false)
with:
Expand Down
18 changes: 15 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,26 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4

- name: Get Version from manifest.json
id: version
run: |
VERSION=$(jq -r '.version' custom_components/diveracontrol/manifest.json)
echo "version=$VERSION" >> $GITHUB_OUTPUT

- name: Build HACS ZIP
run: |
mkdir -p dist
cd custom_components/diveracontrol
zip -r ../../dist/DiveraControl.zip . \
zip -r ../../dist/DiveraControl-${{ steps.version.outputs.version }}.zip . \
-x "*/__pycache__/*" "*.pyc"

- name: Upload asset to release
- name: Generate Changelog
run: |
git log --oneline --pretty=format:"- %s (%h)" $(git describe --tags --abbrev=0)..HEAD > CHANGELOG.md

- name: Upload Asset to Release
uses: softprops/action-gh-release@v2
with:
files: dist/DiveraControl.zip
files: |
dist/DiveraControl-${{ steps.version.outputs.version }}.zip
CHANGELOG.md
37 changes: 37 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Python
__pycache__/
*.py[cod]
*.egg-info/
build/
dist/
.venv/
venv/

# Testing
.pytest_cache/
.coverage
coverage.xml
htmlcov/
snapshots/fixtures/*/

# Tooling
.mypy_cache/
.ruff_cache/

# Home Assistant
.storage/
home-assistant_v2*

# Editors / OS
.vscode/
.idea/
.DS_Store

# Local run artifacts
*.log
*.zip
coverage.xml
.coverage
htmlcov/
tests.ods
DiveraControl.code-workspace
Loading
Loading