Added Alexa Music
This commit is contained in:
@@ -55,16 +55,63 @@ TEMPLATE_CATEGORIES: dict[str, dict[str, str]] = {
|
||||
"name_uk": "Житло та кліматичні системи",
|
||||
"name_zh": "家",
|
||||
},
|
||||
# v2.27: two extra top-level groups keep the growing catalog scannable —
|
||||
# recurring HOUSEHOLD routines split from device-centric "home", and
|
||||
# GARDEN/outdoor split from "pool". Dict order = display order everywhere
|
||||
# (both pickers and the settings gallery group by these).
|
||||
"household": {
|
||||
"icon": "mdi:broom",
|
||||
"name_en": "Household & Routines",
|
||||
"name_de": "Haushalt & Routinen",
|
||||
"name_nl": "Huishouden & routines",
|
||||
"name_fr": "Ménage & routines",
|
||||
"name_it": "Casa & routine",
|
||||
"name_es": "Hogar & rutinas",
|
||||
"name_ru": "Быт и рутины",
|
||||
"name_uk": "Побут і рутини",
|
||||
"name_pt": "Casa & rotinas",
|
||||
"name_pl": "Gospodarstwo i rutyny",
|
||||
"name_cs": "Domácnost a rutiny",
|
||||
"name_sv": "Hushåll & rutiner",
|
||||
"name_da": "Husholdning & rutiner",
|
||||
"name_nb": "Husholdning & rutiner",
|
||||
"name_fi": "Kotityöt ja rutiinit",
|
||||
"name_ja": "家事・ルーティン",
|
||||
"name_hi": "गृहकार्य और दिनचर्या",
|
||||
"name_zh": "家务与日常",
|
||||
},
|
||||
"garden": {
|
||||
"icon": "mdi:tree",
|
||||
"name_en": "Garden & Outdoor",
|
||||
"name_de": "Garten & Außenbereich",
|
||||
"name_nl": "Tuin & buiten",
|
||||
"name_fr": "Jardin & extérieur",
|
||||
"name_it": "Giardino & esterni",
|
||||
"name_es": "Jardín & exterior",
|
||||
"name_ru": "Сад и участок",
|
||||
"name_uk": "Сад і подвір'я",
|
||||
"name_pt": "Jardim & exterior",
|
||||
"name_pl": "Ogród i otoczenie",
|
||||
"name_cs": "Zahrada a exteriér",
|
||||
"name_sv": "Trädgård & utomhus",
|
||||
"name_da": "Have & udendørs",
|
||||
"name_nb": "Hage & utendørs",
|
||||
"name_fi": "Piha ja ulkotilat",
|
||||
"name_ja": "庭・屋外",
|
||||
"name_hi": "बगीचा और बाहरी क्षेत्र",
|
||||
"name_zh": "花园与户外",
|
||||
},
|
||||
"pool": {
|
||||
"icon": "mdi:pool",
|
||||
"name_en": "Pool & Garden",
|
||||
"name_de": "Pool & Garten",
|
||||
"name_nl": "Zwembad & Tuin",
|
||||
"name_fr": "Piscine & Jardin",
|
||||
"name_it": "Piscina & Giardino",
|
||||
"name_es": "Piscina & Jardín",
|
||||
"name_ru": "Бассейн и сад",
|
||||
"name_uk": "Басейн та сад",
|
||||
"name_en": "Pool",
|
||||
"name_de": "Pool",
|
||||
"name_nl": "Zwembad",
|
||||
"name_fr": "Piscine",
|
||||
"name_it": "Piscina",
|
||||
"name_es": "Piscina",
|
||||
"name_ru": "Бассейн",
|
||||
"name_uk": "Басейн",
|
||||
"name_pt": "Piscina",
|
||||
"name_zh": "泳池",
|
||||
},
|
||||
"appliance": {
|
||||
@@ -138,6 +185,25 @@ TEMPLATES: list[ObjectTemplate] = [
|
||||
TaskTemplate("Brake Fluid", "replacement", "time_based", 730, 60),
|
||||
],
|
||||
),
|
||||
ObjectTemplate(
|
||||
id="vehicle_ebike",
|
||||
name="E-Bike",
|
||||
category="vehicle",
|
||||
tasks=[
|
||||
TaskTemplate(
|
||||
"Battery Care Check",
|
||||
"inspection",
|
||||
"time_based",
|
||||
30,
|
||||
7,
|
||||
"Store the battery at 30–80% charge and away from frost — long-term storage full or empty ages the cells.",
|
||||
),
|
||||
TaskTemplate("Chain Lubrication", "service", "time_based", 30, 7),
|
||||
TaskTemplate("Tire Pressure Check", "inspection", "time_based", 14, 3),
|
||||
TaskTemplate("Brake Adjustment", "inspection", "time_based", 90, 14),
|
||||
TaskTemplate("Annual Service", "service", "time_based", 365, 30),
|
||||
],
|
||||
),
|
||||
# --- Home & HVAC ---
|
||||
ObjectTemplate(
|
||||
id="home_hvac",
|
||||
@@ -179,6 +245,99 @@ TEMPLATES: list[ObjectTemplate] = [
|
||||
TaskTemplate("Filter Replacement", "replacement", "time_based", 180, 14),
|
||||
],
|
||||
),
|
||||
# v2.27 wishlist wave (Discussion #85): RO filter, houseplants, bathroom
|
||||
# fan, kitchen knives — the freeze-sensitive garden/appliance ones live in
|
||||
# their categories below.
|
||||
ObjectTemplate(
|
||||
id="home_ro_filter",
|
||||
name="Drinking Water Filter",
|
||||
category="home",
|
||||
tasks=[
|
||||
TaskTemplate("Sediment Pre-Filter", "replacement", "time_based", 180, 14),
|
||||
TaskTemplate("Carbon Pre-Filter", "replacement", "time_based", 270, 21),
|
||||
TaskTemplate("RO Membrane", "replacement", "time_based", 730, 30),
|
||||
TaskTemplate("Post-Carbon Filter", "replacement", "time_based", 365, 30),
|
||||
TaskTemplate("Sanitize Filter Housings", "cleaning", "time_based", 365, 14),
|
||||
],
|
||||
),
|
||||
ObjectTemplate(
|
||||
id="home_houseplants",
|
||||
name="Houseplants",
|
||||
category="household",
|
||||
tasks=[
|
||||
TaskTemplate("Watering", "service", "time_based", 7, 1),
|
||||
TaskTemplate("Fertilizing", "service", "time_based", 30, 7),
|
||||
TaskTemplate("Repotting Check", "inspection", "time_based", 365, 30),
|
||||
],
|
||||
),
|
||||
ObjectTemplate(
|
||||
id="home_bathroom_fan",
|
||||
name="Bathroom Exhaust Fan",
|
||||
category="home",
|
||||
tasks=[
|
||||
TaskTemplate("Clean Fan and Grille", "cleaning", "time_based", 180, 14),
|
||||
],
|
||||
),
|
||||
ObjectTemplate(
|
||||
id="home_smoke_detectors",
|
||||
name="Smoke & CO Detectors",
|
||||
category="home",
|
||||
tasks=[
|
||||
TaskTemplate("Test Detectors", "inspection", "time_based", 30, 7),
|
||||
TaskTemplate("Replace Detector Batteries", "replacement", "time_based", 365, 30),
|
||||
TaskTemplate(
|
||||
"Replace Detectors",
|
||||
"replacement",
|
||||
"time_based",
|
||||
3650,
|
||||
90,
|
||||
"Smoke detectors expire — most sensors are rated for 10 years from the date printed on the unit.",
|
||||
),
|
||||
],
|
||||
),
|
||||
# --- Household & Routines (v2.27) ---
|
||||
ObjectTemplate(
|
||||
id="household_bathroom",
|
||||
name="Bathroom",
|
||||
category="household",
|
||||
tasks=[
|
||||
TaskTemplate("Clean Bathroom", "cleaning", "time_based", 7, 1),
|
||||
TaskTemplate("Change Towels", "cleaning", "time_based", 7, 1),
|
||||
TaskTemplate("Refill Soap Dispensers", "service", "time_based", 30, 7),
|
||||
TaskTemplate("Wash Bath Mats", "cleaning", "time_based", 30, 7),
|
||||
TaskTemplate("Check Silicone Seals", "inspection", "time_based", 365, 30),
|
||||
],
|
||||
),
|
||||
ObjectTemplate(
|
||||
id="household_bedroom",
|
||||
name="Bedroom",
|
||||
category="household",
|
||||
tasks=[
|
||||
TaskTemplate("Change Bed Linen", "cleaning", "time_based", 14, 3),
|
||||
TaskTemplate("Rotate Mattress", "service", "time_based", 90, 14),
|
||||
TaskTemplate("Wash Pillows and Duvets", "cleaning", "time_based", 180, 14),
|
||||
],
|
||||
),
|
||||
ObjectTemplate(
|
||||
id="household_kitchen",
|
||||
name="Kitchen",
|
||||
category="household",
|
||||
tasks=[
|
||||
TaskTemplate("Clean Refrigerator", "cleaning", "time_based", 90, 14),
|
||||
TaskTemplate("Defrost Freezer", "cleaning", "time_based", 180, 21),
|
||||
TaskTemplate("Range Hood Filter", "cleaning", "time_based", 90, 14),
|
||||
TaskTemplate("Oven Cleaning", "cleaning", "time_based", 90, 14),
|
||||
],
|
||||
),
|
||||
ObjectTemplate(
|
||||
id="home_knives",
|
||||
name="Kitchen Knives",
|
||||
category="household",
|
||||
tasks=[
|
||||
TaskTemplate("Knife Sharpening", "service", "time_based", 75, 7),
|
||||
TaskTemplate("Honing", "service", "time_based", 14, 3),
|
||||
],
|
||||
),
|
||||
# --- Pool & Garden ---
|
||||
ObjectTemplate(
|
||||
id="pool_pump",
|
||||
@@ -204,7 +363,7 @@ TEMPLATES: list[ObjectTemplate] = [
|
||||
ObjectTemplate(
|
||||
id="garden_lawn_mower",
|
||||
name="Lawn Mower",
|
||||
category="pool",
|
||||
category="garden",
|
||||
tasks=[
|
||||
TaskTemplate("Blade Sharpening", "service", "time_based", 90, 14),
|
||||
TaskTemplate("Oil Change", "service", "time_based", 365, 30),
|
||||
@@ -212,6 +371,50 @@ TEMPLATES: list[ObjectTemplate] = [
|
||||
TaskTemplate("Spark Plug", "replacement", "time_based", 365, 30),
|
||||
],
|
||||
),
|
||||
ObjectTemplate(
|
||||
id="garden_irrigation",
|
||||
name="Lawn Irrigation System",
|
||||
category="garden",
|
||||
tasks=[
|
||||
TaskTemplate(
|
||||
"Winterize System",
|
||||
"service",
|
||||
"time_based",
|
||||
365,
|
||||
21,
|
||||
"Blow out and drain before the first frost. Tip: a sensor-based threshold trigger (below 3 °C on an outdoor temperature entity) makes this reminder frost-aware.",
|
||||
),
|
||||
TaskTemplate("Spring Startup and Leak Check", "inspection", "time_based", 365, 21),
|
||||
TaskTemplate("Sprinkler Head Inspection", "inspection", "time_based", 180, 14),
|
||||
],
|
||||
),
|
||||
ObjectTemplate(
|
||||
id="garden_pressure_washer",
|
||||
name="Pressure Washer",
|
||||
category="garden",
|
||||
tasks=[
|
||||
TaskTemplate(
|
||||
"Winter Storage",
|
||||
"service",
|
||||
"time_based",
|
||||
365,
|
||||
21,
|
||||
"Move to a frost-free spot before the first frost — trapped water cracks the pump. Tip: a sensor-based threshold trigger (below 3 °C) makes this reminder frost-aware.",
|
||||
),
|
||||
TaskTemplate("Nozzle and Filter Cleaning", "cleaning", "time_based", 180, 14),
|
||||
TaskTemplate("Pump Oil Check", "inspection", "time_based", 365, 30),
|
||||
],
|
||||
),
|
||||
ObjectTemplate(
|
||||
id="garden_house_exterior",
|
||||
name="House Exterior",
|
||||
category="garden",
|
||||
tasks=[
|
||||
TaskTemplate("Clean Gutters", "cleaning", "time_based", 180, 21),
|
||||
TaskTemplate("Roof Inspection", "inspection", "time_based", 365, 30),
|
||||
TaskTemplate("Clean Windows", "cleaning", "time_based", 90, 14),
|
||||
],
|
||||
),
|
||||
# --- Appliances ---
|
||||
ObjectTemplate(
|
||||
id="appliance_washing_machine",
|
||||
@@ -244,6 +447,53 @@ TEMPLATES: list[ObjectTemplate] = [
|
||||
TaskTemplate("Vent Inspection", "inspection", "time_based", 365, 30),
|
||||
],
|
||||
),
|
||||
ObjectTemplate(
|
||||
id="appliance_espresso",
|
||||
name="Espresso Machine",
|
||||
category="appliance",
|
||||
tasks=[
|
||||
TaskTemplate(
|
||||
"Descaling",
|
||||
"cleaning",
|
||||
"time_based",
|
||||
90,
|
||||
14,
|
||||
"Interval depends on water hardness — descale more often with hard water.",
|
||||
),
|
||||
TaskTemplate("Backflush Brew Group", "cleaning", "time_based", 14, 3),
|
||||
TaskTemplate("Water Filter", "replacement", "time_based", 60, 7),
|
||||
TaskTemplate("Group Gasket", "replacement", "time_based", 365, 30),
|
||||
],
|
||||
),
|
||||
ObjectTemplate(
|
||||
id="appliance_robot_vacuum",
|
||||
name="Robot Vacuum",
|
||||
category="appliance",
|
||||
tasks=[
|
||||
TaskTemplate("Clean Main Brush", "cleaning", "time_based", 14, 3),
|
||||
TaskTemplate("Filter Cleaning", "cleaning", "time_based", 14, 3),
|
||||
TaskTemplate(
|
||||
"Replace Dust Bag",
|
||||
"replacement",
|
||||
"time_based",
|
||||
90,
|
||||
14,
|
||||
"Many docks don't warn when the bag is full — a schedule beats a surprise.",
|
||||
),
|
||||
TaskTemplate("Clean Sensors", "cleaning", "time_based", 30, 7),
|
||||
],
|
||||
),
|
||||
ObjectTemplate(
|
||||
id="appliance_robot_mop",
|
||||
name="Mopping Robot Vacuum",
|
||||
category="appliance",
|
||||
tasks=[
|
||||
TaskTemplate("Filter Cleaning", "cleaning", "time_based", 14, 3),
|
||||
TaskTemplate("Empty Dirty Water Tank", "cleaning", "time_based", 7, 2),
|
||||
TaskTemplate("Clean Mop Tray", "cleaning", "time_based", 30, 7),
|
||||
TaskTemplate("Wash Mop Pads", "cleaning", "time_based", 60, 7),
|
||||
],
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user