OpenDTU #
OpenDTU ist ein ESP32-Gerät, das per Funk mit Hoymiles-Wechselrichtern spricht und deren Leistungsdaten ausliest. Das Gerät bringt seine Weboberfläche selbst mit.
Diese App betreibt nichts — sie macht die Oberfläche des Geräts über den Cluster erreichbar.
Quelle #
Keine. Es gibt kein Helm-Chart und kein Container-Image; das Verzeichnis enthält ausschließlich Kubernetes-Manifeste.
Dokumentation #
Funktion #
Drei Ressourcen in opendtu.yaml:
| Ressource | Zweck |
|---|---|
Endpoints |
Trägt die IP-Adresse des Geräts im Heimnetz von Hand ein |
Service |
Ein Service ohne Selektor, der genau diese Endpoints verwendet |
Ingress |
Veröffentlicht den Service unter einem eigenen Hostnamen |
Das Muster ist der übliche Weg, ein Gerät außerhalb des Clusters wie einen Cluster-Dienst zu behandeln: Ein Service ohne Selektor bekommt normalerweise automatisch erzeugte Endpoints — hier fehlen die Pods, also werden sie von Hand gesetzt.
Das Gerät gewinnt dadurch, ohne selbst etwas zu können:
- TLS über ein von cert-manager ausgestelltes Zertifikat, statt reines HTTP
- Anmeldung über Authentik, statt der schwachen Geräteauthentifizierung
- Beschränkung auf das lokale Netz durch die Middleware
localnet
Lokale Anpassungen #
Wichtige Einstellungen #
- Middlewares:
localnetundauthentik, beide amwebsecure-EntryPoint. - Zertifikat:
certs.yamlfordert es über cert-manager an. - Adresse des Geräts: steht als
Endpoints-Eintrag inopendtu.yaml.
Genau dort liegt der Haken: Die Adresse ist fest eingetragen. Bekommt das Gerät per DHCP eine andere, zeigt der Service ins Leere, ohne dass irgendetwas Alarm schlägt. Dem Gerät eine feste Adresse geben — oder eine DHCP-Reservierung.
Installation #
Bereitgestellt über ArgoCD mit Kustomize. Von Hand:
1kubectl kustomize apps/opendtu | kubectl apply -n opendtu -f -Kein --enable-helm nötig, es ist kein Chart im Spiel.
Abhängigkeiten #
- Traefik als Ingress-Controller, samt der Middlewares
localnetundauthentik - Authentik für die vorgeschaltete Anmeldung
- cert-manager für das TLS-Zertifikat
- Das OpenDTU-Gerät selbst, erreichbar unter der eingetragenen Adresse