solectrus / csv-importer

CLI tool to upload historical photovoltaics data to InfluxDB
MIT License
6 stars 5 forks source link

Fehlermeldung beim Import #280

Open hj-hefer opened 2 weeks ago

hj-hefer commented 2 weeks ago

Ich habe heute mal über den neuen Konfigurator eine 2te Instanz mit dem Splitter installiert auf meiner Synology 918+

Bisher geht soweit (glaube ich) alles bis auf den CSV Import der älteren Daten.

Diese habe ich von mein.senec heruntergeladen und in den Ordner csv im docker kopiert.

Nach Aufruf des Befehls:

docker run -it --rm \
           --env-file .env \
           --mount type=bind,source="$PWD/csv",target=/data,readonly \
           --network=solectrus_default \
           ghcr.io/solectrus/csv-importer

bekomme ich folgende Meldung.

/volume2/docker/solectrus_neu$ docker run -it --rm \
 \
           -->            --env-file .env \
>            --mount type=bind,source="$PWD/csv",target=/data,readonly \
>            --network=solectrus_default \
>            ghcr.io/solectrus/csv-importer
CSV importer for SOLECTRUS, Version 0.3.8, built at 2024-01-28T06:49:40.109Z
https://github.com/solectrus/csv-importer
Copyright (c) 2020-2024 Georg Ledermann, released under the MIT License

Using Ruby 3.2.3 on platform x86_64-linux-musl
Pushing to InfluxDB at http://influxdb:8086, bucket solectrus
Using time zone Europe/Berlin

Importing data from /data ...
Importing /data/S4718660876105987858863410-week-1-2021.csv... bundler: failed to load command: app/main.rb (app/main.rb)
/usr/local/bundle/gems/influxdb-client-3.0.0/lib/influxdb2/client/default_api.rb:106:in `_request': unauthorized access (InfluxDB2::InfluxError)
        from /usr/local/bundle/gems/influxdb-client-3.0.0/lib/influxdb2/client/default_api.rb:59:in `_post_text'
        from /usr/local/bundle/gems/influxdb-client-3.0.0/lib/influxdb2/client/write_api.rb:214:in `write_raw'
        from /usr/local/bundle/gems/influxdb-client-3.0.0/lib/influxdb2/client/write_api.rb:186:in `write'
        from /csv-importer/app/flux_writer.rb:17:in `push'
        from /csv-importer/app/flux_writer.rb:11:in `push'
        from /csv-importer/app/import.rb:50:in `process'
        from /csv-importer/app/import.rb:17:in `block in run'
        from /csv-importer/app/import.rb:16:in `each'
        from /csv-importer/app/import.rb:16:in `run'
        from app/main.rb:24:in `<top (required)>'
        from /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/cli/exec.rb:58:in `load'
        from /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/cli/exec.rb:58:in `kernel_load'
        from /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/cli/exec.rb:23:in `run'
        from /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/cli.rb:451:in `exec'
        from /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
        from /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
        from /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
        from /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/cli.rb:34:in `dispatch'
        from /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
        from /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/cli.rb:28:in `start'
        from /usr/local/bundle/gems/bundler-2.5.5/exe/bundle:28:in `block in <top (required)>'
        from /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
        from /usr/local/bundle/gems/bundler-2.5.5/exe/bundle:20:in `<top (required)>'
        from /usr/local/bundle/bin/bundle:25:in `load'
        from /usr/local/bundle/bin/bundle:25:in `<main>'

Woran kann das liegen?

ledermann commented 2 weeks ago

Die Fehlermeldung ist diese:

unauthorized access (InfluxDB2::InfluxError)

Ursache scheint also ein falsches Token für den Zugriff auf InfluxDB zu sein. Hast du in deiner .env wirklich ein gültiges INFLUX_TOKEN_WRITE oder INFLUX_TOKEN mit Schreibberechtigung? Der Konfigurator erstellt ein solches Token. Hast du vielleicht manuelle Änderungen daran vorgenommen?

Ansonsten fällt auf, dass dein CSV-Importer in Version 0.3.8 veraltet ist. Aktuell ist 0.4.3. Mach vor dem nächsten Versuch sicherheitshalber mal das hier:

docker pull ghcr.io/solectrus/csv-importer
hj-hefer commented 2 weeks ago

Ja es lag an der Schreibberechtigung in der .env Datei. Der Import hat funktioniert allerdings ist selbst nach löschen des Cache die Daten der Importierten Datei nicht vorhanden. Es werden nur die Werte neuen seit der neuen Installation angezeigt.

ledermann commented 2 weeks ago

Hm, mir wird gerade bewusst, dass es hier noch ein Problem gibt: Der Importer kennt die neue Sensor-Konfiguration noch nicht, benutzt also die alten SENEC-spezifischen Field-Names.

Das muss ich unbedingt noch anpassen, habe #282 angelegt.

Wie lautet denn dein Sensor-Mapping in der .env? Wenn da noch die alten Namen stehen (z.B. grid_power_minus etc.), dann wird sich das korrigieren lassen. Ansonsten muss ich dich erst mal vertrösten, bis #282 erledigt ist.