Sarastusvalo Zigbee LED-nauhan avulla
LED-nauhalla toteutettavan valaistuksen tarkoituksena on toimia yleisvalaistuksena. Tämän vuoksi siihen haluttiin värilämpötilan säätö, mutta myös RGB-valaistus. Nauha on siis RGB-CCT -tyyppiä eli siinä on RGB -ledien lisäksi lämpimän ja kylmän valkoisen ledit.
LED-nauhaa asennettiin yhteensä lähes kuusi metriä. LED-nauhaa varten kiinnitettiin ensin alumiiniprofiili tukevalla kaksipuoleisella teipillä. Profiiliin kiinnitettiin opaali diffuuseri, joka hajottaa valon paremmin vähentäen yksittäisten ledien pistemäisyyttä.
LED-nauhan ohjaimeksi valikoitui Sunriched SR-ZG1029-5C. Valoja haluttiin ohjata myös kaukosäätimellä ja valinta päätyi saman valmistajan SR-ZG2868 kapulaan. Virtalähteeksi LED-nauhalle valikoitui Meanwell:n LED-käyttöön tarkoitettu murikka.
Käytössäni on edelleen vanha Phoscon Conbee II -USB-tikku, joka on yhdistetty docker -kontissa ajettavaan Zigbee2MQTT:hen. Zigbee2MQTT löytää laitteet normaalien paritustoimenpiteiden jälkeen. LED-ohjain on suoraan tuettujen laitteiden listalla, mutta kaukosäädin ei.

Tein kaukosäätimelle oman external_converter -tiedoston, jonka avulla sen toiminnot saadaan paremmin käyttöön esimerkiksi Home Assistantissa. Kaukosäädintä käytetään kuitenkin suoraan ohjaamaan kyseistä LED-nauhaa, joka onnistuu yhdistämällä laitteet keskenään niiden Find and Bind -toiminnolla.
Home Assistantin avulla LED-nauhalla toteutettiin myös sarastusvalotoiminto helpottamaan aamuherätyksiä. Tätä varten Home Assistantiin tehtiin ensin kellonaika- ja boolean-helpperit jokaiselle arkipäivälle: input_datetime.sarastus_maanantai, input_boolean.sarastus_maanantai, _tiistai, jne.

Valon kirkkaus muuttuu nollasta täyteen tehoon 15 minuutin aikana omalla skriptillä:
sequence:
- variables:
minutes: 15
delay: "{{ (minutes * 60) / 255 }}"
- repeat:
count: 255
sequence:
- target:
entity_id: light.led_valo
data:
brightness: "{{ repeat.index }}"
color_temp: 250
action: light.turn_on
- delay:
seconds: "{{ delay | float }}"
alias: Sarastusvalo
Varsinainen automaatio tarkistaa minuutin välein onko nyt arkipäivä, onko arkipäivän ajastus (boolean) päällä sekä onko nyt kyseiselle päivälle määritetty aika vähennettynä 15 minuutilla. Jos kaikki ehdot toteutuvat, edellä mainittu skripti käynnistetään.
alias: Sarastusvalo arkipäivinä
description: ""
triggers:
- minutes: /1
trigger: time_pattern
conditions:
- condition: template
value_template: >
{% set weekday = now().weekday() %} {% set daynames = ['maanantai',
'tiistai', 'keskiviikko', 'torstai', 'perjantai'] %} {% if weekday in
range(0, 5) %}
{% set day = daynames[weekday] %}
{% set dt = states('input_datetime.sarastus_' ~ day) %}
{% set enabled = is_state('input_boolean.sarastus_' ~ day, 'on') %}
{% if dt != 'unknown' and enabled %}
{% set target_time = strptime(dt, '%H:%M:%S') - timedelta(minutes=15) %}
{% set now_time = now().time() %}
{{ now_time.hour == target_time.hour and now_time.minute == target_time.minute }}
{% else %}
false
{% endif %}
{% else %}
false
{% endif %}
actions:
- action: script.sarastusvalo
mode: single