121 lines
3.9 KiB
Django/Jinja
121 lines
3.9 KiB
Django/Jinja
---
|
|
|
|
template:
|
|
- binary_sensor:
|
|
- name: "blink1_on"
|
|
device_class: light
|
|
state: >-
|
|
{% raw -%}
|
|
{{ state_attr('sensor.blink1', 'rgb') != "#000000" }}
|
|
{% endraw %}
|
|
#- sensor:
|
|
# - name: "blink1"
|
|
# state: "#000000"
|
|
# attributes:
|
|
# comment: |
|
|
# i think the is causing a bunch of errors in the logs
|
|
# so replacing the rest_sensor with a statc template
|
|
# for now
|
|
|
|
sensor:
|
|
|
|
- platform: rest
|
|
resource: http://localhost:{{ blink1_server_port }}/blink1
|
|
name: blink1
|
|
json_attributes:
|
|
- rgb
|
|
- bright
|
|
value_template: "{%raw%}{{ value_json.rgb }}{%endraw%}"
|
|
|
|
rest_command:
|
|
blink1_turn_on:
|
|
url: {{ hass_blink1_url }}/blink1/on?bright=250
|
|
#url: http://localhost:{{ blink1_server_port }}/blink1/fadeToRGB?rgb=ff0ff
|
|
method: GET
|
|
content_type: "application/json"
|
|
blink1_turn_off:
|
|
url: {{ hass_blink1_url }}/blink1/off
|
|
method: GET
|
|
content_type: "application/json"
|
|
blink1_turn_magenta:
|
|
url: {{ hass_blink1_url }}/blink1/fadeToRGB?rgb=ff00ff
|
|
method: GET
|
|
content_type: "application/json"
|
|
blink1_set_color:
|
|
url: "{{ hass_blink1_url }}/blink1/fadeToRGB?rgb={%raw%}{{ rgb }}{%endraw%}"
|
|
method: GET
|
|
|
|
light:
|
|
- platform: template
|
|
lights:
|
|
blink1:
|
|
friendly_name: blink1
|
|
value_template: >-
|
|
{% raw -%}
|
|
{{ state_attr('sensor.blink1', 'rgb') != "#000000" }}
|
|
{% endraw %}
|
|
|
|
# color_template: >-
|
|
# {% raw -%}
|
|
# {{ state_attr('sensor.blink1', 'rgb') }}
|
|
# {% endraw %}
|
|
|
|
turn_on:
|
|
- service: rest_command.blink1_turn_on
|
|
- delay:
|
|
milliseconds: 500
|
|
- service: homeassistant.update_entity
|
|
target:
|
|
entity_id: sensor.blink1
|
|
turn_off:
|
|
- service: rest_command.blink1_turn_off
|
|
- delay:
|
|
milliseconds: 500
|
|
- service: homeassistant.update_entity
|
|
target:
|
|
entity_id: sensor.blink1
|
|
set_color:
|
|
- service: rest_command.blink1_turn_off
|
|
- service: rest_command.blink1_set_color
|
|
data:
|
|
# https://github.com/velijv/home-assistant-color-helpers#rgb-to-hex
|
|
# https://community.home-assistant.io/t/advanced-light-template-help/175654
|
|
# https://community.home-assistant.io/t/using-hsv-hsb-to-set-colored-lights/15472
|
|
rgb: >-
|
|
{%raw%}
|
|
{%- set h2 = h / 360 -%}
|
|
{%- set s2 = s / 100 -%}
|
|
{%- set v = 100 -%}
|
|
{%- set i = (h2 * 6 ) | round(2,'floor') | int-%}
|
|
{%- set f = h2 * 6 - i -%}
|
|
{%- set p = v * (1 - s2) -%}
|
|
{%- set q = v * (1 - f * s2) -%}
|
|
{%- set t = v * (1 - (1 - f) * s2) -%}
|
|
{%- if i % 6 == 0 -%}
|
|
{%- set r = v | int -%}
|
|
{%- set g = t | int -%}
|
|
{%- set b = p | int -%}
|
|
{%- elif i % 6 == 1 -%}
|
|
{%- set r = q | int -%}
|
|
{%- set g = v | int -%}
|
|
{%- set b = p | int -%}
|
|
{%- elif i % 6 == 2 -%}
|
|
{%- set r = p | int -%}n
|
|
{%- set g = v | int -%}
|
|
{%- set b = t | int -%}
|
|
{%- elif i % 6 == 3 -%}
|
|
{%- set r = p | int -%}
|
|
{%- set g = q | int -%}
|
|
{%- set b = v | int -%}
|
|
{%- elif i % 6 == 4 -%}
|
|
{%- set r = t | int -%}
|
|
{%- set g = p | int -%}
|
|
{%- set b = v | int -%}
|
|
{%- elif i % 6 == 5 -%}
|
|
{%- set r = v | int -%}
|
|
{%- set g = p | int -%}
|
|
{%- set b = q | int -%}
|
|
{%- endif -%}
|
|
{{ '%02x%02x%02x' | format(r, g, b) }}
|
|
{%endraw%}
|