Dockerimage

Solaranzeige und Docker
Alles was mit der Docker Version zu tun hat.

Moderatoren: Ulrich, DeBaschdi

DeBaschdi
Beiträge: 157
Registriert: Mo 10. Aug 2020, 08:13
Hat sich bedankt: 7 Mal
Danksagung erhalten: 22 Mal

Re: Dockerimage

Beitrag von DeBaschdi »

Moin etofi,
nicht alles was aus den Paketquellen kommt ist Gold :)
Python dependencies installiere ich mit pip3.
Ich kann das mal bei Gelegenheit durchspielen, die dependencies sind ja gut beschrieben, meist baue ich bei "Fragezeichen" und zum "Rumspielen" erstmal lokal auf der Workstatuon (100 mal schneller als hub.docker)

Geini
Beiträge: 10
Registriert: Fr 26. Feb 2021, 21:19
Wohnort: Niedersachsen, LK Gifhorn
Hat sich bedankt: 5 Mal

Re: Dockerimage

Beitrag von Geini »

DeBaschdi hat geschrieben:
Mi 3. Mär 2021, 06:02
...möglicherweise passiert das nur wenn sonoff gewählt wird ?!

Fangen wir mal von vorne an, wie hast du den Docker abgerufen ?
was hast du in der user_config geändert ?
...
Also ich hab das jetzt grad nochmal alles durchgespielt:
  1. Persistente Pfade in Docker erstellt (diesmal ohne Access control, vllt. hilfts ^^ )

    Code: Alles auswählen

    /var/lib/docker/volumes/grafana_storage/_data
    und entsprechend so weiter..
  • container erstellt:

    Code: Alles auswählen

    docker run   -d   -e TIMEZONE="Europe/Berlin"   -e UPDATE="yes"   -e MOSQUITTO="yes"   -e INFLUXDB="yes"   -p 3000:3000   -v /var/lib/docker/volumes/solaranzeige_storage/_data:/solaranzeige   -v /var/lib/docker/volumes/influxdb_storage/_data:/var/lib/influxdb   -v /var/lib/docker/volumes/grafana_storage/_data:/var/lib/grafana   -v /var/lib/docker/volumes/www_storage/_data:/var/www   --name=Solaranzeige   --restart unless-stopped   --tmpfs /tmp   --tmpfs /var/log   takealug/solaranzeige:latest
  • Danach setup gestartet

    Code: Alles auswählen

    docker exec -ti Solaranzeige /solaranzeige/setup
  • Code: Alles auswählen

    $Objekt = "solarpow";
    - Keine Ahnung ob das muss, aber habs eingetragen
  • Nach dem Setup dann, die PHP Notice Meldungen

    Code: Alles auswählen

    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1849
    PHP Notice:  Undefined index: AC_Spannung in /var/www/html/phpinc/funktionen.inc.php on line 1851
    PHP Notice:  Undefined index: AC_Strom in /var/www/html/phpinc/funktionen.inc.php on line 1852
    PHP Notice:  Undefined index: AC_Blindleistung in /var/www/html/phpinc/funktionen.inc.php on line 1855
    PHP Notice:  Undefined index: Status in /var/www/html/phpinc/funktionen.inc.php on line 1876
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1877
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1882
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1887
    PHP Notice:  Undefined index: Powerstatus0 in /var/www/html/phpinc/funktionen.inc.php on line 1889
    PHP Notice:  Undefined index: Powerstatus1 in /var/www/html/phpinc/funktionen.inc.php on line 1890
    PHP Notice:  Undefined index: Powerstatus in /var/www/html/phpinc/funktionen.inc.php on line 1891
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1899
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1899
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1899
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1899
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1849
    PHP Notice:  Undefined index: AC_Spannung in /var/www/html/phpinc/funktionen.inc.php on line 1851
    PHP Notice:  Undefined index: AC_Strom in /var/www/html/phpinc/funktionen.inc.php on line 1852
    PHP Notice:  Undefined index: AC_Blindleistung in /var/www/html/phpinc/funktionen.inc.php on line 1855
    PHP Notice:  Undefined index: Status in /var/www/html/phpinc/funktionen.inc.php on line 1876
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1877
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1882
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1887
    PHP Notice:  Undefined index: Powerstatus0 in /var/www/html/phpinc/funktionen.inc.php on line 1889
    PHP Notice:  Undefined index: Powerstatus1 in /var/www/html/phpinc/funktionen.inc.php on line 1890
    PHP Notice:  Undefined index: Powerstatus in /var/www/html/phpinc/funktionen.inc.php on line 1891
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1899
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1899
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1899
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1899
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1849
    PHP Notice:  Undefined index: AC_Spannung in /var/www/html/phpinc/funktionen.inc.php on line 1851
    PHP Notice:  Undefined index: AC_Strom in /var/www/html/phpinc/funktionen.inc.php on line 1852
    PHP Notice:  Undefined index: AC_Blindleistung in /var/www/html/phpinc/funktionen.inc.php on line 1855
    PHP Notice:  Undefined index: Status in /var/www/html/phpinc/funktionen.inc.php on line 1876
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1877
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1882
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1887
    PHP Notice:  Undefined index: Powerstatus0 in /var/www/html/phpinc/funktionen.inc.php on line 1889
    PHP Notice:  Undefined index: Powerstatus1 in /var/www/html/phpinc/funktionen.inc.php on line 1890
    PHP Notice:  Undefined index: Powerstatus in /var/www/html/phpinc/funktionen.inc.php on line 1891
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1899
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1899
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1899
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1899
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1849
    PHP Notice:  Undefined index: AC_Spannung in /var/www/html/phpinc/funktionen.inc.php on line 1851
    PHP Notice:  Undefined index: AC_Strom in /var/www/html/phpinc/funktionen.inc.php on line 1852
    PHP Notice:  Undefined index: AC_Blindleistung in /var/www/html/phpinc/funktionen.inc.php on line 1855
    PHP Notice:  Undefined index: Status in /var/www/html/phpinc/funktionen.inc.php on line 1876
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1877
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1882
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1887
    PHP Notice:  Undefined index: Powerstatus0 in /var/www/html/phpinc/funktionen.inc.php on line 1889
    PHP Notice:  Undefined index: Powerstatus1 in /var/www/html/phpinc/funktionen.inc.php on line 1890
    PHP Notice:  Undefined index: Powerstatus in /var/www/html/phpinc/funktionen.inc.php on line 1891
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1899
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1899
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1899
    PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1899
    
