Skip to content

Instantly share code, notes, and snippets.

@Didgeridrew
Didgeridrew / glucose_template_for_mark.yaml
Last active November 8, 2022 10:28
HA: Sensor to pull number from companion app's last_notification sensor
template:
- sensor:
- name: Glucose Level
state: >
{% set x = states('sensor.XXXXX_last_notification') %}
{{ x.rsplit(' ')|select('is_number') | first }}
availability: >
{% set x = states('sensor.XXXXX_last_notification') %}
{{ x.rsplit(' ')|select('is_number') | first is defined }}
@Didgeridrew
Didgeridrew / ringer_to_vibrate.yaml
Created October 5, 2022 04:23
HA: Switch to Vibrate - Companion app
alias: Mobile - Drews Phone - Vibrate
description: ""
trigger:
- platform: state
to: Work
condition: []
action:
- alias: Switch to vibrate
service: notify.mobile_app_dj
data:
@Didgeridrew
Didgeridrew / holidays_template_sensors.yaml
Last active May 21, 2024 02:06
HA: Trigger-based Template sensors for a selection of US Holidays
template:
- trigger:
- platform: homeassistant
event: start
- platform: time
at: "00:00:01"
sensor:
- name: "New Years Day"
unique_id: "37319374975705055206"
state: >
@Didgeridrew
Didgeridrew / open_windows_doors_for_luar.yaml
Last active October 2, 2022 10:03
HA: Template to extract the Number and location of windows and doors that are open.
{% set doors = ['sensor.broadlink_s1c_porta_da_cozinha',
'sensor.broadlink_s1c_porta_da_entrada', 'sensor.broadlink_s1c_porta_do_escritorio',
'sensor.broadlink_s1c_garagem'] %}
{% set open_doors = expand(doors)
| selectattr('state','eq','open') |
map(attribute='entity_id') | map('area_name')
| unique | reject('eq',None) | sort | map('lower') | list %}
{% set d_qty = open_doors | count %}
{% if d_qty != 0 %}
{{'Há uma porta' if d_qty==1 else 'Há '~d_qty~' portas'}} aberta{{' ' if d_qty==1
@Didgeridrew
Didgeridrew / first_on_first_off.yaml
Last active September 18, 2022 23:29
HA: Automation to turn off the first entity that was turned on once a max is exceeded.
alias: FOFO
description: First-On, First Off
variables:
max_on: 3
ent_list:
- input_boolean.test_bool_1
- input_boolean.test_bool_2
- input_boolean.test_bool_3
- input_boolean.test_bool_4
trigger:
@Didgeridrew
Didgeridrew / schedule_helper_hvac.yaml
Created September 16, 2022 12:51
HA: HVAC Set point automation using schedule helper
alias: Heating Schedule
description: ""
mode: single
trigger:
- platform: state
entity_id:
- schedule.during_school_heat_10
- schedule.morning_night_heat_12
- schedule.after_school_heat_14
to: "on"
@Didgeridrew
Didgeridrew / hvac_setpoint_sched_sensor.yaml
Last active September 16, 2022 20:25
HA: Using a Time based template template sensor to determine the desired setpoint for HVAC
##################################
####### Basic Version ###########
##################################
#### template sensor ####
- name: "HVAC Current Set Point"
state: >
{% set a = today_at("6:00")%}
@Didgeridrew
Didgeridrew / todays_pollen.yaml
Created September 15, 2022 12:06
HA: Accuweather todays's pollen for Thomas
{% set pollens = states.sensor|selectattr('entity_id', 'search', 'pollen_0d')|list %}
{% set count = pollens|map(attribute='state')|map('int') | sum %}
{% if count > 0 %}
Pollen warning for today is...
{%- for state in pollens if
'pollen_0d' in state.entity_id and float(state.state) > 0 %}
{{state.name|replace("Norrkoping ", "")
|replace(" pollen 0d", "")}}: {{ state.state }} p/m³{% endfor %}
{% endif %}
@Didgeridrew
Didgeridrew / multiple_windows_multiple_climate.yaml
Last active January 17, 2024 21:13
HA: Turn off climate entity when window is opened, return to previous function when window is closed.
trigger:
- platform: state
to:
- 'on'
- 'off'
entity_id:
- binary_sensor.window_1
- binary_sensor.window_2
- binary_sensor.window_3_and_door_1
condition: []
@Didgeridrew
Didgeridrew / nicer_outside.yaml
Last active September 2, 2022 13:17
HA: Sensors that calculate and compare the Heat Discomfort Index for inside and outside.
template:
- sensor:
- name: "Outside Discomfort Index"
unit_of_measurement: ""
state_class: measurement
state: >-
{% set t = ((states('sensor.outside_temp')|float(0)) - 32) / 1.8 %}
{% set h = states('sensor.outside_humidity')|float(0) %}
{% set discomfort_index = (t - (0.55*(1 - (0.01*h) ) * (t - 14.5)))|round(2,0) %}
{{ discomfort_index}}