emhass 0.11.2__tar.gz → 0.11.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. {emhass-0.11.2 → emhass-0.11.4}/CHANGELOG.md +16 -0
  2. {emhass-0.11.2 → emhass-0.11.4}/PKG-INFO +17 -8
  3. {emhass-0.11.2 → emhass-0.11.4}/README.md +1 -1
  4. emhass-0.11.4/data/data_train_load_clustering.pkl +0 -0
  5. emhass-0.11.4/pyproject.toml +76 -0
  6. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/command_line.py +702 -373
  7. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/data/associations.csv +1 -1
  8. emhass-0.11.4/src/emhass/forecast.py +1226 -0
  9. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/machine_learning_forecaster.py +204 -105
  10. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/machine_learning_regressor.py +26 -7
  11. emhass-0.11.4/src/emhass/optimization.py +1440 -0
  12. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/retrieve_hass.py +226 -79
  13. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/static/data/param_definitions.json +5 -4
  14. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/utils.py +687 -443
  15. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/web_server.py +339 -232
  16. {emhass-0.11.2 → emhass-0.11.4}/src/emhass.egg-info/PKG-INFO +17 -8
  17. {emhass-0.11.2 → emhass-0.11.4}/src/emhass.egg-info/SOURCES.txt +0 -1
  18. {emhass-0.11.2 → emhass-0.11.4}/src/emhass.egg-info/requires.txt +13 -2
  19. emhass-0.11.4/tests/test_command_line_utils.py +935 -0
  20. emhass-0.11.4/tests/test_forecast.py +930 -0
  21. emhass-0.11.4/tests/test_machine_learning_forecaster.py +178 -0
  22. {emhass-0.11.2 → emhass-0.11.4}/tests/test_machine_learning_regressor.py +18 -12
  23. emhass-0.11.4/tests/test_optimization.py +810 -0
  24. emhass-0.11.4/tests/test_retrieve_hass.py +316 -0
  25. emhass-0.11.4/tests/test_utils.py +515 -0
  26. emhass-0.11.2/data/data_train_load_clustering.pkl +0 -0
  27. emhass-0.11.2/pyproject.toml +0 -5
  28. emhass-0.11.2/setup.py +0 -68
  29. emhass-0.11.2/src/emhass/forecast.py +0 -901
  30. emhass-0.11.2/src/emhass/optimization.py +0 -894
  31. emhass-0.11.2/tests/test_command_line_utils.py +0 -616
  32. emhass-0.11.2/tests/test_forecast.py +0 -554
  33. emhass-0.11.2/tests/test_machine_learning_forecaster.py +0 -152
  34. emhass-0.11.2/tests/test_optimization.py +0 -450
  35. emhass-0.11.2/tests/test_retrieve_hass.py +0 -196
  36. emhass-0.11.2/tests/test_utils.py +0 -308
  37. {emhass-0.11.2 → emhass-0.11.4}/CODE_OF_CONDUCT.md +0 -0
  38. {emhass-0.11.2 → emhass-0.11.4}/CONTRIBUTING.md +0 -0
  39. {emhass-0.11.2 → emhass-0.11.4}/LICENSE +0 -0
  40. {emhass-0.11.2 → emhass-0.11.4}/MANIFEST.in +0 -0
  41. {emhass-0.11.2 → emhass-0.11.4}/data/data_load_cost_forecast.csv +0 -0
  42. {emhass-0.11.2 → emhass-0.11.4}/data/data_load_forecast.csv +0 -0
  43. {emhass-0.11.2 → emhass-0.11.4}/data/data_prod_price_forecast.csv +0 -0
  44. {emhass-0.11.2 → emhass-0.11.4}/data/data_train_load_forecast.pkl +0 -0
  45. {emhass-0.11.2 → emhass-0.11.4}/data/data_weather_forecast.csv +0 -0
  46. {emhass-0.11.2 → emhass-0.11.4}/data/heating_prediction.csv +0 -0
  47. {emhass-0.11.2 → emhass-0.11.4}/data/opt_res_latest.csv +0 -0
  48. {emhass-0.11.2 → emhass-0.11.4}/data/opt_res_perfect_optim_cost.csv +0 -0
  49. {emhass-0.11.2 → emhass-0.11.4}/data/opt_res_perfect_optim_profit.csv +0 -0
  50. {emhass-0.11.2 → emhass-0.11.4}/data/opt_res_perfect_optim_self-consumption.csv +0 -0
  51. {emhass-0.11.2 → emhass-0.11.4}/data/test_df_final.pkl +0 -0
  52. {emhass-0.11.2 → emhass-0.11.4}/data/test_response_get_data_get_method.pbz2 +0 -0
  53. {emhass-0.11.2 → emhass-0.11.4}/data/test_response_scrapper_get_method.pbz2 +0 -0
  54. {emhass-0.11.2 → emhass-0.11.4}/data/test_response_solarforecast_get_method.pbz2 +0 -0
  55. {emhass-0.11.2 → emhass-0.11.4}/data/test_response_solcast_get_method.pbz2 +0 -0
  56. {emhass-0.11.2 → emhass-0.11.4}/setup.cfg +0 -0
  57. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/__init__.py +0 -0
  58. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/data/cec_inverters.pbz2 +0 -0
  59. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/data/cec_modules.pbz2 +0 -0
  60. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/data/config_defaults.json +0 -0
  61. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/static/advanced.html +0 -0
  62. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/static/basic.html +0 -0
  63. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/static/configuration_list.html +0 -0
  64. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/static/configuration_script.js +0 -0
  65. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/static/img/emhass_icon.png +0 -0
  66. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/static/img/emhass_logo_short.svg +0 -0
  67. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/static/img/feather-sprite.svg +0 -0
  68. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/static/script.js +0 -0
  69. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/static/style.css +0 -0
  70. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/templates/configuration.html +0 -0
  71. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/templates/index.html +0 -0
  72. {emhass-0.11.2 → emhass-0.11.4}/src/emhass/templates/template.html +0 -0
  73. {emhass-0.11.2 → emhass-0.11.4}/src/emhass.egg-info/dependency_links.txt +0 -0
  74. {emhass-0.11.2 → emhass-0.11.4}/src/emhass.egg-info/entry_points.txt +0 -0
  75. {emhass-0.11.2 → emhass-0.11.4}/src/emhass.egg-info/top_level.txt +0 -0
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.11.4 - 2024-12-24
4
+ ### Fix
5
+ - Fix bug when treating runtime params, fix optimization_time_step timedelta
6
+
7
+ ## 0.11.3 - 2024-12-23
8
+ ### Improvement
9
+ - Runtime parameters now support all config parameters
10
+ - Adopted the Ruff code fomatting
11
+ - Added a Github Actions for Google OSV security code scan
12
+ - Updated the param_definitions.json
13
+ - Bump skforecast from 0.13.0 to 0.14.0. This needed upgrading a bunch of deprecated options. Notably skforcast now uses the time series cross-validation object (cv) from sklearn
14
+ ### Fix
15
+ - Updated the default battery optimization weights
16
+ - Fix publish_data defaulting to opt_res_latest, tweak warning logs
17
+ - Added MLForecaster options to load_forecast_method for param_definitions.json
18
+
3
19
  ## 0.11.2 - 2024-10-31
