Updated apps

This commit is contained in:
2026-07-20 22:52:35 -04:00
parent 28a8cb98f6
commit a0c3271743
1164 changed files with 94781 additions and 6892 deletions
@@ -42,6 +42,14 @@ TEMPLATE_CATEGORIES: dict[str, dict[str, str]] = {
"name_uk": "Транспорт",
"name_pt": "Veículo",
"name_zh": "机动车",
"name_pl": "Pojazd",
"name_cs": "Vozidlo",
"name_sv": "Fordon",
"name_da": "Køretøj",
"name_nb": "Kjøretøy",
"name_fi": "Ajoneuvo",
"name_ja": "乗り物",
"name_hi": "वाहन",
},
"home": {
"icon": "mdi:home",
@@ -54,6 +62,15 @@ TEMPLATE_CATEGORIES: dict[str, dict[str, str]] = {
"name_ru": "Дом и климат",
"name_uk": "Житло та кліматичні системи",
"name_zh": "",
"name_pt": "Casa & AVAC",
"name_pl": "Dom i instalacje",
"name_cs": "Dům a technika",
"name_sv": "Hem & VVS",
"name_da": "Hjem & VVS",
"name_nb": "Hjem & VVS",
"name_fi": "Koti ja LVI",
"name_ja": "住宅設備",
"name_hi": "घर और HVAC",
},
# v2.27: two extra top-level groups keep the growing catalog scannable —
# recurring HOUSEHOLD routines split from device-centric "home", and
@@ -113,6 +130,14 @@ TEMPLATE_CATEGORIES: dict[str, dict[str, str]] = {
"name_uk": "Басейн",
"name_pt": "Piscina",
"name_zh": "泳池",
"name_pl": "Basen",
"name_cs": "Bazén",
"name_sv": "Pool",
"name_da": "Pool",
"name_nb": "Basseng",
"name_fi": "Uima-allas",
"name_ja": "プール",
"name_hi": "पूल",
},
"appliance": {
"icon": "mdi:washing-machine",
@@ -126,6 +151,56 @@ TEMPLATE_CATEGORIES: dict[str, dict[str, str]] = {
"name_uk": "Побутова техніка",
"name_pt": "Eletrodomésticos",
"name_zh": "家用电器",
"name_pl": "Sprzęt AGD",
"name_cs": "Spotřebiče",
"name_sv": "Vitvaror",
"name_da": "Hvidevarer",
"name_nb": "Hvitevarer",
"name_fi": "Kodinkoneet",
"name_ja": "家電",
"name_hi": "उपकरण",
},
"pets": {
"icon": "mdi:paw",
"name_en": "Pets",
"name_de": "Haustiere",
"name_nl": "Huisdieren",
"name_fr": "Animaux",
"name_it": "Animali",
"name_es": "Mascotas",
"name_ru": "Питомцы",
"name_uk": "Улюбленці",
"name_pt": "Animais",
"name_zh": "宠物",
"name_pl": "Zwierzęta",
"name_cs": "Mazlíčci",
"name_sv": "Husdjur",
"name_da": "Kæledyr",
"name_nb": "Kjæledyr",
"name_fi": "Lemmikit",
"name_ja": "ペット",
"name_hi": "पालतू जानवर",
},
"tech": {
"icon": "mdi:server",
"name_en": "Tech & IT",
"name_de": "Technik & IT",
"name_nl": "Techniek & IT",
"name_fr": "Technique & IT",
"name_it": "Tecnologia & IT",
"name_es": "Tecnología e IT",
"name_ru": "Техника и ИТ",
"name_uk": "Техніка та ІТ",
"name_pt": "Tecnologia e TI",
"name_zh": "科技与IT",
"name_pl": "Technika i IT",
"name_cs": "Technika a IT",
"name_sv": "Teknik & IT",
"name_da": "Teknik & IT",
"name_nb": "Teknikk & IT",
"name_fi": "Tekniikka ja IT",
"name_ja": "テクノロジー・IT",
"name_hi": "टेक और IT",
},
}
@@ -405,6 +480,77 @@ TEMPLATES: list[ObjectTemplate] = [
TaskTemplate("Pump Oil Check", "inspection", "time_based", 365, 30),
],
),
ObjectTemplate(
id="garden_robot_mower",
name="Robot Lawn Mower",
category="garden",
tasks=[
TaskTemplate(
"Replace Blades",
"replacement",
"time_based",
60,
7,
"Dull pivoting blades tear the grass instead of cutting it — supported integrations expose blade-usage sensors that can trigger this instead of the calendar.",
),
TaskTemplate("Clean Undercarriage", "cleaning", "time_based", 30, 7),
TaskTemplate("Clean Charging Contacts", "cleaning", "time_based", 90, 14),
TaskTemplate(
"Winter Storage",
"service",
"time_based",
365,
21,
"Store indoors over winter with the battery at partial charge — frost and a fully drained battery both age the cells.",
),
],
),
ObjectTemplate(
id="garden_lawn",
name="Lawn Care",
category="garden",
tasks=[
TaskTemplate(
"Mowing",
"service",
"time_based",
10,
2,
"During the growing season — add a seasonal window (task dialog, e.g. AprOct) or pause the object over winter.",
),
TaskTemplate(
"Watering",
"service",
"time_based",
7,
1,
"In dry periods — a soil-moisture or rain sensor makes a good sensor trigger instead of the fixed interval.",
),
TaskTemplate("Fertilising", "service", "time_based", 120, 14),
TaskTemplate("Scarifying", "service", "time_based", 365, 30),
TaskTemplate("Aerating", "service", "time_based", 365, 30),
TaskTemplate("Overseeding", "service", "time_based", 365, 30),
TaskTemplate("Weeding", "service", "time_based", 90, 14),
],
),
ObjectTemplate(
id="garden_hedge",
name="Hedge Care",
category="garden",
tasks=[
TaskTemplate(
"Trimming",
"service",
"time_based",
180,
21,
"13 times per year depending on the species — mind local rules protecting nesting birds in spring.",
),
TaskTemplate("Watering", "service", "time_based", 7, 1),
TaskTemplate("Fertilising", "service", "time_based", 365, 30),
TaskTemplate("Mulching", "service", "time_based", 365, 30),
],
),
ObjectTemplate(
id="garden_house_exterior",
name="House Exterior",
@@ -494,6 +640,171 @@ TEMPLATES: list[ObjectTemplate] = [
TaskTemplate("Wash Mop Pads", "cleaning", "time_based", 60, 7),
],
),
ObjectTemplate(
id="pets_litter_box",
name="Cat Litter Box",
category="pets",
tasks=[
TaskTemplate("Scoop Litter", "cleaning", "time_based", 2, 1),
TaskTemplate("Change Litter", "replacement", "time_based", 14, 3),
TaskTemplate(
"Wash Litter Box",
"cleaning",
"time_based",
30,
7,
"Mild soap and hot water — strong chemicals can drive cats away from the box.",
),
],
),
ObjectTemplate(
id="tech_printer",
name="Printer",
category="tech",
tasks=[
TaskTemplate(
"Nozzle Check",
"inspection",
"time_based",
30,
7,
"A monthly test print keeps inkjet nozzles from drying out — supported printers also report ink/toner levels for automatic triggers.",
),
TaskTemplate("Replace Maintenance Box", "replacement", "time_based", 365, 30),
TaskTemplate("Clean Printer", "cleaning", "time_based", 180, 14),
],
),
ObjectTemplate(
id="tech_smart_lock",
name="Smart Lock",
category="tech",
tasks=[
TaskTemplate("Charge Battery", "service", "time_based", 60, 7),
TaskTemplate(
"Lubricate Cylinder",
"service",
"time_based",
180,
14,
"Graphite or PTFE lock lubricant only — oil gums up the pins.",
),
TaskTemplate("Recalibrate Lock", "service", "time_based", 180, 14),
],
),
ObjectTemplate(
id="tech_wallbox",
name="EV Wallbox",
category="tech",
tasks=[
TaskTemplate(
"Test RCD",
"inspection",
"time_based",
183,
14,
"Press the test button twice a year — a residual-current device only protects if it still trips.",
),
TaskTemplate("Inspect Cable and Plug", "inspection", "time_based", 90, 7),
TaskTemplate("Clean Housing", "cleaning", "time_based", 365, 30),
],
),
ObjectTemplate(
id="tech_nas",
name="Home Server / NAS",
category="tech",
tasks=[
TaskTemplate(
"Test Backup Restore",
"inspection",
"time_based",
90,
14,
"A backup only exists once a restore has been proven to work.",
),
TaskTemplate("Check Disk Health", "inspection", "time_based", 30, 7),
TaskTemplate("Storage Cleanup", "cleaning", "time_based", 90, 14),
TaskTemplate("Update Firmware", "service", "time_based", 60, 7),
TaskTemplate("Dust Out Device", "cleaning", "time_based", 365, 30),
],
),
ObjectTemplate(
id="tech_camera",
name="Security Camera",
category="tech",
tasks=[
TaskTemplate("Clean Lens", "cleaning", "time_based", 90, 14),
TaskTemplate("Check Mounting", "inspection", "time_based", 183, 14),
TaskTemplate("Update Firmware", "service", "time_based", 90, 14),
],
),
ObjectTemplate(
id="household_fitness",
name="Fitness Equipment",
category="household",
tasks=[
TaskTemplate("Wipe Down Equipment", "cleaning", "time_based", 7, 2),
TaskTemplate("Check Bolts and Fasteners", "inspection", "time_based", 90, 14),
TaskTemplate(
"Lubricate Moving Parts",
"service",
"time_based",
90,
14,
"Treadmill belts, trainer chains and pivots — follow the manufacturer's lubricant spec.",
),
],
),
ObjectTemplate(
id="garden_pond",
name="Garden Pond",
category="garden",
tasks=[
TaskTemplate("Clean Pond Filter", "cleaning", "time_based", 30, 7),
TaskTemplate("Water Test", "inspection", "time_based", 30, 7),
TaskTemplate(
"Install Leaf Net",
"service",
"time_based",
365,
21,
"Before autumn leaf fall — decomposing leaves feed algae and sludge.",
),
TaskTemplate("Winterize System", "service", "time_based", 365, 21),
],
),
ObjectTemplate(
id="appliance_3d_printer",
name="3D Printer",
category="appliance",
tasks=[
TaskTemplate(
"Clean Print Bed",
"cleaning",
"time_based",
14,
3,
"Grease and dust ruin first-layer adhesion — clean with isopropyl alcohol, not household cleaners.",
),
TaskTemplate("Clean or Replace Nozzle", "service", "time_based", 90, 14),
TaskTemplate(
"Lubricate Rails and Rods",
"service",
"time_based",
180,
21,
"Follow the manufacturer's lubricant spec — the wrong grease attracts dust and wears the bearings faster.",
),
TaskTemplate("Check Belt Tension", "inspection", "time_based", 180, 21),
TaskTemplate(
"Dry Filament Stock",
"service",
"time_based",
90,
14,
"Moist filament pops and strings — hygroscopic materials (PETG, PA, TPU) need drying well before PLA does.",
),
],
),
]