Überblick
Software
Der Server läuft mit Docker im eigenen Homelab. Die Oberfläche ist eine Web-App, die sich auch auf dem Handy installieren lässt.
Auf dieser Seite
Seiten der Oberfläche
| Seite | Inhalt |
|---|---|
| Übersicht | Live-Modell der Anlage, Kernwerte je Kammer, Tank, Wetter mit Wind und Böen, offene Alarme |
| Kammer | Verläufe, Sollwert gegen Istwert, Bedienung von Hand, Betriebsart Normal oder Frostschutz |
| Geräte | Hubs und Module übernehmen, benennen, Zonen zuweisen, kalibrieren, aktualisieren, freigeben |
| Regeln | Editor, Testlauf, Protokoll |
| Profile | Pflanzenprofile verwalten und Zonen zuweisen |
| Alarme | aktiv, quittiert, Verlauf |
Bedienen
Ein Bauteil antippen zeigt seine Kanäle: Stellwert, Strom, Spannung, Zustand und die zugewiesene Rückmeldung. Mit Berechtigung lässt es sich von Hand schalten, mit Dauer. Danach übernimmt der Regler von selbst wieder.
Warum? Für jeden Ausgang und Zeitpunkt steht die Begründung der letzten Änderung da:
14:03 Uhr: Lüfter A auf 60 %. Regler „Lüften Kammer A“: Temperatur 27,4 °C über Sollwert 24,0 °C.
Tank auffüllen: Im Modell auf den Tank klicken, Ziel und Höchstdauer wählen, starten.
Geräte: Je Ausgang Rolle, Kammer, Tank, Grenzwerte, Nennspannung und die externe Rückmeldung. Hier werden neue Module mit Modultyp und Ort der Sensoren übernommen, Motordaten der Antriebe eingetragen und Sensoren und Antriebe kalibriert. Gesperrte Ausgänge zeigen den Grund und werden hier freigegeben. „Blinken“ lässt ein Modul vor Ort finden: Seine Leuchte blinkt 5 Minuten, „Blinken beenden“ hört vorher auf.
Was dazugehört
| Baustein | Aufgabe |
|---|---|
| Backend | Geräteverwaltung, Übernahme, Messwerte, Regeln, Alarme, Mail, Push, Benutzer, Firmware |
| Datenbank | PostgreSQL mit TimescaleDB, migriert beim Start von selbst |
| Broker | Mosquitto, mit eigenen Zugangsdaten je Hub |
| ntfy | Push-Nachrichten aufs Handy, selbst gehostet |
| Simulator | ersetzt Hub und Module, nur in der Entwicklungsumgebung |
Betrieb und Entwicklung
Es gibt zwei Arten zu starten.
| Art | Befehl | Enthält |
|---|---|---|
| Betrieb | docker compose up --build -d |
Datenbank, Broker, ntfy, Backend, Oberfläche |
| Entwicklung | dev.bat unter Windows oder pnpm dev:up |
zusätzlich Simulator, einen Mail-Fänger und offene Ports für Datenbank und Backend |
Die Entwicklung legt eine zweite Compose-Datei über die erste. Ein schlichtes
docker compose up startet also nie aus Versehen den Simulator.
Die Installation steht unter Server installieren.
Geprüft
| Bereich | Wie |
|---|---|
| Protokoll | Unit-Tests |
| Backend | Integrationstests gegen Datenbank, Broker, Mail-Fänger und den echten Simulator |
| Simulator | Integrationstests gegen einen Broker |
| Oberfläche | Unit-Tests, dazu Bildschirmfotos aller Szenarien des Modells |
| Ganze Anlage | End-to-End-Tests über die Oberfläche mit Playwright |
| Firmware | Tests am Rechner im Container |
In diesem Bereich
- 01 Live-Modell Die Anlage als interaktive Zeichnung, zusammengesetzt aus Layout und Live-Daten. Sechs Vorlagen, ein Editor zum Umbauen und eine eigene Ansicht fürs Handy.
- 02 Regeln Ein visueller Editor aus Bedingungen, Verknüpfungen und Aktionen, eine eigene Ausdruckssprache und ein Testlauf gegen aufgezeichnete Daten.
- 03 Profile Sollwerte je Tageszeit und Jahreszeit, vier eingebaute Profile, vier Betriebsmodi, Frostschutz je Kammer und eine Wettervorhersage, die sich abschalten lässt.
- 04 Benutzer Drei Rollen je Standort, Zwei-Faktor-Anmeldung, Audit-Log für jede Handlung und Alarme per Mail und Push über einen eigenen ntfy-Server.
- 05 Updates, Sicherung Firmware-Updates aus dem Browser, für Module über den Hub und den CAN-Bus, mit Rückfall auf die alte Version. Dazu Sicherung und Wiederherstellung.
- 06 Simulator Ersetzt Hub und Module, solange keine Hardware da ist. Rechnet Wärme, Feuchte, Wasser und Strom und spielt über 30 Fehlerarten ein.