emhass 0.11.2__tar.gz → 0.11.3__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 (74) hide show
  1. {emhass-0.11.2 → emhass-0.11.3}/CHANGELOG.md +12 -0
  2. {emhass-0.11.2 → emhass-0.11.3}/PKG-INFO +17 -8
  3. {emhass-0.11.2 → emhass-0.11.3}/README.md +1 -1
  4. emhass-0.11.3/pyproject.toml +76 -0
  5. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/command_line.py +702 -373
  6. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/data/associations.csv +1 -1
  7. emhass-0.11.3/src/emhass/forecast.py +1226 -0
  8. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/machine_learning_forecaster.py +204 -105
  9. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/machine_learning_regressor.py +26 -7
  10. emhass-0.11.3/src/emhass/optimization.py +1440 -0
  11. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/retrieve_hass.py +226 -79
  12. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/static/data/param_definitions.json +5 -4
  13. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/utils.py +689 -455
  14. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/web_server.py +339 -225
  15. {emhass-0.11.2 → emhass-0.11.3}/src/emhass.egg-info/PKG-INFO +17 -8
  16. {emhass-0.11.2 → emhass-0.11.3}/src/emhass.egg-info/SOURCES.txt +0 -1
  17. {emhass-0.11.2 → emhass-0.11.3}/src/emhass.egg-info/requires.txt +13 -2
  18. emhass-0.11.3/tests/test_command_line_utils.py +935 -0
  19. emhass-0.11.3/tests/test_forecast.py +930 -0
  20. emhass-0.11.3/tests/test_machine_learning_forecaster.py +178 -0
  21. {emhass-0.11.2 → emhass-0.11.3}/tests/test_machine_learning_regressor.py +18 -12
  22. emhass-0.11.3/tests/test_optimization.py +810 -0
  23. emhass-0.11.3/tests/test_retrieve_hass.py +316 -0
  24. emhass-0.11.3/tests/test_utils.py +515 -0
  25. emhass-0.11.2/pyproject.toml +0 -5
  26. emhass-0.11.2/setup.py +0 -68
  27. emhass-0.11.2/src/emhass/forecast.py +0 -901
  28. emhass-0.11.2/src/emhass/optimization.py +0 -894
  29. emhass-0.11.2/tests/test_command_line_utils.py +0 -616
  30. emhass-0.11.2/tests/test_forecast.py +0 -554
  31. emhass-0.11.2/tests/test_machine_learning_forecaster.py +0 -152
  32. emhass-0.11.2/tests/test_optimization.py +0 -450
  33. emhass-0.11.2/tests/test_retrieve_hass.py +0 -196
  34. emhass-0.11.2/tests/test_utils.py +0 -308
  35. {emhass-0.11.2 → emhass-0.11.3}/CODE_OF_CONDUCT.md +0 -0
  36. {emhass-0.11.2 → emhass-0.11.3}/CONTRIBUTING.md +0 -0
  37. {emhass-0.11.2 → emhass-0.11.3}/LICENSE +0 -0
  38. {emhass-0.11.2 → emhass-0.11.3}/MANIFEST.in +0 -0
  39. {emhass-0.11.2 → emhass-0.11.3}/data/data_load_cost_forecast.csv +0 -0
  40. {emhass-0.11.2 → emhass-0.11.3}/data/data_load_forecast.csv +0 -0
  41. {emhass-0.11.2 → emhass-0.11.3}/data/data_prod_price_forecast.csv +0 -0
  42. {emhass-0.11.2 → emhass-0.11.3}/data/data_train_load_clustering.pkl +0 -0
  43. {emhass-0.11.2 → emhass-0.11.3}/data/data_train_load_forecast.pkl +0 -0
  44. {emhass-0.11.2 → emhass-0.11.3}/data/data_weather_forecast.csv +0 -0
  45. {emhass-0.11.2 → emhass-0.11.3}/data/heating_prediction.csv +0 -0
  46. {emhass-0.11.2 → emhass-0.11.3}/data/opt_res_latest.csv +0 -0
  47. {emhass-0.11.2 → emhass-0.11.3}/data/opt_res_perfect_optim_cost.csv +0 -0
  48. {emhass-0.11.2 → emhass-0.11.3}/data/opt_res_perfect_optim_profit.csv +0 -0
  49. {emhass-0.11.2 → emhass-0.11.3}/data/opt_res_perfect_optim_self-consumption.csv +0 -0
  50. {emhass-0.11.2 → emhass-0.11.3}/data/test_df_final.pkl +0 -0
  51. {emhass-0.11.2 → emhass-0.11.3}/data/test_response_get_data_get_method.pbz2 +0 -0
  52. {emhass-0.11.2 → emhass-0.11.3}/data/test_response_scrapper_get_method.pbz2 +0 -0
  53. {emhass-0.11.2 → emhass-0.11.3}/data/test_response_solarforecast_get_method.pbz2 +0 -0
  54. {emhass-0.11.2 → emhass-0.11.3}/data/test_response_solcast_get_method.pbz2 +0 -0
  55. {emhass-0.11.2 → emhass-0.11.3}/setup.cfg +0 -0
  56. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/__init__.py +0 -0
  57. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/data/cec_inverters.pbz2 +0 -0
  58. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/data/cec_modules.pbz2 +0 -0
  59. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/data/config_defaults.json +0 -0
  60. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/static/advanced.html +0 -0
  61. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/static/basic.html +0 -0
  62. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/static/configuration_list.html +0 -0
  63. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/static/configuration_script.js +0 -0
  64. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/static/img/emhass_icon.png +0 -0
  65. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/static/img/emhass_logo_short.svg +0 -0
  66. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/static/img/feather-sprite.svg +0 -0
  67. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/static/script.js +0 -0
  68. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/static/style.css +0 -0
  69. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/templates/configuration.html +0 -0
  70. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/templates/index.html +0 -0
  71. {emhass-0.11.2 → emhass-0.11.3}/src/emhass/templates/template.html +0 -0
  72. {emhass-0.11.2 → emhass-0.11.3}/src/emhass.egg-info/dependency_links.txt +0 -0
  73. {emhass-0.11.2 → emhass-0.11.3}/src/emhass.egg-info/entry_points.txt +0 -0
  74. {emhass-0.11.2 → emhass-0.11.3}/src/emhass.egg-info/top_level.txt +0 -0
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.11.3 - 2024-10-31
4
+ ### Improvement
5
+ - Runtime parameters now support all config parameters
6
+ - Adopted the Ruff code fomatting
7
+ - Added a Github Actions for Google OSV security code scan
8
+ - Updated the param_definitions.json
9
+ - 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
10
+ ### Fix
11
+ - Updated the default battery optimization weights
12
+ - Fix publish_data defaulting to opt_res_latest, tweak warning logs
13
+ - Added MLForecaster options to load_forecast_method for param_definitions.json
14
+
3
15
  ## 0.11.2 - 2024-10-31
4
16
  ### Improvement
5
17
  - 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.3
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.3"
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"