Skip to content

Commit 77851e6

Browse files
committed
added kennfeld bitmap
1 parent 353cc07 commit 77851e6

File tree

4 files changed

+56
-51
lines changed

4 files changed

+56
-51
lines changed

custom_components/weishaupt_modbus/kennfeld.py

Lines changed: 34 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import numpy as np
88
from numpy.polynomial import Chebyshev
99

10+
import matplotlib.pyplot as plt
11+
1012
from .configentry import MyConfigEntry
1113

1214
from .const import CONF, CONST
@@ -99,6 +101,7 @@ def __init__(self, config_entry: MyConfigEntry) -> None:
99101
self._max_power = []
100102
self._interp_y = []
101103
self._r_to_interpolate = 0
104+
self._all_t = None
102105

103106
async def initialize(self):
104107
"""Initialize the power map."""
@@ -159,14 +162,18 @@ async def initialize(self):
159162

160163
# at second step, power vs. outside temp are interpolated using cubic splines
161164
# we want to have samples at every integer °C
162-
t = np.linspace(-30, 40, 71)
165+
self._all_t = np.linspace(-30, 40, 71)
163166
# cubic spline interpolation of power curves
164167
for idx in range(len(self._r_to_interpolate)):
165168
if SPLINE_AVAILABLE is True:
166169
f = CubicSpline(self.known_x, self._interp_y[idx], bc_type="natural")
167170
else:
168171
f = Chebyshev.fit(self.known_x, self._interp_y[idx], deg=8)
169-
self._max_power.append(f(t))
172+
self._max_power.append(f(self._all_t))
173+
174+
await self._config_entry.runtime_data.hass.async_add_executor_job(
175+
self.plot_kennfeld_to_file
176+
)
170177

171178
def map(self, x, y):
172179
"""Map."""
@@ -179,34 +186,29 @@ def map(self, x, y):
179186

180187
return self._max_power[int(y)][int(x)]
181188

189+
def plot_kennfeld_to_file(self):
190+
"""plots the kennfeld file into png image for display"""
191+
plt.plot(self._all_t, np.transpose(self._max_power))
192+
plt.ylabel("Max Power")
193+
plt.xlabel("°C")
194+
plt.grid()
195+
plt.xlim(-25, 40)
196+
plt.ylim(2000, 12000)
182197

183-
# map = PowerMap()
184-
185-
# plt.plot(t, np.transpose(map.max_power))
186-
# plt.ylabel("Max Power")
187-
# plt.xlabel("°C")
188-
# plt.show()
189-
190-
# kennfeld = {'known_x': map.known_x,
191-
# 'known_y': map.known_y,
192-
# 'known_t': map.known_t}
193-
194-
# with open("sample1.json", "w") as outfile:
195-
# outfile.write(kennfeld)
196-
197-
198-
# with open("sample2.json", "w") as outfile:
199-
# json.dump(kennfeld, outfile)
200-
201-
# with open('sample2.json', 'r') as openfile:
202-
203-
# Reading from json file
204-
# json_object = json.load(openfile)
205-
206-
# map.known_x = json_object['known_x']
207-
# map.known_y = json_object['known_y']
208-
# map.known_t = json_object['known_t']
209-
210-
# print(map.known_x)
211-
# print(map.known_y)
212-
# print(map.known_t)
198+
try:
199+
filepath = (
200+
self._config_entry.runtime_data.config_dir
201+
+ "/www/local/"
202+
+ CONST.DOMAIN
203+
+ "_powermap.png"
204+
)
205+
plt.savefig(filepath)
206+
log.info(
207+
"Write power map image file %s",
208+
filepath,
209+
)
210+
except OSError:
211+
log.warning(
212+
"Error writing power map image file %s",
213+
filepath,
214+
)

custom_components/weishaupt_modbus/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"iot_class": "local_polling",
88
"issue_tracker": "https://github.com/OStrama/weishaupt_modbus/issues",
99
"loggers": ["weishaupt_modbus"],
10-
"requirements": ["pymodbus>=3.6.8", "aiofiles>=24.1.0", "beautifulsoup4>=4.12.3"],
10+
"requirements": ["pymodbus>=3.6.8", "aiofiles>=24.1.0", "beautifulsoup4>=4.12.3", "matplotlib>=3.9.2"],
1111
"version": "1.0.5"
1212
}
1313

custom_components/weishaupt_modbus/translations/en.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1554,19 +1554,19 @@
15541554
}
15551555
},
15561556
"tagesarbeitszahl_heute": {
1557-
"name": "{prefix}Tagesarbeitszahl heute"
1557+
"name": "{prefix}Daily performance factor today"
15581558
},
15591559
"spreizung": {
1560-
"name": "{prefix}Spreizung"
1560+
"name": "{prefix}Spread"
15611561
},
15621562
"jahresarbeitszahl": {
1563-
"name": "{prefix}Jahresarbeitszahl"
1563+
"name": "{prefix}Annual performance factor"
15641564
},
15651565
"tagesarbeitszahl_gestern": {
1566-
"name": "{prefix}Tagesarbeitszahl gestern"
1566+
"name": "{prefix}Daily performance factor yesterday"
15671567
},
15681568
"monatsarbeitszahl": {
1569-
"name": "{prefix}Monatsarbeitszahl"
1569+
"name": "{prefix}Monthly performance factor"
15701570
},
15711571
"ww_energie_yesterday": {
15721572
"name": "{prefix}Hot water energy yesterday"

custom_components/weishaupt_modbus/translations/nl.json

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1323,19 +1323,7 @@
13231323
"name" : "{prefix}Voorlooptemperatuur precies (Summenvorlauf(B7))"
13241324
},
13251325
"vl_temp" : {
1326-
"name" : "{prefix}Voorloop streeftemperatuur"
1327-
},
1328-
"vl_temp2" : {
1329-
"name" : "{prefix}Voorloop streeftemperatuur 2"
1330-
},
1331-
"vl_temp3" : {
1332-
"name" : "{prefix}Voorloop streeftemperatuur 3"
1333-
},
1334-
"vl_temp4" : {
1335-
"name" : "{prefix}Voorloop streeftemperatuur 4"
1336-
},
1337-
"vl_temp5" : {
1338-
"name" : "{prefix}Voorloop streeftemperatuur 5"
1326+
"name" : "{prefix}aanvoertemperatuur"
13391327
},
13401328
"w2_konf" : {
13411329
"name" : "{prefix}W2_Configuratie",
@@ -1548,6 +1536,21 @@
15481536
"hp_stoerungsfrei" : "Geen fout"
15491537
}
15501538
},
1539+
"tagesarbeitszahl_heute": {
1540+
"name": "{prefix}Dagelijkse prestatiefactor vandaag"
1541+
},
1542+
"spreizung": {
1543+
"name": "{prefix}Spreiding"
1544+
},
1545+
"jahresarbeitszahl": {
1546+
"name": "{prefix}Jaarlijkse prestatiefactor"
1547+
},
1548+
"tagesarbeitszahl_gestern": {
1549+
"name": "{prefix}Dagelijkse prestatiefactor gisteren"
1550+
},
1551+
"monatsarbeitszahl": {
1552+
"name": "{prefix}Maandelijks prestatiefactor"
1553+
},
15511554
"ww_energie_yesterday" : {
15521555
"name" : "{prefix}Warm water energie gisteren"
15531556
},

0 commit comments

Comments
 (0)