Nowy typ `audit` (rozstrzygniecie 2) — migawka stanu z pola `as_of`, nie opis stanu biezacego. monitoring-coverage-2026-07-14, ha-automatyzacje-2026-07-23. Pozostale 5 audytow/reconow jest wielotypowych — wychodza w grupie SPLIT-ow. git mv + frontmatter, tresc nietknieta. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
30 KiB
| okf | type | visibility | status | updated | as_of | links |
|---|---|---|---|---|---|---|
| 0.1 | audit | private | active | 2026-07-23 | 2026-07-23 |
Audyt spójności automatyzacji instancji ken — 2026-07-23
Zakres: wyłącznie analiza; żadnych zmian w automatyzacjach/skryptach/scenach.
Materiał: config/ken/ (119 automatyzacji, 6 skryptów, 3 sceny),
storage-export/ken/ (rejestry z 2026-07-22), fixtures/ken-states-2026-07-22.yaml
(stany + last_triggered), config/ken-legacy/ (60 automatyzacji, archiwum),
DESIGN.md (Incident log).
Zastrzeżenia metodyczne:
- Rejestry i fixtures pochodzą z 2026-07-22, sprzed wdrożenia automatyki klimy (commity z 2026-07-23). Encje klimy „brakujące" w exportach nie muszą być martwe — patrz 1.1.
- HA po restarcie 2026-07-17 15:07 (update Supervisora) zresetował
last_changed— encje pokazująceunavailable od 2026-07-17 15:07są martwe co najmniej od restartu;last_triggeredautomatyzacji wskazuje, że część padła dużo wcześniej (marzec–maj). - Deploy helpers (
input_*) nie istnieje (faza 1 obejmuje tylko automations/scripts/scenes), więc obecności helperów klimy nie da się potwierdzić z repo.
Streszczenie
Liczby:
- 119 automatyzacji (112 włączonych, 7 wyłączonych), 6 skryptów, 3 sceny.
- 305 encji
unavailablew fixtures; 6 czujników ruchu/obecności martwych lub gasnących (mdwejscie, mdsypialnia, mdtymka, mdheli, mdubikacja, occusalon). - ~15 automatyzacji martwych lub zdegradowanych przez martwe czujniki — po cichu:
triggery nie strzelają albo warunki
is_not_occupiedna encjiunavailablenigdy nie przechodzą. - 8 referencji do encji nieistniejących w registry (poza klimą).
- 13 automatyzacji na
time_pattern, z tego 7 co ≤1 min (w tym 6 kalibracji TRV co 40–50 s iSet current_playerco 15 s). - Legacy: 54/60 automatyzacji ma odpowiednik 1:1 na ken, 6 bez odpowiednika (sekcja 5).
Top 5 znalezisk wg wagi:
- [krytyczne] Kalibracja TRV sypialnia i Tymek liczy średnią z martwego
czujnika —
unavailable → float(0)zaniża temperaturę o połowę, kalibracje przypięte do −5.0 (potwierdzone w fixtures). W sezonie grzewczym oznacza to trwałe przegrzewanie obu pokoi. Pętle piszą po Zigbee co 40–45 s (baterie TRV 20–38%). (1.4) - [krytyczne] Martwy klaster czujników ruchu wyłączył alerty i nocne
gaszenie — m.in.
email on move in hall/sypialnia when on leave(funkcja antywłamaniowa) nigdy nie wystrzeli; oba nocne „turn off lights if clear" martwe od marca;sleep_modenie włącza się już automatycznie. (1.2, 2.4) - [krytyczne] Łańcuch alertów wodnych dziurawy — czujnik WC
unavailable(brak alertu przy zalaniu), „dry in Kuchnia" triggeruje namoist(kopiuj-wklej), „dry in Lazienka" ma literówkęmesaage:(akcja bezmessage→ skrypt się wywala). (1.3, 2.6) - [istotne]
Poranek startcodziennie wisi 1 h na martwym czujniku —wait_for_triggerna mdwejscie (unavailable) zawsze dobija do timeoutu 1 h; radio i powitanie startują o godzinę za późno. (1.2c) - [istotne] Klima salon: helperów nie ma w żadnym exporcie, a gałąź OFF nie
sprawdza
klima_salon_auto— jeśli helpery nie istnieją na instancji, obie automatyzacje są martwe (cicho); niezależnie od tego zachód słońca ubija też ręcznie włączone chłodzenie. (1.1, 3.1)
1. Martwe referencje
1.1 [istotne — do weryfikacji] Helpery klimy salonowej niepotwierdzone
Pliki: 1784804667795 „Klima salon: włącz…", 1784804668795 „Klima salon:
wyłącz…", scripts/klima_salon_dry_off.yaml.
Referencje: input_boolean.klima_salon_auto, input_number.klima_salon_temp_docelowa,
input_number.klima_salon_tolerancja — nie występują w
storage-export/ken/input_*.yaml ani w fixtures (snapshoty z 2026-07-22, sprzed
deployu klimy). Repo nie ma toru deployu helperów, więc musiały powstać ręcznie
w UI — albo nie powstały. Jeśli ich nie ma, warunek state: 'on' na
nieistniejącej encji nigdy nie przechodzi i cała automatyka klimy jest martwa
bez żadnego błędu.
PROPOZYCJA: jednorazowa weryfikacja na żywej instancji (/api/states), potem
re-import input_* do storage-export, żeby snapshot dogonił stan.
1.2 [krytyczne] Martwe czujniki ruchu/obecności — ~15 automatyzacji cicho nie działa
Stan w fixtures: binary_sensor.0x00124b00251472ef_occupancy (mdwejscie/hall),
mdsypialnia_occupancy, mdheli_occupancy — unavailable co najmniej od
restartu 2026-07-17; occusalon_occupancy od 2026-07-20, mdtymka_occupancy od
2026-07-21, mdubikacja_occupancy od 2026-07-22 (te trzy gasną/flapują —
typowy obraz siadających baterii). last_triggered wskazuje, że occusalon i
mdwejscie realnie przestały działać w okolicach marca–maja.
Skutki, w kolejności wagi:
a) Alerty on-leave martwe: 1753431022365 „email on move in hall when on
leave" i 1753883109847 „email on move in sypialnia when on leave" —
triggery na martwych czujnikach; nigdy nie wystrzelą. Przy on_leave = on
dom NIE zgłosi ruchu. (Ostatnie odpalenia: 2026-01-29 / 2025-09-15 — jeszcze
z czasów życia czujników.)
b) Nocne gaszenie świateł martwe: 1702844937214 „Turn off Lights after
23:30 if clear" (ostatni raz 2026-03-27) i 1763384250145 „Turn off Swiatlo
na Kuchnia after 23:30 if clear" (2025-11-27) mają w warunkach
is_not_occupied na occusalon/mdwejscie/mdubikacja — unavailable ≠ off,
warunek zawsze fałszywy. Konsekwencja wtórna: 1702844937214 było jedynym
automatycznym włącznikiem input_boolean.sleep_mode — sleep mode działa już
tylko z przycisku w sypialni. Realnie nocą domyka światła tylko
1700832676138 „Turn off lights unconditionally at 3am".
c) Poranek start (1763386155895) wisi godzinę: główna sekwencja czeka
wait_for_trigger na mdwejscie occupied z timeoutem 1 h — czyli codziennie
pełny timeout; radio/speak startują o ~7:42 zamiast po wykryciu ruchu.
Dodatkowo 1764595573287 „Poranek pause media player…" (warunki na
occusalon+mdwejscie) — martwe od 2026-03-26.
d) 1763637049783 („Turn off swiatlo nad kuchnia when no motion, no
trigger", entity automation.new_automation_3, wywoływane codziennie przez
Poranek stop): pętla repeat–until z warunkami na mdwejscie i occusalon —
until nigdy nie przejdzie, pętla kręci się w nieskończoność (delay 1 min),
aż ubije ją restart HA lub stop_actions. Zombie.
e) 1752607597518 „Turn off led zasilanie w Kuchni": warunek AND na
3 czujnikach, z których 2 martwe → nigdy nie przechodzi. Potwierdzone:
switch.tasmota_14 świeci się non stop (state on). LED zasilania w kuchni
nie gaśnie od marca.
f) Mniejsze: 1666891422388/1666891723803 (Magic Mirror Display On/Off —
trigger mdwejscie, lustro nie reaguje na obecność), 1667065238690 „Swiatlo
na wejscie do domu" (trigger mdwejscie, ostatnio 2026-03-24), 1703104763868
„Turn OFF Heli sufit" (warunek mdheli, ostatnio 2026-04-08), 1763637857513
„…no motion in all home for 1h" (warunki na 5 martwych czujnikach; częściowo
uratowane przez odnogę OR akceptującą unavailable mdkorytarz — ale AND na
mdheli/mdtymka/mdsypialnia i tak blokuje), 1734943824257 „Turn ON Choinka
na wejscie" (trigger mdwejscie — podwójnie martwe, patrz 4.2).
PROPOZYCJA: wymiana baterii / re-pairing 6 czujników to jedna fizyczna akcja,
która reanimuje większość powyższego. Po niej: przegląd, czy 1763637049783
(zombie-pętla) nie powinno zostać przepisane na zwykłe warunki for:. Docelowo
rozważyć alerty ha-diag-agent na unavailable > 24 h dla czujników użytych w
automatyzacjach (routing ha_entity_unavailable_long już istnieje w
supervisorze).
1.3 [krytyczne] Czujnik wycieku WC martwy
binary_sensor.waterleakwc_water_leak unavailable (razem z baterią) →
1752086527168 „email on water sensor moist in WC" i 1752086563805 „dry in
WC" nie wystrzelą przy zalaniu. Pozostałe czujniki wycieku żyją (bateria
łazienkowego: 35%).
PROPOZYCJA: bateria/re-pairing; rozważyć zbiorczy alert „czujnik bezpieczeństwa unavailable" (jak w 1.2).
1.4 [krytyczne] Kalibracje TRV liczone z martwych czujników, pętle co 40–50 s
Pliki: 1764751049013 (Sypialnia), 1765817937658 (Tymek), 1766345640142
(Łazienka), 1765817263673 (Heli), 1766348309347 (SalonLewy),
1766348430579 (SalonPrawy).
- Sypialnia i Tymek:
room_temp = (thX + zhimi_Y)/2, a oba czujniki zhimi są unavailable od 2026-07-17 →float(0)→ średnia zaniżona o połowę →diffzawsze na dolnym ograniczniku → kalibracja dojechała do −5.0 (potwierdzone w fixtures dla obu). TRV raportuje temperaturę o 5° za nisko; w sezonie grzewczym = trwałe przegrzewanie. Dziś (lato, TRVoff) bug jest uzbrojony, ale nieszkodliwy — do naprawy przed sezonem. - Łazienka:
climate.heaterlazienkatrv07i jegonumber.*_calibrationsą unavailable (TRV zniknął z sieci) →number.set_valueco 40 s w próżnię (błędy w logach). Powiązane:1766408469485„Boost heater temp in Lazienka when shower" — trigger nasensor.thtuyalazienka_humidity_stats_5min(stateunknown; sensor statystyczny prawdopodobnie nie przeżył migracji na HAOS) + cel unavailable → martwe. - Salon lewy/prawy: kalibracje przypięte do +5 (max). Częściowo tłumaczy to
lato (TRV nie mierzy sensownie przy zaworze off), ale SalonPrawy ma clamp
diff±5, podczas gdy wszystkie pozostałe ±1.5 — wygląda na niedokończony eksperyment, nie świadomą różnicę. - Wszystkie 6:
time_patternco 40/45/50 s pisze po Zigbee do TRV na baterii (poziomy 20–38%). To agresywny polling;for:/trigger na zmianę temperatury załatwiłby to samo przy ułamku ruchu.
PROPOZYCJA: (1) wywalić uśrednianie z czujników zhimi albo dodać guard
is not unavailable; (2) po naprawie ręcznie wyzerować kalibracje
sypialnia/Tymek; (3) zwolnić pętle do np. 5 min lub przejść na trigger
zmiany stanu; (4) ujednolicić clamp SalonPrawy; (5) reanimować TRV łazienki
albo wyłączyć jego automatyzacje.
1.5 [istotne] Encje usunięte z registry — automatyzacje trwale martwe
1751307777881„Aktualizuj lokalizację Oskar":sensor.owntracks_last_locationnie istnieje (integracja OwnTracks nie przeżyła migracji?). Ostatni trigger 2025-12-20;device_tracker.oskar=not_homena stałe, mimo żeperson.oskar=home(inna ścieżka). PROPOZYCJA: przywrócić OwnTracks albo skasować automatyzację i sprzątnąćdevice_tracker.oskar.1760432474594„Notify on router sypialnia is away for too long":sensor.routerheli_last_seennie istnieje;last_triggeredNULL; pattern co 1 min ocenia warunek na nieistniejącej encji. Uwaga: alias mówi „sypialnia", sensor „heli". PROPOZYCJA: skasować lub podpiąć istniejący sensor.1763384250145„Turn off Swiatlo na Kuchnia after 23:30 if clear": warunek nabinary_sensor.0x8c65a3fffeea673a_occupancy— stary identyfikator occusalon sprzed zmiany nazwy. Nawet po reanimacji occusalon ta automatyzacja nie ożyje. PROPOZYCJA: podmienić nabinary_sensor.occusalon_occupancy.1640285211569/1640285276640„Oczyszczacz i nawilżacz prze przycisk Tymka [ON]/[OFF]":fan.mi_air_purifier_3_3hiswitch.gniazdko_xiaomi_2nie istnieją w registry; ostatnie triggery 2024. Martwe od ~2 lat. PROPOZYCJA: skasować (patrz też 4.5).1752241986989„test test Powitanie głosowe…":sensor.temperature_salonnie istnieje (jestthsalon_temperature); automatyzacja wyłączona, bez triggerów. PROPOZYCJA: skasować.
1.6 [istotne] Encje trwale unavailable w akcjach
1700837302203„Speak" (4button 1_double): celmedia_player.salon_2(soundbar Bose) unavailable — przycisk „powiedz" martwy. Jedyny konsumenttts.google_translate_say; reszta domu mówi przeztts.piper+pimirror. PROPOZYCJA: przepiąć na pimirror/piper albo skasować.1761038411219„Oczyszcza w tryb nocny" (23:30):xiaomi_miot.set_propertynafan.zhimi_mc2_c369_air_purifier— unavailable od 2026-07-17; co noc błąd. Szerszy obraz: cała rodzina encji zhimi (mb3, mc2) padła równo z restartem/aktualizacją 2026-07-17 — wygląda na wysypaną integrację xiaomi_miot, nie na urządzenia. Dotyka też scen (4.2) i kalibracji TRV (1.4). PROPOZYCJA: zdiagnozować integrację miot po stronie HA zamiast naprawiać pojedyncze automatyzacje.- Sceny
Oczyszczacze i Nawilzacze ON/OFF: połowa encji żyje (tasmota_4/5, chuangmi), wentylatory zhimi unavailable → sceny wykonują się częściowo.
2. Sprzeczności i wyścigi
2.1 [istotne] „Disable AUTO off lights in Kuchnia" jest unieważniane po ≤15 min
1762952673833 (double-click) wyłącza automation.turn_off_lights_in_kuchania
i zapala światła — intencja: „zostaw światła w spokoju". Ale 1764190493305
„Turn off lights in Kuchnia after 15 minutes anyway" (zawsze włączone, pattern
/5 + własny trigger) gasi te same światła po 15 min bez ruchu i z powrotem
włącza auto-off. Przy bezruchu (oglądanie czegoś, gotowanie poza zasięgiem
czujników) decyzja użytkownika żyje kwadrans. Do tego 1763383792516 „Activate
AUTO… after 1h" i 1762954145724 „…at 23:30" też re-aktywują auto-off.
Nakładka intencji: „anyway" vs „disable".
PROPOZYCJA: „after 15 minutes anyway" powinno respektować stan wyłączenia
turn_off_lights_in_kuchania (warunek state: automation... = on) albo
double-click powinien ustawiać dedykowany input_boolean.kuchnia_manual
sprawdzany przez wszystkie gaszące automatyzacje.
2.2 [istotne] Cztery nakładające się nocne wyłączniki tych samych świateł
Na zestaw {switch.tasmota, sufit2/3, tasmota_12, tasmota_8, zblampkiregal}
działają równolegle: 1702844937214 (pattern /5, 23:30–6:30 — martwe, 1.2b),
1763384250145 (pattern /3 — martwe, 1.5), 1768946230585 (sleep-mode
enforcer, pattern /5) i 1700832676138 (3:00). Trzy z nich to warianty tej
samej funkcji pisane w różnych epokach. Po reanimacji czujników wszystkie trzy
ożyją naraz i będą się ścigać (różne warunki, ten sam cel).
PROPOZYCJA: skonsolidować do jednej automatyzacji „nocne domknięcie" z jasnym priorytetem trybów; pozostałe skasować.
2.3 [kosmetyczne] 1700832676138 „…at 3am": time_pattern hours: '3' bez minut
Odpala się co minutę przez całą godzinę 3:00–3:59 (60 prób, w tym 3 na
unavailable przełącznikach choinki). PROPOZYCJA: zwykły trigger time: 03:00.
2.4 [istotne] Enforcer sleep mode gasi światła co ~10 min przez całą noc
1768946230585 „Turn OFF lights 5 minutes after sleep mode activated" ma dwa
triggery: krawędź sleep_mode off→on i time_pattern /5», z warunkiem sleep_mode = on`. Efekt: to nie jest „5 minut po aktywacji", tylko cykliczny
dozorca — każde światło z listy zapalone ręcznie w trakcie sleep mode zgaśnie
w ciągu 5–10 min. Jeśli to celowe, alias kłamie; jeśli nie — pattern jest
zbędny. PROPOZYCJA: decyzja operatora (patrz checklista); przy „tylko raz"
usunąć trigger pattern.
2.5 [kosmetyczne] Blat w Pralni — double-click może zdesynchronizować parę automatyzacji
1760992440280 toggluje niezależnie dwie automatyzacje (ON-ową i OFF-ową).
Dziś obie są on, więc działa; jeśli kiedykolwiek rozjadą się (restart,
ręczna zmiana), double-click będzie je wiecznie swapował zamiast włączać/
wyłączać parę. Dodatkowo w nocy 1768989504100 (night light 1%… w praktyce
turn_on/off) i para MD piszą w ten sam switch.zbpralniablat — kierunkowo
zgodne, ale night-light wyłącza po 5 min timeoutu nawet przy obecności (wait
not_occupied z continue_on_timeout). PROPOZYCJA: toggle zastąpić parą
turn_on/turn_off wg stanu jednej z nich.
2.6 [krytyczne → patrz Top 3] Para wodna Kuchnia: „dry" triggeruje na moist
1752086407230 „email on water sensor dry in Kuchnia" ma trigger type: moist
(kopiuj-wklej z 1752086343222). Efekt: przy zalaniu kuchni przychodzą DWA
maile („mokro" i „sucho") naraz, a informacja „wyschło" nie przyjdzie nigdy.
Ślad w fixtures: „dry" ma last_triggered 2026-01-20, „moist" — NULL (czyli
realne zdarzenie moist obsłużyła… automatyzacja „dry"; NULL na „moist"
prawdopodobnie przez późniejsze przeładowanie). Bonus: 1752085965483 „dry in
Lazienka" przekazuje parametr mesaage: (literówka) — skrypt
notify_email_ntfy dostaje niezdefiniowane message i akcja się wykłada.
PROPOZYCJA: trigger na not_moist w Kuchni; mesaage → message w Łazience.
2.7 [kosmetyczne] Redundantne harmonogramy Gniazdka w Łazience
ON: 7:00, 20:00 (warunek on_leave off); OFF: 1:00, 2:00, 9:30, 10:30, 12:30
(bez warunków). Okna 7:00–9:30 i 20:00–1:00 są spójne; trzy dodatkowe OFF-y to
pasy bezpieczeństwa. Sprzeczności brak. Odnotowane, bo pięć punktowych OFF-ów
w jednej automatyzacji utrudnia czytanie intencji.
2.8 [kosmetyczne] Dwa wyłączniki stereo
1744976289447 (idle 15 min, po 23:30) i 1763662256621 (idle 1 h, zawsze) —
nakładka celowa (nocne zaostrzenie), kierunkowo zgodna. OK, odnotowane.
3. Trigger brzegowy bez lustrzanego warunku (klasa buga z klima_salon, fix faa2e2a)
Przejrzano wszystkie automatyzacje z >1 triggerem pod kątem: „warunek istnieje tylko jako inny trigger, więc obcy trigger omija bramkę".
3.1 [istotne] 1784804668795 „Klima salon: wyłącz…" — OFF nie sprawdza klima_salon_auto
Gałąź ON wymaga klima_salon_auto = on; gałąź OFF (sunset / balkon ≤ salon
15 min / auto→off) ma tylko warunek climate = cool. Scenariusz: użytkownik
wyłącza tryb auto i chłodzi ręcznie — o zachodzie słońca (albo gdy balkon
zrówna się z salonem) automatyzacja i tak ubije chłodzenie i odpali suszenie
parownika. Jeśli intencja to „suszenie parownika zawsze, niezależnie od trybu"
— OK, ale wtedy warto to zapisać w description. PROPOZYCJA: decyzja
operatora; przy „auto-only" dodać warunek klima_salon_auto = on.
3.2 [istotne] 1768946230585 — pattern omija semantykę „po aktywacji" (opisane w 2.4)
Formalnie ta sama klasa: trigger krawędziowy (off→on) plus trigger czasowy, który wchodzi tą samą bramką warunków co stan ciągły.
3.3 Przypadki sprawdzone i czyste
1751562415786„Turn off lights in Kuchnia": triggery czujnikowe + pattern /5 + 23:30:02, ale warunki lustrzanie wymagają wszystkich czterech czujnikównot_occupied— pattern nie omija bramki. OK.1764190493305„after 15 minutes anyway": pattern /5 zlustrzany warunkami 14:45. OK (problem tej automatyzacji to 2.1, nie klasa 3).1744918189114/1744919280479/1744919746930(pigry/piplayer): pattern co minutę, warunki zfor:— lustrzane. OK.1666471111199„Zasilanie multimediów auto-off": pattern co minutę, warunki TV off 1 min + gniazdko on 10 min — okno rozruchu TV (2m35s w1764610725230) mieści się w 10-minutowej karencji. OK.- Pary ON/OFF na wspólnym triggerze (
1640285211569/...276640— 1_hold Tymka) bramkowaneis_off/is_on— wzorzec poprawny (choć encje martwe, 1.5).
4. Higiena
4.1 [kosmetyczne] Aliasy-śmieci i rozjazdy alias ↔ entity_id
| entity_id (fixtures) | alias (repo) | problem |
|---|---|---|
automation.lampka_test_1_on |
„Mirror OFF" | entity z testu żarówki, robi lustro |
automation.xxxxxx |
„Turn on led nad blatem duzym prawym" | — |
automation.new_automation |
„4b: 1_sc: Swiatlo nad kuchnia" | — |
automation.new_automation_2 |
„1b2: 1_ho: Choinka i lampki OFF" | — |
automation.new_automation_3 |
„Turn off swiatlo nad kuchnia when no motion, no trigger" | — |
automation.choinka |
„4b: 2_dc: Activate Scene Film" | alias zmieniony (legacy: „Lampki na półce"), entity zostało po choince |
automation.swiatlo_za_telewizorem_z_przycisku |
„1b2: 1_dc: Choinka i lampki ON" | entity po starej funkcji |
automation.gniadka_w_lazience_off |
„Gniazdka w Łazience OFF" | alias naprawiony (57a5f66), entity z literówką zostało |
automation.turn_off_lights_in_kuchania |
„Turn off lights in Kuchnia" | literówka „kuchania" — na tym entity wisi 8 referencji z innych automatyzacji! |
automation.email_on_water_sensor_dry_in_lazienka_2/3/4 |
dry in Kuchnia/Pralnia/WC | kopie po Łazience |
automation.turn_off_blat_w_pralnia_on_md |
„Turn ON blat w Pralnia on MD" | entity mówi „off" |
automation.set_heaterhelitv07_… / set_heaterlazienkatrv10_… / set_heatersypialniatv02_… / set_heatertymktv10_… |
aliasy TRV10/TRV07 | numery TRV w entity nie zgadzają się z aliasami |
Duplikatów aliasów brak. PROPOZYCJA: nie zmieniać entity_id hurtowo (referencje
krzyżowe — zwłaszcza turn_off_lights_in_kuchania jest celem automation.turn_on/off
z 8 miejsc); jeśli porządkować, to najpierw mapa referencji, osobny task.
Aliasy typu „test"/„xxxxxx" można prostować bezpiecznie (alias nie jest
identyfikatorem).
4.2 [istotne] Sezonowe aktywne poza sezonem (choinka w lipcu)
1734943824257„Turn ON Choinka na wejscie" — włączona, ostatni trigger 2026-05-02 (sic!), cele: tasmota_12 („Lampki na półce"), tasmota_8 („Choinka"), zblampkiregal — wszystkie trzy unavailable (fizycznie odpięte).1689079279480/1689079321508„1b2: 1_dc/1_ho: Choinka i lampki ON/OFF" — przyciskowe, włączone, cele unavailable.- Scena
Film(1730724373818) ma zapisany stanswitch.tasmota_8: unavailable(scena robiona przy odpiętej choince) itasmota_12: on.
PROPOZYCJA: wyłączać (nie kasować) sezonowe automatyzacje po sezonie — np.
konwencja aliasu [sezon:zima] + jedna automatyzacja/checklista sezonowa.
Scena Film do przegrania bez encji choinkowych.
4.3 [kosmetyczne] last_triggered NULL lub >12 miesięcy (kandydaci do przeglądu)
- 2024:
1640285211569,1640285276640(Tymek ON/OFF — martwe encje, 1.5),1703104933437„Turn OFF TYmka sufit" (2024-09, wyłączona). - NULL:
1752086343222„moist in Kuchnia" (patrz 2.6 — zostawić, to alert),1760432474594(martwa, 1.5). - Wyłączone od dawna:
1704492239040/288312„prototyp w ubikacji" (2025-08, świadomie zarzucony — patrz 5),1752241986989„test test…" (2025-07),1701370240657„Przyjscie Tymka" (2025-11, wyłączona),1744918520715„Turn on pigry wo trigger" (2025-04; bez triggerów — de facto skrypt). 1714050591470„Leave auto on: batch 02" — wyłączona, podczas gdy „Leave auto off: batch 02" włączona. Przy najbliższym urlopie symulacja obecności zapali tylko batch 01. Niespójność do decyzji.
4.4 [kosmetyczne] Automatyzacje-bez-triggerów używane jak skrypty
speak_mirror, speak_mirror_alert, Poranek stop, new_automation_3,
Turn on pigry wo trigger, Test ntfy — wywoływane przez automation.trigger
lub ręcznie. Działa, ale to semantycznie skrypty (byłyby widoczne w UI skryptów,
nie zaśmiecałyby listy automatyzacji i nie miałyby stanu on/off do przypadkowego
wyłączenia). PROPOZYCJA: przepisać na script.* przy okazji porządków.
4.5 [kosmetyczne] Inne
input_boolean.motion_front— nieużywany w żadnej automatyzacji (kandydat do kasacji);input_number.test— jw.input_datetime.koniec_urlopu= 2026-01-31 (przeszłość) — triggerEnd of On leavenie odpali do czasu ustawienia nowej daty; spójne zon_leave = off, ale warto wiedzieć, że to ręczny krok przy każdym urlopie.sensor.4button_batteryunavailable od 2026-07-17, a automatyzacje 4b: strzelały jeszcze 2026-07-12 — pilot prawdopodobnie na resztkach baterii (albo ofiara tej samej awarii co zhimi). Do sprawdzenia fizycznie — wisi na nim 8 automatyzacji salonu.
5. Porównanie z legacy (60 automatyzacji archiwum)
54/60 ma odpowiednik na ken po tym samym id. Bez odpowiednika:
| legacy id | alias | ocena |
|---|---|---|
| 1639950051409 | --Test obecnosci telefonu |
test (prefiks --), strata zerowa |
| 1666696862316 | ---Zone Notification oka leave home |
blueprint, prefiks --- (wyłączony konwencją), strata zerowa |
| 1667745509155 | Notify move in Sypialnia |
na ken zastąpione wariantem tylko on-leave (1753883109847). Funkcja „zawsze powiadom o ruchu w sypialni" znikła — wygląda na świadomą redukcję szumu, do potwierdzenia |
| 1701086617456 | Oczyszczacz i nawilżacz z przycisku |
przycisk sypialni (long) przemapowany na ken na Sleep mode OFF (1768946838707) — świadoma zmiana funkcji przycisku |
| 1701087364463 | Wszystkie nawilżacze i oczyszczenie z przycisku |
jw. (double → Sleep mode ON) |
| 1703105565821 | Turn OFF pimirror |
jedyna realna strata: graceful shutdown lustra (press przycisku shutdown → 1 min → odcięcie zasilania). Na ken zostało tylko twarde cięcie o 23:35 (Mirror OFF) i ścieżka ACK (Magic Mirror OFF on ACK), której nic już nie inicjuje — RPi lustra jest codziennie twardo odłączany od prądu |
Znany przypadek świadomej decyzji (wzorzec, jak to robić dobrze): „prototyp w
ubikacji" istnieje na ken, ale wyłączony, czujnik zdemontowany, a dimmer
light.tsdimm01 przeznaczony ponownie do LED nad małym blatem w kuchni.
Uwaga praktyczna: przypadkowe włączenie tej pary automatyzacji miga światłem w
kuchni od (martwego dziś) czujnika ubikacji — bezpieczniej skasować niż trzymać
wyłączone.
PROPOZYCJA: odtworzyć graceful shutdown lustra (mqtt halt przed 23:35 +
istniejący ACK-flow zamiast gołego odcięcia zasilania); potwierdzić decyzję o
sypialni; resztę uznać za zamkniętą.
6. Spójność stylistyczna (informacyjnie, nie błędy)
- Nazewnictwo: trzy pokolenia konwencji naraz — prefiksy przyciskowe
(
4b: 3_sc:,1b2: 1_ho:), angielskie zdania („Turn off lights in Kuchnia after 15 minutes anyway"), polskie zdania („Oczyszczacz i nawilżacz prze przycisk Tymka"). Mieszanka PL/EN często w jednym aliasie. Literówki: „Toogle", „prze przycisk", „Lampiki", „wzmaczniacz", „Oczyszczecze", „Gniadka" (w entity), „kuchania" (w entity). - device_id vs entity_id: ~60% akcji to
device automationz surowymidevice_id/UID-ami registry (32-znakowe hexy) — nieczytelne w YAML-u i kruche przy wymianie sprzętu (nowe urządzenie = nowy device_id = cicha śmierć automatyzacji; dokładnie ten mechanizm ubił parę Tymka z 1.5 i ukrył rename occusalon z 1.5). Nowsze automatyzacje (klima, ledy blatowe) używają jużaction+entity_id— ta konwencja powinna być docelowa dla wszystkich nowych/przepisywanych automatyzacji. - TTS: dwa systemy równolegle —
tts.google_translate_sayna martwym Bose (Speak) vstts.piperna pimirror (reszta). Docelowo jeden. - Polling vs zdarzenia: 13 automatyzacji
time_pattern, w tym co-minutowe („Send balkon temp to mm", multimedia, pigry/piplayer) i sub-minutowe (current_player 15 s, TRV 40–50 s). Część jest uzasadniona (ping-sensory), ale kierunek powinien być zdarzeniowy tam, gdzie HA ma trigger (np.Send balkon temp→ trigger na zmianę stanu sensora zamiast REST co minutę). - Tryby: cztery flagi trybów (
sleep_mode,night_mode,passive_mode,movie_mode) o częściowo pokrywającej się semantyce;night_modewłącza się o 23:30 i gaśnie o wschodzie (latem 4:30),sleep_modegaśnie o 6:30 — automatyzacje sprawdzają raz jedną, raz drugą, raz OR obu. Entityautomation.turn_off_sleep_mode_at_sunrisesteruje…night_mode. Do przemyślenia konsolidacja w jedeninput_select.tryb_domu.
Do decyzji operatora
Pytania tak/nie, do przejścia punkt po punkcie:
- Wymieniamy baterie / re-parujemy 6 czujników ruchu (mdwejscie, mdsypialnia, mdtymka, mdheli, mdubikacja, occusalon) i czujnik wycieku WC? (1.2, 1.3)
- Naprawiamy kalibracje TRV przed sezonem: guard na unavailable + reset −5.0 w sypialni/Tymku + zwolnienie pętli do ≥5 min? (1.4)
- Diagnozujemy integrację xiaomi_miot (padła 2026-07-17 razem z encjami zhimi) zamiast łatać pojedyncze automatyzacje? (1.6)
- Poprawiamy parę wodną Kuchnia (
moist→not_moist) i literówkęmesaagew „dry in Lazienka"? (2.6) — dwie zmiany one-linerowe. - Weryfikujemy na żywym ken istnienie helperów klimy
(
klima_salon_auto,_temp_docelowa,_tolerancja)? (1.1) - Czy „Klima salon: wyłącz" ma ubijać także ręczne chłodzenie o zachodzie
(obecne zachowanie), czy respektować
klima_salon_auto = off? (3.1) - Czy enforcer sleep mode ma gasić światła cyklicznie całą noc (obecne zachowanie), czy tylko raz po aktywacji? (2.4)
- Czy „Turn off lights in Kuchnia after 15 minutes anyway" ma respektować ręczne „Disable AUTO off" (double-click)? (2.1)
- Konsolidujemy cztery nocne wyłączniki świateł do jednego? (2.2)
- Kasujemy martwe od lat: para Tymka [ON]/[OFF], „test test Powitanie…", „Notify on router sypialnia…", para „prototyp w ubikacji"? (1.5, 4.3, 5)
- Przywracamy OwnTracks (lokalizacja Oskar) czy kasujemy automatyzację
i
device_tracker.oskar? (1.5) - Włączamy z powrotem „Leave auto on: batch 02" (symulacja obecności) — czy celowo została wyłączona? (4.3)
- Wyłączamy na lato automatyzacje choinkowe i przegrywamy scenę Film bez encji choinki? (4.2)
- Odtwarzamy graceful shutdown pimirror (jedyna realna strata z migracji)? (5)
- Sprawdzamy baterię pilota 4button (8 automatyzacji salonu na jednym urządzeniu, encje unavailable od 2026-07-17)? (4.5)
- Naprawiamy „Turn off lights unconditionally at 3am" na punktowy trigger 03:00 (dziś strzela 60×/noc)? (2.3)
- Ustalamy konwencję na przyszłość: nowe automatyzacje tylko
entity_id(bez device automations) + aliasy w jednym języku? (6)
Wygenerowano w ramach audytu read-only; żadna automatyzacja, skrypt ani scena
nie zostały zmodyfikowane. Snapshot źródłowy: registry/fixtures 2026-07-22,
repo task/ha-audyt-automatyzacji (parent faa2e2a).