spelling mistakes mostly

This commit is contained in:
CeeWeasel
2024-07-03 12:58:50 -04:00
parent 098ebd69bc
commit 458c6121f2
22 changed files with 1173 additions and 1071 deletions
@@ -13,7 +13,7 @@ trigger:
- input_boolean.home_occupied
- binary_sensor.front_room_occupied
to: 'off'
for: '00:05:00'
for: '00:15:00'
# - platform: time_pattern
# minutes: "/5"
+17 -21
View File
@@ -179,7 +179,7 @@ sensors:
# delay_off:
# seconds: 30
# icon_template: mdi:washing-machine
# availability_template: "{{ states('sensor.pm_laundry_plug_w') not in ['unkown', 'unavailable'] }}"
# availability_template: "{{ states('sensor.pm_laundry_plug_w') not in ['unknown', 'unavailable'] }}"
# value_template: "{{ states('sensor.pm_laundry_plug_w')|float(default=0) >= states('input_number.washing_machine_on')|float(default=0) }}"
# attribute_templates:
# model_number: 'WF45R6100AW/US'
@@ -187,14 +187,13 @@ sensors:
# power: "{{ states('sensor.pm_laundry_plug_w') | float(default=0)}}"
# target: "{{ states('input_number.washing_machine_on') | float(default=0)}}"
# tumble_dryer:
# unique_id: binary-sensor-tumble-dryer
# friendly_name: Tumble Dryer
# delay_off:
# seconds: 30
# icon_template: mdi:tumble-dryer
# availability_template: "{{ states('sensor.pm_dryer_w') not in ['unkown', 'unavailable'] }}"
# availability_template: "{{ states('sensor.pm_dryer_w') not in ['unknown', 'unavailable'] }}"
# value_template: "{{ states('sensor.pm_dryer_w')|float(default=0) >= states('input_number.tumble_dryer_on')|float(default=0) }}"
# attribute_templates:
# model_number: 'DVE45R6100W/A3'
@@ -210,7 +209,7 @@ sensors:
# delay_off:
# seconds: 30
# icon_template: mdi:dishwasher
# availability_template: "{{ states('sensor.pm_dishwasher_w') not in ['unkown', 'unavailable'] }}"
# availability_template: "{{ states('sensor.pm_dishwasher_w') not in ['unknown', 'unavailable'] }}"
# value_template: "{{ states('sensor.pm_dishwasher_w')|float(default=0) >= states('input_number.dishwasher_on')|float(default=0) }}"
# attribute_templates:
# model_number: 'MDB6769PAS1'
@@ -226,20 +225,19 @@ sensors:
value_template: "{{ states('sensor.pm_stove_w') | float(default=0) > states('input_number.stove_on') | float(default=0) }}"
icon_template: mdi:stove
attribute_templates:
model_number: 'WFE505W0JS3'
serial_number: 'RB4659869'
model_number: "WFE505W0JS3"
serial_number: "RB4659869"
power: "{{ states('sensor.pm_stove_w') | float(default=0)}}"
oven_temperature: "{{ iif(is_state('sensor.oven_temperature', 'unavailable'), 'unavailable', states('sensor.oven_temperature') | float(default=0)) }}"
microwave:
unique_id: binary-sensor-microwave
friendly_name: Microwave
value_template: "{{ states('sensor.pm_microwave_plug_w') | float(default=0) > states('input_number.microwave_on') | float(default=0) }}"
icon_template: mdi:microwave
attribute_templates:
model_number: 'testmodel'
serial_number: 'testserial'
model_number: "testmodel"
serial_number: "testserial"
power: "{{ states('sensor.pm_microwave_plug_w') | float(default=0)}}"
furnace:
@@ -248,8 +246,8 @@ sensors:
value_template: "{{ states('sensor.pm_furnace_w') | float(default=0) > states('input_number.furnace_on') | float(default=0) }}"
icon_template: mdi:radiator
attribute_templates:
model_number: 'testmodel'
serial_number: 'testserial'
model_number: "testmodel"
serial_number: "testserial"
power: "{{ states('sensor.pm_furnace_w') | float(default=0)}}"
heat_pump:
@@ -258,8 +256,8 @@ sensors:
value_template: "{{ states('sensor.pm_heat_pump_w') | float(default=0) > states('input_number.heat_pump_on') | float(default=0) }}"
icon_template: mdi:air-filter
attribute_templates:
model_number: 'testmodel'
serial_number: 'testserial'
model_number: "testmodel"
serial_number: "testserial"
power: "{{ states('sensor.pm_heat_pump_w') | float(default=0)}}"
sump_pump:
@@ -268,8 +266,8 @@ sensors:
value_template: "{{ states('sensor.pm_sump_pump_plug_w') | float(default=0) > states('input_number.sump_pump_on') | float(default=0) }}"
icon_template: mdi:pump
attribute_templates:
model_number: 'testmodel'
serial_number: 'testserial'
model_number: "testmodel"
serial_number: "testserial"
power: "{{ states('sensor.pm_sump_pump_plug_w') | float(default=0)}}"
something_open_hvac_on:
@@ -371,7 +369,6 @@ sensors:
{{ 'false' }}
{% endif %}
# Moved to temperature_management.yaml
# Is it more than 5 degrees warmer outside?
# warmer_outside:
@@ -396,7 +393,6 @@ sensors:
# {{ 'false' }}
# {% endif %}
is_dark:
unique_id: templatebinarysensor.is_dark
friendly_name: Is Dark
@@ -410,11 +406,11 @@ sensors:
is_daylight:
unique_id: templatebinarysensor.is_daylight
friendly_name: Is Daylight
value_template: "{{ states('sensor.front_porch_light_level') | int(0) >= states('input_number.is_daylight') | int(0) }}"
value_template: "{{ states('sensor.front_porch_light_level') | int(0) >= states('input_number.is_daylight') | int(0) }}"
garage_open_nobody_home:
unique_id: templatebinarysensor.garage_open_nobody_home
friendly_name: 'Garage Open Nobody Home'
friendly_name: "Garage Open Nobody Home"
value_template: >-
{% if is_state('cover.garage_door', 'open') %}
{% if is_state('input_boolean.home_occupied', 'off') %}
@@ -704,7 +700,7 @@ sensors:
take_trash_out:
unique_id: templatesensor.take_trash_out
friendly_name: 'Take Trash Out'
friendly_name: "Take Trash Out"
icon_template: mdi:trash-can
value_template: "{{ is_state('calendar.trash_schedule','on') or state_attr('calendar.trash_schedule','offset_reached') and is_state('input_boolean.trash_out','off') }}"
@@ -753,4 +749,4 @@ sensors:
value_template: "{{is_state('binary_sensor.kitchen_fridge_door_contact','on') }}"
icon_template: mdi:fridge-variant
delay_on:
minutes: 3
minutes: 3
+94 -94
View File
@@ -1,42 +1,42 @@
template:
- binary_sensor:
- name: Dishwasher
unique_id: templatebinarysensor.dishwasher
icon: mdi:dishwasher
delay_on: "{{states('input_number.dishwasher_delay_on') | float(default=0) }}"
delay_off: "{{states('input_number.dishwasher_delay_off') | float(default=0) }}"
availability: "{{ states('sensor.pm_dishwasher_w') not in ['unkown', 'unavailable'] }}"
attributes:
model_number: 'MDB6769PAS1'
serial_number: 'F24407234'
power: "{{ states('sensor.pm_dishwasher_w') | float(default=0)}}"
target: "{{ states('input_number.dishwasher_on') | float(default=0)}}"
state: "{{ states('sensor.pm_dishwasher_w')|float(default=0) >= states('input_number.dishwasher_on')|float(default=0) }}"
- name: Dishwasher
unique_id: templatebinarysensor.dishwasher
icon: mdi:dishwasher
delay_on: "{{states('input_number.dishwasher_delay_on') | float(default=0) }}"
delay_off: "{{states('input_number.dishwasher_delay_off') | float(default=0) }}"
availability: "{{ states('sensor.pm_dishwasher_w') not in ['unknown', 'unavailable'] }}"
attributes:
model_number: "MDB6769PAS1"
serial_number: "F24407234"
power: "{{ states('sensor.pm_dishwasher_w') | float(default=0)}}"
target: "{{ states('input_number.dishwasher_on') | float(default=0)}}"
state: "{{ states('sensor.pm_dishwasher_w')|float(default=0) >= states('input_number.dishwasher_on')|float(default=0) }}"
- sensor:
- name: Dishwasher
unique_id: templatesensor_dishwasher
state: >
{% if is_state('binary_sensor.dishwasher','on')%}
running
{% elif is_state('binary_sensor.dishwasher','off') and is_state('input_boolean.empty_dishwasher','on') %}
pending
{% else %}
idle
{% endif %}
icon: >
{% if is_state('sensor.dishwasher','idle') %}
mdi:dishwasher-off
{% elif is_state('sensor.dishwasher','pending') %}
mdi:dishwasher-alert
{% else %}
mdi:dishwasher
{% endif %}
attributes:
model_number: 'MDB6769PAS1'
serial_number: 'F24407234'
power: "{{ states('sensor.pm_dishwasher_w') | float(default=0)}}"
target: "{{ states('input_number.dishwasher_on') | float(default=0)}}"
- name: Dishwasher
unique_id: templatesensor_dishwasher
state: >
{% if is_state('binary_sensor.dishwasher','on')%}
running
{% elif is_state('binary_sensor.dishwasher','off') and is_state('input_boolean.empty_dishwasher','on') %}
pending
{% else %}
idle
{% endif %}
icon: >
{% if is_state('sensor.dishwasher','idle') %}
mdi:dishwasher-off
{% elif is_state('sensor.dishwasher','pending') %}
mdi:dishwasher-alert
{% else %}
mdi:dishwasher
{% endif %}
attributes:
model_number: "MDB6769PAS1"
serial_number: "F24407234"
power: "{{ states('sensor.pm_dishwasher_w') | float(default=0)}}"
target: "{{ states('input_number.dishwasher_on') | float(default=0)}}"
input_boolean:
empty_dishwasher:
@@ -46,7 +46,7 @@ input_boolean:
input_number:
dishwasher_on:
# was 4
name: 'Dishwasher On'
name: "Dishwasher On"
icon: mdi:dishwasher
min: 0
max: 1000
@@ -55,7 +55,7 @@ input_number:
unit_of_measurement: W
dishwasher_off:
name: 'Dishwasher Off'
name: "Dishwasher Off"
icon: mdi:dishwasher-off
min: 0
max: 1000
@@ -64,7 +64,7 @@ input_number:
unit_of_measurement: W
dishwasher_delay_on:
name: 'Dishwasher Delay On'
name: "Dishwasher Delay On"
icon: mdi:clock
min: 0
max: 900
@@ -73,7 +73,7 @@ input_number:
dishwasher_delay_off:
# was 600
name: 'Dishwasher Delay Off'
name: "Dishwasher Delay Off"
icon: mdi:clock-alert
min: 0
max: 900
@@ -87,84 +87,84 @@ automation:
- id: dishwasher_off
platform: state
entity_id: binary_sensor.dishwasher
from: 'on'
to: 'off'
from: "on"
to: "off"
- id: dishwasher_on
platform: state
entity_id: binary_sensor.dishwasher
from: 'off'
to: 'on'
from: "off"
to: "on"
- id: door_open
platform: state
entity_id: binary_sensor.dishwasher_door_contact
from: 'off'
to: 'on'
from: "off"
to: "on"
for:
seconds: 5
condition: []
action:
- choose:
- alias: "Dishwasher is running. No need to empty it yet"
conditions:
- condition: trigger
id: dishwasher_on
- alias: "Dishwasher is running. No need to empty it yet"
conditions:
- condition: trigger
id: dishwasher_on
- condition: state
entity_id: input_boolean.empty_dishwasher
state: 'on'
sequence:
- service: logbook.log
data_template:
name: Empty Dishwasher - Load Started
entity_id: automation.empty_dishwasher
message: Dishwasher just turned on. Turning off input_boolean in case it got left on
- service: homeassistant.turn_off
target:
- condition: state
entity_id: input_boolean.empty_dishwasher
state: "on"
- alias: "Dishwasher finished while door was shut"
conditions:
- condition: trigger
id: dishwasher_off
sequence:
- service: logbook.log
data_template:
name: Empty Dishwasher - Load Started
entity_id: automation.empty_dishwasher
message: Dishwasher just turned on. Turning off input_boolean in case it got left on
- condition: state
entity_id: binary_sensor.dishwasher_door_contact
state: 'off'
- service: homeassistant.turn_off
target:
entity_id: input_boolean.empty_dishwasher
sequence:
- service: logbook.log
data_template:
name: Empty Dishwasher - Load finished
entity_id: automation.empty_dishwasher
message: Dishwasher just turned off while the door was shut. Assuming dishes need to be put away
- alias: "Dishwasher finished while door was shut"
conditions:
- condition: trigger
id: dishwasher_off
- service: homeassistant.turn_on
target:
entity_id: input_boolean.empty_dishwasher
- condition: state
entity_id: binary_sensor.dishwasher_door_contact
state: "off"
- alias: "Door was opened for 30 seconds while dishwasher was off"
conditions:
- condition: trigger
id: door_open
sequence:
- service: logbook.log
data_template:
name: Empty Dishwasher - Load finished
entity_id: automation.empty_dishwasher
message: Dishwasher just turned off while the door was shut. Assuming dishes need to be put away
- condition: state
entity_id: binary_sensor.dishwasher
state: 'off'
- service: homeassistant.turn_on
target:
entity_id: input_boolean.empty_dishwasher
sequence:
- service: logbook.log
data_template:
name: Empty Dishwasher - Dishes put away
entity_id: automation.empty_dishwasher
message: Dishwasher door was opened while the dishwasher was off. Assuming dishes don't need to be put away.
- alias: "Door was opened for 30 seconds while dishwasher was off"
conditions:
- condition: trigger
id: door_open
- service: homeassistant.turn_off
target:
entity_id: input_boolean.empty_dishwasher
- condition: state
entity_id: binary_sensor.dishwasher
state: "off"
sequence:
- service: logbook.log
data_template:
name: Empty Dishwasher - Dishes put away
entity_id: automation.empty_dishwasher
message: Dishwasher door was opened while the dishwasher was off. Assuming dishes don't need to be put away.
- service: homeassistant.turn_off
target:
entity_id: input_boolean.empty_dishwasher
mode: single
+131 -132
View File
@@ -1,83 +1,83 @@
template:
- trigger:
- platform: state
entity_id:
- sensor.pm_dryer_w
- input_number.tumble_dryer_delay_on
- input_number.tumble_dryer_delay_off
not_to:
- "unknown"
- "unavailable"
- platform: state
entity_id:
- sensor.pm_dryer_w
- input_number.tumble_dryer_delay_on
- input_number.tumble_dryer_delay_off
not_to:
- "unknown"
- "unavailable"
- platform: event
event_type: event_template_reloaded
id: "reload"
- platform: event
event_type: event_template_reloaded
id: "reload"
- platform: homeassistant
event: start
- platform: homeassistant
event: start
binary_sensor:
- name: Tumble Dryer
unique_id: binary-sensor-tumble-dryer
delay_on: "{{states('input_number.tumble_dryer_delay_on') | float(default=0)}}"
delay_off: "{{states('input_number.tumble_dryer_delay_off') | float(default=0)}}"
icon: mdi:tumble-dryer
availability: "{{ states('sensor.pm_dryer_w') not in ['unkown', 'unavailable'] }}"
attributes:
model_number: 'DVE45R6100W/A3'
serial_number: '0AY95BBM605793X'
power: "{{ states('sensor.pm_dryer_w') | float(default=0)}}"
target: "{{ states('input_number.tumble_dryer_on') | float(default=0)}}"
state: "{{ states('sensor.pm_dryer_w')|float(default=0) >= states('input_number.tumble_dryer_on')|float(default=0) }}"
- name: Tumble Dryer
unique_id: binary-sensor-tumble-dryer
delay_on: "{{states('input_number.tumble_dryer_delay_on') | float(default=0)}}"
delay_off: "{{states('input_number.tumble_dryer_delay_off') | float(default=0)}}"
icon: mdi:tumble-dryer
availability: "{{ states('sensor.pm_dryer_w') not in ['unknown', 'unavailable'] }}"
attributes:
model_number: "DVE45R6100W/A3"
serial_number: "0AY95BBM605793X"
power: "{{ states('sensor.pm_dryer_w') | float(default=0)}}"
target: "{{ states('input_number.tumble_dryer_on') | float(default=0)}}"
state: "{{ states('sensor.pm_dryer_w')|float(default=0) >= states('input_number.tumble_dryer_on')|float(default=0) }}"
- trigger:
- platform: state
entity_id: sensor.pm_dryer_w
not_to:
- "unknown"
- "unavailable"
- platform: state
entity_id: input_number.tumble_dryer_delay_on
not_to:
- "unknown"
- "unavailable"
- platform: state
entity_id: input_number.tumble_dryer_delay_off
not_to:
- "unknown"
- "unavailable"
- platform: state
entity_id: sensor.pm_dryer_w
not_to:
- "unknown"
- "unavailable"
- platform: state
entity_id: input_number.tumble_dryer_delay_on
not_to:
- "unknown"
- "unavailable"
- platform: state
entity_id: input_number.tumble_dryer_delay_off
not_to:
- "unknown"
- "unavailable"
- platform: event
event_type: event_template_reloaded
id: "reload"
- platform: event
event_type: event_template_reloaded
id: "reload"
- platform: homeassistant
event: start
- platform: homeassistant
event: start
sensor:
- name: Tumble Dryer
unique_id: templatesensor_tumble_dryer
state: >
{% if is_state('binary_sensor.tumble_dryer','on') %}
running
{% elif is_state('binary_sensor.tumble_dryer','off') and is_state('input_boolean.fold_clothes','on') %}
pending
{% else %}
idle
{% endif %}
icon: >
{% if is_state('sensor.tumble_dryer','idle') %}
mdi:tumble-dryer-off
{% elif is_state('sensor.tumble_dryer','pending') %}
mdi:tumble-dryer-alert
{% else %}
mdi:tumble-dryer
{% endif %}
attributes:
model_number: 'DVE45R6100W/A3'
serial_number: '0AY95BBM605793X'
power: "{{ states('sensor.pm_dryer_w') | float(default=0)}}"
target: "{{ states('input_number.tumble_dryer_on') | float(default=0)}}"
- name: Tumble Dryer
unique_id: templatesensor_tumble_dryer
state: >
{% if is_state('binary_sensor.tumble_dryer','on') %}
running
{% elif is_state('binary_sensor.tumble_dryer','off') and is_state('input_boolean.fold_clothes','on') %}
pending
{% else %}
idle
{% endif %}
icon: >
{% if is_state('sensor.tumble_dryer','idle') %}
mdi:tumble-dryer-off
{% elif is_state('sensor.tumble_dryer','pending') %}
mdi:tumble-dryer-alert
{% else %}
mdi:tumble-dryer
{% endif %}
attributes:
model_number: "DVE45R6100W/A3"
serial_number: "0AY95BBM605793X"
power: "{{ states('sensor.pm_dryer_w') | float(default=0)}}"
target: "{{ states('input_number.tumble_dryer_on') | float(default=0)}}"
input_boolean:
fold_clothes:
@@ -87,7 +87,7 @@ input_boolean:
input_number:
tumble_dryer_on:
# was 10
name: 'Tumble Dryer On'
name: "Tumble Dryer On"
icon: mdi:tumble-dryer
min: 0
max: 1000
@@ -96,7 +96,7 @@ input_number:
unit_of_measurement: W
tumble_dryer_off:
name: 'Tumble Dryer Off'
name: "Tumble Dryer Off"
icon: mdi:tumble-dryer-off
min: 0
max: 1000
@@ -105,7 +105,7 @@ input_number:
unit_of_measurement: W
tumble_dryer_delay_on:
name: 'Tumble Dryer Delay On'
name: "Tumble Dryer Delay On"
icon: mdi:clock
min: 0
max: 900
@@ -114,7 +114,7 @@ input_number:
tumble_dryer_delay_off:
# was 10
name: 'Tumble Dryer Delay Off'
name: "Tumble Dryer Delay Off"
icon: mdi:clock-alert
min: 0
max: 900
@@ -128,88 +128,87 @@ automation:
- id: tumble_dryer_off
platform: state
entity_id: binary_sensor.tumble_dryer
from: 'on'
to: 'off'
from: "on"
to: "off"
- id: tumble_dryer_on
platform: state
entity_id: binary_sensor.tumble_dryer
from: 'off'
to: 'on'
from: "off"
to: "on"
- id: door_open
platform: state
entity_id: binary_sensor.tumble_dryer_door_contact
from: 'off'
to: 'on'
from: "off"
to: "on"
for:
seconds: 5
condition: []
action:
- choose:
- alias: "Dryer is running. No need to fold clothes yet"
conditions:
- condition: trigger
id: tumble_dryer_on
- alias: "Dryer is running. No need to fold clothes yet"
conditions:
- condition: trigger
id: tumble_dryer_on
- condition: state
entity_id: input_boolean.fold_clothes
state: 'on'
sequence:
- service: logbook.log
data_template:
name: Fold Clothes - Load started
entity_id: automation.fold_clothes
message: Dryer turned on. No need to fold clothes yet. Turning off input_boolean in case it got left on
- service: homeassistant.turn_off
target:
- condition: state
entity_id: input_boolean.fold_clothes
state: "on"
sequence:
- service: logbook.log
data_template:
name: Fold Clothes - Load started
entity_id: automation.fold_clothes
message: Dryer turned on. No need to fold clothes yet. Turning off input_boolean in case it got left on
- alias: "Dryer finished while door was shut"
conditions:
- condition: trigger
id: tumble_dryer_off
- service: homeassistant.turn_off
target:
entity_id: input_boolean.fold_clothes
- condition: state
entity_id: binary_sensor.tumble_dryer_door_contact
state: 'off'
- alias: "Dryer finished while door was shut"
conditions:
- condition: trigger
id: tumble_dryer_off
sequence:
- service: logbook.log
data_template:
name: Fold Clothes - Load finished
entity_id: automation.fold_clothes
message: Dryer just turned off. Assuming clothes need to be folded
- condition: state
entity_id: binary_sensor.tumble_dryer_door_contact
state: "off"
- service: homeassistant.turn_on
target:
sequence:
- service: logbook.log
data_template:
name: Fold Clothes - Load finished
entity_id: automation.fold_clothes
message: Dryer just turned off. Assuming clothes need to be folded
- service: homeassistant.turn_on
target:
entity_id: input_boolean.fold_clothes
- alias: "Door was opened while dryer was off"
conditions:
- condition: trigger
id: door_open
- condition: state
entity_id: binary_sensor.tumble_dryer
state: "off"
- condition: state
entity_id: input_boolean.fold_clothes
state: "on"
- alias: "Door was opened while dryer was off"
conditions:
- condition: trigger
id: door_open
sequence:
- service: logbook.log
data_template:
name: Fold Clothes - Clothes folded
entity_id: automation.fold_clothes
message: Door was opened while dryer was off. Assuming clothes are now folded
- condition: state
entity_id: binary_sensor.tumble_dryer
state: 'off'
- condition: state
entity_id: input_boolean.fold_clothes
state: 'on'
sequence:
- service: logbook.log
data_template:
name: Fold Clothes - Clothes folded
entity_id: automation.fold_clothes
message: Door was opened while dryer was off. Assuming clothes are now folded
- service: homeassistant.turn_off
target:
entity_id: input_boolean.fold_clothes
- service: homeassistant.turn_off
target:
entity_id: input_boolean.fold_clothes
mode: single
@@ -1,42 +1,42 @@
template:
- binary_sensor:
- name: Washing Machine
unique_id: templatebinarysensor.washing_machine
delay_on: "{{states('input_number.washing_machine_delay_on') | float(default=0)}}"
delay_off: "{{states('input_number.washing_machine_delay_off') | float(default=0)}}"
icon: mdi:washing-machine
availability: "{{ states('sensor.pm_laundry_plug_w') not in ['unkown', 'unavailable'] }}"
attributes:
model_number: 'WF45R6100AW/US'
serial_number: '01FY57AM802740X'
power: "{{ states('sensor.pm_laundry_plug_w') | float(default=0)}}"
target: "{{ states('input_number.washing_machine_on') | float(default=0)}}"
state: "{{ states('sensor.pm_laundry_plug_w')|float(default=0) >= states('input_number.washing_machine_on')|float(default=0) }}"
- name: Washing Machine
unique_id: templatebinarysensor.washing_machine
delay_on: "{{states('input_number.washing_machine_delay_on') | float(default=0)}}"
delay_off: "{{states('input_number.washing_machine_delay_off') | float(default=0)}}"
icon: mdi:washing-machine
availability: "{{ states('sensor.pm_laundry_plug_w') not in ['unknown', 'unavailable'] }}"
attributes:
model_number: "WF45R6100AW/US"
serial_number: "01FY57AM802740X"
power: "{{ states('sensor.pm_laundry_plug_w') | float(default=0)}}"
target: "{{ states('input_number.washing_machine_on') | float(default=0)}}"
state: "{{ states('sensor.pm_laundry_plug_w')|float(default=0) >= states('input_number.washing_machine_on')|float(default=0) }}"
- sensor:
- name: Washing Machine
unique_id: templatesensor_washing_machine
state: >
{% if is_state('binary_sensor.washing_machine','on') %}
running
{% elif is_state('binary_sensor.washing_machine','off') and is_state('input_boolean.swap_laundry','on') %}
pending
{% else %}
idle
{% endif %}
icon: >
{% if is_state('sensor.washing_machine','idle') %}
mdi:washing-machine-off
{% elif is_state('sensor.washing_machine','pending') %}
mdi:washing-machine-alert
{% else %}
mdi:washing-machine
{% endif %}
attributes:
model_number: 'WF45R6100AW/US'
serial_number: '01FY57AM802740X'
power: "{{ states('sensor.pm_laundry_plug_w') | float(default=0)}}"
target: "{{ states('input_number.washing_machine_on') | float(default=0)}}"
- name: Washing Machine
unique_id: templatesensor_washing_machine
state: >
{% if is_state('binary_sensor.washing_machine','on') %}
running
{% elif is_state('binary_sensor.washing_machine','off') and is_state('input_boolean.swap_laundry','on') %}
pending
{% else %}
idle
{% endif %}
icon: >
{% if is_state('sensor.washing_machine','idle') %}
mdi:washing-machine-off
{% elif is_state('sensor.washing_machine','pending') %}
mdi:washing-machine-alert
{% else %}
mdi:washing-machine
{% endif %}
attributes:
model_number: "WF45R6100AW/US"
serial_number: "01FY57AM802740X"
power: "{{ states('sensor.pm_laundry_plug_w') | float(default=0)}}"
target: "{{ states('input_number.washing_machine_on') | float(default=0)}}"
input_boolean:
swap_laundry:
@@ -46,7 +46,7 @@ input_boolean:
input_number:
washing_machine_on:
# was 5
name: 'Washing Machine On'
name: "Washing Machine On"
icon: mdi:washing-machine
min: 0
max: 20
@@ -55,7 +55,7 @@ input_number:
unit_of_measurement: W
washing_machine_off:
name: 'Washing Machine Off'
name: "Washing Machine Off"
icon: mdi:washing-machine-off
min: 0
max: 20
@@ -64,7 +64,7 @@ input_number:
unit_of_measurement: W
washing_machine_delay_on:
name: 'Washing Machine Delay On'
name: "Washing Machine Delay On"
icon: mdi:clock
min: 0
max: 900
@@ -73,7 +73,7 @@ input_number:
washing_machine_delay_off:
# was 10
name: 'Washing Machine Delay Off'
name: "Washing Machine Delay Off"
icon: mdi:clock-alert
min: 0
max: 900
@@ -87,86 +87,86 @@ automation:
- id: washing_machine_off
platform: state
entity_id: binary_sensor.washing_machine
from: 'on'
to: 'off'
from: "on"
to: "off"
- id: washing_machine_on
platform: state
entity_id: binary_sensor.washing_machine
from: 'off'
to: 'on'
from: "off"
to: "on"
- id: door_open
platform: state
entity_id: binary_sensor.washing_machine_door_contact
from: 'off'
to: 'on'
from: "off"
to: "on"
for:
seconds: 5
condition: []
action:
- choose:
- alias: "Washing machine is running. No need to swap laundry yet"
conditions:
- condition: trigger
id: washing_machine_on
- alias: "Washing machine is running. No need to swap laundry yet"
conditions:
- condition: trigger
id: washing_machine_on
- condition: state
entity_id: input_boolean.swap_laundry
state: 'on'
sequence:
- service: logbook.log
data_template:
name: Swap Laundry - Load started
entity_id: automation.swap_laundry
message: Washing machine is running. No need to swap laundry yet. Turning off input_boolean.swap_laundry, in case it was left on
- service: homeassistant.turn_off
target:
- condition: state
entity_id: input_boolean.swap_laundry
state: "on"
sequence:
- service: logbook.log
data_template:
name: Swap Laundry - Load started
entity_id: automation.swap_laundry
message: Washing machine is running. No need to swap laundry yet. Turning off input_boolean.swap_laundry, in case it was left on
- alias: "Washing machine finished while door was shut"
conditions:
- condition: trigger
id: washing_machine_off
- service: homeassistant.turn_off
target:
entity_id: input_boolean.swap_laundry
- condition: state
entity_id: binary_sensor.washing_machine_door_contact
state: 'off'
- alias: "Washing machine finished while door was shut"
conditions:
- condition: trigger
id: washing_machine_off
sequence:
- service: logbook.log
data_template:
name: Swap Laundry - Load needs to be swapped
entity_id: automation.swap_laundry
message: Washing machine turned off while the door was shut. Assuming that a load needs to be swapped
- service: homeassistant.turn_on
target:
- condition: state
entity_id: binary_sensor.washing_machine_door_contact
state: "off"
sequence:
- service: logbook.log
data_template:
name: Swap Laundry - Load needs to be swapped
entity_id: automation.swap_laundry
message: Washing machine turned off while the door was shut. Assuming that a load needs to be swapped
- service: homeassistant.turn_on
target:
entity_id: input_boolean.swap_laundry
- alias: "Door was opened while washing machine was off"
conditions:
- condition: trigger
id: door_open
- condition: state
entity_id: binary_sensor.washing_machine
state: "off"
- condition: state
entity_id: input_boolean.swap_laundry
state: "on"
- alias: "Door was opened while washing machine was off"
conditions:
- condition: trigger
id: door_open
sequence:
- service: logbook.log
data_template:
name: Swap Laundry - Load swapped
entity_id: automation.swap_laundry
message: Door was opened while washing machine was off. Assuming a load just got swapped
- condition: state
entity_id: binary_sensor.washing_machine
state: 'off'
- condition: state
entity_id: input_boolean.swap_laundry
state: 'on'
sequence:
- service: logbook.log
data_template:
name: Swap Laundry - Load swapped
entity_id: automation.swap_laundry
message: Door was opened while washing machine was off. Assuming a load just got swapped
- service: homeassistant.turn_off
target:
entity_id: input_boolean.swap_laundry
- service: homeassistant.turn_off
target:
entity_id: input_boolean.swap_laundry
mode: single
@@ -247,7 +247,7 @@ template:
unique_id: "custom_sensor.sprinkler_total_rain_fallen_plus_expected"
icon: mdi:weather-pouring
unit_of_measurement: mm
availability: "{{ states('sensor.sprinkler_recent_rain_precipitation') not in ['unkown', 'unavailable'] }}"
availability: "{{ states('sensor.sprinkler_recent_rain_precipitation') not in ['unknown', 'unavailable'] }}"
state: >
{{ (states('sensor.sprinkler_recent_rain_precipitation') | float + states('sensor.sprinkler_total_expected_precipitation') | float(default=100.0) ) | round(2) }}
@@ -293,12 +293,12 @@ template:
icon: mdi:clock
unit_of_measurement: seconds
availability: >
{{ states('sensor.opensprinkler_water_level') not in ['unkown', 'unavailable'] and
states('input_number.front_yard_station_minutes') not in ['unkown', 'unavailable'] and
states('input_number.east_side_station_minutes') not in ['unkown', 'unavailable'] and
states('input_number.back_yard_station_minutes') not in ['unkown', 'unavailable'] and
states('input_number.west_side_station_minutes') not in ['unkown', 'unavailable'] and
states('input_number.sprinkler_repeat_program_amount') not in ['unkown', 'unavailable'] }}
{{ states('sensor.opensprinkler_water_level') not in ['unknown', 'unavailable'] and
states('input_number.front_yard_station_minutes') not in ['unknown', 'unavailable'] and
states('input_number.east_side_station_minutes') not in ['unknown', 'unavailable'] and
states('input_number.back_yard_station_minutes') not in ['unknown', 'unavailable'] and
states('input_number.west_side_station_minutes') not in ['unknown', 'unavailable'] and
states('input_number.sprinkler_repeat_program_amount') not in ['unknown', 'unavailable'] }}
state: >
{{ states("sensor.opensprinkler_water_level")| float(default=0) | multiply(0.01) | multiply(states("input_number.front_yard_station_minutes") | multiply(60)) | float(default=0) +
states("sensor.opensprinkler_water_level")| float(default=0) | multiply(0.01) | multiply(states("input_number.east_side_station_minutes") | multiply(60)) | float(default=0) +
@@ -352,22 +352,22 @@ template:
device_class: moisture
delay_off:
minutes: 15
# availability: "{{ states('sensor.rain_quarter_hourly_precipitation') not in ['unkown', 'unavailable'] }}"
# availability: "{{ states('sensor.rain_quarter_hourly_precipitation') not in ['unknown', 'unavailable'] }}"
# state: >
# {{ states('sensor.rain_quarter_hourly_precipitation') | float(default=0) > 0.0 }}
availability: "{{ states('binary_sensor.is_raining') not in ['unkown', 'unavailable'] }}"
availability: "{{ states('binary_sensor.is_raining') not in ['unknown', 'unavailable'] }}"
state: >
{{ states('binary_sensor.is_raining') }}
- trigger:
# - platform: homeassistant
# event: start
# - platform: homeassistant
# event: start
# - platform: time
# at: '01:00:00'
# - platform: time
# at: '01:00:00'
# - platform: state
# entity_id: input_boolean.sprinkler_is_winterized
# - platform: state
# entity_id: input_boolean.sprinkler_is_winterized
binary_sensor:
- name: "Sprinkler: In Season"
@@ -378,37 +378,28 @@ template:
# - trigger:
# - platform: homeassistant
# event: start
# - platform: time
# at: '01:00:00'
# - platform: state
# entity_id: input_boolean.sprinkler_is_winterized
# - platform: event
# event_type: event_template_reloaded
# id: "reload"
# binary_sensor:
# - name: "Sprinkler: Should Winterize"
# unique_id: "custom_binary_sensor.sprinkler_should_winterize"
# device_class: problem
# state: "{{ iif(is_state('binary_sensor.sprinkler_in_season', 'off'), iif(is_state('input_boolean.sprinkler_is_winterized', 'off'), 'on', 'off'), 'off') }}"
# - trigger:
# - platform: homeassistant
# event: start
# - platform: time
# at: '01:00:00'
# - platform: state
# entity_id: input_boolean.sprinkler_is_winterized
# - platform: event
# event_type: event_template_reloaded
# id: "reload"
# binary_sensor:
# - name: "Sprinkler: Should Dewinterize"
# unique_id: "custom_binary_sensor.sprinkler_should_dewinterize"
@@ -444,7 +435,6 @@ automation:
data:
message: "{{now().strftime('%Y-%m-%d')}}T{{now().strftime('%H:%M:%S.%f')}},{{states('sensor.ecowitt_wh40_21917_precipitation')}},{{states('binary_sensor.is_raining')}},{{state_attr('binary_sensor.is_raining','sample_count')}},{{state_attr('binary_sensor.is_raining','sample_duration')}},{{state_attr('binary_sensor.is_raining','min_gradient')}},{{state_attr('binary_sensor.is_raining','gradient')}}"
- alias: "Log Soil Moisture"
id: 362fbc8d-64f1-47dd-a686-e460e9c18690
trigger:
@@ -503,7 +493,7 @@ automation:
trigger:
- platform: state
entity_id: sensor.sun_next_dawn
condition: "{{ states('sensor.sun_next_dawn') not in ['unkown', 'unavailable'] }}"
condition: "{{ states('sensor.sun_next_dawn') not in ['unknown', 'unavailable'] }}"
action:
- service: input_datetime.set_datetime
target:
@@ -532,7 +522,7 @@ automation:
trigger:
- platform: state
entity_id: binary_sensor.is_raining
to: 'on'
to: "on"
condition:
condition: or
+46 -41
View File
@@ -178,12 +178,12 @@ automation:
- platform: event
event_type: automation_reloaded
condition: []
condition:
- "{{ states('camera.frigate_cam14') not in ['unknown', 'unavailable'] }}"
# - alias: "The input_boolean controlling the cycling of cam14 is on"
# condition: state
# entity_id: input_boolean.cycle_cam14
# state: "on"
# - alias: "No people or animals detected by Frigate for the last 5 seconds"
# condition: state
# entity_id: binary_sensor.frigate_cam14_all_occupancy
@@ -192,7 +192,6 @@ automation:
# hours: 0
# minutes: 0
# seconds: 5
# # Either the camera isn't looking at the deck
# # or the camera is looking at the deck and the deck motion sensor has been off for at least 30 seconds
# # or the camera is looking at the deck and the patio door has been closed for at least 30 seconds
@@ -245,39 +244,39 @@ automation:
while: "{{ is_state('input_boolean.cycle_cam14', 'on') }}"
sequence:
- choose:
# If the camera is looking at the deck and the deck motion sensor is on, then wait 5 seconds.
- conditions:
- condition: state
entity_id: input_select.camera14_preset
state: Deck
- condition: state
entity_id: binary_sensor.deck_motion
state: 'on'
sequence:
- service: input_text.set_value
target:
entity_id: input_text.camera14_status
data:
value: "Deck"
- delay: 5
# If a person is not found, cycle to the next preset, then wait 30 seconds.
- conditions:
- condition: template
value_template: "{{ is_state('binary_sensor.frigate_cam14_person_occupancy','off') }}"
sequence:
- service: input_text.set_value
target:
entity_id: input_text.camera14_status
data:
value: "Cycling"
- service: input_select.select_next
data:
cycle: true
target:
# If the camera is looking at the deck and the deck motion sensor is on, then wait 5 seconds.
- conditions:
- condition: state
entity_id: input_select.camera14_preset
state: Deck
- condition: state
entity_id: binary_sensor.deck_motion
state: "on"
sequence:
- service: input_text.set_value
target:
entity_id: input_text.camera14_status
data:
value: "Deck"
- delay: 5
- delay: 30
# If a person is not found, cycle to the next preset, then wait 30 seconds.
- conditions:
- condition: template
value_template: "{{ is_state('binary_sensor.frigate_cam14_person_occupancy','off') }}"
sequence:
- service: input_text.set_value
target:
entity_id: input_text.camera14_status
data:
value: "Cycling"
- service: input_select.select_next
data:
cycle: true
target:
entity_id: input_select.camera14_preset
- delay: 30
# If a person is found, check if the person is still present every 5 seconds
default:
@@ -312,6 +311,8 @@ automation:
entity_id: sensor.frigate_cam14_all_count
below: 2
- "{{ states('camera.frigate_cam14') not in ['unknown', 'unavailable'] }}"
action:
# We don't need to turn off cycling the back yard camera.
# - service: input_boolean.turn_off
@@ -331,14 +332,11 @@ automation:
entity_id: input_select.camera14_preset
# the Cycle cam 14 automation already checks if something is detected. All we need to do is force cam14 to look at the deck
# - delay: "00:00:05"
# - repeat:
# while: "{{ is_state('binary_sensor.frigate_cam14_all_occupancy', 'on')}}"
# sequence:
# - delay: "00:00:05"
# - service: input_boolean.turn_on
# target:
# entity_id: input_boolean.cycle_cam14
@@ -406,6 +404,9 @@ automation:
platform: state
entity_id: input_button.cam14_ptz_preset_10
condition:
- "{{ states('camera.frigate_cam14') not in ['unknown', 'unavailable'] }}"
action:
- choose:
- conditions: >
@@ -486,6 +487,10 @@ automation:
event: start
- platform: time_pattern
minutes: /10
condition:
- "{{ states('camera.frigate_cam14') not in ['unknown', 'unavailable'] }}"
action:
- choose:
- conditions:
@@ -552,7 +557,7 @@ template:
- binary_sensor:
- name: Deck Person Occupancy
unique_id: templatebinarysensor.deck_person_occupancy
availability: "{{ states('binary_sensor.possible_deck_person_occupancy') not in ['unkown', 'unavailable'] }}"
availability: "{{ states('binary_sensor.possible_deck_person_occupancy') not in ['unknown', 'unavailable'] }}"
state: "{{ is_state('binary_sensor.possible_deck_person_occupancy','on') and is_state('input_select.camera14_preset','Deck') }}"
icon: >
{% if is_state('binary_sensor.deck_person_occupancy','on') %}
@@ -563,14 +568,14 @@ template:
- name: Deck Animal Motion
unique_id: templatebinarysensor.deck_animal_occupancy
availability: "{{ states('binary_sensor.possible_deck_animal_occupancy') not in ['unkown', 'unavailable'] }}"
availability: "{{ states('binary_sensor.possible_deck_animal_occupancy') not in ['unknown', 'unavailable'] }}"
state: "{{ is_state('binary_sensor.possible_deck_animal_occupancy','on') and is_state('input_select.camera14_preset','Deck') }}"
icon: mdi:bird
- sensor:
- name: Deck Person Count
unique_id: templatesensor.deck_person_count
availability: "{{ states('sensor.possible_deck_person_count') not in ['unkown', 'unavailable'] }}"
availability: "{{ states('sensor.possible_deck_person_count') not in ['unknown', 'unavailable'] }}"
unit_of_measurement: objects
state: >
{% if is_state('input_select.camera14_preset','Deck') %}
@@ -582,7 +587,7 @@ template:
- name: Deck Animal Count
unique_id: templatesensor.deck_animal_count
availability: "{{ states('sensor.possible_deck_animal_count') not in ['unkown', 'unavailable'] }}"
availability: "{{ states('sensor.possible_deck_animal_count') not in ['unknown', 'unavailable'] }}"
unit_of_measurement: objects
state: >
{% if is_state('input_select.camera14_preset','Deck') %}
+33 -33
View File
@@ -1,51 +1,51 @@
template:
# Watch Done Charging
# Watch Done Charging
- trigger:
- platform: state
entity_id: sensor.ticwatch_pro_3_gps_charger_type
- platform: state
entity_id: sensor.ticwatch_pro_3_gps_charger_type
- platform: state
entity_id: sensor.ticwatch_pro_3_gps_battery_level
- platform: state
entity_id: sensor.ticwatch_pro_3_gps_battery_level
- platform: event
event_type: event_template_reloaded
id: "reload"
- platform: event
event_type: event_template_reloaded
id: "reload"
- platform: homeassistant
event: start
- platform: homeassistant
event: start
binary_sensor:
- name: Clint's Watch Done Charging
unique_id: templatebinarysensor.clints_watch_done_charging
icon: mdi:battery-charging-100
availability: "{{ states('sensor.ticwatch_pro_3_gps_battery_level') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.ticwatch_pro_3_gps_battery_level')|int(default=0) >= states('input_number.clints_watch_charged')|int(default=0) and is_state('sensor.ticwatch_pro_3_gps_charger_type','ac') }}"
- name: Clint's Watch Done Charging
unique_id: templatebinarysensor.clints_watch_done_charging
icon: mdi:battery-charging-100
availability: "{{ states('sensor.ticwatch_pro_3_gps_battery_level') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.ticwatch_pro_3_gps_battery_level')|int(default=0) >= states('input_number.clints_watch_charged')|int(default=0) and is_state('sensor.ticwatch_pro_3_gps_charger_type','ac') }}"
# Watch Done Charging
# Watch Done Charging
- trigger:
- platform: state
entity_id: sensor.ticwatch_pro_3_gps_charger_type
- platform: state
entity_id: sensor.ticwatch_pro_3_gps_charger_type
- platform: state
entity_id: sensor.ticwatch_pro_3_gps_battery_level
- platform: state
entity_id: sensor.ticwatch_pro_3_gps_battery_level
- platform: event
event_type: event_template_reloaded
id: "reload"
- platform: event
event_type: event_template_reloaded
id: "reload"
- platform: homeassistant
event: start
- platform: homeassistant
event: start
binary_sensor:
- name: Clint's Watch Needs to Charge
unique_id: templatebinarysensor.clints_watch_needs_to_charge
icon: mdi:battery-20
availability: "{{ states('sensor.ticwatch_pro_3_gps_battery_level') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.ticwatch_pro_3_gps_battery_level')|int(default=0) <= states('input_number.clints_watch_low')|int(default=0) and is_state('sensor.ticwatch_pro_3_gps_charger_type','none') }}"
- name: Clint's Watch Needs to Charge
unique_id: templatebinarysensor.clints_watch_needs_to_charge
icon: mdi:battery-20
availability: "{{ states('sensor.ticwatch_pro_3_gps_battery_level') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.ticwatch_pro_3_gps_battery_level')|int(default=0) <= states('input_number.clints_watch_low')|int(default=0) and is_state('sensor.ticwatch_pro_3_gps_charger_type','none') }}"
input_number:
clints_watch_charged:
name: 'Clints Watch Charged'
name: "Clints Watch Charged"
icon: mdi:battery
min: 0
max: 100
@@ -53,9 +53,9 @@ input_number:
mode: box
clints_watch_low:
name: 'Clints Watch Low'
name: "Clints Watch Low"
icon: mdi:battery-20
min: 0
max: 100
step: 1
mode: box
mode: box
+5 -5
View File
@@ -1,7 +1,7 @@
template:
- binary_sensor:
- name: 'HACS Update Available'
unique_id: binary_sensor.hacs_update_available
icon: mdi:alpha-c-box
state: "{{ states('sensor.hacs') | float(default=0) > 0 }}"
availability: "{{ states('sensor.hacs') not in ['unkown', 'unavailable'] }}"
- name: "HACS Update Available"
unique_id: binary_sensor.hacs_update_available
icon: mdi:alpha-c-box
state: "{{ states('sensor.hacs') | float(default=0) > 0 }}"
availability: "{{ states('sensor.hacs') not in ['unknown', 'unavailable'] }}"
+9 -9
View File
@@ -11,15 +11,15 @@ notify:
template:
- trigger:
- platform: homeassistant
event: start
- platform: homeassistant
event: start
- platform: state
entity_id: sensor.dreambox_lastactive
- platform: state
entity_id: sensor.dreambox_lastactive
binary_sensor:
- name: DreamBox Recently Active
unique_id: templatebinarysensor.dreambox_recently_active
icon: mdi:desktop-tower-monitor
#availability: "{{ states('sensor.dreambox_lastactive') not in ['unkown', 'unavailable'] }}"
state: " {{ iif( states('sensor.dreambox_lastactive') == 'unknown' or is_state('sensor.dreambox_lastactive', 'unavailable'), false, as_timestamp(now()) - as_timestamp(states('sensor.dreambox_lastactive'),0) < 180 or is_state('sensor.dreambox_usernotification','Busy'))}}"
- name: DreamBox Recently Active
unique_id: templatebinarysensor.dreambox_recently_active
icon: mdi:desktop-tower-monitor
#availability: "{{ states('sensor.dreambox_lastactive') not in ['unknown', 'unavailable'] }}"
state: " {{ iif( states('sensor.dreambox_lastactive') == 'unknown' or is_state('sensor.dreambox_lastactive', 'unavailable'), false, as_timestamp(now()) - as_timestamp(states('sensor.dreambox_lastactive'),0) < 180 or is_state('sensor.dreambox_usernotification','Busy'))}}"
@@ -3,7 +3,6 @@ notify:
platform: hass_agent_notifier
resource: !secret dreamsurface_hassagent
mqtt:
light:
- name: "DreamSurface: Screen Brightness"
@@ -13,7 +12,7 @@ mqtt:
brightness_command_topic: "homeassistant/light/HASSAGENT/dreamsurface_monitor_brightness/action"
brightness_command_template: "%PROGRAMFILES(X86)%\\Monitorian\\Monitorian.exe /set {{ value }}"
brightness_scale: 100
on_command_type: 'brightness'
on_command_type: "brightness"
icon: mdi:monitor-shimmer
# media_player:
@@ -24,15 +23,15 @@ mqtt:
template:
- trigger:
- platform: homeassistant
event: start
- platform: homeassistant
event: start
- platform: state
entity_id: sensor.dreamsurface_lastactive
- platform: state
entity_id: sensor.dreamsurface_lastactive
binary_sensor:
- name: DreamSurface Recently Active
unique_id: templatebinarysensor.dreamsurface_recently_active
icon: mdi:tablet
#availability: "{{ states('sensor.dreamsurface_lastactive') not in ['unkown', 'unavailable'] }}"
state: " {{ iif( states('sensor.dreamsurface_lastactive') == 'unknown' or is_state('sensor.dreamsurface_lastactive', 'unavailable'), false, as_timestamp(now()) - as_timestamp(states('sensor.dreamsurface_lastactive'),0) < 180 or is_state('sensor.dreamsurface_usernotification','Busy'))}}"
- name: DreamSurface Recently Active
unique_id: templatebinarysensor.dreamsurface_recently_active
icon: mdi:tablet
#availability: "{{ states('sensor.dreamsurface_lastactive') not in ['unknown', 'unavailable'] }}"
state: " {{ iif( states('sensor.dreamsurface_lastactive') == 'unknown' or is_state('sensor.dreamsurface_lastactive', 'unavailable'), false, as_timestamp(now()) - as_timestamp(states('sensor.dreamsurface_lastactive'),0) < 180 or is_state('sensor.dreamsurface_usernotification','Busy'))}}"
+4 -4
View File
@@ -18,7 +18,7 @@ template:
unique_id: "custom_binary_sensor.hvac_aux"
icon: mdi:fire
device_class: running
availability: "{{ states('climate.thermostat') not in ['unkown', 'unavailable'] }}"
availability: "{{ states('climate.thermostat') not in ['unknown', 'unavailable'] }}"
state: >
{% if 'aux' in state_attr('climate.thermostat','equipment_running') %}{{'true'}}{% else %}{{'false'}}{% endif %}
@@ -41,7 +41,7 @@ template:
unique_id: "custom_binary_sensor.hvac_fan"
icon: mdi:fan
device_class: running
availability: "{{ states('climate.thermostat') not in ['unkown', 'unavailable'] }}"
availability: "{{ states('climate.thermostat') not in ['unknown', 'unavailable'] }}"
state: >
{% if 'fan' in state_attr('climate.thermostat','equipment_running') %}{{'true'}}{% else %}{{'false'}}{% endif %}
@@ -64,6 +64,6 @@ template:
unique_id: "custom_binary_sensor.hvac_heatpump"
icon: mdi:hvac
device_class: running
availability: "{{ states('climate.thermostat') not in ['unkown', 'unavailable'] }}"
availability: "{{ states('climate.thermostat') not in ['unknown', 'unavailable'] }}"
state: >
{% if 'heatPump' in state_attr('climate.thermostat','equipment_running') %}{{'true'}}{% else %}{{'false'}}{% endif %}
{% if 'heatPump' in state_attr('climate.thermostat','equipment_running') %}{{'true'}}{% else %}{{'false'}}{% endif %}
@@ -0,0 +1,118 @@
# TODO
# Update to account for new get_weather_forcats BS a
template:
# - binary_sensor:
# - name: Precipitation Likely Soon
# unique_id: templatebinarysensor.precipitation_likely_soon
# icon: mdi:weather-rainy
# availability: "{{ states('sensor.openweathermap_hourly_forecast_precipitation_probability') not in ['unknown', 'unavailable'] }}"
# state: "{{ states('sensor.openweathermap_hourly_forecast_precipitation_probability')|float(default=0) >= 50.0 }}"
# - name: Precipitation Likely
# unique_id: templatebinarysensor.precipitation_likely
# icon: mdi:weather-rainy
# availability: "{{ states('sensor.openweathermap_daily_forecast_precipitation_probability') not in ['unknown', 'unavailable'] }}"
# state: "{{ states('sensor.openweathermap_daily_forecast_precipitation_probability')|float(default=0) >= 50.0 }}"
- trigger:
- platform: time_pattern
hours: /1
- platform: event
event_type: event_template_reloaded
id: "reload"
- platform: homeassistant
event: start
action:
- service: weather.get_forecasts
data:
type: daily
target:
entity_id: weather.forecast_home
response_variable: daily
- service: weather.get_forecasts
data:
type: hourly
target:
entity_id: weather.forecast_home
response_variable: hourly
binary_sensor:
- name: "Impending Rain"
unique_id: templatebinarysensor.impending_rain
availability: "{{ states('weather.forecast_home') not in ['unknown', 'unavailable'] }}"
icon: mdi:weather-rainy
# This looks too far into the future. Cutting it down a bit
state: >-
{%- set totalprecipitation = 0 | float -%}
{%- set upcoming_precipitation = 0 | float -%}
{%- set ns = namespace() -%}
{%- set ns.totalprecipitation = 0 -%}
{%- for daypart in range(0, 8) -%}
{%- set precipitation = hourly['weather.forecast_home'].forecast[daypart].precipitation -%}
{%- set wind_speed = hourly['weather.forecast_home'].forecast[daypart].wind_speed -%}
{% if wind_speed > states('input_number.wind_speed_blowing_rain') |float(default=0) %}
{%- set upcoming_precipitation = precipitation -%}
{%- endif -%}
{%- set ns.totalprecipitation = ns.totalprecipitation + upcoming_precipitation -%}
{%- endfor %}
{{ ns.totalprecipitation / 100 | float | round(0) > 0.99 }}
sensor:
- name: "Sprinkler: Total Expected Precipitation"
unique_id: "custom_sensor.sprinkler_total_expected_precipitation"
icon: mdi:weather-pouring
unit_of_measurement: mm
availability: "{{ states('weather.forecast_home') not in ['unknown', 'unavailable'] }}"
state: >
{%- set totalprecipitation = 0 | float -%}
{%- set upcoming_precipitation = 0 | float -%}
{%- set ns = namespace() -%}
{%- set ns.totalprecipitation = 0 -%}
{%- for daypart in range(0, 5) -%}
{%- set precipitation = daily['weather.forecast_home'].forecast[daypart].precipitation * 25.4 -%}
{%- set upcoming_precipitation = precipitation -%}
{%- set ns.totalprecipitation = ns.totalprecipitation + upcoming_precipitation -%}
{%- endfor %}
{{ ns.totalprecipitation | float | round(0) }}
- name: "Today's Low Temperature"
unique_id: templatesensor.templow_today
unit_of_measurement: °F
availability: "{{ states('weather.forecast_home') not in ['unknown', 'unavailable'] }}"
state: "{{ daily['weather.forecast_home'].forecast[0].templow }}"
- name: "Today's High Temperature"
unique_id: templatesensor.temphigh_today
unit_of_measurement: °F
availability: "{{ states('weather.forecast_home') not in ['unknown', 'unavailable'] }}"
state: "{{ daily['weather.forecast_home'].forecast[0].temperature}}"
# - name: "Today's Chance of Precipitation"
# unique_id: templatesensor.precip_chance_today
# icon: mdi:cloud-percent
# unit_of_measurement: '%'
# availability: "{{ states('weather.forecast_home') not in ['unknown', 'unavailable'] }}"
# state: "{{ daily['weather.forecast_home'].forecast[0].precipitation_probability}}"
- name: "Tomorrow's Low Temperature"
unique_id: templatesensor.templow_tomorrow
unit_of_measurement: °F
availability: "{{ states('weather.forecast_home') not in ['unknown', 'unavailable'] }}"
state: "{{ daily['weather.forecast_home'].forecast[1].templow}}"
- name: "Tomorrow's High Temperature"
unique_id: templatesensor.temphigh_tomorrow
unit_of_measurement: °F
availability: "{{ states('weather.forecast_home') not in ['unknown', 'unavailable'] }}"
state: "{{ daily['weather.forecast_home'].forecast[1].temperature}}"
# - name: "Tomorrow's Chance of Precipitation"
# unique_id: templatesensor.precip_chance_tomorrow
# icon: mdi:cloud-percent
# unit_of_measurement: '%'
# availability: "{{ states('weather.forecast_home') not in ['unknown', 'unavailable'] }}"
# state: "{{ daily['weather.forecast_home'].forecast[1].precipitation_probability}}"
+77 -77
View File
@@ -1,13 +1,13 @@
template:
- trigger:
- platform: homeassistant
event: start
- platform: homeassistant
event: start
- platform: state
entity_id: input_number.blue_room_light_level_trigger
- platform: state
entity_id: input_number.blue_room_light_level_trigger
- platform: state
entity_id: sensor.blue_room_multisensor_illuminance
- platform: state
entity_id: sensor.blue_room_multisensor_illuminance
binary_sensor:
- name: "Blue Room Naturally Lit"
@@ -29,14 +29,14 @@ template:
trigger: "{{ states('input_number.blue_room_light_level_trigger') | float(default=0) }}"
- trigger:
- platform: homeassistant
event: start
- platform: homeassistant
event: start
- platform: state
entity_id: input_number.computer_area_light_level_trigger
- platform: state
entity_id: input_number.computer_area_light_level_trigger
- platform: state
entity_id: sensor.computer_area_multisensor_illuminance
- platform: state
entity_id: sensor.computer_area_multisensor_illuminance
binary_sensor:
- name: "Computer Area Naturally Lit"
@@ -58,14 +58,14 @@ template:
trigger: "{{ states('input_number.computer_area_light_level_trigger') | float(default=0) }}"
- trigger:
- platform: homeassistant
event: start
- platform: homeassistant
event: start
- platform: state
entity_id: input_number.deck_light_level_trigger
- platform: state
entity_id: input_number.deck_light_level_trigger
- platform: state
entity_id: sensor.deck_light_level
- platform: state
entity_id: sensor.deck_light_level
binary_sensor:
- name: "Deck Naturally Lit"
@@ -87,23 +87,23 @@ template:
trigger: "{{ states('input_number.deck_light_level_trigger') | float(default=0) }}"
- trigger:
- platform: homeassistant
event: start
- platform: homeassistant
event: start
- platform: state
entity_id: input_number.dining_room_light_level_trigger
- platform: state
entity_id: input_number.dining_room_light_level_trigger
- platform: state
entity_id: sensor.dining_room_multisensor_illuminance
to:
- platform: state
entity_id: sensor.dining_room_multisensor_illuminance
to:
- platform: event
event_type: event_template_reloaded
- platform: event
event_type: event_template_reloaded
binary_sensor:
- name: "Dining Room Naturally Lit"
unique_id: templatebinarysensor_diningroomnaturallylit
availability: "{{ states('sensor.dining_room_multisensor_illuminance') not in ['unkown', 'unavailable'] }}"
availability: "{{ states('sensor.dining_room_multisensor_illuminance') not in ['unknown', 'unavailable'] }}"
delay_on:
seconds: 3
delay_off:
@@ -121,14 +121,14 @@ template:
trigger: "{{ states('input_number.dining_room_light_level_trigger') | float(default=0) }}"
- trigger:
- platform: homeassistant
event: start
- platform: homeassistant
event: start
- platform: state
entity_id: input_number.entryway_light_level_trigger
- platform: state
entity_id: input_number.entryway_light_level_trigger
- platform: state
entity_id: sensor.entryway_light_level
- platform: state
entity_id: sensor.entryway_light_level
binary_sensor:
- name: "Entryway Naturally Lit"
@@ -150,14 +150,14 @@ template:
trigger: "{{ states('input_number.entryway_light_level_trigger') | float(default=0) }}"
- trigger:
- platform: homeassistant
event: start
- platform: homeassistant
event: start
- platform: state
entity_id: input_number.front_porch_light_level_trigger
- platform: state
entity_id: input_number.front_porch_light_level_trigger
- platform: state
entity_id: sensor.front_porch_light_level
- platform: state
entity_id: sensor.front_porch_light_level
binary_sensor:
- name: "Front Porch Naturally Lit"
@@ -179,14 +179,14 @@ template:
trigger: "{{ states('input_number.front_porch_light_level_trigger') | float(default=0) }}"
- trigger:
- platform: homeassistant
event: start
- platform: homeassistant
event: start
- platform: state
entity_id: input_number.front_room_light_level_trigger
- platform: state
entity_id: input_number.front_room_light_level_trigger
- platform: state
entity_id: sensor.front_room_light_level
- platform: state
entity_id: sensor.front_room_light_level
binary_sensor:
- name: "Front Room Naturally Lit"
@@ -208,14 +208,14 @@ template:
trigger: "{{ states('input_number.front_room_light_level_trigger') | float(default=0) }}"
- trigger:
- platform: homeassistant
event: start
- platform: homeassistant
event: start
- platform: state
entity_id: input_number.garage_overhead_light_level_trigger
- platform: state
entity_id: input_number.garage_overhead_light_level_trigger
- platform: state
entity_id: sensor.garage_multisensor_illuminance
- platform: state
entity_id: sensor.garage_multisensor_illuminance
binary_sensor:
- name: "Garage Naturally Lit"
@@ -237,14 +237,14 @@ template:
trigger: "{{ states('input_number.garage_overhead_light_level_trigger') | float(default=0) }}"
- trigger:
- platform: homeassistant
event: start
- platform: homeassistant
event: start
- platform: state
entity_id: input_number.great_room_light_level_trigger
- platform: state
entity_id: input_number.great_room_light_level_trigger
- platform: state
entity_id: sensor.great_room_multisensor_illuminance
- platform: state
entity_id: sensor.great_room_multisensor_illuminance
binary_sensor:
- name: "Great Room Naturally Lit"
@@ -266,14 +266,14 @@ template:
trigger: "{{ states('input_number.great_room_light_level_trigger') | float(default=0) }}"
- trigger:
- platform: homeassistant
event: start
- platform: homeassistant
event: start
- platform: state
entity_id: input_number.kitchen_light_level_trigger
- platform: state
entity_id: input_number.kitchen_light_level_trigger
- platform: state
entity_id: sensor.kitchen_multisensor_illuminance
- platform: state
entity_id: sensor.kitchen_multisensor_illuminance
binary_sensor:
- name: "Kitchen Naturally Lit"
@@ -295,13 +295,13 @@ template:
trigger: "{{ states('input_number.kitchen_light_level_trigger') | float(default=0) }}"
- trigger:
- platform: homeassistant
event: start
- platform: homeassistant
event: start
- platform: state
entity_id:
- input_number.master_bedroom_light_level_trigger
- sensor.master_bedroom_multisensor_illuminance
- platform: state
entity_id:
- input_number.master_bedroom_light_level_trigger
- sensor.master_bedroom_multisensor_illuminance
binary_sensor:
- name: "Master Bedroom Naturally Lit"
@@ -323,13 +323,13 @@ template:
trigger: "{{ states('input_number.master_bedroom_light_level_trigger') | float(default=0) }}"
- trigger:
- platform: homeassistant
event: start
- platform: homeassistant
event: start
- platform: state
entity_id:
- input_number.nursery_light_level_trigger
- sensor.nursery_multisensor_illuminance
- platform: state
entity_id:
- input_number.nursery_light_level_trigger
- sensor.nursery_multisensor_illuminance
binary_sensor:
- name: "Nursery Naturally Lit"
@@ -433,4 +433,4 @@ input_number:
icon: mdi:brightness-auto
min: 0
max: 50000
mode: box
mode: box
+110 -110
View File
@@ -1,127 +1,127 @@
# TODO
# Update to account for new get_weather_forcats BS a
# # TODO
# # Update to account for new get_weather_forcats BS a
template:
- binary_sensor:
- name: Precipitation Likely Soon
unique_id: templatebinarysensor.precipitation_likely_soon
icon: mdi:weather-rainy
availability: "{{ states('sensor.openweathermap_hourly_forecast_precipitation_probability') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.openweathermap_hourly_forecast_precipitation_probability')|float(default=0) >= 50.0 }}"
# template:
# - binary_sensor:
# - name: Precipitation Likely Soon
# unique_id: templatebinarysensor.precipitation_likely_soon
# icon: mdi:weather-rainy
# availability: "{{ states('sensor.openweathermap_hourly_forecast_precipitation_probability') not in ['unknown', 'unavailable'] }}"
# state: "{{ states('sensor.openweathermap_hourly_forecast_precipitation_probability')|float(default=0) >= 50.0 }}"
- name: Precipitation Likely
unique_id: templatebinarysensor.precipitation_likely
icon: mdi:weather-rainy
availability: "{{ states('sensor.openweathermap_daily_forecast_precipitation_probability') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.openweathermap_daily_forecast_precipitation_probability')|float(default=0) >= 50.0 }}"
# - name: Precipitation Likely
# unique_id: templatebinarysensor.precipitation_likely
# icon: mdi:weather-rainy
# availability: "{{ states('sensor.openweathermap_daily_forecast_precipitation_probability') not in ['unknown', 'unavailable'] }}"
# state: "{{ states('sensor.openweathermap_daily_forecast_precipitation_probability')|float(default=0) >= 50.0 }}"
- trigger:
# - trigger:
- platform: time_pattern
hours: /1
# - platform: time_pattern
# hours: /1
- platform: event
event_type: event_template_reloaded
id: "reload"
# - platform: event
# event_type: event_template_reloaded
# id: "reload"
- platform: homeassistant
event: start
# - platform: homeassistant
# event: start
action:
- service: weather.get_forecasts
data:
type: daily
target:
entity_id: weather.openweathermap_daily
response_variable: daily
# action:
# - service: weather.get_forecasts
# data:
# type: daily
# target:
# entity_id: weather.openweathermap_daily
# response_variable: daily
- service: weather.get_forecasts
data:
type: hourly
target:
entity_id: weather.openweathermap_hourly
response_variable: hourly
# - service: weather.get_forecasts
# data:
# type: hourly
# target:
# entity_id: weather.openweathermap_hourly
# response_variable: hourly
binary_sensor:
- name: "Impending Rain"
unique_id: templatebinarysensor.impending_rain
availability: "{{ states('weather.openweathermap_hourly') not in ['unkown', 'unavailable'] }}"
icon: mdi:weather-rainy
# This looks too far into the future. Cutting it down a bit
state: >-
{%- set totalprecipitation = 0 | float -%}
{%- set upcoming_precipitation = 0 | float -%}
{%- set ns = namespace() -%}
{%- set ns.totalprecipitation = 0 -%}
{%- for daypart in range(0, 8) -%}
{%- set precipitation = hourly['weather.openweathermap_hourly'].forecast[daypart].precipitation -%}
{%- set wind_speed = hourly['weather.openweathermap_hourly'].forecast[daypart].wind_speed -%}
{%- set precipitation_probability = hourly['weather.openweathermap_hourly'].forecast[daypart].precipitation_probability %}
# binary_sensor:
# - name: "Impending Rain"
# unique_id: templatebinarysensor.impending_rain
# availability: "{{ states('weather.openweathermap_hourly') not in ['unknown', 'unavailable'] }}"
# icon: mdi:weather-rainy
# # This looks too far into the future. Cutting it down a bit
# state: >-
# {%- set totalprecipitation = 0 | float -%}
# {%- set upcoming_precipitation = 0 | float -%}
# {%- set ns = namespace() -%}
# {%- set ns.totalprecipitation = 0 -%}
# {%- for daypart in range(0, 8) -%}
# {%- set precipitation = hourly['weather.openweathermap_hourly'].forecast[daypart].precipitation -%}
# {%- set wind_speed = hourly['weather.openweathermap_hourly'].forecast[daypart].wind_speed -%}
# {%- set precipitation_probability = hourly['weather.openweathermap_hourly'].forecast[daypart].precipitation_probability %}
{% if precipitation_probability > 0 -%}
{% if wind_speed > states('input_number.wind_speed_blowing_rain') |float(default=0) %}
{%- set upcoming_precipitation = precipitation * precipitation_probability -%}
{%- endif -%}
{%- endif -%}
{%- set ns.totalprecipitation = ns.totalprecipitation + upcoming_precipitation -%}
{%- endfor %}
{{ ns.totalprecipitation / 100 | float | round(0) > 0.99 }}
# {% if precipitation_probability > 0 -%}
# {% if wind_speed > states('input_number.wind_speed_blowing_rain') |float(default=0) %}
# {%- set upcoming_precipitation = precipitation * precipitation_probability -%}
# {%- endif -%}
# {%- endif -%}
# {%- set ns.totalprecipitation = ns.totalprecipitation + upcoming_precipitation -%}
# {%- endfor %}
# {{ ns.totalprecipitation / 100 | float | round(0) > 0.99 }}
sensor:
- name: "Sprinkler: Total Expected Precipitation"
unique_id: "custom_sensor.sprinkler_total_expected_precipitation"
icon: mdi:weather-pouring
unit_of_measurement: mm
availability: "{{ states('weather.openweathermap_daily') not in ['unkown', 'unavailable'] }}"
state: >
{%- set totalprecipitation = 0 | float -%}
{%- set upcoming_precipitation = 0 | float -%}
{%- set ns = namespace() -%}
{%- set ns.totalprecipitation = 0 -%}
{%- for daypart in range(0, 8) -%}
{%- set precipitation = daily['weather.openweathermap_daily'].forecast[daypart].precipitation * 25.4 -%}
{%- set precipitation_probability = daily['weather.openweathermap_daily'].forecast[daypart].precipitation_probability / 100 %}
{% if precipitation_probability >0 -%}
{%- set upcoming_precipitation = precipitation * precipitation_probability -%}
{%- endif -%}
{%- set ns.totalprecipitation = ns.totalprecipitation + upcoming_precipitation -%}
{%- endfor %}
{{ ns.totalprecipitation | float | round(0) }}
# sensor:
# - name: "Sprinkler: Total Expected Precipitation"
# unique_id: "custom_sensor.sprinkler_total_expected_precipitation"
# icon: mdi:weather-pouring
# unit_of_measurement: mm
# availability: "{{ states('weather.openweathermap_daily') not in ['unknown', 'unavailable'] }}"
# state: >
# {%- set totalprecipitation = 0 | float -%}
# {%- set upcoming_precipitation = 0 | float -%}
# {%- set ns = namespace() -%}
# {%- set ns.totalprecipitation = 0 -%}
# {%- for daypart in range(0, 8) -%}
# {%- set precipitation = daily['weather.openweathermap_daily'].forecast[daypart].precipitation * 25.4 -%}
# {%- set precipitation_probability = daily['weather.openweathermap_daily'].forecast[daypart].precipitation_probability / 100 %}
# {% if precipitation_probability >0 -%}
# {%- set upcoming_precipitation = precipitation * precipitation_probability -%}
# {%- endif -%}
# {%- set ns.totalprecipitation = ns.totalprecipitation + upcoming_precipitation -%}
# {%- endfor %}
# {{ ns.totalprecipitation | float | round(0) }}
- name: "Today's Low Temperature"
unique_id: templatesensor.templow_today
unit_of_measurement: °F
availability: "{{ states('weather.openweathermap_daily') not in ['unkown', 'unavailable'] }}"
state: "{{ daily['weather.openweathermap_daily'].forecast[0].templow }}"
# - name: "Today's Low Temperature"
# unique_id: templatesensor.templow_today
# unit_of_measurement: °F
# availability: "{{ states('weather.openweathermap_daily') not in ['unknown', 'unavailable'] }}"
# state: "{{ daily['weather.openweathermap_daily'].forecast[0].templow }}"
- name: "Today's High Temperature"
unique_id: templatesensor.temphigh_today
unit_of_measurement: °F
availability: "{{ states('weather.openweathermap_daily') not in ['unkown', 'unavailable'] }}"
state: "{{ daily['weather.openweathermap_daily'].forecast[0].temperature}}"
# - name: "Today's High Temperature"
# unique_id: templatesensor.temphigh_today
# unit_of_measurement: °F
# availability: "{{ states('weather.openweathermap_daily') not in ['unknown', 'unavailable'] }}"
# state: "{{ daily['weather.openweathermap_daily'].forecast[0].temperature}}"
- name: "Today's Chance of Precipitation"
unique_id: templatesensor.precip_chance_today
icon: mdi:cloud-percent
unit_of_measurement: '%'
availability: "{{ states('weather.openweathermap_daily') not in ['unkown', 'unavailable'] }}"
state: "{{ daily['weather.openweathermap_daily'].forecast[0].precipitation_probability}}"
# - name: "Today's Chance of Precipitation"
# unique_id: templatesensor.precip_chance_today
# icon: mdi:cloud-percent
# unit_of_measurement: '%'
# availability: "{{ states('weather.openweathermap_daily') not in ['unknown', 'unavailable'] }}"
# state: "{{ daily['weather.openweathermap_daily'].forecast[0].precipitation_probability}}"
- name: "Tomorrow's Low Temperature"
unique_id: templatesensor.templow_tomorrow
unit_of_measurement: °F
availability: "{{ states('weather.openweathermap_daily') not in ['unkown', 'unavailable'] }}"
state: "{{ daily['weather.openweathermap_daily'].forecast[1].templow}}"
# - name: "Tomorrow's Low Temperature"
# unique_id: templatesensor.templow_tomorrow
# unit_of_measurement: °F
# availability: "{{ states('weather.openweathermap_daily') not in ['unknown', 'unavailable'] }}"
# state: "{{ daily['weather.openweathermap_daily'].forecast[1].templow}}"
- name: "Tomorrow's High Temperature"
unique_id: templatesensor.temphigh_tomorrow
unit_of_measurement: °F
availability: "{{ states('weather.openweathermap_daily') not in ['unkown', 'unavailable'] }}"
state: "{{ daily['weather.openweathermap_daily'].forecast[1].temperature}}"
# - name: "Tomorrow's High Temperature"
# unique_id: templatesensor.temphigh_tomorrow
# unit_of_measurement: °F
# availability: "{{ states('weather.openweathermap_daily') not in ['unknown', 'unavailable'] }}"
# state: "{{ daily['weather.openweathermap_daily'].forecast[1].temperature}}"
- name: "Tomorrow's Chance of Precipitation"
unique_id: templatesensor.precip_chance_tomorrow
icon: mdi:cloud-percent
unit_of_measurement: '%'
availability: "{{ states('weather.openweathermap_daily') not in ['unkown', 'unavailable'] }}"
state: "{{ daily['weather.openweathermap_daily'].forecast[1].precipitation_probability}}"
# - name: "Tomorrow's Chance of Precipitation"
# unique_id: templatesensor.precip_chance_tomorrow
# icon: mdi:cloud-percent
# unit_of_measurement: '%'
# availability: "{{ states('weather.openweathermap_daily') not in ['unknown', 'unavailable'] }}"
# state: "{{ daily['weather.openweathermap_daily'].forecast[1].precipitation_probability}}"
+3 -1
View File
@@ -33,6 +33,8 @@ automation:
state: "on"
action:
- service: notify.pixel_7_coordinates
- service: notify.send_message
target:
entity_id: notify.pixel_7_coordinates
data:
message: "{{now().strftime('%Y-%m-%d')}}T{{now().strftime('%H:%M:%S.%f')}},{{states('device_tracker.pixel_7')}},{{state_attr('device_tracker.pixel_7','latitude')}},{{state_attr('device_tracker.pixel_7','longitude')}}"
+214 -215
View File
@@ -15,243 +15,242 @@ input_number:
template:
- binary_sensor:
# This is ON when it is warmer outside than it is inside, as defined by input_number.warmer_outside_difference_trigger
- name: Warmer Outside
unique_id: templatebinarysensor.warmer_outside
icon: mdi:sun-snowflake-variant
device_class: heat
delay_on:
seconds: 15
delay_off:
seconds: 15
availability: "{{ (states('sensor.upstairs_mean_temperature') not in ['unkown', 'unavailable']) and (states('sensor.outdoors_mean_temperature') not in ['unkown', 'unavailable']) }}"
state: "{{ iif(states('sensor.outdoors_mean_temperature') | float(default=0) - states('input_number.warmer_outside_difference_trigger') | float(default=0) > states('sensor.upstairs_mean_temperature') | float(default=0) ) }}"
attributes:
indoors: "{{ states('sensor.upstairs_mean_temperature') | float(default=0) }}"
outdoors: "{{ states('sensor.outdoors_mean_temperature') | float(default=0) }}"
trigger: "{{ states('input_number.warmer_outside_difference_trigger') | float(default=0) }}"
# This is ON when it is warmer outside than it is inside, as defined by input_number.warmer_outside_difference_trigger
- name: Warmer Outside
unique_id: templatebinarysensor.warmer_outside
icon: mdi:sun-snowflake-variant
device_class: heat
delay_on:
seconds: 15
delay_off:
seconds: 15
availability: "{{ (states('sensor.upstairs_mean_temperature') not in ['unknown', 'unavailable']) and (states('sensor.outdoors_mean_temperature') not in ['unknown', 'unavailable']) }}"
state: "{{ iif(states('sensor.outdoors_mean_temperature') | float(default=0) - states('input_number.warmer_outside_difference_trigger') | float(default=0) > states('sensor.upstairs_mean_temperature') | float(default=0) ) }}"
attributes:
indoors: "{{ states('sensor.upstairs_mean_temperature') | float(default=0) }}"
outdoors: "{{ states('sensor.outdoors_mean_temperature') | float(default=0) }}"
trigger: "{{ states('input_number.warmer_outside_difference_trigger') | float(default=0) }}"
# This is ON when it is cooler outside than it is inside, as defined by input_number.cooler_outside_difference_trigger
- name: Cooler Outside
unique_id: templatebinarysensor.cooler_outside
icon: mdi:sun-snowflake-variant
device_class: cold
delay_on:
seconds: 15
delay_off:
seconds: 15
availability: "{{ (states('sensor.upstairs_mean_temperature') not in ['unkown', 'unavailable']) and (states('sensor.outdoors_mean_temperature') not in ['unkown', 'unavailable']) }}"
state: "{{ iif(states('sensor.outdoors_mean_temperature') | float(default=0) + states('input_number.cooler_outside_difference_trigger') | float(default=0) < states('sensor.upstairs_mean_temperature') | float(default=0) ) }}"
attributes:
indoors: "{{ states('sensor.upstairs_mean_temperature') | float(default=0)}}"
outdoors: "{{ states('sensor.outdoors_mean_temperature') | float(default=0)}}"
trigger: "{{ states('input_number.cooler_outside_difference_trigger') | float(default=0) }}"
# This is ON when it is cooler outside than it is inside, as defined by input_number.cooler_outside_difference_trigger
- name: Cooler Outside
unique_id: templatebinarysensor.cooler_outside
icon: mdi:sun-snowflake-variant
device_class: cold
delay_on:
seconds: 15
delay_off:
seconds: 15
availability: "{{ (states('sensor.upstairs_mean_temperature') not in ['unknown', 'unavailable']) and (states('sensor.outdoors_mean_temperature') not in ['unknown', 'unavailable']) }}"
state: "{{ iif(states('sensor.outdoors_mean_temperature') | float(default=0) + states('input_number.cooler_outside_difference_trigger') | float(default=0) < states('sensor.upstairs_mean_temperature') | float(default=0) ) }}"
attributes:
indoors: "{{ states('sensor.upstairs_mean_temperature') | float(default=0)}}"
outdoors: "{{ states('sensor.outdoors_mean_temperature') | float(default=0)}}"
trigger: "{{ states('input_number.cooler_outside_difference_trigger') | float(default=0) }}"
# This is ON when the temperature outside is hotter than the temp_high configured as part of the climate platform
- name: Too Hot Outside
unique_id: templatebinarysensor.too_hot_outside
icon: mdi:weather-sunny
device_class: heat
delay_on:
seconds: 15
delay_off:
seconds: 15
availability: "{{ (states('climate.thermostat') not in ['unkown', 'unavailable']) and (states('sensor.outdoors_mean_temperature') not in ['unkown', 'unavailable']) }}"
state: "{{states('sensor.outdoors_mean_temperature') | float(default=0) > states('sensor.hvac_target_temp_high') | float(default=0) - (states('input_number.warmer_outside_difference_trigger') | float(default=0) / 2) }}"
attributes:
outdoor_temp: "{{ states('sensor.outdoors_mean_temperature') | float(default=0)}}"
target_temp_high: "{{ state_attr('climate.thermostat','target_temp_high') | float(default=0)}}"
# This is ON when the temperature outside is hotter than the temp_high configured as part of the climate platform
- name: Too Hot Outside
unique_id: templatebinarysensor.too_hot_outside
icon: mdi:weather-sunny
device_class: heat
delay_on:
seconds: 15
delay_off:
seconds: 15
availability: "{{ (states('climate.thermostat') not in ['unknown', 'unavailable']) and (states('sensor.outdoors_mean_temperature') not in ['unknown', 'unavailable']) }}"
state: "{{states('sensor.outdoors_mean_temperature') | float(default=0) > states('sensor.hvac_target_temp_high') | float(default=0) - (states('input_number.warmer_outside_difference_trigger') | float(default=0) / 2) }}"
attributes:
outdoor_temp: "{{ states('sensor.outdoors_mean_temperature') | float(default=0)}}"
target_temp_high: "{{ state_attr('climate.thermostat','target_temp_high') | float(default=0)}}"
# This is ON when the thermostat is hotter than the temp_high configured as part of the climate platform
- name: Too Hot Inside
unique_id: templatebinarysensor.too_hot_inside
icon: mdi:weather-sunny
device_class: heat
availability: "{{ (states('sensor.hvac_target_temp_high') not in ['unkown', 'unavailable']) and (states('sensor.upstairs_mean_temperature') not in ['unkown', 'unavailable']) }}"
state: "{{states('sensor.upstairs_mean_temperature') | float(default=0) > states('sensor.hvac_target_temp_high') | float(default=(state_attr('climate.thermostat','temperature') |float(default=0))) - 1.0 }}"
attributes:
upstairs_mean_temp: "{{ states('sensor.upstairs_mean_temperature') | float(default=0)}}"
target_temp_high: "{{ states('sensor.hvac_target_temp_high') | float(default=0)}}"
target_temperature: "{{ state_attr('climate.thermostat','temperature') |float(default=0) }}"
# This is ON when the thermostat is hotter than the temp_high configured as part of the climate platform
- name: Too Hot Inside
unique_id: templatebinarysensor.too_hot_inside
icon: mdi:weather-sunny
device_class: heat
availability: "{{ (states('sensor.hvac_target_temp_high') not in ['unknown', 'unavailable']) and (states('sensor.upstairs_mean_temperature') not in ['unknown', 'unavailable']) }}"
state: "{{states('sensor.upstairs_mean_temperature') | float(default=0) > states('sensor.hvac_target_temp_high') | float(default=(state_attr('climate.thermostat','temperature') |float(default=0))) - 1.0 }}"
attributes:
upstairs_mean_temp: "{{ states('sensor.upstairs_mean_temperature') | float(default=0)}}"
target_temp_high: "{{ states('sensor.hvac_target_temp_high') | float(default=0)}}"
target_temperature: "{{ state_attr('climate.thermostat','temperature') |float(default=0) }}"
# This is ON when the temperature outside is colder than the temp_low configured as part of the climate platform
- name: Too Cold Outside
unique_id: templatebinarysensor.too_cold_outside
icon: mdi:snowflake
device_class: cold
delay_on:
seconds: 15
delay_off:
seconds: 15
availability: "{{ (states('climate.thermostat') not in ['unkown', 'unavailable']) and (states('sensor.outdoors_mean_temperature') not in ['unkown', 'unavailable']) }}"
state: "{{states('sensor.outdoors_mean_temperature') | float(default=0) < states('sensor.hvac_target_temp_low') | float(default=0) - (states('input_number.cooler_outside_difference_trigger') | float(default=0) ) }}"
attributes:
outdoor_temp: "{{ states('sensor.outdoors_mean_temperature') | float(default=0)}}"
target_temp_low: "{{ state_attr('climate.thermostat','target_temp_low') | float(default=0)}}"
# This is ON when the temperature outside is colder than the temp_low configured as part of the climate platform
- name: Too Cold Outside
unique_id: templatebinarysensor.too_cold_outside
icon: mdi:snowflake
device_class: cold
delay_on:
seconds: 15
delay_off:
seconds: 15
availability: "{{ (states('climate.thermostat') not in ['unknown', 'unavailable']) and (states('sensor.outdoors_mean_temperature') not in ['unknown', 'unavailable']) }}"
state: "{{states('sensor.outdoors_mean_temperature') | float(default=0) < states('sensor.hvac_target_temp_low') | float(default=0) - (states('input_number.cooler_outside_difference_trigger') | float(default=0) ) }}"
attributes:
outdoor_temp: "{{ states('sensor.outdoors_mean_temperature') | float(default=0)}}"
target_temp_low: "{{ state_attr('climate.thermostat','target_temp_low') | float(default=0)}}"
# This is ON when the thermostat is hotter than the temp_high configured as part of the climate platform
- name: Too Cold Inside
unique_id: templatebinarysensor.too_cold_inside
icon: mdi:snowflake
device_class: cold
availability: "{{ (states('sensor.hvac_target_temp_low') not in ['unkown', 'unavailable']) and (states('sensor.upstairs_mean_temperature') not in ['unkown', 'unavailable']) }}"
state: "{{states('sensor.upstairs_mean_temperature') | float(default=0) < states('sensor.hvac_target_temp_low') | float(default=(state_attr('climate.thermostat','temperature') |float(default=0))) + 1.0 }}"
attributes:
upstairs_mean_temp: "{{ states('sensor.upstairs_mean_temperature') | float(default=0)}}"
target_temp_low: "{{ states('sensor.hvac_target_temp_low') | float(default=0)}}"
target_temperature: "{{ state_attr('climate.thermostat','temperature') |float(default=0) }}"
# This is ON when the thermostat is hotter than the temp_high configured as part of the climate platform
- name: Too Cold Inside
unique_id: templatebinarysensor.too_cold_inside
icon: mdi:snowflake
device_class: cold
availability: "{{ (states('sensor.hvac_target_temp_low') not in ['unknown', 'unavailable']) and (states('sensor.upstairs_mean_temperature') not in ['unknown', 'unavailable']) }}"
state: "{{states('sensor.upstairs_mean_temperature') | float(default=0) < states('sensor.hvac_target_temp_low') | float(default=(state_attr('climate.thermostat','temperature') |float(default=0))) + 1.0 }}"
attributes:
upstairs_mean_temp: "{{ states('sensor.upstairs_mean_temperature') | float(default=0)}}"
target_temp_low: "{{ states('sensor.hvac_target_temp_low') | float(default=0)}}"
target_temperature: "{{ state_attr('climate.thermostat','temperature') |float(default=0) }}"
# This is ON when either the garage door or the exterior garage door is open while the inner garage door is open
- name: Inner Garage Door Open to Outside
unique_id: templatebinarysensor.inner_garage_door_open_to_outside
device_class: door
availability: "{{ (states('binary_sensor.inner_garage_door') not in ['unkown', 'unavailable']) and (states('binary_sensor.garage_door') not in ['unkown', 'unavailable']) and (states('binary_sensor.outer_garage_door') not in ['unkown', 'unavailable']) }}"
state: >-
{% if is_state('binary_sensor.inner_garage_door', 'on') %}
{% if is_state('binary_sensor.garage_door', 'on') or is_state('binary_sensor.outer_garage_door', 'on') %}
{{'true'}}
# This is ON when either the garage door or the exterior garage door is open while the inner garage door is open
- name: Inner Garage Door Open to Outside
unique_id: templatebinarysensor.inner_garage_door_open_to_outside
device_class: door
availability: "{{ (states('binary_sensor.inner_garage_door') not in ['unknown', 'unavailable']) and (states('binary_sensor.garage_door') not in ['unknown', 'unavailable']) and (states('binary_sensor.outer_garage_door') not in ['unknown', 'unavailable']) }}"
state: >-
{% if is_state('binary_sensor.inner_garage_door', 'on') %}
{% if is_state('binary_sensor.garage_door', 'on') or is_state('binary_sensor.outer_garage_door', 'on') %}
{{'true'}}
{% else %}
{{'false'}}
{% endif %}
{% else %}
{{'false'}}
{% endif %}
{% else %}
{{'false'}}
{% endif %}
# This is ON when an exterior door or window has been left open for more than 10 minutes
- name: Something Open
unique_id: templatebinarysensor.something_open
icon: mdi:door-open
device_class: opening
state: "{{ iif(is_state('binary_sensor.patio_door_contact', 'on') or is_state('group.my_exterior_windows', 'on') or is_state('binary_sensor.front_door_contact', 'on') or is_state('binary_sensor.inner_garage_door_open_to_outside', 'on')) }}"
# This is ON when an exterior door or window has been left open for more than 10 minutes
- name: Something Open
unique_id: templatebinarysensor.something_open
icon: mdi:door-open
device_class: opening
state: "{{ iif(is_state('binary_sensor.patio_door_contact', 'on') or is_state('group.my_exterior_windows', 'on') or is_state('binary_sensor.front_door_contact', 'on') or is_state('binary_sensor.inner_garage_door_open_to_outside', 'on')) }}"
- name: Something Open Too Warm or Cold
unique_id: templatebinarysensor.something_open_too_warm_or_cold
device_class: problem
delay_on:
minutes: 2
state: >-
{% if is_state('binary_sensor.something_open','on') %}
{% if is_state('binary_sensor.too_cold_inside','on') and is_state('binary_sensor.cooler_outside', 'on') and is_state('binary_sensor.getting_warmer_outside', 'off') %}
{{'true'}}
{% elif is_state('binary_sensor.too_hot_inside','on') and is_state('binary_sensor.warmer_outside', 'on') and is_state('binary_sensor.getting_cooler_outside', 'off') %}
{{'true'}}
- name: Something Open Too Warm or Cold
unique_id: templatebinarysensor.something_open_too_warm_or_cold
device_class: problem
delay_on:
minutes: 2
state: >-
{% if is_state('binary_sensor.something_open','on') %}
{% if is_state('binary_sensor.too_cold_inside','on') and is_state('binary_sensor.cooler_outside', 'on') and is_state('binary_sensor.getting_warmer_outside', 'off') %}
{{'true'}}
{% elif is_state('binary_sensor.too_hot_inside','on') and is_state('binary_sensor.warmer_outside', 'on') and is_state('binary_sensor.getting_cooler_outside', 'off') %}
{{'true'}}
{% else %}
{{'false'}}
{% endif %}
{% else %}
{{'false'}}
{% endif %}
{% else %}
{{'false'}}
{% endif %}
attributes:
outdoor_temp: "{{ states('sensor.outdoors_mean_temperature') | float(default=0)}}"
upstairs_mean_temp: "{{ states('sensor.upstairs_mean_temperature') | float(default=0)}}"
target_temp_high: "{{ state_attr('climate.thermostat','target_temp_high') | float(default=0)}}"
target_temp_low: "{{ state_attr('climate.thermostat','target_temp_low') | float(default=0)}}"
getting_warmer: "{{ states('binary_sensor.getting_warmer_outside') }}"
too_hot_inside: "{{ states('binary_sensor.too_hot_inside') }}"
warmer_outside: "{{ states('binary_sensor.warmer_outside') }}"
too_hot_outside: "{{ states('binary_sensor.too_hot_outside') }}"
getting_cooler: "{{ states('binary_sensor.getting_cooler_outside') }}"
too_cold_inside: "{{ states('binary_sensor.too_cold_inside') }}"
cooler_outside: "{{ states('binary_sensor.cooler_outside') }}"
too_cold_outside: "{{ states('binary_sensor.too_cold_outside') }}"
attributes:
outdoor_temp: "{{ states('sensor.outdoors_mean_temperature') | float(default=0)}}"
upstairs_mean_temp: "{{ states('sensor.upstairs_mean_temperature') | float(default=0)}}"
target_temp_high: "{{ state_attr('climate.thermostat','target_temp_high') | float(default=0)}}"
target_temp_low: "{{ state_attr('climate.thermostat','target_temp_low') | float(default=0)}}"
getting_warmer: "{{ states('binary_sensor.getting_warmer_outside') }}"
too_hot_inside: "{{ states('binary_sensor.too_hot_inside') }}"
warmer_outside: "{{ states('binary_sensor.warmer_outside') }}"
too_hot_outside: "{{ states('binary_sensor.too_hot_outside') }}"
getting_cooler: "{{ states('binary_sensor.getting_cooler_outside') }}"
too_cold_inside: "{{ states('binary_sensor.too_cold_inside') }}"
cooler_outside: "{{ states('binary_sensor.cooler_outside') }}"
too_cold_outside: "{{ states('binary_sensor.too_cold_outside') }}"
- name: Need to Open Something Too Warm or Cold
unique_id: templatebinarysensor.need_to_open_something_too_warm_or_cold
device_class: problem
# delay_on:
# minutes: 5
state: >-
{% if is_state('binary_sensor.something_open','off') %}
{% if is_state('binary_sensor.too_cold_inside','off') and is_state('binary_sensor.too_hot_inside','off') and is_state('binary_sensor.too_cold_outside','off') and is_state('binary_sensor.too_hot_outside','off') %}
{{'true'}}
- name: Need to Open Something Too Warm or Cold
unique_id: templatebinarysensor.need_to_open_something_too_warm_or_cold
device_class: problem
# delay_on:
# minutes: 5
state: >-
{% if is_state('binary_sensor.something_open','off') %}
{% if is_state('binary_sensor.too_cold_inside','off') and is_state('binary_sensor.too_hot_inside','off') and is_state('binary_sensor.too_cold_outside','off') and is_state('binary_sensor.too_hot_outside','off') %}
{{'true'}}
{% else %}
{{'false'}}
{% endif %}
{% else %}
{{'false'}}
{% endif %}
{% else %}
{{'false'}}
{% endif %}
attributes:
outdoor_temp: "{{ states('sensor.outdoors_mean_temperature') | float(default=0)}}"
upstairs_mean_temp: "{{ states('sensor.upstairs_mean_temperature') | float(default=0)}}"
target_temp_high: "{{ state_attr('climate.thermostat','target_temp_high') | float(default=0)}}"
target_temp_low: "{{ state_attr('climate.thermostat','target_temp_low') | float(default=0)}}"
getting_warmer: "{{ states('binary_sensor.getting_warmer_outside') }}"
too_hot_inside: "{{ states('binary_sensor.too_hot_inside') }}"
warmer_outside: "{{ states('binary_sensor.warmer_outside') }}"
too_hot_outside: "{{ states('binary_sensor.too_hot_outside') }}"
getting_cooler: "{{ states('binary_sensor.getting_cooler_outside') }}"
too_cold_inside: "{{ states('binary_sensor.too_cold_inside') }}"
cooler_outside: "{{ states('binary_sensor.cooler_outside') }}"
too_cold_outside: "{{ states('binary_sensor.too_cold_outside') }}"
attributes:
outdoor_temp: "{{ states('sensor.outdoors_mean_temperature') | float(default=0)}}"
upstairs_mean_temp: "{{ states('sensor.upstairs_mean_temperature') | float(default=0)}}"
target_temp_high: "{{ state_attr('climate.thermostat','target_temp_high') | float(default=0)}}"
target_temp_low: "{{ state_attr('climate.thermostat','target_temp_low') | float(default=0)}}"
getting_warmer: "{{ states('binary_sensor.getting_warmer_outside') }}"
too_hot_inside: "{{ states('binary_sensor.too_hot_inside') }}"
warmer_outside: "{{ states('binary_sensor.warmer_outside') }}"
too_hot_outside: "{{ states('binary_sensor.too_hot_outside') }}"
getting_cooler: "{{ states('binary_sensor.getting_cooler_outside') }}"
too_cold_inside: "{{ states('binary_sensor.too_cold_inside') }}"
cooler_outside: "{{ states('binary_sensor.cooler_outside') }}"
too_cold_outside: "{{ states('binary_sensor.too_cold_outside') }}"
- sensor:
- name: Outdoor Temperature Gradient
unique_id: templatesensor.outdoor_temperature_gradient
state: "{{ (state_attr('binary_sensor.getting_warmer_outside','gradient') | float(default=0) * 10000) | round(2)}}"
availability: "{{ (states('binary_sensor.getting_warmer_outside') not in ['unkown', 'unavailable']) }}"
icon: mdi:sun-thermometer
state_class: measurement
unit_of_measurement: p
attributes:
outdoor_temp: "{{ states('sensor.outdoors_mean_temperature') | float(default=0)}}"
target_temp_high: "{{ state_attr('climate.thermostat','target_temp_high') | float(default=0)}}"
target_temp_low: "{{ state_attr('climate.thermostat','target_temp_low') | float(default=0)}}"
getting_warmer: "{{ states('binary_sensor.getting_warmer_outside') }}"
warmer_outside: "{{ states('binary_sensor.warmer_outside') }}"
too_hot_outside: "{{ states('binary_sensor.too_hot_outside') }}"
getting_cooler: "{{ states('binary_sensor.getting_cooler_outside') }}"
cooler_outside: "{{ states('binary_sensor.cooler_outside') }}"
too_cold_outside: "{{ states('binary_sensor.too_cold_outside') }}"
- name: Outdoor Temperature Gradient
unique_id: templatesensor.outdoor_temperature_gradient
state: "{{ (state_attr('binary_sensor.getting_warmer_outside','gradient') | float(default=0) * 10000) | round(2)}}"
availability: "{{ (states('binary_sensor.getting_warmer_outside') not in ['unknown', 'unavailable']) }}"
icon: mdi:sun-thermometer
state_class: measurement
unit_of_measurement: p
attributes:
outdoor_temp: "{{ states('sensor.outdoors_mean_temperature') | float(default=0)}}"
target_temp_high: "{{ state_attr('climate.thermostat','target_temp_high') | float(default=0)}}"
target_temp_low: "{{ state_attr('climate.thermostat','target_temp_low') | float(default=0)}}"
getting_warmer: "{{ states('binary_sensor.getting_warmer_outside') }}"
warmer_outside: "{{ states('binary_sensor.warmer_outside') }}"
too_hot_outside: "{{ states('binary_sensor.too_hot_outside') }}"
getting_cooler: "{{ states('binary_sensor.getting_cooler_outside') }}"
cooler_outside: "{{ states('binary_sensor.cooler_outside') }}"
too_cold_outside: "{{ states('binary_sensor.too_cold_outside') }}"
- name: HVAC Target Temp Low
unique_id: templatesensor_hvac_target_temp_low
state: "{{state_attr('climate.thermostat','target_temp_low')}}"
availability: "{{ (states('climate.thermostat') not in ['unkown', 'unavailable']) }}"
device_class: temperature
unit_of_measurement: "°F"
attributes:
hvac_action: "{{state_attr('climate.thermostat','hvac_action')}}"
preset_mode: "{{state_attr('climate.thermostat','preset_mode')}}"
climate_mode_mode: "{{state_attr('climate.thermostat','climate_mode')}}"
- name: HVAC Target Temp Low
unique_id: templatesensor_hvac_target_temp_low
state: "{{state_attr('climate.thermostat','target_temp_low')}}"
availability: "{{ (states('climate.thermostat') not in ['unknown', 'unavailable']) }}"
device_class: temperature
unit_of_measurement: "°F"
attributes:
hvac_action: "{{state_attr('climate.thermostat','hvac_action')}}"
preset_mode: "{{state_attr('climate.thermostat','preset_mode')}}"
climate_mode_mode: "{{state_attr('climate.thermostat','climate_mode')}}"
- name: HVAC Target Temp High
unique_id: templatesensor_hvac_target_temp_high
state: "{{state_attr('climate.thermostat','target_temp_high')}}"
availability: "{{ (states('climate.thermostat') not in ['unkown', 'unavailable']) }}"
device_class: temperature
unit_of_measurement: "°F"
attributes:
hvac_action: "{{state_attr('climate.thermostat','hvac_action')}}"
preset_mode: "{{state_attr('climate.thermostat','preset_mode')}}"
climate_mode_mode: "{{state_attr('climate.thermostat','climate_mode')}}"
- name: HVAC Target Temp High
unique_id: templatesensor_hvac_target_temp_high
state: "{{state_attr('climate.thermostat','target_temp_high')}}"
availability: "{{ (states('climate.thermostat') not in ['unknown', 'unavailable']) }}"
device_class: temperature
unit_of_measurement: "°F"
attributes:
hvac_action: "{{state_attr('climate.thermostat','hvac_action')}}"
preset_mode: "{{state_attr('climate.thermostat','preset_mode')}}"
climate_mode_mode: "{{state_attr('climate.thermostat','climate_mode')}}"
- name: HVAC Target Temperature
unique_id: templatesensor_hvac_target_temperature
state: "{{state_attr('climate.thermostat','temperature')}}"
availability: "{{ (states('climate.thermostat') not in ['unkown', 'unavailable']) }}"
device_class: temperature
unit_of_measurement: "°F"
attributes:
hvac_action: "{{state_attr('climate.thermostat','hvac_action')}}"
preset_mode: "{{state_attr('climate.thermostat','preset_mode')}}"
climate_mode_mode: "{{state_attr('climate.thermostat','climate_mode')}}"
- name: HVAC Target Temperature
unique_id: templatesensor_hvac_target_temperature
state: "{{state_attr('climate.thermostat','temperature')}}"
availability: "{{ (states('climate.thermostat') not in ['unknown', 'unavailable']) }}"
device_class: temperature
unit_of_measurement: "°F"
attributes:
hvac_action: "{{state_attr('climate.thermostat','hvac_action')}}"
preset_mode: "{{state_attr('climate.thermostat','preset_mode')}}"
climate_mode_mode: "{{state_attr('climate.thermostat','climate_mode')}}"
- name: HVAC Current Temperature
unique_id: templatesensor_hvac_current_temperature
icon: mdi:fan-clock
state: "{{state_attr('climate.thermostat','current_temperature')}}"
availability: "{{ (states('climate.thermostat') not in ['unkown', 'unavailable']) }}"
device_class: temperature
unit_of_measurement: "°F"
attributes:
hvac_action: "{{state_attr('climate.thermostat','hvac_action')}}"
preset_mode: "{{state_attr('climate.thermostat','preset_mode')}}"
climate_mode_mode: "{{state_attr('climate.thermostat','climate_mode')}}"
- name: HVAC Current Temperature
unique_id: templatesensor_hvac_current_temperature
icon: mdi:fan-clock
state: "{{state_attr('climate.thermostat','current_temperature')}}"
availability: "{{ (states('climate.thermostat') not in ['unknown', 'unavailable']) }}"
device_class: temperature
unit_of_measurement: "°F"
attributes:
hvac_action: "{{state_attr('climate.thermostat','hvac_action')}}"
preset_mode: "{{state_attr('climate.thermostat','preset_mode')}}"
climate_mode_mode: "{{state_attr('climate.thermostat','climate_mode')}}"
- name: HVAC Fan Min On Time
unique_id: templatesensor_hvac_fan_min_on_time
state: "{{state_attr('climate.thermostat','fan_min_on_time')}}"
availability: "{{ (states('climate.thermostat') not in ['unkown', 'unavailable']) }}"
device_class: duration
unit_of_measurement: min
- name: HVAC Fan Min On Time
unique_id: templatesensor_hvac_fan_min_on_time
state: "{{state_attr('climate.thermostat','fan_min_on_time')}}"
availability: "{{ (states('climate.thermostat') not in ['unknown', 'unavailable']) }}"
device_class: duration
unit_of_measurement: min
+160 -161
View File
@@ -43,183 +43,182 @@ utility_meter:
template:
- sensor:
- unique_id: templatebinarysensor.hourly_energy_non_summer_cost
name: Hourly Energy Non-Summer Total Cost
device_class: monetary
state_class: total
unit_of_measurement: "$"
icon: mdi:currency-usd
availability: "{{ states('sensor.hourly_energy_non_summer') not in ['unknown', 'unavailable'] and states('sensor.nonsummer_per_kwh') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.hourly_energy_non_summer')|float(default=0) * states('sensor.nonsummer_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.hourly_energy_non_summer_cost
name: Hourly Energy Non-Summer Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.hourly_energy_non_summer') not in ['unkown', 'unavailable'] and states('sensor.nonsummer_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.hourly_energy_non_summer')|float(default=0) * states('sensor.nonsummer_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.hourly_energy_summer_peak_cost
name: Hourly Energy Summer Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: "$"
icon: mdi:currency-usd
availability: "{{ states('sensor.hourly_energy_summer_peak') not in ['unknown', 'unavailable'] and states('sensor.summerpeak_per_kwh') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.hourly_energy_summer_peak')|float(default=0) * states('sensor.summerpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.hourly_energy_summer_peak_cost
name: Hourly Energy Summer Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.hourly_energy_summer_peak') not in ['unkown', 'unavailable'] and states('sensor.summerpeak_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.hourly_energy_summer_peak')|float(default=0) * states('sensor.summerpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.hourly_energy_summer_non_peak_cost
name: Hourly Energy Summer Non-Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: "$"
icon: mdi:currency-usd
availability: "{{ states('sensor.hourly_energy_summer_non_peak') not in ['unknown', 'unavailable'] and states('sensor.summernonpeak_per_kwh') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.hourly_energy_summer_non_peak')|float(default=0) * states('sensor.summernonpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.hourly_energy_summer_non_peak_cost
name: Hourly Energy Summer Non-Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.hourly_energy_summer_non_peak') not in ['unkown', 'unavailable'] and states('sensor.summernonpeak_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.hourly_energy_summer_non_peak')|float(default=0) * states('sensor.summernonpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.daily_energy_non_summer_cost
name: Daily Energy Non-Summer Total Cost
device_class: monetary
state_class: total
unit_of_measurement: "$"
icon: mdi:currency-usd
availability: "{{ states('sensor.daily_energy_non_summer') not in ['unknown', 'unavailable'] and states('sensor.nonsummer_per_kwh') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.daily_energy_non_summer')|float(default=0) * states('sensor.nonsummer_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.daily_energy_non_summer_cost
name: Daily Energy Non-Summer Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.daily_energy_non_summer') not in ['unkown', 'unavailable'] and states('sensor.nonsummer_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.daily_energy_non_summer')|float(default=0) * states('sensor.nonsummer_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.daily_energy_summer_peak_cost
name: Daily Energy Summer Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: "$"
icon: mdi:currency-usd
availability: "{{ states('sensor.daily_energy_summer_peak') not in ['unknown', 'unavailable'] and states('sensor.summerpeak_per_kwh') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.daily_energy_summer_peak')|float(default=0) * states('sensor.summerpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.daily_energy_summer_peak_cost
name: Daily Energy Summer Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.daily_energy_summer_peak') not in ['unkown', 'unavailable'] and states('sensor.summerpeak_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.daily_energy_summer_peak')|float(default=0) * states('sensor.summerpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.daily_energy_summer_non_peak_cost
name: Daily Energy Summer Non-Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: "$"
icon: mdi:currency-usd
availability: "{{ states('sensor.daily_energy_summer_non_peak') not in ['unknown', 'unavailable'] and states('sensor.summernonpeak_per_kwh') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.daily_energy_summer_non_peak')|float(default=0) * states('sensor.summernonpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.daily_energy_summer_non_peak_cost
name: Daily Energy Summer Non-Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.daily_energy_summer_non_peak') not in ['unkown', 'unavailable'] and states('sensor.summernonpeak_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.daily_energy_summer_non_peak')|float(default=0) * states('sensor.summernonpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.weekly_energy_non_summer_cost
name: Weekly Energy Non-Summer Total Cost
device_class: monetary
state_class: total
unit_of_measurement: "$"
icon: mdi:currency-usd
availability: "{{ states('sensor.weekly_energy_non_summer') not in ['unknown', 'unavailable'] and states('sensor.nonsummer_per_kwh') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.weekly_energy_non_summer')|float(default=0) * states('sensor.nonsummer_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.weekly_energy_non_summer_cost
name: Weekly Energy Non-Summer Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.weekly_energy_non_summer') not in ['unkown', 'unavailable'] and states('sensor.nonsummer_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.weekly_energy_non_summer')|float(default=0) * states('sensor.nonsummer_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.weekly_energy_summer_peak_cost
name: Weekly Energy Summer Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: "$"
icon: mdi:currency-usd
availability: "{{ states('sensor.weekly_energy_summer_peak') not in ['unknown', 'unavailable'] and states('sensor.summerpeak_per_kwh') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.weekly_energy_summer_peak')|float(default=0) * states('sensor.summerpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.weekly_energy_summer_peak_cost
name: Weekly Energy Summer Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.weekly_energy_summer_peak') not in ['unkown', 'unavailable'] and states('sensor.summerpeak_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.weekly_energy_summer_peak')|float(default=0) * states('sensor.summerpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.weekly_energy_summer_non_peak_cost
name: Weekly Energy Summer Non-Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: "$"
icon: mdi:currency-usd
availability: "{{ states('sensor.weekly_energy_summer_non_peak') not in ['unknown', 'unavailable'] and states('sensor.summernonpeak_per_kwh') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.weekly_energy_summer_non_peak')|float(default=0) * states('sensor.summernonpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.weekly_energy_summer_non_peak_cost
name: Weekly Energy Summer Non-Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.weekly_energy_summer_non_peak') not in ['unkown', 'unavailable'] and states('sensor.summernonpeak_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.weekly_energy_summer_non_peak')|float(default=0) * states('sensor.summernonpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.monthly_energy_non_summer_cost
name: Monthly Energy Non-Summer Total Cost
device_class: monetary
state_class: total
unit_of_measurement: "$"
icon: mdi:currency-usd
availability: "{{ states('sensor.monthly_energy_non_summer') not in ['unknown', 'unavailable'] and states('sensor.nonsummer_per_kwh') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.monthly_energy_non_summer')|float(default=0) * states('sensor.nonsummer_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.monthly_energy_non_summer_cost
name: Monthly Energy Non-Summer Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.monthly_energy_non_summer') not in ['unkown', 'unavailable'] and states('sensor.nonsummer_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.monthly_energy_non_summer')|float(default=0) * states('sensor.nonsummer_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.monthly_energy_summer_peak_cost
name: Monthly Energy Summer Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: "$"
icon: mdi:currency-usd
availability: "{{ states('sensor.monthly_energy_summer_peak') not in ['unknown', 'unavailable'] and states('sensor.summerpeak_per_kwh') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.monthly_energy_summer_peak')|float(default=0) * states('sensor.summerpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.monthly_energy_summer_peak_cost
name: Monthly Energy Summer Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.monthly_energy_summer_peak') not in ['unkown', 'unavailable'] and states('sensor.summerpeak_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.monthly_energy_summer_peak')|float(default=0) * states('sensor.summerpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.monthly_energy_summer_non_peak_cost
name: Monthly Energy Summer Non-Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: "$"
icon: mdi:currency-usd
availability: "{{ states('sensor.monthly_energy_summer_non_peak') not in ['unknown', 'unavailable'] and states('sensor.summernonpeak_per_kwh') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.monthly_energy_summer_non_peak')|float(default=0) * states('sensor.summernonpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.monthly_energy_summer_non_peak_cost
name: Monthly Energy Summer Non-Peak Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.monthly_energy_summer_non_peak') not in ['unkown', 'unavailable'] and states('sensor.summernonpeak_per_kwh') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.monthly_energy_summer_non_peak')|float(default=0) * states('sensor.summernonpeak_per_kwh')|float(default=0) }}"
- unique_id: templatebinarysensor.hourly_energy_total_cost
name: Hourly Energy Total Cost
device_class: monetary
state_class: total
unit_of_measurement: "$"
icon: mdi:currency-usd
availability: "{{ states('sensor.hourly_energy_non_summer_total_cost') not in ['unknown', 'unavailable'] and states('sensor.hourly_energy_summer_non_peak_total_cost') not in ['unknown', 'unavailable'] and states('sensor.hourly_energy_summer_peak_total_cost') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.hourly_energy_non_summer_total_cost')|float(default=0) + states('sensor.hourly_energy_summer_non_peak_total_cost')|float(default=0) + states('sensor.hourly_energy_summer_peak_total_cost')|float(default=0) }}"
- unique_id: templatebinarysensor.hourly_energy_total_cost
name: Hourly Energy Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.hourly_energy_non_summer_total_cost') not in ['unkown', 'unavailable'] and states('sensor.hourly_energy_summer_non_peak_total_cost') not in ['unkown', 'unavailable'] and states('sensor.hourly_energy_summer_peak_total_cost') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.hourly_energy_non_summer_total_cost')|float(default=0) + states('sensor.hourly_energy_summer_non_peak_total_cost')|float(default=0) + states('sensor.hourly_energy_summer_peak_total_cost')|float(default=0) }}"
- unique_id: templatebinarysensor.daily_energy_total_cost
name: Daily Energy Total Cost
device_class: monetary
state_class: total
unit_of_measurement: "$"
icon: mdi:currency-usd
availability: "{{ states('sensor.daily_energy_non_summer_total_cost') not in ['unknown', 'unavailable'] and states('sensor.daily_energy_summer_non_peak_total_cost') not in ['unknown', 'unavailable'] and states('sensor.daily_energy_summer_peak_total_cost') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.daily_energy_non_summer_total_cost')|float(default=0) + states('sensor.daily_energy_summer_non_peak_total_cost')|float(default=0) + states('sensor.daily_energy_summer_peak_total_cost')|float(default=0) }}"
- unique_id: templatebinarysensor.daily_energy_total_cost
name: Daily Energy Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.daily_energy_non_summer_total_cost') not in ['unkown', 'unavailable'] and states('sensor.daily_energy_summer_non_peak_total_cost') not in ['unkown', 'unavailable'] and states('sensor.daily_energy_summer_peak_total_cost') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.daily_energy_non_summer_total_cost')|float(default=0) + states('sensor.daily_energy_summer_non_peak_total_cost')|float(default=0) + states('sensor.daily_energy_summer_peak_total_cost')|float(default=0) }}"
- unique_id: templatebinarysensor.weekly_energy_total_cost
name: Weekly Energy Total Cost
device_class: monetary
state_class: total
unit_of_measurement: "$"
icon: mdi:currency-usd
availability: "{{ states('sensor.weekly_energy_non_summer_total_cost') not in ['unknown', 'unavailable'] and states('sensor.weekly_energy_summer_non_peak_total_cost') not in ['unknown', 'unavailable'] and states('sensor.weekly_energy_summer_peak_total_cost') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.weekly_energy_non_summer_total_cost')|float(default=0) + states('sensor.weekly_energy_summer_non_peak_total_cost')|float(default=0) + states('sensor.weekly_energy_summer_peak_total_cost')|float(default=0) }}"
- unique_id: templatebinarysensor.weekly_energy_total_cost
name: Weekly Energy Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.weekly_energy_non_summer_total_cost') not in ['unkown', 'unavailable'] and states('sensor.weekly_energy_summer_non_peak_total_cost') not in ['unkown', 'unavailable'] and states('sensor.weekly_energy_summer_peak_total_cost') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.weekly_energy_non_summer_total_cost')|float(default=0) + states('sensor.weekly_energy_summer_non_peak_total_cost')|float(default=0) + states('sensor.weekly_energy_summer_peak_total_cost')|float(default=0) }}"
- unique_id: templatebinarysensor.monthly_energy_total_cost
name: Monthly Energy Total Cost
device_class: monetary
state_class: total
unit_of_measurement: "$"
icon: mdi:currency-usd
availability: "{{ states('sensor.monthly_energy_non_summer_total_cost') not in ['unknown', 'unavailable'] and states('sensor.monthly_energy_summer_non_peak_total_cost') not in ['unknown', 'unavailable'] and states('sensor.monthly_energy_summer_peak_total_cost') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.monthly_energy_non_summer_total_cost')|float(default=0) + states('sensor.monthly_energy_summer_non_peak_total_cost')|float(default=0) + states('sensor.monthly_energy_summer_peak_total_cost')|float(default=0) }}"
- unique_id: templatebinarysensor.monthly_energy_total_cost
name: Monthly Energy Total Cost
device_class: monetary
state_class: total
unit_of_measurement: '$'
icon: mdi:currency-usd
availability: "{{ states('sensor.monthly_energy_non_summer_total_cost') not in ['unkown', 'unavailable'] and states('sensor.monthly_energy_summer_non_peak_total_cost') not in ['unkown', 'unavailable'] and states('sensor.monthly_energy_summer_peak_total_cost') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.monthly_energy_non_summer_total_cost')|float(default=0) + states('sensor.monthly_energy_summer_non_peak_total_cost')|float(default=0) + states('sensor.monthly_energy_summer_peak_total_cost')|float(default=0) }}"
- unique_id: templatebinarysensor.hourly_energy_total
name: Hourly Energy Total
device_class: energy
state_class: total
unit_of_measurement: kWh
icon: mdi:flash
availability: "{{ states('sensor.hourly_energy_non_summer') not in ['unknown', 'unavailable'] and states('sensor.hourly_energy_summer_non_peak') not in ['unknown', 'unavailable'] and states('sensor.hourly_energy_summer_peak') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.hourly_energy_non_summer')|float(default=0) + states('sensor.hourly_energy_summer_non_peak')|float(default=0) + states('sensor.hourly_energy_summer_peak')|float(default=0) }}"
- unique_id: templatebinarysensor.hourly_energy_total
name: Hourly Energy Total
device_class: energy
state_class: total
unit_of_measurement: kWh
icon: mdi:flash
availability: "{{ states('sensor.hourly_energy_non_summer') not in ['unkown', 'unavailable'] and states('sensor.hourly_energy_summer_non_peak') not in ['unkown', 'unavailable'] and states('sensor.hourly_energy_summer_peak') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.hourly_energy_non_summer')|float(default=0) + states('sensor.hourly_energy_summer_non_peak')|float(default=0) + states('sensor.hourly_energy_summer_peak')|float(default=0) }}"
- unique_id: templatebinarysensor.daily_energy_total
name: Daily Energy Total
device_class: energy
state_class: total
unit_of_measurement: kWh
icon: mdi:flash
availability: "{{ states('sensor.daily_energy_non_summer') not in ['unknown', 'unavailable'] and states('sensor.daily_energy_summer_non_peak') not in ['unknown', 'unavailable'] and states('sensor.daily_energy_summer_peak') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.daily_energy_non_summer')|float(default=0) + states('sensor.daily_energy_summer_non_peak')|float(default=0) + states('sensor.daily_energy_summer_peak')|float(default=0) }}"
- unique_id: templatebinarysensor.daily_energy_total
name: Daily Energy Total
device_class: energy
state_class: total
unit_of_measurement: kWh
icon: mdi:flash
availability: "{{ states('sensor.daily_energy_non_summer') not in ['unkown', 'unavailable'] and states('sensor.daily_energy_summer_non_peak') not in ['unkown', 'unavailable'] and states('sensor.daily_energy_summer_peak') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.daily_energy_non_summer')|float(default=0) + states('sensor.daily_energy_summer_non_peak')|float(default=0) + states('sensor.daily_energy_summer_peak')|float(default=0) }}"
- unique_id: templatebinarysensor.weekly_energy_total
name: Weekly Energy Total
device_class: energy
state_class: total
unit_of_measurement: kWh
icon: mdi:flash
availability: "{{ states('sensor.weekly_energy_non_summer') not in ['unknown', 'unavailable'] and states('sensor.weekly_energy_summer_non_peak') not in ['unknown', 'unavailable'] and states('sensor.weekly_energy_summer_peak') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.weekly_energy_non_summer')|float(default=0) + states('sensor.weekly_energy_summer_non_peak')|float(default=0) + states('sensor.weekly_energy_summer_peak')|float(default=0) }}"
- unique_id: templatebinarysensor.weekly_energy_total
name: Weekly Energy Total
device_class: energy
state_class: total
unit_of_measurement: kWh
icon: mdi:flash
availability: "{{ states('sensor.weekly_energy_non_summer') not in ['unkown', 'unavailable'] and states('sensor.weekly_energy_summer_non_peak') not in ['unkown', 'unavailable'] and states('sensor.weekly_energy_summer_peak') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.weekly_energy_non_summer')|float(default=0) + states('sensor.weekly_energy_summer_non_peak')|float(default=0) + states('sensor.weekly_energy_summer_peak')|float(default=0) }}"
- unique_id: templatebinarysensor.monthly_energy_total
name: Monthly Energy Total
device_class: energy
state_class: total
unit_of_measurement: kWh
icon: mdi:flash
availability: "{{ states('sensor.monthly_energy_non_summer') not in ['unkown', 'unavailable'] and states('sensor.monthly_energy_summer_non_peak') not in ['unkown', 'unavailable'] and states('sensor.monthly_energy_summer_peak') not in ['unkown', 'unavailable'] }}"
state: "{{ states('sensor.monthly_energy_non_summer')|float(default=0) + states('sensor.monthly_energy_summer_non_peak')|float(default=0) + states('sensor.monthly_energy_summer_peak')|float(default=0) }}"
- unique_id: templatebinarysensor.monthly_energy_total
name: Monthly Energy Total
device_class: energy
state_class: total
unit_of_measurement: kWh
icon: mdi:flash
availability: "{{ states('sensor.monthly_energy_non_summer') not in ['unknown', 'unavailable'] and states('sensor.monthly_energy_summer_non_peak') not in ['unknown', 'unavailable'] and states('sensor.monthly_energy_summer_peak') not in ['unknown', 'unavailable'] }}"
state: "{{ states('sensor.monthly_energy_non_summer')|float(default=0) + states('sensor.monthly_energy_summer_non_peak')|float(default=0) + states('sensor.monthly_energy_summer_peak')|float(default=0) }}"
+2 -2
View File
@@ -34,14 +34,14 @@ cards:
- type: weather-forecast
entity: weather.openweathermap_hourly
entity: weather.forecast_home
name: Next 5 Hours
show_current: true
show_forecast: true
forecast_type: hourly
- type: weather-forecast
entity: weather.openweathermap_daily
entity: weather.forecast_home
name: Next 5 Days
show_current: true
show_forecast: true
+1 -1
View File
@@ -201,7 +201,7 @@ cards:
Good morning, {{user}}!
{%endif%}
secondary: |-
Today should be {{states('sensor.openweathermap_daily_forecast_condition')}}, with a high of {{states('sensor.openweathermap_daily_forecast_temperature')|float(0)|round(0)}} and a low of {{states('sensor.openweathermap_daily_forecast_temperature_low')|float(0)|round(0)}}.
Today should be {{states('weather.forecast_home')}}, with a high of {{states('sensor.temphigh_today')|float(0)|round(0)}} and a low of {{states('sensor.templow_today')|float(0)|round(0)}}.
- type: vertical-stack
cards:
- type: horizontal-stack
+10 -15
View File
@@ -1,17 +1,12 @@
type: vertical-stack
cards:
- type: conditional
conditions:
- entity: binary_sensor.precipitation_likely
state: 'on'
card:
type: iframe
url: >-
https://embed.windy.com/embed2.html?lat=42.534&lon=-85.842&detailLat=42.439&detailLon=-85.838&width=650&height=450&zoom=9&level=surface&overlay=radar&product=radar&menu=&message=&marker=&calendar=now&pressure=&type=map&location=coordinates&detail=&metricWind=default&metricTemp=default&radarRange=-1
aspect_ratio: 75%
# show_state: false
# show_name: false
# camera_view: live
# type: picture-entity
# entity: camera.wunderground_radar
# camera_image: camera.wunderground_radar
- type: iframe
url: >-
https://embed.windy.com/embed2.html?lat=42.534&lon=-85.842&detailLat=42.439&detailLon=-85.838&width=650&height=450&zoom=9&level=surface&overlay=radar&product=radar&menu=&message=&marker=&calendar=now&pressure=&type=map&location=coordinates&detail=&metricWind=default&metricTemp=default&radarRange=-1
aspect_ratio: 75%
# show_state: false
# show_name: false
# camera_view: live
# type: picture-entity
# entity: camera.wunderground_radar
# camera_image: camera.wunderground_radar
+13 -13
View File
@@ -9,7 +9,7 @@ badges:
alignment: center
chips:
- type: weather
entity: weather.openweathermap_daily
entity: weather.forecast_home
show_conditions: true
show_temperature: true
tap_action:
@@ -774,16 +774,16 @@ badges:
- "extremely_uncomfortable"
- "severely_high"
- type: entity-filter
entities:
- entity: sensor.openweathermap_hourly_forecast_precipitation_probability
name: Precip %
tap_action:
action: navigate
navigation_path: /details-yml/weather
state_filter:
- operator: ">"
value: 30
# - type: entity-filter
# entities:
# - entity: sensor.openweathermap_hourly_forecast_precipitation_probability
# name: Precip %
# tap_action:
# action: navigate
# navigation_path: /details-yml/weather
# state_filter:
# - operator: ">"
# value: 30
- type: entity-filter
entities:
@@ -1524,13 +1524,13 @@ cards:
camera_entity: camera.mail_usps_camera
- type: custom:hourly-weather
entity: weather.openweathermap_hourly
entity: weather.forecast_home
icons: true
name: ""
hide_hours: false
- type: custom:clock-weather-card
entity: weather.openweathermap_daily
entity: weather.forecast_home
weather_icon_type: fill
time_format: 12
date_pattern: DDDD