4
20
  ### Improvement
5
21
  - Added support to retrieve HA configuration. This will be used in the future to automatically retrieve some parameters as the currency
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: emhass
3
- Version: 0.11.2
3
+ Version: 0.11.4
4
4
  Summary: An Energy Management System for Home Assistant
5
- Home-page: https://github.com/davidusb-geek/emhass
6
- Author: David HERNANDEZ
7
- Author-email: davidusb@gmail.com
5
+ Author-email: David HERNANDEZ <davidusb@gmail.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/davidusb-geek/emhass
8
8
  Keywords: energy,management,optimization,hass
9
9
  Classifier: Development Status :: 5 - Production/Stable
10
10
  Classifier: Intended Audience :: Developers
@@ -12,10 +12,9 @@ Classifier: Topic :: Software Development :: Build Tools
12
12
  Classifier: License :: OSI Approved :: MIT License
13
13
  Classifier: Programming Language :: Python :: 3.11
14
14
  Classifier: Operating System :: OS Independent
15
- Requires-Python: >=3.10, <3.12
15
+ Requires-Python: <3.12,>=3.10
16
16
  Description-Content-Type: text/markdown
17
17
  License-File: LICENSE
18
- Requires-Dist: wheel
19
18
  Requires-Dist: numpy==1.26.4
20
19
  Requires-Dist: scipy==1.12.0
21
20
  Requires-Dist: pandas<=2.0.3
@@ -28,10 +27,20 @@ Requires-Dist: h5py==3.12.1
28
27
  Requires-Dist: pulp>=2.4
29
28
  Requires-Dist: pyyaml>=5.4.1
30
29
  Requires-Dist: tables<=3.9.1
31
- Requires-Dist: skforecast==0.13.0
30
+ Requires-Dist: skforecast==0.14.0
32
31
  Requires-Dist: flask>=2.0.3
33
32
  Requires-Dist: waitress>=2.1.1
