Před vytvořením nové entity (skript, flow, proměnná) zkontroluj zda podobná již neexistuje. Refaktor > nový kód.
📖 Příběh · Architektura
Script-first princip
Veškerá logika v jednom místě. Flow je trigger, skript je mozek, router je switchboard, device je výstup.
12 pravidel která jsem si zavedl
Každé pravidlo vzniklo z konkrétního incidentu, ne z teorie. Tady jsou všechna která dnes drží systém pohromadě.
Flow = trigger + set variable + run script. Žádná logika v Flow kartách. Logika ve skriptech je verzovatelná, debugovatelná, testovatelná.
Žádný hardcoded device name. Vše přes sh_device_map_v1.
Přejmenování zařízení = jedna změna, ne 20 broken skriptů.
Žádné kritické rozhodnutí z jediného senzoru. Vždy 2+ nezávislé signály (FP2 + Z-Wave motion, button + geofence).
Žádné TTS, hlasité akce ani světla při sh_spim=yes.
Výjimky: morning briefing, kritické alarmy.
Roleta otevřená → open space světla blokována. Garsonka v přízemí, kolemjdoucí vidí dovnitř. Efekt akvária.
Každý dočasný request musí být po dokončení akce resetován na
idle. Bez resetu = stuck pipeline + ráno bez rádia.
Triggery mají časová okna — ranní rutina 3:00–10:00, noční 22:00–6:00. Mimo okno skript odmítne pokračovat.
Nikdy throw new Error(). Vždy log + return false.
Throw crashne před cleanup, zanechá proměnné v nekonzistentním stavu.
Každý skript cacheuje proměnné (_varCache + _loadVars()).
Bez cache = SIGABRT na 200+ proměnných.
setCapabilityValue jen pokud se hodnota fakticky mění.
Slepý set = kaskáda Flow triggerů a zbytečné zatížení.
Před úpravou existujícího skriptu: přečíst celý, ověřit volající, minimální change. „Už to fungovalo" = nesahat přes silnou potřebu.