Písav sa rok 2018 a toť doma bolo nutkaní ovešať vánočný stromek RGB svetílkami. Jak na to? Čo tomu predchádzalo, jak to vyzíralo a funguvalo?
Biskuplights je projekt kerý uzrev svetlo sveta v roku 2018 krátko pred vánocami, v čase adventu. Išlo o spojení Raspberry Pi s náhodným RGB pásikom na 12V s tým, že sa s tým ovešá celý stromek a pripojí sa to na IoT systém Cheerlights.
Najprv k Cheerlights, Cheerlights poznám zhruba od roku 2016 odkedy mi to bolo celé nadhodené Adamom jako taká IoT vec kerá zbírala, v tom čase ešte na Twitteri, najnovší tweet s volákou farbou ze zoznamu, polla kerej sa menili farby šeckým zúčastneným globálne na svete. Aj keď posledné roky toľko nebýva o projekte očuť tak furt som mu ja sám verný a používam ho.
Biskuplights je obdoba k Cheerlights, ide o vácméň nemenný systém kerý má pozmenené meno keďže je vyskladaný z webového interfacu v ktorom sa ovláda posílaní týchto faréb skrz Fediverse bota na kerého potom reaguje ten hlavný Cheerlightsový.
Chronologické záležitosti:
Vánoce 2018 - vznik projektu, poskladané z náhodne ležáceho RPi a ze "shieldu" na kerom boli tranzistory na ovládaní 12V pásika.
Vánoce 2020 - projekt pozmeneu mierne HW zapojení ale našťastí iba fakt detailne kedy sa zmeneu zdroj, nešlo o nič veliké
Vánoce 2023 - prechod z Twitter bota na Mastodon, šaškuvaní s kamerou a hlavne zmena z 12V pásika na 12V hada WS2811. Problematické bolo vyžaduvaní level shiftera kerý som nemal (had má 5V ovládaní, GPIO na RPi je iba 3.3V) problém som obešóv s Arduinom
Vánoce 2024 - odpis RPi, kompletné prerobení odspodku a hlavne napojení na Home Assistanta.
Vizuálne záležitosti: Bolo by vhodné poznamenať že na to, jak to vizuálne celé vyzíralo tak to každý rok spoľahlivo ždy funguvalo a každý rok aj prežilo jakékoľvek útoky od štvornohých zvíreníc.
Slovné záležitosti:
Nestem to vlákno moc deliť, pojme to spraviť šecko tu. Keď projekt vznikol tak bol vyskladaný hajbuj z toho čo bol, tých vecí nebolo moc ale nakonec sa podarilo. Pásika bolo tak snáď 5 metrov a funguvalo to. Prvé roky to bolo také akurát a potom v roku 2023 som si povedal že treba pritvrdiť. Zehnal som 20 metrov RGB WS2811 hada za fakt dobrú cenu, poskladal som to tak zas hajbuj aby bolo a funguvalo sa. Veškeré ovládaní neexistuvalo, bolo to fakt polorozbité, animácie sa na tom nedali, pritmavuvaní a podobné hovadiny boli nemysliteľné a né to ešte aby si volado zmyslel že ho chce ináč šteluvať.
V roku 2024 sa okolnosti zmenili kedy som sa dostal k ESP32, na toto ESPčko som v decembri naflashuval WLED (kerý ze začátku sústavne padal ale nakonec som túto patáliu poríšeu flashom alternatívneho WLEDu 0.14.4 (ESP32 4MB Flash, žádne dodatky navyše) v kerom zjavne neboli vykompiluvané šecky veci a hlavne ani nie ten problematický modul a odtedy to líta jak má)
Tento WLEDom naflashuvaný MCU je potom pripojený po WiFine na WiFinu a aj na Home Assistant v kerom sa to chová jak bežná lampa. Do Home Assistanta ide skrz MQTT topic aktuálna farba z Cheerlights a na každú jednu zmenu tejto farby v HEXe reaguje automatizácia v Home Assistante kerá posíla prekonvertuvanú farbu. Títo automatizácie sú v podstate minimálne dve, jedna ríši tú farbu:
Code: Select all
alias: Cheerlights <=> Biskuplights
description: ""
mode: single
triggers:
- entity_id: sensor.cheerlights_farba
trigger: state
conditions: []
actions:
- variables:
hex_color: >-
{{ states('sensor.cheerlights_farba') |
regex_findall_index('#[0-9a-fA-F]{6}') }}
- choose:
- conditions:
- condition: template
value_template: "{{ hex_color is not none }}"
sequence:
- condition: state
entity_id: light.biskuplights
state: "on"
- target:
entity_id: light.biskuplights
data:
rgb_color: >
[{{ hex_color[1:3]|int(base=16) }}, {{
hex_color[3:5]|int(base=16) }}, {{ hex_color[5:7]|int(base=16)
}}]
action: light.turn_on
Code: Select all
alias: Biskuplights - effect randomize
description: ""
triggers:
- trigger: time_pattern
minutes: "10"
- trigger: time_pattern
minutes: "20"
- trigger: time_pattern
minutes: "30"
- trigger: time_pattern
minutes: "40"
- trigger: time_pattern
minutes: "50"
- trigger: time_pattern
minutes: "0"
conditions: []
actions:
- condition: state
entity_id: light.biskuplights
state: "on"
- target:
entity_id: light.biskuplights
data:
effect: >
{{ ["Flow", "Solid", "Breathe", "Wipe", "Rainbow", "Running", "Rainbow
Runner", "Aurora", "Scanner", "Gradient", "Fairy", "Fairytwinkle",
"Lake", "Candle", "Sinelon", "Plasma", "Candle Multi", "Phased",
"Twinkleup", "Freqwave", "Freqpixels", "DJ Light"] | random }}
action: light.turn_on
mode: single
Móžem nakonec povedať len jedno. Pevne dúfam že to v tomto stave ostane už naveky a že sa teoreticky ešte určite nájde šanca títo svetílka používať aj inokedy mimo vánočného obdobá. Uvidíme.