solectrus / hosting

Step-by-stypes guides for installing and hosting Solectrus
9 stars 4 forks source link

Fehler "fe_sendauth: no password supplied" #24

Closed carwel59 closed 1 year ago

carwel59 commented 1 year ago

The dashboard works pretty fine for the actual view (Verlauf), but switching to the views for a day, a week, a month etc. fails, the page is just showing "content missing". Switching to the preferences results in an internal server error 500.

Edit: Sehe gerade, dass die anderen Issues auch in Deutsch sind, also gerne auch auf Deutsch antworten :)

ledermann commented 1 year ago

Aufgrund der Beschreibung vermute ich ein Problem mit PostgreSQL. Genaueres wirst Du im Docker-Log des Containers finden. Was genau steht dort?

Denkbar wäre aber auch, dass mit den Umgebungsvariablen etwas nicht stimmt, insbesondere das korrekte INSTALLATION_DATE ist wichtig.

Handelt es sich denn um eine Neuinstallation oder lief SOLECTRUS zuvor problemlos?

carwel59 commented 1 year ago

Es handelt sich um eine Neuinstallation. Habe gerade auch ein bereits geschlossenes Ticket dazu gesehen und mglw. habe ich die Änderungen an der .env auch gemacht, nachdem die Datenbank bereits bestand. Ich schaue mal ins Log, vielleicht finde ich da was.

Edit1: Ich habe im Log für den Container solectrus_app_1 einen wiederkehrenden Block, der auf Fehler hindeutet und der auch zeitlich mit dem Aufruf der fehlerhaften Views zusammenpasst. Enthält das Log sensible Daten oder kann ich die entsprechende Passage hier posten? So oder so deutet das Log tatsächlich auf ein Passwort-Problem hin...

ledermann commented 1 year ago

Es gibt keine sensiblen Daten in den Logs, sofern Deine Installation nicht öffentlich erreichbar ist. Ggfs. kannst Du Passwörter oder Token ja unkenntlich machen.

PS: Sorry für die späte Antwort, bei Editierung eines Beitrags verschickt keine GitHub keine Notification, daher habe ich Deine Ergänzung nicht mitbekommen.

carwel59 commented 1 year ago

Es gibt keine sensiblen Daten in den Logs, sofern Deine Installation nicht öffentlich erreichbar ist. Ggfs. kannst Du Passwörter oder Token ja unkenntlich machen.

PS: Sorry für die späte Antwort, bei Editierung eines Beitrags verschickt keine GitHub keine Notification, daher habe ich Deine Ergänzung nicht mitbekommen.

Absolut no need sich zu entschuldigen, dein Support ist absolut prima und es ist ja nicht so, dass mir die Anlage abbrennt, wenn ich einen Tag auf die Antwort warte ;)

Nachfolgend der Block, der entsteht, wenn ich die View wechsele:

