Home Assistant pętla kolorów przez 14 lamp rgb
Aby stworzyć pętlę kolorów dla 14 lamp RGB w Home Assistant, możesz wykorzystać automatyzacje, skrypty lub bardziej zaawansowane narzędzia, takie jak AppDaemon czy Node-RED. Poniżej przedstawiam szczegółowe rozwiązania, które pozwolą na realizację tego efektu.
Poniższy kod realizuje pętlę kolorów dla 14 lamp RGB, zmieniając ich kolory co 5 sekund:
automation:
- alias: "Pętla kolorów dla 14 lamp RGB"
trigger:
- platform: time_pattern
seconds: "/5" # Zmiana co 5 sekund
action:
- repeat:
count: 14
sequence:
- service: light.turn_on
target:
entity_id: >
{% set lights = ['light.rgb1', 'light.rgb2', 'light.rgb3', 'light.rgb4', 'light.rgb5', 'light.rgb6', 'light.rgb7', 'light.rgb8', 'light.rgb9', 'light.rgb10', 'light.rgb11', 'light.rgb12', 'light.rgb13', 'light.rgb14'] %}
{{ lights[repeat.index - 1] }}
data:
hs_color: ["{{ (repeat.index - 1) * (360 / 14) }}", 100] # Kolory w odstępach na kole barw
brightness: 200
transition: 3 # Płynne przejście
Wyjaśnienia:
repeat.count
: Określa liczbę lamp (14 w tym przypadku).hs_color
: Ustawia kolor w formacie Hue-Saturation. Kolory są równomiernie rozmieszczone na kole barw.transition
: Dodaje płynne przejście między kolorami.Jeśli chcesz większej elastyczności, możesz użyć skryptu Python:
W pliku configuration.yaml
dodaj:
python_script: !include_dir_merge_named python_scripts
Utwórz plik rgb_loop.py
w folderze python_scripts
:
lights = ['light.rgb1', 'light.rgb2', 'light.rgb3', 'light.rgb4', 'light.rgb5', 'light.rgb6', 'light.rgb7', 'light.rgb8', 'light.rgb9', 'light.rgb10', 'light.rgb11', 'light.rgb12', 'light.rgb13', 'light.rgb14']
colors = [[255, 0, 0], [0, 255, 0], [0, 0, 255], [255, 255, 0], [255, 0, 255], [0, 255, 255]]
for i, light in enumerate(lights):
color = colors[i % len(colors)]
hass.services.call('light', 'turn_on', {
'entity_id': light,
'rgb_color': color,
'transition': 2
})
Zalety:
AppDaemon pozwala na bardziej zaawansowane sterowanie:
import appdaemon.plugins.hass.hassapi as hass
import time
class RGBLoop(hass.Hass):
def initialize(self):
self.lights = ['light.rgb1', 'light.rgb2', 'light.rgb3', ..., 'light.rgb14']
self.colors = [[255, 0, 0], [0, 255, 0], [0, 0, 255], [255, 255, 0], [255, 0, 255], [0, 255, 255]]
self.run_every(self.change_colors, "now", 5) # Zmiana co 5 sekund
def change_colors(self, kwargs):
for i, light in enumerate(self.lights):
color = self.colors[i % len(self.colors)]
self.turn_on(light, rgb_color=color, transition=2)
Efekty wbudowane w lampy: Niektóre lampy RGB obsługują efekty, takie jak "rainbow" (tęcza). Możesz je aktywować za pomocą usługi light.turn_on
z parametrem effect
.
Integracje z HACS: Warto rozważyć instalację niestandardowych komponentów, takich jak "hass-variables", które ułatwiają zarządzanie listami kolorów.
Blueprints: Home Assistant wspiera tzw. "blueprints", które pozwalają na łatwe tworzenie i udostępnianie gotowych automatyzacji.
input_number
) do interfejsu Home Assistant, aby dynamicznie zmieniać prędkość pętli.Aby stworzyć pętlę kolorów dla 14 lamp RGB w Home Assistant, możesz użyć automatyzacji w YAML, skryptów Python lub AppDaemon. Kluczowe jest poprawne zdefiniowanie encji lamp, wybór odpowiedniego formatu kolorów (np. HS) i dostosowanie prędkości oraz efektów do swoich potrzeb. Warto również monitorować wydajność systemu i dostosować konfigurację do możliwości sprzętowych.