34
33
  Requires-Dist: plotly>=5.6.0
34
+ Provides-Extra: docs
35
+ Requires-Dist: sphinx; extra == "docs"
36
+ Requires-Dist: sphinx-rtd-theme; extra == "docs"
37
+ Requires-Dist: myst-parser; extra == "docs"
38
+ Provides-Extra: test
39
+ Requires-Dist: requests_mock; extra == "test"
40
+ Requires-Dist: pytest; extra == "test"
41
+ Requires-Dist: coverage; extra == "test"
42
+ Requires-Dist: snakeviz; extra == "test"
43
+ Requires-Dist: ruff; extra == "test"
35
44
 
36
45
  <div align="center">
37
46
  <br>
@@ -648,7 +657,7 @@ This can be controlled in the configuration file with parameters `lp_solver` and
648
657
 
649
658
  MIT License
650
659
 
651
- Copyright (c) 2021-2023 David HERNANDEZ
660
+ Copyright (c) 2021-2025 David HERNANDEZ
652
661
 
653
662
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
654
663
 
@@ -613,7 +613,7 @@ This can be controlled in the configuration file with parameters `lp_solver` and
613
613
 
614
614
  MIT License
615
615
 
616
- Copyright (c) 2021-2023 David HERNANDEZ
616
+ Copyright (c) 2021-2025 David HERNANDEZ
617
617
 
618
618
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
619
619
 
@@ -0,0 +1,76 @@
1
+ [build-system]
2
+ # These are the assumed default build requirements from pip:
3
+ # https://pip.pypa.io/en/stable/reference/pip/#pep-517-and-518-support
4
+ requires = ["setuptools>=62.0.0", "wheel"]
5
+ build-backend = "setuptools.build_meta"
6
+
7
+ [project]
8
+ name = "emhass"
9
+ version = "0.11.4"
10
+ description = "An Energy Management System for Home Assistant"
11
+ readme = "README.md"
12
+ requires-python = ">=3.10, <3.12"
13
+ authors = [{ name = "David HERNANDEZ", email = "davidusb@gmail.com" }]
14
+ license = { text = "MIT" }
15
+ keywords = ["energy", "management", "optimization", "hass"]
16
+ classifiers = [
17
+ "Development Status :: 5 - Production/Stable",
18
+ "Intended Audience :: Developers",
19
+ "Topic :: Software Development :: Build Tools",
20
+ "License :: OSI Approved :: MIT License",
21
+ "Programming Language :: Python :: 3.11",
22
+ "Operating System :: OS Independent",
23
+ ]
24
+
25
+ dependencies = [
26
+ "numpy==1.26.4",
27
+ "scipy==1.12.0",
28
+ "pandas<=2.0.3",
29
+ "pvlib>=0.10.2",
30
+ "protobuf>=3.0.0",
31
+ "pytz>=2021.1",
32
+ "requests>=2.25.1",
33
+ "beautifulsoup4>=4.9.3",
34
+ "h5py==3.12.1",
35
+ "pulp>=2.4",
36
+ "pyyaml>=5.4.1",
37
+ "tables<=3.9.1",
38
+ "skforecast==0.14.0",
39
+ "flask>=2.0.3",
40
+ "waitress>=2.1.1",
41
+ "plotly>=5.6.0",
42
+ ]
43
+
44
+ [project.optional-dependencies]
45
+ docs = ["sphinx", "sphinx-rtd-theme", "myst-parser"]
46
+ test = ["requests_mock", "pytest", "coverage", "snakeviz", "ruff"]
47
+
48
+ [tool.setuptools.packages]
49
+ find = { where = ["src"] }
50
+
51
+ [tool.setuptools.package-data]
52
+ emhass = [
53
+ "templates/index.html",
54
+ "templates/template.html",
55
+ "templates/configuration.html",
56
+ "static/advanced.html",
57
+ "static/basic.html",
58
+ "static/script.js",
59
+ "static/configuration_script.js",
60
+ "static/style.css",
61
+ "static/configuration_list.html",
62
+ "static/img/emhass_icon.png",
63
+ "static/img/emhass_logo_short.svg",
64
+ "static/img/feather-sprite.svg",
65
+ "static/data/param_definitions.json",
66
+ "data/cec_modules.pbz2",
67
+ "data/cec_inverters.pbz2",
68
+ "data/associations.csv",
69
+ "data/config_defaults.json",
70
+ ]
71
+
72
+ [project.scripts]
73
+ emhass = "emhass.command_line:main"
74
+
75
+ [project.urls]
76
+ Homepage = "https://github.com/davidusb-geek/emhass"