-
-
Notifications
You must be signed in to change notification settings - Fork 1
Contributing DE
Sprache: Deutsch · English
Danke fürs Interesse an einer Mitwirkung an der Gardena-Smart-System-Integration für Home Assistant! Bug-Reports, Feature-Wünsche und Pull-Requests sind willkommen.
-
Repository klonen:
git clone https://github.com/kayloehmann/ha-gardena-smart-system.git cd ha-gardena-smart-system -
Virtuelle Umgebung anlegen und aktivieren:
python -m venv .venv source .venv/bin/activate -
Abhängigkeiten installieren (inklusive der mitgelieferten Client-Libraries im Editable-Mode):
pip install -e ./aiogardenasmart -e ./aioautomower pip install pytest pytest-asyncio pytest-cov pytest-homeassistant-custom-component mypy ruff
pytest -qMit Coverage:
pytest --cov --cov-report=term-missingruff check custom_components/ tests/
ruff format --check custom_components/ tests/Die Integration wird gegen mypy --strict geprüft:
mypy custom_components/gardena_smart_system/- Feature-Branch von
mainabzweigen. - Tests für neue Funktionalität mitschicken.
- Alle CI-Checks müssen grün sein (Lint, Tests, Mypy, Hassfest).
- PRs fokussiert halten — ein Feature bzw. Fix pro PR.
- Bestehenden Übersetzungsworkflow beachten: Bei neuen sichtbaren Strings die
strings.jsonaktualisieren und das Translation-Tooling für die 31 unterstützten Sprachen anstossen.
Die Integration unterstützt zwei Husqvarna-APIs über separate Coordinator:
-
Gardena Smart System API —
coordinator.py+GardenaCoordinator -
Automower Connect API —
automower_coordinator.py+AutomowerCoordinator
Beide erben von base_coordinator.py, der das WebSocket-First-Verhalten, den Rate-Limit-Backoff, den Circuit Breaker, den Watchdog und das API-Budget-Tracking implementiert — geteilt von beiden APIs.
Entity-Plattformen sind nach API-Typ getrennt:
- Gardena:
sensor.py,binary_sensor.py,valve.py,switch.py,lawn_mower.py,event.py… - Automower:
automower_sensor.py,automower_binary_sensor.py,automower_lawn_mower.py,automower_switch.py,automower_select.py,automower_number.py,automower_device_tracker.py,automower_calendar.py,automower_button.py,automower_event.py…
Beide APIs verwenden WebSocket für Echtzeit-Updates mit REST-Polling als Fallback. Detaillierte Aufrufmuster: siehe API-Rate-Limits.
Die Integration zielt auf das Home Assistant Integration Quality Scale Platinum-Level:
- 99 % Testabdeckung
-
mypy --strictohne Fehler auf allen Quelldateien - PEP 561 konform (
py.typed-Marker) - Vollständig asynchron — keine blockierenden I/O-Aufrufe im Event-Loop
- Diagnose mit Redaktion sensibler Daten
- Übersetzte Ausnahmen für alle benutzerseitigen Fehler
Nochmals danke — siehe auch GitHub-Repository und Issue-Tracker.
English
- Installation
- Configuration
- Supported Devices
- Entities and Services
- API Rate Limits
- MQTT Bridge
- Automation Examples
- Limitations
- Troubleshooting
- Contributing
Deutsch
- Installation
- Konfiguration
- Unterstützte Geräte
- Entities und Services
- API-Rate-Limits
- MQTT-Bridge
- Automatisierungsbeispiele
- Einschränkungen
- Fehlerbehebung
- Mitwirken