Skip to content

Commit 3a6b596

Browse files
authored
Merge pull request #357 from astrandb/InductionHob
Add 6 zone Induction Hob
2 parents b134f8d + ba71660 commit 3a6b596

File tree

7 files changed

+212
-22
lines changed

7 files changed

+212
-22
lines changed

.pre-commit-config.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
repos:
22
- repo: https://github.com/astral-sh/ruff-pre-commit
3-
rev: v0.0.278
3+
rev: v0.1.3
44
hooks:
55
- id: ruff
66
args:

custom_components/miele/__init__.py

+3
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
TEST_DATA_21,
6161
TEST_DATA_23,
6262
TEST_DATA_24,
63+
TEST_DATA_27,
6364
TEST_DATA_74,
6465
)
6566
from .services import async_setup_services
@@ -206,6 +207,7 @@ async def _callback_update_data(data) -> None:
206207
# data["1223021"] = TEST_DATA_21
207208
# data["1223023"] = TEST_DATA_23
208209
# data["1223024"] = TEST_DATA_24
210+
# data["1223027"] = TEST_DATA_27
209211
# data["1223074"] = TEST_DATA_74
210212
flat_result: dict = {}
211213
try:
@@ -287,6 +289,7 @@ async def async_fetch():
287289
# result["1223021"] = TEST_DATA_21
288290
# result["1223023"] = TEST_DATA_23
289291
# result["1223024"] = TEST_DATA_24
292+
# result["1223027"] = TEST_DATA_27
290293
# result["1223074"] = TEST_DATA_74
291294

292295
try:

custom_components/miele/binary_sensor.py

-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,6 @@ class MieleBinarySensorDefinition:
126126
STEAM_OVEN_MICRO,
127127
DIALOG_OVEN,
128128
WINE_CABINET_FREEZER,
129-
HOB_INDUCT_EXTR,
130129
],
131130
description=MieleBinarySensorDescription(
132131
key="info",

custom_components/miele/devcap.py

+95
Original file line numberDiff line numberDiff line change
@@ -955,6 +955,101 @@
955955
},
956956
}
957957