und hängt es wie gehabt:

Code: Alles auswählen

03.03. 17:44:01 |----------------   Start  sonoff_mqtt.php    --------------------- 
03.03. 17:44:01    -Zentraler Timestamp: 1614789841
03.03. 17:44:01 +  -Die Daten werden ausgelesen...
03.03. 17:44:09    -Keine Daten vom Sonoff Modul empfangen.
03.03. 17:44:09 !! -Keine gültigen Daten empfangen.
03.03. 17:44:09 |----------------   Stop   sonoff_mqtt.php     -------------------- 
habe aber grad gesehen, dass da noch ne Meldung rum schwirrt

Code: Alles auswählen

03.03. 17:45:01 MQT-Pipe exestiert nicht. Nur Info, kein Fehler...Exit.
das war meine ganze vorgehensweise um da vllt. was nachvollziehen zu können..

Bin für jeden weiteren Tipp oder versuch dankbar!! würde das liebend gerne zum laufen kriegen.
Plan B, wäre wohl Solaranzeigen Image drauf, und dann versuchen dort Docker zu installieren um meine anderen Dienste zum laufen zu kriegen.. quasi als workaround.. aber ist ja eigentlich nicht sinn der Sache :(

ich hoffe, es fällt jemanden was bei meiner Vorgehensweise auf!
Hardware: Raspberry 3b+, Sonoff POW R2 + Shelly 3EM (vorm Zähler)
2*375W Trina Honey Mono, APSystems YC600
:arrow: Solaranzeige läuft im Docker Container (Danke, DeBaschdi)

DeBaschdi
Beiträge: 157
Registriert: Mo 10. Aug 2020, 08:13
Hat sich bedankt: 7 Mal
Danksagung erhalten: 22 Mal

Re: Dockerimage

Beitrag von DeBaschdi »

Hi, Prinzipiell fällt mir auf das du keinen Benutzer und keine Gruppe angegeben hast, in diesem fall wird User=99 und GUID=100 verwendet (Default), das ist schonmal schlecht, da user 99 vermutlich nicht auf deinem System existiert.

1.
Erstell bitte mal einen neuen User, nenn ihn z.b dockeruser, der hat sein home dann in /home/dockeruser.
https://wiki.ubuntuusers.de/adduser/

2.
Innerhalb seines Homes erstellst du in seinem namen (als dockeruser selbst, nicht als root! einen Ordner für Docker Daten, nenn ihn z.b AppData, als Unterordner innerhalb AppData würde ich solaranzeige erstellen. Innerhalb solaranzeige dann alle zu exportierenden persistenten Pfade.

3.
Füge den neuen dockeruser in die Gruppe "docker" + users
(möglicherweise muss gruppe docker erst erstellt werden)

https://docs.docker.com/engine/install/ ... %20More%20

4.
Log dich als dockeruser im Terminal ein,
Jetzt musst du herausfinden welche userid dein neuer dockeruser bekommen hat, und welche group id users hat.

https://wiki.ubuntuusers.de/Benutzer_und_Gruppen/

Und nun rufst du den Container mit dem run befehl als dockeruser ab, übergibst die ermittelte userid + group id.

5.
Das war das grundsätzlich emofohlene Vorgehen mit Dockern, erklärt aber nicht unbedingt die php notice Meldungen.
Wäre schön wenn ein mqtt Benutzer dazu etwas sagen kann, durchaus möglich das in der user_config etwas faul ist.

Ich nehme mal an du hast wenigstens versucht mittels ping dein sonoff innerhalb des images zu errichen ?

Geini
Beiträge: 10
Registriert: Fr 26. Feb 2021, 21:19
Wohnort: Niedersachsen, LK Gifhorn
Hat sich bedankt: 5 Mal

Re: Dockerimage

Beitrag von Geini »

Vielen dank, für den Crashkurs!

habe alles befolgt, aber es bleibt alles wie zuvor :(

zu der Frage, wegen des Ping: ja, habe ich tatsächlich.. der ist erreichbar. (auch nochmal mit dem dockeruser probiert)

Ich hätte da allerdings auch noch ne Frage: Muss der Port 1883 nicht dauerhaft offen sein?
Bin da noch nicht so ganz hintergestiegen, wie das läuft.. also ob der Sonoff per MQTT seine Daten sendet und die abgespeichert werden oder aktiv nach daten gefragt wird :?:


na ja.. ich glaub da muss wirklich jemand ran, der mit MQTT und der solaranzeige um kann
ich hoffe da findet sich jemand..
Hardware: Raspberry 3b+, Sonoff POW R2 + Shelly 3EM (vorm Zähler)
2*375W Trina Honey Mono, APSystems YC600
:arrow: Solaranzeige läuft im Docker Container (Danke, DeBaschdi)

jottt
Beiträge: 97
Registriert: Mo 1. Mär 2021, 00:18
Hat sich bedankt: 10 Mal
Danksagung erhalten: 10 Mal

Re: Dockerimage

Beitrag von jottt »

Gibt es eine Möglichkeit aus dem Container heraus einen restart zu veranlassen?

DeBaschdi
Beiträge: 157
Registriert: Mo 10. Aug 2020, 08:13
Hat sich bedankt: 7 Mal
Danksagung erhalten: 22 Mal

Re: Dockerimage

Beitrag von DeBaschdi »

Hi, Container werden außerhalb des Images neu gestartet :

Code: Alles auswählen

docker restart Solaranzeige

jottt
Beiträge: 97
Registriert: Mo 1. Mär 2021, 00:18
Hat sich bedankt: 10 Mal
Danksagung erhalten: 10 Mal

Re: Dockerimage

Beitrag von jottt »

ja das weiß ich.
ich würde nur gern einen watchdog innerhalb des containers basteln, der den container neustarten kann. aber wenns so nicht geht, muss ich von außen schauen

DeBaschdi
Beiträge: 157
Registriert: Mo 10. Aug 2020, 08:13
Hat sich bedankt: 7 Mal
Danksagung erhalten: 22 Mal

Re: Dockerimage

Beitrag von DeBaschdi »

jottt hat geschrieben:
Mo 8. Mär 2021, 07:30
ich würde nur gern einen watchdog innerhalb des containers basteln, der den container neustarten kann.
Das klappt nur, (eingeschränkt) wenn du ein eigenes Image baust, denn Änderungen sind nicht persistent, bei einem neustart o.ä wäre wieder alles auf "0".
Wie gesagt lässt sich ein Container innerhalb sich selbst nicht neu starten, höchstens die Services welche innerhalb des Images laufen.
Du kannst das aber "problemlos" extern lösen, zum auswerten der Ereignisse stehen ja die exportierten (persistenten) Logfiles des Containers zu verfügung.

jottt
Beiträge: 97
Registriert: Mo 1. Mär 2021, 00:18
Hat sich bedankt: 10 Mal
Danksagung erhalten: 10 Mal

Re: Dockerimage

Beitrag von jottt »

ja Neubau ist zu viel Aufwand...dann lieber von außen die Logfile auswerten. ich wollte nur nach Möglichkeit alles zu Solaranzeige im entsprechenden Docker halten. Die Alternative wäre, das Konstrukt Solaranzeige im Docker neuzustarten, aber das ist mir bisher noch nicht geglückt. Der Abruf der Daten vom Wechselrichter läuft dann zwar wieder an, produziert aber Fehler. ich vermute, da klemmt noch irgendwo etwas.

Mein Problem ist: Mir bleibt der Modbus-Abruf von Daten oft (1-2x am Tag) einfach stehen. Ich vermute er bekommt kurz keine Daten, aber er fängt sich nicht wieder und wartet, ohne Fehler ohne Abbruch. Daher der Gedanke ("Kein Eintrag seit >1 Minute -> Töten")

Geini
Beiträge: 10
Registriert: Fr 26. Feb 2021, 21:19
Wohnort: Niedersachsen, LK Gifhorn
Hat sich bedankt: 5 Mal

Re: Dockerimage

Beitrag von Geini »

wollt nur kurz info geben:

Bei mir auch nix neues.. hab nach etlichen versuchen und vielen rumprobieren nichts erreicht.
hab jetzt das standard-image laufen und da klappt alles wie erwartet (also liegts schonmal nicht an irgendwas anderem)

wollt jetzt (sobald ich zeit hab) nochmal gucken, welche Version des Images/Solaranzeige in der Docker Version läuft. Nicht dass da schon der Fehler liegt, weil der Sonoff Teil noch n unfertigen Stand hat..
Hardware: Raspberry 3b+, Sonoff POW R2 + Shelly 3EM (vorm Zähler)
2*375W Trina Honey Mono, APSystems YC600
:arrow: Solaranzeige läuft im Docker Container (Danke, DeBaschdi)

Antworten