Skip to content

sehnot/weishaupt-api

Repository files navigation

Weishaupt WEM Portal – Inoffizielle API-Dokumentation

Inoffizielle Dokumentation der Weishaupt WEM Portal API, gewonnen durch Reverse Engineering (siehe Quellen). Weishaupt stellt keine offizielle API bereit – Änderungen am Server können diese Doku jederzeit ungültig machen.

API-Dokumentation (Swagger UI)

→ Online-Dokumentation öffnen

Alle 12 Endpunkte mit Request/Response-Schemas, Beispielen und Feldbeschreibungen.

Swagger lokal nutzen

git clone https://github.com/sehnot/weishaupt-api.git
cd weishaupt-api
npm install

make swagger      # Swagger UI auf http://localhost:8080

Beispiel-Client

Lokaler, browserbasierter Minimal-Client, der alle Geräte und Module eines Kontos progressiv lädt:

cp .env.example .env   # .env erstellen, darin Zugangsdaten bei WEM_USERNAME und WEM_PASSWORD eintragen
make server            # Dashboard auf http://localhost:3000

Integrationstests

Tests validieren echte API-Responses gegen die Schemas in openapi.yaml:

make test-read        # Read-Tests
make test-statistics  # Statistics-Tests
make test-write       # Write-Test (ändert NormalWW auf 42°C, stellt zurück)

Hinweis: Das WEM Portal reagiert relativ empfindlich auf zu häufige Logins und Abfragen. Bei Bedarf kurze Pausen zwischen den Tests berücksichtigen.

Struktur

Datei Zweck
public/index.html Client-Frontend (Vanilla JS, kein Build-Step)
src/server.js HTTP-Server für den Client (SSE-Streaming)
src/wem-client.js WemClient-Klasse – zentrale API-Implementierung
tests/helpers/resolve-nullable.js Konvertiert OpenAPI nullable: true → JSON Schema für ajv
tests/helpers/validate-schema.js ajv-Wrapper zur Schema-Validierung gegen openapi.yaml
tests/read.test.js Read-only Integrationstests (Geräte, Parameter, Messwerte)
tests/statistics.test.js Integrationstests für /Statistics/Read
tests/write.test.js Schreibtest: setzt NormalWW, prüft, stellt zurück
.env.example Vorlage für Zugangsdaten
.gitattributes Zeilenenden-Normalisierung (LF)
.gitignore Ausgeschlossene Dateien (.env, node_modules/)
.nojekyll Deaktiviert Jekyll-Verarbeitung für GitHub Pages
API_DOCS.md Begleitdoku mit Beispielen und Quickstart
index.html Swagger UI (CDN, lädt openapi.yaml) – GitHub Pages Root
Makefile Entwicklungs-Befehle (make swagger, make server, make test-*)
openapi.yaml Single Source of Truth – Schemas für Swagger UI und Tests
README.md Projektbeschreibung (diese Datei)
vitest.config.js Vitest-Konfiguration

API-Überblick

Basis-URL: https://www.wemportal.com

Endpunkt Methode Zweck
/app/Account/Login POST Login → Session-Cookie
/app/CircuitTimes/Read POST Zeitprogramm lesen
/app/CircuitTimes/Refresh POST Zeitprogramm-Abfrage anstoßen
/app/CircuitTimes/Write POST Zeitprogramm setzen
/app/DataAccess/Read POST Aktuelle Werte lesen
/app/DataAccess/Refresh POST Messung anstoßen
/app/DataAccess/Write POST Wert setzen
/app/Device/Read GET Geräte + Module auflisten
/app/DeviceStatus/Read POST Verbindungsstatus + Fehler eines Geräts
/app/EventType/Read POST Parameter-Metadaten eines Moduls
/app/Statistics/Read POST Verlaufsdaten
/app/Statistics/Refresh POST Verfügbare Energiearten (GroupTypes) abrufen

Vollständige Dokumentation: API_DOCS.md

Quellen

Basiert auf Reverse Engineering durch:

About

Inoffizielle OpenAPI-Dokumentation für das Weishaupt WEM Portal mit JavaScript-Client und Integrationstests

Topics

Resources

License

Stars

Watchers

Forks

Contributors