4.6 KiB
Portal: Waermepumpe und Header
Stand: 6. Oktober 2026. Entwickelt und getestet, noch nicht live veroeffentlicht.
Aenderung / Pull-Request-Text
Der bestehende Katalogeintrag heat_pump wird im Lizenzkauf beruecksichtigt.
Die bestehenden Preise bleiben unveraendert: CHF 20.95 Lizenz und CHF 27.25
Generator / Ersteinrichtung, jeweils netto. Die Bereitstellung aktiviert nur die
Verfuegbarkeit des Produkts; sie kauft keine Lizenz und vergibt keine kostenlose
Berechtigung an eine Anlage.
Der Wizard hat einen eigenen Waermepumpenschritt mit SG Ready oder Sperre/Erhoehung,
zwei Kontakten, Betriebsrueckmeldung und Schutzzeiten. Gespeicherte Konfigurationen,
Lizenzvorschlag und generiertes Symcon-Paket verwenden das Modul
{A31C9274-54F7-4BD2-9804-7AF23E86C4D1}. Freie Bestandskontingente von
consumer_single werden wie im Manager angerechnet, ohne Doppelbelegung.
Technische Variablenkennungen duerfen zur Planung noch 0 sein. Das Bootstrap-Skript
bricht vor Objektveraenderungen ab, wenn die Waermepumpen-Zuordnung unvollstaendig
ist, das Modul fehlt oder die Rueckmeldung einen unpassenden Typ hat.
Dokumentation und Preise stehen als Textlinks rechts im Portalheader und nicht mehr in der Seitennavigation. Oeffentliche Links auf der Anmeldeseite bleiben.
Voraussetzungen und Konfliktschutz
- Ziel:
/home/agent/services/licenseaufenelix-services. portal.patchzeigt ausschliesslich Aenderungen gegen den gelesenen Live-Stand.manifest.jsonenthaelt SHA-256 vor und nach jeder Quellaenderung.- Die weiterentwickelte, nicht veroeffentlichte Wizard-Fassung auf
ubuntuwird nicht durch diesen Live-Patch ersetzt. - Keine Aenderung an Symcon-Anlagen, Docker-Compose, Datenbankschema, Geheimnissen,
Prognosediensten oder fremden Git-Aenderungen. Daniel Haefliger hat Commit und
Push auf
developsowie den Portalneustart ausdruecklich freigegeben.
Tests
- 32 Node-Tests: vorhandene Portalregressionen plus acht neue Waermepumpentests.
- Browserpruefung mit isolierten API-Fixtures: Header bei 1440, 768, 390 und 320 Pixeln; Wizard konfigurieren, speichern, Lizenzvorschlag und erneut oeffnen.
- Keine Browserfehler. Kein echter Kauf, keine Live-Lizenzvergabe und keine Schaltbefehle an eine Waermepumpe.
- JavaScript-Syntax und Anwendbarkeit des Patches geprueft. PHP-Syntaxpruefung und Symcon-Laufzeittest konnten nicht ausgefuehrt werden: keine native PHP-CLI und kein Zugriff auf die Docker-Sockets in dieser Agent-Ausfuehrung.
tests/enthaelt neue bzw. angepasste Tests. Im Testcheckout in dessen vorhandenestests/uebernehmen undnode --test tests/*.test.mjsausfuehren.- Browserpruefung:
node tests/browser-smoke.mjsmit installiertem Playwright und Chromium; optionalBROWSER_PACKAGEundBROWSER_EXECUTABLEfuer vorhandene Testwerkzeuge setzen. API-Antworten stammen ausschliesslich aus Test-Fixtures.
Bereitstellung
Der Portalneustart ist vom Auftraggeber freigegeben; dem Serverkonto agent
fehlt jedoch der technische Zugriff auf den Docker-Socket. Ein berechtigter
Administrator prueft dieses Paket und fuehrt auf dem Diensteserver aus:
python3 /PFAD/ZUM/PAKET/deploy.py
Das Skript verlangt Root, prueft alle Ausgangshashes und Container-Mounts und
bricht bei Abweichungen ohne Quellaenderung ab. Es sichert die betroffenen Dateien
und den Katalog, stoppt nur enelix_license_portal, schreibt die Quelldateien
unter Erhalt der Datei-Bind-Mounts und setzt ausschliesslich die Produktfreigabe
items.heat_pump.available auf true. Anschliessend startet es den Portalcontainer
und prueft Healthcheck, Wizardkatalog und ausgelieferte Oberflaeche. Es nimmt keine
Bestellung vor und laesst alle Produktpreise unveraendert.
Das Stoppen/Starten verursacht eine kurze Portalunterbrechung. Backoffice und Anlagensteuerungen werden nicht neu gestartet. Vor Ausfuehrung parallele Katalogbearbeitungen im Backoffice fuer das Wartungsfenster aussetzen.
Ruecksetzen und Nachkontrolle
Bei Fehlern stellt das Skript die gesicherten Quellinhalte wieder her und startet
den Portalcontainer erneut. Ein nachtraeglich anderweitig veraenderter Katalog
wird dabei nicht blind ueberschrieben. Sicherungen liegen unter
/home/agent/services/license/change-backups/heat-pump-header-<Zeitpunkt>.
Nach erfolgreicher Bereitstellung angemeldet Headerlinks, neue Lizenzzeile, Waermepumpenschritt, Speichern und Wiedereroeffnen kontrollieren. Zahlungen nur mit einem ausdruecklich freigegebenen Sandbox-Test abschliessen. Das erzeugte Symcon-Paket zuerst in einer isolierten IP-Symcon-8-Installation pruefen; das Ausfuehren des Pakets kann Kontakte schalten und ist kein Bestandteil dieser Portalbereitstellung.