Daten Proxy/Relay für Unterwegs/Gäste

Anbindung des Controllers an externe Hausautomationssysteme.
TimWHH
Beiträge: 14
Registriert: 21. April 2019, 21:18

Daten Proxy/Relay für Unterwegs/Gäste

Beitrag von TimWHH »

Hi,
seit letzter Woche bin ich stolzer Besitzer einer ProCon.IP und mittlerweile läuft eine Teilmenge der Installation :) Ich bin mir nicht sicher - ob das was ich gebastelt habe - für jemanden anderen interessant ist.

Problembeschreibung
Gäste sollen die Möglichkeit haben, vor einen Besuch zu sehen - wie warm der Pool ist. Das kann der Controller selber, das weiß ich - jedoch möchte ich nicht die Router/Firewall in das interne Netz öffnen.

Funktionsumfang
Daher habe ich mir eine Lösung gebaut, die:
[*] Den Controller kontinuierlich abfragt (aktuell alle 5 Sekunden)
[*] Die Daten an einen zweite Applikation weiterleiten kann
[*] Die Daten in JSON konvertiert
[*] Ein Javascript das mir Platzhalter mit den aktuellen Daten ersetzt
[*] Ein Debug Seite - primär um Werte und Platzhalter zu prüfen.

Der Code
Technisch arbeitet das ganze im Docker (Code ist in Golang).
Beispiel aktuelle Debugseite: https://pool.weyand.biz/debug.html
Git Repository: https://gitlab.com/tim.weyand/poolcontrol
Docker: registry.gitlab.com/tim.weyand/poolcontrol:latest

Testdrive
Docker starten & dann im Webbrowser http://127.0.0.1/debug.html öffnen

Code: Alles auswählen

docker run -e "getStateURL=http://192.168.xx.xxx/GetState.csv" -p 80:80 registry.gitlab.com/tim.weyand/poolcontrol:latest


Individualisierung
Die Debug Seite werde ich natürlich so nicht an Familie & Freunde geben, das soll (hoffentlich) schicker werden. Dafür habe ich ein wenig an den javascript gebastelt, das ersetzt die Platzhalter die ihr auf der Debug Seite einsehen könnt.

Bei meiner Installation, würde mir folgender HTML Schnipsel nur den Filterdruck ausgeben (und aktuallisieren)

Code: Alles auswählen

<html>
    <head>
        <title>Filterdruck</title>
        <script src="js/poolcontrol.js"></script>
     </head>
    <body>
        <span class="poolControlData" data-name="sensors.filterdruck"></span>
    </body>
</html>       
LG
Tim