2023-04-06T08:13:49.504262315Z stdout ** [Honeybadger] Unable to send error report: API key is missing. id=275512a3-28af-4460-a133-a97d35bc76b4 level=3 pid=52
2023-04-06T08:13:49.504202666Z stdout I, [2023-04-06T08:13:49.441203 #52]  INFO -- : [172.18.0.1] method=GET path=/500 format=html controller=ErrorsController action=show status=500 duration=3.62 view=2.92 user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0
2023-04-06T08:13:49.504161012Z stdout [172.18.0.1] app/controllers/concerns/auto_locale.rb:14:in `switch_locale'
2023-04-06T08:13:49.504121830Z stdout [172.18.0.1] app/controllers/stats_controller.rb:5:in `index'
2023-04-06T08:13:49.504081249Z stdout [172.18.0.1] app/views/stats/index.turbo_stream.slim:11
2023-04-06T08:13:49.504038817Z stdout [172.18.0.1] app/controllers/stats_controller.rb:11:in `calculator'
2023-04-06T08:13:49.503957701Z stdout [172.18.0.1] app/controllers/stats_controller.rb:12:in `calculator'
2023-04-06T08:13:49.503918088Z stdout [172.18.0.1] app/controllers/stats_controller.rb:12:in `new'
2023-04-06T08:13:49.503875284Z stdout [172.18.0.1] app/services/calculator/range.rb:20:in `initialize'
2023-04-06T08:13:49.503834964Z stdout [172.18.0.1] app/services/power_sum.rb:8:in `call'
2023-04-06T08:13:49.503794650Z stdout [172.18.0.1] app/services/power_sum.rb:32:in `sum'
2023-04-06T08:13:49.503754562Z stdout [172.18.0.1] app/services/power_sum.rb:50:in `price_sections'
2023-04-06T08:13:49.503714496Z stdout [172.18.0.1] app/services/date_interval.rb:12:in `price_sections'
2023-04-06T08:13:49.503671715Z stdout [172.18.0.1] app/services/date_interval.rb:42:in `prices'
2023-04-06T08:13:49.503633274Z stdout [172.18.0.1]
2023-04-06T08:13:49.503528650Z stdout [172.18.0.1]     14:   turbo-stream action="update" target="chart"
2023-04-06T08:13:49.503488051Z stdout [172.18.0.1]     13: - if params[:chart] != 'false'
2023-04-06T08:13:49.503450099Z stdout [172.18.0.1]     12:
2023-04-06T08:13:49.503404317Z stdout [172.18.0.1]     11:       = render DashboardRange::Component.new calculator:, timeframe:
2023-04-06T08:13:49.503365777Z stdout [172.18.0.1]     10:     - else
2023-04-06T08:13:49.503321818Z stdout [172.18.0.1]      9:       = render DashboardNow::Component.new calculator:
2023-04-06T08:13:49.503279363Z stdout [172.18.0.1]      8:     - if timeframe.now?
2023-04-06T08:13:49.503243660Z stdout ):
2023-04-06T08:13:49.503182042Z stdout [172.18.0.1] ActionView::Template::Error (connection to server at "172.18.0.6", port 5432 failed: fe_sendauth: no password supplied
2023-04-06T08:13:49.503136181Z stdout F, [2023-04-06T08:13:49.436073 #52] FATAL -- : [172.18.0.1]
2023-04-06T08:13:49.503019974Z stdout I, [2023-04-06T08:13:49.338521 #52]  INFO -- : [172.18.0.1] method=GET path=/stats/inverter_power/2023-04-06 format=html controller=StatsController action=index status=500 duration=10.02 view=0.00 user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0
2023-04-06T08:13:49.271819059Z stdout I, [2023-04-06T08:13:49.271458 #52]  INFO -- : [172.18.0.1] method=GET path=/inverter_power/2023-04-06 format=html controller=HomeController action=index status=200 duration=268.40 view=266.21 user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0
2023-04-06T08:13:48.516683309Z stdout I, [2023-04-06T08:13:48.516459 #52]  INFO -- : [172.18.0.1] method=GET path=/charts/inverter_power/now format=json controller=ChartsController action=index status=200 duration=243.82 view=242.74 user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0
2023-04-06T08:13:48.207435453Z stdout I, [2023-04-06T08:13:48.207125 #52]  INFO -- : [172.18.0.1] method=GET path=/stats/inverter_power/now format=html controller=StatsController action=index status=200 duration=170.06 view=169.35 user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0
ledermann commented 1 year ago

Ok, die entscheidende Zeile ist die hier:

connection to server at "172.18.0.6", port 5432 failed: fe_sendauth: no password supplied

Mangels Passwort kann also keine Verbindung zur PostgreSQL Datenbank aufgebaut werden. Die Ursache liegt entweder in der .env oder in der docker-compose.yml.

In .env muss stehen:

POSTGRES_PASSWORD=my-secret-db-password

In docker-compose.yml muss unter services.app.environment stehen:

- DB_PASSWORD=${POSTGRES_PASSWORD}

Außerdem unter db.environment:

- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}

So steht es auch in der Installationsanleitung. Das Passwort "my-secret-db-password" ist natürlich nur ein Beispiel und darf geändert werden, allerdings nicht bei bereits bestehender Datenbank. Um das Problem zu beheben:

  1. Prüfen, ob .env und docker-compose.yml korrekt sind
  2. Alle Container beenden (docker compose down)
  3. Datenbank komplett löschen, aber nicht den Ordner (rm -rfv postgresql/*)
  4. Container neu starten (docker compose up -d)

Hilft das?

carwel59 commented 1 year ago

Leider nicht. Nach wie vor content missing und die gleichen Log-Einträge.

Bin allerdings nicht sicher, ob ich alles richtig gemacht habe. Der Befehl für das Herunterfahren der Container hat nicht hingehauen, daher habe ich sie per Synology Docker-GUI heruntergefahren. Das Löschen der Datenbank hat zwar keine Fehlermeldungen erzeugt, aber auch keinerlei Bestätigungen (im Grunde kam direkt der Prompt wieder). Habe auch schon probiert, die Container noch einmal neu zu starten.

ledermann commented 1 year ago

Das Löschen der Datenbank hat zwar keine Fehlerneldungen erzeugt, aber auch keinerlei Bestätigungen (im Grunde kam direkt der Prompt wieder).

Ok, Du warst vermutlich im falschen Verzeichnis. Wenn direkt der Prompt kam, wurde auch nichts gelöscht. Daher der Parameter -v, der die Löschung bestätigt. Gleiches gilt für das Herunterfahren, das funktioniert ebenfalls nur, wenn die docker-compose.yml im gleichen Verzeichnis ist.

Du musst in dem Verzeichnis sein, indem die docker-compose.yml liegt und insbesondere die Unterordner ./postgresql, ./influxdb und ./redis. Laut Installationsanleitung für die Synology ist das der Ordner /volume1/docker/solectrus. Somit Schritt 0:

cd /volume1/docker/solectrus
carwel59 commented 1 year ago

Hmm. langsam verzweifele ich: Nun kriege ich beim Versuch des Löschens der Datenbank die Meldung "Permission denied", obwohl ich als Admin eingeloggt bin. Der Befehl "docker compose down" haut nach wir vor auch nicht hin (Fehlermeldung: docker: 'compose' is not a docker command.)

ledermann commented 1 year ago

Hast Du vielleicht eine ältere Synology? Dann ist darauf auch vielleicht eine ältere Docker-Version installiert. Versuche es mal mit docker-compose statt mit docker compose (also Bindestrich ergänzen). Wenn dem so ist, werde ich die Anleitung noch aktualisieren.

Bezüglich Löschen: Möglicherweise ist sudo erforderlich, also:

sudo rm -rfv postgresql/*
carwel59 commented 1 year ago

Nun habe ich wohl irgendwas zerschossen. Nun kommt content missing auch auf "Verlauf". Ich cleare mal alles und starte die Installation neu. Muss ich dafür irgendetwas beachten oder reicht es, die Contaimer zu löschen, ggf. die noch bestehenden Ordner und der Installationsanleitung von vorne zu folgen?

ledermann commented 1 year ago

Die Fehlermeldung "Content missing" ist zugegebenermaßen sehr doof, das ändere ich auch mit dem nächsten Update. Entscheidend ist bei Fehlern dieser Art immer, was in den Server-Logs steht, möglicherweise steht jetzt etwas anderes.

Zum Neuinstallieren: Genau, alle Container löschen und auf jeden Fall auch die bestehenden Ordner. Und dann wieder von vorne loslegen.

Bitte nenne mir bei Gelegenheit noch den Output von uname -a, damit ich weiß, um welches Gerät es sich genau handelt. Denn dass "docker compose" bei Dir nicht funktioniert, kommt mir seltsam vor.

carwel59 commented 1 year ago

uname -a ergibt [hostname] 4.4.180+ #42962 SMP Fri Feb 10 16:32:29 CST 2023 x86_64 GNU/Linux synology_apollolake_218+ Die Docker-Version (hate direkt vor der ersten Installation Docker noch aktualisiert) ist: 20.10.3-1308

Und denn mal auf ein Neues, vielen Dank aber auf jeden Fall auch mal für den Support bis hierher :)

carwel59 commented 1 year ago

Auch die Neuinstallation ist leider erfolglos geblieben. Dasselbe Verhalten (außer im Verlauf missing content, die gleichen Meldungen im Log wie in der ersten Installation und der Versuch, die Datenbank zu löschen führt entweder zu permission denied oder mit sudo vorweg zur direkten Anzeige des nächsten Promptes ohne jegliche Rückmeldung (ausgeführt im Ordner /volume1/docker/solectrus).

ledermann commented 1 year ago

Das Löschen der Datenbank war nur deswegen meine Empfehlung, weil Du ja vermutlich das Datenbank-Passwort in der .env geändert hattest, nachdem die Datenbank bereits durch einen Container-Start angelegt worden ist. Das hast Du beim zweiten Durchlauf ja vermutlich nicht gemacht, sodass die Datenbank auch nicht gelöscht werden muss.

Bist Du wirklich die Anleitung präzise durchgegangen, ohne einen Schritt zu überspringen? Auch die Sache mit synogroup am Anfang? Welche Anpassungen hast Du in der .env vorgenommen. Kannst Du die docker-compose.yml sowie die .env hier mal posten?

Ich bin sehr daran interessiert, dass die Anleitung möglichst wasserdicht ist. Falls Du also weiterhin daran interessiert bist, SOLECTRUS ans Laufen zu bekommen, können wir das gerne weiter betreiben.

Bezüglich uname: Alles wie bei mir, außer dass Du eine 218+ hast (ich habe 220+). Docker-Version ist aber die gleiche. Bei Docker-Compose hatte ich mich vertan: Synology hat v1.x drauf (aufzurufen mit docker-compose), erst ab v2.x heißt es docker compose. Macht aber nix, alles korrekt so.

carwel59 commented 1 year ago

hier ist die .env (Passwörter ersetzt):

##################################################################
# Dashboard application (the main part)
#
# Domain name or IP address of your host
APP_HOST=my-synology.local
#
# SSL redirect: Use "true" (which is the default) if you want to auto-redirect to https
FORCE_SSL=false
#
# Secret token to secure cookies, 128 chars long hexadecimal encoded string (don't use this example, make some random changes!)
# Currently there are no cookies in Soletrus, but this may change in the future
SECRET_KEY_BASE=f60debe97dcb73280a2cc83668fd60e8d0e8e48269036a7bce980ee53cfb312e377989a750b8c945a5f69b041289ecb4e2d9e40641b81257c65ac2d43e3c837f
#
# Date of commissioning of your photovoltaic system
INSTALLATION_DATE=2023-04-06
#
# Price you pay for 1kWH (in EUR)
# Can be changed later in the UI when logged in as administrator
ELECTRICITY_PRICE=0.4995
#
# Price you get for 1kWH (in EUR)
# Can be changed later in the UI when logged in as administrator
FEED_IN_TARIFF=0.062
#
# Password for the PostgreSQL database, used by the app to comunicate internally with the database
POSTGRES_PASSWORD=<pG-pw>
#
# Password to login as administrator, required to manage settings like historical prices
ADMIN_PASSWORD=<sol_pw>

##################################################################
# Influx database settings
#
# Influx host (to access from SOLECTRUS dashboard and collectors)
INFLUX_HOST=influxdb
INFLUX_SCHEMA=http
INFLUX_PORT=8086
#
# Credentials for the Influx database
INFLUX_ORG=solectrus
INFLUX_USERNAME=admin
INFLUX_PASSWORD=<infl_pw>
INFLUX_ADMIN_TOKEN=123456
INFLUX_BUCKET=mySolectrusBucket
#
# To keep things simple, we use ONE token (INFLUX_ADMIN_TOKEN) for both writing and reading.
# For better security, you can use two separate tokens, created via the InfluxDB frontend.
INFLUX_TOKEN_WRITE=123456
INFLUX_TOKEN_READ=123456
#
# Volume path for storing the Influx data
INFLUX_VOLUME_PATH=/volume1/docker/solectrus/influxdb

##################################################################
# REDIS settings
#
REDIS_VOLUME_PATH=/volume1/docker/solectrus/redis

##################################################################
# PostgreSQL database settings
#
DB_VOLUME_PATH=/volume1/docker/solectrus/postgresql

##################################################################
# SENEC Collector
#
# Change this to your own SENEC IP address!
SENEC_HOST=192.168.178.54
SENEC_INTERVAL=5

##################################################################
# Solar forecasting with https://forecast.solar
# API docs: https://doc.forecast.solar/doku.php?id=api:estimate
#
# Latitude of the plant location
FORECAST_LATITUDE=53.4807611
#
# Longitude of the plant location
FORECAST_LONGITUDE=10.1879929
#
# Plane declination: 0 (horizontal) - 90 (vertical)
FORECAST_DECLINATION=30
#
# Plane azimuth: -180 ... 180 (-180 = north, -90 = east, 0 = south, 90 = west, 180 = north)
FORECAST_AZIMUTH=-90
#
# Installed modules power in kilowatt peak (kWp)
FORECAST_KWP=11.2
#
# Update interval in seconds, 900s = 15 minutes, the public (and free) API allows a minimum of 900 seconds
FORECAST_INTERVAL=900
carwel59 commented 1 year ago

und die docker-compose.yml:

version: '3.7'

services:
  app:
    image: ghcr.io/solectrus/solectrus:latest
    depends_on:
      - db
      - influxdb
      - redis
    links:
      - db
      - influxdb
      - redis
    ports:
      - 3000:3000
    environment:
      - APP_HOST
      - FORCE_SSL
      - SECRET_KEY_BASE
      - INSTALLATION_DATE
      - ELECTRICITY_PRICE
      - FEED_IN_TARIFF
      - ADMIN_PASSWORD
      - DB_HOST=db
      - DB_PASSWORD=${POSTGRES_PASSWORD}
      - DB_USER=postgres
      - REDIS_URL=redis://redis:6379/1
      - INFLUX_HOST
      - INFLUX_TOKEN=${INFLUX_TOKEN_READ}
      - INFLUX_ORG
      - INFLUX_BUCKET
    healthcheck:
      test: ['CMD-SHELL', 'nc -z 127.0.0.1 3000 || exit 1']
    restart: always

  influxdb:
    image: influxdb:2.7-alpine
    volumes:
      - ${INFLUX_VOLUME_PATH}:/var/lib/influxdb2
    environment:
      - DOCKER_INFLUXDB_INIT_MODE=setup
      - DOCKER_INFLUXDB_INIT_USERNAME=${INFLUX_USERNAME}
      - DOCKER_INFLUXDB_INIT_PASSWORD=${INFLUX_PASSWORD}
      - DOCKER_INFLUXDB_INIT_ORG=${INFLUX_ORG}
      - DOCKER_INFLUXDB_INIT_BUCKET=${INFLUX_BUCKET}
      - DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=${INFLUX_ADMIN_TOKEN}
    command: influxd run --bolt-path /var/lib/influxdb2/influxd.bolt --engine-path /var/lib/influxdb2/engine --store disk
    # Optional: Allow InfluxDB to be accessed from the outside.
    # ports:
    #   - 8086:8086
    restart: always

  db:
    image: postgres:15-alpine
    environment:
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
    volumes:
      - ${DB_VOLUME_PATH}:/var/lib/postgresql/data
    restart: always

  redis:
    image: redis:7-alpine
    volumes:
      - ${REDIS_VOLUME_PATH}:/data
    restart: always

  senec-collector:
    image: ghcr.io/solectrus/senec-collector:latest
    depends_on:
      - influxdb
    links:
      - influxdb
    environment:
      - SENEC_HOST
      - SENEC_INTERVAL
      - INFLUX_HOST
      - INFLUX_SCHEMA
      - INFLUX_PORT
      - INFLUX_TOKEN=${INFLUX_TOKEN_WRITE}
      - INFLUX_ORG
      - INFLUX_BUCKET
    restart: always

  forecast-collector:
    image: ghcr.io/solectrus/forecast-collector:latest
    depends_on:
      - influxdb
    links:
      - influxdb
    environment:
      - INFLUX_HOST
      - INFLUX_TOKEN=${INFLUX_TOKEN_WRITE}
      - INFLUX_ORG
      - INFLUX_BUCKET
      - FORECAST_LATITUDE
      - FORECAST_LONGITUDE
      - FORECAST_DECLINATION
      - FORECAST_AZIMUTH
      - FORECAST_KWP
      - FORECAST_INTERVAL
    restart: always
carwel59 commented 1 year ago

Ach so, ja, noch zur Frage der Reihenfolge: Jo, habe ich alles exakt so gemacht wie in der Anleitung, beginnend bei "sudo synogroup --add docker". Dieser Befehl führte zur folgenden Meldung: Lastest SynoErr=[group_set.c:507] SYNOLocalAccountGroupSet failed, synoerr=0x1700

Da jedoch alle weiteren Aktivitäten ohne Fehlermeldungen durchgingen, habe ich angenommen, dass die Dockergroup beim Löschen der Container nicht mit gelöscht wurde und die Fehlermeldung besagt, dass die Dockergroup bereits existiert.

ledermann commented 1 year ago

Sieht alles korrekt aus (habe Deine Postings nur umformatiert). Ich habe beides auf meiner Synology getestet und es funktioniert einwandfrei - selbst mit Deinen Passwörter-Platzhaltern.

Zu Dockergroup: Ja, das Löschen der Container hat keinen Einfluss darauf. Ein zweiter Versuch führt daher zur genannten Fehlermeldung. Alles korrekt so.

So langsam gehen mir die Ideen aus. Könntest Du mir bitte noch das vollständige Protokoll aller Container posten, die beim ersten Start geschrieben werden? Also folgendermaßen:

1) Alles runterfahren mit docker-compose down 2) Sicherheitshalber einmal docker system prune ausführen (löscht alle unbenutzten Docker-Sachen) 3) Die drei Datenbank-Ordner leeren (entweder über die Konsole, oder über das Synology-UI). Oder löschen und neu anlegen mit mkdir. 4) Dann docker-compose up und den gesamten Output aus der SSH-Konsole hier posten (da ist nichts Sensibles drin). Da werden einige Fehlermeldungen enthalten sein, weil die App bereits auf die Datenbank zuzugreifen versucht, während die noch gar nicht hochgefahren ist. Egal, alles drin lassen. Ich erhoffe mir da irgendwelche Hinweis, was da eigentlich los.

carwel59 commented 1 year ago

alles getan, docker-compose up ausgeführt und jetzt schiebt er fleissig Daten in die DB (sucessfully pushed rescord #... to InfluxDB). Soll ich das dann einfach abbrechen, um dir das Log zu schicken?

carwel59 commented 1 year ago

das ist schon mal der Teil des Logs bis hierher:

Creating network "solectrus_default" with the default driver
Creating solectrus_redis_1    ... done
Creating solectrus_db_1       ... done
Creating solectrus_influxdb_1 ... done
Creating solectrus_senec-collector_1    ... done
Creating solectrus_forecast-collector_1 ... done
Creating solectrus_app_1                ... done
Attaching to solectrus_db_1, solectrus_redis_1, solectrus_influxdb_1, solectrus_senec-collector_1, solectrus_forecast-collector_1, solectrus_app_1
app_1                 | Starting SOLECTRUS...
app_1                 | Version: v0.10.0 - 2023-04-01T17:08:24+02:00
app_1                 | ----------------
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
db_1                  | The files belonging to this database system will be owned by user "postgres".
db_1                  | This user must also own the server process.
db_1                  |
db_1                  | The database cluster will be initialized with locale "en_US.utf8".
db_1                  | The default database encoding has accordingly been set to "UTF8".
db_1                  | The default text search configuration will be set to "english".
db_1                  |
db_1                  | Data page checksums are disabled.
db_1                  |
db_1                  | fixing permissions on existing directory /var/lib/postgresql/data ... ok
db_1                  | creating subdirectories ... ok
db_1                  | selecting dynamic shared memory implementation ... posix
db_1                  | selecting default max_connections ... 100
db_1                  | selecting default shared_buffers ... 128MB
db_1                  | selecting default time zone ... UTC
db_1                  | creating configuration files ... ok
db_1                  | running bootstrap script ... ok
db_1                  | performing post-bootstrap initialization ... sh: locale: not found
db_1                  | 2023-04-06 14:06:00.681 UTC [31] WARNING:  no usable system locales were found
db_1                  | ok
db_1                  | syncing data to disk ... ok
db_1                  |
db_1                  | initdb: warning: enabling "trust" authentication for local connections
db_1                  | initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
db_1                  |
db_1                  | Success. You can now start the database server using:
db_1                  |
db_1                  |     pg_ctl -D /var/lib/postgresql/data -l logfile start
db_1                  |
db_1                  | waiting for server to start....2023-04-06 14:06:04.391 UTC [37] LOG:  starting PostgreSQL 15.2 on x86_64-pc-linux-musl, compiled by gcc (Alpine 12.2.1_git20220924-r4) 12.2.1 20220924, 64-bit
db_1                  | .2023-04-06 14:06:04.753 UTC [37] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1                  | .2023-04-06 14:06:05.453 UTC [40] LOG:  database system was shut down at 2023-04-06 14:06:01 UTC
db_1                  | 2023-04-06 14:06:05.782 UTC [37] LOG:  database system is ready to accept connections
db_1                  |  done
db_1                  | server started
db_1                  |
db_1                  | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
db_1                  |
db_1                  | 2023-04-06 14:06:06.297 UTC [37] LOG:  received fast shutdown request
db_1                  | waiting for server to shut down....2023-04-06 14:06:06.609 UTC [37] LOG:  aborting any active transactions
db_1                  | 2023-04-06 14:06:06.613 UTC [37] LOG:  background worker "logical replication launcher" (PID 43) exited with exit code 1
influxdb_1            | Flag --tojson has been deprecated, please use -o=json instead
db_1                  | 2023-04-06 14:06:06.617 UTC [38] LOG:  shutting down
db_1                  | 2023-04-06 14:06:06.807 UTC [38] LOG:  checkpoint starting: shutdown immediate
db_1                  | ..2023-04-06 14:06:08.385 UTC [38] LOG:  checkpoint complete: wrote 3 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.001 s, sync=0.542 s, total=1.768 s; sync files=2, longest=0.411 s, average=0.271 s; distance=0 kB, estimate=0 kB
db_1                  | 2023-04-06 14:06:08.389 UTC [37] LOG:  database system is shut down
db_1                  |  done
db_1                  | server stopped
db_1                  |
db_1                  | PostgreSQL init process complete; ready for start up.
db_1                  |
db_1                  | 2023-04-06 14:06:09.096 UTC [1] LOG:  starting PostgreSQL 15.2 on x86_64-pc-linux-musl, compiled by gcc (Alpine 12.2.1_git20220924-r4) 12.2.1 20220924, 64-bit
db_1                  | 2023-04-06 14:06:09.096 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
db_1                  | 2023-04-06 14:06:09.097 UTC [1] LOG:  listening on IPv6 address "::", port 5432
db_1                  | 2023-04-06 14:06:09.555 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1                  | 2023-04-06 14:06:10.224 UTC [51] LOG:  database system was shut down at 2023-04-06 14:06:08 UTC
db_1                  | 2023-04-06 14:06:10.498 UTC [1] LOG:  database system is ready to accept connections
influxdb_1            | {
influxdb_1            |   "bolt-path": "/var/lib/influxdb2/influxd.bolt",
influxdb_1            |   "engine-path": "/var/lib/influxdb2/engine",
influxdb_1            |   "nats-port": 4222,
influxdb_1            |   "http-bind-address": ":9999"
influxdb_1            | }
influxdb_1            | 2023-04-06T14:06:00.    info    booting influxd server in the background        {"system": "docker"}
influxdb_1            | 2023-04-06T14:06:01.    info    pinging influxd...      {"system": "docker", "ping_attempt": "0"}
influxdb_1            | ts=2023-04-06T14:06:03.283678Z lvl=info msg="Welcome to InfluxDB" log_id=0h1j3b4l000 version=v2.7.0 commit=85f725f8b9 build_date=2023-04-05T15:32:25Z log_level=info
influxdb_1            | ts=2023-04-06T14:06:03.283822Z lvl=warn msg="nats-port argument is deprecated and unused" log_id=0h1j3b4l000
influxdb_1            | 2023-04-06T14:06:03.    info    pinging influxd...      {"system": "docker", "ping_attempt": "1"}
influxdb_1            | ts=2023-04-06T14:06:04.684025Z lvl=info msg="Resources opened" log_id=0h1j3b4l000 service=bolt path=/var/lib/influxdb2/influxd.bolt
influxdb_1            | ts=2023-04-06T14:06:04.684343Z lvl=info msg="Resources opened" log_id=0h1j3b4l000 service=sqlite path=/var/lib/influxdb2/influxd.sqlite
influxdb_1            | 2023-04-06T14:06:04.    info    pinging influxd...      {"system": "docker", "ping_attempt": "2"}
influxdb_1            | ts=2023-04-06T14:06:05.153191Z lvl=info msg="Bringing up metadata migrations" log_id=0h1j3b4l000 service="KV migrations" migration_count=20
influxdb_1            | 2023-04-06T14:06:05.    info    pinging influxd...      {"system": "docker", "ping_attempt": "3"}
influxdb_1            | 2023-04-06T14:06:06.    info    pinging influxd...      {"system": "docker", "ping_attempt": "4"}
influxdb_1            | 2023-04-06T14:06:07.    info    pinging influxd...      {"system": "docker", "ping_attempt": "5"}
influxdb_1            | 2023-04-06T14:06:08.    info    pinging influxd...      {"system": "docker", "ping_attempt": "6"}
influxdb_1            | 2023-04-06T14:06:09.    info    pinging influxd...      {"system": "docker", "ping_attempt": "7"}
influxdb_1            | 2023-04-06T14:06:10.    info    pinging influxd...      {"system": "docker", "ping_attempt": "8"}
influxdb_1            | 2023-04-06T14:06:11.    info    pinging influxd...      {"system": "docker", "ping_attempt": "9"}
influxdb_1            | 2023-04-06T14:06:12.    info    pinging influxd...      {"system": "docker", "ping_attempt": "10"}
influxdb_1            | 2023-04-06T14:06:13.    info    pinging influxd...      {"system": "docker", "ping_attempt": "11"}
influxdb_1            | 2023-04-06T14:06:14.    info    pinging influxd...      {"system": "docker", "ping_attempt": "12"}
influxdb_1            | 2023-04-06T14:06:15.    info    pinging influxd...      {"system": "docker", "ping_attempt": "13"}
influxdb_1            | 2023-04-06T14:06:16.    info    pinging influxd...      {"system": "docker", "ping_attempt": "14"}
influxdb_1            | 2023-04-06T14:06:18.    info    pinging influxd...      {"system": "docker", "ping_attempt": "15"}
influxdb_1            | 2023-04-06T14:06:19.    info    pinging influxd...      {"system": "docker", "ping_attempt": "16"}
influxdb_1            | 2023-04-06T14:06:20.    info    pinging influxd...      {"system": "docker", "ping_attempt": "17"}
influxdb_1            | 2023-04-06T14:06:21.    info    pinging influxd...      {"system": "docker", "ping_attempt": "18"}
influxdb_1            | 2023-04-06T14:06:22.    info    pinging influxd...      {"system": "docker", "ping_attempt": "19"}
influxdb_1            | 2023-04-06T14:06:23.    info    pinging influxd...      {"system": "docker", "ping_attempt": "20"}
influxdb_1            | 2023-04-06T14:06:24.    info    pinging influxd...      {"system": "docker", "ping_attempt": "21"}
influxdb_1            | 2023-04-06T14:06:25.    info    pinging influxd...      {"system": "docker", "ping_attempt": "22"}
redis_1               | 1:C 06 Apr 2023 14:05:59.350 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
redis_1               | 1:C 06 Apr 2023 14:05:59.350 # Redis version=7.0.10, bits=64, commit=00000000, modified=0, pid=1, just started
redis_1               | 1:C 06 Apr 2023 14:05:59.350 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
redis_1               | 1:M 06 Apr 2023 14:05:59.352 * monotonic clock: POSIX clock_gettime
redis_1               | 1:M 06 Apr 2023 14:05:59.354 * Running mode=standalone, port=6379.
redis_1               | 1:M 06 Apr 2023 14:05:59.354 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
redis_1               | 1:M 06 Apr 2023 14:05:59.354 # Server initialized
redis_1               | 1:M 06 Apr 2023 14:05:59.354 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
redis_1               | 1:M 06 Apr 2023 14:05:59.355 * Ready to accept connections
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:26.    info    pinging influxd...      {"system": "docker", "ping_attempt": "23"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:27.    info    pinging influxd...      {"system": "docker", "ping_attempt": "24"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:28.    info    pinging influxd...      {"system": "docker", "ping_attempt": "25"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:29.    info    pinging influxd...      {"system": "docker", "ping_attempt": "26"}
senec-collector_1     | SENEC collector for SOLECTRUS, Version 0.7.0, built at 2023-03-23T14:54:51.458Z
senec-collector_1     | https://github.com/solectrus/senec-collector
senec-collector_1     | Copyright (c) 2020,2023 Georg Ledermann, released under the MIT License
senec-collector_1     |
senec-collector_1     | Using Ruby 3.2.1 on platform x86_64-linux-musl
senec-collector_1     | Pulling from SENEC at 192.168.178.54 every 5 seconds
senec-collector_1     | Pushing to InfluxDB at http://influxdb:8086, bucket mySolectrusBucket
senec-collector_1     |
senec-collector_1     | Getting state names from SENEC by parsing source code...
senec-collector_1     | OK, got 99 state names
senec-collector_1     |
senec-collector_1     | Got record #1 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4521 W, House 775 W, 2023-04-06 14:06:29 +0000
senec-collector_1     | Error while pushing record #1 to InfluxDB: Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086)
senec-collector_1     | The record has been queued. Will retry to push 1 records later.
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:30.    info    pinging influxd...      {"system": "docker", "ping_attempt": "27"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:31.    info    pinging influxd...      {"system": "docker", "ping_attempt": "28"}
forecast-collector_1  | Forecast collector for SOLECTRUS, Version 0.2.0, built at 2023-02-07T09:08:10.238Z
forecast-collector_1  | https://github.com/solectrus/forecast-collector
forecast-collector_1  | Copyright (c) 2020,2023 Georg Ledermann, released under the MIT License
forecast-collector_1  |
forecast-collector_1  | Using Ruby 3.2.0 on platform x86_64-linux-musl
forecast-collector_1  | Pulling from api.forecast.solar every 900 seconds
forecast-collector_1  | Pushing to InfluxDB at http://influxdb:8086, bucket mySolectrusBucket
forecast-collector_1  |
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:32.    info    pinging influxd...      {"system": "docker", "ping_attempt": "29"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:33.    info    pinging influxd...      {"system": "docker", "ping_attempt": "30"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:34.    info    pinging influxd...      {"system": "docker", "ping_attempt": "31"}
senec-collector_1     | Error while pushing record #1 to InfluxDB: Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086)
senec-collector_1     | The record has been queued. Will retry to push 1 records later.
senec-collector_1     |
senec-collector_1     | Got record #2 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4510 W, House 778 W, 2023-04-06 14:06:34 +0000
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:35.    info    pinging influxd...      {"system": "docker", "ping_attempt": "32"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:36.    info    pinging influxd...      {"system": "docker", "ping_attempt": "33"}
forecast-collector_1  | #1: Getting data from https://api.forecast.solar/estimate/53.4807611/10.1879929/30/-90/11.2?time=seconds ... OK
forecast-collector_1  | Pushing forecast to InfluxDB ... bundler: failed to load command: src/main.rb (src/main.rb)
forecast-collector_1  | /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:109:in `rescue in _request': Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086) (InfluxDB2::InfluxError)
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:108:in `_request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:59:in `_post_text'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:214:in `write_raw'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:186:in `write'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:25:in `push'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:11:in `push'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:38:in `push_to_influx'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:22:in `block in start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `loop'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:15:in `start'
forecast-collector_1  |         from src/main.rb:24:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `kernel_load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:23:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:491:in `exec'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:34:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:28:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:45:in `block in <top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:33:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `load'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `<main>'
forecast-collector_1  | /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `initialize': Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086) (Errno::ECONNREFUSED)
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `open'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `block in connect'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/timeout.rb:189:in `block in timeout'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/timeout.rb:196:in `timeout'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1269:in `connect'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1248:in `do_start'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1237:in `start'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1817:in `request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:82:in `_request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:59:in `_post_text'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:214:in `write_raw'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:186:in `write'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:25:in `push'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:11:in `push'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:38:in `push_to_influx'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:22:in `block in start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `loop'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:15:in `start'
forecast-collector_1  |         from src/main.rb:24:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `kernel_load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:23:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:491:in `exec'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:34:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:28:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:45:in `block in <top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:33:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `load'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `<main>'
forecast-collector_1  | /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `initialize': Connection refused - connect(2) for "influxdb" port 8086 (Errno::ECONNREFUSED)
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `open'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `block in connect'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/timeout.rb:189:in `block in timeout'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/timeout.rb:196:in `timeout'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1269:in `connect'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1248:in `do_start'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1237:in `start'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1817:in `request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:82:in `_request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:59:in `_post_text'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:214:in `write_raw'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:186:in `write'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:25:in `push'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:11:in `push'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:38:in `push_to_influx'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:22:in `block in start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `loop'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:15:in `start'
forecast-collector_1  |         from src/main.rb:24:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `kernel_load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:23:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:491:in `exec'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:34:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:28:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:45:in `block in <top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:33:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `load'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `<main>'
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:37.    info    pinging influxd...      {"system": "docker", "ping_attempt": "34"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:38.    info    pinging influxd...      {"system": "docker", "ping_attempt": "35"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:39.    info    pinging influxd...      {"system": "docker", "ping_attempt": "36"}
senec-collector_1     | Error while pushing record #1 to InfluxDB: Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086)
senec-collector_1     | The record has been queued. Will retry to push 2 records later.
senec-collector_1     |
senec-collector_1     | Got record #3 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4510 W, House 771 W, 2023-04-06 14:06:39 +0000
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:40.    info    pinging influxd...      {"system": "docker", "ping_attempt": "37"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:41.    info    pinging influxd...      {"system": "docker", "ping_attempt": "38"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:42.    info    pinging influxd...      {"system": "docker", "ping_attempt": "39"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:43.    info    pinging influxd...      {"system": "docker", "ping_attempt": "40"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:44.    info    pinging influxd...      {"system": "docker", "ping_attempt": "41"}
senec-collector_1     | Error while pushing record #2 to InfluxDB: Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086)
senec-collector_1     | The record has been queued. Will retry to push 3 records later.
senec-collector_1     |
senec-collector_1     | Got record #4 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4499 W, House 794 W, 2023-04-06 14:06:44 +0000
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:45.    info    pinging influxd...      {"system": "docker", "ping_attempt": "42"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:46.    info    pinging influxd...      {"system": "docker", "ping_attempt": "43"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:47.    info    pinging influxd...      {"system": "docker", "ping_attempt": "44"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:48.    info    pinging influxd...      {"system": "docker", "ping_attempt": "45"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:49.    info    pinging influxd...      {"system": "docker", "ping_attempt": "46"}
senec-collector_1     | Error while pushing record #1 to InfluxDB: Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086)
senec-collector_1     | The record has been queued. Will retry to push 4 records later.
senec-collector_1     |
senec-collector_1     | Got record #5 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4509 W, House 805 W, 2023-04-06 14:06:49 +0000
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:50.    info    pinging influxd...      {"system": "docker", "ping_attempt": "47"}
forecast-collector_1  | Forecast collector for SOLECTRUS, Version 0.2.0, built at 2023-02-07T09:08:10.238Z
forecast-collector_1  | https://github.com/solectrus/forecast-collector
forecast-collector_1  | Copyright (c) 2020,2023 Georg Ledermann, released under the MIT License
forecast-collector_1  |
forecast-collector_1  | Using Ruby 3.2.0 on platform x86_64-linux-musl
forecast-collector_1  | Pulling from api.forecast.solar every 900 seconds
forecast-collector_1  | Pushing to InfluxDB at http://influxdb:8086, bucket mySolectrusBucket
forecast-collector_1  |
forecast-collector_1  | #1: Getting data from https://api.forecast.solar/estimate/53.4807611/10.1879929/30/-90/11.2?time=seconds ... OK
forecast-collector_1  | Pushing forecast to InfluxDB ... bundler: failed to load command: src/main.rb (src/main.rb)
forecast-collector_1  | /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:109:in `rescue in _request': Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086) (InfluxDB2::InfluxError)
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:108:in `_request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:59:in `_post_text'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:214:in `write_raw'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:186:in `write'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:25:in `push'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:11:in `push'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:38:in `push_to_influx'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:22:in `block in start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `loop'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:15:in `start'
forecast-collector_1  |         from src/main.rb:24:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `kernel_load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:23:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:491:in `exec'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:34:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:28:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:45:in `block in <top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:33:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `load'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `<main>'
forecast-collector_1  | /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `initialize': Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086) (Errno::ECONNREFUSED)
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `open'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `block in connect'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/timeout.rb:189:in `block in timeout'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/timeout.rb:196:in `timeout'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1269:in `connect'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1248:in `do_start'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1237:in `start'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1817:in `request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:82:in `_request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:59:in `_post_text'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:214:in `write_raw'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:186:in `write'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:25:in `push'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:11:in `push'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:38:in `push_to_influx'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:22:in `block in start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `loop'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:15:in `start'
forecast-collector_1  |         from src/main.rb:24:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `kernel_load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:23:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:491:in `exec'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:34:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:28:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:45:in `block in <top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:33:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `load'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `<main>'
forecast-collector_1  | /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `initialize': Connection refused - connect(2) for "influxdb" port 8086 (Errno::ECONNREFUSED)
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `open'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `block in connect'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/timeout.rb:189:in `block in timeout'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/timeout.rb:196:in `timeout'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1269:in `connect'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1248:in `do_start'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1237:in `start'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1817:in `request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:82:in `_request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:59:in `_post_text'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:214:in `write_raw'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:186:in `write'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:25:in `push'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:11:in `push'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:38:in `push_to_influx'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:22:in `block in start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `loop'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:15:in `start'
forecast-collector_1  |         from src/main.rb:24:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `kernel_load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:23:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:491:in `exec'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:34:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:28:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:45:in `block in <top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:33:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `load'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `<main>'
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:51.    info    pinging influxd...      {"system": "docker", "ping_attempt": "48"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:52.    info    pinging influxd...      {"system": "docker", "ping_attempt": "49"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:53.    info    pinging influxd...      {"system": "docker", "ping_attempt": "50"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:54.    info    pinging influxd...      {"system": "docker", "ping_attempt": "51"}
senec-collector_1     | Error while pushing record #3 to InfluxDB: Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086)
senec-collector_1     | The record has been queued. Will retry to push 5 records later.
senec-collector_1     |
senec-collector_1     | Got record #6 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4501 W, House 774 W, 2023-04-06 14:06:54 +0000
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:55.    info    pinging influxd...      {"system": "docker", "ping_attempt": "52"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:56.    info    pinging influxd...      {"system": "docker", "ping_attempt": "53"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:57.    info    pinging influxd...      {"system": "docker", "ping_attempt": "54"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:06:58.    info    pinging influxd...      {"system": "docker", "ping_attempt": "55"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
solectrus_forecast-collector_1 exited with code 1
influxdb_1            | 2023-04-06T14:06:59.    info    pinging influxd...      {"system": "docker", "ping_attempt": "56"}
senec-collector_1     | Error while pushing record #2 to InfluxDB: Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086)
senec-collector_1     | The record has been queued. Will retry to push 6 records later.
senec-collector_1     |
senec-collector_1     | Got record #7 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4500 W, House 777 W, 2023-04-06 14:06:59 +0000
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:07:00.    info    pinging influxd...      {"system": "docker", "ping_attempt": "57"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:07:01.    info    pinging influxd...      {"system": "docker", "ping_attempt": "58"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:07:02.    info    pinging influxd...      {"system": "docker", "ping_attempt": "59"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | ts=2023-04-06T14:07:03.506902Z lvl=info msg="Bringing up metadata migrations" log_id=0h1j3b4l000 service="SQL migrations" migration_count=8
influxdb_1            | 2023-04-06T14:07:03.    info    pinging influxd...      {"system": "docker", "ping_attempt": "60"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:07:04.    info    pinging influxd...      {"system": "docker", "ping_attempt": "61"}
senec-collector_1     | Error while pushing record #4 to InfluxDB: Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086)
senec-collector_1     | The record has been queued. Will retry to push 7 records later.
senec-collector_1     |
senec-collector_1     | Got record #8 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4501 W, House 784 W, 2023-04-06 14:07:04 +0000
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:07:05.    info    pinging influxd...      {"system": "docker", "ping_attempt": "62"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:07:06.    info    pinging influxd...      {"system": "docker", "ping_attempt": "63"}
forecast-collector_1  | OK
forecast-collector_1  | Pushing forecast to InfluxDB ... bundler: failed to load command: src/main.rb (src/main.rb)
forecast-collector_1  | /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:109:in `rescue in _request': Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086) (InfluxDB2::InfluxError)
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:108:in `_request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:59:in `_post_text'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:214:in `write_raw'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:186:in `write'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:25:in `push'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:11:in `push'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:38:in `push_to_influx'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:22:in `block in start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `loop'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:15:in `start'
forecast-collector_1  |         from src/main.rb:24:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `kernel_load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:23:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:491:in `exec'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:34:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:28:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:45:in `block in <top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:33:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `load'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `<main>'
forecast-collector_1  | /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `initialize': Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086) (Errno::ECONNREFUSED)
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `open'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `block in connect'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/timeout.rb:189:in `block in timeout'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/timeout.rb:196:in `timeout'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1269:in `connect'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1248:in `do_start'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1237:in `start'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1817:in `request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:82:in `_request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:59:in `_post_text'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:214:in `write_raw'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:186:in `write'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:25:in `push'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:11:in `push'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:38:in `push_to_influx'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:22:in `block in start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `loop'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:15:in `start'
forecast-collector_1  |         from src/main.rb:24:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `kernel_load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:23:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:491:in `exec'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:34:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:28:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:45:in `block in <top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:33:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `load'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `<main>'
forecast-collector_1  | /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `initialize': Connection refused - connect(2) for "influxdb" port 8086 (Errno::ECONNREFUSED)
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `open'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `block in connect'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/timeout.rb:189:in `block in timeout'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/timeout.rb:196:in `timeout'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1269:in `connect'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1248:in `do_start'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1237:in `start'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1817:in `request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:82:in `_request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:59:in `_post_text'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:214:in `write_raw'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:186:in `write'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:25:in `push'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:11:in `push'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:38:in `push_to_influx'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:22:in `block in start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `loop'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:15:in `start'
forecast-collector_1  |         from src/main.rb:24:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `kernel_load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:23:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:491:in `exec'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:34:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:28:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:45:in `block in <top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:33:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `load'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `<main>'
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:07:07.    info    pinging influxd...      {"system": "docker", "ping_attempt": "64"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:07:08.    info    pinging influxd...      {"system": "docker", "ping_attempt": "65"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | ts=2023-04-06T14:07:09.557092Z lvl=info msg="Using data dir" log_id=0h1j3b4l000 service=storage-engine service=store path=/var/lib/influxdb2/engine/data
influxdb_1            | ts=2023-04-06T14:07:09.557337Z lvl=info msg="Compaction settings" log_id=0h1j3b4l000 service=storage-engine service=store max_concurrent_compactions=1 throughput_bytes_per_second=50331648 throughput_bytes_per_second_burst=50331648
influxdb_1            | ts=2023-04-06T14:07:09.557360Z lvl=info msg="Open store (start)" log_id=0h1j3b4l000 service=storage-engine service=store op_name=tsdb_open op_event=start
influxdb_1            | ts=2023-04-06T14:07:09.557479Z lvl=info msg="Open store (end)" log_id=0h1j3b4l000 service=storage-engine service=store op_name=tsdb_open op_event=end op_elapsed=0.108ms
influxdb_1            | ts=2023-04-06T14:07:09.557551Z lvl=info msg="Starting retention policy enforcement service" log_id=0h1j3b4l000 service=retention check_interval=30m
influxdb_1            | ts=2023-04-06T14:07:09.557576Z lvl=info msg="Starting precreation service" log_id=0h1j3b4l000 service=shard-precreation check_interval=10m advance_period=30m
influxdb_1            | ts=2023-04-06T14:07:09.560769Z lvl=info msg="Starting query controller" log_id=0h1j3b4l000 service=storage-reads concurrency_quota=1024 initial_memory_bytes_quota_per_query=9223372036854775807 memory_bytes_quota_per_query=9223372036854775807 max_memory_bytes=0 queue_size=1024
influxdb_1            | ts=2023-04-06T14:07:09.567649Z lvl=info msg="Configuring InfluxQL statement executor (zeros indicate unlimited)." log_id=0h1j3b4l000 max_select_point=0 max_select_series=0 max_select_buckets=0
influxdb_1            | 2023-04-06T14:07:09.    info    pinging influxd...      {"system": "docker", "ping_attempt": "66"}
senec-collector_1     | Error while pushing record #1 to InfluxDB: Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086)
senec-collector_1     | The record has been queued. Will retry to push 8 records later.
senec-collector_1     |
senec-collector_1     | Got record #9 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4498 W, House 753 W, 2023-04-06 14:07:09 +0000
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | 2023-04-06T14:07:10.    info    pinging influxd...      {"system": "docker", "ping_attempt": "67"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | ts=2023-04-06T14:07:11.523179Z lvl=info msg=Starting log_id=0h1j3b4l000 service=telemetry interval=8h
influxdb_1            | ts=2023-04-06T14:07:11.524401Z lvl=info msg=Listening log_id=0h1j3b4l000 service=tcp-listener transport=http addr=:9999 port=9999
influxdb_1            | 2023-04-06T14:07:11.    info    pinging influxd...      {"system": "docker", "ping_attempt": "68"}
influxdb_1            | 2023-04-06T14:07:11.    info    got response from influxd, proceeding   {"system": "docker", "total_pings": "69"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
solectrus_forecast-collector_1 exited with code 1
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
senec-collector_1     | Error while pushing record #5 to InfluxDB: Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086)
senec-collector_1     | The record has been queued. Will retry to push 9 records later.
senec-collector_1     |
senec-collector_1     | Got record #10 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4498 W, House 774 W, 2023-04-06 14:07:14 +0000
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | User    Organization    Bucket
influxdb_1            | admin   solectrus       mySolectrusBucket
influxdb_1            | 2023-04-06T14:07:18.    info    Executing user-provided scripts {"system": "docker", "script_dir": "/docker-entrypoint-initdb.d"}
influxdb_1            | 2023-04-06T14:07:18.    info    initialization complete, shutting down background influxd      {"system": "docker"}
influxdb_1            | 2023-04-06T14:07:18.    info    found existing boltdb file, skipping setup wrapper      {"system": "docker", "bolt_path": "/var/lib/influxdb2/influxd.bolt"}
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | ts=2023-04-06T14:07:19.170255Z lvl=info msg="Welcome to InfluxDB" log_id=0h1j8EWG000 version=v2.7.0 commit=85f725f8b9 build_date=2023-04-05T15:32:25Z log_level=info
influxdb_1            | ts=2023-04-06T14:07:19.170570Z lvl=warn msg="nats-port argument is deprecated and unused" log_id=0h1j8EWG000
influxdb_1            | ts=2023-04-06T14:07:19.470924Z lvl=info msg="Resources opened" log_id=0h1j8EWG000 service=bolt path=/var/lib/influxdb2/influxd.bolt
influxdb_1            | ts=2023-04-06T14:07:19.471288Z lvl=info msg="Resources opened" log_id=0h1j8EWG000 service=sqlite path=/var/lib/influxdb2/influxd.sqlite
senec-collector_1     | Error while pushing record #3 to InfluxDB: Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086)
senec-collector_1     | The record has been queued. Will retry to push 10 records later.
senec-collector_1     |
senec-collector_1     | Got record #11 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4486 W, House 769 W, 2023-04-06 14:07:19 +0000
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
influxdb_1            | ts=2023-04-06T14:07:20.605863Z lvl=info msg="Checking InfluxDB metadata for prior version." log_id=0h1j8EWG000 bolt_path=/var/lib/influxdb2/influxd.bolt
influxdb_1            | ts=2023-04-06T14:07:20.607390Z lvl=info msg="Using data dir" log_id=0h1j8EWG000 service=storage-engine service=store path=/var/lib/influxdb2/engine/data
influxdb_1            | ts=2023-04-06T14:07:20.607503Z lvl=info msg="Compaction settings" log_id=0h1j8EWG000 service=storage-engine service=store max_concurrent_compactions=1 throughput_bytes_per_second=50331648 throughput_bytes_per_second_burst=50331648
influxdb_1            | ts=2023-04-06T14:07:20.608408Z lvl=info msg="Open store (start)" log_id=0h1j8EWG000 service=storage-engine service=store op_name=tsdb_open op_event=start
influxdb_1            | ts=2023-04-06T14:07:20.609720Z lvl=info msg="Open store (end)" log_id=0h1j8EWG000 service=storage-engine service=store op_name=tsdb_open op_event=end op_elapsed=1.318ms
influxdb_1            | ts=2023-04-06T14:07:20.610755Z lvl=info msg="Starting retention policy enforcement service" log_id=0h1j8EWG000 service=retention check_interval=30m
influxdb_1            | ts=2023-04-06T14:07:20.611883Z lvl=info msg="Starting precreation service" log_id=0h1j8EWG000 service=shard-precreation check_interval=10m advance_period=30m
influxdb_1            | ts=2023-04-06T14:07:20.615813Z lvl=info msg="Starting query controller" log_id=0h1j8EWG000 service=storage-reads concurrency_quota=1024 initial_memory_bytes_quota_per_query=9223372036854775807 memory_bytes_quota_per_query=9223372036854775807 max_memory_bytes=0 queue_size=1024
influxdb_1            | ts=2023-04-06T14:07:20.624103Z lvl=info msg="Configuring InfluxQL statement executor (zeros indicate unlimited)." log_id=0h1j8EWG000 max_select_point=0 max_select_series=0 max_select_buckets=0
app_1                 | Waiting for InfluxDB on influxdb:8086 ...
forecast-collector_1  | Forecast collector for SOLECTRUS, Version 0.2.0, built at 2023-02-07T09:08:10.238Z
forecast-collector_1  | https://github.com/solectrus/forecast-collector
forecast-collector_1  | Copyright (c) 2020,2023 Georg Ledermann, released under the MIT License
forecast-collector_1  |
forecast-collector_1  | Using Ruby 3.2.0 on platform x86_64-linux-musl
forecast-collector_1  | Pulling from api.forecast.solar every 900 seconds
forecast-collector_1  | Pushing to InfluxDB at http://influxdb:8086, bucket mySolectrusBucket
forecast-collector_1  |
forecast-collector_1  | #1: Getting data from https://api.forecast.solar/estimate/53.4807611/10.1879929/30/-90/11.2?time=seconds ... OK
forecast-collector_1  | Pushing forecast to InfluxDB ... bundler: failed to load command: src/main.rb (src/main.rb)
forecast-collector_1  | /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:109:in `rescue in _request': Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086) (InfluxDB2::InfluxError)
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:108:in `_request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:59:in `_post_text'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:214:in `write_raw'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:186:in `write'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:25:in `push'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:11:in `push'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:38:in `push_to_influx'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:22:in `block in start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `loop'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:15:in `start'
forecast-collector_1  |         from src/main.rb:24:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `kernel_load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:23:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:491:in `exec'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:34:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:28:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:45:in `block in <top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:33:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `load'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `<main>'
forecast-collector_1  | /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `initialize': Failed to open TCP connection to influxdb:8086 (Connection refused - connect(2) for "influxdb" port 8086) (Errno::ECONNREFUSED)
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `open'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `block in connect'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/timeout.rb:189:in `block in timeout'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/timeout.rb:196:in `timeout'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1269:in `connect'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1248:in `do_start'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1237:in `start'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1817:in `request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:82:in `_request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:59:in `_post_text'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:214:in `write_raw'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:186:in `write'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:25:in `push'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:11:in `push'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:38:in `push_to_influx'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:22:in `block in start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `loop'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:15:in `start'
forecast-collector_1  |         from src/main.rb:24:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `kernel_load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:23:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:491:in `exec'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:34:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:28:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:45:in `block in <top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:33:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `load'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `<main>'
forecast-collector_1  | /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `initialize': Connection refused - connect(2) for "influxdb" port 8086 (Errno::ECONNREFUSED)
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `open'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1271:in `block in connect'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/timeout.rb:189:in `block in timeout'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/timeout.rb:196:in `timeout'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1269:in `connect'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1248:in `do_start'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1237:in `start'
forecast-collector_1  |         from /usr/local/lib/ruby/3.2.0/net/http.rb:1817:in `request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:82:in `_request'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/default_api.rb:59:in `_post_text'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:214:in `write_raw'
forecast-collector_1  |         from /usr/local/bundle/gems/influxdb-client-2.9.0/lib/influxdb2/client/write_api.rb:186:in `write'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:25:in `push'
forecast-collector_1  |         from /forecast-collector/src/flux_writer.rb:11:in `push'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:38:in `push_to_influx'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:22:in `block in start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `loop'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:20:in `start'
forecast-collector_1  |         from /forecast-collector/src/loop.rb:15:in `start'
forecast-collector_1  |         from src/main.rb:24:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:58:in `kernel_load'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli/exec.rb:23:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:491:in `exec'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:34:in `dispatch'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/cli.rb:28:in `start'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:45:in `block in <top (required)>'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
forecast-collector_1  |         from /usr/local/bundle/gems/bundler-2.4.6/exe/bundle:33:in `<top (required)>'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `load'
forecast-collector_1  |         from /usr/local/bundle/bin/bundle:25:in `<main>'
influxdb_1            | ts=2023-04-06T14:07:21.921057Z lvl=info msg=Starting log_id=0h1j8EWG000 service=telemetry interval=8h
influxdb_1            | ts=2023-04-06T14:07:21.922804Z lvl=info msg=Listening log_id=0h1j8EWG000 service=tcp-listener transport=http addr=:8086 port=8086
app_1                 | influxdb (172.19.0.4:8086) open
app_1                 | InfluxDB is up and running!
app_1                 | db (172.19.0.2:5432) open
app_1                 | PostgreSQL is up and running!
app_1                 | Preparing database...
senec-collector_1     |
senec-collector_1     | Got record #12 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4495 W, House 767 W, 2023-04-06 14:07:24 +0000
solectrus_forecast-collector_1 exited with code 1
influxdb_1            | ts=2023-04-06T14:07:29.939146Z lvl=info msg="index opened with 8 partitions" log_id=0h1j8EWG000 service=storage-engine index=tsi
influxdb_1            | ts=2023-04-06T14:07:29.940732Z lvl=info msg="loading changes (start)" log_id=0h1j8EWG000 service=storage-engine engine=tsm1 op_name="field indices" op_event=start
influxdb_1            | ts=2023-04-06T14:07:29.941355Z lvl=info msg="loading changes (end)" log_id=0h1j8EWG000 service=storage-engine engine=tsm1 op_name="field indices" op_event=end op_elapsed=0.627ms
influxdb_1            | ts=2023-04-06T14:07:29.942789Z lvl=info msg="Reindexing TSM data" log_id=0h1j8EWG000 service=storage-engine engine=tsm1 db_shard_id=1
influxdb_1            | ts=2023-04-06T14:07:29.942863Z lvl=info msg="Reindexing WAL data" log_id=0h1j8EWG000 service=storage-engine engine=tsm1 db_shard_id=1
senec-collector_1     |
senec-collector_1     | Got record #13 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4502 W, House 762 W, 2023-04-06 14:07:29 +0000
influxdb_1            | ts=2023-04-06T14:07:31.190475Z lvl=info msg="saving field index changes (start)" log_id=0h1j8EWG000 service=storage-engine engine=tsm1 op_name=MeasurementFieldSet op_event=start
influxdb_1            | ts=2023-04-06T14:07:31.569182Z lvl=info msg="saving field index changes (end)" log_id=0h1j8EWG000 service=storage-engine engine=tsm1 op_name=MeasurementFieldSet op_event=end op_elapsed=378.723ms
senec-collector_1     | Successfully pushed record #6 to InfluxDB
senec-collector_1     | Successfully pushed record #2 to InfluxDB
senec-collector_1     | Successfully pushed record #7 to InfluxDB
senec-collector_1     | Successfully pushed record #4 to InfluxDB
senec-collector_1     | Successfully pushed record #8 to InfluxDB
senec-collector_1     | Successfully pushed record #1 to InfluxDB
senec-collector_1     | Successfully pushed record #9 to InfluxDB
senec-collector_1     | Successfully pushed record #5 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #14 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4497 W, House 757 W, 2023-04-06 14:07:34 +0000
senec-collector_1     | Successfully pushed record #10 to InfluxDB
senec-collector_1     | Successfully pushed record #3 to InfluxDB
senec-collector_1     | Successfully pushed record #11 to InfluxDB
senec-collector_1     | Successfully pushed record #12 to InfluxDB
senec-collector_1     | Successfully pushed record #13 to InfluxDB
forecast-collector_1  | Forecast collector for SOLECTRUS, Version 0.2.0, built at 2023-02-07T09:08:10.238Z
forecast-collector_1  | https://github.com/solectrus/forecast-collector
forecast-collector_1  | Copyright (c) 2020,2023 Georg Ledermann, released under the MIT License
forecast-collector_1  |
forecast-collector_1  | Using Ruby 3.2.0 on platform x86_64-linux-musl
forecast-collector_1  | Pulling from api.forecast.solar every 900 seconds
forecast-collector_1  | Pushing to InfluxDB at http://influxdb:8086, bucket mySolectrusBucket
forecast-collector_1  |
senec-collector_1     | Successfully pushed record #14 to InfluxDB
forecast-collector_1  | #1: Getting data from https://api.forecast.solar/estimate/53.4807611/10.1879929/30/-90/11.2?time=seconds ... OK
influxdb_1            | ts=2023-04-06T14:07:37.214811Z lvl=info msg="saving field index changes (start)" log_id=0h1j8EWG000 service=storage-engine engine=tsm1 op_name=MeasurementFieldSet op_event=start
influxdb_1            | ts=2023-04-06T14:07:37.302103Z lvl=info msg="saving field index changes (end)" log_id=0h1j8EWG000 service=storage-engine engine=tsm1 op_name=MeasurementFieldSet op_event=end op_elapsed=87.299ms
forecast-collector_1  | Pushing forecast to InfluxDB ... OK
forecast-collector_1  | Sleeping ...
senec-collector_1     |
senec-collector_1     | Got record #15 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4496 W, House 775 W, 2023-04-06 14:07:39 +0000
senec-collector_1     | Successfully pushed record #15 to InfluxDB
app_1                 | ** [Honeybadger] Unable to send error report: API key is missing. id=30a4eb9d-4ccf-452e-9432-287475c12d77 level=3 pid=132
app_1                 | rails aborted!
app_1                 | ActiveRecord::ConnectionNotEstablished: connection to server at "172.19.0.2", port 5432 failed: fe_sendauth: no password supplied
app_1                 |
app_1                 |
app_1                 | Caused by:
app_1                 | PG::ConnectionBad: connection to server at "172.19.0.2", port 5432 failed: fe_sendauth: no password supplied
app_1                 |
app_1                 | Tasks: TOP => db:prepare
app_1                 | (See full trace by running task with --trace)
app_1                 | Database is ready!
app_1                 | Puma starting in single mode...
app_1                 | * Puma version: 6.2.1 (ruby 3.2.2-p53) ("Speaking of Now")
app_1                 | *  Min threads: 5
app_1                 | *  Max threads: 5
app_1                 | *  Environment: production
app_1                 | *          PID: 143
senec-collector_1     |
senec-collector_1     | Got record #16 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4481 W, House 769 W, 2023-04-06 14:07:44 +0000
senec-collector_1     | Successfully pushed record #16 to InfluxDB
app_1                 | * Listening on http://0.0.0.0:3000
app_1                 | Use Ctrl-C to stop
senec-collector_1     |
senec-collector_1     | Got record #17 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4504 W, House 796 W, 2023-04-06 14:07:49 +0000
senec-collector_1     | Successfully pushed record #17 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #18 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4494 W, House 764 W, 2023-04-06 14:07:54 +0000
senec-collector_1     | Successfully pushed record #18 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #19 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4492 W, House 763 W, 2023-04-06 14:07:59 +0000
senec-collector_1     | Successfully pushed record #19 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #20 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4489 W, House 769 W, 2023-04-06 14:08:04 +0000
senec-collector_1     | Successfully pushed record #20 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #21 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4482 W, House 762 W, 2023-04-06 14:08:09 +0000
senec-collector_1     | Successfully pushed record #21 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #22 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4485 W, House 768 W, 2023-04-06 14:08:14 +0000
senec-collector_1     | Successfully pushed record #22 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #23 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4485 W, House 757 W, 2023-04-06 14:08:19 +0000
senec-collector_1     | Successfully pushed record #23 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #24 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4475 W, House 755 W, 2023-04-06 14:08:24 +0000
senec-collector_1     | Successfully pushed record #24 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #25 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4474 W, House 759 W, 2023-04-06 14:08:29 +0000
senec-collector_1     | Successfully pushed record #25 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #26 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4477 W, House 780 W, 2023-04-06 14:08:34 +0000
senec-collector_1     | Successfully pushed record #26 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #27 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4474 W, House 765 W, 2023-04-06 14:08:39 +0000
senec-collector_1     | Successfully pushed record #27 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #28 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4473 W, House 772 W, 2023-04-06 14:08:45 +0000
senec-collector_1     | Successfully pushed record #28 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #29 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4480 W, House 781 W, 2023-04-06 14:08:50 +0000
senec-collector_1     | Successfully pushed record #29 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #30 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4480 W, House 773 W, 2023-04-06 14:08:55 +0000
senec-collector_1     | Successfully pushed record #30 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #31 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4478 W, House 757 W, 2023-04-06 14:09:00 +0000
senec-collector_1     | Successfully pushed record #31 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #32 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4476 W, House 781 W, 2023-04-06 14:09:05 +0000
senec-collector_1     | Successfully pushed record #32 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #33 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4472 W, House 749 W, 2023-04-06 14:09:10 +0000
senec-collector_1     | Successfully pushed record #33 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #34 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4475 W, House 737 W, 2023-04-06 14:09:15 +0000
senec-collector_1     | Successfully pushed record #34 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #35 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4475 W, House 738 W, 2023-04-06 14:09:20 +0000
senec-collector_1     | Successfully pushed record #35 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #36 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4484 W, House 740 W, 2023-04-06 14:09:25 +0000
senec-collector_1     | Successfully pushed record #36 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #37 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4484 W, House 729 W, 2023-04-06 14:09:30 +0000
senec-collector_1     | Successfully pushed record #37 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #38 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4490 W, House 685 W, 2023-04-06 14:09:35 +0000
senec-collector_1     | Successfully pushed record #38 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #39 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4489 W, House 681 W, 2023-04-06 14:09:40 +0000
senec-collector_1     | Successfully pushed record #39 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #40 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4475 W, House 674 W, 2023-04-06 14:09:45 +0000
senec-collector_1     | Successfully pushed record #40 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #41 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4492 W, House 727 W, 2023-04-06 14:09:49 +0000
senec-collector_1     | Successfully pushed record #41 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #42 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4479 W, House 673 W, 2023-04-06 14:09:54 +0000
senec-collector_1     | Successfully pushed record #42 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #43 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4480 W, House 689 W, 2023-04-06 14:09:59 +0000
senec-collector_1     | Successfully pushed record #43 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #44 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4477 W, House 710 W, 2023-04-06 14:10:04 +0000
senec-collector_1     | Successfully pushed record #44 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #45 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4471 W, House 695 W, 2023-04-06 14:10:09 +0000
senec-collector_1     | Successfully pushed record #45 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #46 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4470 W, House 684 W, 2023-04-06 14:10:14 +0000
senec-collector_1     | Successfully pushed record #46 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #47 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4453 W, House 723 W, 2023-04-06 14:10:19 +0000
senec-collector_1     | Successfully pushed record #47 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #48 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4461 W, House 698 W, 2023-04-06 14:10:24 +0000
senec-collector_1     | Successfully pushed record #48 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #49 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4455 W, House 707 W, 2023-04-06 14:10:29 +0000
senec-collector_1     | Successfully pushed record #49 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #50 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4449 W, House 676 W, 2023-04-06 14:10:34 +0000
senec-collector_1     | Successfully pushed record #50 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #51 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4437 W, House 667 W, 2023-04-06 14:10:39 +0000
senec-collector_1     | Successfully pushed record #51 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #52 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4418 W, House 670 W, 2023-04-06 14:10:44 +0000
senec-collector_1     | Successfully pushed record #52 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #53 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4420 W, House 722 W, 2023-04-06 14:10:49 +0000
senec-collector_1     | Successfully pushed record #53 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #54 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4405 W, House 691 W, 2023-04-06 14:10:54 +0000
senec-collector_1     | Successfully pushed record #54 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #55 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4372 W, House 669 W, 2023-04-06 14:10:59 +0000
senec-collector_1     | Successfully pushed record #55 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #56 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4368 W, House 685 W, 2023-04-06 14:11:04 +0000
senec-collector_1     | Successfully pushed record #56 to InfluxDB
db_1                  | 2023-04-06 14:11:10.323 UTC [49] LOG:  checkpoint starting: time
senec-collector_1     |
senec-collector_1     | Got record #57 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4372 W, House 678 W, 2023-04-06 14:11:09 +0000
senec-collector_1     | Successfully pushed record #57 to InfluxDB
db_1                  | 2023-04-06 14:11:14.016 UTC [49] LOG:  checkpoint complete: wrote 33 buffers (0.2%); 0 WAL file(s) added, 0 removed, 0 recycled; write=3.007 s, sync=0.325 s, total=3.693 s; sync files=10, longest=0.081 s, average=0.033 s; distance=151 kB, estimate=151 kB
senec-collector_1     |
senec-collector_1     | Got record #58 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4377 W, House 673 W, 2023-04-06 14:11:14 +0000
senec-collector_1     | Successfully pushed record #58 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #59 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4369 W, House 696 W, 2023-04-06 14:11:19 +0000
senec-collector_1     | Successfully pushed record #59 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #60 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4361 W, House 685 W, 2023-04-06 14:11:24 +0000
senec-collector_1     | Successfully pushed record #60 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #61 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4365 W, House 677 W, 2023-04-06 14:11:29 +0000
senec-collector_1     | Successfully pushed record #61 to InfluxDB
senec-collector_1     |
senec-collector_1     | Got record #62 from SENEC at 192.168.178.54: AKKU VOLL, Inverter 4375 W, House 672 W, 2023-04-06 14:11:34 +0000
senec-collector_1     | Successfully pushed record #62 to InfluxDB
ledermann commented 1 year ago

Ok, danke, ich sehe es mir nun in Ruhe an...

carwel59 commented 1 year ago

Ok, danke, ich sehe es mir nun in Ruhe an...

alles klar, wie es bei dir passt! :)

ledermann commented 1 year ago

Nachdem ich mir das alles noch mal genau angesehen habe: Es kann nur an dem von Dir eingetragenen Passwort für PostgreSQL liegen. Die Fehlermeldung connection to server at "172.18.0.6", port 5432 failed: fe_sendauth: no password supplied erhalte ich nur, wenn ich gar kein Passwort angebe, also wenn die Zeile in der .env-Datei das hier enthält:

⋮
POSTGRES_PASSWORD=
⋮

Sobald ich da aber etwas eintrage, klappt es. Wohlgemerkt: Einen einmal gemachten Eintrag darf man nicht mehr ändern, wenn die Datenbank bereits existiert. Deshalb machen wir immer dieses Spielchen mit dem Löschen der Datenbank.

Folgende Prüfung wäre noch möglich: Wenn die Container gerade laufen, dann kannst Du mit folgendem Befehl (z.B. in einem zweiten SSH-Fenster) die Umgebungsvariablen des App-Containers auflisten lassen:

docker exec dashboard_app_1 /bin/sh -c /usr/bin/env

Wenn alles funktioniert, steht da u.a. Folgendes:

⋮
DB_PASSWORD=<pG-pw>
⋮

Und im Postgres-Container:

docker exec dashboard_db_1 /bin/sh -c /usr/bin/env

... findet sich:

⋮
POSTGRES_PASSWORD=<pG-pw>
⋮

Insofern muss ich noch mal fragen: Bist Du wirklich sicher, dass in der .env unter POSTGRES_PASSWORD ein brauchbares Passwort steht? Sind da vielleicht irgendwelche Sonderzeichen im Spiel, die dazu führen, dass das Passwort beim Container nicht ankommt?

Da die Passwörter nicht sicherheitskritisch sind und ein Zugriff auf die Datenbank nur für die SOLECTRUS-App möglich ist, schlage ich vor, Du trägst da mal ein ganz simples Passwort ein, also z.B. das aus der Installationsanleitung:

⋮
POSTGRES_PASSWORD=my-secret-db-password
⋮

Vielleicht ist es sinnvoll, auch .env und docker-compose.yml noch mal auf den Ausgangszustand zu setzen:

curl -L "https://raw.githubusercontent.com/solectrus/hosting/main/guide/synology/.env" -o /volume1/docker/solectrus/.env
curl -L "https://raw.githubusercontent.com/solectrus/hosting/main/guide/synology/docker-compose.yml" -o /volume1/docker/solectrus/docker-compose.yml

... und dann wirklich nur diese Einträge in der .env anzupassen:

- ADMIN_PASSWORD
- INSTALLATION_DATE
- ELECTRICITY_PRICE
- FEED_IN_TARIFF
- FORECAST_LATITUDE
- FORECAST_LONGITUDE
- FORECAST_DECLINATION
- FORECAST_AZIMUTH
- FORECAST_KWP

Alles andere, also insbesondere Passwörter und Token so belassen.

Wenn Du es hinbekommst, wüsste ich wirklich gerne mal, was Du da beiPOSTGRES_PASSWORD eingetragen hast :-)

carwel59 commented 1 year ago

Tja, am Ende war es wohl das Passwort für die Postgres-DB. Habe es nun durch ein wesentlich einfacheres ersetzt; et voilá ;)

Ich hatte vorher das Passwort: #pv:S0l3c72usP0576235_!

Somit bleibt mir nur noch, mich für deine Hartnäckigkeit und den (Spitzen-)Support sehr herzlich zu bedanken und dir natürlich auch frohe Ostern zu wünschen!

ledermann commented 1 year ago

Oje, da hätte ich auch früher drauf kommen können - das # markiert den Beginn eines Kommentars, d.h. Du hattest effektiv gar kein Passwort angegeben :-)

Freut mich, dass es nun funktioniert. Frohe Ostern! 🐰

ledermann commented 1 year ago

Nur der Vollständigkeit halber: Das Problem wird mit dem nächsten Update (voraussichtlich 0.10.1) nicht mehr auftreten, dort werden Sonderzeichen im Passwort korrekt behandelt.