⚡ evcc Integration
Übersicht
Integration mit evcc für Wallbox-Management und Ladestatistiken.
Features
- ✅ Systemstatus (PV, Batterie, Netz)
- ✅ Ladepunkte überwachen
- ✅ Ladevorgänge abrufen
- ✅ Verbrauchsberechnung
- ✅ Lademodus steuern
- ✅ Tarife abrufen
Setup
1. evcc installieren
Siehe docs.evcc.io
2. Environment konfigurieren
3. Verbindung testen
Response:
API Referenz
EvccBridge
import { EvccBridge } from '@integrations/evcc';
const evcc = new EvccBridge(process.env.EVCC_HOST);
// Status
const state = await evcc.getState();
console.log(`PV: ${state.pvPower}W, Grid: ${state.gridPower}W`);
// Ladepunkte
const loadpoints = await evcc.getLoadpoints();
loadpoints.forEach(lp => {
console.log(`${lp.title}: ${lp.charging ? 'Lädt' : 'Bereit'}`);
});
// Sessions
const sessions = await evcc.getSessionsForMonth(2024, 12);
// Verbrauch berechnen
const stats = await evcc.calculateConsumption(2024, 12);
console.log(`Solar: ${stats.solarEnergy} kWh (${Math.round(stats.solarEnergy/stats.totalEnergy*100)}%)`);
// Modus setzen
await evcc.setMode(0, 'pv'); // Ladepunkt 0 auf PV-Modus
Lademodi
| Mode | Icon | Description |
|---|---|---|
off |
🔴 | Laden deaktiviert |
now |
⚡ | Sofort laden (volle Leistung) |
minpv |
🌤️ | Minimum + PV-Überschuss |
pv |
☀️ | Nur PV-Überschuss |
Datenmodell
State
interface EvccState {
siteTitle?: string;
gridPower: number; // Netzbezug (+ = Bezug, - = Einspeisung)
homePower: number; // Hausverbrauch
pvPower: number; // PV-Erzeugung
batteryPower?: number; // Batterie (+ = Laden, - = Entladen)
batterySoc?: number; // Batterie Ladestand %
loadpoints: Loadpoint[];
}
Session
interface EvccSession {
id: number;
created: string;
finished?: string;
loadpoint: string;
chargedEnergy: number; // Wh
solarPercentage: number; // % Solaranteil
price?: number; // Kosten in €
}
Use Cases
Nebenkostenabrechnung
Ladevorgänge pro Mieter berechnen:
const sessions = await evcc.getSessionsForMonth(2024, 12);
const stats = await evcc.calculateConsumption(2024, 12);
// Für Abrechnung
const invoice = {
period: '12/2024',
totalKwh: stats.totalEnergy,
solarKwh: stats.solarEnergy,
gridKwh: stats.gridEnergy,
cost: stats.totalCost,
sessions: stats.sessions,
};
Best Practices
Cache TTL
evcc State hat kurze TTL (10s) da sich Werte schnell ändern.
Netzwerk
evcc muss im selben Netzwerk erreichbar sein. Für Remote-Zugriff VPN oder Cloudflare Tunnel nutzen.