juham-automation 0.0.2__py3-none-any.whl

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.
@@ -0,0 +1,37 @@
1
+ """
2
+ Description
3
+ ===========
4
+
5
+ Juham - Juha's Ultimate Home Automation Masterpiece
6
+
7
+ """
8
+
9
+ from .automation.energycostcalculator import EnergyCostCalculator
10
+ from .ts.energycostcalculator_ts import EnergyCostCalculatorTs
11
+ from .ts.forecast_ts import ForecastTs
12
+ from .ts.log_ts import LogTs
13
+ from .ts.power_ts import PowerTs
14
+ from .ts.powerplan_ts import PowerPlanTs
15
+ from .ts.powermeter_ts import PowerMeterTs
16
+ from .ts.electricityprice_ts import ElectricityPriceTs
17
+ from .automation.spothintafi import SpotHintaFi
18
+ from .automation.watercirculator import WaterCirculator
19
+ from .automation.hotwateroptimizer import HotWaterOptimizer
20
+ from .japp import JApp
21
+ from .automation.powermeter_simulator import PowerMeterSimulator
22
+
23
+ __all__ = [
24
+ "EnergyCostCalculator",
25
+ "EnergyCostCalculatorTs",
26
+ "ForecastTs",
27
+ "HotWaterOptimizer",
28
+ "LogTs",
29
+ "PowerTs",
30
+ "PowerPlanTs",
31
+ "PowerMeterTs",
32
+ "SpotHintaFi",
33
+ "WaterCirculator",
34
+ "JApp",
35
+ "PowerMeterSimulator",
36
+ "ElectricityPriceTs",
37
+ ]
@@ -0,0 +1,55 @@
1
+ from masterpiece import Application
2
+ from juham_core import Juham
3
+ from juham_systemstatus import SystemStatus
4
+
5
+ from .ts.forecast_ts import ForecastTs
6
+ from .ts.power_ts import PowerTs
7
+ from .ts.powerplan_ts import PowerPlanTs
8
+ from .ts.powermeter_ts import PowerMeterTs
9
+ from .ts.log_ts import LogTs
10
+ from .ts.energycostcalculator_ts import EnergyCostCalculatorTs
11
+ from .ts.electricityprice_ts import ElectricityPriceTs
12
+ from .automation.spothintafi import SpotHintaFi
13
+ from .automation.energycostcalculator import EnergyCostCalculator
14
+
15
+
16
+ class JApp(Application):
17
+ """Juham home automation application base class. Registers new plugin
18
+ group 'juham' on which general purpose Juham plugins can be written on.
19
+ """
20
+
21
+ def __init__(self, name: str) -> None:
22
+ """Creates home automation application with the given name.
23
+ If --enable_plugins is False create hard coded configuration
24
+ by calling instantiate_classes() method.
25
+
26
+ Args:
27
+ name (str): name for the application
28
+ """
29
+ super().__init__(name, Juham(name))
30
+
31
+ def instantiate_classes(self) -> None:
32
+ """Instantiate automation classes .
33
+
34
+ Returns:
35
+ None
36
+ """
37
+ self.add(ForecastTs())
38
+ self.add(PowerTs())
39
+ self.add(PowerPlanTs())
40
+ self.add(PowerMeterTs())
41
+ self.add(LogTs())
42
+ self.add(SpotHintaFi())
43
+ self.add(EnergyCostCalculator())
44
+ self.add(EnergyCostCalculatorTs())
45
+ self.add(ElectricityPriceTs())
46
+
47
+ # install plugins
48
+ self.add(self.instantiate_plugin_by_name("SystemStatus"))
49
+ self.add(self.instantiate_plugin_by_name("VisualCrossing"))
50
+ self.add(self.instantiate_plugin_by_name("OpenWeatherMap"))
51
+
52
+ @classmethod
53
+ def register(cls) -> None:
54
+ """Register plugin group `juham`."""
55
+ Application.register_plugin_group("juham")
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,25 @@
1
+ LICENSE
2
+ =======
3
+
4
+ Copyright (c) 2024, Juha Meskanen
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining
7
+ a copy of this software and associated documentation files (the
8
+ "Software"), to deal in the Software without restriction, including
9
+ without limitation the rights to use, copy, modify, merge, publish,
10
+ distribute, sublicense, and/or sell copies of the Software, and to
11
+ permit persons to whom the Software is furnished to do so, subject to
12
+ the following conditions:
13
+
14
+ **The above copyright notice and this permission notice shall be included in all
15
+ copies or substantial portions of the Software.**
16
+
17
+
18
+ ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
21
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
22
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. **
25
+
@@ -0,0 +1,103 @@
1
+ Metadata-Version: 2.2
2
+ Name: juham-automation
3
+ Version: 0.0.2
4
+ Summary: Juha's Ultimate Home Automation Masterpiece
5
+ Author-email: J Meskanen <juham.api@gmail.com>
6
+ Maintainer-email: "J. Meskanen" <juham.api@gmail.com>
7
+ License: LICENSE
8
+ =======
9
+
10
+ Copyright (c) 2024, Juha Meskanen
11
+
12
+ Permission is hereby granted, free of charge, to any person obtaining
13
+ a copy of this software and associated documentation files (the
14
+ "Software"), to deal in the Software without restriction, including
15
+ without limitation the rights to use, copy, modify, merge, publish,
16
+ distribute, sublicense, and/or sell copies of the Software, and to
17
+ permit persons to whom the Software is furnished to do so, subject to
18
+ the following conditions:
19
+
20
+ **The above copyright notice and this permission notice shall be included in all
21
+ copies or substantial portions of the Software.**
22
+
23
+
24
+ ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
27
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
28
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
29
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
30
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. **
31
+
32
+
33
+ Project-URL: Homepage, https://gitlab.com/juham/juham/juham-automation.git
34
+ Project-URL: Bug Reports, https://gitlab.com/juham/juham/juham-automation.git
35
+ Project-URL: Funding, https://meskanen.com
36
+ Project-URL: Say Thanks!, http://meskanen.com
37
+ Project-URL: Source, https://gitlab.com/juham/juham/juham-automation.git
38
+ Keywords: home,automation,juham
39
+ Classifier: Development Status :: 2 - Pre-Alpha
40
+ Classifier: Intended Audience :: Developers
41
+ Classifier: Topic :: Software Development
42
+ Classifier: License :: Public Domain
43
+ Classifier: Programming Language :: Python :: 3.8
44
+ Requires-Python: >=3.8
45
+ Description-Content-Type: text/markdown
46
+ License-File: LICENSE.rst
47
+ Requires-Dist: masterpiece>=0.1.19
48
+ Requires-Dist: masterpiece_influx>=0.0.2
49
+ Requires-Dist: masterpiece_pahomqtt>=0.0.3
50
+ Requires-Dist: juham_core>=0.0.4
51
+ Requires-Dist: requests>=2.31
52
+ Requires-Dist: pytz>=2024.1
53
+ Requires-Dist: importlib-metadata
54
+ Provides-Extra: dev
55
+ Requires-Dist: check-manifest; extra == "dev"
56
+ Requires-Dist: types-pyz; extra == "dev"
57
+
58
+ Welcome to Juham™ - Juha's Ultimate Home Automation Masterpiece
59
+ ================================================================
60
+
61
+ Project Description
62
+ -------------------
63
+
64
+ This package extends the ``juham_core`` package, providing home automation building blocks that cover most common needs.
65
+ It consists of two main sub-modules:
66
+
67
+ - ``automation``
68
+ * **spothintafi**: Acquires electricity prices in Finland.
69
+ * **watercirculator**: Automates a water circulator pump based on hot water temperature and motion detection.
70
+ * **hotwateroptimizer**: Controls hot water radiators based on temperature sensors and electricity price data.
71
+ * **energycostcalculator**: Monitors power consumption and electricity prices, and computes the energy balance in euros.
72
+
73
+
74
+ - ``ts``
75
+ * This folder contains time series recorders that listen for Juham™ topics and store the data in a time series database
76
+ for later inspection.
77
+
78
+
79
+ Project Status
80
+ --------------
81
+
82
+ **Current State**: **Pre-Alpha (Status 2)**
83
+
84
+ All classes have been tested to some extent, and no known bugs have been reported. However, the code still requires work in
85
+ terms of design and robustness. For instance, electricity prices are currently hard-coded to use euros, but this should be
86
+ configurable to support multiple currencies.
87
+
88
+
89
+ Special Thanks
90
+ --------------
91
+
92
+ This project would not have been possible without the generous support of two exceptional individuals: Teppo K. and Mahi.
93
+
94
+ Teppo K. provided the initial spark for this project by donating a Raspberry Pi, a temperature sensor, and giving an inspiring
95
+ demonstration of his own home automation system—effectively dragging me down the rabbit hole of endless tinkering.
96
+
97
+ Mahi has been instrumental in translating my half-baked ideas into Python code, offering invaluable support and
98
+ encouragement—while also ensuring that every time I thought I was done, I wasn’t.
99
+
100
+ Because of these two gentlemen, my already minimal spare time dropped into the negatives as I desperately tried to push the
101
+ system to some semblance of professionalism.
102
+
103
+ I’m truly grateful to both—really. 😅
@@ -0,0 +1,9 @@
1
+ juham_automation/__init__.py,sha256=ibC2uN4z7PHdkg-A4wcFrX91jU_PIhMwhcaBsZeFOdk,1035
2
+ juham_automation/japp.py,sha256=HjCPU4mG6MLeZQztxw1e8NkWwg11peWBd27glJPQzYE,1931
3
+ juham_automation/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
4
+ juham_automation-0.0.2.dist-info/LICENSE.rst,sha256=D3SSbUrv10lpAZ91lTMCQAke-MXMvrjFDsDyM3vEKJI,1114
5
+ juham_automation-0.0.2.dist-info/METADATA,sha256=RxItoeHCWpunLKgmTCt-1eGj-RFQoZhBoq9kTiMfl3o,4727
6
+ juham_automation-0.0.2.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
7
+ juham_automation-0.0.2.dist-info/entry_points.txt,sha256=7yrw-Tdpm3xqJcxdUI5E5iSfSyd3s5Kj1-hAjB3aoHI,502
8
+ juham_automation-0.0.2.dist-info/top_level.txt,sha256=jfohvtocvX_gfT21AhJk7Iay5ZiQsS3HzrDjF7S4Qp0,17
9
+ juham_automation-0.0.2.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (75.8.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,10 @@
1
+ [juham_automation.plugins]
2
+ electricityprice_plugin = juham_automation:ElectricityPriceTs
3
+ energycostcalculator_plugin = juham_automation:EnergyCostCalculator
4
+ forecast_plugin = juham_automation:ForecastTs
5
+ hotwateroptimizer_plugin = juham_automation:HotWaterOptimizer
6
+ logts_plugin = juham_automation:LogTs
7
+ powerplan_plugin = juham_automation:PowerPlanTs
8
+ powerts_plugin = juham_automation:PowerTs
9
+ rwatercirculator_plugin = juham_automation:WaterCirculator
10
+ spothintafi_plugin = juham_automation:SpotHintaFi
@@ -0,0 +1 @@
1
+ juham_automation