emhass 0.11.1__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.1 → emhass-0.11.3}/CHANGELOG.md +19 -0
  2. {emhass-0.11.1 → emhass-0.11.3}/PKG-INFO +17 -11
  3. {emhass-0.11.1 → emhass-0.11.3}/README.md +1 -4
  4. emhass-0.11.3/pyproject.toml +76 -0
  5. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/command_line.py +702 -373
  6. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/data/associations.csv +1 -1
  7. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/data/config_defaults.json +1 -2
  8. emhass-0.11.3/src/emhass/forecast.py +1226 -0
  9. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/machine_learning_forecaster.py +204 -105
  10. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/machine_learning_regressor.py +26 -7
  11. emhass-0.11.3/src/emhass/optimization.py +1440 -0
  12. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/retrieve_hass.py +234 -78
  13. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/static/configuration_script.js +4 -4
  14. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/static/data/param_definitions.json +5 -4
  15. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/utils.py +690 -404
  16. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/web_server.py +339 -225
  17. {emhass-0.11.1 → emhass-0.11.3}/src/emhass.egg-info/PKG-INFO +17 -11
  18. {emhass-0.11.1 → emhass-0.11.3}/src/emhass.egg-info/SOURCES.txt +0 -1
  19. {emhass-0.11.1 → emhass-0.11.3}/src/emhass.egg-info/requires.txt +13 -2
  20. emhass-0.11.3/tests/test_command_line_utils.py +935 -0
  21. emhass-0.11.3/tests/test_forecast.py +930 -0
  22. emhass-0.11.3/tests/test_machine_learning_forecaster.py +178 -0
  23. {emhass-0.11.1 → emhass-0.11.3}/tests/test_machine_learning_regressor.py +18 -12
  24. emhass-0.11.3/tests/test_optimization.py +810 -0
  25. emhass-0.11.3/tests/test_retrieve_hass.py +316 -0
  26. emhass-0.11.3/tests/test_utils.py +515 -0
  27. emhass-0.11.1/pyproject.toml +0 -5
  28. emhass-0.11.1/setup.py +0 -68
  29. emhass-0.11.1/src/emhass/forecast.py +0 -901
  30. emhass-0.11.1/src/emhass/optimization.py +0 -894
  31. emhass-0.11.1/tests/test_command_line_utils.py +0 -616
  32. emhass-0.11.1/tests/test_forecast.py +0 -554
  33. emhass-0.11.1/tests/test_machine_learning_forecaster.py +0 -152
  34. emhass-0.11.1/tests/test_optimization.py +0 -450
  35. emhass-0.11.1/tests/test_retrieve_hass.py +0 -190
  36. emhass-0.11.1/tests/test_utils.py +0 -308
  37. {emhass-0.11.1 → emhass-0.11.3}/CODE_OF_CONDUCT.md +0 -0
  38. {emhass-0.11.1 → emhass-0.11.3}/CONTRIBUTING.md +0 -0
  39. {emhass-0.11.1 → emhass-0.11.3}/LICENSE +0 -0
  40. {emhass-0.11.1 → emhass-0.11.3}/MANIFEST.in +0 -0
  41. {emhass-0.11.1 → emhass-0.11.3}/data/data_load_cost_forecast.csv +0 -0
  42. {emhass-0.11.1 → emhass-0.11.3}/data/data_load_forecast.csv +0 -0
  43. {emhass-0.11.1 → emhass-0.11.3}/data/data_prod_price_forecast.csv +0 -0
  44. {emhass-0.11.1 → emhass-0.11.3}/data/data_train_load_clustering.pkl +0 -0
  45. {emhass-0.11.1 → emhass-0.11.3}/data/data_train_load_forecast.pkl +0 -0
  46. {emhass-0.11.1 → emhass-0.11.3}/data/data_weather_forecast.csv +0 -0
  47. {emhass-0.11.1 → emhass-0.11.3}/data/heating_prediction.csv +0 -0
  48. {emhass-0.11.1 → emhass-0.11.3}/data/opt_res_latest.csv +0 -0
  49. {emhass-0.11.1 → emhass-0.11.3}/data/opt_res_perfect_optim_cost.csv +0 -0
  50. {emhass-0.11.1 → emhass-0.11.3}/data/opt_res_perfect_optim_profit.csv +0 -0
  51. {emhass-0.11.1 → emhass-0.11.3}/data/opt_res_perfect_optim_self-consumption.csv +0 -0
  52. {emhass-0.11.1 → emhass-0.11.3}/data/test_df_final.pkl +0 -0
  53. {emhass-0.11.1 → emhass-0.11.3}/data/test_response_get_data_get_method.pbz2 +0 -0
  54. {emhass-0.11.1 → emhass-0.11.3}/data/test_response_scrapper_get_method.pbz2 +0 -0
  55. {emhass-0.11.1 → emhass-0.11.3}/data/test_response_solarforecast_get_method.pbz2 +0 -0
  56. {emhass-0.11.1 → emhass-0.11.3}/data/test_response_solcast_get_method.pbz2 +0 -0
  57. {emhass-0.11.1 → emhass-0.11.3}/setup.cfg +0 -0
  58. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/__init__.py +0 -0
  59. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/data/cec_inverters.pbz2 +0 -0
  60. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/data/cec_modules.pbz2 +0 -0
  61. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/static/advanced.html +0 -0
  62. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/static/basic.html +0 -0
  63. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/static/configuration_list.html +0 -0
  64. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/static/img/emhass_icon.png +0 -0
  65. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/static/img/emhass_logo_short.svg +0 -0
  66. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/static/img/feather-sprite.svg +0 -0
  67. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/static/script.js +0 -0
  68. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/static/style.css +0 -0
  69. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/templates/configuration.html +0 -0
  70. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/templates/index.html +0 -0
  71. {emhass-0.11.1 → emhass-0.11.3}/src/emhass/templates/template.html +0 -0
  72. {emhass-0.11.1 → emhass-0.11.3}/src/emhass.egg-info/dependency_links.txt +0 -0
  73. {emhass-0.11.1 → emhass-0.11.3}/src/emhass.egg-info/entry_points.txt +0 -0
  74. {emhass-0.11.1 → emhass-0.11.3}/src/emhass.egg-info/top_level.txt +0 -0
