Solarview mit docker

  • Moin!


    Nachdem Solarview vor einigen Jahren von meiner 7390 auf meine APU umgezogen war und dort mit QEMU lief, habe ich die APU vor kurzem mit OPNsense betankt (vorher IPFire). Da OPNsense auf FreeBSD basiert, musste Solarview mal wieder umziehen. Da mein Synology NAS DS415+ x86_64 basierend ist, stellte der Umzug auf das NAS im großen und ganzen kein Problem dar. Eine Ausnahme war wie immer CSmtp :cry: mit seiner harten Abhängigkeit zu libssl-1.0.0. Eigentlich könnte man CSmtp auf dem Sylology NAS durch ein einfachen Skript ersetzen, wäre da nicht die Eigenart, dass die eigentliche Nachricht CSmtp kodiert übergeben wird, Die Kodierung sieht auf den ersten Blick nach base64 aus, ist es aber wohl nicht nativ ( Manfred: besteht die Möglichkeit, dass Du die Kodierung öffentlich machst, um CSmtp durch eigene Skripte ersetzen zu können ? Das wäre sicherlich hilfreich!).


    Einziger Ausweg raus aus der CSmtp Problematik war aus meiner Sicht Docker. Basierend auf i386/debian:8.10-slim lässt sich ein kleines Container Image zimmern. Diesem wird das Solarview Verzeichnis mit "-v" nach "/solarview" gemappt (Solarview selber ist also NICHT Bestandteil des Containers), und in dem Verzeichnis wird "start.sh" erwartet, das alle Solarview Komponenten startet. Zusätzlich sind natürlich die Ports für den Webserver und ggf. weitere (in meinem Fall UDP 24273 für den SMA) freizugeben. Das wars, dann läuft Solarview glücklich im Docker Container. Da bei Debian 8 die GLIBC Version und libssl zu CSmtp passen, klappt es dann auch wieder mit den Mails. Anbei das Dockerfile für den Container, so es jemand das nachbauen möchte:



    Das bootstrap.sh ist auch recht einfach gestrickt und referenziert nur das start.sh:


    Bash
    #!/bin/sh
    #
    cd /solarview && ./start.sh 2>&1 | tee -a docker.log
  • Hi Neizner,


    der Text ist nicht verschlüsselt, sondern es werden einfach die ASCII - Codes in hexadezimaler Form übermittelt (immer zwei Zeichen lang). Damit ist das Übertragen von Sonder- und Steuerzeichen als Parameter kein Problem.


    Viele Grüsse,
    Manfred

  • Ah, perfekt, das hilft, vielen Dank!


    Code
    solarview@uno:~/opt/solarview$ cat msg | xxd -l 120 -ps -c 20 -u -r
    WR 1:
    Tagesertrag: 8.9 kWh (1.1 kWh/p)
    Monatsertrag: 357 kWh (44.6 kWh/p)
    Jahresertrag: 7253 kWh (907 kWh/p)
    Gesamtertrag: 38548 kWh (4818 kWh/p)


    Aktuell läuft das ganze Dank Docker wunderbar auf dem NAS, aber mit der Info kann CSmtp sehr einfach durch ein Skript ersetzen, wenn man keine libssl-1.0.0 zur Hand haben sollte :D


    Gruß, Marc

  • Hi !


    Was beim Dockerfile übrigens noch fehlte, war ein "eigenes" curl, denn auch hier gibt es eine Abhängigkeit zur libssl (in meinem Fall zur libssl-0.9.8 und damit zu einer anderen Version als bei CSmtp :? )



    Gruß, Marc

  • Moin!


    Leider hat es Synology hinbekommen, dass mit der aktuellen Version des OS 32bit Container grundsätzlich crashen :( Ich hatte gehofft, dass dies kurzfristig gefixt werden würde, aber leider Fehlanzeige. Was blieb, war ein erneuter Umzug von Solarview. Neben der Fritzbox, der APU und dem Synology NAS, läuft nur noch meine Hausautomation dauerhaft durch. Diese war Raspi und Beaglebone schon for einiger Zeit entwachsen (waren schlicht nicht mehr stark genug). Der aktuelle Einplatinencomputer ein Rock64 (4 Cores, 4GB RAM) ist eine arm64 Architektur, auf der Solarview leider nicht out of the box läuft. Aber auch hier hilft wieder Docker, um Solarview die gewünschte 32bit RPI Umgebungen zu verschaffen.


    Einzige Änderung am Dockerfile ist das Baseimage und schon rockt Solarview auf einem Rock64 :mrgreen:


  • Hallo zusammen,


    ich versuche, meine Solarview Installation in einen Docker-Container zu verschieben. Das scheitert aber letztendlich an dem kostal-fb Proxy. Starte ich solarview über die start.sh im Container, dann scheitert der Aufruf von kostal-fb mit dieser wenig aufschlussreichen Fehlermeldung:

    Wenn ich die start.sh im Host aufrufe, dann läuft alles. Woran kann das liegen?

    Hier meine docker-compose.yml:

    Kann mir wer helfen? Danke für Eure Tips!


    Viele Grüße

    Kai