Selbstüberwachung
Betrieb ohne Server
Der Server ist für Komfort da, nicht für das Überleben der Pflanzen. Alles, was die Anlage am Leben hält, läuft im Hub und in den Modulen.
Auf dieser Seite
Wann der Hub autonom wird
Kommt 90 Sekunden lang nichts vom Server, weder Sollwert noch Konfiguration noch Befehl noch Update noch Wetter noch Alarmliste, gilt der Hub als autonom. Die Zeit ist einstellbar.
Damit das nur passiert, wenn der Server wirklich fehlt, hört jeder Hub, der online ist, spätestens alle 40 Sekunden etwas vom Server. Sollwerte gehen nur an Hubs mit Reglern, Wetter nur bei eingeschaltetem Wetter. Ging an einen Hub 30 Sekunden lang nichts, schickt der Server ihm seine Alarmliste erneut, auch eine leere. Bis 0.9.0 fehlte das: Ein Hub mit nur einem Sensormodul ging nach 90 Sekunden in den autonomen Betrieb, obwohl der Server lief.
Als Lebenszeichen des Servers zählen nur frische Nachrichten. Die Konfiguration, die der Broker nach einer neuen Verbindung nachreicht, wird angewendet, beendet den autonomen Betrieb aber nicht.
Online, aber nichts vom Server
Ein autonomer Hub kann zugleich online sein. Er hält dann seine Messwerte zurück und liefert sie später nach. Die Oberfläche markiert seine Werte sofort als stillstehend: „nicht aktuell, wird nachgeliefert“ statt „veraltet“. Bleibt ein Hub 80 Sekunden autonom, obwohl der Server ihm sendet, kommt bei ihm nichts an, etwa wegen der Rechte am Broker. Der Server meldet dann die Warnung „Hub empfängt nichts vom Server“. Sie endet, sobald der Hub wieder hört oder offline geht.
Ist ein Hub offline, bleibt es bei „veraltet“ und „Hub offline seit …“, denn ohne Strom ist sein Puffer verloren. Seine Module zählen dann ebenfalls als offline, auch wenn ihr letzter Status etwas anderes sagte. Seit 0.10.0 ist ein Hub ohne Strom nach höchstens etwa 15 Sekunden offline (MQTT-Keepalive 10 Sekunden, vorher etwa 45 Sekunden).
Was weiterläuft
| Läuft weiter | Fehlt |
|---|---|
| alle Regler, mit den zuletzt bekannten Sollwerten | neue Sollwerte aus Profilen nach Tages- und Jahreszeit |
| Sicherheitsschicht, Verriegelungen, Störungssperren | Anpassung an die Wettervorhersage |
| Plausibilität und Wirkungsüberwachung | eigene Regeln, sie laufen auf dem Server |
| ein laufendes „Auffüllen bis X %“ | Oberfläche und Handbetrieb aus dem Browser |
| Messen und Puffern | Benachrichtigungen per Mail und Push |
Der Puffer
Messwerte, Reglerzustände und Ereignisse landen im Puffer, wenn der Broker fehlt oder der Hub autonom ist.
- Gefordert
- mindestens 1000 Einträge
- Mit PSRAM
- 256 KB, ein Messwert braucht etwa 110 Byte
- Ohne PSRAM
- 24 KB, etwa 200 Einträge
- Aufteilung
- ein Viertel Ereignisse, der Rest Messwerte
- Wenn voll
- die ältesten fallen heraus
- Nachliefern
- zuerst Ereignisse, dann Messwerte, 20 je Durchlauf
Ereignisse und Messwerte haben getrennte Puffer, damit Messwerte keine Alarme verdrängen.
Was der Hub dauerhaft speichert
| Was | Wann geschrieben |
|---|---|
| Konfiguration | bei jeder neuen Konfiguration, über eine temporäre Datei und Umbenennen |
| Sollwerte vom Server | höchstens alle 10 Minuten |
| Sperren von Ausgängen und Sensoren | beim Sperren und bei der Freigabe |
| Zugangsdaten zum Broker | bei der Übernahme |
| Busadressen der Module | je Seriennummer |
So wird der Flash-Speicher selten beschrieben. Ein Hub, der ohne Server startet, arbeitet mit der gespeicherten Konfiguration und den gespeicherten Sollwerten.
Ohne Uhr
Der Hub stellt seine Uhr über das Netzwerk. Solange sie nicht gestellt ist, meldet er Zeitstempel als Sekunden seit dem Start. Der Server erkennt das an den kleinen Werten.
Regler mit Zeitfenster stehen dann. Das betrifft das Licht. Die Tagesgrenze der Bewässerung zählt Tage seit dem Start.
Wie der Hub den Server findet
- Eingetragene Adresse. Steht im Einrichtungs-WLAN eine Server-Adresse, gilt sie. Sonst versucht er zuerst die Adresse, unter der er den Server zuletzt gefunden hat.
- mDNS. Ein kleiner Dienst auf dem Server kündigt ihn im Heimnetz mit dem HTTPS-Port an. Das braucht Host-Netzwerk, also Linux.
- Netzsuche. Kommt keine Antwort, etwa unter Docker Desktop, sucht der Hub das eigene Netz nach einem offenen Port 8443 oder 443 ab. Das kann bis etwa drei Minuten dauern.
Jeden Kandidaten prüft der Hub über HTTPS. Beim ersten Mal holt er das CA-Zertifikat und nimmt es nur, wenn es zum Server-Schlüssel im Einrichtungscode passt. Danach fragt er nach dem Port für MQTT über TLS. Nach einem Neustart verbindet er sich mit der bekannten Adresse seit 0.10.0 gleich per MQTT über TLS und prüft erst, wenn das in 20 Sekunden nicht klappt. Liegt der Server in einem anderen Netz, etwa hinter VLAN oder VPN, wird die Adresse eingetragen.
Die Module ohne Hub
Fällt auch der Hub aus, gehen alle Ausgänge nach 10 Sekunden auf ihren sicheren Wert. Die elektronische Sicherung und die maximale Laufzeit arbeiten weiter. Eine Regelung gibt es dann nicht mehr. Die Module halten die Anlage in einem sicheren Zustand, bis der Hub zurück ist.