mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 12:47:08 +00:00
Add some more sensors to miele integration (#142979)
* Add some more sensors * Add some debug logging and correct spelling * Address review comments * Split out duration sensors to separate PR * Update strings * Filter program phases by device type * Update tests * Fix auto link * Address som of the comments * Lint * Lint * Remove duplicates from enum sensor options * Update snapshot * Sort options in enum sensors
This commit is contained in:
parent
1e880f7406
commit
da6fb91886
@ -10,15 +10,17 @@ POWER_ON = "powerOn"
|
||||
POWER_OFF = "powerOff"
|
||||
PROCESS_ACTION = "processAction"
|
||||
VENTILATION_STEP = "ventilationStep"
|
||||
DISABLED_TEMP_ENTITIES = (
|
||||
-32768 / 100,
|
||||
-32766 / 100,
|
||||
)
|
||||
TARGET_TEMPERATURE = "targetTemperature"
|
||||
AMBIENT_LIGHT = "ambientLight"
|
||||
LIGHT = "light"
|
||||
LIGHT_ON = 1
|
||||
LIGHT_OFF = 2
|
||||
|
||||
DISABLED_TEMP_ENTITIES = (
|
||||
-32768 / 100,
|
||||
-32766 / 100,
|
||||
)
|
||||
|
||||
|
||||
class MieleAppliance(IntEnum):
|
||||
"""Define appliance types."""
|
||||
@ -161,3 +163,933 @@ PROCESS_ACTIONS = {
|
||||
"start_supercooling": MieleActions.START_SUPERCOOL,
|
||||
"stop_supercooling": MieleActions.STOP_SUPERCOOL,
|
||||
}
|
||||
|
||||
STATE_PROGRAM_PHASE_WASHING_MACHINE = {
|
||||
0: "not_running", # Returned by the API when the machine is switched off entirely.
|
||||
256: "not_running",
|
||||
257: "pre_wash",
|
||||
258: "soak",
|
||||
259: "pre_wash",
|
||||
260: "main_wash",
|
||||
261: "rinse",
|
||||
262: "rinse_hold",
|
||||
263: "cleaning",
|
||||
264: "cooling_down",
|
||||
265: "drain",
|
||||
266: "spin",
|
||||
267: "anti_crease",
|
||||
268: "finished",
|
||||
269: "venting",
|
||||
270: "starch_stop",
|
||||
271: "freshen_up_and_moisten",
|
||||
272: "steam_smoothing",
|
||||
279: "hygiene",
|
||||
280: "drying",
|
||||
285: "disinfecting",
|
||||
295: "steam_smoothing",
|
||||
65535: "not_running", # Seems to be default for some devices.
|
||||
}
|
||||
|
||||
STATE_PROGRAM_PHASE_TUMBLE_DRYER = {
|
||||
0: "not_running",
|
||||
512: "not_running",
|
||||
513: "program_running",
|
||||
514: "drying",
|
||||
515: "machine_iron",
|
||||
516: "hand_iron_2",
|
||||
517: "normal",
|
||||
518: "normal_plus",
|
||||
519: "cooling_down",
|
||||
520: "hand_iron_1",
|
||||
521: "anti_crease",
|
||||
522: "finished",
|
||||
523: "extra_dry",
|
||||
524: "hand_iron",
|
||||
526: "moisten",
|
||||
527: "thermo_spin",
|
||||
528: "timed_drying",
|
||||
529: "warm_air",
|
||||
530: "steam_smoothing",
|
||||
531: "comfort_cooling",
|
||||
532: "rinse_out_lint",
|
||||
533: "rinses",
|
||||
535: "not_running",
|
||||
534: "smoothing",
|
||||
536: "not_running",
|
||||
537: "not_running",
|
||||
538: "slightly_dry",
|
||||
539: "safety_cooling",
|
||||
65535: "not_running",
|
||||
}
|
||||
|
||||
STATE_PROGRAM_PHASE_DISHWASHER = {
|
||||
1792: "not_running",
|
||||
1793: "reactivating",
|
||||
1794: "pre_dishwash",
|
||||
1795: "main_dishwash",
|
||||
1796: "rinse",
|
||||
1797: "interim_rinse",
|
||||
1798: "final_rinse",
|
||||
1799: "drying",
|
||||
1800: "finished",
|
||||
1801: "pre_dishwash",
|
||||
65535: "not_running",
|
||||
}
|
||||
|
||||
STATE_PROGRAM_PHASE_OVEN = {
|
||||
0: "not_running",
|
||||
3073: "heating_up",
|
||||
3074: "process_running",
|
||||
3078: "process_finished",
|
||||
3084: "energy_save",
|
||||
65535: "not_running",
|
||||
}
|
||||
STATE_PROGRAM_PHASE_WARMING_DRAWER = {
|
||||
0: "not_running",
|
||||
3075: "door_open",
|
||||
3094: "keeping_warm",
|
||||
3088: "cooling_down",
|
||||
65535: "not_running",
|
||||
}
|
||||
STATE_PROGRAM_PHASE_MICROWAVE = {
|
||||
0: "not_running",
|
||||
3329: "heating",
|
||||
3330: "process_running",
|
||||
3334: "process_finished",
|
||||
3340: "energy_save",
|
||||
65535: "not_running",
|
||||
}
|
||||
STATE_PROGRAM_PHASE_COFFEE_SYSTEM = {
|
||||
# Coffee system
|
||||
3073: "heating_up",
|
||||
4352: "not_running",
|
||||
4353: "espresso",
|
||||
4355: "milk_foam",
|
||||
4361: "dispensing",
|
||||
4369: "pre_brewing",
|
||||
4377: "grinding",
|
||||
4401: "2nd_grinding",
|
||||
4354: "hot_milk",
|
||||
4393: "2nd_pre_brewing",
|
||||
4385: "2nd_espresso",
|
||||
4404: "dispensing",
|
||||
4405: "rinse",
|
||||
65535: "not_running",
|
||||
}
|
||||
STATE_PROGRAM_PHASE_ROBOT_VACUUM_CLEANER = {
|
||||
0: "not_running",
|
||||
5889: "vacuum_cleaning",
|
||||
5890: "returning",
|
||||
5891: "vacuum_cleaning_paused",
|
||||
5892: "going_to_target_area",
|
||||
5893: "wheel_lifted", # F1
|
||||
5894: "dirty_sensors", # F2
|
||||
5895: "dust_box_missing", # F3
|
||||
5896: "blocked_drive_wheels", # F4
|
||||
5897: "blocked_brushes", # F5
|
||||
5898: "motor_overload", # F6
|
||||
5899: "internal_fault", # F7
|
||||
5900: "blocked_front_wheel", # F8
|
||||
5903: "docked",
|
||||
5904: "docked",
|
||||
5910: "remote_controlled",
|
||||
65535: "not_running",
|
||||
}
|
||||
STATE_PROGRAM_PHASE_MICROWAVE_OVEN_COMBO = {
|
||||
0: "not_running",
|
||||
3863: "steam_reduction",
|
||||
7938: "process_running",
|
||||
7939: "waiting_for_start",
|
||||
7940: "heating_up_phase",
|
||||
7942: "process_finished",
|
||||
65535: "not_running",
|
||||
}
|
||||
|
||||
STATE_PROGRAM_PHASE: dict[int, dict[int, str]] = {
|
||||
MieleAppliance.WASHING_MACHINE: STATE_PROGRAM_PHASE_WASHING_MACHINE,
|
||||
MieleAppliance.WASHING_MACHINE_SEMI_PROFESSIONAL: STATE_PROGRAM_PHASE_WASHING_MACHINE,
|
||||
MieleAppliance.WASHING_MACHINE_PROFESSIONAL: STATE_PROGRAM_PHASE_WASHING_MACHINE,
|
||||
MieleAppliance.TUMBLE_DRYER: STATE_PROGRAM_PHASE_TUMBLE_DRYER,
|
||||
MieleAppliance.DRYER_PROFESSIONAL: STATE_PROGRAM_PHASE_TUMBLE_DRYER,
|
||||
MieleAppliance.TUMBLE_DRYER_SEMI_PROFESSIONAL: STATE_PROGRAM_PHASE_TUMBLE_DRYER,
|
||||
MieleAppliance.DISHWASHER: STATE_PROGRAM_PHASE_DISHWASHER,
|
||||
MieleAppliance.DISHWASHER_SEMI_PROFESSIONAL: STATE_PROGRAM_PHASE_DISHWASHER,
|
||||
MieleAppliance.DISHWASHER_PROFESSIONAL: STATE_PROGRAM_PHASE_DISHWASHER,
|
||||
MieleAppliance.OVEN: STATE_PROGRAM_PHASE_OVEN,
|
||||
MieleAppliance.OVEN_MICROWAVE: STATE_PROGRAM_PHASE_MICROWAVE_OVEN_COMBO,
|
||||
MieleAppliance.STEAM_OVEN: STATE_PROGRAM_PHASE_OVEN,
|
||||
MieleAppliance.DIALOG_OVEN: STATE_PROGRAM_PHASE_OVEN,
|
||||
MieleAppliance.MICROWAVE: STATE_PROGRAM_PHASE_MICROWAVE,
|
||||
MieleAppliance.COFFEE_SYSTEM: STATE_PROGRAM_PHASE_COFFEE_SYSTEM,
|
||||
MieleAppliance.ROBOT_VACUUM_CLEANER: STATE_PROGRAM_PHASE_ROBOT_VACUUM_CLEANER,
|
||||
}
|
||||
|
||||
STATE_PROGRAM_TYPE = {
|
||||
0: "normal_operation_mode",
|
||||
1: "own_program",
|
||||
2: "automatic_program",
|
||||
3: "cleaning_care_program",
|
||||
4: "maintenance_program",
|
||||
}
|
||||
|
||||
WASHING_MACHINE_PROGRAM_ID: dict[int, str] = {
|
||||
-1: "no_program", # Extrapolated from other device types.
|
||||
0: "no_program", # Returned by the API when no program is selected.
|
||||
1: "cottons",
|
||||
3: "minimum_iron",
|
||||
4: "delicates",
|
||||
8: "woollens",
|
||||
9: "silks",
|
||||
17: "starch",
|
||||
18: "rinse",
|
||||
21: "drain_spin",
|
||||
22: "curtains",
|
||||
23: "shirts",
|
||||
24: "denim",
|
||||
27: "proofing",
|
||||
29: "sportswear",
|
||||
31: "automatic_plus",
|
||||
37: "outerwear",
|
||||
39: "pillows",
|
||||
45: "cool_air", # washer-dryer
|
||||
46: "warm_air", # washer-dryer
|
||||
48: "rinse_out_lint", # washer-dryer
|
||||
50: "dark_garments",
|
||||
52: "separate_rinse_starch",
|
||||
53: "first_wash",
|
||||
69: "cottons_hygiene",
|
||||
75: "steam_care", # washer-dryer
|
||||
76: "freshen_up", # washer-dryer
|
||||
77: "trainers",
|
||||
91: "clean_machine",
|
||||
95: "down_duvets",
|
||||
122: "express_20",
|
||||
123: "denim",
|
||||
129: "down_filled_items",
|
||||
133: "cottons_eco",
|
||||
146: "quick_power_wash",
|
||||
190: "eco_40_60",
|
||||
}
|
||||
|
||||
DISHWASHER_PROGRAM_ID: dict[int, str] = {
|
||||
-1: "no_program", # Sometimes returned by the API when the machine is switched off entirely, in conjunection with program phase 65535.
|
||||
0: "no_program", # Returned by the API when the machine is switched off entirely.
|
||||
1: "intensive",
|
||||
2: "maintenance",
|
||||
3: "eco",
|
||||
6: "automatic",
|
||||
7: "automatic",
|
||||
9: "solar_save",
|
||||
10: "gentle",
|
||||
11: "extra_quiet",
|
||||
12: "hygiene",
|
||||
13: "quick_power_wash",
|
||||
14: "pasta_paela",
|
||||
17: "tall_items",
|
||||
19: "glasses_warm",
|
||||
26: "intensive",
|
||||
27: "maintenance", # or maintenance_program?
|
||||
28: "eco",
|
||||
30: "normal",
|
||||
31: "automatic",
|
||||
32: "automatic", # sources disagree on ID
|
||||
34: "solar_save",
|
||||
35: "gentle",
|
||||
36: "extra_quiet",
|
||||
37: "hygiene",
|
||||
38: "quick_power_wash",
|
||||
42: "tall_items",
|
||||
44: "power_wash",
|
||||
}
|
||||
TUMBLE_DRYER_PROGRAM_ID: dict[int, str] = {
|
||||
-1: "no_program", # Extrapolated from other device types.
|
||||
0: "no_program", # Extrapolated from other device types
|
||||
10: "automatic_plus",
|
||||
20: "cottons",
|
||||
23: "cottons_hygiene",
|
||||
30: "minimum_iron",
|
||||
31: "gentle_minimum_iron",
|
||||
40: "woollens_handcare",
|
||||
50: "delicates",
|
||||
60: "warm_air",
|
||||
70: "cool_air",
|
||||
80: "express",
|
||||
90: "cottons",
|
||||
100: "gentle_smoothing",
|
||||
120: "proofing",
|
||||
130: "denim",
|
||||
131: "gentle_denim",
|
||||
150: "sportswear",
|
||||
160: "outerwear",
|
||||
170: "silks_handcare",
|
||||
190: "standard_pillows",
|
||||
220: "basket_program",
|
||||
240: "smoothing",
|
||||
99001: "steam_smoothing",
|
||||
99002: "bed_linen",
|
||||
99003: "cottons_eco",
|
||||
99004: "shirts",
|
||||
99005: "large_pillows",
|
||||
}
|
||||
|
||||
OVEN_PROGRAM_ID: dict[int, str] = {
|
||||
-1: "no_program", # Extrapolated from other device types.
|
||||
0: "no_program", # Extrapolated from other device types
|
||||
1: "defrost",
|
||||
6: "eco_fan_heat",
|
||||
7: "auto_roast",
|
||||
10: "full_grill",
|
||||
11: "economy_grill",
|
||||
13: "fan_plus",
|
||||
14: "intensive_bake",
|
||||
19: "microwave",
|
||||
24: "conventional_heat",
|
||||
25: "top_heat",
|
||||
29: "fan_grill",
|
||||
31: "bottom_heat",
|
||||
35: "moisture_plus_auto_roast",
|
||||
40: "moisture_plus_fan_plus",
|
||||
74: "moisture_plus_intensive_bake",
|
||||
76: "moisture_plus_conventional_heat",
|
||||
49: "moisture_plus_fan_plus",
|
||||
356: "defrost",
|
||||
357: "drying",
|
||||
358: "heat_crockery",
|
||||
361: "steam_cooking",
|
||||
362: "keeping_warm",
|
||||
512: "1_tray",
|
||||
513: "2_trays",
|
||||
529: "baking_tray",
|
||||
621: "prove_15_min",
|
||||
622: "prove_30_min",
|
||||
623: "prove_45_min",
|
||||
99001: "steam_bake",
|
||||
17003: "no_program",
|
||||
}
|
||||
DISH_WARMER_PROGRAM_ID: dict[int, str] = {
|
||||
-1: "no_program",
|
||||
0: "no_program",
|
||||
1: "warm_cups_glasses",
|
||||
2: "warm_dishes_plates",
|
||||
3: "keep_warm",
|
||||
4: "slow_roasting",
|
||||
}
|
||||
ROBOT_VACUUM_CLEANER_PROGRAM_ID: dict[int, str] = {
|
||||
-1: "no_program", # Extrapolated from other device types
|
||||
0: "no_program", # Extrapolated from other device types
|
||||
1: "auto",
|
||||
2: "spot",
|
||||
3: "turbo",
|
||||
4: "silent",
|
||||
}
|
||||
COFFEE_SYSTEM_PROGRAM_ID: dict[int, str] = {
|
||||
-1: "no_program", # Extrapolated from other device types
|
||||
0: "no_program", # Extrapolated from other device types
|
||||
16016: "appliance_settings", # display brightness
|
||||
16018: "appliance_settings", # volume
|
||||
16019: "appliance_settings", # buttons volume
|
||||
16020: "appliance_settings", # child lock
|
||||
16021: "appliance_settings", # water hardness
|
||||
16027: "appliance_settings", # welcome sound
|
||||
16033: "appliance_settings", # connection status
|
||||
16035: "appliance_settings", # remote control
|
||||
16037: "appliance_settings", # remote update
|
||||
17004: "check_appliance",
|
||||
# profile 1
|
||||
24000: "ristretto",
|
||||
24001: "espresso",
|
||||
24002: "coffee",
|
||||
24003: "long_coffee",
|
||||
24004: "cappuccino",
|
||||
24005: "cappuccino_italiano",
|
||||
24006: "latte_macchiato",
|
||||
24007: "espresso_macchiato",
|
||||
24008: "cafe_au_lait",
|
||||
24009: "caffe_latte",
|
||||
24012: "flat_white",
|
||||
24013: "very_hot_water",
|
||||
24014: "hot_water",
|
||||
24015: "hot_milk",
|
||||
24016: "milk_foam",
|
||||
24017: "black_tea",
|
||||
24018: "herbal_tea",
|
||||
24019: "fruit_tea",
|
||||
24020: "green_tea",
|
||||
24021: "white_tea",
|
||||
24022: "japanese_tea",
|
||||
# profile 2
|
||||
24032: "ristretto",
|
||||
24033: "espresso",
|
||||
24034: "coffee",
|
||||
24035: "long_coffee",
|
||||
24036: "cappuccino",
|
||||
24037: "cappuccino_italiano",
|
||||
24038: "latte_macchiato",
|
||||
24039: "espresso_macchiato",
|
||||
24040: "cafe_au_lait",
|
||||
24041: "caffe_latte",
|
||||
24044: "flat_white",
|
||||
24045: "very_hot_water",
|
||||
24046: "hot_water",
|
||||
24047: "hot_milk",
|
||||
24048: "milk_foam",
|
||||
24049: "black_tea",
|
||||
24050: "herbal_tea",
|
||||
24051: "fruit_tea",
|
||||
24052: "green_tea",
|
||||
24053: "white_tea",
|
||||
24054: "japanese_tea",
|
||||
# profile 3
|
||||
24064: "ristretto",
|
||||
24065: "espresso",
|
||||
24066: "coffee",
|
||||
24067: "long_coffee",
|
||||
24068: "cappuccino",
|
||||
24069: "cappuccino_italiano",
|
||||
24070: "latte_macchiato",
|
||||
24071: "espresso_macchiato",
|
||||
24072: "cafe_au_lait",
|
||||
24073: "caffe_latte",
|
||||
24076: "flat_white",
|
||||
24077: "very_hot_water",
|
||||
24078: "hot_water",
|
||||
24079: "hot_milk",
|
||||
24080: "milk_foam",
|
||||
24081: "black_tea",
|
||||
24082: "herbal_tea",
|
||||
24083: "fruit_tea",
|
||||
24084: "green_tea",
|
||||
24085: "white_tea",
|
||||
24086: "japanese_tea",
|
||||
# profile 4
|
||||
24096: "ristretto",
|
||||
24097: "espresso",
|
||||
24098: "coffee",
|
||||
24099: "long_coffee",
|
||||
24100: "cappuccino",
|
||||
24101: "cappuccino_italiano",
|
||||
24102: "latte_macchiato",
|
||||
24103: "espresso_macchiato",
|
||||
24104: "cafe_au_lait",
|
||||
24105: "caffe_latte",
|
||||
24108: "flat_white",
|
||||
24109: "very_hot_water",
|
||||
24110: "hot_water",
|
||||
24111: "hot_milk",
|
||||
24112: "milk_foam",
|
||||
24113: "black_tea",
|
||||
24114: "herbal_tea",
|
||||
24115: "fruit_tea",
|
||||
24116: "green_tea",
|
||||
24117: "white_tea",
|
||||
24118: "japanese_tea",
|
||||
# profile 5
|
||||
24128: "ristretto",
|
||||
24129: "espresso",
|
||||
24130: "coffee",
|
||||
24131: "long_coffee",
|
||||
24132: "cappuccino",
|
||||
24133: "cappuccino_italiano",
|
||||
24134: "latte_macchiato",
|
||||
24135: "espresso_macchiato",
|
||||
24136: "cafe_au_lait",
|
||||
24137: "caffe_latte",
|
||||
24140: "flat_white",
|
||||
24141: "very_hot_water",
|
||||
24142: "hot_water",
|
||||
24143: "hot_milk",
|
||||
24144: "milk_foam",
|
||||
24145: "black_tea",
|
||||
24146: "herbal_tea",
|
||||
24147: "fruit_tea",
|
||||
24148: "green_tea",
|
||||
24149: "white_tea",
|
||||
24150: "japanese_tea",
|
||||
# special programs
|
||||
24400: "coffee_pot",
|
||||
24407: "barista_assistant",
|
||||
# machine settings menu
|
||||
24500: "appliance_settings", # total dispensed
|
||||
24502: "appliance_settings", # lights appliance on
|
||||
24503: "appliance_settings", # lights appliance off
|
||||
24504: "appliance_settings", # turn off lights after
|
||||
24506: "appliance_settings", # altitude
|
||||
24513: "appliance_settings", # performance mode
|
||||
24516: "appliance_settings", # turn off after
|
||||
24537: "appliance_settings", # advanced mode
|
||||
24542: "appliance_settings", # tea timer
|
||||
24549: "appliance_settings", # total coffee dispensed
|
||||
24550: "appliance_settings", # total tea dispensed
|
||||
24551: "appliance_settings", # total ristretto
|
||||
24552: "appliance_settings", # total cappuccino
|
||||
24553: "appliance_settings", # total espresso
|
||||
24554: "appliance_settings", # total coffee
|
||||
24555: "appliance_settings", # total long coffee
|
||||
24556: "appliance_settings", # total italian cappuccino
|
||||
24557: "appliance_settings", # total latte macchiato
|
||||
24558: "appliance_settings", # total caffe latte
|
||||
24560: "appliance_settings", # total espresso macchiato
|
||||
24562: "appliance_settings", # total flat white
|
||||
24563: "appliance_settings", # total coffee with milk
|
||||
24564: "appliance_settings", # total black tea
|
||||
24565: "appliance_settings", # total herbal tea
|
||||
24566: "appliance_settings", # total fruit tea
|
||||
24567: "appliance_settings", # total green tea
|
||||
24568: "appliance_settings", # total white tea
|
||||
24569: "appliance_settings", # total japanese tea
|
||||
24571: "appliance_settings", # total milk foam
|
||||
24572: "appliance_settings", # total hot milk
|
||||
24573: "appliance_settings", # total hot water
|
||||
24574: "appliance_settings", # total very hot water
|
||||
24575: "appliance_settings", # counter to descaling
|
||||
24576: "appliance_settings", # counter to brewing unit degreasing
|
||||
# maintenance
|
||||
24750: "appliance_rinse",
|
||||
24751: "descaling",
|
||||
24753: "brewing_unit_degrease",
|
||||
24754: "milk_pipework_rinse",
|
||||
24759: "appliance_rinse",
|
||||
24773: "appliance_rinse",
|
||||
24787: "appliance_rinse",
|
||||
24788: "appliance_rinse",
|
||||
24789: "milk_pipework_clean",
|
||||
# profiles settings menu
|
||||
24800: "appliance_settings", # add profile
|
||||
24801: "appliance_settings", # ask profile settings
|
||||
24813: "appliance_settings", # modify profile name
|
||||
}
|
||||
|
||||
STEAM_OVEN_MICRO_PROGRAM_ID: dict[int, str] = {
|
||||
8: "steam_cooking",
|
||||
19: "microwave",
|
||||
53: "popcorn",
|
||||
54: "quick_mw",
|
||||
72: "sous_vide",
|
||||
75: "eco_steam_cooking",
|
||||
77: "rapid_steam_cooking",
|
||||
326: "descale",
|
||||
330: "menu_cooking",
|
||||
2018: "reheating_with_steam",
|
||||
2019: "defrosting_with_steam",
|
||||
2020: "blanching",
|
||||
2021: "bottling",
|
||||
2022: "heat_crockery",
|
||||
2023: "prove_dough",
|
||||
2027: "soak",
|
||||
2029: "reheating_with_microwave",
|
||||
2030: "defrosting_with_microwave",
|
||||
2031: "artichokes_small",
|
||||
2032: "artichokes_medium",
|
||||
2033: "artichokes_large",
|
||||
2034: "eggplant_sliced",
|
||||
2035: "eggplant_diced",
|
||||
2036: "cauliflower_whole_small",
|
||||
2039: "cauliflower_whole_medium",
|
||||
2042: "cauliflower_whole_large",
|
||||
2046: "cauliflower_florets_small",
|
||||
2048: "cauliflower_florets_medium",
|
||||
2049: "cauliflower_florets_large",
|
||||
2051: "green_beans_whole",
|
||||
2052: "green_beans_cut",
|
||||
2053: "yellow_beans_whole",
|
||||
2054: "yellow_beans_cut",
|
||||
2055: "broad_beans",
|
||||
2056: "common_beans",
|
||||
2057: "runner_beans_whole",
|
||||
2058: "runner_beans_pieces",
|
||||
2059: "runner_beans_sliced",
|
||||
2060: "broccoli_whole_small",
|
||||
2061: "broccoli_whole_medium",
|
||||
2062: "broccoli_whole_large",
|
||||
2064: "broccoli_florets_small",
|
||||
2066: "broccoli_florets_medium",
|
||||
2068: "broccoli_florets_large",
|
||||
2069: "endive_halved",
|
||||
2070: "endive_quartered",
|
||||
2071: "endive_strips",
|
||||
2072: "chinese_cabbage_cut",
|
||||
2073: "peas",
|
||||
2074: "fennel_halved",
|
||||
2075: "fennel_quartered",
|
||||
2076: "fennel_strips",
|
||||
2077: "kale_cut",
|
||||
2080: "potatoes_in_the_skin_waxy_small_steam_cooking",
|
||||
2081: "potatoes_in_the_skin_waxy_small_rapid_steam_cooking",
|
||||
2083: "potatoes_in_the_skin_waxy_medium_steam_cooking",
|
||||
2084: "potatoes_in_the_skin_waxy_medium_rapid_steam_cooking",
|
||||
2086: "potatoes_in_the_skin_waxy_large_steam_cooking",
|
||||
2087: "potatoes_in_the_skin_waxy_large_rapid_steam_cooking",
|
||||
2088: "potatoes_in_the_skin_floury_small",
|
||||
2091: "potatoes_in_the_skin_floury_medium",
|
||||
2094: "potatoes_in_the_skin_floury_large",
|
||||
2097: "potatoes_in_the_skin_mainly_waxy_small",
|
||||
2100: "potatoes_in_the_skin_mainly_waxy_medium",
|
||||
2103: "potatoes_in_the_skin_mainly_waxy_large",
|
||||
2106: "potatoes_waxy_whole_small",
|
||||
2109: "potatoes_waxy_whole_medium",
|
||||
2112: "potatoes_waxy_whole_large",
|
||||
2115: "potatoes_waxy_halved",
|
||||
2116: "potatoes_waxy_quartered",
|
||||
2117: "potatoes_waxy_diced",
|
||||
2118: "potatoes_mainly_waxy_small",
|
||||
2119: "potatoes_mainly_waxy_medium",
|
||||
2120: "potatoes_mainly_waxy_large",
|
||||
2121: "potatoes_mainly_waxy_halved",
|
||||
2122: "potatoes_mainly_waxy_quartered",
|
||||
2123: "potatoes_mainly_waxy_diced",
|
||||
2124: "potatoes_floury_whole_small",
|
||||
2125: "potatoes_floury_whole_medium",
|
||||
2126: "potatoes_floury_whole_large",
|
||||
2127: "potatoes_floury_halved",
|
||||
2128: "potatoes_floury_quartered",
|
||||
2129: "potatoes_floury_diced",
|
||||
2130: "german_turnip_sliced",
|
||||
2131: "german_turnip_cut_into_batons",
|
||||
2132: "german_turnip_sliced",
|
||||
2133: "pumpkin_diced",
|
||||
2134: "corn_on_the_cob",
|
||||
2135: "mangel_cut",
|
||||
2136: "bunched_carrots_whole_small",
|
||||
2137: "bunched_carrots_whole_medium",
|
||||
2138: "bunched_carrots_whole_large",
|
||||
2139: "bunched_carrots_halved",
|
||||
2140: "bunched_carrots_quartered",
|
||||
2141: "bunched_carrots_diced",
|
||||
2142: "bunched_carrots_cut_into_batons",
|
||||
2143: "bunched_carrots_sliced",
|
||||
2144: "parisian_carrots_small",
|
||||
2145: "parisian_carrots_medium",
|
||||
2146: "parisian_carrots_large",
|
||||
2147: "carrots_whole_small",
|
||||
2148: "carrots_whole_medium",
|
||||
2149: "carrots_whole_large",
|
||||
2150: "carrots_halved",
|
||||
2151: "carrots_quartered",
|
||||
2152: "carrots_diced",
|
||||
2153: "carrots_cut_into_batons",
|
||||
2155: "carrots_sliced",
|
||||
2156: "pepper_halved",
|
||||
2157: "pepper_quartered",
|
||||
2158: "pepper_strips",
|
||||
2159: "pepper_diced",
|
||||
2160: "parsnip_sliced",
|
||||
2161: "parsnip_diced",
|
||||
2162: "parsnip_cut_into_batons",
|
||||
2163: "parsley_root_sliced",
|
||||
2164: "parsley_root_diced",
|
||||
2165: "parsley_root_cut_into_batons",
|
||||
2166: "leek_pieces",
|
||||
2167: "leek_rings",
|
||||
2168: "romanesco_whole_small",
|
||||
2169: "romanesco_whole_medium",
|
||||
2170: "romanesco_whole_large",
|
||||
2171: "romanesco_florets_small",
|
||||
2172: "romanesco_florets_medium",
|
||||
2173: "romanesco_florets_large",
|
||||
2175: "brussels_sprout",
|
||||
2176: "beetroot_whole_small",
|
||||
2177: "beetroot_whole_medium",
|
||||
2178: "beetroot_whole_large",
|
||||
2179: "red_cabbage_cut",
|
||||
2180: "black_salsify_thin",
|
||||
2181: "black_salsify_medium",
|
||||
2182: "black_salsify_thick",
|
||||
2183: "celery_pieces",
|
||||
2184: "celery_sliced",
|
||||
2185: "celeriac_sliced",
|
||||
2186: "celeriac_cut_into_batons",
|
||||
2187: "celeriac_diced",
|
||||
2188: "white_asparagus_thin",
|
||||
2189: "white_asparagus_medium",
|
||||
2190: "white_asparagus_thick",
|
||||
2192: "green_asparagus_thin",
|
||||
2194: "green_asparagus_medium",
|
||||
2196: "green_asparagus_thick",
|
||||
2197: "spinach",
|
||||
2198: "pointed_cabbage_cut",
|
||||
2199: "yam_halved",
|
||||
2200: "yam_quartered",
|
||||
2201: "yam_strips",
|
||||
2202: "swede_diced",
|
||||
2203: "swede_cut_into_batons",
|
||||
2204: "teltow_turnip_sliced",
|
||||
2205: "teltow_turnip_diced",
|
||||
2206: "jerusalem_artichoke_sliced",
|
||||
2207: "jerusalem_artichoke_diced",
|
||||
2208: "green_cabbage_cut",
|
||||
2209: "savoy_cabbage_cut",
|
||||
2210: "courgette_sliced",
|
||||
2211: "courgette_diced",
|
||||
2212: "snow_pea",
|
||||
2214: "perch_whole",
|
||||
2215: "perch_fillet_2_cm",
|
||||
2216: "perch_fillet_3_cm",
|
||||
2217: "gilt_head_bream_whole",
|
||||
2220: "gilt_head_bream_fillet",
|
||||
2221: "codfish_piece",
|
||||
2222: "codfish_fillet",
|
||||
2224: "trout",
|
||||
2225: "pike_fillet",
|
||||
2226: "pike_piece",
|
||||
2227: "halibut_fillet_2_cm",
|
||||
2230: "halibut_fillet_3_cm",
|
||||
2231: "codfish_fillet",
|
||||
2232: "codfish_piece",
|
||||
2233: "carp",
|
||||
2234: "salmon_fillet_2_cm",
|
||||
2235: "salmon_fillet_3_cm",
|
||||
2238: "salmon_steak_2_cm",
|
||||
2239: "salmon_steak_3_cm",
|
||||
2240: "salmon_piece",
|
||||
2241: "salmon_trout",
|
||||
2244: "iridescent_shark_fillet",
|
||||
2245: "red_snapper_fillet_2_cm",
|
||||
2248: "red_snapper_fillet_3_cm",
|
||||
2249: "redfish_fillet_2_cm",
|
||||
2250: "redfish_fillet_3_cm",
|
||||
2251: "redfish_piece",
|
||||
2252: "char",
|
||||
2253: "plaice_whole_2_cm",
|
||||
2254: "plaice_whole_3_cm",
|
||||
2255: "plaice_whole_4_cm",
|
||||
2256: "plaice_fillet_1_cm",
|
||||
2259: "plaice_fillet_2_cm",
|
||||
2260: "coalfish_fillet_2_cm",
|
||||
2261: "coalfish_fillet_3_cm",
|
||||
2262: "coalfish_piece",
|
||||
2263: "sea_devil_fillet_3_cm",
|
||||
2266: "sea_devil_fillet_4_cm",
|
||||
2267: "common_sole_fillet_1_cm",
|
||||
2270: "common_sole_fillet_2_cm",
|
||||
2271: "atlantic_catfish_fillet_1_cm",
|
||||
2272: "atlantic_catfish_fillet_2_cm",
|
||||
2273: "turbot_fillet_2_cm",
|
||||
2276: "turbot_fillet_3_cm",
|
||||
2277: "tuna_steak",
|
||||
2278: "tuna_fillet_2_cm",
|
||||
2279: "tuna_fillet_3_cm",
|
||||
2280: "tilapia_fillet_1_cm",
|
||||
2281: "tilapia_fillet_2_cm",
|
||||
2282: "nile_perch_fillet_2_cm",
|
||||
2283: "nile_perch_fillet_3_cm",
|
||||
2285: "zander_fillet",
|
||||
2288: "soup_hen",
|
||||
2291: "poularde_whole",
|
||||
2292: "poularde_breast",
|
||||
2294: "turkey_breast",
|
||||
2302: "chicken_tikka_masala_with_rice",
|
||||
2312: "veal_fillet_whole",
|
||||
2313: "veal_fillet_medaillons_1_cm",
|
||||
2315: "veal_fillet_medaillons_2_cm",
|
||||
2317: "veal_fillet_medaillons_3_cm",
|
||||
2324: "goulash_soup",
|
||||
2327: "dutch_hash",
|
||||
2328: "stuffed_cabbage",
|
||||
2330: "beef_tenderloin",
|
||||
2333: "beef_tenderloin_medaillons_1_cm_steam_cooking",
|
||||
2334: "beef_tenderloin_medaillons_2_cm_steam_cooking",
|
||||
2335: "beef_tenderloin_medaillons_3_cm_steam_cooking",
|
||||
2339: "silverside_5_cm",
|
||||
2342: "silverside_7_5_cm",
|
||||
2345: "silverside_10_cm",
|
||||
2348: "meat_for_soup_back_or_top_rib",
|
||||
2349: "meat_for_soup_leg_steak",
|
||||
2350: "meat_for_soup_brisket",
|
||||
2353: "viennese_silverside",
|
||||
2354: "whole_ham_steam_cooking",
|
||||
2355: "whole_ham_reheating",
|
||||
2359: "kasseler_piece",
|
||||
2361: "kasseler_slice",
|
||||
2363: "knuckle_of_pork_fresh",
|
||||
2364: "knuckle_of_pork_cured",
|
||||
2367: "pork_tenderloin_medaillons_3_cm",
|
||||
2368: "pork_tenderloin_medaillons_4_cm",
|
||||
2369: "pork_tenderloin_medaillons_5_cm",
|
||||
2429: "pumpkin_soup",
|
||||
2430: "meat_with_rice",
|
||||
2431: "beef_casserole",
|
||||
2450: "risotto",
|
||||
2451: "risotto",
|
||||
2453: "rice_pudding_steam_cooking",
|
||||
2454: "rice_pudding_rapid_steam_cooking",
|
||||
2461: "amaranth",
|
||||
2462: "bulgur",
|
||||
2463: "spelt_whole",
|
||||
2464: "spelt_cracked",
|
||||
2465: "green_spelt_whole",
|
||||
2466: "green_spelt_cracked",
|
||||
2467: "oats_whole",
|
||||
2468: "oats_cracked",
|
||||
2469: "millet",
|
||||
2470: "quinoa",
|
||||
2471: "polenta_swiss_style_fine_polenta",
|
||||
2472: "polenta_swiss_style_medium_polenta",
|
||||
2473: "polenta_swiss_style_coarse_polenta",
|
||||
2474: "polenta",
|
||||
2475: "rye_whole",
|
||||
2476: "rye_cracked",
|
||||
2477: "wheat_whole",
|
||||
2478: "wheat_cracked",
|
||||
2480: "gnocchi_fresh",
|
||||
2481: "yeast_dumplings_fresh",
|
||||
2482: "potato_dumplings_raw_boil_in_bag",
|
||||
2483: "potato_dumplings_raw_deep_frozen",
|
||||
2484: "potato_dumplings_half_half_boil_in_bag",
|
||||
2485: "potato_dumplings_half_half_deep_frozen",
|
||||
2486: "bread_dumplings_boil_in_the_bag",
|
||||
2487: "bread_dumplings_fresh",
|
||||
2488: "ravioli_fresh",
|
||||
2489: "spaetzle_fresh",
|
||||
2490: "tagliatelli_fresh",
|
||||
2491: "schupfnudeln_potato_noodels",
|
||||
2492: "tortellini_fresh",
|
||||
2493: "red_lentils",
|
||||
2494: "brown_lentils",
|
||||
2495: "beluga_lentils",
|
||||
2496: "green_split_peas",
|
||||
2497: "yellow_split_peas",
|
||||
2498: "chick_peas",
|
||||
2499: "white_beans",
|
||||
2500: "pinto_beans",
|
||||
2501: "red_beans",
|
||||
2502: "black_beans",
|
||||
2503: "hens_eggs_size_s_soft",
|
||||
2504: "hens_eggs_size_s_medium",
|
||||
2505: "hens_eggs_size_s_hard",
|
||||
2506: "hens_eggs_size_m_soft",
|
||||
2507: "hens_eggs_size_m_medium",
|
||||
2508: "hens_eggs_size_m_hard",
|
||||
2509: "hens_eggs_size_l_soft",
|
||||
2510: "hens_eggs_size_l_medium",
|
||||
2511: "hens_eggs_size_l_hard",
|
||||
2512: "hens_eggs_size_xl_soft",
|
||||
2513: "hens_eggs_size_xl_medium",
|
||||
2514: "hens_eggs_size_xl_hard",
|
||||
2515: "swiss_toffee_cream_100_ml",
|
||||
2516: "swiss_toffee_cream_150_ml",
|
||||
2518: "toffee_date_dessert_several_small",
|
||||
2520: "cheesecake_several_small",
|
||||
2521: "cheesecake_one_large",
|
||||
2522: "christmas_pudding_cooking",
|
||||
2523: "christmas_pudding_heating",
|
||||
2524: "treacle_sponge_pudding_several_small",
|
||||
2525: "treacle_sponge_pudding_one_large",
|
||||
2526: "sweet_cheese_dumplings",
|
||||
2527: "apples_whole",
|
||||
2528: "apples_halved",
|
||||
2529: "apples_quartered",
|
||||
2530: "apples_sliced",
|
||||
2531: "apples_diced",
|
||||
2532: "apricots_halved_steam_cooking",
|
||||
2533: "apricots_halved_skinning",
|
||||
2534: "apricots_quartered",
|
||||
2535: "apricots_wedges",
|
||||
2536: "pears_halved",
|
||||
2537: "pears_quartered",
|
||||
2538: "pears_wedges",
|
||||
2539: "sweet_cherries",
|
||||
2540: "sour_cherries",
|
||||
2541: "pears_to_cook_small_whole",
|
||||
2542: "pears_to_cook_small_halved",
|
||||
2543: "pears_to_cook_small_quartered",
|
||||
2544: "pears_to_cook_medium_whole",
|
||||
2545: "pears_to_cook_medium_halved",
|
||||
2546: "pears_to_cook_medium_quartered",
|
||||
2547: "pears_to_cook_large_whole",
|
||||
2548: "pears_to_cook_large_halved",
|
||||
2549: "pears_to_cook_large_quartered",
|
||||
2550: "mirabelles",
|
||||
2551: "nectarines_peaches_halved_steam_cooking",
|
||||
2552: "nectarines_peaches_halved_skinning",
|
||||
2553: "nectarines_peaches_quartered",
|
||||
2554: "nectarines_peaches_wedges",
|
||||
2555: "plums_whole",
|
||||
2556: "plums_halved",
|
||||
2557: "cranberries",
|
||||
2558: "quinces_diced",
|
||||
2559: "greenage_plums",
|
||||
2560: "rhubarb_chunks",
|
||||
2561: "gooseberries",
|
||||
2562: "mushrooms_whole",
|
||||
2563: "mushrooms_halved",
|
||||
2564: "mushrooms_sliced",
|
||||
2565: "mushrooms_quartered",
|
||||
2566: "mushrooms_diced",
|
||||
2567: "cep",
|
||||
2568: "chanterelle",
|
||||
2569: "oyster_mushroom_whole",
|
||||
2570: "oyster_mushroom_strips",
|
||||
2571: "oyster_mushroom_diced",
|
||||
2572: "saucisson",
|
||||
2573: "bruehwurst_sausages",
|
||||
2574: "bologna_sausage",
|
||||
2575: "veal_sausages",
|
||||
2577: "crevettes",
|
||||
2579: "prawns",
|
||||
2581: "king_prawns",
|
||||
2583: "small_shrimps",
|
||||
2585: "large_shrimps",
|
||||
2587: "mussels",
|
||||
2589: "scallops",
|
||||
2591: "venus_clams",
|
||||
2592: "goose_barnacles",
|
||||
2593: "cockles",
|
||||
2594: "razor_clams_small",
|
||||
2595: "razor_clams_medium",
|
||||
2596: "razor_clams_large",
|
||||
2597: "mussels_in_sauce",
|
||||
2598: "bottling_soft",
|
||||
2599: "bottling_medium",
|
||||
2600: "bottling_hard",
|
||||
2601: "melt_chocolate",
|
||||
2602: "dissolve_gelatine",
|
||||
2603: "sweat_onions",
|
||||
2604: "cook_bacon",
|
||||
2605: "heating_damp_flannels",
|
||||
2606: "decrystallise_honey",
|
||||
2607: "make_yoghurt",
|
||||
2687: "toffee_date_dessert_one_large",
|
||||
2694: "beef_tenderloin_medaillons_1_cm_low_temperature_cooking",
|
||||
2695: "beef_tenderloin_medaillons_2_cm_low_temperature_cooking",
|
||||
2696: "beef_tenderloin_medaillons_3_cm_low_temperature_cooking",
|
||||
3373: "wild_rice",
|
||||
3376: "wholegrain_rice",
|
||||
3380: "parboiled_rice_steam_cooking",
|
||||
3381: "parboiled_rice_rapid_steam_cooking",
|
||||
3383: "basmati_rice_steam_cooking",
|
||||
3384: "basmati_rice_rapid_steam_cooking",
|
||||
3386: "jasmine_rice_steam_cooking",
|
||||
3387: "jasmine_rice_rapid_steam_cooking",
|
||||
3389: "huanghuanian_steam_cooking",
|
||||
3390: "huanghuanian_rapid_steam_cooking",
|
||||
3392: "simiao_steam_cooking",
|
||||
3393: "simiao_rapid_steam_cooking",
|
||||
3395: "long_grain_rice_general_steam_cooking",
|
||||
3396: "long_grain_rice_general_rapid_steam_cooking",
|
||||
3398: "chongming_steam_cooking",
|
||||
3399: "chongming_rapid_steam_cooking",
|
||||
3401: "wuchang_steam_cooking",
|
||||
3402: "wuchang_rapid_steam_cooking",
|
||||
3404: "uonumma_koshihikari_steam_cooking",
|
||||
3405: "uonumma_koshihikari_rapid_steam_cooking",
|
||||
3407: "sheyang_steam_cooking",
|
||||
3408: "sheyang_rapid_steam_cooking",
|
||||
3410: "round_grain_rice_general_steam_cooking",
|
||||
3411: "round_grain_rice_general_rapid_steam_cooking",
|
||||
}
|
||||
|
||||
STATE_PROGRAM_ID: dict[int, dict[int, str]] = {
|
||||
MieleAppliance.WASHING_MACHINE: WASHING_MACHINE_PROGRAM_ID,
|
||||
MieleAppliance.TUMBLE_DRYER: TUMBLE_DRYER_PROGRAM_ID,
|
||||
MieleAppliance.DISHWASHER: DISHWASHER_PROGRAM_ID,
|
||||
MieleAppliance.DISH_WARMER: DISH_WARMER_PROGRAM_ID,
|
||||
MieleAppliance.OVEN: OVEN_PROGRAM_ID,
|
||||
MieleAppliance.OVEN_MICROWAVE: OVEN_PROGRAM_ID,
|
||||
MieleAppliance.STEAM_OVEN_MK2: OVEN_PROGRAM_ID,
|
||||
MieleAppliance.STEAM_OVEN: OVEN_PROGRAM_ID,
|
||||
MieleAppliance.STEAM_OVEN_COMBI: OVEN_PROGRAM_ID,
|
||||
MieleAppliance.STEAM_OVEN_MICRO: STEAM_OVEN_MICRO_PROGRAM_ID,
|
||||
MieleAppliance.WASHER_DRYER: WASHING_MACHINE_PROGRAM_ID,
|
||||
MieleAppliance.ROBOT_VACUUM_CLEANER: ROBOT_VACUUM_CLEANER_PROGRAM_ID,
|
||||
MieleAppliance.COFFEE_SYSTEM: COFFEE_SYSTEM_PROGRAM_ID,
|
||||
}
|
||||
|
@ -31,6 +31,27 @@
|
||||
},
|
||||
"core_target_temperature": {
|
||||
"default": "mdi:thermometer-probe"
|
||||
},
|
||||
"program_id": {
|
||||
"default": "mdi:selection-ellipse-arrow-inside"
|
||||
},
|
||||
"program_phase": {
|
||||
"default": "mdi:tray-full"
|
||||
},
|
||||
"elapsed_time": {
|
||||
"default": "mdi:timelapse"
|
||||
},
|
||||
"start_time": {
|
||||
"default": "mdi:clock-start"
|
||||
},
|
||||
"spin_speed": {
|
||||
"default": "mdi:sync"
|
||||
},
|
||||
"program_type": {
|
||||
"default": "mdi:state-machine"
|
||||
},
|
||||
"remaining_time": {
|
||||
"default": "mdi:clock-end"
|
||||
}
|
||||
},
|
||||
"switch": {
|
||||
|
@ -15,17 +15,32 @@ from homeassistant.components.sensor import (
|
||||
SensorEntityDescription,
|
||||
SensorStateClass,
|
||||
)
|
||||
from homeassistant.const import UnitOfTemperature
|
||||
from homeassistant.const import (
|
||||
REVOLUTIONS_PER_MINUTE,
|
||||
EntityCategory,
|
||||
UnitOfEnergy,
|
||||
UnitOfTemperature,
|
||||
UnitOfVolume,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
||||
from homeassistant.helpers.typing import StateType
|
||||
|
||||
from .const import STATE_STATUS_TAGS, MieleAppliance, StateStatus
|
||||
from .const import (
|
||||
STATE_PROGRAM_ID,
|
||||
STATE_PROGRAM_PHASE,
|
||||
STATE_PROGRAM_TYPE,
|
||||
STATE_STATUS_TAGS,
|
||||
MieleAppliance,
|
||||
StateStatus,
|
||||
)
|
||||
from .coordinator import MieleConfigEntry, MieleDataUpdateCoordinator
|
||||
from .entity import MieleEntity
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
DISABLED_TEMPERATURE = -32768
|
||||
|
||||
|
||||
@dataclass(frozen=True, kw_only=True)
|
||||
class MieleSensorDescription(SensorEntityDescription):
|
||||
@ -80,7 +95,139 @@ SENSOR_TYPES: Final[tuple[MieleSensorDefinition, ...]] = (
|
||||
translation_key="status",
|
||||
value_fn=lambda value: value.state_status,
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
options=list(STATE_STATUS_TAGS.values()),
|
||||
options=sorted(set(STATE_STATUS_TAGS.values())),
|
||||
),
|
||||
),
|
||||
MieleSensorDefinition(
|
||||
types=(
|
||||
MieleAppliance.WASHING_MACHINE,
|
||||
MieleAppliance.WASHING_MACHINE_SEMI_PROFESSIONAL,
|
||||
MieleAppliance.TUMBLE_DRYER,
|
||||
MieleAppliance.TUMBLE_DRYER_SEMI_PROFESSIONAL,
|
||||
MieleAppliance.DISHWASHER,
|
||||
MieleAppliance.DISH_WARMER,
|
||||
MieleAppliance.OVEN,
|
||||
MieleAppliance.OVEN_MICROWAVE,
|
||||
MieleAppliance.STEAM_OVEN,
|
||||
MieleAppliance.MICROWAVE,
|
||||
MieleAppliance.COFFEE_SYSTEM,
|
||||
MieleAppliance.ROBOT_VACUUM_CLEANER,
|
||||
MieleAppliance.WASHER_DRYER,
|
||||
MieleAppliance.STEAM_OVEN_COMBI,
|
||||
MieleAppliance.STEAM_OVEN_MICRO,
|
||||
MieleAppliance.DIALOG_OVEN,
|
||||
MieleAppliance.STEAM_OVEN_MK2,
|
||||
),
|
||||
description=MieleSensorDescription(
|
||||
key="state_program_id",
|
||||
translation_key="program_id",
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
value_fn=lambda value: value.state_program_id,
|
||||
),
|
||||
),
|
||||
MieleSensorDefinition(
|
||||
types=(
|
||||
MieleAppliance.WASHING_MACHINE,
|
||||
MieleAppliance.WASHING_MACHINE_SEMI_PROFESSIONAL,
|
||||
MieleAppliance.TUMBLE_DRYER,
|
||||
MieleAppliance.TUMBLE_DRYER_SEMI_PROFESSIONAL,
|
||||
MieleAppliance.DISHWASHER,
|
||||
MieleAppliance.DISH_WARMER,
|
||||
MieleAppliance.OVEN,
|
||||
MieleAppliance.OVEN_MICROWAVE,
|
||||
MieleAppliance.STEAM_OVEN,
|
||||
MieleAppliance.MICROWAVE,
|
||||
MieleAppliance.COFFEE_SYSTEM,
|
||||
MieleAppliance.ROBOT_VACUUM_CLEANER,
|
||||
MieleAppliance.WASHER_DRYER,
|
||||
MieleAppliance.STEAM_OVEN_COMBI,
|
||||
MieleAppliance.STEAM_OVEN_MICRO,
|
||||
MieleAppliance.DIALOG_OVEN,
|
||||
MieleAppliance.STEAM_OVEN_MK2,
|
||||
),
|
||||
description=MieleSensorDescription(
|
||||
key="state_program_phase",
|
||||
translation_key="program_phase",
|
||||
value_fn=lambda value: value.state_program_phase,
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
),
|
||||
),
|
||||
MieleSensorDefinition(
|
||||
types=(
|
||||
MieleAppliance.WASHING_MACHINE,
|
||||
MieleAppliance.WASHING_MACHINE_SEMI_PROFESSIONAL,
|
||||
MieleAppliance.TUMBLE_DRYER,
|
||||
MieleAppliance.TUMBLE_DRYER_SEMI_PROFESSIONAL,
|
||||
MieleAppliance.DISHWASHER,
|
||||
MieleAppliance.DISH_WARMER,
|
||||
MieleAppliance.OVEN,
|
||||
MieleAppliance.OVEN_MICROWAVE,
|
||||
MieleAppliance.STEAM_OVEN,
|
||||
MieleAppliance.MICROWAVE,
|
||||
MieleAppliance.ROBOT_VACUUM_CLEANER,
|
||||
MieleAppliance.WASHER_DRYER,
|
||||
MieleAppliance.STEAM_OVEN_COMBI,
|
||||
MieleAppliance.STEAM_OVEN_MICRO,
|
||||
MieleAppliance.DIALOG_OVEN,
|
||||
MieleAppliance.COFFEE_SYSTEM,
|
||||
MieleAppliance.STEAM_OVEN_MK2,
|
||||
),
|
||||
description=MieleSensorDescription(
|
||||
key="state_program_type",
|
||||
translation_key="program_type",
|
||||
value_fn=lambda value: value.state_program_type,
|
||||
entity_category=EntityCategory.DIAGNOSTIC,
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
options=sorted(set(STATE_PROGRAM_TYPE.values())),
|
||||
),
|
||||
),
|
||||
MieleSensorDefinition(
|
||||
types=(
|
||||
MieleAppliance.WASHING_MACHINE,
|
||||
MieleAppliance.WASHING_MACHINE_SEMI_PROFESSIONAL,
|
||||
MieleAppliance.TUMBLE_DRYER,
|
||||
MieleAppliance.TUMBLE_DRYER_SEMI_PROFESSIONAL,
|
||||
MieleAppliance.DISHWASHER,
|
||||
MieleAppliance.WASHER_DRYER,
|
||||
),
|
||||
description=MieleSensorDescription(
|
||||
key="current_energy_consumption",
|
||||
translation_key="energy_consumption",
|
||||
value_fn=lambda value: value.current_energy_consumption,
|
||||
device_class=SensorDeviceClass.ENERGY,
|
||||
state_class=SensorStateClass.TOTAL_INCREASING,
|
||||
native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
|
||||
entity_category=EntityCategory.DIAGNOSTIC,
|
||||
),
|
||||
),
|
||||
MieleSensorDefinition(
|
||||
types=(
|
||||
MieleAppliance.WASHING_MACHINE,
|
||||
MieleAppliance.DISHWASHER,
|
||||
MieleAppliance.WASHER_DRYER,
|
||||
),
|
||||
description=MieleSensorDescription(
|
||||
key="current_water_consumption",
|
||||
translation_key="water_consumption",
|
||||
value_fn=lambda value: value.current_water_consumption,
|
||||
device_class=SensorDeviceClass.WATER,
|
||||
state_class=SensorStateClass.TOTAL_INCREASING,
|
||||
native_unit_of_measurement=UnitOfVolume.LITERS,
|
||||
entity_category=EntityCategory.DIAGNOSTIC,
|
||||
),
|
||||
),
|
||||
MieleSensorDefinition(
|
||||
types=(
|
||||
MieleAppliance.WASHING_MACHINE,
|
||||
MieleAppliance.WASHING_MACHINE_SEMI_PROFESSIONAL,
|
||||
MieleAppliance.WASHER_DRYER,
|
||||
),
|
||||
description=MieleSensorDescription(
|
||||
key="state_spinning_speed",
|
||||
translation_key="spin_speed",
|
||||
value_fn=lambda value: value.state_spinning_speed,
|
||||
native_unit_of_measurement=REVOLUTIONS_PER_MINUTE,
|
||||
entity_category=EntityCategory.DIAGNOSTIC,
|
||||
),
|
||||
),
|
||||
MieleSensorDefinition(
|
||||
@ -115,21 +262,32 @@ SENSOR_TYPES: Final[tuple[MieleSensorDefinition, ...]] = (
|
||||
),
|
||||
MieleSensorDefinition(
|
||||
types=(
|
||||
MieleAppliance.TUMBLE_DRYER_SEMI_PROFESSIONAL,
|
||||
MieleAppliance.OVEN,
|
||||
MieleAppliance.OVEN_MICROWAVE,
|
||||
MieleAppliance.DISH_WARMER,
|
||||
MieleAppliance.STEAM_OVEN,
|
||||
MieleAppliance.MICROWAVE,
|
||||
MieleAppliance.FRIDGE,
|
||||
MieleAppliance.FREEZER,
|
||||
MieleAppliance.FRIDGE_FREEZER,
|
||||
MieleAppliance.STEAM_OVEN_COMBI,
|
||||
MieleAppliance.WINE_CABINET,
|
||||
MieleAppliance.WINE_CONDITIONING_UNIT,
|
||||
MieleAppliance.WINE_STORAGE_CONDITIONING_UNIT,
|
||||
MieleAppliance.STEAM_OVEN_MICRO,
|
||||
MieleAppliance.DIALOG_OVEN,
|
||||
MieleAppliance.WINE_CABINET_FREEZER,
|
||||
MieleAppliance.STEAM_OVEN_MK2,
|
||||
),
|
||||
description=MieleSensorDescription(
|
||||
key="state_core_temperature",
|
||||
translation_key="core_temperature",
|
||||
zone=1,
|
||||
key="state_temperature_2",
|
||||
zone=2,
|
||||
device_class=SensorDeviceClass.TEMPERATURE,
|
||||
translation_key="temperature_zone_2",
|
||||
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
value_fn=(
|
||||
lambda value: cast(int, value.state_core_temperature[0].temperature)
|
||||
/ 100.0
|
||||
),
|
||||
value_fn=lambda value: value.state_temperatures[1].temperature / 100.0, # type: ignore [operator]
|
||||
),
|
||||
),
|
||||
MieleSensorDefinition(
|
||||
@ -153,6 +311,25 @@ SENSOR_TYPES: Final[tuple[MieleSensorDefinition, ...]] = (
|
||||
),
|
||||
),
|
||||
),
|
||||
MieleSensorDefinition(
|
||||
types=(
|
||||
MieleAppliance.OVEN,
|
||||
MieleAppliance.OVEN_MICROWAVE,
|
||||
MieleAppliance.STEAM_OVEN_COMBI,
|
||||
),
|
||||
description=MieleSensorDescription(
|
||||
key="state_core_temperature",
|
||||
translation_key="core_temperature",
|
||||
zone=1,
|
||||
device_class=SensorDeviceClass.TEMPERATURE,
|
||||
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
value_fn=(
|
||||
lambda value: cast(int, value.state_core_temperature[0].temperature)
|
||||
/ 100.0
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
@ -172,8 +349,21 @@ async def async_setup_entry(
|
||||
match definition.description.key:
|
||||
case "state_status":
|
||||
entity_class = MieleStatusSensor
|
||||
case "state_program_id":
|
||||
entity_class = MieleProgramIdSensor
|
||||
case "state_program_phase":
|
||||
entity_class = MielePhaseSensor
|
||||
case "state_program_type":
|
||||
entity_class = MieleTypeSensor
|
||||
case _:
|
||||
entity_class = MieleSensor
|
||||
if (
|
||||
definition.description.device_class == SensorDeviceClass.TEMPERATURE
|
||||
and definition.description.value_fn(device)
|
||||
== DISABLED_TEMPERATURE / 100
|
||||
):
|
||||
# Don't create entity if API signals that datapoint is disabled
|
||||
continue
|
||||
entities.append(
|
||||
entity_class(coordinator, device_id, definition.description)
|
||||
)
|
||||
@ -219,7 +409,7 @@ class MieleSensor(MieleEntity, SensorEntity):
|
||||
@property
|
||||
def native_value(self) -> StateType:
|
||||
"""Return the state of the sensor."""
|
||||
return self.entity_description.value_fn(self.device)
|
||||
return cast(StateType, self.entity_description.value_fn(self.device))
|
||||
|
||||
|
||||
class MieleStatusSensor(MieleSensor):
|
||||
@ -249,3 +439,67 @@ class MieleStatusSensor(MieleSensor):
|
||||
"""Return the availability of the entity."""
|
||||
# This sensor should always be available
|
||||
return True
|
||||
|
||||
|
||||
class MielePhaseSensor(MieleSensor):
|
||||
"""Representation of the program phase sensor."""
|
||||
|
||||
@property
|
||||
def native_value(self) -> StateType:
|
||||
"""Return the state of the sensor."""
|
||||
ret_val = STATE_PROGRAM_PHASE.get(self.device.device_type, {}).get(
|
||||
self.device.state_program_phase
|
||||
)
|
||||
if ret_val is None:
|
||||
_LOGGER.debug(
|
||||
"Unknown program phase: %s on device type: %s",
|
||||
self.device.state_program_phase,
|
||||
self.device.device_type,
|
||||
)
|
||||
return ret_val
|
||||
|
||||
@property
|
||||
def options(self) -> list[str]:
|
||||
"""Return the options list for the actual device type."""
|
||||
return sorted(
|
||||
set(STATE_PROGRAM_PHASE.get(self.device.device_type, {}).values())
|
||||
)
|
||||
|
||||
|
||||
class MieleTypeSensor(MieleSensor):
|
||||
"""Representation of the program type sensor."""
|
||||
|
||||
@property
|
||||
def native_value(self) -> StateType:
|
||||
"""Return the state of the sensor."""
|
||||
ret_val = STATE_PROGRAM_TYPE.get(int(self.device.state_program_type))
|
||||
if ret_val is None:
|
||||
_LOGGER.debug(
|
||||
"Unknown program type: %s on device type: %s",
|
||||
self.device.state_program_type,
|
||||
self.device.device_type,
|
||||
)
|
||||
return ret_val
|
||||
|
||||
|
||||
class MieleProgramIdSensor(MieleSensor):
|
||||
"""Representation of the program id sensor."""
|
||||
|
||||
@property
|
||||
def native_value(self) -> StateType:
|
||||
"""Return the state of the sensor."""
|
||||
ret_val = STATE_PROGRAM_ID.get(self.device.device_type, {}).get(
|
||||
self.device.state_program_id
|
||||
)
|
||||
if ret_val is None:
|
||||
_LOGGER.debug(
|
||||
"Unknown program id: %s on device type: %s",
|
||||
self.device.state_program_id,
|
||||
self.device.device_type,
|
||||
)
|
||||
return ret_val
|
||||
|
||||
@property
|
||||
def options(self) -> list[str]:
|
||||
"""Return the options list for the actual device type."""
|
||||
return sorted(set(STATE_PROGRAM_ID.get(self.device.device_type, {}).values()))
|
||||
|
@ -115,6 +115,15 @@
|
||||
},
|
||||
"entity": {
|
||||
"binary_sensor": {
|
||||
"door": {
|
||||
"name": "Door"
|
||||
},
|
||||
"failure": {
|
||||
"name": "Failure"
|
||||
},
|
||||
"info": {
|
||||
"name": "Info"
|
||||
},
|
||||
"notification_active": {
|
||||
"name": "Notification active"
|
||||
},
|
||||
@ -173,6 +182,638 @@
|
||||
}
|
||||
},
|
||||
"sensor": {
|
||||
"energy_consumption": {
|
||||
"name": "Energy consumption"
|
||||
},
|
||||
"program_phase": {
|
||||
"name": "Program phase",
|
||||
"state": {
|
||||
"2nd_espresso": "2nd espresso coffee",
|
||||
"2nd_grinding": "2nd grinding",
|
||||
"2nd_pre_brewing": "2nd pre-brewing",
|
||||
"anti_crease": "Anti-crease",
|
||||
"blocked_brushes": "Brushes blocked",
|
||||
"blocked_drive_wheels": "Drive wheels blocked",
|
||||
"blocked_front_wheel": "Front wheel blocked",
|
||||
"cleaning": "Cleaning",
|
||||
"comfort_cooling": "Comfort cooling",
|
||||
"cooling_down": "Cooling down",
|
||||
"dirty_sensors": "Dirty sensors",
|
||||
"disinfecting": "Disinfecting",
|
||||
"dispensing": "Dispensing",
|
||||
"docked": "Docked",
|
||||
"door_open": "Door open",
|
||||
"drain": "Drain",
|
||||
"drying": "Drying",
|
||||
"dust_box_missing": "Missing dust box",
|
||||
"energy_save": "Energy save",
|
||||
"espresso": "Espresso coffee",
|
||||
"extra_dry": "Extra dry",
|
||||
"final_rinse": "Final rinse",
|
||||
"finished": "Finished",
|
||||
"freshen_up_and_moisten": "Freshen up & moisten",
|
||||
"going_to_target_area": "Going to target area",
|
||||
"grinding": "Grinding",
|
||||
"hand_iron": "Hand iron",
|
||||
"hand_iron_1": "Hand iron 1",
|
||||
"hand_iron_2": "Hand iron 2",
|
||||
"heating": "Heating",
|
||||
"heating_up": "Heating up",
|
||||
"heating_up_phase": "Heating up phase",
|
||||
"hot_milk": "Hot milk",
|
||||
"hygiene": "Hygiene",
|
||||
"interim_rinse": "Interim rinse",
|
||||
"keep_warm": "Keep warm",
|
||||
"keeping_warm": "Keeping warm",
|
||||
"machine_iron": "Machine iron",
|
||||
"main_dishwash": "Cleaning",
|
||||
"main_wash": "Main wash",
|
||||
"milk_foam": "Milk foam",
|
||||
"moisten": "Moisten",
|
||||
"motor_overload": "Check dust box and filter",
|
||||
"normal": "Normal",
|
||||
"normal_plus": "Normal plus",
|
||||
"not_running": "Not running",
|
||||
"pre_brewing": "Pre-brewing",
|
||||
"pre_dishwash": "Pre-cleaning",
|
||||
"pre_wash": "Pre-wash",
|
||||
"process_finished": "Process finished",
|
||||
"process_running": "Process running",
|
||||
"program_running": "Program running",
|
||||
"reactivating": "Reactivating",
|
||||
"remote_controlled": "Remote controlled",
|
||||
"returning": "Returning",
|
||||
"rinse": "Rinse",
|
||||
"rinse_hold": "Rinse hold",
|
||||
"rinse_out_lint": "Rinse out lint",
|
||||
"rinses": "Rinses",
|
||||
"safety_cooling": "Safety cooling",
|
||||
"slightly_dry": "Slightly dry",
|
||||
"slow_roasting": "Slow roasting",
|
||||
"smoothing": "Smoothing",
|
||||
"soak": "Soak",
|
||||
"spin": "Spin",
|
||||
"starch_stop": "Starch stop",
|
||||
"steam_reduction": "Steam reduction",
|
||||
"steam_smoothing": "Steam smoothing",
|
||||
"thermo_spin": "Thermo spin",
|
||||
"timed_drying": "Timed drying",
|
||||
"vacuum_cleaning": "Cleaning",
|
||||
"vacuum_cleaning_paused": "Cleaning paused",
|
||||
"vacuum_internal_fault": "Internal fault - reboot",
|
||||
"venting": "Venting",
|
||||
"waiting_for_start": "Waiting for start",
|
||||
"warm_air": "Warm air",
|
||||
"warm_cups_glasses": "Warm cups/glasses",
|
||||
"warm_dishes_plates": "Warm dishes/plates",
|
||||
"wheel_lifted": "Wheel lifted"
|
||||
}
|
||||
},
|
||||
"program_type": {
|
||||
"name": "Program type",
|
||||
"state": {
|
||||
"automatic_program": "Automatic program",
|
||||
"cleaning_care_program": "Cleaning/care program",
|
||||
"maintenance_program": "Maintenance program",
|
||||
"normal_operation_mode": "Normal operation mode",
|
||||
"own_program": "Own program"
|
||||
}
|
||||
},
|
||||
"program_id": {
|
||||
"name": "Program",
|
||||
"state": {
|
||||
"1_tray": "1 tray",
|
||||
"2_trays": "2 trays",
|
||||
"amaranth": "Amaranth",
|
||||
"apples_diced": "Apples (diced)",
|
||||
"apples_halved": "Apples (halved)",
|
||||
"apples_quartered": "Apples (quartered)",
|
||||
"apples_sliced": "Apples (sliced)",
|
||||
"apples_whole": "Apples (whole)",
|
||||
"appliance_rinse": "Appliance rinse",
|
||||
"appliance_settings": "Appliance settings menu",
|
||||
"apricots_halved_skinning": "Apricots (halved, skinning)",
|
||||
"apricots_halved_steam_cooking": "Apricots (halved, steam cooking)",
|
||||
"apricots_quartered": "Apricots (quartered)",
|
||||
"apricots_wedges": "Apricots (wedges)",
|
||||
"artichokes_large": "Artichokes large",
|
||||
"artichokes_medium": "Artichokes medium",
|
||||
"artichokes_small": "Artichokes small",
|
||||
"atlantic_catfish_fillet_1_cm": "Atlantic catfish (fillet, 1 cm)",
|
||||
"atlantic_catfish_fillet_2_cm": "Atlantic catfish (fillet, 2 cm)",
|
||||
"auto": "[%key:common::state::auto%]",
|
||||
"auto_roast": "Auto roast",
|
||||
"automatic": "Automatic",
|
||||
"automatic_plus": "Automatic plus",
|
||||
"baking_tray": "Baking tray",
|
||||
"barista_assistant": "BaristaAssistant",
|
||||
"basket_program": "Basket program",
|
||||
"basmati_rice_rapid_steam_cooking": "Basmati rice (rapid steam cooking)",
|
||||
"basmati_rice_steam_cooking": "Basmati rice (steam cooking)",
|
||||
"bed_linen": "Bed linen",
|
||||
"beef_casserole": "Beef casserole",
|
||||
"beef_tenderloin": "Beef tenderloin",
|
||||
"beef_tenderloin_medaillons_1_cm_low_temperature_cooking": "Beef tenderloin (medaillons, 1 cm, low-temperature cooking)",
|
||||
"beef_tenderloin_medaillons_1_cm_steam_cooking": "Beef tenderloin (medaillons, 1 cm, steam cooking)",
|
||||
"beef_tenderloin_medaillons_2_cm_low_temperature_cooking": "Beef tenderloin (medaillons, 2 cm, low-temperature cooking)",
|
||||
"beef_tenderloin_medaillons_2_cm_steam_cooking": "Beef tenderloin (medaillons, 2 cm, steam cooking)",
|
||||
"beef_tenderloin_medaillons_3_cm_low_temperature_cooking": "Beef tenderloin (medaillons, 3 cm, low-temperature cooking)",
|
||||
"beef_tenderloin_medaillons_3_cm_steam_cooking": "Beef tenderloin (medaillons, 3 cm, steam cooking)",
|
||||
"beetroot_whole_large": "Beetroot (whole, large)",
|
||||
"beetroot_whole_medium": "Beetroot (whole, medium)",
|
||||
"beetroot_whole_small": "Beetroot (whole, small)",
|
||||
"beluga_lentils": "Beluga lentils",
|
||||
"black_beans": "Black beans",
|
||||
"black_salsify_medium": "Black salsify (medium)",
|
||||
"black_salsify_thick": "Black salsify (thick)",
|
||||
"black_salsify_thin": "Black salsify (thin)",
|
||||
"black_tea": "Black tea",
|
||||
"blanching": "Blanching",
|
||||
"bologna_sausage": "Bologna sausage",
|
||||
"bottling": "Bottling",
|
||||
"bottling_hard": "Bottling (hard)",
|
||||
"bottling_medium": "Bottling (medium)",
|
||||
"bottling_soft": "Bottling (soft)",
|
||||
"bottom_heat": "Bottom heat",
|
||||
"bread_dumplings_boil_in_the_bag": "Bread dumplings (boil-in-the-bag)",
|
||||
"bread_dumplings_fresh": "Bread dumplings (fresh)",
|
||||
"brewing_unit_degrease": "Brewing unit degrease",
|
||||
"broad_beans": "Broad beans",
|
||||
"broccoli_florets_large": "Broccoli florets (large)",
|
||||
"broccoli_florets_medium": "Broccoli florets (medium)",
|
||||
"broccoli_florets_small": "Broccoli florets (small)",
|
||||
"broccoli_whole_large": "Broccoli (whole, large)",
|
||||
"broccoli_whole_medium": "Broccoli (whole, medium)",
|
||||
"broccoli_whole_small": "Broccoli (whole, small)",
|
||||
"brown_lentils": "Brown lentils",
|
||||
"bruehwurst_sausages": "Brühwurst sausages",
|
||||
"brussels_sprout": "Brussels sprout",
|
||||
"bulgur": "Bulgur",
|
||||
"bunched_carrots_cut_into_batons": "Bunched carrots (cut into batons)",
|
||||
"bunched_carrots_diced": "Bunched carrots (diced)",
|
||||
"bunched_carrots_halved": "Bunched carrots (halved)",
|
||||
"bunched_carrots_quartered": "Bunched carrots (quartered)",
|
||||
"bunched_carrots_sliced": "Bunched carrots (sliced)",
|
||||
"bunched_carrots_whole_large": "Bunched carrots (whole, large)",
|
||||
"bunched_carrots_whole_medium": "Bunched carrots (whole, medium)",
|
||||
"bunched_carrots_whole_small": "Bunched carrots (whole, small)",
|
||||
"cafe_au_lait": "Café au lait",
|
||||
"caffe_latte": "Caffè latte",
|
||||
"cappuccino": "Cappuccino",
|
||||
"cappuccino_italiano": "Cappuccino Italiano",
|
||||
"carp": "Carp",
|
||||
"carrots_cut_into_batons": "Carrots (cut into batons)",
|
||||
"carrots_diced": "Carrots (diced)",
|
||||
"carrots_halved": "Carrots (halved)",
|
||||
"carrots_quartered": "Carrots (quartered)",
|
||||
"carrots_sliced": "Carrots (sliced)",
|
||||
"carrots_whole_large": "Carrots (whole, large)",
|
||||
"carrots_whole_medium": "Carrots (whole, medium)",
|
||||
"carrots_whole_small": "Carrots (whole, small)",
|
||||
"cauliflower_florets_large": "Cauliflower florets (large)",
|
||||
"cauliflower_florets_medium": "Cauliflower florets (medium)",
|
||||
"cauliflower_florets_small": "Cauliflower florets (small)",
|
||||
"cauliflower_whole_large": "Cauliflower (whole, large)",
|
||||
"cauliflower_whole_medium": "Cauliflower (whole, medium)",
|
||||
"cauliflower_whole_small": "Cauliflower (whole, small)",
|
||||
"celeriac_cut_into_batons": "Celeriac (cut into batons)",
|
||||
"celeriac_diced": "Celeriac (diced)",
|
||||
"celeriac_sliced": "Celeriac (sliced)",
|
||||
"celery_pieces": "Celery (pieces)",
|
||||
"celery_sliced": "Celery (sliced)",
|
||||
"cep": "Cep",
|
||||
"chanterelle": "Chanterelle",
|
||||
"char": "Char",
|
||||
"check_appliance": "Check appliance",
|
||||
"cheesecake_one_large": "Cheesecake (one large)",
|
||||
"cheesecake_several_small": "Cheesecake (several small)",
|
||||
"chick_peas": "Chick peas",
|
||||
"chicken_tikka_masala_with_rice": "Chicken Tikka Masala with rice",
|
||||
"chinese_cabbage_cut": "Chinese cabbage (cut)",
|
||||
"chongming_rapid_steam_cooking": "Chongming (rapid steam cooking)",
|
||||
"chongming_steam_cooking": "Chongming (steam cooking)",
|
||||
"christmas_pudding_cooking": "Christmas pudding (cooking)",
|
||||
"christmas_pudding_heating": "Christmas pudding (heating)",
|
||||
"clean_machine": "Clean machine",
|
||||
"coalfish_fillet_2_cm": "Coalfish (fillet, 2 cm)",
|
||||
"coalfish_fillet_3_cm": "Coalfish (fillet, 3 cm)",
|
||||
"coalfish_piece": "Coalfish (piece)",
|
||||
"cockles": "Cockles",
|
||||
"codfish_fillet": "Codfish (fillet)",
|
||||
"codfish_piece": "Codfish (piece)",
|
||||
"coffee": "Coffee",
|
||||
"coffee_pot": "Coffee pot",
|
||||
"common_beans": "Common beans",
|
||||
"common_sole_fillet_1_cm": "Common sole (fillet, 1 cm)",
|
||||
"common_sole_fillet_2_cm": "Common sole (fillet, 2 cm)",
|
||||
"conventional_heat": "Conventional heat",
|
||||
"cook_bacon": "Cook bacon",
|
||||
"cool_air": "Cool air",
|
||||
"corn_on_the_cob": "Corn on the cob",
|
||||
"cottons": "Cottons",
|
||||
"cottons_eco": "Cottons ECO",
|
||||
"cottons_hygiene": "Cottons hygiene",
|
||||
"courgette_diced": "Courgette (diced)",
|
||||
"courgette_sliced": "Courgette (sliced)",
|
||||
"cranberries": "Cranberries",
|
||||
"crevettes": "Crevettes",
|
||||
"curtains": "Curtains",
|
||||
"dark_garments": "Dark garments",
|
||||
"decrystallise_honey": "Decrystallise honey",
|
||||
"defrost": "Defrost",
|
||||
"defrosting_with_microwave": "Defrosting with microwave",
|
||||
"defrosting_with_steam": "Defrosting with steam",
|
||||
"delicates": "Delicates",
|
||||
"denim": "Denim",
|
||||
"descale": "Descale",
|
||||
"descaling": "Appliance descaling",
|
||||
"dissolve_gelatine": "Dissolve gelatine",
|
||||
"down_duvets": "Down duvets",
|
||||
"down_filled_items": "Down-filled items",
|
||||
"drain_spin": "Drain/spin",
|
||||
"dutch_hash": "Dutch hash",
|
||||
"eco": "ECO",
|
||||
"eco_40_60": "ECO 40-60",
|
||||
"eco_fan_heat": "ECO fan heat",
|
||||
"eco_steam_cooking": "ECO steam cooking",
|
||||
"economy_grill": "Economy grill",
|
||||
"eggplant_diced": "Eggplant (diced)",
|
||||
"eggplant_sliced": "Eggplant (sliced)",
|
||||
"endive_halved": "Endive (halved)",
|
||||
"endive_quartered": "Endive (quartered)",
|
||||
"endive_strips": "Endive (strips)",
|
||||
"espresso": "Espresso",
|
||||
"espresso_macchiato": "Espresso macchiato",
|
||||
"express": "Express",
|
||||
"express_20": "Express 20'",
|
||||
"extra_quiet": "Extra quiet",
|
||||
"fan_grill": "Fan grill",
|
||||
"fan_plus": "Fan plus",
|
||||
"fennel_halved": "Fennel (halved)",
|
||||
"fennel_quartered": "Fennel (quartered)",
|
||||
"fennel_strips": "Fennel (strips)",
|
||||
"first_wash": "First wash",
|
||||
"flat_white": "Flat white",
|
||||
"freshen_up": "Freshen up",
|
||||
"fruit_tea": "Fruit tea",
|
||||
"full_grill": "Full grill",
|
||||
"gentle": "Gentle",
|
||||
"gentle_denim": "Gentle denim",
|
||||
"gentle_minimum_iron": "Gentle minimum iron",
|
||||
"gentle_smoothing": "Gentle smoothing",
|
||||
"german_turnip_cut_into_batons": "German turnip (cut into batons)",
|
||||
"german_turnip_sliced": "German turnip (sliced)",
|
||||
"gilt_head_bream_fillet": "Gilt-head bream (fillet)",
|
||||
"gilt_head_bream_whole": "Gilt-head bream (whole)",
|
||||
"glasses_warm": "Glasses warm",
|
||||
"gnocchi_fresh": "Gnocchi (fresh)",
|
||||
"goose_barnacles": "Goose barnacles",
|
||||
"gooseberries": "Gooseberries",
|
||||
"goulash_soup": "Goulash soup",
|
||||
"green_asparagus_medium": "Green asparagus (medium)",
|
||||
"green_asparagus_thick": "Green asparagus (thick)",
|
||||
"green_asparagus_thin": "Green asparagus (thin)",
|
||||
"green_beans_cut": "Green beans (cut)",
|
||||
"green_beans_whole": "Green beans (whole)",
|
||||
"green_cabbage_cut": "Green cabbage (cut)",
|
||||
"green_spelt_cracked": "Green spelt (cracked)",
|
||||
"green_spelt_whole": "Green spelt (whole)",
|
||||
"green_split_peas": "Green split peas",
|
||||
"green_tea": "Green tea",
|
||||
"greenage_plums": "Greenage plums",
|
||||
"halibut_fillet_2_cm": "Halibut (fillet, 2 cm)",
|
||||
"halibut_fillet_3_cm": "Halibut (fillet, 3 cm)",
|
||||
"heat_crockery": "Heat crockery",
|
||||
"heating_damp_flannels": "Heating damp flannels",
|
||||
"hens_eggs_size_l_hard": "Hen’s eggs (size „L“, hard)",
|
||||
"hens_eggs_size_l_medium": "Hen’s eggs (size „L“, medium)",
|
||||
"hens_eggs_size_l_soft": "Hen’s eggs (size „L“, soft)",
|
||||
"hens_eggs_size_m_hard": "Hen’s eggs (size „M“, hard)",
|
||||
"hens_eggs_size_m_medium": "Hen’s eggs (size „M“, medium)",
|
||||
"hens_eggs_size_m_soft": "Hen’s eggs (size „M“, soft)",
|
||||
"hens_eggs_size_s_hard": "Hen’s eggs (size „S“, hard)",
|
||||
"hens_eggs_size_s_medium": "Hen’s eggs (size „S“, medium)",
|
||||
"hens_eggs_size_s_soft": "Hen’s eggs (size „S“, soft)",
|
||||
"hens_eggs_size_xl_hard": "Hen’s eggs (size „XL“, hard)",
|
||||
"hens_eggs_size_xl_medium": "Hen’s eggs (size „XL“, medium)",
|
||||
"hens_eggs_size_xl_soft": "Hen’s eggs (size „XL“, soft)",
|
||||
"herbal_tea": "Herbal tea",
|
||||
"hot_milk": "Hot milk",
|
||||
"hot_water": "Hot water",
|
||||
"huanghuanian_rapid_steam_cooking": "Huanghuanian (rapid steam cooking)",
|
||||
"huanghuanian_steam_cooking": "Huanghuanian (steam cooking)",
|
||||
"hygiene": "Hygiene",
|
||||
"intensive": "Intensive",
|
||||
"intensive_bake": "Intensive bake",
|
||||
"iridescent_shark_fillet": "Iridescent shark (fillet)",
|
||||
"japanese_tea": "Japanese tea",
|
||||
"jasmine_rice_rapid_steam_cooking": "Jasmine rice (rapid steam cooking)",
|
||||
"jasmine_rice_steam_cooking": "Jasmine rice (steam cooking)",
|
||||
"jerusalem_artichoke_diced": "Jerusalem artichoke (diced)",
|
||||
"jerusalem_artichoke_sliced": "Jerusalem artichoke (sliced)",
|
||||
"kale_cut": "Kale (cut)",
|
||||
"kasseler_piece": "Kasseler (piece)",
|
||||
"kasseler_slice": "Kasseler (slice)",
|
||||
"keeping_warm": "Keeping warm",
|
||||
"king_prawns": "King prawns",
|
||||
"knuckle_of_pork_cured": "Knuckle of pork (cured)",
|
||||
"knuckle_of_pork_fresh": "Knuckle of pork (fresh)",
|
||||
"large_pillows": "Large pillows",
|
||||
"large_shrimps": "Large shrimps",
|
||||
"latte_macchiato": "Latte macchiato",
|
||||
"leek_pieces": "Leek (pieces)",
|
||||
"leek_rings": "Leek (rings)",
|
||||
"long_coffee": "Long coffee",
|
||||
"long_grain_rice_general_rapid_steam_cooking": "Long grain rice (general, rapid steam cooking)",
|
||||
"long_grain_rice_general_steam_cooking": "Long grain rice (general, steam cooking)",
|
||||
"maintenance": "Maintenance program",
|
||||
"make_yoghurt": "Make yoghurt",
|
||||
"mangel_cut": "Mangel (cut)",
|
||||
"meat_for_soup_back_or_top_rib": "Meat for soup (back or top rib)",
|
||||
"meat_for_soup_brisket": "Meat for soup (brisket)",
|
||||
"meat_for_soup_leg_steak": "Meat for soup (leg steak)",
|
||||
"meat_with_rice": "Meat with rice",
|
||||
"melt_chocolate": "Melt chocolate",
|
||||
"menu_cooking": "Menu cooking",
|
||||
"microwave": "Microwave",
|
||||
"milk_foam": "Milk foam",
|
||||
"milk_pipework_clean": "Milk pipework clean",
|
||||
"milk_pipework_rinse": "Milk pipework rinse",
|
||||
"millet": "Millet",
|
||||
"minimum_iron": "Minimum iron",
|
||||
"mirabelles": "Mirabelles",
|
||||
"moisture_plus_auto_roast": "Moisture plus + Auto roast",
|
||||
"moisture_plus_conventional_heat": "Moisture plus + Conventional heat",
|
||||
"moisture_plus_fan_plus": "Moisture plus + Fan plus",
|
||||
"moisture_plus_intensive_bake": "Moisture plus + Intensive bake",
|
||||
"mushrooms_diced": "Mushrooms (diced)",
|
||||
"mushrooms_halved": "Mushrooms (halved)",
|
||||
"mushrooms_quartered": "Mushrooms (quartered)",
|
||||
"mushrooms_sliced": "Mushrooms (sliced)",
|
||||
"mushrooms_whole": "Mushrooms (whole)",
|
||||
"mussels": "Mussels",
|
||||
"mussels_in_sauce": "Mussels in sauce",
|
||||
"nectarines_peaches_halved_skinning": "Nectarines/peaches (halved, skinning)",
|
||||
"nectarines_peaches_halved_steam_cooking": "Nectarines/peaches (halved, steam cooking)",
|
||||
"nectarines_peaches_quartered": "Nectarines/peaches (quartered)",
|
||||
"nectarines_peaches_wedges": "Nectarines/peaches (wedges)",
|
||||
"nile_perch_fillet_2_cm": "Nile perch (fillet, 2 cm)",
|
||||
"nile_perch_fillet_3_cm": "Nile perch (fillet, 3 cm)",
|
||||
"no_program": "No program",
|
||||
"normal": "[%key:common::state::normal%]",
|
||||
"oats_cracked": "Oats (cracked)",
|
||||
"oats_whole": "Oats (whole)",
|
||||
"outerwear": "Outerwear",
|
||||
"oyster_mushroom_diced": "Oyster mushroom (diced)",
|
||||
"oyster_mushroom_strips": "Oyster mushroom (strips)",
|
||||
"oyster_mushroom_whole": "Oyster mushroom (whole)",
|
||||
"parboiled_rice_rapid_steam_cooking": "Parboiled rice (rapid steam cooking)",
|
||||
"parboiled_rice_steam_cooking": "Parboiled rice (steam cooking)",
|
||||
"parisian_carrots_large": "Parisian carrots (large)",
|
||||
"parisian_carrots_medium": "Parisian carrots (medium)",
|
||||
"parisian_carrots_small": "Parisian carrots (small)",
|
||||
"parsley_root_cut_into_batons": "Parsley root (cut into batons)",
|
||||
"parsley_root_diced": "Parsley root (diced)",
|
||||
"parsley_root_sliced": "Parsley root (sliced)",
|
||||
"parsnip_cut_into_batons": "Parsnip (cut into batons)",
|
||||
"parsnip_diced": "Parsnip (diced)",
|
||||
"parsnip_sliced": "Parsnip (sliced)",
|
||||
"pasta_paela": "Pasta/Paela",
|
||||
"pears_halved": "Pears (halved)",
|
||||
"pears_quartered": "Pears (quartered)",
|
||||
"pears_to_cook_large_halved": "Pears to cook (large, halved)",
|
||||
"pears_to_cook_large_quartered": "Pears to cook (large, quartered)",
|
||||
"pears_to_cook_large_whole": "Pears to cook (large, whole)",
|
||||
"pears_to_cook_medium_halved": "Pears to cook (medium, halved)",
|
||||
"pears_to_cook_medium_quartered": "Pears to cook (medium, quartered)",
|
||||
"pears_to_cook_medium_whole": "Pears to cook (medium, whole)",
|
||||
"pears_to_cook_small_halved": "Pears to cook (small, halved)",
|
||||
"pears_to_cook_small_quartered": "Pears to cook (small, quartered)",
|
||||
"pears_to_cook_small_whole": "Pears to cook (small, whole)",
|
||||
"pears_wedges": "Pears (wedges)",
|
||||
"peas": "Peas",
|
||||
"pepper_diced": "Pepper (diced)",
|
||||
"pepper_halved": "Pepper (halved)",
|
||||
"pepper_quartered": "Pepper (quartered)",
|
||||
"pepper_strips": "Pepper (strips)",
|
||||
"perch_fillet_2_cm": "Perch (fillet, 2 cm)",
|
||||
"perch_fillet_3_cm": "Perch (fillet, 3 cm)",
|
||||
"perch_whole": "Perch (whole)",
|
||||
"pike_fillet": "Pike (fillet)",
|
||||
"pike_piece": "Pike (piece)",
|
||||
"pillows": "Pillows",
|
||||
"pinto_beans": "Pinto beans",
|
||||
"plaice_fillet_1_cm": "Plaice (fillet, 1 cm)",
|
||||
"plaice_fillet_2_cm": "Plaice (fillet, 2 cm)",
|
||||
"plaice_whole_2_cm": "Plaice (whole, 2 cm)",
|
||||
"plaice_whole_3_cm": "Plaice (whole, 3 cm)",
|
||||
"plaice_whole_4_cm": "Plaice (whole, 4 cm)",
|
||||
"plums_halved": "Plums (halved)",
|
||||
"plums_whole": "Plums (whole)",
|
||||
"pointed_cabbage_cut": "Pointed cabbage (cut)",
|
||||
"polenta": "Polenta",
|
||||
"polenta_swiss_style_coarse_polenta": "Polenta Swiss style (coarse polenta)",
|
||||
"polenta_swiss_style_fine_polenta": "Polenta Swiss style (fine polenta)",
|
||||
"polenta_swiss_style_medium_polenta": "Polenta Swiss style (medium polenta)",
|
||||
"popcorn": "Popcorn",
|
||||
"pork_tenderloin_medaillons_3_cm": "Pork tenderloin (medaillons, 3 cm)",
|
||||
"pork_tenderloin_medaillons_4_cm": "Pork tenderloin (medaillons, 4 cm)",
|
||||
"pork_tenderloin_medaillons_5_cm": "Pork tenderloin (medaillons, 5 cm)",
|
||||
"potato_dumplings_half_half_boil_in_bag": "Potato dumplings (half/half, boil-in-bag)",
|
||||
"potato_dumplings_half_half_deep_frozen": "Potato dumplings (half/half, deep-frozen)",
|
||||
"potato_dumplings_raw_boil_in_bag": "Potato dumplings (raw, boil-in-bag)",
|
||||
"potato_dumplings_raw_deep_frozen": "Potato dumplings (raw, deep-frozen)",
|
||||
"potatoes_floury_diced": "Potatoes (floury, diced)",
|
||||
"potatoes_floury_halved": "Potatoes (floury, halved)",
|
||||
"potatoes_floury_quartered": "Potatoes (floury, quartered)",
|
||||
"potatoes_floury_whole_large": "Potatoes (floury, whole, large)",
|
||||
"potatoes_floury_whole_medium": "Potatoes (floury, whole, medium)",
|
||||
"potatoes_floury_whole_small": "Potatoes (floury, whole, small)",
|
||||
"potatoes_in_the_skin_floury_large": "Potatoes (in the skin, floury, large)",
|
||||
"potatoes_in_the_skin_floury_medium": "Potatoes (in the skin, floury, medium)",
|
||||
"potatoes_in_the_skin_floury_small": "Potatoes (in the skin, floury, small)",
|
||||
"potatoes_in_the_skin_mainly_waxy_large": "Potatoes (in the skin, mainly waxy, large)",
|
||||
"potatoes_in_the_skin_mainly_waxy_medium": "Potatoes (in the skin, mainly waxy, medium)",
|
||||
"potatoes_in_the_skin_mainly_waxy_small": "Potatoes (in the skin, mainly waxy, small)",
|
||||
"potatoes_in_the_skin_waxy_large_rapid_steam_cooking": "Potatoes (in the skin, waxy, large, rapid steam cooking)",
|
||||
"potatoes_in_the_skin_waxy_large_steam_cooking": "Potatoes (in the skin, waxy, large, steam cooking)",
|
||||
"potatoes_in_the_skin_waxy_medium_rapid_steam_cooking": "Potatoes (in the skin, waxy, medium, rapid steam cooking)",
|
||||
"potatoes_in_the_skin_waxy_medium_steam_cooking": "Potatoes (in the skin, waxy, medium, steam cooking)",
|
||||
"potatoes_in_the_skin_waxy_small_rapid_steam_cooking": "Potatoes (in the skin, waxy, small, rapid steam cooking)",
|
||||
"potatoes_in_the_skin_waxy_small_steam_cooking": "Potatoes (in the skin, waxy, small, steam cooking)",
|
||||
"potatoes_mainly_waxy_diced": "Potatoes (mainly waxy, diced)",
|
||||
"potatoes_mainly_waxy_halved": "Potatoes (mainly waxy, halved)",
|
||||
"potatoes_mainly_waxy_large": "Potatoes (mainly waxy, large)",
|
||||
"potatoes_mainly_waxy_medium": "Potatoes (mainly waxy, medium)",
|
||||
"potatoes_mainly_waxy_quartered": "Potatoes (mainly waxy, quartered)",
|
||||
"potatoes_mainly_waxy_small": "Potatoes (mainly waxy, small)",
|
||||
"potatoes_waxy_diced": "Potatoes (waxy, diced)",
|
||||
"potatoes_waxy_halved": "Potatoes (waxy, halved)",
|
||||
"potatoes_waxy_quartered": "Potatoes (waxy, quartered)",
|
||||
"potatoes_waxy_whole_large": "Potatoes (waxy, whole, large)",
|
||||
"potatoes_waxy_whole_medium": "Potatoes (waxy, whole, medium)",
|
||||
"potatoes_waxy_whole_small": "Potatoes (waxy, whole, small)",
|
||||
"poularde_breast": "Poularde breast",
|
||||
"poularde_whole": "Poularde (whole)",
|
||||
"power_wash": "PowerWash",
|
||||
"prawns": "Prawns",
|
||||
"proofing": "Proofing",
|
||||
"prove_15_min": "Prove for 15 min",
|
||||
"prove_30_min": "Prove for 30 min",
|
||||
"prove_45_min": "Prove for 45 min",
|
||||
"prove_dough": "Prove dough",
|
||||
"pumpkin_diced": "Pumpkin (diced)",
|
||||
"pumpkin_soup": "Pumpkin soup",
|
||||
"quick_mw": "Quick MW",
|
||||
"quick_power_wash": "QuickPowerWash",
|
||||
"quinces_diced": "Quinces (diced)",
|
||||
"quinoa": "Quinoa",
|
||||
"rapid_steam_cooking": "Rapid steam cooking",
|
||||
"ravioli_fresh": "Ravioli (fresh)",
|
||||
"razor_clams_large": "Razor clams (large)",
|
||||
"razor_clams_medium": "Razor clams (medium)",
|
||||
"razor_clams_small": "Razor clams (small)",
|
||||
"red_beans": "Red beans",
|
||||
"red_cabbage_cut": "Red cabbage (cut)",
|
||||
"red_lentils": "Red lentils",
|
||||
"red_snapper_fillet_2_cm": "Red snapper (fillet, 2 cm)",
|
||||
"red_snapper_fillet_3_cm": "Red snapper (fillet, 3 cm)",
|
||||
"redfish_fillet_2_cm": "Redfish (fillet, 2 cm)",
|
||||
"redfish_fillet_3_cm": "Redfish (fillet, 3 cm)",
|
||||
"redfish_piece": "Redfish (piece)",
|
||||
"reheating_with_microwave": "Reheating with microwave",
|
||||
"reheating_with_steam": "Reheating with steam",
|
||||
"rhubarb_chunks": "Rhubarb chunks",
|
||||
"rice_pudding_rapid_steam_cooking": "Rice pudding (rapid steam cooking)",
|
||||
"rice_pudding_steam_cooking": "Rice pudding (steam cooking)",
|
||||
"rinse": "Rinse",
|
||||
"rinse_out_lint": "Rinse out lint",
|
||||
"risotto": "Risotto",
|
||||
"ristretto": "Ristretto",
|
||||
"romanesco_florets_large": "Romanesco florets (large)",
|
||||
"romanesco_florets_medium": "Romanesco florets (medium)",
|
||||
"romanesco_florets_small": "Romanesco florets (small)",
|
||||
"romanesco_whole_large": "Romanesco (whole, large)",
|
||||
"romanesco_whole_medium": "Romanesco (whole, medium)",
|
||||
"romanesco_whole_small": "Romanesco (whole, small)",
|
||||
"round_grain_rice_general_rapid_steam_cooking": "Round grain rice (general, rapid steam cooking)",
|
||||
"round_grain_rice_general_steam_cooking": "Round grain rice (general, steam cooking)",
|
||||
"runner_beans_pieces": "Runner beans (pieces)",
|
||||
"runner_beans_sliced": "Runner beans (sliced)",
|
||||
"runner_beans_whole": "Runner beans (whole)",
|
||||
"rye_cracked": "Rye (cracked)",
|
||||
"rye_whole": "Rye (whole)",
|
||||
"salmon_fillet_2_cm": "Salmon (fillet, 2 cm)",
|
||||
"salmon_fillet_3_cm": "Salmon (fillet, 3 cm)",
|
||||
"salmon_piece": "Salmon (piece)",
|
||||
"salmon_steak_2_cm": "Salmon (steak, 2 cm)",
|
||||
"salmon_steak_3_cm": "Salmon (steak, 3 cm)",
|
||||
"salmon_trout": "Salmon trout",
|
||||
"saucisson": "Saucisson",
|
||||
"savoy_cabbage_cut": "Savoy cabbage (cut)",
|
||||
"scallops": "Scallops",
|
||||
"schupfnudeln_potato_noodels": "Schupfnudeln (potato noodels)",
|
||||
"sea_devil_fillet_3_cm": "Sea devil (fillet, 3 cm)",
|
||||
"sea_devil_fillet_4_cm": "Sea devil (fillet, 4 cm)",
|
||||
"separate_rinse_starch": "Separate rinse/starch",
|
||||
"sheyang_rapid_steam_cooking": "Sheyang (rapid steam cooking)",
|
||||
"sheyang_steam_cooking": "Sheyang (steam cooking)",
|
||||
"shirts": "Shirts",
|
||||
"silent": "Silent",
|
||||
"silks": "Silks",
|
||||
"silks_handcare": "Silks handcare",
|
||||
"silverside_10_cm": "Silverside (10 cm)",
|
||||
"silverside_5_cm": "Silverside (5 cm)",
|
||||
"silverside_7_5_cm": "Silverside (7.5 cm)",
|
||||
"simiao_rapid_steam_cooking": "Simiao (rapid steam cooking)",
|
||||
"simiao_steam_cooking": "Simiao (steam cooking)",
|
||||
"small_shrimps": "Small shrimps",
|
||||
"smoothing": "Smoothing",
|
||||
"snow_pea": "Snow pea",
|
||||
"soak": "Soak",
|
||||
"solar_save": "SolarSave",
|
||||
"soup_hen": "Soup hen",
|
||||
"sour_cherries": "Sour cherries",
|
||||
"sous_vide": "Sous-vide",
|
||||
"spaetzle_fresh": "Spätzle (fresh)",
|
||||
"spelt_cracked": "Spelt (cracked)",
|
||||
"spelt_whole": "Spelt (whole)",
|
||||
"spinach": "Spinach",
|
||||
"sportswear": "Sportswear",
|
||||
"spot": "Spot",
|
||||
"standard_pillows": "Standard pillows",
|
||||
"starch": "Starch",
|
||||
"steam_care": "Steam care",
|
||||
"steam_cooking": "Steam cooking",
|
||||
"steam_smoothing": "Steam smoothing",
|
||||
"stuffed_cabbage": "Stuffed cabbage",
|
||||
"sweat_onions": "Sweat onions",
|
||||
"swede_cut_into_batons": "Swede (cut into batons)",
|
||||
"swede_diced": "Swede (diced)",
|
||||
"sweet_cheese_dumplings": "Sweet cheese dumplings",
|
||||
"sweet_cherries": "Sweet cherries",
|
||||
"swiss_toffee_cream_100_ml": "Swiss toffee cream (100 ml)",
|
||||
"swiss_toffee_cream_150_ml": "Swiss toffee cream (150 ml)",
|
||||
"tagliatelli_fresh": "Tagliatelli (fresh)",
|
||||
"tall_items": "Tall items",
|
||||
"teltow_turnip_diced": "Teltow turnip (diced)",
|
||||
"teltow_turnip_sliced": "Teltow turnip (sliced)",
|
||||
"tilapia_fillet_1_cm": "Tilapia (fillet, 1 cm)",
|
||||
"tilapia_fillet_2_cm": "Tilapia (fillet, 2 cm)",
|
||||
"toffee_date_dessert_one_large": "Toffee-date dessert (one large)",
|
||||
"toffee_date_dessert_several_small": "Toffee-date dessert (several small)",
|
||||
"top_heat": "Top heat",
|
||||
"tortellini_fresh": "Tortellini (fresh)",
|
||||
"trainers": "Trainers",
|
||||
"treacle_sponge_pudding_one_large": "Treacle sponge pudding (one large)",
|
||||
"treacle_sponge_pudding_several_small": "Treacle sponge pudding (several small)",
|
||||
"trout": "Trout",
|
||||
"tuna_fillet_2_cm": "Tuna (fillet, 2 cm)",
|
||||
"tuna_fillet_3_cm": "Tuna (fillet, 3 cm)",
|
||||
"tuna_steak": "Tuna (steak)",
|
||||
"turbo": "Turbo",
|
||||
"turbot_fillet_2_cm": "Turbot (fillet, 2 cm)",
|
||||
"turbot_fillet_3_cm": "Turbot (fillet, 3 cm)",
|
||||
"turkey_breast": "Turkey breast",
|
||||
"uonumma_koshihikari_rapid_steam_cooking": "Uonumma Koshihikari (rapid steam cooking)",
|
||||
"uonumma_koshihikari_steam_cooking": "Uonumma Koshihikari (steam cooking)",
|
||||
"veal_fillet_medaillons_1_cm": "Veal fillet (medaillons, 1 cm)",
|
||||
"veal_fillet_medaillons_2_cm": "Veal fillet (medaillons, 2 cm)",
|
||||
"veal_fillet_medaillons_3_cm": "Veal fillet (medaillons, 3 cm)",
|
||||
"veal_fillet_whole": "Veal fillet (whole)",
|
||||
"veal_sausages": "Veal sausages",
|
||||
"venus_clams": "Venus clams",
|
||||
"very_hot_water": "Very hot water",
|
||||
"viennese_silverside": "Viennese silverside",
|
||||
"warm_air": "Warm air",
|
||||
"wheat_cracked": "Wheat (cracked)",
|
||||
"wheat_whole": "Wheat (whole)",
|
||||
"white_asparagus_medium": "White asparagus (medium)",
|
||||
"white_asparagus_thick": "White asparagus (thick)",
|
||||
"white_asparagus_thin": "White asparagus (thin)",
|
||||
"white_beans": "White beans",
|
||||
"white_tea": "White tea",
|
||||
"whole_ham_reheating": "Whole ham (reheating)",
|
||||
"whole_ham_steam_cooking": "Whole ham (steam cooking)",
|
||||
"wholegrain_rice": "Wholegrain rice",
|
||||
"wild_rice": "Wild rice",
|
||||
"woollens": "Woollens",
|
||||
"woollens_handcare": "Woollens hand care",
|
||||
"wuchang_rapid_steam_cooking": "Wuchang (rapid steam cooking)",
|
||||
"wuchang_steam_cooking": "Wuchang (steam cooking)",
|
||||
"yam_halved": "Yam (halved)",
|
||||
"yam_quartered": "Yam (quartered)",
|
||||
"yam_strips": "Yam (strips)",
|
||||
"yeast_dumplings_fresh": "Yeast dumplings (fresh)",
|
||||
"yellow_beans_cut": "Yellow beans (cut)",
|
||||
"yellow_beans_whole": "Yellow beans (whole)",
|
||||
"yellow_split_peas": "Yellow split peas",
|
||||
"zander_fillet": "Zander (fillet)"
|
||||
}
|
||||
},
|
||||
"spin_speed": {
|
||||
"name": "Spin speed"
|
||||
},
|
||||
"status": {
|
||||
"name": "Status",
|
||||
"state": {
|
||||
@ -196,6 +837,15 @@
|
||||
"waiting_to_start": "Waiting to start"
|
||||
}
|
||||
},
|
||||
"temperature_zone_2": {
|
||||
"name": "Temperature zone 2"
|
||||
},
|
||||
"temperature_zone_3": {
|
||||
"name": "Temperature zone 3"
|
||||
},
|
||||
"water_consumption": {
|
||||
"name": "Water consumption"
|
||||
},
|
||||
"core_temperature": {
|
||||
"name": "Core temperature"
|
||||
},
|
||||
|
534
tests/components/miele/fixtures/5_devices.json
Normal file
534
tests/components/miele/fixtures/5_devices.json
Normal file
@ -0,0 +1,534 @@
|
||||
{
|
||||
"Dummy_Appliance_1": {
|
||||
"ident": {
|
||||
"type": {
|
||||
"key_localized": "Device type",
|
||||
"value_raw": 20,
|
||||
"value_localized": "Freezer"
|
||||
},
|
||||
"deviceName": "",
|
||||
"protocolVersion": 201,
|
||||
"deviceIdentLabel": {
|
||||
"fabNumber": "Dummy_Appliance_1",
|
||||
"fabIndex": "21",
|
||||
"techType": "FNS 28463 E ed/",
|
||||
"matNumber": "10805070",
|
||||
"swids": ["4497"]
|
||||
},
|
||||
"xkmIdentLabel": {
|
||||
"techType": "EK042",
|
||||
"releaseVersion": "31.17"
|
||||
}
|
||||
},
|
||||
"state": {
|
||||
"ProgramID": {
|
||||
"value_raw": 0,
|
||||
"value_localized": "",
|
||||
"key_localized": "Program name"
|
||||
},
|
||||
"status": {
|
||||
"value_raw": 5,
|
||||
"value_localized": "In use",
|
||||
"key_localized": "status"
|
||||
},
|
||||
"programType": {
|
||||
"value_raw": 0,
|
||||
"value_localized": "",
|
||||
"key_localized": "Program type"
|
||||
},
|
||||
"programPhase": {
|
||||
"value_raw": 0,
|
||||
"value_localized": "",
|
||||
"key_localized": "Program phase"
|
||||
},
|
||||
"remainingTime": [0, 0],
|
||||
"startTime": [],
|
||||
"targetTemperature": [
|
||||
{
|
||||
"value_raw": -1800,
|
||||
"value_localized": -18,
|
||||
"unit": "Celsius"
|
||||
},
|
||||
{
|
||||
"value_raw": -32768,
|
||||
"value_localized": null,
|
||||
"unit": "Celsius"
|
||||
},
|
||||
{
|
||||
"value_raw": -32768,
|
||||
"value_localized": null,
|
||||
"unit": "Celsius"
|
||||
}
|
||||
],
|
||||
"coreTargetTemperature": [],
|
||||
"temperature": [
|
||||
{
|
||||
"value_raw": -1800,
|
||||
"value_localized": -18,
|
||||
"unit": "Celsius"
|
||||
},
|
||||
{
|
||||
"value_raw": -32768,
|
||||
"value_localized": null,
|
||||
"unit": "Celsius"
|
||||
},
|
||||
{
|
||||
"value_raw": -32768,
|
||||
"value_localized": null,
|
||||
"unit": "Celsius"
|
||||
}
|
||||
],
|
||||
"coreTemperature": [],
|
||||
"signalInfo": false,
|
||||
"signalFailure": false,
|
||||
"signalDoor": false,
|
||||
"remoteEnable": {
|
||||
"fullRemoteControl": true,
|
||||
"smartGrid": false,
|
||||
"mobileStart": false
|
||||
},
|
||||
"ambientLight": null,
|
||||
"light": null,
|
||||
"elapsedTime": [],
|
||||
"spinningSpeed": {
|
||||
"unit": "rpm",
|
||||
"value_raw": null,
|
||||
"value_localized": null,
|
||||
"key_localized": "Spin speed"
|
||||
},
|
||||
"dryingStep": {
|
||||
"value_raw": null,
|
||||
"value_localized": "",
|
||||
"key_localized": "Drying level"
|
||||
},
|
||||
"ventilationStep": {
|
||||
"value_raw": null,
|
||||
"value_localized": "",
|
||||
"key_localized": "Fan level"
|
||||
},
|
||||
"plateStep": [],
|
||||
"ecoFeedback": null,
|
||||
"batteryLevel": null
|
||||
}
|
||||
},
|
||||
"Dummy_Appliance_2": {
|
||||
"ident": {
|
||||
"type": {
|
||||
"key_localized": "Device type",
|
||||
"value_raw": 19,
|
||||
"value_localized": "Refrigerator"
|
||||
},
|
||||
"deviceName": "",
|
||||
"protocolVersion": 201,
|
||||
"deviceIdentLabel": {
|
||||
"fabNumber": "Dummy_Appliance_2",
|
||||
"fabIndex": "17",
|
||||
"techType": "KS 28423 D ed/c",
|
||||
"matNumber": "10804770",
|
||||
"swids": ["4497"]
|
||||
},
|
||||
"xkmIdentLabel": {
|
||||
"techType": "EK042",
|
||||
"releaseVersion": "31.17"
|
||||
}
|
||||
},
|
||||
"state": {
|
||||
"ProgramID": {
|
||||
"value_raw": 0,
|
||||
"value_localized": "",
|
||||
"key_localized": "Program name"
|
||||
},
|
||||
"status": {
|
||||
"value_raw": 5,
|
||||
"value_localized": "In use",
|
||||
"key_localized": "status"
|
||||
},
|
||||
"programType": {
|
||||
"value_raw": 0,
|
||||
"value_localized": "",
|
||||
"key_localized": "Program type"
|
||||
},
|
||||
"programPhase": {
|
||||
"value_raw": 0,
|
||||
"value_localized": "",
|
||||
"key_localized": "Program phase"
|
||||
},
|
||||
"remainingTime": [0, 0],
|
||||
"startTime": [0, 0],
|
||||
"targetTemperature": [
|
||||
{
|
||||
"value_raw": 400,
|
||||
"value_localized": 4,
|
||||
"unit": "Celsius"
|
||||
},
|
||||
{
|
||||
"value_raw": -32768,
|
||||
"value_localized": null,
|
||||
"unit": "Celsius"
|
||||
},
|
||||
{
|
||||
"value_raw": -32768,
|
||||
"value_localized": null,
|
||||
"unit": "Celsius"
|
||||
}
|
||||
],
|
||||
"coreTargetTemperature": [],
|
||||
"temperature": [
|
||||
{
|
||||
"value_raw": 400,
|
||||
"value_localized": 4,
|
||||
"unit": "Celsius"
|
||||
},
|
||||
{
|
||||
"value_raw": -32768,
|
||||
"value_localized": null,
|
||||
"unit": "Celsius"
|
||||
},
|
||||
{
|
||||
"value_raw": -32768,
|
||||
"value_localized": null,
|
||||
"unit": "Celsius"
|
||||
}
|
||||
],
|
||||
"coreTemperature": [],
|
||||
"signalInfo": false,
|
||||
"signalFailure": false,
|
||||
"signalDoor": false,
|
||||
"remoteEnable": {
|
||||
"fullRemoteControl": true,
|
||||
"smartGrid": false,
|
||||
"mobileStart": false
|
||||
},
|
||||
"ambientLight": null,
|
||||
"light": null,
|
||||
"elapsedTime": [],
|
||||
"spinningSpeed": {
|
||||
"unit": "rpm",
|
||||
"value_raw": null,
|
||||
"value_localized": null,
|
||||
"key_localized": "Spin speed"
|
||||
},
|
||||
"dryingStep": {
|
||||
"value_raw": null,
|
||||
"value_localized": "",
|
||||
"key_localized": "Drying level"
|
||||
},
|
||||
"ventilationStep": {
|
||||
"value_raw": null,
|
||||
"value_localized": "",
|
||||
"key_localized": "Fan level"
|
||||
},
|
||||
"plateStep": [],
|
||||
"ecoFeedback": null,
|
||||
"batteryLevel": null
|
||||
}
|
||||
},
|
||||
"Dummy_Appliance_3": {
|
||||
"ident": {
|
||||
"type": {
|
||||
"key_localized": "Device type",
|
||||
"value_raw": 1,
|
||||
"value_localized": "Washing machine"
|
||||
},
|
||||
"deviceName": "",
|
||||
"protocolVersion": 4,
|
||||
"deviceIdentLabel": {
|
||||
"fabNumber": "Dummy_Appliance_3",
|
||||
"fabIndex": "44",
|
||||
"techType": "WCI870",
|
||||
"matNumber": "11387290",
|
||||
"swids": [
|
||||
"5975",
|
||||
"20456",
|
||||
"25213",
|
||||
"25191",
|
||||
"25446",
|
||||
"25205",
|
||||
"25447",
|
||||
"25319"
|
||||
]
|
||||
},
|
||||
"xkmIdentLabel": {
|
||||
"techType": "EK057",
|
||||
"releaseVersion": "08.32"
|
||||
}
|
||||
},
|
||||
"state": {
|
||||
"ProgramID": {
|
||||
"value_raw": 0,
|
||||
"value_localized": "",
|
||||
"key_localized": "Program name"
|
||||
},
|
||||
"status": {
|
||||
"value_raw": 1,
|
||||
"value_localized": "Off",
|
||||
"key_localized": "status"
|
||||
},
|
||||
"programType": {
|
||||
"value_raw": 0,
|
||||
"value_localized": "",
|
||||
"key_localized": "Program type"
|
||||
},
|
||||
"programPhase": {
|
||||
"value_raw": 0,
|
||||
"value_localized": "",
|
||||
"key_localized": "Program phase"
|
||||
},
|
||||
"remainingTime": [0, 0],
|
||||
"startTime": [0, 0],
|
||||
"targetTemperature": [
|
||||
{
|
||||
"value_raw": -32768,
|
||||
"value_localized": null,
|
||||
"unit": "Celsius"
|
||||
},
|
||||
{
|
||||
"value_raw": -32768,
|
||||
"value_localized": null,
|
||||
"unit": "Celsius"
|
||||
},
|
||||
{
|
||||
"value_raw": -32768,
|
||||
"value_localized": null,
|
||||
"unit": "Celsius"
|
||||
}
|
||||
],
|
||||
"coreTargetTemperature": [
|
||||
{
|
||||
"value_raw": -32768,
|
||||
"value_localized": null,
|
||||
"unit": "Celsius"
|
||||
}
|
||||
],
|
||||
"temperature": [
|
||||
{
|
||||
"value_raw": -32768,
|
||||
"value_localized": null,
|
||||
"unit": "Celsius"
|
||||
},
|
||||
{
|
||||
"value_raw": -32768,
|
||||
"value_localized": null,
|
||||
"unit": "Celsius"
|
||||
},
|
||||
{
|
||||
"value_raw": -32768,
|
||||
"value_localized": null,
|
||||
"unit": "Celsius"
|
||||
}
|
||||
],
|
||||
"coreTemperature": [
|
||||
{
|
||||
"value_raw": -32768,
|
||||
"value_localized": null,
|
||||
"unit": "Celsius"
|
||||
}
|
||||
],
|
||||
"signalInfo": false,
|
||||
"signalFailure": false,
|
||||
"signalDoor": true,
|
||||
"remoteEnable": {
|
||||
"fullRemoteControl": true,
|
||||
"smartGrid": false,
|
||||
"mobileStart": false
|
||||
},
|
||||
"ambientLight": null,
|
||||
"light": null,
|
||||
"elapsedTime": [0, 0],
|
||||
"spinningSpeed": {
|
||||
"unit": "rpm",
|
||||
"value_raw": null,
|
||||
"value_localized": null,
|
||||
"key_localized": "Spin speed"
|
||||
},
|
||||
"dryingStep": {
|
||||
"value_raw": null,
|
||||
"value_localized": "",
|
||||
"key_localized": "Drying level"
|
||||
},
|
||||
"ventilationStep": {
|
||||
"value_raw": null,
|
||||
"value_localized": "",
|
||||
"key_localized": "Fan level"
|
||||
},
|
||||
"plateStep": [],
|
||||
"ecoFeedback": null,
|
||||
"batteryLevel": null
|
||||
}
|
||||
},
|
||||
"Dummy_Appliance_4": {
|
||||
"ident": {
|
||||
"type": {
|
||||
"key_localized": "Device type",
|
||||
"value_raw": 12,
|
||||
"value_localized": "Oven"
|
||||
},
|
||||
"deviceName": "",
|
||||
"protocolVersion": 4,
|
||||
"deviceIdentLabel": {
|
||||
"fabNumber": "",
|
||||
"fabIndex": "00",
|
||||
"techType": "H7264B",
|
||||
"matNumber": "",
|
||||
"swids": ["swid00"]
|
||||
},
|
||||
"xkmIdentLabel": { "techType": "EK057", "releaseVersion": "08.21" }
|
||||
},
|
||||
"state": {
|
||||
"ProgramID": {
|
||||
"value_raw": 13,
|
||||
"value_localized": "Fan plus",
|
||||
"key_localized": "Program name"
|
||||
},
|
||||
"status": {
|
||||
"value_raw": 3,
|
||||
"value_localized": "Programmed",
|
||||
"key_localized": "status"
|
||||
},
|
||||
"programType": {
|
||||
"value_raw": 1,
|
||||
"value_localized": "Own program",
|
||||
"key_localized": "Program type"
|
||||
},
|
||||
"programPhase": {
|
||||
"value_raw": 0,
|
||||
"value_localized": "",
|
||||
"key_localized": "Program phase"
|
||||
},
|
||||
"remainingTime": [0, 0],
|
||||
"startTime": [0, 0],
|
||||
"targetTemperature": [
|
||||
{ "value_raw": 18000, "value_localized": "180.0", "unit": "Celsius" },
|
||||
{ "value_raw": -32768, "value_localized": null, "unit": "Celsius" },
|
||||
{ "value_raw": -32768, "value_localized": null, "unit": "Celsius" }
|
||||
],
|
||||
"temperature": [
|
||||
{ "value_raw": -32768, "value_localized": null, "unit": "Celsius" },
|
||||
{ "value_raw": -32768, "value_localized": null, "unit": "Celsius" },
|
||||
{ "value_raw": -32768, "value_localized": null, "unit": "Celsius" }
|
||||
],
|
||||
"signalInfo": false,
|
||||
"signalFailure": false,
|
||||
"signalDoor": false,
|
||||
"remoteEnable": {
|
||||
"fullRemoteControl": true,
|
||||
"smartGrid": false,
|
||||
"mobileStart": false
|
||||
},
|
||||
"ambientLight": null,
|
||||
"light": 2,
|
||||
"elapsedTime": [0, 0],
|
||||
"spinningSpeed": {
|
||||
"unit": "rpm",
|
||||
"value_raw": null,
|
||||
"value_localized": null,
|
||||
"key_localized": "Spin speed"
|
||||
},
|
||||
"dryingStep": {
|
||||
"value_raw": null,
|
||||
"value_localized": "",
|
||||
"key_localized": "Drying level"
|
||||
},
|
||||
"ventilationStep": {
|
||||
"value_raw": null,
|
||||
"value_localized": "",
|
||||
"key_localized": "Fan level"
|
||||
},
|
||||
"plateStep": [],
|
||||
"ecoFeedback": null,
|
||||
"batteryLevel": null
|
||||
}
|
||||
},
|
||||
"Dummy_Appliance_5": {
|
||||
"ident": {
|
||||
"type": {
|
||||
"key_localized": "Device type",
|
||||
"value_raw": 7,
|
||||
"value_localized": "Dishwasher"
|
||||
},
|
||||
"deviceName": "",
|
||||
"protocolVersion": 2,
|
||||
"deviceIdentLabel": {
|
||||
"fabNumber": "<fabNumber5>",
|
||||
"fabIndex": "64",
|
||||
"techType": "G6865-W",
|
||||
"matNumber": "<matNumber1>",
|
||||
"swids": ["<swid1>", "<swid2>", "<swid3>", "<...>"]
|
||||
},
|
||||
"xkmIdentLabel": { "techType": "EK039W", "releaseVersion": "02.72" }
|
||||
},
|
||||
"state": {
|
||||
"ProgramID": {
|
||||
"value_raw": 99938,
|
||||
"value_localized": "QuickPowerWash",
|
||||
"key_localized": "Program name"
|
||||
},
|
||||
"status": {
|
||||
"value_raw": 5,
|
||||
"value_localized": "In use",
|
||||
"key_localized": "status"
|
||||
},
|
||||
"programType": {
|
||||
"value_raw": 9992,
|
||||
"value_localized": "Automatic programme",
|
||||
"key_localized": "Program type"
|
||||
},
|
||||
"programPhase": {
|
||||
"value_raw": 9991799,
|
||||
"value_localized": "Drying",
|
||||
"key_localized": "Program phase"
|
||||
},
|
||||
"remainingTime": [0, 15],
|
||||
"startTime": [0, 0],
|
||||
"targetTemperature": [
|
||||
{ "value_raw": -32768, "value_localized": null, "unit": "Celsius" }
|
||||
],
|
||||
"temperature": [
|
||||
{ "value_raw": -32768, "value_localized": null, "unit": "Celsius" },
|
||||
{ "value_raw": -32768, "value_localized": null, "unit": "Celsius" },
|
||||
{ "value_raw": -32768, "value_localized": null, "unit": "Celsius" }
|
||||
],
|
||||
"signalInfo": false,
|
||||
"signalFailure": false,
|
||||
"signalDoor": false,
|
||||
"remoteEnable": {
|
||||
"fullRemoteControl": true,
|
||||
"smartGrid": false,
|
||||
"mobileStart": false
|
||||
},
|
||||
"ambientLight": null,
|
||||
"light": null,
|
||||
"elapsedTime": [0, 59],
|
||||
"spinningSpeed": {
|
||||
"unit": "rpm",
|
||||
"value_raw": null,
|
||||
"value_localized": null,
|
||||
"key_localized": "Spin speed"
|
||||
},
|
||||
"dryingStep": {
|
||||
"value_raw": null,
|
||||
"value_localized": "",
|
||||
"key_localized": "Drying level"
|
||||
},
|
||||
"ventilationStep": {
|
||||
"value_raw": null,
|
||||
"value_localized": "",
|
||||
"key_localized": "Fan level"
|
||||
},
|
||||
"plateStep": [],
|
||||
"ecoFeedback": {
|
||||
"currentWaterConsumption": {
|
||||
"unit": "l",
|
||||
"value": 12
|
||||
},
|
||||
"currentEnergyConsumption": {
|
||||
"unit": "kWh",
|
||||
"value": 1.4
|
||||
},
|
||||
"waterForecast": 0.2,
|
||||
"energyForecast": 0.1
|
||||
},
|
||||
"batteryLevel": null
|
||||
}
|
||||
}
|
||||
}
|
@ -6,24 +6,24 @@
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'options': list([
|
||||
'autocleaning',
|
||||
'failure',
|
||||
'idle',
|
||||
'in_use',
|
||||
'not_connected',
|
||||
'off',
|
||||
'on',
|
||||
'programmed',
|
||||
'waiting_to_start',
|
||||
'in_use',
|
||||
'pause',
|
||||
'program_ended',
|
||||
'failure',
|
||||
'program_interrupted',
|
||||
'idle',
|
||||
'programmed',
|
||||
'rinse_hold',
|
||||
'service',
|
||||
'superfreezing',
|
||||
'supercooling',
|
||||
'superheating',
|
||||
'supercooling_superfreezing',
|
||||
'autocleaning',
|
||||
'not_connected',
|
||||
'superfreezing',
|
||||
'superheating',
|
||||
'waiting_to_start',
|
||||
]),
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
@ -61,24 +61,24 @@
|
||||
'friendly_name': 'Freezer',
|
||||
'icon': 'mdi:fridge-industrial-outline',
|
||||
'options': list([
|
||||
'autocleaning',
|
||||
'failure',
|
||||
'idle',
|
||||
'in_use',
|
||||
'not_connected',
|
||||
'off',
|
||||
'on',
|
||||
'programmed',
|
||||
'waiting_to_start',
|
||||
'in_use',
|
||||
'pause',
|
||||
'program_ended',
|
||||
'failure',
|
||||
'program_interrupted',
|
||||
'idle',
|
||||
'programmed',
|
||||
'rinse_hold',
|
||||
'service',
|
||||
'superfreezing',
|
||||
'supercooling',
|
||||
'superheating',
|
||||
'supercooling_superfreezing',
|
||||
'autocleaning',
|
||||
'not_connected',
|
||||
'superfreezing',
|
||||
'superheating',
|
||||
'waiting_to_start',
|
||||
]),
|
||||
}),
|
||||
'context': <ANY>,
|
||||
@ -148,24 +148,24 @@
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'options': list([
|
||||
'autocleaning',
|
||||
'failure',
|
||||
'idle',
|
||||
'in_use',
|
||||
'not_connected',
|
||||
'off',
|
||||
'on',
|
||||
'programmed',
|
||||
'waiting_to_start',
|
||||
'in_use',
|
||||
'pause',
|
||||
'program_ended',
|
||||
'failure',
|
||||
'program_interrupted',
|
||||
'idle',
|
||||
'programmed',
|
||||
'rinse_hold',
|
||||
'service',
|
||||
'superfreezing',
|
||||
'supercooling',
|
||||
'superheating',
|
||||
'supercooling_superfreezing',
|
||||
'autocleaning',
|
||||
'not_connected',
|
||||
'superfreezing',
|
||||
'superheating',
|
||||
'waiting_to_start',
|
||||
]),
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
@ -203,24 +203,24 @@
|
||||
'friendly_name': 'Hood',
|
||||
'icon': 'mdi:turbine',
|
||||
'options': list([
|
||||
'autocleaning',
|
||||
'failure',
|
||||
'idle',
|
||||
'in_use',
|
||||
'not_connected',
|
||||
'off',
|
||||
'on',
|
||||
'programmed',
|
||||
'waiting_to_start',
|
||||
'in_use',
|
||||
'pause',
|
||||
'program_ended',
|
||||
'failure',
|
||||
'program_interrupted',
|
||||
'idle',
|
||||
'programmed',
|
||||
'rinse_hold',
|
||||
'service',
|
||||
'superfreezing',
|
||||
'supercooling',
|
||||
'superheating',
|
||||
'supercooling_superfreezing',
|
||||
'autocleaning',
|
||||
'not_connected',
|
||||
'superfreezing',
|
||||
'superheating',
|
||||
'waiting_to_start',
|
||||
]),
|
||||
}),
|
||||
'context': <ANY>,
|
||||
@ -238,24 +238,24 @@
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'options': list([
|
||||
'autocleaning',
|
||||
'failure',
|
||||
'idle',
|
||||
'in_use',
|
||||
'not_connected',
|
||||
'off',
|
||||
'on',
|
||||
'programmed',
|
||||
'waiting_to_start',
|
||||
'in_use',
|
||||
'pause',
|
||||
'program_ended',
|
||||
'failure',
|
||||
'program_interrupted',
|
||||
'idle',
|
||||
'programmed',
|
||||
'rinse_hold',
|
||||
'service',
|
||||
'superfreezing',
|
||||
'supercooling',
|
||||
'superheating',
|
||||
'supercooling_superfreezing',
|
||||
'autocleaning',
|
||||
'not_connected',
|
||||
'superfreezing',
|
||||
'superheating',
|
||||
'waiting_to_start',
|
||||
]),
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
@ -293,24 +293,24 @@
|
||||
'friendly_name': 'Refrigerator',
|
||||
'icon': 'mdi:fridge-industrial-outline',
|
||||
'options': list([
|
||||
'autocleaning',
|
||||
'failure',
|
||||
'idle',
|
||||
'in_use',
|
||||
'not_connected',
|
||||
'off',
|
||||
'on',
|
||||
'programmed',
|
||||
'waiting_to_start',
|
||||
'in_use',
|
||||
'pause',
|
||||
'program_ended',
|
||||
'failure',
|
||||
'program_interrupted',
|
||||
'idle',
|
||||
'programmed',
|
||||
'rinse_hold',
|
||||
'service',
|
||||
'superfreezing',
|
||||
'supercooling',
|
||||
'superheating',
|
||||
'supercooling_superfreezing',
|
||||
'autocleaning',
|
||||
'not_connected',
|
||||
'superfreezing',
|
||||
'superheating',
|
||||
'waiting_to_start',
|
||||
]),
|
||||
}),
|
||||
'context': <ANY>,
|
||||
@ -380,24 +380,24 @@
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'options': list([
|
||||
'autocleaning',
|
||||
'failure',
|
||||
'idle',
|
||||
'in_use',
|
||||
'not_connected',
|
||||
'off',
|
||||
'on',
|
||||
'programmed',
|
||||
'waiting_to_start',
|
||||
'in_use',
|
||||
'pause',
|
||||
'program_ended',
|
||||
'failure',
|
||||
'program_interrupted',
|
||||
'idle',
|
||||
'programmed',
|
||||
'rinse_hold',
|
||||
'service',
|
||||
'superfreezing',
|
||||
'supercooling',
|
||||
'superheating',
|
||||
'supercooling_superfreezing',
|
||||
'autocleaning',
|
||||
'not_connected',
|
||||
'superfreezing',
|
||||
'superheating',
|
||||
'waiting_to_start',
|
||||
]),
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
@ -435,24 +435,24 @@
|
||||
'friendly_name': 'Washing machine',
|
||||
'icon': 'mdi:washing-machine',
|
||||
'options': list([
|
||||
'autocleaning',
|
||||
'failure',
|
||||
'idle',
|
||||
'in_use',
|
||||
'not_connected',
|
||||
'off',
|
||||
'on',
|
||||
'programmed',
|
||||
'waiting_to_start',
|
||||
'in_use',
|
||||
'pause',
|
||||
'program_ended',
|
||||
'failure',
|
||||
'program_interrupted',
|
||||
'idle',
|
||||
'programmed',
|
||||
'rinse_hold',
|
||||
'service',
|
||||
'superfreezing',
|
||||
'supercooling',
|
||||
'superheating',
|
||||
'supercooling_superfreezing',
|
||||
'autocleaning',
|
||||
'not_connected',
|
||||
'superfreezing',
|
||||
'superheating',
|
||||
'waiting_to_start',
|
||||
]),
|
||||
}),
|
||||
'context': <ANY>,
|
||||
@ -463,3 +463,430 @@
|
||||
'state': 'off',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_states[platforms0][sensor.washing_machine_energy_consumption-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.washing_machine_energy_consumption',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.ENERGY: 'energy'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Energy consumption',
|
||||
'platform': 'miele',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'energy_consumption',
|
||||
'unique_id': 'Dummy_Appliance_3-current_energy_consumption',
|
||||
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_states[platforms0][sensor.washing_machine_energy_consumption-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'energy',
|
||||
'friendly_name': 'Washing machine Energy consumption',
|
||||
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
|
||||
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.washing_machine_energy_consumption',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '0.0',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_states[platforms0][sensor.washing_machine_program-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'options': list([
|
||||
'automatic_plus',
|
||||
'clean_machine',
|
||||
'cool_air',
|
||||
'cottons',
|
||||
'cottons_eco',
|
||||
'cottons_hygiene',
|
||||
'curtains',
|
||||
'dark_garments',
|
||||
'delicates',
|
||||
'denim',
|
||||
'down_duvets',
|
||||
'down_filled_items',
|
||||
'drain_spin',
|
||||
'eco_40_60',
|
||||
'express_20',
|
||||
'first_wash',
|
||||
'freshen_up',
|
||||
'minimum_iron',
|
||||
'no_program',
|
||||
'outerwear',
|
||||
'pillows',
|
||||
'proofing',
|
||||
'quick_power_wash',
|
||||
'rinse',
|
||||
'rinse_out_lint',
|
||||
'separate_rinse_starch',
|
||||
'shirts',
|
||||
'silks',
|
||||
'sportswear',
|
||||
'starch',
|
||||
'steam_care',
|
||||
'trainers',
|
||||
'warm_air',
|
||||
'woollens',
|
||||
]),
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'sensor.washing_machine_program',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Program',
|
||||
'platform': 'miele',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'program_id',
|
||||
'unique_id': 'Dummy_Appliance_3-state_program_id',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_states[platforms0][sensor.washing_machine_program-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'enum',
|
||||
'friendly_name': 'Washing machine Program',
|
||||
'options': list([
|
||||
'automatic_plus',
|
||||
'clean_machine',
|
||||
'cool_air',
|
||||
'cottons',
|
||||
'cottons_eco',
|
||||
'cottons_hygiene',
|
||||
'curtains',
|
||||
'dark_garments',
|
||||
'delicates',
|
||||
'denim',
|
||||
'down_duvets',
|
||||
'down_filled_items',
|
||||
'drain_spin',
|
||||
'eco_40_60',
|
||||
'express_20',
|
||||
'first_wash',
|
||||
'freshen_up',
|
||||
'minimum_iron',
|
||||
'no_program',
|
||||
'outerwear',
|
||||
'pillows',
|
||||
'proofing',
|
||||
'quick_power_wash',
|
||||
'rinse',
|
||||
'rinse_out_lint',
|
||||
'separate_rinse_starch',
|
||||
'shirts',
|
||||
'silks',
|
||||
'sportswear',
|
||||
'starch',
|
||||
'steam_care',
|
||||
'trainers',
|
||||
'warm_air',
|
||||
'woollens',
|
||||
]),
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.washing_machine_program',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'no_program',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_states[platforms0][sensor.washing_machine_program_phase-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'options': list([
|
||||
'anti_crease',
|
||||
'cleaning',
|
||||
'cooling_down',
|
||||
'disinfecting',
|
||||
'drain',
|
||||
'drying',
|
||||
'finished',
|
||||
'freshen_up_and_moisten',
|
||||
'hygiene',
|
||||
'main_wash',
|
||||
'not_running',
|
||||
'pre_wash',
|
||||
'rinse',
|
||||
'rinse_hold',
|
||||
'soak',
|
||||
'spin',
|
||||
'starch_stop',
|
||||
'steam_smoothing',
|
||||
'venting',
|
||||
]),
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'sensor.washing_machine_program_phase',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Program phase',
|
||||
'platform': 'miele',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'program_phase',
|
||||
'unique_id': 'Dummy_Appliance_3-state_program_phase',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_states[platforms0][sensor.washing_machine_program_phase-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'enum',
|
||||
'friendly_name': 'Washing machine Program phase',
|
||||
'options': list([
|
||||
'anti_crease',
|
||||
'cleaning',
|
||||
'cooling_down',
|
||||
'disinfecting',
|
||||
'drain',
|
||||
'drying',
|
||||
'finished',
|
||||
'freshen_up_and_moisten',
|
||||
'hygiene',
|
||||
'main_wash',
|
||||
'not_running',
|
||||
'pre_wash',
|
||||
'rinse',
|
||||
'rinse_hold',
|
||||
'soak',
|
||||
'spin',
|
||||
'starch_stop',
|
||||
'steam_smoothing',
|
||||
'venting',
|
||||
]),
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.washing_machine_program_phase',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'not_running',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_states[platforms0][sensor.washing_machine_program_type-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'options': list([
|
||||
'automatic_program',
|
||||
'cleaning_care_program',
|
||||
'maintenance_program',
|
||||
'normal_operation_mode',
|
||||
'own_program',
|
||||
]),
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.washing_machine_program_type',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Program type',
|
||||
'platform': 'miele',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'program_type',
|
||||
'unique_id': 'Dummy_Appliance_3-state_program_type',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_states[platforms0][sensor.washing_machine_program_type-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'enum',
|
||||
'friendly_name': 'Washing machine Program type',
|
||||
'options': list([
|
||||
'automatic_program',
|
||||
'cleaning_care_program',
|
||||
'maintenance_program',
|
||||
'normal_operation_mode',
|
||||
'own_program',
|
||||
]),
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.washing_machine_program_type',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'normal_operation_mode',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_states[platforms0][sensor.washing_machine_spin_speed-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.washing_machine_spin_speed',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': None,
|
||||
'original_icon': None,
|
||||
'original_name': 'Spin speed',
|
||||
'platform': 'miele',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'spin_speed',
|
||||
'unique_id': 'Dummy_Appliance_3-state_spinning_speed',
|
||||
'unit_of_measurement': 'rpm',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_states[platforms0][sensor.washing_machine_spin_speed-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'friendly_name': 'Washing machine Spin speed',
|
||||
'unit_of_measurement': 'rpm',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.washing_machine_spin_speed',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'unknown',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_states[platforms0][sensor.washing_machine_water_consumption-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.washing_machine_water_consumption',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.WATER: 'water'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Water consumption',
|
||||
'platform': 'miele',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'water_consumption',
|
||||
'unique_id': 'Dummy_Appliance_3-current_water_consumption',
|
||||
'unit_of_measurement': <UnitOfVolume.LITERS: 'L'>,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_states[platforms0][sensor.washing_machine_water_consumption-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'water',
|
||||
'friendly_name': 'Washing machine Water consumption',
|
||||
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
|
||||
'unit_of_measurement': <UnitOfVolume.LITERS: 'L'>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.washing_machine_water_consumption',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '0.0',
|
||||
})
|
||||
# ---
|
||||
|
@ -5,14 +5,14 @@ from unittest.mock import MagicMock
|
||||
import pytest
|
||||
from syrupy import SnapshotAssertion
|
||||
|
||||
from homeassistant.const import Platform
|
||||
from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers import entity_registry as er
|
||||
|
||||
from tests.common import MockConfigEntry, snapshot_platform
|
||||
|
||||
|
||||
@pytest.mark.parametrize("platforms", [(Platform.SENSOR,)])
|
||||
@pytest.mark.parametrize("platforms", [(SENSOR_DOMAIN,)])
|
||||
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
||||
async def test_sensor_states(
|
||||
hass: HomeAssistant,
|
||||
|
Loading…
x
Reference in New Issue
Block a user