juham-automation 0.0.17__py3-none-any.whl → 0.0.26__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.
Files changed (26) hide show
  1. juham_automation/__init__.py +42 -38
  2. juham_automation/automation/__init__.py +23 -21
  3. juham_automation/automation/energybalancer.py +158 -0
  4. juham_automation/automation/energycostcalculator.py +267 -266
  5. juham_automation/automation/{hotwateroptimizer.py → heatingoptimizer.py} +539 -581
  6. juham_automation/automation/powermeter_simulator.py +139 -139
  7. juham_automation/automation/spothintafi.py +140 -140
  8. juham_automation/automation/watercirculator.py +159 -159
  9. juham_automation/japp.py +53 -49
  10. juham_automation/ts/__init__.py +27 -25
  11. juham_automation/ts/electricityprice_ts.py +51 -51
  12. juham_automation/ts/energybalancer_ts.py +47 -0
  13. juham_automation/ts/energycostcalculator_ts.py +43 -43
  14. juham_automation/ts/forecast_ts.py +97 -97
  15. juham_automation/ts/log_ts.py +57 -57
  16. juham_automation/ts/power_ts.py +49 -49
  17. juham_automation/ts/powermeter_ts.py +67 -70
  18. juham_automation/ts/powerplan_ts.py +45 -45
  19. juham_automation-0.0.26.dist-info/METADATA +152 -0
  20. juham_automation-0.0.26.dist-info/RECORD +25 -0
  21. {juham_automation-0.0.17.dist-info → juham_automation-0.0.26.dist-info}/entry_points.txt +3 -1
  22. {juham_automation-0.0.17.dist-info → juham_automation-0.0.26.dist-info}/licenses/LICENSE.rst +25 -25
  23. juham_automation-0.0.17.dist-info/METADATA +0 -106
  24. juham_automation-0.0.17.dist-info/RECORD +0 -23
  25. {juham_automation-0.0.17.dist-info → juham_automation-0.0.26.dist-info}/WHEEL +0 -0
  26. {juham_automation-0.0.17.dist-info → juham_automation-0.0.26.dist-info}/top_level.txt +0 -0
