mirror of
https://github.com/Andre0512/hon.git
synced 2025-05-24 03:36:51 -04:00
Use names for some td entities, fix #36
This commit is contained in:
parent
7e40afae68
commit
dae8b48075
22 changed files with 3039 additions and 306 deletions
scripts
|
@ -7,151 +7,41 @@ from pathlib import Path
|
|||
|
||||
from pyhon import HonAPI
|
||||
|
||||
# These languages are official supported by hOn
|
||||
LANGUAGES = [
|
||||
"cs", # Czech
|
||||
"de", # German
|
||||
"el", # Greek
|
||||
"en", # English
|
||||
"es", # Spanish
|
||||
"fr", # French
|
||||
"he", # Hebrew
|
||||
"hr", # Croatian
|
||||
"it", # Italian
|
||||
"nl", # Dutch
|
||||
"pl", # Polish
|
||||
"pt", # Portuguese
|
||||
"ro", # Romanian
|
||||
"ru", # Russian
|
||||
"sk", # Slovak
|
||||
"sl", # Slovenian
|
||||
"sr", # Serbian
|
||||
"tr", # Turkish
|
||||
"zh", # Chinese
|
||||
]
|
||||
|
||||
WASHING_PR_PHASE = {
|
||||
0: "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
||||
1: "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
||||
2: "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
||||
3: "WASHING_CMD&CTRL.PHASE_SPIN.TITLE",
|
||||
4: "WASHING_CMD&CTRL.PHASE_RINSE.TITLE",
|
||||
5: "WASHING_CMD&CTRL.PHASE_RINSE.TITLE",
|
||||
6: "WASHING_CMD&CTRL.PHASE_RINSE.TITLE",
|
||||
7: "WASHING_CMD&CTRL.PHASE_DRYING.TITLE",
|
||||
9: "WASHING_CMD&CTRL.PHASE_STEAM.TITLE",
|
||||
10: "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
||||
11: "WASHING_CMD&CTRL.PHASE_SPIN.TITLE",
|
||||
12: "WASHING_CMD&CTRL.PHASE_WEIGHTING.TITLE",
|
||||
13: "WASHING_CMD&CTRL.PHASE_WEIGHTING.TITLE",
|
||||
14: "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
||||
15: "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
||||
16: "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
||||
17: "WASHING_CMD&CTRL.PHASE_RINSE.TITLE",
|
||||
18: "WASHING_CMD&CTRL.PHASE_RINSE.TITLE",
|
||||
19: "WASHING_CMD&CTRL.PHASE_SCHEDULED.TITLE",
|
||||
20: "WASHING_CMD&CTRL.PHASE_TUMBLING.TITLE",
|
||||
24: "WASHING_CMD&CTRL.PHASE_REFRESH.TITLE",
|
||||
25: "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
||||
26: "WASHING_CMD&CTRL.PHASE_HEATING.TITLE",
|
||||
27: "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
||||
}
|
||||
MACH_MODE = {
|
||||
0: "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
||||
1: "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
||||
3: "WASHING_CMD&CTRL.PHASE_PAUSE.TITLE",
|
||||
4: "WASHING_CMD&CTRL.PHASE_SCHEDULED.TITLE",
|
||||
5: "WASHING_CMD&CTRL.PHASE_SCHEDULED.TITLE",
|
||||
6: "WASHING_CMD&CTRL.PHASE_ERROR.TITLE",
|
||||
7: "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
||||
}
|
||||
TUMBLE_DRYER_PR_PHASE = {
|
||||
0: "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
||||
1: "TD_CMD&CTRL.STATUS_PHASE.PHASE_HEAT_STROKE",
|
||||
2: "WASHING_CMD&CTRL.PHASE_DRYING.TITLE",
|
||||
3: "TD_CMD&CTRL.STATUS_PHASE.PHASE_COOLDOWN",
|
||||
13: "TD_CMD&CTRL.STATUS_PHASE.PHASE_COOLDOWN",
|
||||
14: "TD_CMD&CTRL.STATUS_PHASE.PHASE_HEAT_STROKE",
|
||||
15: "TD_CMD&CTRL.STATUS_PHASE.PHASE_HEAT_STROKE",
|
||||
16: "TD_CMD&CTRL.STATUS_PHASE.PHASE_COOLDOWN",
|
||||
18: "WASHING_CMD&CTRL.PHASE_TUMBLING.DASHBOARD_TITLE",
|
||||
19: "WASHING_CMD&CTRL.PHASE_DRYING.TITLE",
|
||||
20: "WASHING_CMD&CTRL.PHASE_DRYING.TITLE",
|
||||
}
|
||||
DISHWASHER_PR_PHASE = {
|
||||
0: "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
||||
1: "WASHING_CMD&CTRL.PHASE_PREWASH.TITLE",
|
||||
2: "WASHING_CMD&CTRL.PHASE_WASHING.TITLE",
|
||||
3: "WASHING_CMD&CTRL.PHASE_RINSE.TITLE",
|
||||
4: "WASHING_CMD&CTRL.PHASE_DRYING.TITLE",
|
||||
5: "WASHING_CMD&CTRL.PHASE_READY.TITLE",
|
||||
6: "WASHING_CMD&CTRL.PHASE_HOT_RINSE.TITLE",
|
||||
}
|
||||
|
||||
TUMBLE_DRYER_DRY_LEVEL = {
|
||||
0: "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.NO_DRY",
|
||||
1: "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.IRON_DRY",
|
||||
2: "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.NO_DRY_IRON_TITLE",
|
||||
3: "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.CUPBOARD_DRY_TITLE",
|
||||
4: "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.EXTRA_DRY_TITLE",
|
||||
12: "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OPTIONS_VALUES_DESCRIPTION.IRON_DRY",
|
||||
13: "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.CUPBOARD_DRY_TITLE",
|
||||
14: "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.READY_TO_WEAR_TITLE",
|
||||
15: "WASHING_CMD&CTRL.GUIDED_WASHING_SYMBOLS_DRYING.EXTRA_DRY_TITLE",
|
||||
}
|
||||
|
||||
AC_MACH_MODE = {
|
||||
0: "PROGRAMS.AC.IOT_AUTO",
|
||||
1: "PROGRAMS.AC.IOT_COOL",
|
||||
2: "PROGRAMS.AC.IOT_COOL",
|
||||
3: "PROGRAMS.AC.IOT_DRY",
|
||||
4: "PROGRAMS.AC.IOT_HEAT",
|
||||
5: "PROGRAMS.AC.IOT_FAN",
|
||||
6: "PROGRAMS.AC.IOT_FAN",
|
||||
}
|
||||
|
||||
AC_FAN_MODE = {
|
||||
1: "AC.PROGRAM_CARD.WIND_SPEED_HIGH",
|
||||
2: "AC.PROGRAM_CARD.WIND_SPEED_MID",
|
||||
3: "AC.PROGRAM_CARD.WIND_SPEED_LOW",
|
||||
4: "AC.PROGRAM_CARD.WIND_SPEED_AUTO",
|
||||
5: "AC.PROGRAM_CARD.WIND_SPEED_AUTO",
|
||||
}
|
||||
|
||||
AC_HUMAN_SENSE = {
|
||||
0: "AC.PROGRAM_DETAIL.TOUCH_OFF",
|
||||
1: "AC.PROGRAM_DETAIL.AVOID_TOUCH",
|
||||
2: "AC.PROGRAM_DETAIL.FOLLOW_TOUCH",
|
||||
}
|
||||
from custom_components.hon import const
|
||||
|
||||
SENSOR = {
|
||||
"washing_modes": MACH_MODE,
|
||||
"mach_modes_ac": AC_MACH_MODE,
|
||||
"program_phases_wm": WASHING_PR_PHASE,
|
||||
"program_phases_td": TUMBLE_DRYER_PR_PHASE,
|
||||
"program_phases_dw": DISHWASHER_PR_PHASE,
|
||||
"dry_levels": TUMBLE_DRYER_DRY_LEVEL,
|
||||
"washing_modes": const.MACH_MODE,
|
||||
"mach_modes_ac": const.AC_MACH_MODE,
|
||||
"program_phases_wm": const.WASHING_PR_PHASE,
|
||||
"program_phases_td": const.TUMBLE_DRYER_PR_PHASE,
|
||||
"program_phases_dw": const.DISHWASHER_PR_PHASE,
|
||||
"dry_levels": const.TUMBLE_DRYER_DRY_LEVEL,
|
||||
}
|
||||
|
||||
SELECT = {
|
||||
"dry_levels": TUMBLE_DRYER_DRY_LEVEL,
|
||||
"eco_pilot": AC_HUMAN_SENSE,
|
||||
"fan_mode": AC_FAN_MODE,
|
||||
"dry_levels": const.TUMBLE_DRYER_DRY_LEVEL,
|
||||
"eco_pilot": const.AC_HUMAN_SENSE,
|
||||
"fan_mode": const.AC_FAN_MODE,
|
||||
}
|
||||
|
||||
PROGRAMS = {
|
||||
"programs_ac": "PROGRAMS.AC",
|
||||
"programs_dw": "PROGRAMS.DW",
|
||||
"programs_ih": "PROGRAMS.IH",
|
||||
"programs_ov": "PROGRAMS.OV",
|
||||
"programs_td": "PROGRAMS.TD",
|
||||
"programs_wm": "PROGRAMS.WM_WD",
|
||||
"select": {
|
||||
"programs_ac": "PROGRAMS.AC",
|
||||
"programs_dw": "PROGRAMS.DW",
|
||||
"programs_ih": "PROGRAMS.IH",
|
||||
"programs_ov": "PROGRAMS.OV",
|
||||
"programs_td": "PROGRAMS.TD",
|
||||
"programs_wm": "PROGRAMS.WM_WD",
|
||||
},
|
||||
"sensor": {
|
||||
"programs_td": "PROGRAMS.TD",
|
||||
},
|
||||
}
|
||||
|
||||
NAMES = {
|
||||
"switch": {
|
||||
"anti_crease": "HDRY_CMD&CTRL.PROGRAM_CYCLE_DETAIL.ANTICREASE_TITLE",
|
||||
"add_dish": "DW_CMD&CTRL.c.ADD_DISH",
|
||||
"add_dish": "DW.ADD_DISH",
|
||||
"eco_express": "DW_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.ECO",
|
||||
"extra_dry": "DW_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.EXTRA_DRY",
|
||||
"half_load": "DW_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.HALF_LOAD",
|
||||
|
@ -277,7 +167,7 @@ NAMES = {
|
|||
|
||||
|
||||
async def check_translation_files(translations):
|
||||
for language in LANGUAGES:
|
||||
for language in const.LANGUAGES:
|
||||
path = translations / f"{language}.json"
|
||||
if not path.is_file():
|
||||
async with HonAPI(anonymous=True) as hon:
|
||||
|
@ -321,7 +211,7 @@ def load_key(full_key, json_data, fallback=None):
|
|||
result = result.get(key, {})
|
||||
if not result and fallback:
|
||||
return load_key(full_key, fallback)
|
||||
return result or ""
|
||||
return result or full_key
|
||||
|
||||
|
||||
def load_keys(full_key, json_data):
|
||||
|
@ -358,16 +248,17 @@ def main():
|
|||
hon = load_hon_translations()
|
||||
base_path = Path(__file__).parent.parent / "custom_components/hon/translations"
|
||||
fallback = load_json(hon.get("en", ""))
|
||||
for language in LANGUAGES:
|
||||
for language in const.LANGUAGES:
|
||||
original = load_json(hon.get(language, ""))
|
||||
old = load_json(hass.get(language, ""))
|
||||
for name, data in SENSOR.items():
|
||||
add_data(old, original, fallback, data, name)
|
||||
for name, data in SELECT.items():
|
||||
add_data(old, original, fallback, data, name, "select")
|
||||
for name, program in PROGRAMS.items():
|
||||
select = old.setdefault("entity", {}).setdefault("select", {})
|
||||
select.setdefault(name, {})["state"] = load_keys(program, original)
|
||||
for entity, data in PROGRAMS.items():
|
||||
for name, program in data.items():
|
||||
select = old.setdefault("entity", {}).setdefault(entity, {})
|
||||
select.setdefault(name, {})["state"] = load_keys(program, original)
|
||||
for entity, data in NAMES.items():
|
||||
for name, key in data.items():
|
||||
select = old.setdefault("entity", {}).setdefault(entity, {})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue