homeassistant-config/blueprints/automation/RDG88/nightclock_awtrix.yaml

316 lines
11 KiB
YAML

blueprint:
name: AWTRIX Night Clock
description: "## AWTRIX Night Clock\nThis blueprint provides a night clock mode
for AWTRIX Light. It allows you to personalize various aspects of the clockface
to suit your preferences.\n### Screenshot\n\n ![](https://raw.githubusercontent.com/RDG88/Homeassistant_Blueprints/main/thumbnails/SCR-nightclock.png)\n
\ \n### Features\n- This blueprint features a night clock mode, which displays
a customized color, and you have the possibility to disable app transitions, automatic
brightness, and the color of the night clock.\n### Prerequisites\nAWTRIX v0.72\n"
domain: automation
input:
awtrix:
name: AWTRIX Light
description: Select the Awtrix light
selector:
device:
filter:
- integration: mqtt
manufacturer: Blueforcer
model: AWTRIX Light
multiple: true
sleep_time:
name: Night mode time
description: At what time does the clock need to activate night mode?
selector:
time: {}
default: '23:00:00'
wake_up_time:
name: Day mode time
description: At what time does the clock need activate day mode?
selector:
time: {}
default: 08:00:00
sleep_settings_atrans:
name: Enable automatic app transition in night mode.
description: 'This setting allows you to enable or disable automatic transition
of apps in night mode.
'
selector:
boolean: {}
default: false
sleep_settings_bri:
name: Night mode brightness setting
description: 'What is the brightness for night mode?
'
selector:
number:
min: 0.0
max: 255.0
mode: slider
step: 1.0
default: '1'
sleep_settings_abri:
name: Enable automatic brightness when the night mode is active.
description: 'This setting allows you to enable or disable automatic brightening
in night mode.
'
selector:
boolean: {}
default: false
sleep_settings_color:
name: Color setting for the night mode clock
description: This setting allows you to change the color of the night mode clock.
selector:
color_rgb: {}
default:
- 255
- 0
- 0
sleep_weekday_bar:
name: Enable the weekday bar for the night mode clock
description: 'This setting allows you to enable or disable the weekday bar for
the night mode clock.
'
selector:
boolean: {}
default: false
sleep_time_format:
name: Select the time format for the night mode clock
description: 'Select the time format for the night mode clock
'
selector:
select:
options:
- label: '13:30:45'
value: '%H:%M:%S'
- label: '1:30:45'
value: '%l:%M:%S'
- label: '13:30'
value: '%H:%M'
- label: 13:30 with blinking colon
value: '%H %M'
- label: '1:30'
value: '%l:%M'
- label: 1:30 with blinking colon
value: '%l %M'
- label: 1:30 PM
value: '%l:%M %p'
- label: 1:30 PM with blinking colon
value: '%l %M %p'
sort: false
custom_value: false
multiple: false
default: '%H:%M'
wakeup_settings_atrans:
name: Enable automatic app transitions in day mode?
description: 'This setting allows you to enable or disable the automatic transition
of apps in day mode.
'
selector:
boolean: {}
default: true
wakeup_settings_bri:
name: Day mode brightness setting (1-255)
description: 'This setting allows you to adjust the brightness for day mode,
pick a value between 1 and 255.
'
selector:
number:
min: 1.0
max: 255.0
mode: slider
step: 1.0
default: '127'
wakeup_settings_abri:
name: Enable automatic brightness in day mode
description: 'This setting allows you to enable or disable automatic brightening
in day mode.
'
selector:
boolean: {}
default: false
wakeup_settings_color:
name: Color setting for the day mode clock
description: This setting allows you to change the color of the day mode clock.
selector:
color_rgb: {}
default:
- 255
- 255
- 255
wakeup_settings_calendar_color:
name: Color setting for the day mode calendar
description: This setting allows you to change the color of the day mode calendar.
selector:
color_rgb: {}
default:
- 255
- 0
- 0
wakeup_settings_calendar_text_color:
name: Color setting for the day mode calendar text
description: This settings allows you to change the color of the day mode text
in the calendar.
selector:
color_rgb: {}
default:
- 0
- 0
- 0
wakeup_weekday_bar:
name: Enable the weekday bar for the day mode clock
description: 'This setting allows you to enable or disable the weekday bar for
the day mode clock.
'
selector:
boolean: {}
default: false
wakeup_calendar_style:
name: Select the time/calendar style for the day mode clock
description: "Select the time/calendar style\n\n ![](https://raw.githubusercontent.com/RDG88/Homeassistant_Blueprints/main/thumbnails/tmode-0.svg)
`Style 0` \n\n ---\n\n ![](https://raw.githubusercontent.com/RDG88/Homeassistant_Blueprints/main/thumbnails/tmode-1.svg)
`Style 1` \n\n ---\n\n ![](https://raw.githubusercontent.com/RDG88/Homeassistant_Blueprints/main/thumbnails/tmode-2.svg)
`Style 2` \n\n ---\n\n ![](https://raw.githubusercontent.com/RDG88/Homeassistant_Blueprints/main/thumbnails/tmode-3.svg)
`Style 3` \n\n ---\n\n ![](https://raw.githubusercontent.com/RDG88/Homeassistant_Blueprints/main/thumbnails/tmode-4.svg)
`Style 4`\n"
selector:
select:
options:
- label: Style 0
value: '0'
- label: Style 1
value: '1'
- label: Style 2
value: '2'
- label: Style 3
value: '3'
- label: Style 4
value: '4'
sort: false
custom_value: false
multiple: false
default: '1'
wakeup_time_format:
name: Select the time format for the day mode clock
description: 'Select the time format for the day mode clock
'
selector:
select:
options:
- label: '13:30:45'
value: '%H:%M:%S'
- label: '1:30:45'
value: '%l:%M:%S'
- label: '13:30'
value: '%H:%M'
- label: 13:30 with blinking colon
value: '%H %M'
- label: '1:30'
value: '%l:%M'
- label: 1:30 with blinking colon
value: '%l %M'
- label: 1:30 PM
value: '%l:%M %p'
- label: 1:30 PM with blinking colon
value: '%l %M %p'
sort: false
custom_value: false
multiple: false
default: '%H:%M'
source_url: https://raw.githubusercontent.com/RDG88/Homeassistant_Blueprints/main/nightclock_awtrix.yaml
variables:
device_ids: !input awtrix
wake_up_time: !input wake_up_time
sleep_time: !input sleep_time
wakeup_weekday_bar: !input wakeup_weekday_bar
sleep_weekday_bar: !input sleep_weekday_bar
wakeup_settings_atrans: !input wakeup_settings_atrans
wakeup_settings_color: !input wakeup_settings_color
sleep_settings_atrans: !input sleep_settings_atrans
sleep_settings_color: !input sleep_settings_color
sleep_settings_abri: !input sleep_settings_abri
sleep_settings_bri: !input sleep_settings_bri
sleep_time_format: !input sleep_time_format
wakeup_settings_bri: !input wakeup_settings_bri
wakeup_settings_abri: !input wakeup_settings_abri
wakeup_calendar_style: !input wakeup_calendar_style
wakeup_settings_calendar_color: !input wakeup_settings_calendar_color
wakeup_settings_calendar_text_color: !input wakeup_settings_calendar_text_color
wakeup_time_format: !input wakeup_time_format
awtrix_devices: "{%- set ns = namespace(awtrix = []) -%} {%- for device_id in device_ids
-%}\n {%- set device_name = iif(device_attr(device_id, 'name_by_user') != none,
device_attr(device_id, 'name_by_user'), device_attr(device_id, 'name')) -%}\n
\ {%- set entity = expand(device_entities(device_id)) | select('search', 'device_topic')
| map(attribute='entity_id') | first -%}\n {%- set topic = states(entity) -%}\n
\ {% set ns.awtrix = ns.awtrix + [{\"device\": device_name, \"entity\": entity,
\"topic\": topic}] -%}\n{%- endfor -%} {{ ns.awtrix }}"
payload_sleep_switch: "{\n \"name\": \"time\"\n}"
payload_sleep_settings: "{ \"ATRANS\": {{ sleep_settings_atrans | lower }}, \n \"BRI\":
{{ sleep_settings_bri }}, \n \"ABRI\": {{ sleep_settings_abri | lower }},\n \"TMODE\":
0,\n \"TFORMAT\": \"{{ sleep_time_format }}\",\n \"WD\": {{ sleep_weekday_bar
| lower }},\n \"TIME_COL\": {{ sleep_settings_color }}\n}"
payload_wakeup_settings: "{ \"ATRANS\": {{ wakeup_settings_atrans | lower }}, \n
\ \"BRI\": {{ wakeup_settings_bri }}, \n \"ABRI\": {{ wakeup_settings_abri |
lower }},\n \"CCOL\": {{ wakeup_settings_calendar_color }},\n \"CTCOL\": {{
wakeup_settings_calendar_text_color }},\n \"TMODE\": {{ wakeup_calendar_style
}},\n \"TFORMAT\": \"{{ wakeup_time_format }}\",\n \"WD\": {{ wakeup_weekday_bar
| lower }},\n \"TIME_COL\": {{ wakeup_settings_color }}\n}"
trigger:
- platform: time
at: !input wake_up_time
id: wakeup_timer
- platform: time
at: !input sleep_time
id: sleep_timer
condition: []
action:
- repeat:
for_each: '{{ awtrix_devices }}'
sequence:
- choose:
- conditions:
- condition: template
value_template: '{{ states(repeat.item.entity) not in [''unavailable'',
''unknown''] }}
'
sequence:
- if:
- condition: trigger
id:
- wakeup_timer
then:
- service: mqtt.publish
data:
qos: 0
retain: false
topic: '{{ repeat.item.topic ~ ''/settings''}}'
payload: '{{ payload_wakeup_settings }}'
- if:
- condition: trigger
id:
- sleep_timer
then:
- service: mqtt.publish
data:
qos: 0
retain: false
topic: '{{ repeat.item.topic ~ ''/settings''}}'
payload: '{{ payload_sleep_settings }}'
- service: mqtt.publish
data:
qos: 0
retain: false
topic: '{{ repeat.item.topic ~ ''/switch''}}'
payload: '{{ payload_sleep_switch }}'