Auto translate pr phase and mach mode

This commit is contained in:
Andre Basche 2023-04-22 02:47:55 +02:00
parent e0cba7379a
commit aa7b40a454
22 changed files with 2104 additions and 596 deletions

3
.gitignore vendored
View File

@ -1,3 +1,4 @@
__pycache__/
scripts/test.py
.idea/
scripts/translations/
scripts/test*

View File

@ -30,6 +30,12 @@ _LOGGER = logging.getLogger(__name__)
SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
"WM": (
SensorEntityDescription(
key="prPhase",
name="Program Phase",
icon="mdi:washing-machine",
translation_key="program_phases_wm",
),
SensorEntityDescription(
key="totalElectricityUsed",
name="Total Power",
@ -76,7 +82,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
key="machMode",
name="Machine Status",
icon="mdi:information",
translation_key="mode",
translation_key="washing_modes",
),
SensorEntityDescription(
key="errors", name="Error", icon="mdi:math-log", translation_key="errors"
@ -101,7 +107,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
key="machMode",
name="Machine Status",
icon="mdi:information",
translation_key="mode",
translation_key="washing_modes",
),
SensorEntityDescription(
key="errors", name="Error", icon="mdi:math-log", translation_key="errors"
@ -129,8 +135,8 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
SensorEntityDescription(
key="prPhase",
name="Program Phase",
icon="mdi:tumble-dryer",
translation_key="tumbledryerprogramphase",
icon="mdi:washing-machine",
translation_key="program_phases_td",
),
SensorEntityDescription(
key="dryLevel",
@ -192,7 +198,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
key="machMode",
name="Machine Status",
icon="mdi:information",
translation_key="mode",
translation_key="washing_modes",
),
SensorEntityDescription(
key="spinSpeed",
@ -216,7 +222,8 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
SensorEntityDescription(
key="prPhase",
name="Program Phase",
icon="mdi:tumble-dryer",
icon="mdi:washing-machine",
translation_key="program_phases_wm",
),
SensorEntityDescription(
key="dryLevel",
@ -336,7 +343,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
key="machMode",
name="Machine Status",
icon="mdi:information",
translation_key="mode_dw",
translation_key="washing_modes",
),
SensorEntityDescription(
key="errors", name="Error", icon="mdi:math-log", translation_key="errors"
@ -348,6 +355,12 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfTime.MINUTES,
),
SensorEntityDescription(
key="prPhase",
name="Program Phase",
icon="mdi:washing-machine",
translation_key="program_phases_dw",
),
),
}

View File

@ -0,0 +1,71 @@
{
"entity": {
"sensor": {
"washing_modes": {
"state": {
"0": "P\u0159ipraveno",
"1": "P\u0159ipraveno",
"3": "Pozastavit",
"4": "Napl\u00e1nov\u00e1no",
"5": "Napl\u00e1nov\u00e1no",
"6": "Chyba",
"7": "P\u0159ipraveno"
}
},
"program_phases_wm": {
"state": {
"0": "P\u0159ipraveno",
"1": "Pran\u00ed",
"2": "Pran\u00ed",
"3": "Odst\u0159e\u010fov\u00e1n\u00ed",
"4": "M\u00e1ch\u00e1n\u00ed",
"5": "M\u00e1ch\u00e1n\u00ed",
"6": "M\u00e1ch\u00e1n\u00ed",
"7": "Su\u0161en\u00ed",
"9": "P\u00e1ra",
"10": "P\u0159ipraveno",
"11": "Odst\u0159e\u010fov\u00e1n\u00ed",
"12": "V\u00e1\u017een\u00ed ",
"13": "V\u00e1\u017een\u00ed ",
"14": "Pran\u00ed",
"15": "Pran\u00ed",
"16": "Pran\u00ed",
"17": "M\u00e1ch\u00e1n\u00ed",
"18": "M\u00e1ch\u00e1n\u00ed",
"19": "Napl\u00e1nov\u00e1no",
"20": "Keep Fresh",
"24": "Osv\u011b\u017een\u00ed",
"25": "Pran\u00ed",
"26": "Oh\u0159ev",
"27": "Pran\u00ed"
}
},
"program_phases_td": {
"state": {
"0": "P\u0159ipraveno",
"1": "Su\u0161en\u00ed",
"2": "Su\u0161en\u00ed",
"3": "Vychladnut\u00ed",
"13": "Vychladnut\u00ed",
"14": "Su\u0161en\u00ed",
"15": "Su\u0161en\u00ed",
"16": "Vychladnut\u00ed",
"18": "Keep Fresh",
"19": "Su\u0161en\u00ed",
"20": "Su\u0161en\u00ed"
}
},
"program_phases_dw": {
"state": {
"0": "P\u0159ipraveno",
"1": "P\u0159edp\u00edrka",
"2": "Pran\u00ed",
"3": "M\u00e1ch\u00e1n\u00ed",
"4": "Su\u0161en\u00ed",
"5": "P\u0159ipraveno",
"6": "Hot rinse"
}
}
}
}
}

View File

@ -0,0 +1,71 @@
{
"entity": {
"sensor": {
"washing_modes": {
"state": {
"0": "Bereit",
"1": "Bereit",
"3": "Anhalten",
"4": "Geplant",
"5": "Geplant",
"6": "Fehler",
"7": "Bereit"
}
},
"program_phases_wm": {
"state": {
"0": "Bereit",
"1": "Waschen",
"2": "Waschen",
"3": "Schleudern",
"4": "Sp\u00fclen",
"5": "Sp\u00fclen",
"6": "Sp\u00fclen",
"7": "Trocknen",
"9": "Dampf",
"10": "Bereit",
"11": "Schleudern",
"12": "Wiegen ",
"13": "Wiegen ",
"14": "Waschen",
"15": "Waschen",
"16": "Waschen",
"17": "Sp\u00fclen",
"18": "Sp\u00fclen",
"19": "Geplant",
"20": "Auffrischen",
"24": "Auffrischen",
"25": "Waschen",
"26": "Heizung",
"27": "Waschen"
}
},
"program_phases_td": {
"state": {
"0": "Bereit",
"1": "Trocknen",
"2": "Trocknen",
"3": "Abk\u00fchlen",
"13": "Abk\u00fchlen",
"14": "Trocknen",
"15": "Trocknen",
"16": "Abk\u00fchlen",
"18": "Auffrischen",
"19": "Trocknen",
"20": "Trocknen"
}
},
"program_phases_dw": {
"state": {
"0": "Bereit",
"1": "Vorwaschen",
"2": "Waschen",
"3": "Sp\u00fclen",
"4": "Trocknen",
"5": "Bereit",
"6": "Hot rinse"
}
}
}
}
}

View File

@ -0,0 +1,71 @@
{
"entity": {
"sensor": {
"washing_modes": {
"state": {
"0": "\u0395\u03c4\u03bf\u03b9\u03bc\u03bf\u03c2",
"1": "\u0395\u03c4\u03bf\u03b9\u03bc\u03bf\u03c2",
"3": "\u03a0\u03b1\u03cd\u03c3\u03b7",
"4": "\u03a0\u03c1\u03bf\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1\u03c4\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2",
"5": "\u03a0\u03c1\u03bf\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1\u03c4\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2",
"6": "\u039b\u03ac\u03b8\u03bf\u03c2",
"7": "\u0395\u03c4\u03bf\u03b9\u03bc\u03bf\u03c2"
}
},
"program_phases_wm": {
"state": {
"0": "\u0395\u03c4\u03bf\u03b9\u03bc\u03bf\u03c2",
"1": "\u03a0\u03bb\u03cd\u03c3\u03b7",
"2": "\u03a0\u03bb\u03cd\u03c3\u03b7",
"3": "\u03a3\u03c4\u03cd\u03c8\u03b9\u03bc\u03bf",
"4": "\u039e\u03ad\u03b2\u03b3\u03b1\u03bb\u03bc\u03b1",
"5": "\u039e\u03ad\u03b2\u03b3\u03b1\u03bb\u03bc\u03b1",
"6": "\u039e\u03ad\u03b2\u03b3\u03b1\u03bb\u03bc\u03b1",
"7": "\u03a3\u03c4\u03ad\u03b3\u03bd\u03c9\u03bc\u03b1",
"9": "\u0391\u03c4\u03bc\u03cc\u03c2",
"10": "\u0395\u03c4\u03bf\u03b9\u03bc\u03bf\u03c2",
"11": "\u03a3\u03c4\u03cd\u03c8\u03b9\u03bc\u03bf",
"12": "\u0396\u03cd\u03b3\u03b9\u03c3\u03bc\u03b1 ",
"13": "\u0396\u03cd\u03b3\u03b9\u03c3\u03bc\u03b1 ",
"14": "\u03a0\u03bb\u03cd\u03c3\u03b7",
"15": "\u03a0\u03bb\u03cd\u03c3\u03b7",
"16": "\u03a0\u03bb\u03cd\u03c3\u03b7",
"17": "\u039e\u03ad\u03b2\u03b3\u03b1\u03bb\u03bc\u03b1",
"18": "\u039e\u03ad\u03b2\u03b3\u03b1\u03bb\u03bc\u03b1",
"19": "\u03a0\u03c1\u03bf\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1\u03c4\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2",
"20": "\u039a\u03c1\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03c4\u03b7 \u03c6\u03c1\u03b5\u03c3\u03ba\u03ac\u03b4\u03b1",
"24": "\u03a6\u03c1\u03b5\u03c3\u03ba\u03ac\u03c1\u03b9\u03c3\u03bc\u03b1",
"25": "\u03a0\u03bb\u03cd\u03c3\u03b7",
"26": "\u0398\u03ad\u03c1\u03bc\u03b1\u03bd\u03c3\u03b7",
"27": "\u03a0\u03bb\u03cd\u03c3\u03b7"
}
},
"program_phases_td": {
"state": {
"0": "\u0395\u03c4\u03bf\u03b9\u03bc\u03bf\u03c2",
"1": "\u03a3\u03c4\u03ad\u03b3\u03bd\u03c9\u03bc\u03b1",
"2": "\u03a3\u03c4\u03ad\u03b3\u03bd\u03c9\u03bc\u03b1",
"3": "\u03a0\u03b5\u03c1\u03af\u03bf\u03b4\u03bf\u03c2 \u03b1\u03bd\u03b1\u03bc\u03bf\u03bd\u03ae\u03c2",
"13": "\u03a0\u03b5\u03c1\u03af\u03bf\u03b4\u03bf\u03c2 \u03b1\u03bd\u03b1\u03bc\u03bf\u03bd\u03ae\u03c2",
"14": "\u03a3\u03c4\u03ad\u03b3\u03bd\u03c9\u03bc\u03b1",
"15": "\u03a3\u03c4\u03ad\u03b3\u03bd\u03c9\u03bc\u03b1",
"16": "\u03a0\u03b5\u03c1\u03af\u03bf\u03b4\u03bf\u03c2 \u03b1\u03bd\u03b1\u03bc\u03bf\u03bd\u03ae\u03c2",
"18": "\u039a\u03c1\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 \u03c4\u03b7 \u03c6\u03c1\u03b5\u03c3\u03ba\u03ac\u03b4\u03b1",
"19": "\u03a3\u03c4\u03ad\u03b3\u03bd\u03c9\u03bc\u03b1",
"20": "\u03a3\u03c4\u03ad\u03b3\u03bd\u03c9\u03bc\u03b1"
}
},
"program_phases_dw": {
"state": {
"0": "\u0395\u03c4\u03bf\u03b9\u03bc\u03bf\u03c2",
"1": "\u03a0\u03c1\u03cc\u03c0\u03bb\u03c5\u03c3\u03b7",
"2": "\u03a0\u03bb\u03cd\u03c3\u03b7",
"3": "\u039e\u03ad\u03b2\u03b3\u03b1\u03bb\u03bc\u03b1",
"4": "\u03a3\u03c4\u03ad\u03b3\u03bd\u03c9\u03bc\u03b1",
"5": "\u0395\u03c4\u03bf\u03b9\u03bc\u03bf\u03c2",
"6": "Hot rinse"
}
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,71 @@
{
"entity": {
"sensor": {
"washing_modes": {
"state": {
"0": "Listo",
"1": "Listo",
"3": "Pausa",
"4": "Programado",
"5": "Programado",
"6": "Error",
"7": "Listo"
}
},
"program_phases_wm": {
"state": {
"0": "Listo",
"1": "Lavado",
"2": "Lavado",
"3": "Centrifugado",
"4": "Aclarado",
"5": "Aclarado",
"6": "Aclarado",
"7": "Secado",
"9": "Vapor",
"10": "Listo",
"11": "Centrifugado",
"12": "Peso ",
"13": "Peso ",
"14": "Lavado",
"15": "Lavado",
"16": "Lavado",
"17": "Aclarado",
"18": "Aclarado",
"19": "Programado",
"20": "Ropa fresca",
"24": "Refrescar",
"25": "Lavado",
"26": "Calentamiento",
"27": "Lavado"
}
},
"program_phases_td": {
"state": {
"0": "Listo",
"1": "Secado",
"2": "Secado",
"3": "Enfriar",
"13": "Enfriar",
"14": "Secado",
"15": "Secado",
"16": "Enfriar",
"18": "Ropa fresca",
"19": "Secado",
"20": "Secado"
}
},
"program_phases_dw": {
"state": {
"0": "Listo",
"1": "Prelavado",
"2": "Lavado",
"3": "Aclarado",
"4": "Secado",
"5": "Listo",
"6": "Hot rinse"
}
}
}
}
}

View File

@ -0,0 +1,71 @@
{
"entity": {
"sensor": {
"washing_modes": {
"state": {
"0": "Pr\u00eat",
"1": "Pr\u00eat",
"3": "Pause",
"4": "Planifi\u00e9",
"5": "Planifi\u00e9",
"6": "Erreur",
"7": "Pr\u00eat"
}
},
"program_phases_wm": {
"state": {
"0": "Pr\u00eat",
"1": "Lavage",
"2": "Lavage",
"3": "Essorage",
"4": "Rin\u00e7age",
"5": "Rin\u00e7age",
"6": "Rin\u00e7age",
"7": "S\u00e9chage",
"9": "Vapeur d'eau",
"10": "Pr\u00eat",
"11": "Essorage",
"12": "Calcul du poids ",
"13": "Calcul du poids ",
"14": "Lavage",
"15": "Lavage",
"16": "Lavage",
"17": "Rin\u00e7age",
"18": "Rin\u00e7age",
"19": "Planifi\u00e9",
"20": "Keep Fresh",
"24": "Rafra\u00eechissement",
"25": "Lavage",
"26": "Chauffage",
"27": "Lavage"
}
},
"program_phases_td": {
"state": {
"0": "Pr\u00eat",
"1": "S\u00e9chage",
"2": "S\u00e9chage",
"3": "Refroidissement",
"13": "Refroidissement",
"14": "S\u00e9chage",
"15": "S\u00e9chage",
"16": "Refroidissement",
"18": "Keep Fresh",
"19": "S\u00e9chage",
"20": "S\u00e9chage"
}
},
"program_phases_dw": {
"state": {
"0": "Pr\u00eat",
"1": "Pr\u00e9lavage",
"2": "Lavage",
"3": "Rin\u00e7age",
"4": "S\u00e9chage",
"5": "Pr\u00eat",
"6": "Hot rinse"
}
}
}
}
}

View File

@ -0,0 +1,71 @@
{
"entity": {
"sensor": {
"washing_modes": {
"state": {
"0": "\u05de\u05d5\u05bc\u05db\u05b8\u05df",
"1": "\u05de\u05d5\u05bc\u05db\u05b8\u05df",
"3": "\u05d4\u05b7\u05e4\u05e1\u05b8\u05e7\u05b8\u05d4",
"4": "\u05de\u05ea\u05d5\u05d6\u05de\u05df",
"5": "\u05de\u05ea\u05d5\u05d6\u05de\u05df",
"6": "\u05e9\u05c1\u05b0\u05d2\u05b4\u05d9\u05d0\u05b8\u05d4",
"7": "\u05de\u05d5\u05bc\u05db\u05b8\u05df"
}
},
"program_phases_wm": {
"state": {
"0": "\u05de\u05d5\u05bc\u05db\u05b8\u05df",
"1": "\u05dc\u05b4\u05e9\u05c1\u05b0\u05d8\u05d5\u05b9\u05e3",
"2": "\u05dc\u05b4\u05e9\u05c1\u05b0\u05d8\u05d5\u05b9\u05e3",
"3": "Spin",
"4": "\u05dc\u05b4\u05e9\u05c1\u05b0\u05d8\u05d5\u05b9\u05e3",
"5": "\u05dc\u05b4\u05e9\u05c1\u05b0\u05d8\u05d5\u05b9\u05e3",
"6": "\u05dc\u05b4\u05e9\u05c1\u05b0\u05d8\u05d5\u05b9\u05e3",
"7": "\u05d9\u05b4\u05d1\u05bc\u05d5\u05bc\u05e9\u05c1",
"9": "\u05e7\u05b4\u05d9\u05d8\u05d5\u05b9\u05e8",
"10": "\u05de\u05d5\u05bc\u05db\u05b8\u05df",
"11": "Spin",
"12": "Weighing ",
"13": "Weighing ",
"14": "\u05dc\u05b4\u05e9\u05c1\u05b0\u05d8\u05d5\u05b9\u05e3",
"15": "\u05dc\u05b4\u05e9\u05c1\u05b0\u05d8\u05d5\u05b9\u05e3",
"16": "\u05dc\u05b4\u05e9\u05c1\u05b0\u05d8\u05d5\u05b9\u05e3",
"17": "\u05dc\u05b4\u05e9\u05c1\u05b0\u05d8\u05d5\u05b9\u05e3",
"18": "\u05dc\u05b4\u05e9\u05c1\u05b0\u05d8\u05d5\u05b9\u05e3",
"19": "\u05de\u05ea\u05d5\u05d6\u05de\u05df",
"20": "\u05e9\u05de\u05d5\u05e8 \u05e2\u05dc \u05d8\u05e8\u05d9\u05d5\u05ea",
"24": "Refresh",
"25": "\u05dc\u05b4\u05e9\u05c1\u05b0\u05d8\u05d5\u05b9\u05e3",
"26": "Heating",
"27": "\u05dc\u05b4\u05e9\u05c1\u05b0\u05d8\u05d5\u05b9\u05e3"
}
},
"program_phases_td": {
"state": {
"0": "\u05de\u05d5\u05bc\u05db\u05b8\u05df",
"1": "Drying",
"2": "\u05d9\u05b4\u05d1\u05bc\u05d5\u05bc\u05e9\u05c1",
"3": "Cooldown",
"13": "Cooldown",
"14": "Drying",
"15": "Drying",
"16": "Cooldown",
"18": "Keep Fresh",
"19": "\u05d9\u05b4\u05d1\u05bc\u05d5\u05bc\u05e9\u05c1",
"20": "\u05d9\u05b4\u05d1\u05bc\u05d5\u05bc\u05e9\u05c1"
}
},
"program_phases_dw": {
"state": {
"0": "\u05de\u05d5\u05bc\u05db\u05b8\u05df",
"1": "Prewash",
"2": "\u05dc\u05b4\u05e9\u05c1\u05b0\u05d8\u05d5\u05b9\u05e3",
"3": "\u05dc\u05b4\u05e9\u05c1\u05b0\u05d8\u05d5\u05b9\u05e3",
"4": "\u05d9\u05b4\u05d1\u05bc\u05d5\u05bc\u05e9\u05c1",
"5": "\u05de\u05d5\u05bc\u05db\u05b8\u05df",
"6": "Hot rinse"
}
}
}
}
}

View File

@ -0,0 +1,71 @@
{
"entity": {
"sensor": {
"washing_modes": {
"state": {
"0": "Spremno",
"1": "Spremno",
"3": "Zaustavi",
"4": "Zakazano",
"5": "Zakazano",
"6": "Gre\u0161ka",
"7": "Spremno"
}
},
"program_phases_wm": {
"state": {
"0": "Spremno",
"1": "Pranje",
"2": "Pranje",
"3": "Okretaj",
"4": "Ispiranje",
"5": "Ispiranje",
"6": "Ispiranje",
"7": "Su\u0161enje",
"9": "Para",
"10": "Spremno",
"11": "Okretaj",
"12": "Mjerenje te\u017eine ",
"13": "Mjerenje te\u017eine ",
"14": "Pranje",
"15": "Pranje",
"16": "Pranje",
"17": "Ispiranje",
"18": "Ispiranje",
"19": "Zakazano",
"20": "Odr\u017eavanje svje\u017eine",
"24": "Protiv neugodnih mirisa",
"25": "Pranje",
"26": "Grijanje",
"27": "Pranje"
}
},
"program_phases_td": {
"state": {
"0": "Spremno",
"1": "Su\u0161enje",
"2": "Su\u0161enje",
"3": "Hla\u0111enje",
"13": "Hla\u0111enje",
"14": "Su\u0161enje",
"15": "Su\u0161enje",
"16": "Hla\u0111enje",
"18": "Odr\u017ei svje\u017eim",
"19": "Su\u0161enje",
"20": "Su\u0161enje"
}
},
"program_phases_dw": {
"state": {
"0": "Spremno",
"1": "Pretpranje",
"2": "Pranje",
"3": "Ispiranje",
"4": "Su\u0161enje",
"5": "Spremno",
"6": "Hot rinse"
}
}
}
}
}

View File

@ -26,7 +26,7 @@
"errors": {
"state": {
"00": "Nessun Errore",
"100000000000": "E2: Controllare se la porta è chiusa correttamente",
"100000000000": "E2: Controllare se la porta \u00e8 chiusa correttamente",
"8000000000000": "E4: Controllare l'approvvigionamento idrico"
}
},
@ -72,13 +72,78 @@
"13": "Pronto Armadio",
"14": "Extra Dry H-3"
}
},
"washing_modes": {
"state": {
"0": "Pronta",
"1": "Pronta",
"3": "Pausa",
"4": "Pianificato",
"5": "Pianificato",
"6": "Errore",
"7": "Pronta"
}
},
"program_phases_wm": {
"state": {
"0": "Pronta",
"1": "Lavaggio",
"2": "Lavaggio",
"3": "Centrifuga",
"4": "Risciacqui",
"5": "Risciacqui",
"6": "Risciacqui",
"7": "Asciugatura",
"9": "Vapore",
"10": "Pronta",
"11": "Centrifuga",
"12": "Pesatura",
"13": "Pesatura",
"14": "Lavaggio",
"15": "Lavaggio",
"16": "Lavaggio",
"17": "Risciacqui",
"18": "Risciacqui",
"19": "Pianificato",
"20": "Keep Fresh",
"24": "Rinfresca",
"25": "Lavaggio",
"26": "Riscaldamento",
"27": "Lavaggio"
}
},
"program_phases_td": {
"state": {
"0": "Pronta",
"1": "Asciugatura",
"2": "Asciugatura",
"3": "Raffreddamento",
"13": "Raffreddamento",
"14": "Asciugatura",
"15": "Asciugatura",
"16": "Raffreddamento",
"18": "Keep Fresh",
"19": "Asciugatura",
"20": "Asciugatura"
}
},
"program_phases_dw": {
"state": {
"0": "Pronta",
"1": "Prelavaggio",
"2": "Lavaggio",
"3": "Risciacqui",
"4": "Asciugatura",
"5": "Pronta",
"6": "Risciacquo caldo "
}
}
},
"select": {
"programs": {
"state": {
"20_degrees_coloured_cottons": "20° Colorati e Cotone",
"20_degrees_new_energy_label": "20°C",
"20_degrees_coloured_cottons": "20\u00b0 Colorati e Cotone",
"20_degrees_new_energy_label": "20\u00b0C",
"active_steam": "Vapore",
"active_wash": "Lavaggio attivo",
"active_wash_steam": "Lavaggio attivo + Vapore",
@ -89,7 +154,7 @@
"all_in_one_59_steam": "Lavaggio attivo + Vapore",
"autocare": "Autocare",
"autoclean": "Pulizia del tamburo",
"baby_60": "Bambino 60°C",
"baby_60": "Bambino 60\u00b0C",
"care_14": "Rapido 14'",
"care_30": "Rapido 30'",
"care_44": "Rapido 44'",
@ -115,7 +180,7 @@
"fresh_care_steam": "Fresh Care + Vapore",
"handwash_wool": "Lavaggio A Mano + Lana",
"high_dry": "Asciugatura Alta",
"hqd_20_degrees": "Cotone 20",
"hqd_20_degrees": "Cotone 20\u2103",
"hqd_allergy": "Anti allergenici",
"hqd_autoclean": "Pulizia del tamburo",
"hqd_babycare": "Bambino",
@ -178,14 +243,14 @@
"hqd_wool": "Lana",
"hqd_working_suit": "Completo da lavoro",
"hygiene_59": "Igiene Plus 59'",
"hygiene_60": "Igiene 60°C",
"hygiene_60": "Igiene 60\u00b0C",
"hygiene_plus_59": "Igiene Plus 59'",
"hygiene_plus_59_min": "Igiene Plus 59'",
"hygiene_pro _49_MIN": "Igiene Pro 49'",
"hygiene_pro_49_min": "Igiene Pro 49'",
"hygiene_pro_steam": "Hygiene Pro + Vapore",
"intensive_40": "Intensivo 40°C",
"intensive_40_steam": "Intensivo 40°C + Vapore",
"intensive_40": "Intensivo 40\u00b0C",
"intensive_40_steam": "Intensivo 40\u00b0C + Vapore",
"iot_active_steam": "Vapore",
"iot_active_wash_steam": "Active Wash + Vapore",
"iot_allergy_care_pro": "Allergy Care Pro",
@ -204,7 +269,7 @@
"iot_dry_cotton_dry": "Asciugatura cotone",
"iot_dry_cuddly_toys": "Peluches",
"iot_dry_curtains": "Tende",
"iot_dry_dehumidifier": "Rimuovi umidità",
"iot_dry_dehumidifier": "Rimuovi umidit\u00e0",
"iot_dry_delicates_antiallergy": "Antiallergia Delicati",
"iot_dry_delicate_tablecloths": "Tovaglie delicate",
"iot_dry_denim_jeans": "Denim - Jeans",
@ -225,7 +290,7 @@
"iot_easy_iron": "Stiro Facile",
"iot_fresh_care_steam": "Fresh Care + Vapore",
"iot_hygiene_pro_steam": "Hygiene Pro + Vapore",
"iot_intensive_40_steam": "Intensivo 40°C + Vapore",
"iot_intensive_40_steam": "Intensivo 40\u00b0C + Vapore",
"iot_mixed_steam": "Misti + Vapore",
"iot_mix_and_colour_59_steam": "Misti e Colorati 59' + Vapore",
"iot_perfect_cotton_59_steam": "Cotone Perfetto 59' + Vapore",

View File

@ -0,0 +1,71 @@
{
"entity": {
"sensor": {
"washing_modes": {
"state": {
"0": "Klaar",
"1": "Klaar",
"3": "Pauze",
"4": "Gepland",
"5": "Gepland",
"6": "Fout",
"7": "Klaar"
}
},
"program_phases_wm": {
"state": {
"0": "Klaar",
"1": "Wassen",
"2": "Wassen",
"3": "Centrifugeren",
"4": "Spoelen",
"5": "Spoelen",
"6": "Spoelen",
"7": "Drogen",
"9": "Stoom",
"10": "Klaar",
"11": "Centrifugeren",
"12": "Wegen ",
"13": "Wegen ",
"14": "Wassen",
"15": "Wassen",
"16": "Wassen",
"17": "Spoelen",
"18": "Spoelen",
"19": "Gepland",
"20": "Fris houden",
"24": "Opfrissen",
"25": "Wassen",
"26": "Verwarming",
"27": "Wassen"
}
},
"program_phases_td": {
"state": {
"0": "Klaar",
"1": "Drogen",
"2": "Drogen",
"3": "Afkoelen",
"13": "Afkoelen",
"14": "Drogen",
"15": "Drogen",
"16": "Afkoelen",
"18": "Fris houden",
"19": "Drogen",
"20": "Drogen"
}
},
"program_phases_dw": {
"state": {
"0": "Klaar",
"1": "Voorwassen",
"2": "Wassen",
"3": "Spoelen",
"4": "Drogen",
"5": "Klaar",
"6": "Hot rinse"
}
}
}
}
}

View File

@ -0,0 +1,71 @@
{
"entity": {
"sensor": {
"washing_modes": {
"state": {
"0": "Gotowe",
"1": "Gotowe",
"3": "Zatrzymaj",
"4": "Zaplanowane",
"5": "Zaplanowane",
"6": "B\u0142\u0105d",
"7": "Gotowe"
}
},
"program_phases_wm": {
"state": {
"0": "Gotowe",
"1": "Pranie",
"2": "Pranie",
"3": "Wirowanie",
"4": "P\u0142ukanie",
"5": "P\u0142ukanie",
"6": "P\u0142ukanie",
"7": "Suszenie",
"9": "Para",
"10": "Gotowe",
"11": "Wirowanie",
"12": "Wa\u017cenie ",
"13": "Wa\u017cenie ",
"14": "Pranie",
"15": "Pranie",
"16": "Pranie",
"17": "P\u0142ukanie",
"18": "P\u0142ukanie",
"19": "Zaplanowane",
"20": "Utrzymaj \u015bwie\u017co\u015b\u0107",
"24": "Od\u015bwie\u017canie",
"25": "Pranie",
"26": "Ogrzewanie",
"27": "Pranie"
}
},
"program_phases_td": {
"state": {
"0": "Gotowe",
"1": "Suszenie",
"2": "Suszenie",
"3": "Ch\u0142odzenie",
"13": "Ch\u0142odzenie",
"14": "Suszenie",
"15": "Suszenie",
"16": "Ch\u0142odzenie",
"18": "Utrzymaj \u015bwie\u017co\u015b\u0107",
"19": "Suszenie",
"20": "Suszenie"
}
},
"program_phases_dw": {
"state": {
"0": "Gotowe",
"1": "Zmywanie wst\u0119pne",
"2": "Pranie",
"3": "P\u0142ukanie",
"4": "Suszenie",
"5": "Gotowe",
"6": "Hot rinse"
}
}
}
}
}

View File

@ -0,0 +1,71 @@
{
"entity": {
"sensor": {
"washing_modes": {
"state": {
"0": "Pronto",
"1": "Pronto",
"3": "Pausa",
"4": "Agendado",
"5": "Agendado",
"6": "Erro",
"7": "Pronto"
}
},
"program_phases_wm": {
"state": {
"0": "Pronto",
"1": "Lavar",
"2": "Lavar",
"3": "Centrifugar",
"4": "Lavagem",
"5": "Lavagem",
"6": "Lavagem",
"7": "Secagem",
"9": "Vapor",
"10": "Pronto",
"11": "Centrifugar",
"12": "Pesagem ",
"13": "Pesagem ",
"14": "Lavar",
"15": "Lavar",
"16": "Lavar",
"17": "Lavagem",
"18": "Lavagem",
"19": "Agendado",
"20": "Manter Fresco",
"24": "Refrescar",
"25": "Lavar",
"26": "Aquecimento",
"27": "Lavar"
}
},
"program_phases_td": {
"state": {
"0": "Pronto",
"1": "Secagem",
"2": "Secagem",
"3": "Arrefecimento",
"13": "Arrefecimento",
"14": "Secagem",
"15": "Secagem",
"16": "Arrefecimento",
"18": "Manter Fresco",
"19": "Secagem",
"20": "Secagem"
}
},
"program_phases_dw": {
"state": {
"0": "Pronto",
"1": "Pr\u00e9-lavagem",
"2": "Lavar",
"3": "Lavagem",
"4": "Secagem",
"5": "Pronto",
"6": "Hot rinse"
}
}
}
}
}

View File

@ -0,0 +1,71 @@
{
"entity": {
"sensor": {
"washing_modes": {
"state": {
"0": "Preg\u0103tit",
"1": "Preg\u0103tit",
"3": "Pauz\u0103",
"4": "Programat",
"5": "Programat",
"6": "Eroare",
"7": "Preg\u0103tit"
}
},
"program_phases_wm": {
"state": {
"0": "Preg\u0103tit",
"1": "Sp\u0103lare",
"2": "Sp\u0103lare",
"3": "Stoarcere",
"4": "Cl\u0103tire",
"5": "Cl\u0103tire",
"6": "Cl\u0103tire",
"7": "Uscare",
"9": "Abur",
"10": "Preg\u0103tit",
"11": "Stoarcere",
"12": "C\u00e2nt\u0103rire ",
"13": "C\u00e2nt\u0103rire ",
"14": "Sp\u0103lare",
"15": "Sp\u0103lare",
"16": "Sp\u0103lare",
"17": "Cl\u0103tire",
"18": "Cl\u0103tire",
"19": "Programat",
"20": "Men\u021binere prospe\u021bime",
"24": "Re\u00eemprosp\u0103tare",
"25": "Sp\u0103lare",
"26": "\u00cenc\u0103lzire",
"27": "Sp\u0103lare"
}
},
"program_phases_td": {
"state": {
"0": "Preg\u0103tit",
"1": "Uscare",
"2": "Uscare",
"3": "R\u0103cire",
"13": "R\u0103cire",
"14": "Uscare",
"15": "Uscare",
"16": "R\u0103cire",
"18": "Men\u021binere prospe\u021bime",
"19": "Uscare",
"20": "Uscare"
}
},
"program_phases_dw": {
"state": {
"0": "Preg\u0103tit",
"1": "Presp\u0103lare",
"2": "Sp\u0103lare",
"3": "Cl\u0103tire",
"4": "Uscare",
"5": "Preg\u0103tit",
"6": "Hot rinse"
}
}
}
}
}

View File

@ -0,0 +1,71 @@
{
"entity": {
"sensor": {
"washing_modes": {
"state": {
"0": "\u0413\u043e\u0442\u043e\u0432\u043e",
"1": "\u0413\u043e\u0442\u043e\u0432\u043e",
"3": "\u041f\u0430\u0443\u0437\u0430",
"4": "\u0417\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043e",
"5": "\u0417\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043e",
"6": "\u041e\u0448\u0438\u0431\u043a\u0430",
"7": "\u0413\u043e\u0442\u043e\u0432\u043e"
}
},
"program_phases_wm": {
"state": {
"0": "\u0413\u043e\u0442\u043e\u0432\u043e",
"1": "\u0421\u0442\u0438\u0440\u043a\u0430",
"2": "\u0421\u0442\u0438\u0440\u043a\u0430",
"3": "\u041e\u0442\u0436\u0438\u043c",
"4": "\u041f\u043e\u043b\u043e\u0441\u043a\u0430\u043d\u0438\u0435",
"5": "\u041f\u043e\u043b\u043e\u0441\u043a\u0430\u043d\u0438\u0435",
"6": "\u041f\u043e\u043b\u043e\u0441\u043a\u0430\u043d\u0438\u0435",
"7": "\u0421\u0443\u0448\u043a\u0430",
"9": "\u041f\u0430\u0440",
"10": "\u0413\u043e\u0442\u043e\u0432\u043e",
"11": "\u041e\u0442\u0436\u0438\u043c",
"12": "\u0412\u0437\u0432\u0435\u0448\u0438\u0432\u0430\u043d\u0438\u0435 ",
"13": "\u0412\u0437\u0432\u0435\u0448\u0438\u0432\u0430\u043d\u0438\u0435 ",
"14": "\u0421\u0442\u0438\u0440\u043a\u0430",
"15": "\u0421\u0442\u0438\u0440\u043a\u0430",
"16": "\u0421\u0442\u0438\u0440\u043a\u0430",
"17": "\u041f\u043e\u043b\u043e\u0441\u043a\u0430\u043d\u0438\u0435",
"18": "\u041f\u043e\u043b\u043e\u0441\u043a\u0430\u043d\u0438\u0435",
"19": "\u0417\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043e",
"20": "\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441\u0432\u0435\u0436\u0435\u0441\u0442\u0438",
"24": "\u041e\u0441\u0432\u0435\u0436\u0438\u0442\u044c",
"25": "\u0421\u0442\u0438\u0440\u043a\u0430",
"26": "\u041d\u0430\u0433\u0440\u0435\u0432",
"27": "\u0421\u0442\u0438\u0440\u043a\u0430"
}
},
"program_phases_td": {
"state": {
"0": "\u0413\u043e\u0442\u043e\u0432\u043e",
"1": "\u0421\u0443\u0448\u043a\u0430",
"2": "\u0421\u0443\u0448\u043a\u0430",
"3": "\u041e\u0445\u043b\u0430\u0436\u0434\u0435\u043d\u0438\u0435",
"13": "\u041e\u0445\u043b\u0430\u0436\u0434\u0435\u043d\u0438\u0435",
"14": "\u0421\u0443\u0448\u043a\u0430",
"15": "\u0421\u0443\u0448\u043a\u0430",
"16": "\u041e\u0445\u043b\u0430\u0436\u0434\u0435\u043d\u0438\u0435",
"18": "Keep Fresh (\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441\u0432\u0435\u0436\u0435\u0441\u0442\u0438)",
"19": "\u0421\u0443\u0448\u043a\u0430",
"20": "\u0421\u0443\u0448\u043a\u0430"
}
},
"program_phases_dw": {
"state": {
"0": "\u0413\u043e\u0442\u043e\u0432\u043e",
"1": "\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043c\u043e\u0439\u043a\u0430",
"2": "\u0421\u0442\u0438\u0440\u043a\u0430",
"3": "\u041f\u043e\u043b\u043e\u0441\u043a\u0430\u043d\u0438\u0435",
"4": "\u0421\u0443\u0448\u043a\u0430",
"5": "\u0413\u043e\u0442\u043e\u0432\u043e",
"6": "Hot rinse"
}
}
}
}
}

View File

@ -0,0 +1,71 @@
{
"entity": {
"sensor": {
"washing_modes": {
"state": {
"0": "Pripraven\u00e9",
"1": "Pripraven\u00e9",
"3": "Pozastavi\u0165",
"4": "Napl\u00e1novan\u00e9",
"5": "Napl\u00e1novan\u00e9",
"6": "Chyba",
"7": "Pripraven\u00e9"
}
},
"program_phases_wm": {
"state": {
"0": "Pripraven\u00e9",
"1": "Pranie",
"2": "Pranie",
"3": "Odstre\u010fovanie",
"4": "Oplachovanie",
"5": "Oplachovanie",
"6": "Oplachovanie",
"7": "Su\u0161enie",
"9": "Para",
"10": "Pripraven\u00e9",
"11": "Odstre\u010fovanie",
"12": "V\u00e1\u017eenie ",
"13": "V\u00e1\u017eenie ",
"14": "Pranie",
"15": "Pranie",
"16": "Pranie",
"17": "Oplachovanie",
"18": "Oplachovanie",
"19": "Napl\u00e1novan\u00e9",
"20": "Uchova\u0165 svie\u017ee",
"24": "Osvie\u017eenie",
"25": "Pranie",
"26": "Ohrev",
"27": "Pranie"
}
},
"program_phases_td": {
"state": {
"0": "Pripraven\u00e9",
"1": "Su\u0161enie",
"2": "Su\u0161enie",
"3": "Schladi\u0165",
"13": "Schladi\u0165",
"14": "Su\u0161enie",
"15": "Su\u0161enie",
"16": "Schladi\u0165",
"18": "Uchova\u0165 svie\u017ee",
"19": "Su\u0161enie",
"20": "Su\u0161enie"
}
},
"program_phases_dw": {
"state": {
"0": "Pripraven\u00e9",
"1": "Predpierka",
"2": "Pranie",
"3": "Oplachovanie",
"4": "Su\u0161enie",
"5": "Pripraven\u00e9",
"6": "Hot rinse"
}
}
}
}
}

View File

@ -0,0 +1,71 @@
{
"entity": {
"sensor": {
"washing_modes": {
"state": {
"0": "Pripravljen",
"1": "Pripravljen",
"3": "Premor",
"4": "Na\u010drtovano",
"5": "Na\u010drtovano",
"6": "Napaka",
"7": "Pripravljen"
}
},
"program_phases_wm": {
"state": {
"0": "Pripravljen",
"1": "Pranje",
"2": "Pranje",
"3": "O\u017eemanje",
"4": "Izpiranje",
"5": "Izpiranje",
"6": "Izpiranje",
"7": "Su\u0161enje",
"9": "Para",
"10": "Pripravljen",
"11": "O\u017eemanje",
"12": "Tehtanje ",
"13": "Tehtanje ",
"14": "Pranje",
"15": "Pranje",
"16": "Pranje",
"17": "Izpiranje",
"18": "Izpiranje",
"19": "Na\u010drtovano",
"20": "Ohranjanje sve\u017eine",
"24": "Osve\u017eitev",
"25": "Pranje",
"26": "Ogrevanje",
"27": "Pranje"
}
},
"program_phases_td": {
"state": {
"0": "Pripravljen",
"1": "Su\u0161enje",
"2": "Su\u0161enje",
"3": "Hlajenje",
"13": "Hlajenje",
"14": "Su\u0161enje",
"15": "Su\u0161enje",
"16": "Hlajenje",
"18": "Ohrani sve\u017ee",
"19": "Su\u0161enje",
"20": "Su\u0161enje"
}
},
"program_phases_dw": {
"state": {
"0": "Pripravljen",
"1": "Predpranje",
"2": "Pranje",
"3": "Izpiranje",
"4": "Su\u0161enje",
"5": "Pripravljen",
"6": "Hot rinse"
}
}
}
}
}

View File

@ -0,0 +1,71 @@
{
"entity": {
"sensor": {
"washing_modes": {
"state": {
"0": "Spremno",
"1": "Spremno",
"3": "Pauza",
"4": "Planirano",
"5": "Planirano",
"6": "Gre\u0161ka",
"7": "Spremno"
}
},
"program_phases_wm": {
"state": {
"0": "Spremno",
"1": "Pranje",
"2": "Pranje",
"3": "Centrifuga",
"4": "Ispiranje",
"5": "Ispiranje",
"6": "Ispiranje",
"7": "Su\u0161enje",
"9": "Vodena para",
"10": "Spremno",
"11": "Centrifuga",
"12": "Vaganje ",
"13": "Vaganje ",
"14": "Pranje",
"15": "Pranje",
"16": "Pranje",
"17": "Ispiranje",
"18": "Ispiranje",
"19": "Planirano",
"20": "Odr\u017eavanje sve\u017eine",
"24": "Osve\u017eavanje",
"25": "Pranje",
"26": "Grejanje",
"27": "Pranje"
}
},
"program_phases_td": {
"state": {
"0": "Spremno",
"1": "Su\u0161enje",
"2": "Su\u0161enje",
"3": "Hla\u0111enje",
"13": "Hla\u0111enje",
"14": "Su\u0161enje",
"15": "Su\u0161enje",
"16": "Hla\u0111enje",
"18": "O\u010duvanje sve\u017eine",
"19": "Su\u0161enje",
"20": "Su\u0161enje"
}
},
"program_phases_dw": {
"state": {
"0": "Spremno",
"1": "Pretpranje",
"2": "Pranje",
"3": "Ispiranje",
"4": "Su\u0161enje",
"5": "Spremno",
"6": "Hot rinse"
}
}
}
}
}

View File

@ -0,0 +1,71 @@
{
"entity": {
"sensor": {
"washing_modes": {
"state": {
"0": "Haz\u0131r",
"1": "Haz\u0131r",
"3": "Duraklat",
"4": "Planland\u0131",
"5": "Planland\u0131",
"6": "Hata",
"7": "Haz\u0131r"
}
},
"program_phases_wm": {
"state": {
"0": "Haz\u0131r",
"1": "Y\u0131kama",
"2": "Y\u0131kama",
"3": "S\u0131kma",
"4": "Durulama",
"5": "Durulama",
"6": "Durulama",
"7": "Kurutma",
"9": "Buhar",
"10": "Haz\u0131r",
"11": "S\u0131kma",
"12": "Tartma ",
"13": "Tartma ",
"14": "Y\u0131kama",
"15": "Y\u0131kama",
"16": "Y\u0131kama",
"17": "Durulama",
"18": "Durulama",
"19": "Planland\u0131",
"20": "Tazeleme",
"24": "Tazeleme",
"25": "Y\u0131kama",
"26": "Is\u0131tma",
"27": "Y\u0131kama"
}
},
"program_phases_td": {
"state": {
"0": "Haz\u0131r",
"1": "Kurutma",
"2": "Kurutma",
"3": "So\u011futma",
"13": "So\u011futma",
"14": "Kurutma",
"15": "Kurutma",
"16": "So\u011futma",
"18": "Tazeleme",
"19": "Kurutma",
"20": "Kurutma"
}
},
"program_phases_dw": {
"state": {
"0": "Haz\u0131r",
"1": "\u00d6n Y\u0131kama",
"2": "Y\u0131kama",
"3": "Durulama",
"4": "Kurutma",
"5": "Haz\u0131r",
"6": "Hot rinse"
}
}
}
}
}

View File

@ -0,0 +1,71 @@
{
"entity": {
"sensor": {
"washing_modes": {
"state": {
"0": "\u5c31\u7eea",
"1": "\u5c31\u7eea",
"3": "\u6682\u505c",
"4": "\u5df2\u8ba1\u5212",
"5": "\u5df2\u8ba1\u5212",
"6": "\u9519\u8bef",
"7": "\u5c31\u7eea"
}
},
"program_phases_wm": {
"state": {
"0": "\u5c31\u7eea",
"1": "\u6d17\u6da4",
"2": "\u6d17\u6da4",
"3": "\u7529\u5e72",
"4": "\u6f02\u6d17",
"5": "\u6f02\u6d17",
"6": "\u6f02\u6d17",
"7": "\u70d8\u5e72",
"9": "\u84b8\u6c7d",
"10": "\u5c31\u7eea",
"11": "\u7529\u5e72",
"12": "\u6b63\u5728\u79f0\u91cd ",
"13": "\u6b63\u5728\u79f0\u91cd ",
"14": "\u6d17\u6da4",
"15": "\u6d17\u6da4",
"16": "\u6d17\u6da4",
"17": "\u6f02\u6d17",
"18": "\u6f02\u6d17",
"19": "\u5df2\u8ba1\u5212",
"20": "\u4fdd\u6301\u6e05\u65b0",
"24": "\u6e05\u65b0",
"25": "\u6d17\u6da4",
"26": "\u52a0\u70ed",
"27": "\u6d17\u6da4"
}
},
"program_phases_td": {
"state": {
"0": "\u5c31\u7eea",
"1": "\u6b63\u5728\u70d8\u5e72",
"2": "\u70d8\u5e72",
"3": "\u51b7\u5374",
"13": "\u51b7\u5374",
"14": "\u6b63\u5728\u70d8\u5e72",
"15": "\u6b63\u5728\u70d8\u5e72",
"16": "\u51b7\u5374",
"18": "\u4fdd\u6301\u6e05\u65b0",
"19": "\u70d8\u5e72",
"20": "\u70d8\u5e72"
}
},
"program_phases_dw": {
"state": {
"0": "\u5c31\u7eea",
"1": "\u9884\u6d17",
"2": "\u6d17\u6da4",
"3": "\u6f02\u6d17",
"4": "\u70d8\u5e72",
"5": "\u5c31\u7eea",
"6": "Hot rinse"
}
}
}
}
}

View File

@ -0,0 +1,157 @@
import asyncio
import json
from pathlib import Path
from pyhon import HonAPI
LANGUAGES = [
"cs",
"de",
"el",
"en",
"es",
"fr",
"he",
"hr",
"it",
"nl",
"pl",
"pt",
"ro",
"ru",
"sk",
"sl",
"sr",
"tr",
"zh",
]
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",
}
SENSOR = {
"washing_modes": MACH_MODE,
"program_phases_wm": WASHING_PR_PHASE,
"program_phases_td": TUMBLE_DRYER_PR_PHASE,
"program_phases_dw": DISHWASHER_PR_PHASE,
}
async def check_translation_files(translations):
for language in LANGUAGES:
path = translations / f"{language}.json"
if not path.is_file():
async with HonAPI(anonymous=True) as hon:
keys = await hon.translation_keys(language)
save_json(path, keys)
def load_hon_translations():
translations = Path(__file__).parent / "translations"
translations.mkdir(exist_ok=True)
asyncio.run(check_translation_files(translations))
return {f.stem: f for f in translations.glob("*.json")}
def load_hass_translations():
translations = (
Path(__file__).parent.parent / "custom_components" / "hon" / "translations"
)
return {f.stem: f for f in translations.glob("*.json")}
def load_json(path):
if path:
with open(path, "r") as file:
return json.loads(file.read())
return {}
def save_json(path, keys):
with open(path, "w") as json_file:
json_file.write(json.dumps(keys, indent=4))
def load_key(full_key, json_data, fallback=None):
result = json_data.copy()
for key in full_key.split("."):
result = result.get(key, {})
if not result and fallback:
return load_key(full_key, fallback)
return result or ""
def main():
hass = load_hass_translations()
hon = load_hon_translations()
base_path = Path(__file__).parent.parent / "custom_components/hon/translations"
fallback = load_json(hon.get("en", ""))
for language in LANGUAGES:
original = load_json(hon.get(language, ""))
old = load_json(hass.get(language, ""))
for name, data in SENSOR.items():
sensor = old.setdefault("entity", {}).setdefault("sensor", {})
for number, phase in data.items():
state = sensor.setdefault(name, {}).setdefault("state", {})
if key := load_key(phase, original, fallback):
state[str(number)] = key
save_json(base_path / f"{language}.json", old)
if __name__ == "__main__":
main()