@@ -1,5 +1,24 @@
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
+
15
+ ## 0.11.2 - 2024-10-31
16
+ ### Improvement
17
+ - Added support to retrieve HA configuration. This will be used in the future to automatically retrieve some parameters as the currency
18
+ ### Fix
19
+ - utils fix runtime parameter merge bugs
20
+ - configuration_script.js fix placeholder value bug
21
+
3
22
  ## 0.11.1 - 2024-10-29
4
23
  ### Fix
5
24
  - Fix parameter saving and duplicate battery bugs
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: emhass
3
- Version: 0.11.1
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>
@@ -47,9 +56,6 @@ Requires-Dist: plotly>=5.6.0
47
56
  </a>
48
57
  <a style="text-decoration:none" href="https://github.com/davidusb-geek/emhass/actions">
49
58
  <img alt="EMHASS GitHub Workflow Status" src="https://github.com/davidusb-geek/emhass/actions/workflows/publish_docker.yaml/badge.svg?event=release">
50
- </a>
51
- <a style="text-decoration:none" href="https://github.com/davidusb-geek/emhass-add-on/actions">
52
- <img alt="EMHASS-Add-on GitHub Workflow Status" src="https://github.com/davidusb-geek/emhass-add-on/actions/workflows/publish_docker.yaml/badge.svg?event=release">
53
59
  </a>
54
60
  <a hstyle="text-decoration:none" ref="https://codecov.io/github/davidusb-geek/emhass" >
55
61
  <img src="https://codecov.io/github/davidusb-geek/emhass/branch/master/graph/badge.svg?token=BW7KSCHN90"/>
@@ -651,7 +657,7 @@ This can be controlled in the configuration file with parameters `lp_solver` and
651
657
 
652
658
  MIT License
653
659
 
654
- Copyright (c) 2021-2023 David HERNANDEZ
660
+ Copyright (c) 2021-2025 David HERNANDEZ
655
661
 
656
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:
657
663
 
@@ -12,9 +12,6 @@
12
12
  </a>
13
13
  <a style="text-decoration:none" href="https://github.com/davidusb-geek/emhass/actions">
14
14
  <img alt="EMHASS GitHub Workflow Status" src="https://github.com/davidusb-geek/emhass/actions/workflows/publish_docker.yaml/badge.svg?event=release">
15
- </a>
16
- <a style="text-decoration:none" href="https://github.com/davidusb-geek/emhass-add-on/actions">
17
- <img alt="EMHASS-Add-on GitHub Workflow Status" src="https://github.com/davidusb-geek/emhass-add-on/actions/workflows/publish_docker.yaml/badge.svg?event=release">
18
15
  </a>
19
16
  <a hstyle="text-decoration:none" ref="https://codecov.io/github/davidusb-geek/emhass" >
20
17
  <img src="https://codecov.io/github/davidusb-geek/emhass/branch/master/graph/badge.svg?token=BW7KSCHN90"/>
@@ -616,7 +613,7 @@ This can be controlled in the configuration file with parameters `lp_solver` and
616
613
 
617
614
  MIT License
618
615
 
619
- Copyright (c) 2021-2023 David HERNANDEZ
616
+ Copyright (c) 2021-2025 David HERNANDEZ
620
617
 
621
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:
622
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"