Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Import von CSV Dateien die von der isolarcloud #142

Open
jacktheseb opened this issue Feb 1, 2024 · 5 comments
Open

Import von CSV Dateien die von der isolarcloud #142

jacktheseb opened this issue Feb 1, 2024 · 5 comments

Comments

@jacktheseb
Copy link

Hallo, ich wollte heute die Daten von vor der Installation von Solectrus importieren. Ich habe schon alle möglichen Berichte ausprobiert.

als Fehler bekomme ich folgendes:

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 aarch64-linux-musl
Pushing to InfluxDB at http://influxdb:8086, bucket solectrus
Using time zone Europe/Berlin

Importing data from /data ...
Importing /data/08.2023.csv... bundler: failed to load command: app/main.rb (app/main.rb)
/csv-importer/app/csv_probe.rb:19:in `throw': uncaught throw "Unknown data format in /data/08.2023.csv, first line is Time,Total PV Yield(kWh),Total Feed-in Energy(kWh),Total Purchased Energy(kWh),Total Load Energy Consumption from PV(kWh)\r\n" (UncaughtThrowError)

      throw "Unknown data format in #{file_path}, first line is #{first_line}"
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        from /csv-importer/app/csv_probe.rb:19:in `record_class'
        from /csv-importer/app/import.rb:37: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>'

Die CSV sieht so aus. Ich habe nur in der zu importierende Datei die leeren Spalten gelöscht.
08.2023.csv

Vielleicht kann mir ja jemand helfen, die Dateien zu importieren.

@ledermann
Copy link
Member

Derzeit unterstützt der CSV-Importer nur die Datenformate von SENEC und Sungrow, wobei letzteres auch aus dem isolarcloud-Portal stammen. Möglicherweise gibt es da verschiedene Formate. Kannst du das aufklären? Ich selbst kenne dieses Portal nicht.

Könntest du außerdem eine unveränderte, Original-CSV-Datei bereitstellen? Wenn du selbst darin bereits etwas verändert hast, ist nicht sichergestellt, dass ein Import der Original-Datei wirklich funktioniert.

Ob und wann ich einen Importer für dieses Format entwickeln werde, ist allerdings unklar. Es handelt sich ja um ein kostenfreies OpenSource-Projekt. Ein Sponsoring könnte helfen ;-)

@jacktheseb
Copy link
Author

Ich lade die Datei aus der isolarcloud. Ich kann dort unterschiedliche Reports exportieren. Mit jeweils unterschiedlichen Messwerten. Ich habe einmal die Möglichen Berichte als Bild angefügt mit der jeweiligen CSV Datei.
Screenshot 2024-02-01 101413
Statistik_Anlagenbericht_Monat_20240201104036-0-1-PV.csv

Screenshot 2024-02-01 103814
PV-Energy Storage System1-4051940-Energy Storage System1.csv

Es sind in beiden CSVs alle Messwerte inkludiert.

@ledermann
Copy link
Member

Habe mir das jetzt mal genauer angesehen. Es ist machbar, aber wird ein paar Stunden Entwicklungszeit verschlingen. Ich brauche auch präziseren Input und eine absolut exakte CSV-Beispieldatei:

  • Es werden Messwerte für (idealerweise) 5-Minuten-Abstände benötigt. Tageswerte sind zu wenig.
  • Bitte keine kumulierten Werte mit aufnehmen. Jeder Wert soll also für sich stehen.
  • Die Spaltennamen müssen eindeutig sein. In den drei Dateien sind die Header sowohl auf Englisch als auch auf Deutsch.
  • Was im Idealfall je Zeile enthalten sein sollte: PV-Erzeugung, Hausverbrauch, Batterie-Beladung, Batterie-Entladung, Batterieladestand, Netzbezug, Netzeinspeisung, Wallbox-Beladung.

Es wäre perfekt, wenn ich genau eine CSV-Datei erhalten könnte, an der ich mich orientieren kann. Diese Datei sollte einen ganzen Tag umfassen, also 24 * 60 / 5 = 288 Zeilen enthalten.

@jacktheseb
Copy link
Author

Ich will deshalb nicht so viel Aufwand machen.
Die eine Englische Datei, war nur ein Versuch ob es damit klappt.

Ich muss mir die Datei sowieso dann zusammen bauen aus den Tageswerten über den Zeitraum den ich nachträglich importieren möchte.
Wie sollte der Header denn aussehen, bzw. Was ist schon Programiert. Daher kann ich mir die Datei dann auch passend zusammen bauen, mit den Werten aus der Solarcloud von Sungrow.
Batterie kommt bei uns nicht vor, und die Wallbox ist über EVCC angebunden darüber importiere ich mir auch aktuell die Daten in Solectrus.

@ledermann
Copy link
Member

ledermann commented Feb 1, 2024

Klar, die von mir gewünschte Datei soll nur ein Beispiel sein. Es sollen sämtliche relevanten Spalten enthalten sein. Den Import würde ich dann so implementieren, dass genau diese Spalten importiert werden.

Gerne kannst du es natürlich auch andersherum angehen und selbst die Datei mit irgendwelchen Tools ins SENEC- oder Sungrow-Format bringen. Beispiele von Dateien, die derzeitig importiert werden können, finden sich hier:
https://github.com/solectrus/csv-importer/tree/develop/spec/data

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants