Sie befinden sich hier: start » openwb » 2.1.9 » simpleapi
README.md
# openWB SimpleAPI - HTTP zu MQTT Bridge
 
Eine hochperformante HTTP-zu-MQTT-Bridge für openWB Wallboxen mit vollständiger SimpleAPI-Kompatibilität und erweiterten Features.
 
## 🚀 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
 
## 📦 Installation
 
### Voraussetzungen
- PHP 7.4+ mit sockets-Extension
- Apache Webserver
- openWB System mit MQTT Broker
- mosquitto-clients (für MQTT-Kommunikation)
 
### Setup
```bash
# 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/web/simpleapi.php?get_chargepoint_all=3"
```
 
**Auto-ID Feature - niedrigste verfügbare ID:**
```bash
curl "http://IPADRESSE/simpleAPI/web/simpleapi.php?get_chargepoint_all=auto"
# oder ohne Angabe einer ID:
curl "http://IPADRESSE/simpleAPI/web/simpleapi.php?get_chargepoint_all="
```
 
**Spannung Phase 1 (Raw-Ausgabe):**
```bash
curl "http://IPADRESSE/simpleAPI/web/simpleapi.php?get_chargepoint_voltage_p1=3&raw=true"
```
 
**Batterie-Daten:**
```bash
curl "http://IPADRESSE/simpleAPI/web/simpleapi.php?battery=2"
```
 
**Kombination mehrerer Werte:**
```bash
curl "http://IPADRESSE/simpleAPI/web/simpleapi.php?get_chargepoint_all=3&battery=2"
```
 
## Alle verfügbaren Parameter
 
### Chargepoint (Ladepunkt) Parameter
 
| 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` |
 
### Counter (Zähler) Parameter
 
| 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` |
 
### Schreibende Anfragen
 
**Lademodus ändern:**
```bash
curl -X POST -d "chargemode=pv&chargepoint_nr=3" \
     "http://IPADRESSE/simpleAPI/web/simpleapi.php"
```
 
**Auto-ID Feature beim Schreiben:**
```bash
# Schreibt an den Ladepunkt mit der niedrigsten ID
curl -X POST -d "chargemode=pv" \
     "http://IPADRESSE/simpleAPI/web/simpleapi.php"
```
 
**Ladestrom setzen:**
```bash
curl -X POST -d "chargecurrent=8.23&chargepoint_nr=3" \
     "http://IPADRESSE/simpleAPI/web/simpleapi.php"
```
 
### Authentifizierung
 
**Mit Bearer Token:**
```bash
curl -H "Authorization: Bearer your-token" \
     -X POST -d "chargemode=pv&chargepoint_nr=3" \
     "https://IPADRESSE/simpleAPI/web/simpleapi.php"
```
 
**Mit Username/Passwort:**
```bash
curl -X POST \
     -d "username=admin" \
     -d "password=admin123" \
     -d "chargemode=pv" \
     -d "chargepoint_nr=3" \
     "https://IPADRESSE/simpleAPI/web/simpleapi.php"
```
 
## Unterstützte Parameter
 
### Lesbare Parameter
 
| 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` |
 
### Schreibbare Parameter
 
| 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 |
 
## Auto-ID Feature
 
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:
 
```bash
# Diese Aufrufe sind equivalent:
curl "http://IPADRESSE/simpleAPI/web/simpleapi.php?get_chargepoint_all="
curl "http://IPADRESSE/simpleAPI/web/simpleapi.php?get_chargepoint_all=auto"
 
# Findet automatisch den Ladepunkt mit der niedrigsten ID
curl -X POST -d "chargemode=pv" "http://IPADRESSE/simpleAPI/web/simpleapi.php"
```
 
## Konfiguration
 
 
### Authentifizierung aktivieren
 
```php
'auth' => [
    'enabled' => true,
    'require_https' => true,
    'tokens' => [
        'your-secret-token-here'
    ],
    'users' => [
        'admin' => password_hash('admin123', PASSWORD_DEFAULT)
    ]
]
```
 
### CORS für Web-Anwendungen
 
```php
'api' => [
    'cors_enabled' => true
]
```
 
## Entwicklung
 
### Logging aktivieren
 
```php
'debug' => true
```
 
### Tests ausführen
 
```bash
# Einfacher Funktionstest
curl "http://localhost/simpleapi.php?get_chargepoint_all=1&debug=true"
```
 
## Troubleshooting
 
 
 
### Häufige Probleme
 
1. **500 Internal Server Error**
   - Prüfen Sie die PHP-Logs
   - Autoloader korrekt installiert? (`composer install`)
   - Schreibrechte für Web-Verzeichnis?
 
2. **MQTT-Verbindung fehlgeschlagen**
   - MQTT Broker erreichbar?
   - Credentials korrekt?
   - Firewall-Einstellungen prüfen
 
3. **Authentifizierung fehlgeschlagen**
   - HTTPS bei Username/Passwort erforderlich
   - Token korrekt konfiguriert?
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
Diese Seite bearbeiten
Nach oben