Dockerimage

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

Moderatoren: Ulrich, DeBaschdi

Durendal
Beiträge: 10
Registriert: Do 17. Sep 2020, 09:45
Hat sich bedankt: 1 Mal

Re: Dockerimage

Beitrag von Durendal »

Hallo zusammen,
zuerst mal vielen Dank, dass du dir die Mühe gemacht hast, super Arbeit!
Ich hatte das auch vor, allerdings wollte ich das in einer Ubuntu VM nachbauen.
So ist es jedoch einfacher.
Ich habe nur ein Problem gerade.
Solaranzeige will nicht in die lokale InfluxDB schreiben. HTTP error 400.
Dadurch bekommt natürlich auch Grafana keine Daten.

Code: Alles auswählen

26.10. 08:28:07    -Daten nicht zur lokalen InfluxDB gesendet! info: array (
  'url' => 'http://localhost/write?db=solaranzeige&precision=s',
  'content_type' => 'application/json',
  'http_code' => 400,
  'header_size' => 427,
  'request_size' => 742,
  'filetime' => -1,
  'ssl_verify_result' => 0,
  'redirect_count' => 0,
  'total_time' => 0.320826,
  'namelookup_time' => 7.1E-5,
  'connect_time' => 7.2E-5,
  'pretransfer_time' => 0.000178,
  'size_upload' => 585.0,
  'size_download' => 154.0,
  'speed_download' => 481.0,
  'speed_upload' => 1828.0,
  'download_content_length' => 154.0,
  'upload_content_length' => 585.0,
  'starttransfer_time' => 0.320782,
  'redirect_time' => 0.0,
  'redirect_url' => '',
  'primary_ip' => '127.0.0.1',
  'certinfo' => 
  array (
  ),
  'primary_port' => 8086,
  'local_ip' => '127.0.0.1',
  'local_port' => 36010,
  'http_version' => 2,
  'protocol' => 1,
  'ssl_verifyresult' => 0,
  'scheme' => 'HTTP',
  'appconnect_time_us' => 72,
  'connect_time_us' => 72,
  'namelookup_time_us' => 71,
  'pretransfer_time_us' => 178,
  'redirect_time_us' => 0,
  'starttransfer_time_us' => 320782,
  'total_time_us' => 320826,
)

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 »

Hmm, http 400 sagt ja generell aus das die client Anfrage falsch aufgebaut war, jetzt wäre es natürlich interessant zu wissen was da genau schief ging :shock:

Nutzt du nicht das Influx inenrhalb des Containers ?
Die Anfrage zu Influx scheint zumindest innerhlab des Containers zu erfolgen,
Ist Influx gestartet ?
mal in das Image rein mit :

Code: Alles auswählen

docker exec -ti Solaranzeige /bin/bash
und checken mit :

Code: Alles auswählen

service influxdb status
Steht etwas interessantes in /var/www/log/influxdb.log ?

Durendal
Beiträge: 10
Registriert: Do 17. Sep 2020, 09:45
Hat sich bedankt: 1 Mal

Re: Dockerimage

Beitrag von Durendal »

Hmm, hat sich erledigt. Mein Fehler.
Wer lesen kann...
Ich hatte den falschen Wechselrichter eingetragen, 18 statt 16.
Jetzt bekommt auch Grafana Daten.
Nachdem ich im Verzeichnis /var/www/html noch ein Unterverzeichnis database angelegt habe, wird auch die Datei kwhProTag.txt erzeugt.
Jetzt passt soweit alles.

meltroose
Beiträge: 4
Registriert: So 26. Jul 2020, 13:35
Danksagung erhalten: 1 Mal

Re: Dockerimage

Beitrag von meltroose »

Hi DeBaschdi,

habe vor einigen Tagen ebenfalls das DockerImage gezogen und bei meinen Hosts aufgesetzt. Ich betreibe die Solaranzeige mit einem Sonoff POWR2.
Bisher habe ich den MQTT Service aber weder mit meiner bestehenden Config der Solaranzeige, noch einem frischen Setup hinbekommen.

Kurze Recherche zeigt, dass der Mosquitto daemon nur als Root startet aber auch dann keine Verbindungen o.Ä. möglich sind. Wenn man sich via -u 0 als root einlogt und dann den Service startet, sowie händisch Port 1883 noch mal rausmappt, tut sich leider dennoch nichts.

Wenn man beim Setup die "23" für den Sonoff POWR2 als WR einträgt, erscheinen noch folgende Fehlermeldungen:

Code: Alles auswählen

PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1677
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1677
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1686
PHP Notice:  Undefined index: Status in /var/www/html/phpinc/funktionen.inc.php on line 1702
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1703
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1708
PHP Notice:  Undefined index: Powerstatus in /var/www/html/phpinc/funktionen.inc.php on line 1714
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1718
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1718
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1718
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1677
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1677
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1686
PHP Notice:  Undefined index: Status in /var/www/html/phpinc/funktionen.inc.php on line 1702
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1703
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1708
PHP Notice:  Undefined index: Powerstatus in /var/www/html/phpinc/funktionen.inc.php on line 1714
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1718
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1718
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1718
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1677
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1677
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1686
PHP Notice:  Undefined index: Status in /var/www/html/phpinc/funktionen.inc.php on line 1702
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1703
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1708
PHP Notice:  Undefined index: Powerstatus in /var/www/html/phpinc/funktionen.inc.php on line 1714
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1718
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1718
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1718
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1677
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1677
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1686
PHP Notice:  Undefined index: Status in /var/www/html/phpinc/funktionen.inc.php on line 1702
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1703
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1708
PHP Notice:  Undefined index: Powerstatus in /var/www/html/phpinc/funktionen.inc.php on line 1714
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1718
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 1718
PHP Notice:  Undefined index: SonoffModul in /var/www/html/phpinc/funktionen.inc.php on line 171
hat jemand so etwas schon einmal gesehen?

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,
@Ulrich, ist am Mosquitto etwas für den rpi angepasst worden, oder hast du eine Idee ?

