{"id":41223482,"url":"https://github.com/solectrus/csv-importer","last_synced_at":"2026-01-23T00:26:03.785Z","repository":{"id":42510516,"uuid":"325250866","full_name":"solectrus/csv-importer","owner":"solectrus","description":"CLI tool to upload historical photovoltaics data to InfluxDB","archived":false,"fork":false,"pushed_at":"2026-01-15T00:06:51.000Z","size":882,"stargazers_count":9,"open_issues_count":6,"forks_count":5,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2026-01-20T10:54:13.104Z","etag":null,"topics":["csv","csv-import","influxdb","photovoltaic","senec","solaredge","sungrow"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/solectrus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-12-29T10:02:45.000Z","updated_at":"2026-01-15T00:06:55.000Z","dependencies_parsed_at":"2023-10-14T11:34:34.151Z","dependency_job_id":"9ceabd7b-855e-40bf-9e50-ba21367b3a57","html_url":"https://github.com/solectrus/csv-importer","commit_stats":{"total_commits":212,"total_committers":3,"mean_commits":70.66666666666667,"dds":0.4386792452830188,"last_synced_commit":"60b2b81670fd4458a13ca8d29af2b725d180ba7d"},"previous_names":["solectrus/csv-importer","solectrus/senec-importer"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/solectrus/csv-importer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solectrus%2Fcsv-importer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solectrus%2Fcsv-importer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solectrus%2Fcsv-importer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solectrus%2Fcsv-importer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/solectrus","download_url":"https://codeload.github.com/solectrus/csv-importer/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solectrus%2Fcsv-importer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28676014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T20:48:19.482Z","status":"ssl_error","status_checked_at":"2026-01-22T20:48:14.968Z","response_time":144,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csv","csv-import","influxdb","photovoltaic","senec","solaredge","sungrow"],"created_at":"2026-01-23T00:26:03.179Z","updated_at":"2026-01-23T00:26:03.769Z","avatar_url":"https://github.com/solectrus.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Continuous integration](https://github.com/solectrus/csv-importer/actions/workflows/push.yml/badge.svg)](https://github.com/solectrus/csv-importer/actions/workflows/push.yml)\n[![Maintainability](https://qlty.sh/gh/solectrus/projects/csv-importer/maintainability.svg)](https://qlty.sh/gh/solectrus/projects/csv-importer)\n[![wakatime](https://wakatime.com/badge/user/697af4f5-617a-446d-ba58-407e7f3e0243/project/ccfef5d1-6717-4411-9895-69dc32ad5c91.svg)](https://wakatime.com/badge/user/697af4f5-617a-446d-ba58-407e7f3e0243/project/ccfef5d1-6717-4411-9895-69dc32ad5c91)\n[![Code Coverage](https://qlty.sh/gh/solectrus/projects/csv-importer/coverage.svg)](https://qlty.sh/gh/solectrus/projects/csv-importer)\n\n# CSV importer\n\nImport CSV with photovoltaic data and push it to InfluxDB for use with SOLECTRUS.\n\n## Requirements\n\n- SOLECTRUS installed and running\n- CSV files in one of the following supported formats:\n  - SENEC (downloaded from mein-senec.de)\n  - Sungrow (downloaded from portaleu.isolarcloud.com)\n  - SolarEdge (downloaded from monitoring.solaredge.com, see [details in the wiki](https://github.com/solectrus/csv-importer/wiki/SolarEdge))\n\n## Usage\n\n- Login to your host machine where SOLECTRUS is running\n- CD into the folder where the .env of SOLECTRUS file is located\n- Create a folder `csv` and put the CSV files into it (subfolders allowed)\n- Run the following command:\n\n```bash\ndocker run -it --rm \\\n           --env-file .env \\\n           --mount type=bind,source=\"$PWD/csv\",target=/data,readonly \\\n           --network=solectrus_default \\\n           ghcr.io/solectrus/csv-importer\n```\n\n(Name of the network may vary, see `docker network ls`)\n\nThis imports all CSV files from the folder `./csv` (it uses $PWD because Docker requires an absolute path here) and pushes them to your InfluxDB.\nThe process is idempotent, so you can run it multiple times without any harm.\n\n### Beware of caching issues\n\nIf the import is performed after SOLECTRUS has already been used, caching issues may occur, meaning that older periods will not be displayed. In this case, the Redis cache must be flushed once after the import:\n\n```bash\ndocker exec -it solectrus-redis-1 redis-cli FLUSHALL\n```\n\n(Name of the Redis container may vary, see `docker ps`)\n\nCheck the `.env` variable `INSTALLATION_DATE`. This must be set to the day your PV system was installed.\n\n**Important note:** Since SOLECTRUS v0.18, a second step is required: You must reset the “Daily summaries” (via “Settings” in the dashboard after you have logged in as admin).\n\n### Configuration\n\nThe following environment variables can be used to configure the importer:\n\n| Variable                                | Description                                     | Default                  |\n| --------------------------------------- | ----------------------------------------------- | ------------------------ |\n| `INFLUX_HOST`                           | Hostname of InfluxDB                            |                          |\n| `INFLUX_SCHEMA`                         | Schema (http/https) of InfluxDB                 | `http`                   |\n| `INFLUX_PORT`                           | Port of InfluxDB                                | `8086`                   |\n| `INFLUX_TOKEN_WRITE` or `INFLUX_TOKEN`  | Token for InfluxDB (requires write permissions) |                          |\n| `INFLUX_ORG`                            | Organization for InfluxDB                       |                          |\n| `INFLUX_BUCKET`                         | Bucket for InfluxDB                             |                          |\n| `INFLUX_OPEN_TIMEOUT`                   | Timeout for InfluxDB connection (in seconds)    | `30`                     |\n| `INFLUX_READ_TIMEOUT`                   | Timeout for InfluxDB read (in seconds)          | `30`                     |\n| `INFLUX_WRITE_TIMEOUT`                  | Timeout for InfluxDB write (in seconds)         | `30`                     |\n| `INFLUX_SENSOR_INVERTER_POWER`          | Measurement/field for inverter power            | `SENEC:inverter_power`   |\n| `INFLUX_SENSOR_HOUSE_POWER`             | Measurement/field for house power               | `SENEC:house_power`      |\n| `INFLUX_SENSOR_GRID_IMPORT_POWER`       | Measurement/field for grid import power         | `SENEC:grid_power_plus`  |\n| `INFLUX_SENSOR_GRID_EXPORT_POWER`       | Measurement/field for grid export power         | `SENEC:grid_power_minus` |\n| `INFLUX_SENSOR_BATTERY_CHARGE_POWER`    | Measurement/field for battery charge power      | `SENEC:bat_power_plus`   |\n| `INFLUX_SENSOR_BATTERY_DISCHARGE_POWER` | Measurement/field for battery discharge power   | `SENEC:bat_power_minus`  |\n| `SENEC_IGNORE`                          | Optionally ignore some fields (comma-separated) |                          |\n| `IMPORT_FOLDER`                         | Folder where CSV files are located              | `/data`                  |\n| `IMPORT_PAUSE`                          | Pause after each imported file (in seconds)     | `0`                      |\n| `TZ`                                    | Time zone to use when parsing times             | `Europe/Berlin`          |\n\n## License\n\nCopyright (c) 2020-2026 Georg Ledermann, released under the MIT License\n\nMany thanks to these incredible people for improving this project:\n\n- Sascha Böck (https://github.com/AlpenFlizzer) for SolarEdge support\n- Rainer Drexler (https://github.com/holiday-sunrise) for Sungrow support\n- Sebastian Löb (https://github.com/loebse) for bug fixes\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolectrus%2Fcsv-importer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolectrus%2Fcsv-importer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolectrus%2Fcsv-importer/lists"}