Added Alexa Music

This commit is contained in:
2026-07-17 10:12:15 -04:00
parent 92c5268dc8
commit 28a8cb98f6
757 changed files with 151171 additions and 85450 deletions
@@ -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 3080% 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),
],
),
]