Skip to content

Commit ba71660

Browse files
committed
Add support for induction hob with 6 zones
1 parent aa0e4c6 commit ba71660

File tree

6 files changed

+132
-28
lines changed

6 files changed

+132
-28
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/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

+21-18
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
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,7 +146,7 @@ class MieleNumberDefinition:
143146
key="plate",
144147
data_tag="state|plateStep|4|value_raw",
145148
icon="mdi:stove",
146-
translation_key="plate_4",
149+
translation_key="plate_5",
147150
zone=4,
148151
native_min_value=0.0,
149152
native_max_value=10.0,
@@ -158,10 +161,10 @@ class MieleNumberDefinition:
158161
key="plate",
159162
data_tag="state|plateStep|0|value_raw",
160163
icon="mdi:stove",
161-
translation_key="plate_0",
164+
translation_key="plate_1",
162165
zone=0,
163166
native_min_value=0.0,
164-
native_max_value=12.0,
167+
native_max_value=10.0,
165168
native_step=0.5,
166169
),
167170
),
@@ -173,10 +176,10 @@ class MieleNumberDefinition:
173176
key="plate",
174177
data_tag="state|plateStep|1|value_raw",
175178
icon="mdi:stove",
176-
translation_key="plate_1",
179+
translation_key="plate_2",
177180
zone=1,
178181
native_min_value=0.0,
179-
native_max_value=12.0,
182+
native_max_value=10.0,
180183
native_step=0.5,
181184
),
182185
),
@@ -188,10 +191,10 @@ class MieleNumberDefinition:
188191
key="plate",
189192
data_tag="state|plateStep|2|value_raw",
190193
icon="mdi:stove",
191-
translation_key="plate_2",
194+
translation_key="plate_3",
192195
zone=2,
193196
native_min_value=0.0,
194-
native_max_value=12.0,
197+
native_max_value=10.0,
195198
native_step=0.5,
196199
),
197200
),
@@ -203,10 +206,10 @@ class MieleNumberDefinition:
203206
key="plate",
204207
data_tag="state|plateStep|3|value_raw",
205208
icon="mdi:stove",
206-
translation_key="plate_3",
209+
translation_key="plate_4",
207210
zone=3,
208211
native_min_value=0.0,
209-
native_max_value=12.0,
212+
native_max_value=10.0,
210213
native_step=0.5,
211214
),
212215
),
@@ -218,10 +221,10 @@ class MieleNumberDefinition:
218221
key="plate",
219222
data_tag="state|plateStep|4|value_raw",
220223
icon="mdi:stove",
221-
translation_key="plate_4",
224+
translation_key="plate_5",
222225
zone=4,
223226
native_min_value=0.0,
224-
native_max_value=12.0,
227+
native_max_value=10.0,
225228
native_step=0.5,
226229
),
227230
),
@@ -233,10 +236,10 @@ class MieleNumberDefinition:
233236
key="plate",
234237
data_tag="state|plateStep|5|value_raw",
235238
icon="mdi:stove",
236-
translation_key="plate_5",
237-
zone=4,
239+
translation_key="plate_6",
240+
zone=5,
238241
native_min_value=0.0,
239-
native_max_value=12.0,
242+
native_max_value=10.0,
240243
native_step=0.5,
241244
),
242245
),

custom_components/miele/translations/en.json

+3-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
},
@@ -137,6 +134,9 @@
137134
},
138135
"plate_5": {
139136
"name": "Plate 5"
137+
},
138+
"plate_6": {
139+
"name": "Plate 6"
140140
}
141141
},
142142
"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)