📦 Zařízení · Senzory

Senzory — co dům vidí

Přehled detekce — kde a jak dům snímá realitu. mmWave radar pro klidného člověka, klasický PIR pro pohyb, kontaktní senzory na oknech, lux pro denní světlo. Každý typ má jiný use-case, různé limity a vlastní spotřebu baterie.

4Typy senzorů
3Bezdrátové protokoly
11Funkčních zón pokrytých
~6 mDosah FP2 mmWave

Co to dělá

Detekční vrstvy + datová cesta

Senzory jsou vstupní vrstva celého systému. Bez nich systém neví, jestli někdo je v místnosti, jestli je tma, jestli je okno otevřené. Každý senzor má capability v Homey (např. alarm_motion, alarm_presence, alarm_contact), který flow trigger přečte a pošle event do skriptů.

Architekturně senzory nikdy nezasahují přímo do akce. Místo toho zapisují stav do request proměnných (např. sh_light_request='on') a request-first pipeline rozhoduje, jestli akce proběhne. To umožňuje sleep guard, privacy guard, priority engine — a hlavně testovatelnost.

Většina senzorů je bateriová. Životnost typicky 1–2 roky. Brain Guardian sleduje lastUpdated timestamp — když senzor neaktualizoval 24+ h, alert do EventLog (battery suspect). Re-pair po výměně baterky vygeneruje nové UUID — flow trigger karty s old UUID silent fail, fix vyžaduje bulk swap.

Typy senzorů

Čtyři kategorie, čtyři role

Každá detekuje jinou věc. Společně dávají úplný obraz.

  1. Presence

    mmWave radar (FP2)

    Vidí klidného člověka — sedící, dýchající, micro-pohyby. Plus pohyb. Capability alarm_presence. Cena ~1 500 Kč. Limit: zóna detekce není 100 % přesná, občas mihne na False, proto triple-sensor guard.

  2. Motion

    PIR (Fibaro Z-wave)

    Klasický passive-infrared. Detekuje teplotní změnu (= pohyb). Necítí klidného člověka. Capability alarm_motion. Levný (~600 Kč), spolehlivý, dlouho na baterce. Ideální pro kuchyň, koupelnu.

  3. Contact

    Door/Window kontakt

    Magnetický kontakt na okně/dveřích. Capability alarm_contact. Jednoduchý, nejlevnější (~350 Kč), bez false positives. SNZB-04 má známý firmware bug (deep-sleep failure) — náhrada Aqara P2.

  4. Environmental

    Lux + temperature

    Lux senzor pro denní světlo (řídí lighting), interní teplotní čidla v každé TRV pro topení. Capability measure_luminance, measure_temperature. Continuous, ne event-based.

Hardware v provozu

Co reálně vidíme

Konkrétní kusy, které právě běží v bytě.

Aqara FP2 (SNZB-06P)

mmWave · presence · Zigbee · open space

Vlajková loď. Detekuje sedícího člověka, dýchání, micro-pohyby. Zóna „open space" (jídelna + kuchyně). Vyžaduje 230 V napájení (ne baterie). Sensitivity 5 levels, user nastavil mid.

Sensore kuchyně Z-wave (Fibaro)

PIR · motion · Z-wave · battery

Klasický PIR. Trigger pro „vstanu ráno" detection (motion + sleep_state=active = waking). Kuchyňská světla, occupancy bonus pro topení. Battery ~12 měsíců.

Door/Window Sensor Jídelna1

Aqara · contact · Zigbee · battery

Kontakt na okně jídelny. Trigger pro čističku vzduchu (vypnout při otevřeném). Reálný incident 26.4. — re-pair vygeneroval nové UUID, 3 staré flows osiřely. Diagnose: GET device → 404, fix bulk swap.

Light Sensor kuchyně1 + Xiaomi

Lux · Zigbee · ambient

Dva lux senzory v open space — primární (kuchyně) + Xiaomi (jídelna). Hodnoty sh_lux_jidelna, sh_lux_kuchyne_xiaomi. Threshold 120 / 400 pro on/off s hysterezí.