@@ -1,45 +1,45 @@
1
- import json
2
- from typing import Any
3
- from typing_extensions import override
4
-
5
- from masterpiece.mqtt import MqttMsg
6
- from juham_core import JuhamTs
7
- from juham_core.timeutils import epoc2utc
8
-
9
-
10
- class PowerPlanTs(JuhamTs):
11
- """Power plan time series record.
12
-
13
- Listens powerplan topic and updates time series database
14
- accordingly.
15
- """
16
-
17
- def __init__(self, name: str = "powerplan_ts") -> None:
18
- super().__init__(name)
19
- self.powerplan_topic = self.make_topic_name("powerplan")
20
-
21
- @override
22
- def on_connect(self, client: object, userdata: Any, flags: int, rc: int) -> None:
23
- super().on_connect(client, userdata, flags, rc)
24
- self.subscribe(self.powerplan_topic)
25
-
26
- @override
27
- def on_message(self, client: object, userdata: Any, msg: MqttMsg) -> None:
28
- super().on_message(client, userdata, msg)
29
- m = json.loads(msg.payload.decode())
30
- schedule = m["Schedule"]
31
- uoi = m["UOI"]
32
- ts = m["Timestamp"]
33
-
34
- point = (
35
- self.measurement("powerplan")
36
- .tag("unit", m["Unit"])
37
- .field("state", m["State"]) # 1 on, 0 off
38
- .field("name", m["Unit"]) # e.g main_boiler
39
- .field("type", "C") # C=consumption, S = supply
40
- .field("power", 16.0) # kW
41
- .field("Schedule", schedule) # figures of merit
42
- .field("UOI", float(uoi)) # Utilitzation Optimizing Index
43
- .time(epoc2utc(ts))
44
- )
45
- self.write(point)
1
+ import json
2
+ from typing import Any
3
+ from typing_extensions import override
4
+
5
+ from masterpiece.mqtt import MqttMsg
6
+ from juham_core import JuhamTs
7
+ from juham_core.timeutils import epoc2utc
8
+
9
+
10
+ class PowerPlanTs(JuhamTs):
11
+ """Power plan time series record.
12
+
13
+ Listens powerplan topic and updates time series database
14
+ accordingly.
15
+ """
16
+
17
+ def __init__(self, name: str = "powerplan_ts") -> None:
18
+ super().__init__(name)
19
+ self.powerplan_topic = self.make_topic_name("powerplan")
20
+
21
+ @override
22
+ def on_connect(self, client: object, userdata: Any, flags: int, rc: int) -> None:
23
+ super().on_connect(client, userdata, flags, rc)
24
+ self.subscribe(self.powerplan_topic)
25
+
26
+ @override
27
+ def on_message(self, client: object, userdata: Any, msg: MqttMsg) -> None:
28
+ super().on_message(client, userdata, msg)
29
+ m = json.loads(msg.payload.decode())
30
+ schedule = m["Schedule"]
31
+ uoi = m["UOI"]
32
+ ts = m["Timestamp"]
33
+
34
+ point = (
35
+ self.measurement("powerplan")
36
+ .tag("unit", m["Unit"])
37
+ .field("state", m["State"]) # 1 on, 0 off
38
+ .field("name", m["Unit"]) # e.g main_boiler
39
+ .field("type", "C") # C=consumption, S = supply
40
+ .field("power", 16.0) # kW
41
+ .field("Schedule", schedule) # figures of merit
42
+ .field("UOI", float(uoi)) # Utilitzation Optimizing Index
43
+ .time(epoc2utc(ts))
44
+ )
45
+ self.write(point)
@@ -0,0 +1,152 @@
1
+ Metadata-Version: 2.4
2
+ Name: juham-automation
3
+ Version: 0.0.26
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: juham_core>=0.1.3
48
+ Provides-Extra: dev
49
+ Requires-Dist: check-manifest; extra == "dev"
50
+ Requires-Dist: types-pyz; extra == "dev"
51
+ Dynamic: license-file
52
+
53
+ Welcome to Juham™ - Juha's Ultimate Home Automation Masterpiece
54
+ ================================================================
55
+
56
+ Project Description
57
+ -------------------
58
+
59
+ This package extends the ``juham_core`` package, providing home automation building blocks that address most common needs. It consists of two main sub-modules:
60
+
61
+ ``automation``:
62
+ - **spothintafi**: Acquires electricity prices in Finland.
63
+ - **watercirculator**: Automates a water circulator pump based on hot water temperature and motion detection.
64
+ - **heatingoptimizer**: Controls hot water radiators based on temperature sensors and electricity price data.
65
+ - **energycostcalculator**: Monitors power consumption and electricity prices, and computes the energy balance in euros.
66
+ - **energybalancer**: Handles real-time energy balancing and net billing.
67
+
68
+ ``ts``:
69
+ - This folder contains time series recorders that listen for Juham™ topics and store the data in a time series database for later inspection.
70
+
71
+ Project Status
72
+ --------------
73
+
74
+ **Current State**: **Pre-Alpha (Status 2)**
75
+
76
+ All classes have been tested to some extent, and no known bugs have been reported. However, the code still requires work in terms of design and robustness. For example, electricity prices are currently hard-coded to use euros, but this should be configurable to support multiple currencies.
77
+
78
+
79
+ Features
80
+ --------
81
+
82
+ **HeatingAutomater** listens to the power meter to compute the net energy balance.
83
+
84
+ .. image:: _static/images/juham_powermeter.png
85
+ :alt: Powermeter
86
+ :width: 400px
87
+
88
+ Powermeter is needed to measure the real-time energy consumption
89
+
90
+
91
+ **Energy Revenue** is computed based on the electricity price and transmission costs. This is the total cost one has to pay for consuming energy.
92
+
93
+ .. image:: _static/images/juham_energyrevenue.png
94
+ :alt: Energy Revenue
95
+ :width: 400px
96
+
97
+ Energy revenue per hour and per day
98
+
99
+
100
+ **Real-time temperature** trends monitored by the **Shelly Plus Add-on** and **DS18B20** sensors
101
+
102
+ .. image:: _static/images/juham_boilertemperatures.png
103
+ :alt: Energy Revenue
104
+ :width: 400px
105
+
106
+ Temperature time series.
107
+
108
+
109
+ **Real-time humidity** trends monitored by the **Shelly Plus Add-on** and **DHT22** sensors
110
+
111
+ .. image:: _static/images/juham_humiditysensors.png
112
+ :alt: Energy Revenue
113
+ :width: 400px
114
+
115
+ Relative humidity time series.
116
+
117
+
118
+
119
+ **Utilization Optimization Index**: The Utilization Optimization Index predicts the optimal hours for energy consumption by factoring in electricity prices, temperature, and forecasts for wind and solar energy. It identifies the best times to activate heating systems. The cheapest hours within the current period may be skipped if the solar forecast predicts free electricity in the next period.period.
120
+
121
+ .. image:: _static/images/juham_uoi.png
122
+ :alt: Power Plan
123
+ :width: 400px
124
+
125
+ UOI cast for heating the primary and sun pre-heating boilers for two types of solar panels and boilers: electric-based panels and solar thermal panels, which use water circulation. The primary one is electrically heated, while the secondary ‘pre-heating’ boiler is heated by the hot water from the solar thermal panels, or by electricity when there's a positive energy balance.
126
+
127
+
128
+ **Power Plan** is computed for the next 12 hours based on the electricity price and solar energy forecast. If no solar energy is available, the power plan determines power consumption, e.g., when the hot water radiators are enabled.
129
+
130
+ .. image:: _static/images/juham_powerplan.png
131
+ :alt: Power Plan
132
+ :width: 400px
133
+
134
+ Powerplan optimizing consumers to use the cheapest hours
135
+
136
+
137
+ **Energy Balancer**: When the energy balance is positive (e.g., when solar panels produce more energy than is currently being consumed), the energy balancer is activated. It monitors the energy balance in 15-minute (or one-hour) intervals and computes when a consumer with a specific power demand should be activated to consume all the energy produced so far.
138
+
139
+ .. image:: _static/images/juham_automation_energybalancer.png
140
+ :alt: Energy Balancer
141
+ :width: 400px
142
+
143
+ Energy balancer activating consumers based on the actual real-time net energy
144
+
145
+
146
+ **Power Diagnosis**: All controlled relays are monitored to ensure their correct operation. This ensures that relays are enabled according to the power plan and energy balancer commands.
147
+
148
+ .. image:: _static/images/juham_automation_relays.png
149
+ :alt: Relays
150
+ :width: 400px
151
+
152
+ The operation of the relays for diagnosis.
@@ -0,0 +1,25 @@
1
+ juham_automation/__init__.py,sha256=32BL36bhT7OaSw22H7st-7-3IXcFM2Pf5js80hNA8W0,928
2
+ juham_automation/japp.py,sha256=L2u1mfKvun2fiXhB3AEJD9zMDcdFZ3_doXZYJJzu9tg,1646
3
+ juham_automation/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
4
+ juham_automation/automation/__init__.py,sha256=uxkIrcRSp1cFikn-oBRtQ8XiT9cSf7xjm3CS1RN7lAQ,522
5
+ juham_automation/automation/energybalancer.py,sha256=Y8l3ARnLn1HPIR3IwNPOH69ky_JAI8lFgkXYO8oTUXY,6998
6
+ juham_automation/automation/energycostcalculator.py,sha256=v30wxRpuY2gGBSMJifrFRTjsRU9t-iCiq33Vds7s3O8,10877
7
+ juham_automation/automation/heatingoptimizer.py,sha256=X9M2Z0jzneJCHtsh3lXmGqct0GwF_sm2Zwcv-26ZPdU,20923
8
+ juham_automation/automation/powermeter_simulator.py,sha256=3WZcjByRTdqnC77l7LjP-TEjmZ8XBEO4hClYsrjxmBE,4549
9
+ juham_automation/automation/spothintafi.py,sha256=cZbi7w2fVweHX_fh1r5MTjGdesX9wDQta2mfVjtiwvw,4331
10
+ juham_automation/automation/watercirculator.py,sha256=a8meMNaONbHcIH3y0vP0UulJc1-gZiLZpw7H8kAOreY,6410
11
+ juham_automation/ts/__init__.py,sha256=kTEzVkDi6ednH4-fxKxrY6enlTuTXmSw09pPAQX3CMc,612
12
+ juham_automation/ts/electricityprice_ts.py,sha256=BYs120V4teVjSqPc8PpPDjOTc5dOrVM9Maqse7E8cvk,1684
13
+ juham_automation/ts/energybalancer_ts.py,sha256=KpMYnyzAKghPEMHAVHrh_aplorn9TeSvZr-DVpfir3c,1476
14
+ juham_automation/ts/energycostcalculator_ts.py,sha256=MbeYEGlziVgq4zI40Tk71zxeDPeKafEG3s0LqDRiz0g,1277
15
+ juham_automation/ts/forecast_ts.py,sha256=Gk46hIlS8ijxs-zyy8fBvXrhI7J-8e5Gt2QEe6gFB6s,3158
16
+ juham_automation/ts/log_ts.py,sha256=XsNaazuPmRUZLUqxU0DZae_frtT6kAFcXJTc598CtOA,1750
17
+ juham_automation/ts/power_ts.py,sha256=e7bSeZjitY4C_gLup9L0NjvU_WnQsl3ayDhVShj32KY,1399
18
+ juham_automation/ts/powermeter_ts.py,sha256=gXzfK2S4SzrQ9GqM0tsLaV6z_vYmTkBatTcaivASSXs,2188
19
+ juham_automation/ts/powerplan_ts.py,sha256=LZeE7TnzPCDaugggKlaV-K48lDwwnC1ZNum50JYAWaY,1482
20
+ juham_automation-0.0.26.dist-info/licenses/LICENSE.rst,sha256=QVHD5V5_HSys2PdPdig_xKggDj8cGX33ALKqRsYyjtI,1089
21
+ juham_automation-0.0.26.dist-info/METADATA,sha256=IUY0bGE3bRk8a_89B4YFUjTvv3Omv2D59-Jq8p1m1w0,6837
22
+ juham_automation-0.0.26.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
23
+ juham_automation-0.0.26.dist-info/entry_points.txt,sha256=h-KzuKjmGPd4_iX_oiGvxx4IEc97dVbGGlhdh5ctbpI,605
24
+ juham_automation-0.0.26.dist-info/top_level.txt,sha256=jfohvtocvX_gfT21AhJk7Iay5ZiQsS3HzrDjF7S4Qp0,17
25
+ juham_automation-0.0.26.dist-info/RECORD,,
@@ -1,8 +1,10 @@
1
1
  [juham.plugins]