958+
TEST_DATA_27 = {
959+
"ident": {
960+
"type": {
961+
"key_localized": "Device type",
962+
"value_raw": 27,
963+
"value_localized": "Induction hob",
964+
},
965+
"deviceName": "",
966+
"protocolVersion": 203,
967+
"deviceIdentLabel": {
968+
"fabNumber": "**REDACTED**",
969+
"fabIndex": "00",
970+
"techType": "KM7897",
971+
"matNumber": "",
972+
"swids": ["000"],
973+
},
974+
"xkmIdentLabel": {
975+
"techType": "EK039W",
976+
"releaseVersion": "02.72",
977+
},
978+
},
979+
"state": {
980+
"ProgramID": {
981+
"value_raw": 0,
982+
"value_localized": "",
983+
"key_localized": "Program name",
984+
},
985+
"status": {
986+
"value_raw": 5,
987+
"value_localized": "In use",
988+
"key_localized": "status",
989+
},
990+
"programType": {
991+
"value_raw": 0,
992+
"value_localized": "Program",
993+
"key_localized": "Program type",
994+
},
995+
"programPhase": {
996+
"value_raw": 0,
997+
"value_localized": "",
998+
"key_localized": "Program phase",
999+
},
1000+
"remainingTime": [0, 0],
1001+
"startTime": [0, 0],
1002+
"targetTemperature": [
1003+
{"value_raw": -32768, "value_localized": None, "unit": "Celsius"},
1004+
{"value_raw": -32768, "value_localized": None, "unit": "Celsius"},
1005+
{"value_raw": -32768, "value_localized": None, "unit": "Celsius"},
1006+
],
1007+
"temperature": [
1008+
{"value_raw": -32768, "value_localized": None, "unit": "Celsius"},
1009+
{"value_raw": -32768, "value_localized": None, "unit": "Celsius"},
1010+
{"value_raw": -32768, "value_localized": None, "unit": "Celsius"},
1011+
],
1012+
"signalInfo": False,
1013+
"signalFailure": False,
1014+
"signalDoor": False,
1015+
"remoteEnable": {
1016+
"fullRemoteControl": True,
1017+
"smartGrid": False,
1018+
"mobileStart": False,
1019+
},
1020+
"ambientLight": None,
1021+
"light": None,
1022+
"elapsedTime": [],
1023+
"spinningSpeed": {
1024+
"unit": "rpm",
1025+
"value_raw": None,
1026+
"value_localized": "",
1027+
"key_localized": "Spin speed",
1028+
},
1029+
"dryingStep": {
1030+
"value_raw": None,
1031+
"value_localized": "",
1032+
"key_localized": "Drying level",
1033+
},
1034+
"ventilationStep": {
1035+
"value_raw": None,
1036+
"value_localized": "",
1037+
"key_localized": "Fan level",
1038+
},
1039+
"plateStep": [
1040+
{"value_raw": 0, "value_localized": 0, "key_localized": "Power level"},
1041+
{"value_raw": 3, "value_localized": 2, "key_localized": "Power level"},
1042+
{"value_raw": 7, "value_localized": 4, "key_localized": "Power level"},
1043+
{"value_raw": 15, "value_localized": 8, "key_localized": "Power level"},
1044+
{"value_raw": 220, "value_localized": 10, "key_localized": "Power level"},
1045+
{"value_raw": 12, "value_localized": 10, "key_localized": "Power level"},
1046+
{"value_raw": 118, "value_localized": 10, "key_localized": "Power level"},
1047+
],
1048+
"ecoFeedback": None,
1049+
"batteryLevel": None,
1050+
},
1051+
}
1052+
9581053
TEST_DATA_74 = {
9591054
"ident": {
9601055
"type": {

custom_components/miele/number.py

+98-11
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,14 @@
2121
)
2222

2323
from . import get_coordinator
24-
from .const import API, DOMAIN, HOB_INDUCT_EXTR, MANUFACTURER
24+
from .const import API, DOMAIN, HOB_INDUCT_EXTR, HOB_INDUCTION, MANUFACTURER
2525

2626
_LOGGER = logging.getLogger(__name__)
2727

2828
PLATE_MAP = {
2929
0: 0,
3030
110: 0.5,
31+
220: 0.5,
3132
1: 1,
3233
2: 1.5,
3334
3: 2,
@@ -45,7 +46,9 @@
4546
15: 8,
4647
16: 8.5,
4748
17: 9,
49+
18: 9.5,
4850
117: 10,
51+
118: 10,
4952
}
5053

5154

@@ -83,7 +86,7 @@ class MieleNumberDefinition:
8386
key="plate",
8487
data_tag="state|plateStep|0|value_raw",
8588
icon="mdi:stove",
86-
translation_key="plate_0",
89+
translation_key="plate_1",
8790
zone=0,
8891
native_min_value=0.0,
8992
native_max_value=10.0,
@@ -98,7 +101,7 @@ class MieleNumberDefinition:
98101
key="plate",
99102
data_tag="state|plateStep|1|value_raw",
100103
icon="mdi:stove",
101-
translation_key="plate_1",
104+
translation_key="plate_2",
102105
zone=1,
103106
native_min_value=0.0,
104107
native_max_value=10.0,
@@ -113,7 +116,7 @@ class MieleNumberDefinition:
113116
key="plate",
114117
data_tag="state|plateStep|2|value_raw",
115118
icon="mdi:stove",
116-
translation_key="plate_2",
119+
translation_key="plate_3",
117120
zone=2,
118121
native_min_value=0.0,
119122
native_max_value=10.0,
@@ -128,7 +131,7 @@ class MieleNumberDefinition:
128131
key="plate",
129132
data_tag="state|plateStep|3|value_raw",
130133
icon="mdi:stove",
131-
translation_key="plate_3",
134+
translation_key="plate_4",
132135
zone=3,
133136
native_min_value=0.0,
134137
native_max_value=10.0,
@@ -143,13 +146,103 @@ class MieleNumberDefinition:
143146
key="plate",
144147
data_tag="state|plateStep|4|value_raw",
145148
icon="mdi:stove",
149+
translation_key="plate_5",
150+
zone=4,
151+
native_min_value=0.0,
152+
native_max_value=10.0,
153+
native_step=0.5,
154+
),
155+
),
156+
MieleNumberDefinition(
157+
types=[
158+
HOB_INDUCTION,
159+
],
160+
description=MieleNumberDescription(
161+
key="plate",
162+
data_tag="state|plateStep|0|value_raw",
163+
icon="mdi:stove",
164+
translation_key="plate_1",
165+
zone=0,
166+
native_min_value=0.0,
167+
native_max_value=10.0,
168+
native_step=0.5,
169+
),
170+
),
171+
MieleNumberDefinition(
172+
types=[
173+
HOB_INDUCTION,
174+
],
175+
description=MieleNumberDescription(
176+
key="plate",
177+
data_tag="state|plateStep|1|value_raw",
178+
icon="mdi:stove",
179+
translation_key="plate_2",
180+
zone=1,
181+
native_min_value=0.0,
182+
native_max_value=10.0,
183+
native_step=0.5,
184+
),
185+
),
186+
MieleNumberDefinition(
187+
types=[
188+
HOB_INDUCTION,
189+
],
190+
description=MieleNumberDescription(
191+
key="plate",
192+
data_tag="state|plateStep|2|value_raw",
193+
icon="mdi:stove",
194+
translation_key="plate_3",
195+
zone=2,
196+
native_min_value=0.0,
197+
native_max_value=10.0,
198+
native_step=0.5,
199+
),
200+
),
201+
MieleNumberDefinition(
202+
types=[
203+
HOB_INDUCTION,
204+
],
205+
description=MieleNumberDescription(
206+
key="plate",
207+
data_tag="state|plateStep|3|value_raw",
208+
icon="mdi:stove",
146209
translation_key="plate_4",
210+
zone=3,
211+
native_min_value=0.0,
212+
native_max_value=10.0,
213+
native_step=0.5,
214+
),
215+
),
216+
MieleNumberDefinition(
217+
types=[
218+
HOB_INDUCTION,
219+
],
220+
description=MieleNumberDescription(
221+
key="plate",
222+
data_tag="state|plateStep|4|value_raw",
223+
icon="mdi:stove",
224+
translation_key="plate_5",
147225
zone=4,
148226
native_min_value=0.0,
149227
native_max_value=10.0,
150228
native_step=0.5,
151229
),
152230
),
231+
MieleNumberDefinition(
232+
types=[
233+
HOB_INDUCTION,
234+
],
235+
description=MieleNumberDescription(
236+
key="plate",
237+
data_tag="state|plateStep|5|value_raw",
238+
icon="mdi:stove",
239+
translation_key="plate_6",
240+
zone=5,
241+
native_min_value=0.0,
242+
native_max_value=10.0,
243+
native_step=0.5,
244+
),
245+
),
153246
)
154247

