Skip to content

Commit 223eae6

Browse files
committed
fix testes
1 parent 648f765 commit 223eae6

2 files changed

Lines changed: 136 additions & 17 deletions

File tree

custom_components/enpal_webparser/tests/test_entity_factory.py

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -102,23 +102,8 @@ def mock_sensor_dict():
102102
}
103103

104104
@pytest.fixture
105-
def hass_coordinator(hass: HomeAssistant):
106-
async def _update_method():
107-
return [{
108-
"name": "Test Sensor",
109-
"value": 987.65,
110-
"unit": "kWh",
111-
"device_class": "energy",
112-
"enpal_last_update": "2024-06-01T12:30:00",
113-
}]
114-
coordinator = DataUpdateCoordinator(
115-
hass,
116-
logger=None,
117-
name="test",
118-
update_method=_update_method,
119-
update_interval=timedelta(seconds=30),
120-
)
121-
return coordinator
105+
def hass_coordinator():
106+
return DummyCoordinator()
122107

123108
@pytest.mark.asyncio
124109
async def test_build_energy_sensor_full(hass: HomeAssistant, mock_sensor_dict, hass_coordinator):

docs/RELEASE_NOTES_2.9.9b1.md

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
# 2.9.9b1 - WebSocket & Native Wallbox-Steuerung (Beta)
2+
3+
---
4+
5+
## ⚠️ BETA-VERSION — WICHTIGE HINWEISE
6+
7+
> **Dies ist eine Beta-Version und NICHT für den produktiven Einsatz gedacht!**
8+
>
9+
> - 🧪 **Nur zum Testen** — diese Version kann noch Fehler enthalten.
10+
> - 💾 **Backup erstellen!** — Vor der Installation unbedingt ein Home Assistant-Backup anlegen.
11+
> - 🔄 **Downgrade möglich** — Bei Problemen kann jederzeit auf die stabile Version 2.3.0 zurückgewechselt werden (über HACS → Version auswählen).
12+
> - 🐛 **Fehler melden** — Bitte Fehler und Auffälligkeiten auf [GitHub Issues](https://github.com/derolli1976/enpal/issues) melden, damit wir sie vor dem stabilen Release beheben können.
13+
> - 📊 **Historische Daten** — Beim Wechsel der Datenquelle (HTML → WebSocket) können sich Sensor-IDs ändern. Bestehende Historien-Daten bleiben erhalten, aber neue Sensoren starten ohne Historie.
14+
15+
---
16+
17+
## 🎉 Neue Funktionen
18+
19+
### 1. WebSocket-Verbindung (Echtzeit-Daten)
20+
21+
**Was ist das?**
22+
Bisher hat die Integration regelmäßig die Webseite der Enpal Box abgefragt und die dort angezeigten Daten ausgelesen (sogenanntes "HTML-Scraping"). Das funktioniert, ist aber langsam und kann bei Änderungen an der Webseite brechen.
23+
24+
Die neue WebSocket-Verbindung nutzt stattdessen die **native Schnittstelle** der Enpal Box — dieselbe Technik, die auch die Weboberfläche intern verwendet. Die Daten werden dabei **direkt und in Echtzeit** an Home Assistant übertragen.
25+
26+
**Vorteile auf einen Blick:**
27+
-**Schnellere Updates** — Sensor-Werte werden sofort aktualisiert, statt nur alle 60 Sekunden
28+
- 🔒 **Stabiler** — Keine Abhängigkeit von der HTML-Struktur der Webseite
29+
- 📉 **Weniger Systemlast** — Eine dauerhafte Verbindung statt ständiger Seitenaufrufe
30+
- 📊 **Mehr Sensoren** — Die WebSocket-API liefert zusätzliche aggregierte Werte (z.B. Tagesverbrauch, Gesamthausleistung)
31+
32+
### 2. Native Wallbox-Steuerung (ohne Add-on!)
33+
34+
**Was ist das?**
35+
Bisher war zum Steuern der Wallbox ein separates Home Assistant Add-on nötig, das als Vermittler zwischen Home Assistant und der Enpal Box fungierte. Das war umständlich einzurichten und eine zusätzliche Fehlerquelle.
36+
37+
**Neu: Direkte Wallbox-Steuerung** — Im WebSocket-Modus kommuniziert die Integration jetzt **direkt** mit der Wallbox-Seite der Enpal Box. Das separate Wallbox Add-on wird im WebSocket-Modus **nicht mehr benötigt**!
38+
39+
**Vorteile auf einen Blick:**
40+
- 🚫 **Kein Extra-Add-on nötig** — Weniger Abhängigkeiten, einfachere Installation
41+
-**Schnellere Reaktion** — Direkter Befehlsweg ohne Umweg über ein Add-on
42+
- 🔧 **Einfachere Einrichtung** — Wallbox-Steuerung einfach in den Integrationseinstellungen aktivieren
43+
- 🔄 **Zuverlässiger** — Keine Probleme mehr durch Add-on-Abstürze oder -Updates
44+
45+
**Unterstützte Wallbox-Funktionen:**
46+
- Laden starten / stoppen
47+
- Lademodus wechseln: Eco, Solar, Full, Smart
48+
- Wallbox-Status auslesen (Modus, Verbindungsstatus)
49+
50+
### 3. Automatische Erkennung der besten Datenquelle
51+
52+
Bei der Einrichtung erkennt die Integration automatisch, ob die Enpal Box WebSocket unterstützt. Du musst dich nicht mit technischen Details befassen — die Integration wählt selbst die beste verfügbare Methode:
53+
54+
- **Auto-detect (empfohlen)** — Prüft automatisch, ob WebSocket verfügbar ist
55+
- **WebSocket (Echtzeit)** — Erzwingt die neue WebSocket-Verbindung
56+
- **HTML-Polling (Legacy)** — Nutzt die bisherige Methode (für ältere Enpal-Boxen)
57+
58+
---
59+
60+
## 🔧 Installation der Beta
61+
62+
### Über HACS:
63+
1. In HACS → **Enpal Solar** öffnen
64+
2. Auf die **drei Punkte** (⋮) klicken → **Version auswählen**
65+
3. Version **2.9.9b1** auswählen und installieren
66+
4. Home Assistant **neu starten**
67+
68+
### Ersteinrichtung:
69+
Die Integration erkennt beim Einrichten automatisch die beste Datenquelle. Es sind keine speziellen Einstellungen nötig.
70+
71+
### Bestehende Installation upgraden:
72+
1. Beta-Version über HACS installieren (siehe oben)
73+
2. Home Assistant neu starten
74+
3. **Einstellungen****Geräte & Dienste****Enpal Webparser****Konfigurieren**
75+
4. Bei **Datenquelle** die gewünschte Option wählen (oder "Auto-detect" belassen)
76+
5. Ggf. **Wallbox-Steuerung aktivieren** (erfordert im HTML-Modus weiterhin das Add-on)
77+
6. Speichern — die Integration lädt automatisch neu
78+
79+
---
80+
81+
## ⚠️ Bekannte Einschränkungen (Beta)
82+
83+
- **WebSocket-Verfügbarkeit**: Nicht alle Enpal-Boxen unterstützen WebSocket. Die Integration erkennt das automatisch und fällt im Zweifelsfall auf HTML-Polling zurück.
84+
- **Sensor-Unterschiede**: Im WebSocket-Modus stehen teilweise andere Sensoren zur Verfügung als im HTML-Modus (ca. 88 gemeinsame Sensoren, 45 nur in HTML, 18 nur in WebSocket). Siehe [Sensor-Vergleich](SENSOR_COMPARISON.md) für Details.
85+
- **Wallbox-Steuerung**: Die native Wallbox-Steuerung wurde mit begrenzter Hardware-Vielfalt getestet. Bitte Rückmeldung geben, ob alles funktioniert!
86+
- **Verbindungsstabilität**: Die WebSocket-Verbindung wird automatisch bei Abbruch neu aufgebaut. In seltenen Fällen kann es zu kurzen Aussetzern kommen.
87+
88+
---
89+
90+
## 📋 Zurück zur stabilen Version
91+
92+
Falls Probleme auftreten:
93+
94+
1. In HACS → **Enpal Solar** öffnen
95+
2. Auf die **drei Punkte** (⋮) klicken → **Version auswählen**
96+
3. Version **2.3.0** (stabile Version) auswählen und installieren
97+
4. Home Assistant **neu starten**
98+
99+
Alle bisherigen Sensoren und Einstellungen bleiben erhalten.
100+
101+
---
102+
103+
## ℹ️ Kompatibilität
104+
105+
- **Rückwärtskompatibel**: Bestehende Installationen werden automatisch migriert. Die Datenquelle wird auf "HTML" gesetzt, damit alles wie gewohnt funktioniert.
106+
- **Wallbox Add-on**: Im HTML-Modus wird das Add-on weiterhin benötigt. Nur im WebSocket-Modus entfällt das Add-on.
107+
- **Keine Breaking Changes**: Bestehende Sensoren und historische Daten bleiben unverändert.
108+
109+
---
110+
111+
## 🙏 Feedback erwünscht!
112+
113+
Als Beta-Version lebt diese Version von eurem Feedback. Bitte meldet:
114+
115+
- ✅ Was funktioniert gut?
116+
- ❌ Was funktioniert nicht?
117+
- 💡 Was fehlt oder könnte verbessert werden?
118+
119+
Rückmeldungen bitte auf [GitHub Issues](https://github.com/derolli1976/enpal/issues) oder in den [GitHub Discussions](https://github.com/derolli1976/enpal/discussions).
120+
121+
Vielen Dank an alle Tester! 🎉
122+
123+
---
124+
125+
## 🔍 Technische Details
126+
127+
- Blazor SignalR WebSocket-Protokoll mit MessagePack-Encoding
128+
- Abstrakte API-Schicht (`EnpalApiClient`) für austauschbare Datenquellen
129+
- `EnpalWebSocketClient` für Echtzeit-Daten, `EnpalHtmlClient` als Legacy-Wrapper
130+
- `WallboxBlazorClient` für direkte Wallbox-Steuerung über die `/wallbox`-Seite
131+
- Automatische Reconnect-Logik mit Keep-Alive-Pings
132+
- Config Flow mit Auto-Detection, manueller Auswahl und Options Flow
133+
- Automatische Migration bestehender Konfigurationen (inkl. Umbenennung `use_wallbox_addon``use_wallbox`)
134+
- Credits: WebSocket-Protokoll basiert auf dem Reverse-Engineering von @arigon

0 commit comments

Comments
 (0)