2
2
  electricityprice_plugin = juham_automation:ElectricityPriceTs
3
+ energybalancer_plugin = juham_automation:EnergyBalancer
4
+ energybalancerts_plugin = juham_automation:EnergyBalancerTs
3
5
  energycostcalculator_plugin = juham_automation:EnergyCostCalculator
4
6
  forecast_plugin = juham_automation:ForecastTs
5
- hotwateroptimizer_plugin = juham_automation:HotWaterOptimizer
7
+ heatingoptimizer_plugin = juham_automation:HeatingOptimizer
6
8
  logts_plugin = juham_automation:LogTs
7
9
  powerplan_plugin = juham_automation:PowerPlanTs
8
10
  powerts_plugin = juham_automation:PowerTs
@@ -1,25 +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
-
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
+
@@ -1,106 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: juham-automation
3
- Version: 0.0.17
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: juham_core>=0.1.3
48
- Provides-Extra: dev
49
- Requires-Dist: check-manifest; extra == "dev"
50
- Requires-Dist: types-pyz; extra == "dev"
51
- Dynamic: license-file
52
-
53
- Welcome to Juham™ - Juha's Ultimate Home Automation Masterpiece
54
- ================================================================
55
-
56
- Project Description
57
- -------------------
58
-
59
- This package extends the ``juham_core`` package, providing home automation building blocks that cover most common needs.
60
- It consists of two main sub-modules:
61
-
62
- .. image:: _static/images/juham_automation.png
63
- :alt: Basic automation classes for optimizing energy consumption and minimizing electricity costs.
64
- :width: 640px
65
- :align: center
66
-
67
-
68
- - ``automation``
69
-
70
- * **spothintafi**: Acquires electricity prices in Finland.
71
- * **watercirculator**: Automates a water circulator pump based on hot water temperature and motion detection.
72
- * **hotwateroptimizer**: Controls hot water radiators based on temperature sensors and electricity price data.
73
- * **energycostcalculator**: Monitors power consumption and electricity prices, and computes the energy balance in euros.
74
-
75
-
76
- - ``ts``
77
-
78
- * This folder contains time series recorders that listen for Juham™ topics and store the data in a time series database
79
- for later inspection.
80
-
81
-
82
- Project Status
83
- --------------
84
-
85
- **Current State**: **Pre-Alpha (Status 2)**
86
-
87
- All classes have been tested to some extent, and no known bugs have been reported. However, the code still requires work in
88
- terms of design and robustness. For instance, electricity prices are currently hard-coded to use euros, but this should be
89
- configurable to support multiple currencies.
90
-
91
-
92
- Special Thanks
93
- --------------
94
-
95
- This project would not have been possible without the generous support of two exceptional individuals: Teppo K. and Mahi.
96
-
97
- Teppo K. provided the initial spark for this project by donating a Raspberry Pi, a temperature sensor, and giving an inspiring
98
- demonstration of his own home automation system—effectively dragging me down the rabbit hole of endless tinkering.
99
-
100
- Mahi has been instrumental in translating my half-baked ideas into Python code, offering invaluable support and
101
- encouragement—while also ensuring that every time I thought I was done, I wasn’t.
102
-
103
- Because of these two gentlemen, my already minimal spare time dropped into the negatives as I desperately tried to push the
104
- system to some semblance of professionalism.
105
-
106
- I’m truly grateful to both—really. 😅
@@ -1,23 +0,0 @@
1
- juham_automation/__init__.py,sha256=ncdniRzO-yUzvxCjuzrtyrLBmsiHO5lJzP-teloVkHU,850
2
- juham_automation/japp.py,sha256=zD5ulfIcaSzwbVKjHv2tdXpw79fpw97B7P-v-ncY6e4,1520
3
- juham_automation/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
4
- juham_automation/automation/__init__.py,sha256=73Mw0jkipeMCoUtpREHJPATfKe368ZyNeqfbjamBx_Q,481
5
- juham_automation/automation/energycostcalculator.py,sha256=7GGKLv5JpHAY3XVjbkboXuQBk-whpWkBwNuQ68Tv4Pc,11091
6
- juham_automation/automation/hotwateroptimizer.py,sha256=oOgMgfqzqLN-hNdqaxgK_eKuw6q3JCsnZNM5XG17nko,23194
7
- juham_automation/automation/powermeter_simulator.py,sha256=0g0gOD9WTqxUj9IbENkea_33JrJ2sZDSQVtmxVUHcD8,4688
8
- juham_automation/automation/spothintafi.py,sha256=XnL2zIPx_XaP_1E8ksuYEUemtHP7N6tLlSv2LEBQyXQ,4471
9
- juham_automation/automation/watercirculator.py,sha256=d7PQFNajtVafizS_y2R_6GWhm_GYb8uV4-QScz1Sggo,6569
10
- juham_automation/ts/__init__.py,sha256=oRxMmzRj1l0z3sOx8uvm3kJzRrXCTJFzwEJ8zSniRSU,550
11
- juham_automation/ts/electricityprice_ts.py,sha256=ahZ2e9_jZLROTZA9XWM9ETksrz0tuoghgy0vAvA08lQ,1735
12
- juham_automation/ts/energycostcalculator_ts.py,sha256=CAqhQVSFqM6WYzWTi-XRYCwJVmBOLIEmVmYdP97pAbw,1320
13
- juham_automation/ts/forecast_ts.py,sha256=jn0-JEQ-GD_HtAsAbKi2Hm4PVEMtvOF4-JnTF-SPwGw,3255
14
- juham_automation/ts/log_ts.py,sha256=DPfeJhbSMQChY37mjAxEmE73Ys3dxUvNsN78PSuBm9Y,1807
15
- juham_automation/ts/power_ts.py,sha256=esNbtH1xklyUaf0YJQ2wDuxTAV3SnEfx-FtiBGPaSVA,1448
16
- juham_automation/ts/powermeter_ts.py,sha256=zSATxZAzz1KJeU1wFK8CP86iySWnHil89mridz7WHos,2421
17
- juham_automation/ts/powerplan_ts.py,sha256=-Lhc7v5Cj7USy2MfmyUEusXSox9UbEoDtYGReDEt3cw,1527
18
- juham_automation-0.0.17.dist-info/licenses/LICENSE.rst,sha256=D3SSbUrv10lpAZ91lTMCQAke-MXMvrjFDsDyM3vEKJI,1114
19
- juham_automation-0.0.17.dist-info/METADATA,sha256=os2IZ8IJd054hzwvnWwzC8OPdX5939zEMzdrSwH77nw,4733
20
- juham_automation-0.0.17.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
21
- juham_automation-0.0.17.dist-info/entry_points.txt,sha256=di8tXChhP8B_98bQ44u-1zkOha2kZCoJpCAXxTgoSw8,491
22
- juham_automation-0.0.17.dist-info/top_level.txt,sha256=jfohvtocvX_gfT21AhJk7Iay5ZiQsS3HzrDjF7S4Qp0,17
23
- juham_automation-0.0.17.dist-info/RECORD,,