Skip to content

Instantly share code, notes, and snippets.

@Luc3as
Created March 11, 2020 10:07
Show Gist options
  • Save Luc3as/e904ad572a85dc6fd39e111e378fbb25 to your computer and use it in GitHub Desktop.
Save Luc3as/e904ad572a85dc6fd39e111e378fbb25 to your computer and use it in GitHub Desktop.
HomeAssistant_Alarm_clock
// Lovelace CARD
entities:
- entity: input_number.alarm_offset
- entity: input_boolean.alarm_weekday_enabled
- entity: sensor.alarm_weekday_time
- entity: input_number.alarm_weekday_hour
- entity: input_number.alarm_weekday_minutes
- entity: input_boolean.alarm_weekend_enabled
- entity: sensor.alarm_weekend_time
- entity: input_number.alarm_weekend_hour
- entity: input_number.alarm_weekend_minutes
show_header_toggle: false
title: Budík
type: entities
// Sensors.yaml
# ALARM
- platform: template
sensors:
alarm_weekday_time:
friendly_name: 'Alarm Time Weekdays'
value_template: >-
{{ "%0.02d:%0.02d" | format(states("input_number.alarm_weekday_hour") | int, states("input_number.alarm_weekday_minutes") | int) }}
alarm_weekend_time:
friendly_name: 'Alarm Time Weekend'
value_template: >-
{{ "%0.02d:%0.02d" | format(states("input_number.alarm_weekend_hour") | int, states("input_number.alarm_weekend_minutes") | int) }}
alarm_weekday_time_minus_offset:
friendly_name: 'Weekdays Offset Time'
value_template: >-
{{ '%0.02d:%0.02d' | format( ((((states('input_number.alarm_weekday_hour') | int)*60 + (states('input_number.alarm_weekday_minutes') | int) - (states('input_number.alarm_offset'))| int)/60)| int),(((((((((states('input_number.alarm_weekday_hour') | int)*60 + (states('input_number.alarm_weekday_minutes') | int) - (states('input_number.alarm_offset')) | int)/60)) - ((((states('input_number.alarm_weekday_hour') | int)*60 + (states('input_number.alarm_weekday_minutes') | int) - (states('input_number.alarm_offset')) | int)/60)| int))*100) | int)*60/100) | round) ) }}
alarm_weekend_time_minus_offset:
friendly_name: 'Weekend Offset Time'
value_template: >-
{{ '%0.02d:%0.02d' | format( ((((states('input_number.alarm_weekend_hour') | int)*60 + (states('input_number.alarm_weekend_minutes') | int) - (states('input_number.alarm_offset'))| int)/60)| int),(((((((((states('input_number.alarm_weekend_hour') | int)*60 + (states('input_number.alarm_weekend_minutes') | int) - (states('input_number.alarm_offset')) | int)/60)) - ((((states('input_number.alarm_weekend_hour') | int)*60 + (states('input_number.alarm_weekend_minutes') | int) - (states('input_number.alarm_offset')) | int)/60)| int))*100) | int)*60/100) | round) ) }}
// Input number
# ALARM
alarm_weekday_hour:
name: Hodina
icon: mdi:timer
min: 0
max: 23
step: 1
alarm_weekday_minutes:
name: Minúta
icon: mdi:timer
min: 0
max: 59
step: 1
alarm_weekend_hour:
name: Hodina
icon: mdi:timer
min: 0
max: 23
step: 1
alarm_weekend_minutes:
name: Minúta
icon: mdi:timer
min: 0
max: 59
step: 1
alarm_offset:
name: Prechod budíka
icon: mdi:blur-linear
initial: 15
min: 0
max: 60
step: 15
// INPUT boolean
input_boolean:
alarm_weekday_enabled:
name: Pracovné dni
icon: mdi:calendar
alarm_weekend_enabled:
name: Víkendy a sviatky
icon: mdi:calendar
// Automations
- id: alarm_clock_weekday
alias: Budík pracovné dni
trigger:
- minutes: /1
platform: time_pattern
seconds: '1'
condition:
- condition: state
entity_id: input_boolean.alarm_weekday_enabled
state: 'on'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: template
value_template: '{{ states.sensor.time.state == states.sensor.alarm_weekday_time_minus_offset.state
}}'
action:
- data: {}
service: script.1574675002806
- id: alarm_clock_weekend
alias: Budík víkendy a sviatky
trigger:
- minutes: /1
platform: time_pattern
seconds: '1'
condition:
- condition: state
entity_id: input_boolean.alarm_weekend_enabled
state: 'on'
- condition: template
value_template: '{{ states.sensor.time.state == states.sensor.alarm_weekend_time_minus_offset.state
}}'
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.workday_sensor
state: 'off'
- condition: time
weekday:
- sat
- sun
action:
- data: {}
service: script.1574675002806
// Scripts
'1574675002807':
alias: Potoc zaluzie o 1
sequence:
- above: '50'
condition: numeric_state
entity_id: cover.zaluzie_spalna
value_template: '{{ states.cover.zaluzie_spalna.attributes.current_tilt_position }}'
- data: {}
data_template:
entity_id: cover.zaluzie_spalna
tilt_position: '{{ states.cover.zaluzie_spalna.attributes.current_tilt_position
- 1 }}'
service: cover.set_cover_tilt_position
- delay: 00:00:10
- service: script.1574675002806
'1574675002806':
alias: Pomaly odostri v spálni
sequence:
- above: '50'
condition: numeric_state
entity_id: cover.zaluzie_spalna
value_template: '{{ states.cover.zaluzie_spalna.attributes.current_tilt_position }}'
- delay:
milliseconds: 500
- service: script.1574675002807
- delay: 00:00:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment