From 5e17081feb8dc60697a3810a68a0d908b9fda30c Mon Sep 17 00:00:00 2001 From: Andre Basche Date: Mon, 2 Oct 2023 03:33:45 +0200 Subject: [PATCH] Add Stain Type #105 --- README.md | 6 ++- custom_components/hon/const.py | 38 +++++++++++++++++++ custom_components/hon/manifest.json | 4 +- custom_components/hon/select.py | 6 +++ custom_components/hon/sensor.py | 8 ++++ custom_components/hon/translations/cs.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/de.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/el.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/en.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/es.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/fr.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/he.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/hr.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/it.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/nl.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/pl.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/pt.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/ro.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/ru.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/sk.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/sl.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/sr.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/tr.json | 43 ++++++++++++++++++++++ custom_components/hon/translations/zh.json | 43 ++++++++++++++++++++++ scripts/sensor_docs.py | 2 + scripts/translation_keys.py | 42 +++++++++++++++++++++ 26 files changed, 920 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1097c5a..55f0ec1 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Home Assistant integration for [Haier's mobile app hOn](https://hon-smarthome.co [![Supported Languages](https://img.shields.io/badge/Languages-19-royalblue)](https://github.com/Andre0512/hon#supported-languages) [![Supported Appliances](https://img.shields.io/badge/Appliances-11-forestgreen)](https://github.com/Andre0512/hon#supported-appliances) [![Supported Models](https://img.shields.io/badge/Models-72-yellowgreen)](https://github.com/Andre0512/hon#supported-models) -[![Supported Entities](https://img.shields.io/badge/Entities-241-crimson)](https://github.com/Andre0512/hon#appliance-features) +[![Supported Entities](https://img.shields.io/badge/Entities-313-crimson)](https://github.com/Andre0512/hon#appliance-features) ## Supported Appliances - [Washing Machine](https://github.com/Andre0512/hon#washing-machine) @@ -471,6 +471,7 @@ For every device exists a button under diagnostics which can be used to log all | Rinse Iterations | `rotate-right` | `number` | `startProgram.rinseIterations` | | Soak Prewash Selection | `tshirt-crew` | `switch` | `startProgram.haier_SoakPrewashSelection` | | Spin speed | `numeric` | `select` | `startProgram.spinSpeed` | +| Stain Type | `liquid-spot` | `select` | `startProgram.extendedStainType` | | Steam Type | `weather-dust` | `sensor` | `steamType` | | Steam level | `weather-dust` | `select` | `startProgram.steamLevel` | | Sterilization | `lotion-plus` | `switch` | `startProgram.sterilizationStatus` | @@ -506,6 +507,7 @@ For every device exists a button under diagnostics which can be used to log all | Remaining Time | `timer` | `sensor` | `remainingTimeMM` | | Remote Control | `remote` | `binary_sensor` | `attributes.lastConnEvent.category` | | Spin Speed | `speedometer` | `sensor` | `spinSpeed` | +| Stain Type | `liquid-spot` | `sensor` | `stainType` | | Start Time | `clock-start` | `sensor` | `delayTime` | | Steam level | `weather-dust` | `sensor` | `steamLevel` | | Temperature level | `thermometer` | `sensor` | `tempLevel` | @@ -548,6 +550,7 @@ For every device exists a button under diagnostics which can be used to log all | Rinse Iterations | `rotate-right` | `number` | `startProgram.rinseIterations` | | Soak Prewash Selection | `tshirt-crew` | `switch` | `startProgram.haier_SoakPrewashSelection` | | Spin speed | `numeric` | `select` | `startProgram.spinSpeed` | +| Stain Type | `liquid-spot` | `select` | `startProgram.extendedStainType` | | Steam level | `weather-dust` | `select` | `startProgram.steamLevel` | | Suggested Load | `weight-kilogram` | `sensor` | `startProgram.suggestedLoadW` | | Suggested weight | `weight-kilogram` | `sensor` | `startProgram.weight` | @@ -576,6 +579,7 @@ For every device exists a button under diagnostics which can be used to log all | Remaining Time | `timer` | `sensor` | `remainingTimeMM` | | Remote Control | `remote` | `binary_sensor` | `attributes.lastConnEvent.category` | | Spin Speed | `speedometer` | `sensor` | `spinSpeed` | +| Stain Type | `liquid-spot` | `sensor` | `stainType` | | Steam level | `weather-dust` | `sensor` | `steamLevel` | | Total Power | | `sensor` | `totalElectricityUsed` | | Total Wash Cycle | `counter` | `sensor` | `totalWashCycle` | diff --git a/custom_components/hon/const.py b/custom_components/hon/const.py index 5bbee26..03c7a13 100644 --- a/custom_components/hon/const.py +++ b/custom_components/hon/const.py @@ -226,3 +226,41 @@ AP_DIFFUSER_LEVEL: dict[int, str] = { } REF_HUMIDITY_LEVELS: dict[int, str] = {1: "low", 2: "mid", 3: "high"} + +STAIN_TYPES: dict[int, str] = { + 0: "unknown", + 1: "wine", + 2: "grass", + 3: "soil", + 4: "blood", + 5: "milk", + # 6: "butter", + 6: "cooking_oil", + 7: "tea", + 8: "coffee", + # 9: "chocolate", + 9: "ice_cream", + 10: "lip_gloss", + 11: "curry", + 12: "milk_tea", + # 13: "chili_oil", + 13: "rust", + 14: "blue_ink", + # 14: "mech_grease", + # 15: "color_pencil", + # 15: "deodorant", + 15: "perfume", + # 16: "glue", + 16: "shoe_cream", + 17: "oil_pastel", + 18: "blueberry", + 19: "sweat", + 20: "egg", + # 20: "mayonnaise", + 21: "ketchup", + 22: "baby_food", + 23: "soy_sauce", + 24: "bean_paste", + 25: "chili_sauce", + 26: "fruit", +} diff --git a/custom_components/hon/manifest.json b/custom_components/hon/manifest.json index 331c7de..3fe7172 100644 --- a/custom_components/hon/manifest.json +++ b/custom_components/hon/manifest.json @@ -9,7 +9,7 @@ "iot_class": "cloud_polling", "issue_tracker": "https://github.com/Andre0512/hon/issues", "requirements": [ - "pyhOn==0.15.5" + "pyhOn==0.15.8" ], - "version": "0.9.1" + "version": "0.10.0-beta.1" } diff --git a/custom_components/hon/select.py b/custom_components/hon/select.py index f855479..58a11c1 100644 --- a/custom_components/hon/select.py +++ b/custom_components/hon/select.py @@ -64,6 +64,12 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = { translation_key="dirt_level", option_list=const.DIRTY_LEVEL, ), + HonConfigSelectEntityDescription( + key="startProgram.extendedStainType", + name="Stain Type", + icon="mdi:liquid-spot", + translation_key="stain_type", + ), ), "TD": ( HonConfigSelectEntityDescription( diff --git a/custom_components/hon/sensor.py b/custom_components/hon/sensor.py index a2d57d9..d381550 100644 --- a/custom_components/hon/sensor.py +++ b/custom_components/hon/sensor.py @@ -195,6 +195,14 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { translation_key="steam_level", option_list=const.STEAM_LEVEL, ), + HonSensorEntityDescription( + key="stainType", + name="Stain Type", + icon="mdi:liquid-spot", + device_class=SensorDeviceClass.ENUM, + translation_key="stain_type", + option_list=const.STAIN_TYPES, + ), ), "TD": ( HonSensorEntityDescription( diff --git a/custom_components/hon/translations/cs.json b/custom_components/hon/translations/cs.json index e6777a0..72a777a 100644 --- a/custom_components/hon/translations/cs.json +++ b/custom_components/hon/translations/cs.json @@ -1721,6 +1721,49 @@ "unknown": "unknown" }, "name": "Míra znečištění" + }, + "stain_type": { + "state": { + "baby_food": "Dětská výživa", + "bean_paste": "Fazolová polévka", + "blood": "Krev", + "blueberry": "Borůvka", + "blue_ink": "Modrý inkoust", + "butter": "Máslo", + "chili_oil": "Chilli olej", + "chili_sauce": "Chilli omáčka", + "chocolate": "Čokoláda", + "coffe": "Káva", + "coffee": "Káva", + "color_pencil": "Tužka", + "cooking_oil": "Kuchyňský olej", + "curry": "Kari", + "deodorant": "Deodorant", + "egg": "Vejce", + "fruit": "Ovoce", + "glue": "Lepidlo", + "grass": "Tráva", + "ice_cream": "Zmrzlina", + "ketchup": "Kečup", + "lip_gloss": "Lesk na rty", + "mayonnaise": "Majonéza", + "mech_grease": "Strojní mazivo", + "milk": "Mléko", + "milk_tea": "Čaj s mlékem", + "oil": "Olej", + "oil_pastel": "Olejový pastel", + "perfume": "Parfém", + "rust": "Rez", + "shoe_cream": "Krém na obuv", + "soil": "Hlína", + "soy_sauce": "Sójová Omáčka", + "stain_level": "Úroveň znečištění", + "sweat": "Skvrny od potu", + "tea": "Čaj", + "wine": "Víno", + "unknown": "unknown" + }, + "name": "Úroveň znečištění" } }, "switch": { diff --git a/custom_components/hon/translations/de.json b/custom_components/hon/translations/de.json index 9c610f5..b21e01a 100644 --- a/custom_components/hon/translations/de.json +++ b/custom_components/hon/translations/de.json @@ -1721,6 +1721,49 @@ "unknown": "unknown" }, "name": "Verschmutzungsgrad" + }, + "stain_type": { + "state": { + "baby_food": "Babynahrung", + "bean_paste": "Bohnensuppe", + "blood": "Blut", + "blueberry": "Blaubeere", + "blue_ink": "Blaue Tinte", + "butter": "Butter", + "chili_oil": "Chili-Öl", + "chili_sauce": "Chili-Sauce", + "chocolate": "Schokolade", + "coffe": "Kaffee", + "coffee": "Kaffee", + "color_pencil": "Bleistift", + "cooking_oil": "Speiseöl", + "curry": "Curry", + "deodorant": "Deodorant", + "egg": "Ei", + "fruit": "Obst", + "glue": "Klebstoff", + "grass": "Gras", + "ice_cream": "Eiscreme", + "ketchup": "Ketchup", + "lip_gloss": "Lipgloss", + "mayonnaise": "Mayonaise", + "mech_grease": "Mechanisches Fett", + "milk": "Milch", + "milk_tea": "Milchtee", + "oil": "Öl", + "oil_pastel": "Ölpastell", + "perfume": "Parfüm", + "rust": "Rostflecken", + "shoe_cream": "Schuhcreme", + "soil": "Boden", + "soy_sauce": "Sojasosse", + "stain_level": "Grad der Verschmutzung", + "sweat": "Schweiß", + "tea": "Tee", + "wine": "Wein", + "unknown": "unknown" + }, + "name": "Grad der Verschmutzung" } }, "switch": { diff --git a/custom_components/hon/translations/el.json b/custom_components/hon/translations/el.json index 4061281..2ebaee7 100644 --- a/custom_components/hon/translations/el.json +++ b/custom_components/hon/translations/el.json @@ -1721,6 +1721,49 @@ "unknown": "unknown" }, "name": "Επίπεδο βρωμιάς" + }, + "stain_type": { + "state": { + "baby_food": "Βρεφικές τροφές", + "bean_paste": "Σούπα φασολιών", + "blood": "Αίμα", + "blueberry": "Μπλε μύρτιλο (μπλούμπερι)", + "blue_ink": "Μπλε μελάνι", + "butter": "Βούτυρο", + "chili_oil": "Λάδι τσίλι", + "chili_sauce": "Σάλτσα τσίλι", + "chocolate": "Σοκολάτα", + "coffe": "Καφές", + "coffee": "Καφές", + "color_pencil": "Μολύβι", + "cooking_oil": "Μαγειρικό λάδι", + "curry": "Κάρι", + "deodorant": "Αποσμητικό", + "egg": "Αυγό", + "fruit": "Φρουτα", + "glue": "Κόλλα", + "grass": "Γρασίδι", + "ice_cream": "Παγωτό", + "ketchup": "Κέτσαπ", + "lip_gloss": "Lip gloss", + "mayonnaise": "Μαγιονέζα", + "mech_grease": "Λάδι μηχανής", + "milk": "Γάλα", + "milk_tea": "Τσάι με γάλα", + "oil": "Λάδι", + "oil_pastel": "Χρώμα λαδιού", + "perfume": "Άρωμα", + "rust": "Σκουριά", + "shoe_cream": "Βερνίκι παπουτσιών", + "soil": "Χώμα", + "soy_sauce": "Σαλτσα Σογιας", + "stain_level": "Επίπεδο λεκέδων", + "sweat": "Ιδρώτας", + "tea": "Τσάι", + "wine": "Κρασί", + "unknown": "unknown" + }, + "name": "Επίπεδο λεκέδων" } }, "switch": { diff --git a/custom_components/hon/translations/en.json b/custom_components/hon/translations/en.json index d6868a8..8a331e9 100644 --- a/custom_components/hon/translations/en.json +++ b/custom_components/hon/translations/en.json @@ -1750,6 +1750,49 @@ "unknown": "unknown" }, "name": "Dirt level" + }, + "stain_type": { + "state": { + "baby_food": "Baby food", + "bean_paste": "Bean soup", + "blood": "Blood", + "blueberry": "Blueberry", + "blue_ink": "Blue ink", + "butter": "Butter", + "chili_oil": "Chili oil", + "chili_sauce": "Chili sauce", + "chocolate": "Chocolate", + "coffe": "Coffee", + "coffee": "Coffee", + "color_pencil": "Pencil", + "cooking_oil": "Cooking oil", + "curry": "Curry", + "deodorant": "Deodorant", + "egg": "Egg", + "fruit": "Fruit", + "glue": "Glue", + "grass": "Grass", + "ice_cream": "Ice cream", + "ketchup": "Ketchup", + "lip_gloss": "Lip gloss", + "mayonnaise": "Mayonnaise", + "mech_grease": "Mech grease", + "milk": "Milk", + "milk_tea": "Milk tea", + "oil": "Oil", + "oil_pastel": "Oil pastel", + "perfume": "Perfume", + "rust": "Rust", + "shoe_cream": "Shoe cream", + "soil": "Soil", + "soy_sauce": "Soy sauce", + "stain_level": "Stain level", + "sweat": "Sweat", + "tea": "Tea", + "wine": "Wine", + "unknown": "unknown" + }, + "name": "Stain level" } }, "switch": { diff --git a/custom_components/hon/translations/es.json b/custom_components/hon/translations/es.json index 9e8f13e..17100cb 100644 --- a/custom_components/hon/translations/es.json +++ b/custom_components/hon/translations/es.json @@ -1721,6 +1721,49 @@ "unknown": "unknown" }, "name": "Nivel de suciedad" + }, + "stain_type": { + "state": { + "baby_food": "Comida de bebé", + "bean_paste": "Sopa de alubias", + "blood": "Sangre", + "blueberry": "Arándano", + "blue_ink": "Tinta azul", + "butter": "Mantequilla", + "chili_oil": "Aceite de chile", + "chili_sauce": "Salsa de chile", + "chocolate": "Chocolate", + "coffe": "Café", + "coffee": "Café", + "color_pencil": "Lápiz", + "cooking_oil": "Aceite de cocina", + "curry": "Curry", + "deodorant": "Desodorante", + "egg": "Huevo", + "fruit": "Fruta", + "glue": "Pegamento", + "grass": "Césped", + "ice_cream": "Helado", + "ketchup": "Kétchup", + "lip_gloss": "Brillo de labios", + "mayonnaise": "Mayonesa", + "mech_grease": "Grasa mecánica", + "milk": "Leche", + "milk_tea": "Té con leche", + "oil": "Aceite", + "oil_pastel": "Pastel al óleo", + "perfume": "Perfume", + "rust": "Óxido", + "shoe_cream": "Betún", + "soil": "Tierra", + "soy_sauce": "Salsa De Soja", + "stain_level": "Nivel de manchas", + "sweat": "Sudor", + "tea": "Té", + "wine": "Vino", + "unknown": "unknown" + }, + "name": "Nivel de manchas" } }, "switch": { diff --git a/custom_components/hon/translations/fr.json b/custom_components/hon/translations/fr.json index 7ec59be..698f09b 100644 --- a/custom_components/hon/translations/fr.json +++ b/custom_components/hon/translations/fr.json @@ -1721,6 +1721,49 @@ "unknown": "unknown" }, "name": "Niveau de saleté" + }, + "stain_type": { + "state": { + "baby_food": "Aliments pour bébés", + "bean_paste": "Soupe de haricots", + "blood": "Sang", + "blueberry": "Myrtilles", + "blue_ink": "Encre bleue", + "butter": "Beurre", + "chili_oil": "Huile piquante", + "chili_sauce": "Sauce chili", + "chocolate": "Chocolat", + "coffe": "Café", + "coffee": "Café", + "color_pencil": "Crayon", + "cooking_oil": "Huile de cuisson", + "curry": "Curry", + "deodorant": "Déodorant", + "egg": "Œuf", + "fruit": "Fruits", + "glue": "Colle", + "grass": "Herbe", + "ice_cream": "Glace", + "ketchup": "Ketchup", + "lip_gloss": "Brillant à lèvres", + "mayonnaise": "Mayonnaise", + "mech_grease": "Graisse mécanique", + "milk": "Lait", + "milk_tea": "Thé au lait", + "oil": "Huile", + "oil_pastel": "Pastel à l'huile", + "perfume": "Parfum", + "rust": "Rouille", + "shoe_cream": "Cirage pour chaussures", + "soil": "Sol", + "soy_sauce": "Sauce Soja", + "stain_level": "Niveau de salissure", + "sweat": "Sueur", + "tea": "Thé", + "wine": "Vin", + "unknown": "unknown" + }, + "name": "Niveau de salissure" } }, "switch": { diff --git a/custom_components/hon/translations/he.json b/custom_components/hon/translations/he.json index daa53fb..d1dc0bf 100644 --- a/custom_components/hon/translations/he.json +++ b/custom_components/hon/translations/he.json @@ -786,6 +786,49 @@ "unknown": "unknown" }, "name": "רמת עפר" + }, + "stain_type": { + "state": { + "baby_food": "Baby food", + "bean_paste": "Bean soup", + "blood": "Blood", + "blueberry": "Blueberry", + "blue_ink": "Blue ink", + "butter": "Butter", + "chili_oil": "Chili oil", + "chili_sauce": "Chili sauce", + "chocolate": "שוקולד", + "coffe": "Coffee", + "coffee": "Coffee", + "color_pencil": "Pencil", + "cooking_oil": "Cooking oil", + "curry": "Curry", + "deodorant": "Deodorant", + "egg": "Egg", + "fruit": "פרי", + "glue": "Glue", + "grass": "Grass", + "ice_cream": "Ice cream", + "ketchup": "Ketchup", + "lip_gloss": "Lip gloss", + "mayonnaise": "Mayonnaise", + "mech_grease": "Mech grease", + "milk": "Milk", + "milk_tea": "Milk tea", + "oil": "Oil", + "oil_pastel": "Oil pastel", + "perfume": "Perfume", + "rust": "Rust", + "shoe_cream": "Shoe cream", + "soil": "Soil", + "soy_sauce": "רוטב סויה", + "stain_level": "Stain level", + "sweat": "Sweat", + "tea": "תה", + "wine": "Wine", + "unknown": "unknown" + }, + "name": "Stain level" } }, "switch": { diff --git a/custom_components/hon/translations/hr.json b/custom_components/hon/translations/hr.json index 63daa8e..a4acff1 100644 --- a/custom_components/hon/translations/hr.json +++ b/custom_components/hon/translations/hr.json @@ -1721,6 +1721,49 @@ "unknown": "unknown" }, "name": "Stupanj zaprljanosti" + }, + "stain_type": { + "state": { + "baby_food": "Hrana za bebe", + "bean_paste": "Juha od graha", + "blood": "Krv", + "blueberry": "Borovnica", + "blue_ink": "Plava tinta", + "butter": "Maslac", + "chili_oil": "Ulje čilija", + "chili_sauce": "Umak od čilija", + "chocolate": "Čokolada", + "coffe": "Kava", + "coffee": "Kava", + "color_pencil": "Olovka", + "cooking_oil": "Ulje za kuhanje", + "curry": "Curry", + "deodorant": "Dezodorans", + "egg": "Jaje", + "fruit": "Voće", + "glue": "Ljepilo", + "grass": "Trava", + "ice_cream": "Sladoled", + "ketchup": "Kečap", + "lip_gloss": "Sjajilo za usne", + "mayonnaise": "Majoneza", + "mech_grease": "Mech mast", + "milk": "Mlijeko", + "milk_tea": "Čaj s mlijekom", + "oil": "Ulje", + "oil_pastel": "Uljne pastele", + "perfume": "Parfem", + "rust": "Hrđa", + "shoe_cream": "Krema za cipele", + "soil": "Tlo", + "soy_sauce": "Umak Od Soje", + "stain_level": "Razina mrlja", + "sweat": "Znoj", + "tea": "Čaj", + "wine": "Vino", + "unknown": "unknown" + }, + "name": "Razina mrlja" } }, "switch": { diff --git a/custom_components/hon/translations/it.json b/custom_components/hon/translations/it.json index ccee9f3..c13896a 100644 --- a/custom_components/hon/translations/it.json +++ b/custom_components/hon/translations/it.json @@ -1730,6 +1730,49 @@ "unknown": "unknown" }, "name": "Livello di sporco" + }, + "stain_type": { + "state": { + "baby_food": "Cibo per bambini", + "bean_paste": "Crema di fagioli", + "blood": "Sangue", + "blueberry": "Mirtillo", + "blue_ink": "Inchiostro blu", + "butter": "Burro", + "chili_oil": "Olio piccante", + "chili_sauce": "Salsa piccante", + "chocolate": "Cioccolato", + "coffe": "Caffè", + "coffee": "Caffè", + "color_pencil": "Matita", + "cooking_oil": "Olio di cottura", + "curry": "Curry", + "deodorant": "Deodorante", + "egg": "Uovo", + "fruit": "Frutta", + "glue": "Colla", + "grass": "Erba", + "ice_cream": "Gelato", + "ketchup": "Ketchup", + "lip_gloss": "Lucidalabbra", + "mayonnaise": "Maionese", + "mech_grease": "Grasso meccanico", + "milk": "Latte", + "milk_tea": "Tè con latte", + "oil": "Olio", + "oil_pastel": "Pastello ad olio", + "perfume": "Profumo", + "rust": "Ruggine", + "shoe_cream": "Crema lucidascarpe", + "soil": "Terra", + "soy_sauce": "Salsa di soia", + "stain_level": "Livello di sporco", + "sweat": "Sudore", + "tea": "Tè", + "wine": "Vino", + "unknown": "unknown" + }, + "name": "Livello di sporco" } }, "switch": { diff --git a/custom_components/hon/translations/nl.json b/custom_components/hon/translations/nl.json index 9dcc9e7..795966d 100644 --- a/custom_components/hon/translations/nl.json +++ b/custom_components/hon/translations/nl.json @@ -1721,6 +1721,49 @@ "unknown": "unknown" }, "name": "Vuilheid" + }, + "stain_type": { + "state": { + "baby_food": "Babyvoeding", + "bean_paste": "Bonensoep", + "blood": "Bloed", + "blueberry": "Blauwe bessen", + "blue_ink": "Blauwe inkt", + "butter": "Boter", + "chili_oil": "Chili-olie", + "chili_sauce": "Chilisaus", + "chocolate": "Chocolade", + "coffe": "Koffie", + "coffee": "Koffie", + "color_pencil": "Potlood", + "cooking_oil": "Bakolie", + "curry": "Curry", + "deodorant": "Deodorant", + "egg": "Ei", + "fruit": "Fruit", + "glue": "Lijm", + "grass": "Gras", + "ice_cream": "IJs", + "ketchup": "Ketchup", + "lip_gloss": "Lipgloss", + "mayonnaise": "Mayonaise", + "mech_grease": "Smeervet", + "milk": "Melk", + "milk_tea": "Thee met melk", + "oil": "Olie", + "oil_pastel": "Oliepastel", + "perfume": "Parfum", + "rust": "Roest", + "shoe_cream": "Schoensmeer", + "soil": "Aarde", + "soy_sauce": "Sojasaus", + "stain_level": "Vlekniveau", + "sweat": "Zweet", + "tea": "Thee", + "wine": "Wijn", + "unknown": "unknown" + }, + "name": "Vlekniveau" } }, "switch": { diff --git a/custom_components/hon/translations/pl.json b/custom_components/hon/translations/pl.json index 3795703..97f454c 100644 --- a/custom_components/hon/translations/pl.json +++ b/custom_components/hon/translations/pl.json @@ -1721,6 +1721,49 @@ "unknown": "unknown" }, "name": "Stopień zabrudzenia" + }, + "stain_type": { + "state": { + "baby_food": "Jedzenie dla dzieci", + "bean_paste": "Zupa fasolowa", + "blood": "Krew", + "blueberry": "Borówka amerykańska", + "blue_ink": "Niebieski atrament", + "butter": "Masło", + "chili_oil": "Olej z chili", + "chili_sauce": "Sos chili", + "chocolate": "Czekolada", + "coffe": "Kawa", + "coffee": "Kawa", + "color_pencil": "Ołówek", + "cooking_oil": "Olej do gotowania", + "curry": "Curry", + "deodorant": "Dezodorant", + "egg": "Jajko", + "fruit": "Owoce", + "glue": "Klej", + "grass": "Trawa", + "ice_cream": "Lody", + "ketchup": "Ketchup", + "lip_gloss": "Błyszczyk", + "mayonnaise": "Majonez", + "mech_grease": "Smar mechaniczny", + "milk": "Mleko", + "milk_tea": "Herbata z mlekiem", + "oil": "Olej", + "oil_pastel": "Pastele olejne", + "perfume": "Perfumy", + "rust": "Rdza", + "shoe_cream": "pasta do butów", + "soil": "Ziemia", + "soy_sauce": "Sos Sojowy", + "stain_level": "Stopień zabrudzenia", + "sweat": "Pot", + "tea": "Herbata", + "wine": "Wino", + "unknown": "unknown" + }, + "name": "Stopień zabrudzenia" } }, "switch": { diff --git a/custom_components/hon/translations/pt.json b/custom_components/hon/translations/pt.json index 33cdbdc..1084b88 100644 --- a/custom_components/hon/translations/pt.json +++ b/custom_components/hon/translations/pt.json @@ -1721,6 +1721,49 @@ "unknown": "unknown" }, "name": "Nível de sujidade" + }, + "stain_type": { + "state": { + "baby_food": "Alimentos para bebés", + "bean_paste": "Sopa de feijão", + "blood": "Sangue", + "blueberry": "Mirtilo", + "blue_ink": "Tinta azul", + "butter": "Manteiga", + "chili_oil": "Óleo de pimentão", + "chili_sauce": "Molho de chili", + "chocolate": "Chocolate", + "coffe": "Café", + "coffee": "Café", + "color_pencil": "Lápis", + "cooking_oil": "Óleo alimentar", + "curry": "Caril", + "deodorant": "Desodorizante", + "egg": "Ovo", + "fruit": "Fruta", + "glue": "Cola", + "grass": "Relva", + "ice_cream": "Gelado", + "ketchup": "Ketchup", + "lip_gloss": "Brilho labial", + "mayonnaise": "Maionese", + "mech_grease": "Massa lubrificante mecânica", + "milk": "Leite", + "milk_tea": "Chá com leite", + "oil": "Petróleo", + "oil_pastel": "Pastel de óleo", + "perfume": "Perfume", + "rust": "Ferrugem", + "shoe_cream": "Graxa para sapatos", + "soil": "Solo", + "soy_sauce": "Molho De Soja", + "stain_level": "Nível da nódoa", + "sweat": "Suor", + "tea": "Chá", + "wine": "Vinho", + "unknown": "unknown" + }, + "name": "Nível da nódoa" } }, "switch": { diff --git a/custom_components/hon/translations/ro.json b/custom_components/hon/translations/ro.json index 7146920..2d592a9 100644 --- a/custom_components/hon/translations/ro.json +++ b/custom_components/hon/translations/ro.json @@ -1721,6 +1721,49 @@ "unknown": "unknown" }, "name": "Nivel de murdărie" + }, + "stain_type": { + "state": { + "baby_food": "Alimente pentru copii", + "bean_paste": "Supă de fasole", + "blood": "Sânge", + "blueberry": "Afine", + "blue_ink": "Cerneală albastră", + "butter": "Unt", + "chili_oil": "Ulei de chili", + "chili_sauce": "Sos de chili", + "chocolate": "Ciocolată", + "coffe": "Cafea", + "coffee": "Cafea", + "color_pencil": "Creion", + "cooking_oil": "Ulei de gătit", + "curry": "Curry", + "deodorant": "Deodorant", + "egg": "Ou", + "fruit": "Fructe", + "glue": "Lipici", + "grass": "Iarbă", + "ice_cream": "Înghețată", + "ketchup": "Ketchup", + "lip_gloss": "Luciu de buze", + "mayonnaise": "Maioneză", + "mech_grease": "Unsoare mecanică", + "milk": "Lapte", + "milk_tea": "Ceai cu lapte", + "oil": "Ulei", + "oil_pastel": "Culori pe bază de ulei", + "perfume": "Parfum", + "rust": "Rugină", + "shoe_cream": "Cremă pentru pantofi", + "soil": "Pământ", + "soy_sauce": "Sos de soia", + "stain_level": "Nivelul de pătare", + "sweat": "Sudoare", + "tea": "Ceai", + "wine": "Vin", + "unknown": "unknown" + }, + "name": "Nivelul de pătare" } }, "switch": { diff --git a/custom_components/hon/translations/ru.json b/custom_components/hon/translations/ru.json index 49d0259..8a907c8 100644 --- a/custom_components/hon/translations/ru.json +++ b/custom_components/hon/translations/ru.json @@ -1721,6 +1721,49 @@ "unknown": "unknown" }, "name": "Уровень загрязнения" + }, + "stain_type": { + "state": { + "baby_food": "Детское питание", + "bean_paste": "Фасолевый суп", + "blood": "Кровь", + "blueberry": "Голубика", + "blue_ink": "Синие чернила", + "butter": "Масло", + "chili_oil": "Масло чили", + "chili_sauce": "Соус чили", + "chocolate": "Шоколад", + "coffe": "Кофе", + "coffee": "Кофе", + "color_pencil": "Карандаш", + "cooking_oil": "Растительное масло", + "curry": "Карри", + "deodorant": "Дезодорант", + "egg": "Яйцо", + "fruit": "Фрукты", + "glue": "Клей", + "grass": "Трава", + "ice_cream": "Мороженое", + "ketchup": "Кетчуп", + "lip_gloss": "Блеск для губ", + "mayonnaise": "Майонез", + "mech_grease": "Мех. смазка", + "milk": "Молоко", + "milk_tea": "Молочный чай", + "oil": "Растительное масло", + "oil_pastel": "Масляная пастель", + "perfume": "Парфюмерия", + "rust": "Ржавчина", + "shoe_cream": "Крем для обуви", + "soil": "Почва", + "soy_sauce": "Соевый Соус", + "stain_level": "Уровень загрязнения", + "sweat": "Пот", + "tea": "Чай", + "wine": "Вино", + "unknown": "unknown" + }, + "name": "Уровень загрязнения" } }, "switch": { diff --git a/custom_components/hon/translations/sk.json b/custom_components/hon/translations/sk.json index 55b7bda..27a8d6c 100644 --- a/custom_components/hon/translations/sk.json +++ b/custom_components/hon/translations/sk.json @@ -1721,6 +1721,49 @@ "unknown": "unknown" }, "name": "Úroveň znečistenia" + }, + "stain_type": { + "state": { + "baby_food": "Detská výživa", + "bean_paste": "Fazuľová polievka", + "blood": "Krv", + "blueberry": "Čučoriedka", + "blue_ink": "Modrý atrament", + "butter": "Maslo", + "chili_oil": "Čili olej", + "chili_sauce": "Čili omáčka", + "chocolate": "Čokoláda", + "coffe": "Káva", + "coffee": "Káva", + "color_pencil": "Ceruzka", + "cooking_oil": "Olej na varenie", + "curry": "Karí", + "deodorant": "Dezodorant", + "egg": "Vajíčko", + "fruit": "Ovocie", + "glue": "Lepidlo", + "grass": "Tráva", + "ice_cream": "Zmrzlina", + "ketchup": "Kečup", + "lip_gloss": "Lesk na pery", + "mayonnaise": "Majonéza", + "mech_grease": "Mechanické mazivo", + "milk": "Mlieko", + "milk_tea": "Mliečny čaj", + "oil": "Olej", + "oil_pastel": "Olejový pastel", + "perfume": "Parfém", + "rust": "Hrdza", + "shoe_cream": "Krém na topánky", + "soil": "Pôda", + "soy_sauce": "Sójovej Omáčky", + "stain_level": "Úroveň škvŕn", + "sweat": "Pot", + "tea": "Čaj", + "wine": "Víno", + "unknown": "unknown" + }, + "name": "Úroveň škvŕn" } }, "switch": { diff --git a/custom_components/hon/translations/sl.json b/custom_components/hon/translations/sl.json index 691f8db..954293d 100644 --- a/custom_components/hon/translations/sl.json +++ b/custom_components/hon/translations/sl.json @@ -1721,6 +1721,49 @@ "unknown": "unknown" }, "name": "Stopnja umazanije" + }, + "stain_type": { + "state": { + "baby_food": "Otroška hrana", + "bean_paste": "Fižolova juha", + "blood": "Kri", + "blueberry": "Borovnica", + "blue_ink": "Modro črnilo", + "butter": "Maslo", + "chili_oil": "Čilijevo olje", + "chili_sauce": "Čili omaka", + "chocolate": "Čokolada", + "coffe": "Kava", + "coffee": "Kava", + "color_pencil": "Svinčnik", + "cooking_oil": "Olje za kuhanje", + "curry": "Kari", + "deodorant": "Dezodorant", + "egg": "Jajce", + "fruit": "Sadje", + "glue": "Lepilo", + "grass": "Trava", + "ice_cream": "Sladoled", + "ketchup": "Kečap", + "lip_gloss": "Balzam za ustnice", + "mayonnaise": "Majoneza", + "mech_grease": "Strojna mast", + "milk": "Mleko", + "milk_tea": "Mlečni čaj", + "oil": "Olje", + "oil_pastel": "Oljni pastel", + "perfume": "Parfum", + "rust": "Rja", + "shoe_cream": "Krema za čevlje", + "soil": "Tla", + "soy_sauce": "Sojina Omaka", + "stain_level": "Stopnja madežev", + "sweat": "Pot", + "tea": "Čaj", + "wine": "Vino", + "unknown": "unknown" + }, + "name": "Stopnja madežev" } }, "switch": { diff --git a/custom_components/hon/translations/sr.json b/custom_components/hon/translations/sr.json index be49d99..3c94f97 100644 --- a/custom_components/hon/translations/sr.json +++ b/custom_components/hon/translations/sr.json @@ -1721,6 +1721,49 @@ "unknown": "unknown" }, "name": "Nivo zaprljanosti" + }, + "stain_type": { + "state": { + "baby_food": "Hrana za bebe", + "bean_paste": "Pasulj", + "blood": "Krv", + "blueberry": "Borovnica", + "blue_ink": "Plavo mastilo", + "butter": "Maslac", + "chili_oil": "Ulje sa čilijem", + "chili_sauce": "Čili sos", + "chocolate": "Čokolada", + "coffe": "Kafa", + "coffee": "Kafa", + "color_pencil": "Olovka", + "cooking_oil": "Kuhinjsko ulje", + "curry": "Kari", + "deodorant": "Dezodorans", + "egg": "Jaje", + "fruit": "Voće", + "glue": "Lepak", + "grass": "Trava", + "ice_cream": "Sladoled", + "ketchup": "Kečap", + "lip_gloss": "Sjaj za usne", + "mayonnaise": "Majonez", + "mech_grease": "Mehaničko mazivo", + "milk": "Mleko", + "milk_tea": "Čaj sa mlekom", + "oil": "Ulje", + "oil_pastel": "Voštane boje", + "perfume": "Parfem", + "rust": "Rđa", + "shoe_cream": "Krema za cipele", + "soil": "Zemlja", + "soy_sauce": "Soja Sos", + "stain_level": "Nivo mrlje", + "sweat": "Znoj", + "tea": "Čaj", + "wine": "Vino", + "unknown": "unknown" + }, + "name": "Nivo mrlje" } }, "switch": { diff --git a/custom_components/hon/translations/tr.json b/custom_components/hon/translations/tr.json index d3c4c61..9af7407 100644 --- a/custom_components/hon/translations/tr.json +++ b/custom_components/hon/translations/tr.json @@ -1721,6 +1721,49 @@ "unknown": "unknown" }, "name": "Kir seviyesi" + }, + "stain_type": { + "state": { + "baby_food": "Bebek maması", + "bean_paste": "Fasulye çorbası", + "blood": "Kan", + "blueberry": "Yabanmersini", + "blue_ink": "Mavi mürekkep", + "butter": "Tereyağı", + "chili_oil": "Biber yağı", + "chili_sauce": "Acı sos", + "chocolate": "Çikolata", + "coffe": "Kahve", + "coffee": "Kahve", + "color_pencil": "Kalem", + "cooking_oil": "Yemek yağı", + "curry": "Köri", + "deodorant": "Deodorant", + "egg": "Yumurta", + "fruit": "Meyve", + "glue": "Tutkal", + "grass": "Çim", + "ice_cream": "Dondurma", + "ketchup": "Ketçap", + "lip_gloss": "Dudak parlatıcısı", + "mayonnaise": "Mayonez", + "mech_grease": "Makine gresi", + "milk": "Süt", + "milk_tea": "Sütlü çay", + "oil": "Sıvı yağ", + "oil_pastel": "Yağlı pastel", + "perfume": "Parfüm", + "rust": "Pas", + "shoe_cream": "Ayakkabı kremi", + "soil": "Toprak", + "soy_sauce": "Soya Sosu", + "stain_level": "Leke seviyesi", + "sweat": "Ter", + "tea": "Çay", + "wine": "Şarap", + "unknown": "unknown" + }, + "name": "Leke seviyesi" } }, "switch": { diff --git a/custom_components/hon/translations/zh.json b/custom_components/hon/translations/zh.json index 9808d67..81076f9 100644 --- a/custom_components/hon/translations/zh.json +++ b/custom_components/hon/translations/zh.json @@ -1707,6 +1707,49 @@ "unknown": "unknown" }, "name": "脏污程度" + }, + "stain_type": { + "state": { + "baby_food": "婴儿食品", + "bean_paste": "豆汤", + "blood": "血渍", + "blueberry": "蓝莓", + "blue_ink": "蓝色墨水", + "butter": "黄油", + "chili_oil": "辣椒油", + "chili_sauce": "辣椒酱", + "chocolate": "巧克力", + "coffe": "咖啡", + "coffee": "咖啡", + "color_pencil": "铅笔", + "cooking_oil": "食用油", + "curry": "咖喱", + "deodorant": "除臭剂", + "egg": "鸡蛋", + "fruit": "水果", + "glue": "胶水", + "grass": "青草", + "ice_cream": "冰淇淋", + "ketchup": "调味蕃茄酱", + "lip_gloss": "唇彩", + "mayonnaise": "蛋黄酱", + "mech_grease": "机械润滑油", + "milk": "牛奶", + "milk_tea": "奶茶", + "oil": "油", + "oil_pastel": "油画棒", + "perfume": "香水", + "rust": "锈", + "shoe_cream": "鞋油", + "soil": "土壤", + "soy_sauce": "酱油", + "stain_level": "污渍水平", + "sweat": "汗水", + "tea": "茶渍", + "wine": "酒类", + "unknown": "unknown" + }, + "name": "污渍水平" } }, "switch": { diff --git a/scripts/sensor_docs.py b/scripts/sensor_docs.py index 0f79e5d..d968968 100755 --- a/scripts/sensor_docs.py +++ b/scripts/sensor_docs.py @@ -79,5 +79,7 @@ readme = re.sub( readme, re.DOTALL, ) +entities = sum(len(x) for cat in result.values() for x in cat.values()) +readme = re.sub("badge/Entities-\\d+", f"badge/Entities-{entities}", readme) with open(Path(__file__).parent.parent / "README.md", "w") as file: file.write(readme) diff --git a/scripts/translation_keys.py b/scripts/translation_keys.py index 81b30da..f5f7a71 100644 --- a/scripts/translation_keys.py +++ b/scripts/translation_keys.py @@ -115,6 +115,46 @@ REF_HUMIDITY_LEVELS = { "high": "GLOBALS.GENERAL.HIGH", } +STAINS = { + "baby_food": "STAIN_TYPE_LIST.STAINS.BABY_FOOD", + "bean_paste": "STAIN_TYPE_LIST.STAINS.BEAN_PASTE", + "blood": "STAIN_TYPE_LIST.STAINS.BLOOD", + "blueberry": "STAIN_TYPE_LIST.STAINS.BLUEBERRY", + "blue_ink": "STAIN_TYPE_LIST.STAINS.BLUE_INK", + "butter": "STAIN_TYPE_LIST.STAINS.BUTTER", + "chili_oil": "STAIN_TYPE_LIST.STAINS.CHILI_OIL", + "chili_sauce": "STAIN_TYPE_LIST.STAINS.CHILI_SAUCE", + "chocolate": "STAIN_TYPE_LIST.STAINS.CHOCOLATE", + "coffe": "STAIN_TYPE_LIST.STAINS.COFFE", + "coffee": "STAIN_TYPE_LIST.STAINS.COFFEE", + "color_pencil": "STAIN_TYPE_LIST.STAINS.COLOR_PENCIL", + "cooking_oil": "STAIN_TYPE_LIST.STAINS.COOKING_OIL", + "curry": "STAIN_TYPE_LIST.STAINS.CURRY", + "deodorant": "STAIN_TYPE_LIST.STAINS.DEODORANT", + "egg": "STAIN_TYPE_LIST.STAINS.EGG", + "fruit": "STAIN_TYPE_LIST.STAINS.FRUIT", + "glue": "STAIN_TYPE_LIST.STAINS.GLUE", + "grass": "STAIN_TYPE_LIST.STAINS.GRASS", + "ice_cream": "STAIN_TYPE_LIST.STAINS.ICE_CREAM", + "ketchup": "STAIN_TYPE_LIST.STAINS.KETCHUP", + "lip_gloss": "STAIN_TYPE_LIST.STAINS.LIP_GLOSS", + "mayonnaise": "STAIN_TYPE_LIST.STAINS.MAYONNAISE", + "mech_grease": "STAIN_TYPE_LIST.STAINS.MECH_GREASE", + "milk": "STAIN_TYPE_LIST.STAINS.MILK", + "milk_tea": "STAIN_TYPE_LIST.STAINS.MILK_TEA", + "oil": "STAIN_TYPE_LIST.STAINS.OIL", + "oil_pastel": "STAIN_TYPE_LIST.STAINS.OIL_PASTEL", + "perfume": "STAIN_TYPE_LIST.STAINS.PERFUME", + "rust": "STAIN_TYPE_LIST.STAINS.RUST", + "shoe_cream": "STAIN_TYPE_LIST.STAINS.SHOE_CREAM", + "soil": "STAIN_TYPE_LIST.STAINS.SOIL", + "soy_sauce": "STAIN_TYPE_LIST.STAINS.SOY_SAUCE", + "sweat": "STAIN_TYPE_LIST.STAINS.SWEAT", + "tea": "STAIN_TYPE_LIST.STAINS.TEA", + "wine": "STAIN_TYPE_LIST.STAINS.WINE", + "unknown": "unknown", +} + SENSOR = { "washing_modes": MACH_MODE, @@ -137,6 +177,7 @@ SELECT = { "mode": AP_MACH_MODE, "diffuser": AP_DIFFUSER_LEVEL, "dirt_level": DIRTY_LEVEL, + "stain_type": STAINS, } PROGRAMS = { @@ -302,6 +343,7 @@ NAMES = { "mode": "CUBE90_GLOBAL.GENERAL.MODE", "steam_level": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.STEAM_LEVEL", "dirt_level": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.DIRTY_LEVEL", + "stain_type": "STAIN_TYPE_LIST.STAINS.STAIN_LEVEL", }, "sensor": { "dry_levels": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_LEVEL",