Fiókból előkerült egy IKEA kapcsoló – a Hue bar mostantól gombbal is megy


A lámpa, ami miatt megérte az egész

Valami miatt az éjjeli szekrény lámpái nálam sosem voltak tökéletesek.

Vagy túl erős. Vagy rossz a szín. Olvasáshoz gyenge, éjjeli fénynek meg vakító.

Pár hónapja bekerült az éjjeliszekrényre egy Philips Hue bar – ez az a kis fekete rúd, ami a bútor mögé is illeszthető, TV mögé is használják, de falra is szerelik. Adapter nélkül jutottam hozzá (azt hittem jár hozzá - erről majd egyszer külön írok), de végül sikerült működőképes állapotba hozni.

Ami rögtön megtetszett: lehet dimmelni, lehet a színt váltani, és minden ki/bekapcsolás gyönyörűen fade-el. Nincs kattanás, nincs hirtelen felvillanás – elhalványodik, majd fokozatosan adagolja a fényerőt. Igazi Philips Hue élmény.

A napi rutin hamar kialakult. Olvasáshoz meleg fehér, magasabb fényerő. Filmezéshez halvány, valamilyen színnel. Néha kislányom átjön hozzánk, kedvet kap egy kis együtt alváshoz – ilyenkor mindig olvasok neki mesét, és jól jön az közepes erősség, nem tolakodó fény. Amikor elalszik, lecsökkentem pár százalékra: annyi fény marad, amennyivel ki tud menni éjjel a mosdóba anélkül, hogy megrettenne a sötétségben.

Szóval ezzel a kis lámpával minden szcenárióra van megoldás.

Egy dolgot leszámítva.


4 lépés ahhoz, hogy lekapcsoljam a lámpát

Amikor le vagy fel akartam kapcsolni a fényt, ez volt a folyamat:

  1. Megkeresi az ember a telefont
  2. Home Assistant megnyitása (ha minden oké a wifivel, el is indul :D)
  3. Az entitás megkeresése
  4. Állítás

Kellett egy fizikai kapcsoló.


A fiók

Kihúztam a fiókot.

Van az az érzés, amikor összegyűjtöd az évek alatt felhalmozott “majd egyszer jó lesz” eszközöket, és egyszer csak tényleg jó lesz. Ez volt az a pillanat.

Egy IKEA Trådfri on/off kapcsoló. Fehér, kis négyzet, kettő gomb, mágnesesen tapad a tartójához.

De mielőtt bármit csináltam volna, felmentem a Zigbee2MQTT supported devices oldalra, és kikerestem a típust.

Találat. Eddig jók vagyunk.

Az “Exposes / actions” szekció:

The possible values are: on, off, brightness_move_up, brightness_move_down, brightness_stop

TÖKKKÉLETES.

Csak 2 gomb van az eszközön, de 4 funkciót fogok belőle kihozni:

GombAkcióFunkció
I (klikk)onBekapcsolás
I (nyomvatartás)brightness_move_upFényerő növelés
O (klikk)offKikapcsolás
O (nyomvatartás)brightness_move_downFényerő csökkentés

Párosítás – percek alatt

Úgy emlékeztem, hogy az IKEA Zigbee eszközöket a reset gomb ismételt nyomkodásával lehet párosítás módba tenni. Így is volt.

Z2M UI-ban engedélyeztem az új eszközök csatlakozását (Permit join), pár nyomkodás a reset gombra, és az eszköz azonnal megjelent.

Hogy biztosak legyünk benne, hogy a gombok jól akcióznak, megnéztem a Z2M logokat. Megnyomkodtam a kapcsolót:

