Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file modified .gitignore
100644 → 100755
Empty file.
Empty file modified BPW40-IR-reader.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified Charge_discharge_curves.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified Energy_used_from_battery_over_time.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified Energy_used_from_grid_and_battery_by_battery_size.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified LICENSE
100644 → 100755
Empty file.
Empty file modified Monthly_details.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified README.md
100644 → 100755
Empty file.
146,651 changes: 146,215 additions & 436 deletions Simulate_Battery.ipynb
100644 → 100755

Large diffs are not rendered by default.

135 changes: 135 additions & 0 deletions data_exporters/netzOÖ/Export_smarmeter_data_from_netzOÖ.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "1fa1fca4-49ad-4562-a5e5-f55660a8a536",
"metadata": {
"tags": []
},
"source": [
"# Export smartmeter data from netzOÖ"
]
},
{
"cell_type": "markdown",
"id": "91a786b8",
"metadata": {},
"source": [
"Download data from eservice.netzooe.at consumption data:\n",
"\n",
"1. Download der 15-Minutenwerte über das NetzOÖ e-Service-Portal\n",
"2. Vertrag auswählen\n",
"3. Verbrauchsübersicht\n",
"4. Zeitraum auswählen\n",
"5. Ausgewählte Daten herunterladen\n",
"\n",
"and then download feed-in data the same way.\n"
]
},
{
"cell_type": "markdown",
"id": "f7e8ef6e",
"metadata": {},
"source": [
"## Parameter"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "09cab31f",
"metadata": {},
"outputs": [],
"source": [
"#Add downloadet Files\n",
"consumption_file = \"Managerdaten_AT00.csv\"\n",
"feedin_file = \"Managerdaten_AT000000.csv\""
]
},
{
"cell_type": "markdown",
"id": "b5233358",
"metadata": {},
"source": [
"## Convert Data"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "bcbdcf77",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" timestamp power consumption feedin\n",
"0 2025-03-22 00:00:00 240.0 0.240 0.0\n",
"1 2025-03-22 00:15:00 252.0 0.252 0.0\n",
"2 2025-03-22 00:30:00 236.0 0.236 0.0\n",
"3 2025-03-22 00:45:00 272.0 0.272 0.0\n",
"4 2025-03-22 01:00:00 260.0 0.260 0.0\n"
]
}
],
"source": [
"import pandas as pd\n",
"\n",
"def load_and_process_data(consumption_file, feedin_file):\n",
" consumption_df = pd.read_csv(consumption_file, delimiter=';')\n",
" feedin_df = pd.read_csv(feedin_file, delimiter=';')\n",
" consumption_df = consumption_df.dropna(axis=1, how='all')\n",
" feedin_df = feedin_df.dropna(axis=1, how='all')\n",
" consumption_df.columns = ['timestamp', 'kWh', 'kW', 'status']\n",
" feedin_df.columns = ['timestamp', 'kWh', 'kW', 'status']\n",
" consumption_df['timestamp'] = pd.to_datetime(consumption_df['timestamp'], format='%d.%m.%Y %H:%M')\n",
" feedin_df['timestamp'] = pd.to_datetime(feedin_df['timestamp'], format='%d.%m.%Y %H:%M')\n",
" consumption_df = consumption_df[consumption_df['status'] == 'VALID']\n",
" feedin_df = feedin_df[feedin_df['status'] == 'VALID']\n",
" consumption_df['kWh'] = consumption_df['kWh'].str.replace(',', '.').astype(float)\n",
" consumption_df['kW'] = consumption_df['kW'].str.replace(',', '.').astype(float)\n",
" feedin_df['kWh'] = feedin_df['kWh'].str.replace(',', '.').astype(float)\n",
" feedin_df['kW'] = feedin_df['kW'].str.replace(',', '.').astype(float)\n",
" df = pd.merge(consumption_df[['timestamp', 'kW']], feedin_df[['timestamp', 'kW']], on=\"timestamp\", how=\"outer\", suffixes=('_cons', '_feed'))\n",
" df['power'] = (df['kW_cons'] - df['kW_feed']) * 1000\n",
" df = df.rename(columns={'kW_cons': 'consumption', 'kW_feed': 'feedin'})\n",
" df = df[['timestamp', 'power', 'consumption', 'feedin']]\n",
" df = df.dropna(subset=['power', 'consumption', 'feedin'])\n",
" df = df.sort_values(by='timestamp').reset_index(drop=True)\n",
"\n",
" return df\n",
"\n",
"df = load_and_process_data(consumption_file, feedin_file)\n",
"\n",
"# Print \n",
"print(df.head())\n",
"\n",
"# Save the processed data \n",
"df = df[['timestamp', 'power']] # Keep only the 'timestamp' and 'power' columns\n",
"df.to_csv(\"../../sample_data.csv\", index=False)\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
182 changes: 182 additions & 0 deletions data_exporters/netzOÖ/Managerdaten_AT00.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
"Datum";"kWh";"kW";"Status";
"22.03.2025 00:00";0;0;"VALID";
"22.03.2025 00:15";0;0;"VALID";
"22.03.2025 00:30";0;0;"VALID";
"22.03.2025 00:45";0;0;"VALID";
"22.03.2025 01:00";0;0;"VALID";
"22.03.2025 01:15";0;0;"VALID";
"22.03.2025 01:30";0;0;"VALID";
"22.03.2025 01:45";0;0;"VALID";
"22.03.2025 02:00";0;0;"VALID";
"22.03.2025 02:15";0;0;"VALID";
"22.03.2025 02:30";0;0;"VALID";
"22.03.2025 02:45";0;0;"VALID";
"22.03.2025 03:00";0;0;"VALID";
"22.03.2025 03:15";0;0;"VALID";
"22.03.2025 03:30";0;0;"VALID";
"22.03.2025 03:45";0;0;"VALID";
"22.03.2025 04:00";0;0;"VALID";
"22.03.2025 04:15";0;0;"VALID";
"22.03.2025 04:30";0;0;"VALID";
"22.03.2025 04:45";0;0;"VALID";
"22.03.2025 05:00";0;0;"VALID";
"22.03.2025 05:15";0;0;"VALID";
"22.03.2025 05:30";0;0;"VALID";
"22.03.2025 05:45";0;0;"VALID";
"22.03.2025 06:00";0;0;"VALID";
"22.03.2025 06:15";0;0;"VALID";
"22.03.2025 06:30";0;0;"VALID";
"22.03.2025 06:45";0;0;"VALID";
"22.03.2025 07:00";0;0;"VALID";
"22.03.2025 07:15";0;0;"VALID";
"22.03.2025 07:30";0,001;0,004;"VALID";
"22.03.2025 07:45";0;0;"VALID";
"22.03.2025 08:00";0;0;"VALID";
"22.03.2025 08:15";0;0;"VALID";
"22.03.2025 08:30";0,002;0,008;"VALID";
"22.03.2025 08:45";0,002;0,008;"VALID";
"22.03.2025 09:00";0;0;"VALID";
"22.03.2025 09:15";0,002;0,008;"VALID";
"22.03.2025 09:30";0,009;0,036;"VALID";
"22.03.2025 09:45";0,006;0,024;"VALID";
"22.03.2025 10:00";0,002;0,008;"VALID";
"22.03.2025 10:15";0,001;0,004;"VALID";
"22.03.2025 10:30";0,004;0,016;"VALID";
"22.03.2025 10:45";0,012;0,048;"VALID";
"22.03.2025 11:00";0,007;0,028;"VALID";
"22.03.2025 11:15";0,003;0,012;"VALID";
"22.03.2025 11:30";0,002;0,008;"VALID";
"22.03.2025 11:45";0,005;0,02;"VALID";
"22.03.2025 12:00";0,022;0,088;"VALID";
"22.03.2025 12:15";0,017;0,068;"VALID";
"22.03.2025 12:30";0,006;0,024;"VALID";
"22.03.2025 12:45";0,007;0,028;"VALID";
"22.03.2025 13:00";0,004;0,016;"VALID";
"22.03.2025 13:15";0,005;0,02;"VALID";
"22.03.2025 13:30";0,004;0,016;"VALID";
"22.03.2025 13:45";0,005;0,02;"VALID";
"22.03.2025 14:00";0,004;0,016;"VALID";
"22.03.2025 14:15";0,005;0,02;"VALID";
"22.03.2025 14:30";0,005;0,02;"VALID";
"22.03.2025 14:45";0,004;0,016;"VALID";
"22.03.2025 15:00";0,005;0,02;"VALID";
"22.03.2025 15:15";0,002;0,008;"VALID";
"22.03.2025 15:30";0,009;0,036;"VALID";
"22.03.2025 15:45";0;0;"VALID";
"22.03.2025 16:00";0;0;"VALID";
"22.03.2025 16:15";0;0;"VALID";
"22.03.2025 16:30";0;0;"VALID";
"22.03.2025 16:45";0;0;"VALID";
"22.03.2025 17:00";0;0;"VALID";
"22.03.2025 17:15";0;0;"VALID";
"22.03.2025 17:30";0;0;"VALID";
"22.03.2025 17:45";0;0;"VALID";
"22.03.2025 18:00";0;0;"VALID";
"22.03.2025 18:15";0;0;"VALID";
"22.03.2025 18:30";0;0;"VALID";
"22.03.2025 18:45";0;0;"VALID";
"22.03.2025 19:00";0;0;"VALID";
"22.03.2025 19:15";0;0;"VALID";
"22.03.2025 19:30";0;0;"VALID";
"22.03.2025 19:45";0;0;"VALID";
"22.03.2025 20:00";0;0;"VALID";
"22.03.2025 20:15";0;0;"VALID";
"22.03.2025 20:30";0;0;"VALID";
"22.03.2025 20:45";0;0;"VALID";
"22.03.2025 21:00";0;0;"VALID";
"22.03.2025 21:15";0;0;"VALID";
"22.03.2025 21:30";0;0;"VALID";
"22.03.2025 21:45";0;0;"VALID";
"22.03.2025 22:00";0;0;"VALID";
"22.03.2025 22:15";0;0;"VALID";
"22.03.2025 22:30";0;0;"VALID";
"22.03.2025 22:45";0;0;"VALID";
"22.03.2025 23:00";0;0;"VALID";
"22.03.2025 23:15";0;0;"VALID";
"22.03.2025 23:30";0;0;"VALID";
"22.03.2025 23:45";0;0;"VALID";
"23.03.2025 00:00";0;0;"VALID";
"23.03.2025 00:15";0;0;"VALID";
"23.03.2025 00:30";0;0;"VALID";
"23.03.2025 00:45";0;0;"VALID";
"23.03.2025 01:00";0;0;"VALID";
"23.03.2025 01:15";0;0;"VALID";
"23.03.2025 01:30";0;0;"VALID";
"23.03.2025 01:45";0;0;"VALID";
"23.03.2025 02:00";0;0;"VALID";
"23.03.2025 02:15";0;0;"VALID";
"23.03.2025 02:30";0;0;"VALID";
"23.03.2025 02:45";0;0;"VALID";
"23.03.2025 03:00";0;0;"VALID";
"23.03.2025 03:15";0;0;"VALID";
"23.03.2025 03:30";0;0;"VALID";
"23.03.2025 03:45";0;0;"VALID";
"23.03.2025 04:00";0;0;"VALID";
"23.03.2025 04:15";0;0;"VALID";
"23.03.2025 04:30";0;0;"VALID";
"23.03.2025 04:45";0;0;"VALID";
"23.03.2025 05:00";0;0;"VALID";
"23.03.2025 05:15";0;0;"VALID";
"23.03.2025 05:30";0;0;"VALID";
"23.03.2025 05:45";0;0;"VALID";
"23.03.2025 06:00";0;0;"VALID";
"23.03.2025 06:15";0;0;"VALID";
"23.03.2025 06:30";0;0;"VALID";
"23.03.2025 06:45";0;0;"VALID";
"23.03.2025 07:00";0;0;"VALID";
"23.03.2025 07:15";0;0;"VALID";
"23.03.2025 07:30";0;0;"VALID";
"23.03.2025 07:45";0;0;"VALID";
"23.03.2025 08:00";0;0;"VALID";
"23.03.2025 08:15";0;0;"VALID";
"23.03.2025 08:30";0;0;"VALID";
"23.03.2025 08:45";0,014;0,056;"VALID";
"23.03.2025 09:00";0,018;0,072;"VALID";
"23.03.2025 09:15";0,015;0,06;"VALID";
"23.03.2025 09:30";0,01;0,04;"VALID";
"23.03.2025 09:45";0,003;0,012;"VALID";
"23.03.2025 10:00";0,003;0,012;"VALID";
"23.03.2025 10:15";0,238;0,952;"VALID";
"23.03.2025 10:30";0,614;2,456;"VALID";
"23.03.2025 10:45";0,596;2,384;"VALID";
"23.03.2025 11:00";0,528;2,112;"VALID";
"23.03.2025 11:15";0,073;0,292;"VALID";
"23.03.2025 11:30";0,049;0,196;"VALID";
"23.03.2025 11:45";0,046;0,184;"VALID";
"23.03.2025 12:00";0,033;0,132;"VALID";
"23.03.2025 12:15";0,295;1,18;"VALID";
"23.03.2025 12:30";0,334;1,336;"VALID";
"23.03.2025 12:45";0,59;2,36;"VALID";
"23.03.2025 13:00";0,209;0,836;"VALID";
"23.03.2025 13:15";0,659;2,636;"VALID";
"23.03.2025 13:30";0,266;1,064;"VALID";
"23.03.2025 13:45";0,426;1,704;"VALID";
"23.03.2025 14:00";0,013;0,052;"VALID";
"23.03.2025 14:15";0;0;"VALID";
"23.03.2025 14:30";0,006;0,024;"VALID";
"23.03.2025 14:45";0,014;0,056;"VALID";
"23.03.2025 15:00";0,016;0,064;"VALID";
"23.03.2025 15:15";0,123;0,492;"VALID";
"23.03.2025 15:30";0,249;0,996;"VALID";
"23.03.2025 15:45";0;0;"VALID";
"23.03.2025 16:00";0;0;"VALID";
"23.03.2025 16:15";0;0;"VALID";
"23.03.2025 16:30";0;0;"VALID";
"23.03.2025 16:45";0;0;"VALID";
"23.03.2025 17:00";0;0;"VALID";
"23.03.2025 17:15";0;0;"VALID";
"23.03.2025 17:30";0;0;"VALID";
"23.03.2025 17:45";0;0;"VALID";
"23.03.2025 18:00";0;0;"VALID";
"23.03.2025 18:15";0;0;"VALID";
"23.03.2025 18:30";0;0;"VALID";
"23.03.2025 18:45";0;0;"VALID";
"23.03.2025 19:00";0;0;"VALID";
"23.03.2025 19:15";0;0;"VALID";
"23.03.2025 19:30";0;0;"VALID";
"23.03.2025 19:45";0;0;"VALID";
"23.03.2025 20:00";0;0;"VALID";
"23.03.2025 20:15";0;0;"VALID";
"23.03.2025 20:30";0;0;"VALID";
"23.03.2025 20:45";0;0;"VALID";
"23.03.2025 21:00";0;0;"VALID";
Loading