meltroose
Beiträge: 4
Registriert: So 26. Jul 2020, 13:35
Danksagung erhalten: 1 Mal

Re: Dockerimage

Beitrag von meltroose »

DeBaschdi hat geschrieben:
Mo 26. Okt 2020, 19:34
Hi,
@Ulrich, ist am Mosquitto etwas für den rpi angepasst worden, oder hast du eine Idee ?
Kurzes Update.. also warum auch immer tut der Mosquitto jetzt wieder. Wenn ich meine Config rüberkopiere, dann werden auch Wetterdaten in die influxDB geschrieben. Grafana ist ebenfalls verfügbar. Sprich der Weg rein in den Container via 1883 ist definitiv möglich.
Das einzige was nicht so recht laufen will, ist die Brücke vom Mosquitto rüber in die Solaranzeige.
Wenn ich das SENSOR Topic der Sonoff im Mosquitto direkt abonniere, dann bekomme ich die Daten auch live angezeigt. Die Solaranzeige liest es aber scheinbar nicht aus.
Wenn ich versuche das funktionierende Topic auf meiner laufenden Solaranzeigeninstanz einfach über die neue zu abonnieren, stellt sich das Ergebnis gleich dar. Es läuft nichts in die Solaranzeige rein.

//edit2
Den einzigen Unterschied, den ich jetzt bei Mosquitto feststellen kann, ist dass auf dem Docker image eine 1.5.7 und auf dem Originalimage eine 1.6.12 Version von Mosquitto läuft. Dazu sind auf dem originalimage noch diverse PHP 7.1/7.2 packete mit drauf. DieFrage ist, ob die noch in Benutzung sind, oder nur Legacy.

//LÖSUNG!
Das MQTT PHP Modul wurde nicht richtig geladen. Dies führt dazu, dass die komplette Solaranzeige keine Möglichkeit hat mit dem MQTT Broker zu kommunizieren. Sieht man unter anderem in diversen Log-Fehlermeldungen, in denen PHP selbst mecfkert, dass Variablen nicht da sind, die initial vom MQTT Broker bezogen werden. Tricky ist, dass in der Initialconfig die Extension scheinbar installiert, aber nicht registriert wird. Führt dazu, dass die Mosquitto.ini da ist und auch teils in PHP angezeigt wird... Rausgefunden hab ich es indem ichdie vom APACHE geladenen Module überprüft habe.


1. /etc/php/7.3/mods-available/mosquitto.ini abändern oder neu erstellen mit diesem Inhalt

Code: Alles auswählen

extension=mosquitto.so
2. phpenmod mosquitto

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, vielen Dank für deine Recherche !

In der Image Version 0.0.5 hab ich deinen Fix eingebaut, zusätzlich ist es nun möglich die Cron einstellungen Persistent zu ändern, im exportierten /solaranzeige Verzeichniss befindet sich nun eine Datei mit dem Namen solaranzeige_cron, nach Änderung muss der Docker neu gestartet werden, immer auf die "Newline" am ende des Files achten ;)
Das "Feature" Ist wohl notwendig für Wallbox und oder Multiregler Konfigurationen realisieren zu können.

Zusätzlich hab ich an den Paketversionen geschraubt

-Grafana v7.2.2
Quelle : deb https://packages.grafana.com/oss/deb stable main

-InfluxDB 1.8.3
Quelle deb https://repos.influxdata.com/debian buster stable

-Mosquitto 1.6.12
Quelle deb https://repo.mosquitto.org/debian buster main

Das Image basiert übrigens auf Debian Buster

meltroose
Beiträge: 4
Registriert: So 26. Jul 2020, 13:35
Danksagung erhalten: 1 Mal

Re: Dockerimage

Beitrag von meltroose »

Danke für die Updates! Für die nächste Version des Images wäre ein NTP service noch empfehlenswert.

Für die Poweruser wäre evtl. noch eine "solaranzeige only" version interessant. Ich hoste Influx, Grafana, Mosquitto zum Beispiel komplett extern in eigenen Containern und hab alles andere abgeschaltet um Ressourcen zu sparen, sobald ich das Image am laufen hatte. Noch besser wär's natürlich wenn die Services erst gar nicht drin wären. Geht sicherlich am Grundkonzept der Solaranzeige vorbei, aber würde den "service" Gedanken durchaus unterstreichen und das image könnte auch auf schwächeren Raspberries gut starten.

rk_dd
Beiträge: 9
Registriert: Mi 8. Jul 2020, 18:47
Wohnort: Dresden

Re: Dockerimage

Beitrag von rk_dd »

"Solaranzeige only" wäre super...

Durendal
Beiträge: 10
Registriert: Do 17. Sep 2020, 09:45
Hat sich bedankt: 1 Mal

Re: Dockerimage

Beitrag von Durendal »

Ist das eigentlich normal, dass von allen Daten, die vom WR angefragt werden, nur ein Bruchteil in der InfluxDB landet?
Wenn man das Loglevel erhöht, sehe ich richtig viele Daten, die da abgefragt werden.
Leider tauchen die bei mir in der influxdb nicht auf.
Ich habe noch nicht herausgefunden, weshalb das so ist.
Aus solaredge_serie.php werden ja eigentlich alle Daten an funktionen->influx_local geschickt.
Die gleichen Daten landen ja auch in funktionen->log_schreiben...
Wo da Daten verloren gehen, ist mir schleierhaft.

Antworten