[4/11/2026, 1:18:23 AM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/ikea_on_off_01/action', payload 'off'
[4/11/2026, 1:18:24 AM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/ikea_on_off_01/action', payload 'on'
[4/11/2026, 1:18:27 AM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/ikea_on_off_01/action', payload 'brightness_move_up'
[4/11/2026, 1:18:28 AM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/ikea_on_off_01/action', payload 'brightness_stop'
[4/11/2026, 1:18:30 AM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/ikea_on_off_01/action', payload 'brightness_move_down'
[4/11/2026, 1:18:31 AM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/ikea_on_off_01/action', payload 'brightness_stop'

Minden akció ott van. A párosítás megvolt.


Az automatizáció YAML-ban

Home Assistantban MQTT alapú triggerekkel dolgoztam – az eszköz a zigbee2mqtt/ikea_on_off_01/action topicra publikál minden gombnyomáskor.

automation:
  - id: 'ikea_on_off_01_ejjeliszekreny_on'
    alias: Hálószoba éjjeliszekrény kapcsoló - be
    triggers:
      - platform: mqtt
        topic: "zigbee2mqtt/ikea_on_off_01/action"
        payload: "on"
    actions:
      - action: light.turn_on
        target:
          entity_id: "light.haloszoba_ejjeliszekreny"
    mode: single

  - id: 'ikea_on_off_01_ejjeliszekreny_off'
    alias: Hálószoba éjjeliszekrény kapcsoló - ki
    triggers:
      - platform: mqtt
        topic: "zigbee2mqtt/ikea_on_off_01/action"
        payload: "off"
    actions:
      - action: light.turn_off
        target:
          entity_id: "light.haloszoba_ejjeliszekreny"
    mode: single

  - id: 'ikea_on_off_01_ejjeliszekreny_brightness_up'
    alias: Hálószoba éjjeliszekrény kapcsoló - fényerő növelés start
    triggers:
      - platform: mqtt
        topic: "zigbee2mqtt/ikea_on_off_01/action"
        payload: brightness_move_up
    actions:
      - action: script.haloszoba_ejjeliszekreny_dim_up
    mode: single

  - id: 'ikea_on_off_01_ejjeliszekreny_brightness_down'
    alias: Hálószoba éjjeliszekrény kapcsoló - fényerő csökkentés start
    triggers:
      - platform: mqtt
        topic: "zigbee2mqtt/ikea_on_off_01/action"
        payload: brightness_move_down
    actions:
      - action: script.haloszoba_ejjeliszekreny_dim_down
    mode: single

  - id: 'ikea_on_off_01_ejjeliszekreny_brightness_stop'
    alias: Hálószoba éjjeliszekrény kapcsoló - fényerő állítás stop
    triggers:
      - platform: mqtt
        topic: "zigbee2mqtt/ikea_on_off_01/action"
        payload: brightness_stop
    actions:
      - action: script.turn_off
        target:
          entity_id:
            - script.haloszoba_ejjeliszekreny_dim_up
            - script.haloszoba_ejjeliszekreny_dim_down
    mode: single

script:
  haloszoba_ejjeliszekreny_dim_up:
    alias: Hálószoba éjjeliszekrény - folyamatos fényerő növelés
    sequence:
      - repeat:
          while:
            - condition: state
              entity_id: "light.haloszoba_ejjeliszekreny"
              state: "on"
          sequence:
            - action: light.turn_on
              target:
                entity_id: "light.haloszoba_ejjeliszekreny"
              data:
                brightness_step_pct: 10
            - delay:
                milliseconds: 500
    mode: restart

  haloszoba_ejjeliszekreny_dim_down:
    alias: Hálószoba éjjeliszekrény - folyamatos fényerő csökkentés
    sequence:
      - repeat:
          while:
            - condition: state
              entity_id: "light.haloszoba_ejjeliszekreny"
              state: "on"
          sequence:
            - action: light.turn_on
              target:
                entity_id: "light.haloszoba_ejjeliszekreny"
              data:
                brightness_step_pct: -10
            - delay:
                milliseconds: 500
    mode: restart

Dimming script – fényerő-változtatást egy script kezeli, ami 10%-os lépésekben halad, 500 ms szünettel. Addig megy, amíg a lámpa be van kapcsolva – VAGY amíg a brightness_stop akció le nem állítja. A mode: restart gondoskodik arról, hogy ha nyomvatartás közben elengedik és újra nyomják, a script rendesen újraindul.


Az absztrakciós réteg – és egy elég hülye hiba

Fejlesztőként felzaklat, ha egy nevet öt helyen kell kicserélnem.

Ha holnap új hardver kerül oda, és öt fájlban kell átírni az entity_id-t – ott valami baj van az architektúrával.

A megoldás: legyen egy “logikai” entitás, amire az összes automatizáció hivatkozik. A fizikai eszköz cserélődhet, a logikai neve stabil marad. Home Assistantban erre a light group platform alkalmas – összefogod a fizikai lámpát (akár egyetlen tagként), és a csoport kap egy saját, stabil entity_id-t.

light:
  - platform: group
    name: haloszoba_ejjeliszekreny
    unique_id: haloszoba_ejjeliszekreny
    entities:
      - light.hue_bar_01

Egyszerű. Működik.

Csak én elsőre nem vettem észre, hogy a Home Assistant packages mappában már volt egy haloszoba.yaml nevű fájl – és az újat is ugyanúgy neveztem el.

A Home Assistant !include_dir_named betöltési módja a fájlnevet használja csomagkulcsként, függetlenül attól, melyik alkönyvtárban van a fájl. Ha két fájl neve azonos, az egyik csendben felülírja a másikat. Hibaüzenet nincs. Az automatizációk csak egyszerűen eltűntek az UI-ból.

Jött a szokásos tagadás fázis - “de hiszen ez a YAML valid”. Nyomozás. Aztán megvilágosodás.

Az egyik fájlt átneveztem. Minden visszajött.


De várj. Ez még nem okosotthon.

A gomb működik. Klikk — be. Klikk — ki. Dimmelés nyomvatartással.

De van az a pillanat, amikor éjjel háromkor felkelsz. Nem akarsz tapogatni a kapcsoló után. Nem akarsz fényt se — csak annyit, amennyit a lábaid kérnek.

Van már a küszöbnél egy Aqara PIR szenzor. Nappal azt figyelem, hogy mikor kelek fel – és az ébreszti fel a kávégépet, hogy mire leérek, már meleg a ristretto. Ugyanez a szenzor éjjel másképp viselkedik.

Ha mozgást érzékel 22:30 és 6:00 között, a Hue bar felgyullad 8%-ra, meleg fehérre, kétmásodperces fade-del. Ha 3 percig nincs több mozgás, lassan kialszik.

Ugyanaz a fizikai szenzor. Más időpont, más kontextus, más döntés. Ez az, ami egy smart home-t megkülönböztet egy drága kapcsolós lakástól.

Teljes éjjeliszekrény fény vezérlés kapcsolóval
automation
  - id: 'ejjeliszekreny_ejszakai_felkelesre'
    alias: Hálószoba éjjeliszekrény – éjszakai felkelés
    triggers:
      - platform: state
        entity_id: binary_sensor.haloszoba_mozgas_foglaltsag
        to: "on"
    conditions:
      - condition: time
        after: "22:30:00"
        before: "06:00:00"
      - condition: state
        entity_id: light.haloszoba_ejjeliszekreny
        state: "off"
    actions:
      - action: light.turn_on
        target:
          entity_id: light.haloszoba_ejjeliszekreny
        data:
          brightness_pct: 8
          color_temp: 500
    mode: restart
  
  - id: 'ejjeliszekreny_ejszakai_kikapcsolas'
    alias: Hálószoba éjjeliszekrény – éjszakai kikapcsolás mozgás után
    triggers:
      - platform: state
        entity_id: binary_sensor.haloszoba_mozgas_foglaltsag
        to: "off"
        for:
          minutes: 3
    conditions:
      - condition: time
        after: "22:30:00"
        before: "06:00:00"
    actions:
      - action: light.turn_off
        target:
          entity_id: light.haloszoba_ejjeliszekreny
    mode: restart

Van még egy eset: elalszom olvasás közben, és nem nyomom meg az O gombot. 30 perc múlva a lámpa elkezd halványodni. Tíz perc alatt 3%-ra csökkenti magát, majd 2 perc alatt kialszik.

Éjjeli fény kikapcsolása automatikusan
automation:
  - id: 'ejjeliszekreny_elalvas_timeout'
    alias: Hálószoba éjjeliszekrény – elalvás kikapcsolás
    triggers:
      - platform: state
        entity_id: light.haloszoba_ejjeliszekreny
        to: "on"
        for:
          minutes: 30
    conditions:
      - condition: time
        after: "21:00:00"
        before: "05:00:00"
    actions:
      - action: light.turn_on
        target:
          entity_id: light.haloszoba_ejjeliszekreny
        data:
          brightness_pct: 3
          transition: 600
      - delay:
          minutes: 10
      - action: light.turn_off
        target:
          entity_id: light.haloszoba_ejjeliszekreny
        data:
          transition: 120
    mode: restart

A transition: 600 azt jelenti, hogy 600 másodperc — 10 perc — alatt csökkenti a fényerőt 3%-ra. A transition: 120 a kikapcsoláshoz is animációt ad: 2 perc alatt halványodik el. Nem riad fel az ember a hirtelen sötéttől.


Végeredmény

ejjeli_szekreny.jpeg Az IKEA Trådfri vezérli a Hue bar-t. Ki/be klikkel, dimmelés nyomvatartással. Éjjeli felkeléskor automatikusan felgyullad 8%-ra, majd magától kialszik. Ha elalszom olvasás közben, a lámpa lassan elhalványodik, és magától lekapcsol.

A telefon maradhat a töltőn.


Ha hasonló megoldásokon gondolkodsz, vagy elakadtál valahol — a következő részekben is ilyen jellegű dolgokról írok. Ha nem akarsz lemaradni, iratkozz fel lentebb.