4× Fibaro FGT-001 (TRV)

Termo hlavice · Z-wave · battery

Dvojí role — regulátor topného toku + interní teplotní čidlo. Capability measure_temperature v každé místnosti (jídelna, ložnice, koupelna, toaleta). Zdroj current_temp pro heating demand.

Water leak Plánováno

Aqara · alarm_water · Zigbee · battery

Pod dřezem v kuchyni a koupelně. Trigger pro safety bypass — uzavře hlavní přívod (přes plánovaný Aqara water valve), alert do speaker ložnice. Cena ~400 Kč/kus.

Pro tech-savvy

Co se děje pod kapotou

Zigbee vs. Z-wave, battery management, UUID stability.

Zigbee vs. Z-wave (proč obojí)

Zigbee 3.0 (2,4 GHz) — Aqara FP2, door/window, lux. Levnější senzory, mesh ve vlastním prostoru, Aqara hub-free integrace přes Homey Pro 2026. Slabší dosah, sdílené pásmo s Wi-Fi.

Z-wave (868 MHz EU) — Fibaro PIR, FGS-214 (kotel), 4× FGT-001 TRV. Dražší, ale dedikované pásmo, dobrý dosah skrz zdi, napájené devices fungují jako repeater pro mesh.

Pro batterové motion senzory by byl Zigbee taky OK, ale Fibaro PIR má lepší firmware reliability než cheap Aqara variantu (test: 6 měsíců, 0 false positives).

Triple-sensor guard pro presence_off

FP2 občas falešně mihne na alarm_presence=false (cooldown / sensitivity). 15 min flow delay → presence_off event → router by chtěl vypnout světla. V té chvíli user už dávno zpátky.

if (presence_event === 'off') {
  if (motion.alarm_motion === true) → keep on (motion_active)
  if (presence.alarm_presence === true) → keep on (presence_recovered)
  if (max(open_presence_ts, open_motion_ts) > now - 5min) → keep on (recent)
}

Implementováno v sh_open_space_router_v1 v1.18. Bez tohoto guard by light flikrovalo každých 15 min při klidném sezení.

Battery management (lastUpdated tracking)

Brain Guardian cron 15 min iteruje senzory s capability measure_battery a lastUpdated timestamp:

  • battery < 20 % → battery_low alert, log do EventLog
  • battery < 10 % → battery_critical, push (až bude implementováno)
  • lastUpdated > 24 h → senzor stale, possible dead battery
  • lastUpdated > 72 h → senzor unreachable, suggest re-pair

SNZB-04 (door/window) má známý deep-sleep firmware bug — padá do unreachable i při plné baterce. Náhrada Aqara P2 (Matter/Thread) v plánu.

UUID stability (re-pair = nové UUID)

Po výměně baterky / re-installu device Homey vygeneruje nové UUID. Old UUID v device_map / flow trigger kartách = orphan reference, žádný error, prostě silent fail.

Reálný incident 26.4. — Door/Window Sensor Jidelna1 přepárovaný, 3 flows broken, čistička se nevypínala při otevření okna. Diagnose: GET /api/manager/devices/device/<old> → 404. Fix: bulk swap PUT.

Backlog: tools/find_orphan_device_refs.py preventive scanner — před každým commitem zkontroluje, jestli všechny device_map references jsou live.

Lux thresholdy + hystereze

Open space lux řízení používá dva thresholdy + hysterezi pro stabilitu:

  • sh_cfg_lux_open_space_on = 120 — pod tím se zapnou (pokud presence)
  • sh_cfg_lux_open_space_off = 400 — nad tím se vypnou (denní světlo dost)
  • Mezi 120 a 400: udržuje aktuální stav (žádné on→off→on flikr)

Lux senzor čte z sh_lux_jidelna nebo sh_lux_kuchyne_xiaomi (max z obou, pessimistický odhad — nejvíc tmy v zóně).