155248

@@ -211,13 +304,7 @@ def __init__(
211304
]
212305
self._attr_has_entity_name = True
213306
self._attr_unique_id = f"{self._ed.key}-{self._ed.zone}{self._ent}"
214-
# _LOGGER.debug("icon: %s | %s", self._ed.icon, self._ed.icon)
215-
# self._attr_icon = self._ed.icon
216307
self._attr_mode = NumberMode.SLIDER
217-
# self._attr_max_value = self._ed.max_value
218-
# self._attr_min_value = self._ed.min_value
219-
# self._attr_step = self._ed.step
220-
# self._attr_supported_features = self._ed.supported_features
221308
self._attr_device_info = DeviceInfo(
222309
identifiers={(DOMAIN, self._ent)},
223310
name=appl_type,

custom_components/miele/translations/en.json

+6-3
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,6 @@
120120
}
121121
},
122122
"number": {
123-
"plate_0": {
124-
"name": "Plate 0"
125-
},
126123
"plate_1": {
127124
"name": "Plate 1"
128125
},
@@ -134,6 +131,12 @@
134131
},
135132
"plate_4": {
136133
"name": "Plate 4"
134+
},
135+
"plate_5": {
136+
"name": "Plate 5"
137+
},
138+
"plate_6": {
139+
"name": "Plate 6"
137140
}
138141
},
139142
"sensor": {

custom_components/miele/translations/sv.json

+9-6
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,6 @@
8080
}
8181
},
8282
"number": {
83-
"plate_0": {
84-
"name": "Platta 0"
85-
},
8683
"plate_1": {
8784
"name": "Platta 1"
8885
},
@@ -94,6 +91,12 @@
9491
},
9592
"plate_4": {
9693
"name": "Platta 4"
94+
},
95+
"plate_5": {
96+
"name": "Platta 5"
97+
},
98+
"plate_6": {
99+
"name": "Platta 6"
97100
}
98101
},
99102
"sensor": {
@@ -169,7 +172,7 @@
169172
"descaling": "Avkalkning",
170173
"down_duvets": "Duntäcken",
171174
"down_filled_items": "Dunfyllda plagg",
172-
"drain_spin": "Tömning\/centrifugering",
175+
"drain_spin": "Tömning/centrifugering",
173176
"eco": "ECO",
174177
"eco_40_60": "ECO 40-60",
175178
"eco_fan_heat": "Eco varmluft",
@@ -217,7 +220,7 @@
217220
"rinse": "Sköljning",
218221
"rinse_out_lint": "Spola ut ludd",
219222
"ristretto": "Ristretto",
220-
"separate_rinse_starch": "Separat sköljning\/stärkning",
223+
"separate_rinse_starch": "Separat sköljning/stärkning",
221224
"shirts": "Skjortor",
222225
"silent": "Tyst",
223226
"silks": "Siden",
@@ -356,7 +359,7 @@
356359
"running": "Igång",
357360
"service": "Service",
358361
"supercooling": "Snabbkylning",
359-
"supercooling_superfreezing": "Snabbkylning\/snabbinfrysning",
362+
"supercooling_superfreezing": "Snabbkylning/snabbinfrysning",
360363
"superfreezing": "Snabbinfrysning",
361364
"superheating": "Supervärmning",
362365
"waiting_to_start": "Väntar på start"

0 commit comments

Comments
 (0)