Eine hochperformante HTTP-zu-MQTT-Bridge für openWB Wallboxen mit vollständiger SimpleAPI-Kompatibilität und erweiterten Features.
- ✅ Vollständige openWB SimpleAPI Kompatibilität - Alle originalen Parameter unterstützt
- ✅ 51+ Parameter - Umfassende Unterstützung für Chargepoint, Counter, Battery und PV
- ✅ Auto-ID Feature - Automatische Auswahl der niedrigsten verfügbaren ID
- ✅ Performance-Optimiert - Batch MQTT-Aufrufe für < 0.1s Antwortzeiten
- ✅ Template-basierte Settings - Erweiterte openWB-Template-Manipulation
- ✅ Raw & JSON Output - Flexible Ausgabeformate
- ✅ GET & POST Support - Beide HTTP-Methoden unterstützt
- ✅ Direkte MQTT-Kommunikation - Native PHP-MQTT ohne externe Dependencies
- PHP 7.4+ mit sockets-Extension
- Apache Webserver
- openWB System mit MQTT Broker
- mosquitto-clients (für MQTT-Kommunikation)
# 1. Repository klonen
git clone https://github.com/openWB/simpleAPI.git
simpleAPI über den Webserver verfügbar machen, z.B.
mv simpleAPI /var/www/html/simpleAPI
## Verwendung
### Lesende Anfragen
**Alle Daten eines Ladepunkts:**
```bash
curl "http://IPADRESSE/simpleAPI/simpleapi.php?get_chargepoint_all=3"Auto-ID Feature - niedrigste verfügbare ID:
curl "http://IPADRESSE/simpleAPI/simpleapi.php?get_chargepoint_all=auto"
# oder ohne Angabe einer ID:
curl "http://IPADRESSE/simpleAPI/simpleapi.php?get_chargepoint_all="Spannung Phase 1 (Raw-Ausgabe):
curl "http://IPADRESSE/simpleAPI/simpleapi.php?get_chargepoint_voltage_p1=3&raw=true"Batterie-Daten:
curl "http://IPADRESSE/simpleAPI/simpleapi.php?battery=2"Kombination mehrerer Werte:
curl "http://IPADRESSE/simpleAPI/simpleapi.php?get_chargepoint_all=3&battery=2"| Parameter | Beschreibung | Beispiel |
|---|---|---|
get_chargepoint_all |
Alle Daten | ?get_chargepoint_all=2 |
get_chargepoint_voltages |
Alle Spannungen | ?get_chargepoint_voltages=2 |
get_chargepoint_voltage_p1/p2/p3 |
Spannung einzelne Phase | ?get_chargepoint_voltage_p1=2 |
get_chargepoint_currents |
Alle Ströme | ?get_chargepoint_currents=2 |
get_chargepoint_current_p1/p2/p3 |
Strom einzelne Phase | ?get_chargepoint_current_p1=2 |
get_chargepoint_powers |
Alle Leistungen | ?get_chargepoint_powers=2 |
get_chargepoint_power |
Gesamtleistung | ?get_chargepoint_power=2 |
get_chargepoint_imported |
Gesamtenergie geladen | ?get_chargepoint_imported=2 |
get_chargepoint_exported |
Gesamtenergie zurückgespeist | ?get_chargepoint_exported=2 |
get_chargepoint_soc |
Batteriestand (%) | ?get_chargepoint_soc=2 |
get_chargepoint_state_str |
Status-Text | ?get_chargepoint_state_str=2 |
get_chargepoint_fault_str |
Fehler-Text | ?get_chargepoint_fault_str=2 |
get_chargepoint_fault_state |
Fehler-Code | ?get_chargepoint_fault_state=2 |
get_chargepoint_phases_in_use |
Verwendete Phasen | ?get_chargepoint_phases_in_use=2 |
get_chargepoint_plug_state |
Stecker angeschlossen | ?get_chargepoint_plug_state=2 |
get_chargepoint_charge_state |
Ladevorgang aktiv | ?get_chargepoint_charge_state=2 |
get_chargepoint_chargemode |
Lademodus | ?get_chargepoint_chargemode=2 |
| Parameter | Beschreibung | Beispiel |
|---|---|---|
get_counter |
Alle Zähler-Daten | ?get_counter=0 |
get_counter_voltages |
Alle Spannungen | ?get_counter_voltages=0 |
get_counter_voltage_p1/p2/p3 |
Spannung einzelne Phase | ?get_counter_voltage_p1=0 |
get_counter_currents |
Alle Ströme | ?get_counter_currents=0 |
get_counter_current_p1/p2/p3 |
Strom einzelne Phase | ?get_counter_current_p1=0 |
get_counter_powers |
Alle Leistungen | ?get_counter_powers=0 |
get_counter_power |
Gesamtleistung | ?get_counter_power=0 |
get_counter_power_factors |
Leistungsfaktoren | ?get_counter_power_factors=0 |
get_counter_imported |
Gesamtenergie bezogen | ?get_counter_imported=0 |
get_counter_exported |
Gesamtenergie eingespeist | ?get_counter_exported=0 |
get_counter_daily_imported |
Tagesenergie bezogen | ?get_counter_daily_imported=0 |
get_counter_daily_exported |
Tagesenergie eingespeist | ?get_counter_daily_exported=0 |
get_counter_frequency |
Netzfrequenz | ?get_counter_frequency=0 |
get_counter_fault_str |
Fehler-Text | ?get_counter_fault_str=0 |
get_counter_fault_state |
Fehler-Code | ?get_counter_fault_state=0 |
Lademodus ändern:
curl -X POST -d "chargemode=pv&chargepoint_nr=3" \
"http://IPADRESSE/simpleAPI/simpleapi.php"Auto-ID Feature beim Schreiben:
# Schreibt an den Ladepunkt mit der niedrigsten ID
curl -X POST -d "chargemode=pv" \
"http://IPADRESSE/simpleAPI/simpleapi.php"Ladestrom setzen:
curl -X POST -d "chargecurrent=8.23&chargepoint_nr=3" \
"http://IPADRESSE/simpleAPI/simpleapi.php"Mit Bearer Token:
curl -H "Authorization: Bearer your-token" \
-X POST -d "chargemode=pv&chargepoint_nr=3" \
"https://IPADRESSE/simpleAPI/simpleapi.php"Mit Username/Passwort:
curl -X POST \
-d "username=admin" \
-d "password=admin123" \
-d "chargemode=pv" \
-d "chargepoint_nr=3" \
"https://IPADRESSE/simpleAPI/simpleapi.php"| Parameter | Beschreibung | Beispiel |
|---|---|---|
get_chargepoint_all |
Alle Ladepunkt-Daten | ?get_chargepoint_all=3 |
get_chargepoint_voltage_p1/p2/p3 |
Spannung einzelne Phase | ?get_chargepoint_voltage_p1=3 |
get_chargepoint_voltages |
Alle Spannungen | ?get_chargepoint_voltages=3 |
get_chargepoint_current_p1/p2/p3 |
Strom einzelne Phase | ?get_chargepoint_current_p1=3 |
get_chargepoint_currents |
Alle Ströme | ?get_chargepoint_currents=3 |
get_chargepoint_power |
Gesamtleistung | ?get_chargepoint_power=3 |
get_chargepoint_powers |
Leistung aller Phasen | ?get_chargepoint_powers=3 |
battery |
Batterie-Daten | ?battery=2 |
pv |
PV-Anlagen-Daten | ?pv=5 |
counter |
Zähler-Daten | ?counter=0 |
| Parameter | Werte | Beschreibung |
|---|---|---|
chargemode |
instant, pv, eco, stop, target | Lademodus setzen |
chargecurrent |
0, 6-32 | Ladestrom in Ampere |
minimal_pv_soc |
0-100 | Min. SoC für PV-Laden |
minimal_permanent_current |
0, 6-32 | Min. Dauerstrom für PV |
max_price_eco |
-100 bis 200 | Max. Preis für ECO-Laden |
chargepoint_lock |
0, 1 | Ladepunkt sperren |
speicherbeachtung |
1, 2, 3 | Speicherstrategie |
Das Auto-ID Feature ist eine Erweiterung der openWB SimpleAPI. Wenn keine ID angegeben wird oder auto verwendet wird, wird automatisch die niedrigste verfügbare ID verwendet:
# Diese Aufrufe sind equivalent:
curl "http://IPADRESSE/simpleAPI/simpleapi.php?get_chargepoint_all="
curl "http://IPADRESSE/simpleAPI/simpleapi.php?get_chargepoint_all=auto"
# Findet automatisch den Ladepunkt mit der niedrigsten ID
curl -X POST -d "chargemode=pv" "http://IPADRESSE/simpleAPI/simpleapi.php"'auth' => [
'enabled' => true,
'require_https' => true,
'tokens' => [
'your-secret-token-here'
],
'users' => [
'admin' => password_hash('admin123', PASSWORD_DEFAULT)
]
]'api' => [
'cors_enabled' => true
]'debug' => true# Einfacher Funktionstest
curl "http://localhost/simpleapi.php?get_chargepoint_all=1&debug=true"-
500 Internal Server Error
- Prüfen Sie die PHP-Logs
- Autoloader korrekt installiert? (
composer install) - Schreibrechte für Web-Verzeichnis?
-
MQTT-Verbindung fehlgeschlagen
- MQTT Broker erreichbar?
- Credentials korrekt?
- Firewall-Einstellungen prüfen
-
Authentifizierung fehlgeschlagen
- HTTPS bei Username/Passwort erforderlich
- Token korrekt konfiguriert?