Skip to content

openWB/simpleAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

# 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"

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:

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"

Authentifizierung

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"

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:

# 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"

Konfiguration

Authentifizierung aktivieren

'auth' => [
    'enabled' => true,
    'require_https' => true,
    'tokens' => [
        'your-secret-token-here'
    ],
    'users' => [
        'admin' => password_hash('admin123', PASSWORD_DEFAULT)
    ]
]

CORS für Web-Anwendungen

'api' => [
    'cors_enabled' => true
]

Entwicklung

Logging aktivieren

'debug' => true

Tests ausführen

# 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?

About

Entwurf zu einer simplen Schnittstelle für die openWB

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages