mirror of
https://github.com/CeeWeasel/fresh-home.git
synced 2026-08-09 18:40:14 -04:00
renames, fixes , and other fun schtuff
This commit is contained in:
+1
-1
@@ -38,7 +38,7 @@ media/
|
||||
custom_components/
|
||||
custom_logs/
|
||||
snapshots/
|
||||
rtl_433*/
|
||||
rtl_433/
|
||||
tts/
|
||||
/lovelace/private
|
||||
model_cache/
|
||||
|
||||
@@ -5,7 +5,7 @@ mode: restart
|
||||
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
to: "on"
|
||||
for: "00:10:00"
|
||||
- platform: state
|
||||
@@ -22,14 +22,14 @@ condition:
|
||||
state: "on"
|
||||
- condition: state
|
||||
entity_id:
|
||||
- input_boolean.white_bed_occupied
|
||||
- binary_sensor.white_bed_occupied
|
||||
state: "on"
|
||||
for: "00:10:00"
|
||||
- condition: state
|
||||
entity_id: input_boolean.bridget_in_bed
|
||||
state: "off"
|
||||
#- condition: state
|
||||
# entity_id: input_boolean.white_bed_occupied
|
||||
# entity_id: binary_sensor.white_bed_occupied
|
||||
# state: 'on'
|
||||
# for:
|
||||
# minutes: 5
|
||||
|
||||
@@ -4,7 +4,7 @@ mode: restart
|
||||
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
to: "on"
|
||||
for: "00:05:00"
|
||||
- platform: state
|
||||
@@ -31,7 +31,7 @@ condition:
|
||||
for:
|
||||
minutes: 5
|
||||
- condition: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
state: "on"
|
||||
for:
|
||||
minutes: 5
|
||||
|
||||
@@ -16,7 +16,7 @@ trigger:
|
||||
- platform: state
|
||||
entity_id:
|
||||
- binary_sensor.black_bed_occupied
|
||||
- input_boolean.white_bed_occupied
|
||||
- binary_sensor.white_bed_occupied
|
||||
to: "off"
|
||||
for: "00:05:00"
|
||||
|
||||
@@ -67,10 +67,10 @@ condition:
|
||||
- condition: or
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
state: "off"
|
||||
- condition: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
state: "unavailable"
|
||||
- condition: or
|
||||
conditions:
|
||||
@@ -96,10 +96,10 @@ condition:
|
||||
- condition: or
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
state: "off"
|
||||
- condition: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
state: "unavailable"
|
||||
action:
|
||||
- service: input_boolean.turn_off
|
||||
@@ -140,10 +140,10 @@ action:
|
||||
- condition: or
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
state: "off"
|
||||
- condition: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
state: "unavailable"
|
||||
sequence:
|
||||
- service: input_boolean.turn_off
|
||||
@@ -170,10 +170,10 @@ action:
|
||||
- condition: or
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
state: "off"
|
||||
- condition: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
state: "unavailable"
|
||||
sequence:
|
||||
- service: input_boolean.turn_off
|
||||
@@ -194,10 +194,10 @@ action:
|
||||
- condition: or
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
state: "off"
|
||||
- condition: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
state: "unavailable"
|
||||
- condition: not
|
||||
conditions:
|
||||
|
||||
@@ -8,7 +8,7 @@ trigger:
|
||||
for: "00:00:03"
|
||||
|
||||
- platform: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
to: "off"
|
||||
for: "00:00:03"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ trigger:
|
||||
to: "off"
|
||||
for: "00:00:03"
|
||||
- platform: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
to: "off"
|
||||
for: "00:00:03"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ trigger:
|
||||
to: "on"
|
||||
for: "00:00:30"
|
||||
- platform: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
to: "on"
|
||||
for: "00:00:30"
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ condition:
|
||||
state: "off"
|
||||
- condition: state
|
||||
entity_id:
|
||||
- input_boolean.white_bed_occupied
|
||||
- binary_sensor.white_bed_occupied
|
||||
- binary_sensor.black_bed_occupied
|
||||
state:
|
||||
- "off"
|
||||
|
||||
@@ -11,7 +11,7 @@ trigger:
|
||||
to: "off"
|
||||
for: "00:00:05"
|
||||
- trigger: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
from: "on"
|
||||
to: "off"
|
||||
for: "00:00:05"
|
||||
|
||||
@@ -69,7 +69,7 @@ triggers:
|
||||
condition:
|
||||
- alias: "Only turn the fans on if it's warm enough outside"
|
||||
condition: template
|
||||
value_template: "{{ (states('sensor.lacrosse_tx141thbv2_0_temperature') | float(default=0) > 60.0) or is_state('group.ceiling_fans','on') }}"
|
||||
value_template: "{{ (states('sensor.front_yard_thermostat_temperature') | float(default=0) > 60.0) or is_state('group.ceiling_fans','on') }}"
|
||||
|
||||
action:
|
||||
- alias: "Calculate fan speeds"
|
||||
@@ -82,7 +82,7 @@ action:
|
||||
# name: Automatic Fan Speeds
|
||||
# entity_id: automation.automatic_fan_speeds
|
||||
# message: >
|
||||
# Outdoor Air Temp: {{states('sensor.lacrosse_tx141thbv2_0_temperature') | float(default=0)}}
|
||||
# Outdoor Air Temp: {{states('sensor.front_yard_thermostat_temperature') | float(default=0)}}
|
||||
# Nursery Air Temp: {{states('sensor.nursery_multisensor_air_temperature') | float(default=0)}}
|
||||
# Nursery Min Temp: {{states('input_number.nursery_fan_min_temp') | float(default=0)}}
|
||||
# Nursery High Temp: {{states('input_number.nursery_fan_high_temp') | float(default=0)}}
|
||||
|
||||
@@ -1,544 +0,0 @@
|
||||
blueprint:
|
||||
name: Aqara Magic Cube
|
||||
description: Control anything using Aqara Magic Cube.
|
||||
domain: automation
|
||||
input:
|
||||
remote:
|
||||
name: Magic Cube
|
||||
description: Select the Aqara Magic Cube device
|
||||
selector:
|
||||
device:
|
||||
integration: zha
|
||||
manufacturer: LUMI
|
||||
flip_90:
|
||||
name: Flip 90 degrees
|
||||
description: 'Actions to run when cube flips 90 degrees.
|
||||
|
||||
This cancels all specific 90 degrees functions.
|
||||
|
||||
e.g From side 1 to side 2 will be the same as from side 6 to side 2'
|
||||
default: false
|
||||
selector:
|
||||
boolean: {}
|
||||
cube_flip_90:
|
||||
name: Flip cube 90 degrees
|
||||
description: Action to run when cube flips 90 degrees. This only works if 'Flip
|
||||
90 degrees' is toggled
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
flip_180:
|
||||
name: Flip 180 degrees
|
||||
description: 'Actions to run when cube flips 180 degrees.
|
||||
|
||||
This cancels all specific 180 degrees functions
|
||||
|
||||
e.g From side 1 to side 4 will be the same as from side 5 to side 2'
|
||||
default: false
|
||||
selector:
|
||||
boolean: {}
|
||||
cube_flip_180:
|
||||
name: Flip cube 180 degrees
|
||||
description: Action to run when cube flips 180 degrees. This only works if 'Flip
|
||||
180 degrees' is toggled
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_any_side:
|
||||
name: Slide any side
|
||||
description: 'Actions to run when cube slides on any side.
|
||||
|
||||
This cancels all specific ''slide'' functions
|
||||
|
||||
e.g Slide on side 1 will be the same as slide on side 2'
|
||||
default: false
|
||||
selector:
|
||||
boolean: {}
|
||||
cube_slide_any:
|
||||
name: Slide cube on any side
|
||||
description: Action to run when cube slides on any slide. This only works if
|
||||
'Slide any side' is toggled
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
knock_any_side:
|
||||
name: Knock on any side
|
||||
description: 'Actions to run when knocking cube regardless of the side.
|
||||
|
||||
This cancels all specific ''knock'' functions
|
||||
|
||||
e.g Knock on side 1 will be the same as knocking side 2'
|
||||
default: false
|
||||
selector:
|
||||
boolean: {}
|
||||
cube_knock_any:
|
||||
name: Knock cube on any side
|
||||
description: Action to run when knocking cube on any side. This only works if
|
||||
'Knock on any side' is toggled
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
one_to_two:
|
||||
name: From side 1 to side 2
|
||||
description: Action to run when cube goes from side 1 to side 2
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
one_to_three:
|
||||
name: From side 1 to side 3
|
||||
description: Action to run when cube goes from side 1 to side 3
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
one_to_four:
|
||||
name: From side 1 to side 4
|
||||
description: Action to run when cube goes from side 1 to side 4
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
one_to_five:
|
||||
name: From side 1 to side 5
|
||||
description: Action to run when cube goes from side 1 to side 5
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
one_to_six:
|
||||
name: From side 1 to side 6
|
||||
description: Action to run when cube goes from side 1 to side 6
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
two_to_one:
|
||||
name: From side 2 to side 1
|
||||
description: Action to run when cube goes from side 2 to side 1
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
two_to_three:
|
||||
name: From side 2 to side 3
|
||||
description: Action to run when cube goes from side 2 to side 3
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
two_to_four:
|
||||
name: From side 2 to side 4
|
||||
description: Action to run when cube goes from side 2 to side 4
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
two_to_five:
|
||||
name: From side 2 to side 5
|
||||
description: Action to run when cube goes from side 2 to side 5
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
two_to_six:
|
||||
name: From side 2 to side 6
|
||||
description: Action to run when cube goes from side 2 to side 6
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
three_to_one:
|
||||
name: From side 3 to side 1
|
||||
description: Action to run when cube goes from side 3 to side 1
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
three_to_two:
|
||||
name: From side 3 to side 2
|
||||
description: Action to run when cube goes from side 3 to side 2
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
three_to_four:
|
||||
name: From side 3 to side 4
|
||||
description: Action to run when cube goes from side 3 to side 4
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
three_to_five:
|
||||
name: From side 3 to side 5
|
||||
description: Action to run when cube goes from side 3 to side 5
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
three_to_six:
|
||||
name: From side 3 to side 6
|
||||
description: Action to run when cube goes from side 3 to side 6
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
four_to_one:
|
||||
name: From side 4 to side 1
|
||||
description: Action to run when cube goes from side 4 to side 1
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
four_to_two:
|
||||
name: From side 4 to side 2
|
||||
description: Action to run when cube goes from side 4 to side 2
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
four_to_three:
|
||||
name: From side 4 to side 3
|
||||
description: Action to run when cube goes from side 4 to side 3
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
four_to_five:
|
||||
name: From side 4 to side 5
|
||||
description: Action to run when cube goes from side 4 to side 5
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
four_to_six:
|
||||
name: From side 4 to side 6
|
||||
description: Action to run when cube goes from side 4 to side 6
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
five_to_one:
|
||||
name: From side 5 to side 1
|
||||
description: Action to run when cube goes from side 5 to side 1
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
five_to_two:
|
||||
name: From side 5 to side 2
|
||||
description: Action to run when cube goes from side 5 to side 2
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
five_to_three:
|
||||
name: From side 5 to side 3
|
||||
description: Action to run when cube goes from side 5 to side 3
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
five_to_four:
|
||||
name: From side 5 to side 4
|
||||
description: Action to run when cube goes from side 5 to side 4
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
five_to_six:
|
||||
name: From side 5 to side 6
|
||||
description: Action to run when cube goes from side 5 to side 6
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
six_to_one:
|
||||
name: From side 6 to side 1
|
||||
description: Action to run when cube goes from side 6 to side 1
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
six_to_two:
|
||||
name: From side 6 to side 2
|
||||
description: Action to run when cube goes from side 6 to side 2
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
six_to_three:
|
||||
name: From side 6 to side 3
|
||||
description: Action to run when cube goes from side 6 to side 3
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
six_to_four:
|
||||
name: From side 6 to side 4
|
||||
description: Action to run when cube goes from side 6 to side 4
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
six_to_five:
|
||||
name: From side 6 to side 5
|
||||
description: Action to run when cube goes from side 6 to side 5
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
one_to_one:
|
||||
name: Knock - Side 1
|
||||
description: Action to run when knocking on side 1
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
two_to_two:
|
||||
name: Knock - Side 2
|
||||
description: Action to run when knocking on side 2
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
three_to_three:
|
||||
name: Knock - Side 3
|
||||
description: Action to run when knocking on side 3
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
four_to_four:
|
||||
name: Knock - Side 4
|
||||
description: Action to run when knocking on side 4
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
five_to_five:
|
||||
name: Knock - Side 5
|
||||
description: Action to run when knocking on side 5
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
six_to_six:
|
||||
name: Knock - Side 6
|
||||
description: Action to run when knocking on side 6
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_on_one:
|
||||
name: Slide - Side 1 up
|
||||
description: Action to run when slides with Side 1 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_on_two:
|
||||
name: Slide - Side 2 up
|
||||
description: Action to run when slides with Side 2 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_on_three:
|
||||
name: Slide - Side 3 up
|
||||
description: Action to run when slides with Side 3 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_on_four:
|
||||
name: Slide - Side 4 up
|
||||
description: Action to run when slides with Side 4 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_on_five:
|
||||
name: Slide - Side 5 up
|
||||
description: Action to run when slides with Side 5 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_on_six:
|
||||
name: Slide - Side 6 up
|
||||
description: Action to run when slides with Side 6 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
cube_wake:
|
||||
name: Wake up the cube
|
||||
description: Action to run when cube wakes up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
cube_drop:
|
||||
name: Cube drops
|
||||
description: Action to run when cube drops
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
cube_shake:
|
||||
name: Shake cube
|
||||
description: Action to run when you shake the cube
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_right:
|
||||
name: Rotate right
|
||||
description: Action to run when cube rotates right
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_left:
|
||||
name: Rotate left
|
||||
description: Action to run when cube rotates left
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
source_url: https://community.home-assistant.io/t/aqara-magic-cube-zha-51-actions/270829
|
||||
mode: restart
|
||||
max_exceeded: silent
|
||||
trigger:
|
||||
- platform: event
|
||||
event_type: zha_event
|
||||
event_data:
|
||||
device_id: !input 'remote'
|
||||
action:
|
||||
- variables:
|
||||
command: '{{ trigger.event.data.command }}'
|
||||
value: '{{ trigger.event.data.args.value }}'
|
||||
flip_degrees: '{{ trigger.event.data.args.flip_degrees }}'
|
||||
relative_degrees: '{{ trigger.event.data.args.relative_degrees }}'
|
||||
flip_90: !input 'flip_90'
|
||||
flip_180: !input 'flip_180'
|
||||
slide_any_side: !input 'slide_any_side'
|
||||
knock_any_side: !input 'knock_any_side'
|
||||
flip90: 64
|
||||
flip180: 128
|
||||
slide: 256
|
||||
knock: 512
|
||||
shake: 0
|
||||
drop: 3
|
||||
activated_face: "\n{% if command == \"slide\" or command == \"knock\" %}\n\n \
|
||||
\ {% if trigger.event.data.args.activated_face == 1 %} 1\n\n {% elif trigger.event.data.args.activated_face\
|
||||
\ == 2 %} 5\n\n {% elif trigger.event.data.args.activated_face == 3 %} 6\n\n\
|
||||
\ {% elif trigger.event.data.args.activated_face == 4 %} 4\n\n {% elif trigger.event.data.args.activated_face\
|
||||
\ == 5 %} 2\n\n {% elif trigger.event.data.args.activated_face == 6 %} 3\n\n\
|
||||
\ {% endif %}\n\n{% elif command == 'flip' %}\n\n {{ trigger.event.data.args.activated_face\
|
||||
\ | int }}\n\n{% endif %}\n"
|
||||
from_face: "\n{% if command == \"flip\" and flip_degrees == 90 %}\n\n {{ ((value\
|
||||
\ - flip90 - (trigger.event.data.args.activated_face - 1)) / 8) + 1 | int }}\n\
|
||||
\n{% endif %}\n"
|
||||
- choose:
|
||||
- conditions:
|
||||
- '{{ command == ''rotate_right'' }}'
|
||||
sequence: !input 'rotate_right'
|
||||
- conditions:
|
||||
- '{{ command == ''rotate_left'' }}'
|
||||
sequence: !input 'rotate_left'
|
||||
- conditions:
|
||||
- '{{ command == ''checkin'' }}'
|
||||
sequence: !input 'cube_wake'
|
||||
- conditions:
|
||||
- '{{ value == shake }}'
|
||||
sequence: !input 'cube_shake'
|
||||
- conditions:
|
||||
- '{{ value == drop }}'
|
||||
sequence: !input 'cube_drop'
|
||||
- conditions:
|
||||
- '{{ command == ''knock'' and knock_any_side }}'
|
||||
sequence: !input 'cube_knock_any'
|
||||
- conditions:
|
||||
- '{{ command == ''slide'' and slide_any_side }}'
|
||||
sequence: !input 'cube_slide_any'
|
||||
- conditions:
|
||||
- '{{ flip_degrees == 90 and flip_90 }}'
|
||||
sequence: !input 'cube_flip_90'
|
||||
- conditions:
|
||||
- '{{ flip_degrees == 180 and flip_180 }}'
|
||||
sequence: !input 'cube_flip_180'
|
||||
- conditions:
|
||||
- '{{ flip_degrees == 90 and activated_face == 1 }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ from_face == 2 }}'
|
||||
sequence: !input 'two_to_one'
|
||||
- conditions: '{{ from_face == 3 }}'
|
||||
sequence: !input 'three_to_one'
|
||||
- conditions: '{{ from_face == 5 }}'
|
||||
sequence: !input 'five_to_one'
|
||||
- conditions: '{{ from_face == 6 }}'
|
||||
sequence: !input 'six_to_one'
|
||||
- conditions:
|
||||
- '{{ flip_degrees == 90 and activated_face == 2 }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ from_face == 1 }}'
|
||||
sequence: !input 'one_to_two'
|
||||
- conditions: '{{ from_face == 3 }}'
|
||||
sequence: !input 'three_to_two'
|
||||
- conditions: '{{ from_face == 4 }}'
|
||||
sequence: !input 'four_to_two'
|
||||
- conditions: '{{ from_face == 6 }}'
|
||||
sequence: !input 'six_to_two'
|
||||
- conditions:
|
||||
- '{{ flip_degrees == 90 and activated_face == 3 }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ from_face == 1 }}'
|
||||
sequence: !input 'one_to_three'
|
||||
- conditions: '{{ from_face == 2 }}'
|
||||
sequence: !input 'two_to_three'
|
||||
- conditions: '{{ from_face == 4 }}'
|
||||
sequence: !input 'four_to_three'
|
||||
- conditions: '{{ from_face == 5 }}'
|
||||
sequence: !input 'five_to_three'
|
||||
- conditions:
|
||||
- '{{ flip_degrees == 90 and activated_face == 4 }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ from_face == 2 }}'
|
||||
sequence: !input 'two_to_four'
|
||||
- conditions: '{{ from_face == 3 }}'
|
||||
sequence: !input 'three_to_four'
|
||||
- conditions: '{{ from_face == 5 }}'
|
||||
sequence: !input 'five_to_four'
|
||||
- conditions: '{{ from_face == 6 }}'
|
||||
sequence: !input 'six_to_four'
|
||||
- conditions:
|
||||
- '{{ flip_degrees == 90 and activated_face == 5 }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ from_face == 1 }}'
|
||||
sequence: !input 'one_to_five'
|
||||
- conditions: '{{ from_face == 3 }}'
|
||||
sequence: !input 'three_to_five'
|
||||
- conditions: '{{ from_face == 4 }}'
|
||||
sequence: !input 'four_to_five'
|
||||
- conditions: '{{ from_face == 6 }}'
|
||||
sequence: !input 'six_to_five'
|
||||
- conditions:
|
||||
- '{{ flip_degrees == 90 and activated_face == 6 }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ from_face == 1 }}'
|
||||
sequence: !input 'one_to_six'
|
||||
- conditions: '{{ from_face == 2 }}'
|
||||
sequence: !input 'two_to_six'
|
||||
- conditions: '{{ from_face == 4 }}'
|
||||
sequence: !input 'four_to_six'
|
||||
- conditions: '{{ from_face == 5 }}'
|
||||
sequence: !input 'five_to_six'
|
||||
- conditions:
|
||||
- '{{ value == flip180 + activated_face - 1 }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ activated_face == 1 }}'
|
||||
sequence: !input 'four_to_one'
|
||||
- conditions: '{{ activated_face == 2 }}'
|
||||
sequence: !input 'five_to_two'
|
||||
- conditions: '{{ activated_face == 3 }}'
|
||||
sequence: !input 'six_to_three'
|
||||
- conditions: '{{ activated_face == 4 }}'
|
||||
sequence: !input 'one_to_four'
|
||||
- conditions: '{{ activated_face == 5 }}'
|
||||
sequence: !input 'two_to_five'
|
||||
- conditions: '{{ activated_face == 6 }}'
|
||||
sequence: !input 'three_to_six'
|
||||
- conditions:
|
||||
- '{{ value == knock + activated_face - 1 }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ activated_face == 1 }}'
|
||||
sequence: !input 'one_to_one'
|
||||
- conditions: '{{ activated_face == 2 }}'
|
||||
sequence: !input 'two_to_two'
|
||||
- conditions: '{{ activated_face == 3 }}'
|
||||
sequence: !input 'three_to_three'
|
||||
- conditions: '{{ activated_face == 4 }}'
|
||||
sequence: !input 'four_to_four'
|
||||
- conditions: '{{ activated_face == 5 }}'
|
||||
sequence: !input 'five_to_five'
|
||||
- conditions: '{{ activated_face == 6 }}'
|
||||
sequence: !input 'six_to_six'
|
||||
- conditions:
|
||||
- '{{ value == slide + activated_face - 1 }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ activated_face == 1 }}'
|
||||
sequence: !input 'slide_on_one'
|
||||
- conditions: '{{ activated_face == 2 }}'
|
||||
sequence: !input 'slide_on_two'
|
||||
- conditions: '{{ activated_face == 3 }}'
|
||||
sequence: !input 'slide_on_three'
|
||||
- conditions: '{{ activated_face == 4 }}'
|
||||
sequence: !input 'slide_on_four'
|
||||
- conditions: '{{ activated_face == 5 }}'
|
||||
sequence: !input 'slide_on_five'
|
||||
- conditions: '{{ activated_face == 6 }}'
|
||||
sequence: !input 'slide_on_six'
|
||||
@@ -1,787 +0,0 @@
|
||||
blueprint:
|
||||
name: Aqara Magic Cube Zigbee2MQTT - 2022-05-05
|
||||
description: "This Blueprint uses a Zigbee2MQTT built sensor to sort out the 38(+54)
|
||||
unique commands available from the Xiaomi Magic Cube Remote. (Some unique commands
|
||||
are available thru templating only. See the related document.)\nThe split out
|
||||
of functions gives you the ability to assign local scripts or functions to do
|
||||
the things you want the remote to do.\nFunctions that are left empty will simply
|
||||
do nothing.\n\n### \U0001F34E There is a set of 36 event functions that will trigger
|
||||
on specific actions on specific sides that are listed as **Group 1 actions \U0001F34E**.\n\n###
|
||||
\U0001F34A There is a set of 6 event functions that will trigger on specific actions
|
||||
on *ANY* side that are listed as **Group 2 sctions \U0001F34A**.\n\n### \U0001F350
|
||||
There is a set of 30 event functions that will trigger on cube flips to & froma
|
||||
specific sides that are listed as **Group 3 sctions \U0001F350**.\n\n### \U0001F369
|
||||
There are 2 actions (shake and drop) that only occur once and are OK to be combined
|
||||
with any other group.\n\nPlease be aware that ALL actions except the 2 listed
|
||||
above,\n\U0001F369 will trigger an action in **ALL 3 groups at the same time**
|
||||
every time. Therefore I suggest if you just have a couple of things you want this
|
||||
remote to do that you choose the *ANY / Group 2 / \U0001F34A* events.\nIf you
|
||||
want more than a few events, you should select actions in **Group 1 / \U0001F34E
|
||||
OR Group 3 / \U0001F350**.\nWith careful selection you can use mixed groups, but
|
||||
you run the risk of a single cube action triggering more than 1 Home Assistant
|
||||
action and making a mess of things \U0001F371.\n\n#### NOTICE: This cube *can*
|
||||
be triggered 124 ways, but only 38(+54) of them are unique (with templating).\n\nThere
|
||||
is sample code to make the template sensor in the help file on GitHib named [Zigbee2MQTT
|
||||
- Xiaomi Cube Controller.md](https://github.com/SirGoodenough/HA_Blueprints/blob/master/Automations/Zigbee2MQTT%20-%20Xiaomi%20Cube%20Controller.md)
|
||||
& in the [community page related to this](https://community.home-assistant.io/t/zigbee2mqtt-xiaomi-cube-controller/393203).\n\nWithin
|
||||
this blueprint there is an event handler that will latch the last command that
|
||||
the blueprint finds and sends that to the event buss. From there a simple Template
|
||||
sensor can grab it and show you the last action sent. Thie will help when setting
|
||||
up new functions and to troubleshoot strange behaviours.\n\n> This was forked
|
||||
from https://community.home-assistant.io/t/z2m-xiaomi-cube-controller/263006 1.2
|
||||
project authored by luckypoppy and the friends he pulled together to create the
|
||||
base. I sincerely thank Him (Them) for their work. I felt there needed to be more
|
||||
documentation for rookie users to properly set this up. I had quite a few questions
|
||||
and when I saw a few questions in that chat from people struggling, I wanted to
|
||||
help. I also had a better idea for troubleshooting info.\n"
|
||||
source_url: https://github.com/SirGoodenough/HA_Blueprints/blob/master/Automations/Zigbee2MQTT%20-%20Xiaomi%20Cube%20Controller.yaml
|
||||
domain: automation
|
||||
homeassistant:
|
||||
min_version: 2022.5.2
|
||||
input:
|
||||
remote:
|
||||
name: Remote
|
||||
description: 'The entity to put here is the sensor that Z2M imported which is
|
||||
named like this> sensor.XXYour_HameXX_action.
|
||||
|
||||
The other 4 sensors can be disabled, they will not be used.'
|
||||
selector:
|
||||
entity:
|
||||
integration: mqtt
|
||||
domain: sensor
|
||||
multiple: false
|
||||
slide_face_0:
|
||||
name: "Group 1 actions \U0001F34E Slide the cube with face 0 up"
|
||||
description: Face 0 is the one with the 'Aqara' LOGO
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
doubletap_face_0:
|
||||
name: "Group 1 actions \U0001F34E Double tap the cube with face 0 up"
|
||||
description: Face 0 is the one with the 'Aqara' LOGO
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
flipped90_face_0:
|
||||
name: "Group 1 actions \U0001F34E Flip the cube 90 degrees to face 0"
|
||||
description: Face 0 is the one with the 'Aqara' LOGO
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
flipped180_face_0:
|
||||
name: "Group 1 actions \U0001F34E Flip the cube 180 degrees to face 0"
|
||||
description: '**NOTE:** This action is trick to master, and should be used sparingly...
|
||||
|
||||
Face 0 is the one with the ''Aqara'' LOGO'
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_cw_face_0:
|
||||
name: "Group 1 actions \U0001F34E Rotate cube clockwise with face 0 up"
|
||||
description: Face 0 is the one with the 'Aqara' LOGO
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_ccw_face_0:
|
||||
name: "Group 1 actions \U0001F34E Rotate cube counter clockwise with face 0
|
||||
up"
|
||||
description: Face 0 is the one with the 'Aqara' LOGO
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_face_1:
|
||||
name: "Group 1 actions \U0001F34E Slide the cube with face 1 up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
doubletap_face_1:
|
||||
name: "Group 1 actions \U0001F34E Double tap the cube with face 1 up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
flipped90_face_1:
|
||||
name: "Group 1 actions \U0001F34E Flip the cube 90 degrees to face 1"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
flipped180_face_1:
|
||||
name: "Group 1 actions \U0001F34E Flip the cube 180 degrees to face 1"
|
||||
description: '**NOTE:** This action is trick to master, and should be used sparingly...'
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_cw_face_1:
|
||||
name: "Group 1 actions \U0001F34E Rotate cube clockwise with face 1 up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_ccw_face_1:
|
||||
name: "Group 1 actions \U0001F34E Rotate cube counter clockwise with face 1
|
||||
up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_face_2:
|
||||
name: "Group 1 actions \U0001F34E Slide the cube with face 2 up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
doubletap_face_2:
|
||||
name: "Group 1 actions \U0001F34E Double tap the cube with face 2 up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
flipped90_face_2:
|
||||
name: "Group 1 actions \U0001F34E Flip the cube 90 degrees to face 2"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
flipped180_face_2:
|
||||
name: "Group 1 actions \U0001F34E Flip the cube 180 degrees to face 2"
|
||||
description: '**NOTE:** This action is trick to master, and should be used sparingly...'
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_cw_face_2:
|
||||
name: "Group 1 actions \U0001F34E Rotate cube clockwise with face 2 up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_ccw_face_2:
|
||||
name: "Group 1 actions \U0001F34E Rotate cube counter clockwise with face 2
|
||||
up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_face_3:
|
||||
name: "Group 1 actions \U0001F34E Slide the cube with face 3 up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
doubletap_face_3:
|
||||
name: "Group 1 actions \U0001F34E Double tap the cube with face 3 up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
flipped90_face_3:
|
||||
name: "Group 1 actions \U0001F34E Flip the cube 90 degrees to face 3"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
flipped180_face_3:
|
||||
name: "Group 1 actions \U0001F34E Flip the cube 180 degrees to face 3"
|
||||
description: '**NOTE:** This action is trick to master, and should be used sparingly...'
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_cw_face_3:
|
||||
name: "Group 1 actions \U0001F34E Rotate cube clockwise with face 3 up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_ccw_face_3:
|
||||
name: "Group 1 actions \U0001F34E Rotate cube counter clockwise with face 3
|
||||
up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_face_4:
|
||||
name: "Group 1 actions \U0001F34E Slide the cube with face 4 up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
doubletap_face_4:
|
||||
name: "Group 1 actions \U0001F34E Double tap the cube with face 4 up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
flipped90_face_4:
|
||||
name: "Group 1 actions \U0001F34E Flip the cube 90 degrees to face 4"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
flipped180_face_4:
|
||||
name: "Group 1 actions \U0001F34E Flip the cube 180 degrees to face 4"
|
||||
description: '**NOTE:** This action is trick to master, and should be used sparingly...'
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_cw_face_4:
|
||||
name: "Group 1 actions \U0001F34E Rotate cube clockwise with face 4 up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_ccw_face_4:
|
||||
name: "Group 1 actions \U0001F34E Rotate cube counter clockwise with face 4
|
||||
up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_face_5:
|
||||
name: "Group 1 actions \U0001F34E Slide the cube with face 5 up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
doubletap_face_5:
|
||||
name: "Group 1 actions \U0001F34E Double tap the cube with face 5 up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
flipped90_face_5:
|
||||
name: "Group 1 actions \U0001F34E Flip the cube 90 degrees to face 5"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
flipped180_face_5:
|
||||
name: "Group 1 actions \U0001F34E Flip the cube 180 degrees to face 5"
|
||||
description: '**NOTE:** This action is trick to master, and should be used sparingly...'
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_cw_face_5:
|
||||
name: "Group 1 actions \U0001F34E Rotate cube clockwise with face 5 up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_ccw_face_5:
|
||||
name: "Group 1 actions \U0001F34E Rotate cube counter clockwise with face 5
|
||||
up"
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
shake:
|
||||
name: "Shake the cube \U0001F369"
|
||||
description: 'This trigger only occurs once in the set-up.
|
||||
|
||||
It can be combined in any group.'
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
fall:
|
||||
name: "Drop the cube \U0001F369"
|
||||
description: 'This trigger only occurs once in the set-up.
|
||||
|
||||
It can be combined in any group.'
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_any:
|
||||
name: "Group 2 actions \U0001F34A Slide the cube with any side"
|
||||
description: "Side doesn't matter on this one.\n**!!Warning!!** The automations
|
||||
for the specific side will also trigger. \U0001F34E\U0001F350\nI suggest using
|
||||
only one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
doubletap_any:
|
||||
name: "Group 2 actions \U0001F34A Double tap the cube with any side"
|
||||
description: "Side doesn't matter on this one.\n**!!Warning!!** The automations
|
||||
for the specific side will also trigger. \U0001F34E\U0001F350\nI suggest using
|
||||
only one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
flipped90_any:
|
||||
name: "Group 2 actions \U0001F34A Flip the cube 90 degrees to any side"
|
||||
description: "Side doesn't matter on this one.\n**!!Warning!!** The automations
|
||||
for the specific side will also trigger. \U0001F34E\U0001F350\nI suggest using
|
||||
only one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
flipped180_any:
|
||||
name: "Group 2 actions \U0001F34A Flip the cube 180 degrees any side"
|
||||
description: "NOTE: This action is trick to master, and should be used sparingly...
|
||||
Side doesn't matter on this one.\n**!!Warning!!** The automations for the
|
||||
specific side will also trigger. \U0001F34E\U0001F350\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_cw_any:
|
||||
name: "Group 2 actions \U0001F34A Rotate cube clockwise with any side"
|
||||
description: "Side doesn't matter on this one.\n**!!Warning!!** The automations
|
||||
for the specific side will also trigger. \U0001F34E\U0001F350\nI suggest using
|
||||
only one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_ccw_any:
|
||||
name: "Group 2 actions \U0001F34A Rotate cube counter clockwise with any side"
|
||||
description: "Side doesn't matter on this one.\n**!!Warning!!** The automations
|
||||
for the specific side will also trigger. \U0001F34E\U0001F350\nI suggest using
|
||||
only one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
0_from_1:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 0 from side 1"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 0
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
0_from_2:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 0 from side 2"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 0
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
0_from_3:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 0 from side 3"
|
||||
description: "**!!Warning!!** The flip 180 automations \U0001F34E for side 0
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
0_from_4:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 0 from side 4"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 0
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
0_from_5:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 0 from side 5"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 0
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
1_from_0:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 1 from side 0"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 1
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
1_from_2:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 1 from side 2"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 1
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
1_from_3:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 1 from side 3"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 1
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
1_from_4:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 1 from side 4"
|
||||
description: "**!!Warning!!** The flip 180 automations \U0001F34E for side 1
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
1_from_5:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 1 from side 5"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 1
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
2_from_0:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 2 from side 0"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 2
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
2_from_1:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 2 from side 1"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 2
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
2_from_3:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 2 from side 3"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 2
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
2_from_4:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 2 from side 4"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 2
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
2_from_5:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 2 from side 5"
|
||||
description: "**!!Warning!!** The flip 180 automations \U0001F34E for side 2
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
3_from_0:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 3 from side 0"
|
||||
description: "**!!Warning!!** The flip 180 automations \U0001F34E for side 3
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
3_from_1:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 3 from side 1"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 3
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
3_from_2:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 3 from side 2"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 3
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
3_from_4:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 3 from side 4"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 3
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
3_from_5:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 3 from side 5"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 3
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
4_from_0:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 4 from side 0"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 4
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
4_from_1:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 4 from side 1"
|
||||
description: "**!!Warning!!** The flip 180 automations \U0001F34E for side 4
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
4_from_2:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 4 from side 2"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 4
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
4_from_3:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 4 from side 3"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 4
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
4_from_5:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 4 from side 5"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 4
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
5_from_0:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 5 from side 0"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 5
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
5_from_1:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 5 from side 1"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 5
|
||||
and the ANY \U0001F34A automations will also trigger. \U0001F34E\U0001F350\nI
|
||||
suggest using only one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
5_from_2:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 5 from side 2"
|
||||
description: "**!!Warning!!** The flip 180 automations \U0001F34E for side 5
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
5_from_3:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 5 from side 3"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 5
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
5_from_4:
|
||||
name: "Group 3 actions \U0001F350 Flip the cube to side 5 from side 4"
|
||||
description: "**!!Warning!!** The flip 90 automations \U0001F34E for side 5
|
||||
and the ANY \U0001F34A automations will also trigger.\nI suggest using only
|
||||
one of the three groups of triggers, not multiple groups..."
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
mode: single
|
||||
max_exceeded: silent
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: !input remote
|
||||
condition:
|
||||
condition: template
|
||||
value_template: '{{ trigger.to_state.attributes.action in (''rotate_right'', ''rotate_left'',
|
||||
''flip90'', ''flip180'', ''slide'', ''tap'', ''shake'', ''fall'') }}'
|
||||
action:
|
||||
- variables:
|
||||
action: '{{ trigger.to_state.attributes.action }}'
|
||||
side: '{{ trigger.to_state.attributes.side }}'
|
||||
last_side: '{{ trigger.from_state.attributes.side }}'
|
||||
entity_id: !input remote
|
||||
friendly_name: '{{ trigger.to_state.attributes.friendly_name }}'
|
||||
- alias: Fire Last Action event
|
||||
event: cube_last_action
|
||||
event_data:
|
||||
action: '{{ action }}'
|
||||
side: '{{ side }}'
|
||||
last_side: '{{ last_side }}'
|
||||
entity_id: '{{ entity_id }}'
|
||||
friendly_name: '{{ friendly_name }}'
|
||||
- alias: "Group 2 \U0001F34A and No Group \U0001F369 These are action events for ANY
|
||||
Side"
|
||||
choose:
|
||||
- conditions: '{{ action == "slide" }}'
|
||||
sequence: !input slide_any
|
||||
- conditions: '{{ action == "tap" }}'
|
||||
sequence: !input doubletap_any
|
||||
- conditions: '{{ action == "flip90" }}'
|
||||
sequence: !input flipped90_any
|
||||
- conditions: '{{ action == "flip180" }}'
|
||||
sequence: !input flipped180_any
|
||||
- conditions: '{{ action == "rotate_right" }}'
|
||||
sequence: !input rotate_cw_any
|
||||
- conditions: '{{ action == "rotate_left" }}'
|
||||
sequence: !input rotate_ccw_any
|
||||
- conditions: '{{ action == "shake" }}'
|
||||
sequence: !input shake
|
||||
- conditions: '{{ action == "fall" }}'
|
||||
sequence: !input fall
|
||||
- alias: "Group 1 \U0001F34E These are action events based on the action broken down
|
||||
by side"
|
||||
choose:
|
||||
- conditions: '{{ action == "slide" }}'
|
||||
sequence:
|
||||
- alias: These are slide events
|
||||
choose:
|
||||
- conditions: '{{ side == 0 }}'
|
||||
sequence: !input slide_face_0
|
||||
- conditions: '{{ side == 1 }}'
|
||||
sequence: !input slide_face_1
|
||||
- conditions: '{{ side == 2 }}'
|
||||
sequence: !input slide_face_2
|
||||
- conditions: '{{ side == 3 }}'
|
||||
sequence: !input slide_face_3
|
||||
- conditions: '{{ side == 4 }}'
|
||||
sequence: !input slide_face_4
|
||||
- conditions: '{{ side == 5 }}'
|
||||
sequence: !input slide_face_5
|
||||
- conditions: '{{ action == "tap" }}'
|
||||
sequence:
|
||||
- alias: These are doubletap events
|
||||
choose:
|
||||
- conditions: '{{ side == 0 }}'
|
||||
sequence: !input doubletap_face_0
|
||||
- conditions: '{{ side == 1 }}'
|
||||
sequence: !input doubletap_face_1
|
||||
- conditions: '{{ side == 2 }}'
|
||||
sequence: !input doubletap_face_2
|
||||
- conditions: '{{ side == 3 }}'
|
||||
sequence: !input doubletap_face_3
|
||||
- conditions: '{{ side == 4 }}'
|
||||
sequence: !input doubletap_face_4
|
||||
- conditions: '{{ side == 5 }}'
|
||||
sequence: !input doubletap_face_5
|
||||
- conditions: '{{ action == "flip90" }}'
|
||||
sequence:
|
||||
- alias: These are flipped90 events
|
||||
choose:
|
||||
- conditions: '{{ side == 0 }}'
|
||||
sequence: !input flipped90_face_0
|
||||
- conditions: '{{ side == 1 }}'
|
||||
sequence: !input flipped90_face_1
|
||||
- conditions: '{{ side == 2 }}'
|
||||
sequence: !input flipped90_face_2
|
||||
- conditions: '{{ side == 3 }}'
|
||||
sequence: !input flipped90_face_3
|
||||
- conditions: '{{ side == 4 }}'
|
||||
sequence: !input flipped90_face_4
|
||||
- conditions: '{{ side == 5 }}'
|
||||
sequence: !input flipped90_face_5
|
||||
- conditions: '{{ action == "flip180" }}'
|
||||
sequence:
|
||||
- alias: These are flipped180 events
|
||||
choose:
|
||||
- conditions: '{{ side == 0 }}'
|
||||
sequence: !input flipped180_face_0
|
||||
- conditions: '{{ side == 1 }}'
|
||||
sequence: !input flipped180_face_1
|
||||
- conditions: '{{ side == 2 }}'
|
||||
sequence: !input flipped180_face_2
|
||||
- conditions: '{{ side == 3 }}'
|
||||
sequence: !input flipped180_face_3
|
||||
- conditions: '{{ side == 4 }}'
|
||||
sequence: !input flipped180_face_4
|
||||
- conditions: '{{ side == 5 }}'
|
||||
sequence: !input flipped180_face_5
|
||||
- conditions: '{{ action == "rotate_right" }}'
|
||||
sequence:
|
||||
- alias: These are rotate CW events
|
||||
choose:
|
||||
- conditions: '{{ side == 0 }}'
|
||||
sequence: !input rotate_cw_face_0
|
||||
- conditions: '{{ side == 1 }}'
|
||||
sequence: !input rotate_cw_face_1
|
||||
- conditions: '{{ side == 2 }}'
|
||||
sequence: !input rotate_cw_face_2
|
||||
- conditions: '{{ side == 3 }}'
|
||||
sequence: !input rotate_cw_face_3
|
||||
- conditions: '{{ side == 4 }}'
|
||||
sequence: !input rotate_cw_face_4
|
||||
- conditions: '{{ side == 5 }}'
|
||||
sequence: !input rotate_cw_face_5
|
||||
- conditions: '{{ action == "rotate_left" }}'
|
||||
sequence:
|
||||
- alias: These are rotate CCW events
|
||||
choose:
|
||||
- conditions: '{{ side == 0 }}'
|
||||
sequence: !input rotate_ccw_face_0
|
||||
- conditions: '{{ side == 1 }}'
|
||||
sequence: !input rotate_ccw_face_1
|
||||
- conditions: '{{ side == 2 }}'
|
||||
sequence: !input rotate_ccw_face_2
|
||||
- conditions: '{{ side == 3 }}'
|
||||
sequence: !input rotate_ccw_face_3
|
||||
- conditions: '{{ side == 4 }}'
|
||||
sequence: !input rotate_ccw_face_4
|
||||
- conditions: '{{ side == 5 }}'
|
||||
sequence: !input rotate_ccw_face_5
|
||||
- alias: "Group 3 \U0001F350 Side to side jump events"
|
||||
choose:
|
||||
- conditions: '{{ side == 0 }}'
|
||||
sequence:
|
||||
- alias: To side 0 from any events
|
||||
choose:
|
||||
- conditions: '{{ last_side == 1 }}'
|
||||
sequence: !input 0_from_1
|
||||
- conditions: '{{ last_side == 2 }}'
|
||||
sequence: !input 0_from_2
|
||||
- conditions: '{{ last_side == 3 }}'
|
||||
sequence: !input 0_from_3
|
||||
- conditions: '{{ last_side == 4 }}'
|
||||
sequence: !input 0_from_4
|
||||
- conditions: '{{ last_side == 5 }}'
|
||||
sequence: !input 0_from_5
|
||||
- conditions: '{{ side == 1 }}'
|
||||
sequence:
|
||||
- alias: To side 1 from any events
|
||||
choose:
|
||||
- conditions: '{{ last_side == 0 }}'
|
||||
sequence: !input 1_from_0
|
||||
- conditions: '{{ last_side == 2 }}'
|
||||
sequence: !input 1_from_2
|
||||
- conditions: '{{ last_side == 3 }}'
|
||||
sequence: !input 1_from_3
|
||||
- conditions: '{{ last_side == 4 }}'
|
||||
sequence: !input 1_from_4
|
||||
- conditions: '{{ last_side == 5 }}'
|
||||
sequence: !input 1_from_5
|
||||
- conditions: '{{ side == 2 }}'
|
||||
sequence:
|
||||
- alias: To side 2 from any events
|
||||
choose:
|
||||
- conditions: '{{ last_side == 0 }}'
|
||||
sequence: !input 2_from_0
|
||||
- conditions: '{{ last_side == 1 }}'
|
||||
sequence: !input 2_from_1
|
||||
- conditions: '{{ last_side == 3 }}'
|
||||
sequence: !input 2_from_3
|
||||
- conditions: '{{ last_side == 4 }}'
|
||||
sequence: !input 2_from_4
|
||||
- conditions: '{{ last_side == 5 }}'
|
||||
sequence: !input 2_from_5
|
||||
- conditions: '{{ side == 3 }}'
|
||||
sequence:
|
||||
- alias: To side 3 from any events
|
||||
choose:
|
||||
- conditions: '{{ last_side == 0 }}'
|
||||
sequence: !input 3_from_0
|
||||
- conditions: '{{ last_side == 1 }}'
|
||||
sequence: !input 3_from_1
|
||||
- conditions: '{{ last_side == 2 }}'
|
||||
sequence: !input 3_from_2
|
||||
- conditions: '{{ last_side == 4 }}'
|
||||
sequence: !input 3_from_4
|
||||
- conditions: '{{ last_side == 5 }}'
|
||||
sequence: !input 3_from_5
|
||||
- conditions: '{{ side == 4 }}'
|
||||
sequence:
|
||||
- alias: To side 4 from any events
|
||||
choose:
|
||||
- conditions: '{{ last_side == 0 }}'
|
||||
sequence: !input 4_from_0
|
||||
- conditions: '{{ last_side == 1 }}'
|
||||
sequence: !input 4_from_1
|
||||
- conditions: '{{ last_side == 2 }}'
|
||||
sequence: !input 4_from_2
|
||||
- conditions: '{{ last_side == 3 }}'
|
||||
sequence: !input 4_from_3
|
||||
- conditions: '{{ last_side == 5 }}'
|
||||
sequence: !input 4_from_5
|
||||
- conditions: '{{ side == 5 }}'
|
||||
sequence:
|
||||
- alias: To side 5 from any events
|
||||
choose:
|
||||
- conditions: '{{ last_side == 0 }}'
|
||||
sequence: !input 5_from_0
|
||||
- conditions: '{{ last_side == 1 }}'
|
||||
sequence: !input 5_from_1
|
||||
- conditions: '{{ last_side == 2 }}'
|
||||
sequence: !input 5_from_2
|
||||
- conditions: '{{ last_side == 3 }}'
|
||||
sequence: !input 5_from_3
|
||||
- conditions: '{{ last_side == 4 }}'
|
||||
sequence: !input 5_from_4
|
||||
- alias: Delay ⏱ for debounce so toggle functions work. Also blueprint is in single
|
||||
mode.
|
||||
delay: 00:00:01
|
||||
+1040
File diff suppressed because it is too large
Load Diff
@@ -1,755 +0,0 @@
|
||||
blueprint:
|
||||
name: Aqara Magic Cube
|
||||
description: Control anything using Aqara Magic Cube.
|
||||
domain: automation
|
||||
input:
|
||||
remote:
|
||||
name: Magic Cube
|
||||
description: Select the Aqara Magic Cube device
|
||||
selector:
|
||||
device:
|
||||
integration: zha
|
||||
manufacturer: LUMI
|
||||
multiple: false
|
||||
active_face:
|
||||
name: Active Face
|
||||
description: Select the number input for tracking active face
|
||||
selector:
|
||||
entity:
|
||||
domain: input_number
|
||||
multiple: false
|
||||
flip_90:
|
||||
name: Flip 90 degrees
|
||||
description: 'Actions to run when cube flips 90 degrees.
|
||||
|
||||
This cancels all specific 90 degrees functions.
|
||||
|
||||
e.g From side 1 to side 2 will be the same as from side 6 to side 2'
|
||||
default: false
|
||||
selector:
|
||||
boolean: {}
|
||||
cube_flip_90:
|
||||
name: Flip cube 90 degrees
|
||||
description: Action to run when cube flips 90 degrees. This only works if 'Flip
|
||||
90 degrees' is toggled
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
flip_180:
|
||||
name: Flip 180 degrees
|
||||
description: 'Actions to run when cube flips 180 degrees.
|
||||
|
||||
This cancels all specific 180 degrees functions
|
||||
|
||||
e.g From side 1 to side 4 will be the same as from side 5 to side 2'
|
||||
default: false
|
||||
selector:
|
||||
boolean: {}
|
||||
cube_flip_180:
|
||||
name: Flip cube 180 degrees
|
||||
description: Action to run when cube flips 180 degrees. This only works if 'Flip
|
||||
180 degrees' is toggled
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
flip_any:
|
||||
name: Flip cube to any side
|
||||
description: 'Actions to run when cube flips to any side.
|
||||
|
||||
This cares about the end side, but cancels all specific flip functions.
|
||||
|
||||
e.g From side 1 to side 2 will be the same as from side 6 to side 2
|
||||
|
||||
but different than side 1 to side 5'
|
||||
default: false
|
||||
selector:
|
||||
boolean: {}
|
||||
cube_flip_1:
|
||||
name: Flip cube to side 1
|
||||
description: Action to run when cube flips to side 1. This only works if 'Flip
|
||||
any' is toggled
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
cube_flip_2:
|
||||
name: Flip cube to side 2
|
||||
description: Action to run when cube flips to side 2. This only works if 'Flip
|
||||
any' is toggled
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
cube_flip_3:
|
||||
name: Flip cube to side 3
|
||||
description: Action to run when cube flips to side 3. This only works if 'Flip
|
||||
any' is toggled
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
cube_flip_4:
|
||||
name: Flip cube to side 4
|
||||
description: Action to run when cube flips to side 4. This only works if 'Flip
|
||||
any' is toggled
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
cube_flip_5:
|
||||
name: Flip cube to side 5
|
||||
description: Action to run when cube flips to side 5. This only works if 'Flip
|
||||
any' is toggled
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
cube_flip_6:
|
||||
name: Flip cube to side 6
|
||||
description: Action to run when cube flips to side 6. This only works if 'Flip
|
||||
any' is toggled
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_any_side:
|
||||
name: Slide any side
|
||||
description: 'Actions to run when cube slides on any side.
|
||||
|
||||
This cancels all specific ''slide'' functions
|
||||
|
||||
e.g Slide on side 1 will be the same as slide on side 2'
|
||||
default: false
|
||||
selector:
|
||||
boolean: {}
|
||||
cube_slide_any:
|
||||
name: Slide cube on any side
|
||||
description: Action to run when cube slides on any side. This only works if
|
||||
'Slide any side' is toggled
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
knock_any_side:
|
||||
name: Knock on any side
|
||||
description: 'Actions to run when knocking cube regardless of the side.
|
||||
|
||||
This cancels all specific ''knock'' functions
|
||||
|
||||
e.g Knock on side 1 will be the same as knocking side 2'
|
||||
default: false
|
||||
selector:
|
||||
boolean: {}
|
||||
cube_knock_any:
|
||||
name: Knock cube on any side
|
||||
description: Action to run when knocking cube on any side. This only works if
|
||||
'Knock on any side' is toggled
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
one_to_two:
|
||||
name: From side 1 to side 2
|
||||
description: Action to run when cube goes from side 1 to side 2
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
one_to_three:
|
||||
name: From side 1 to side 3
|
||||
description: Action to run when cube goes from side 1 to side 3
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
one_to_four:
|
||||
name: From side 1 to side 4
|
||||
description: Action to run when cube goes from side 1 to side 4
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
one_to_five:
|
||||
name: From side 1 to side 5
|
||||
description: Action to run when cube goes from side 1 to side 5
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
one_to_six:
|
||||
name: From side 1 to side 6
|
||||
description: Action to run when cube goes from side 1 to side 6
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
two_to_one:
|
||||
name: From side 2 to side 1
|
||||
description: Action to run when cube goes from side 2 to side 1
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
two_to_three:
|
||||
name: From side 2 to side 3
|
||||
description: Action to run when cube goes from side 2 to side 3
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
two_to_four:
|
||||
name: From side 2 to side 4
|
||||
description: Action to run when cube goes from side 2 to side 4
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
two_to_five:
|
||||
name: From side 2 to side 5
|
||||
description: Action to run when cube goes from side 2 to side 5
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
two_to_six:
|
||||
name: From side 2 to side 6
|
||||
description: Action to run when cube goes from side 2 to side 6
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
three_to_one:
|
||||
name: From side 3 to side 1
|
||||
description: Action to run when cube goes from side 3 to side 1
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
three_to_two:
|
||||
name: From side 3 to side 2
|
||||
description: Action to run when cube goes from side 3 to side 2
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
three_to_four:
|
||||
name: From side 3 to side 4
|
||||
description: Action to run when cube goes from side 3 to side 4
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
three_to_five:
|
||||
name: From side 3 to side 5
|
||||
description: Action to run when cube goes from side 3 to side 5
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
three_to_six:
|
||||
name: From side 3 to side 6
|
||||
description: Action to run when cube goes from side 3 to side 6
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
four_to_one:
|
||||
name: From side 4 to side 1
|
||||
description: Action to run when cube goes from side 4 to side 1
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
four_to_two:
|
||||
name: From side 4 to side 2
|
||||
description: Action to run when cube goes from side 4 to side 2
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
four_to_three:
|
||||
name: From side 4 to side 3
|
||||
description: Action to run when cube goes from side 4 to side 3
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
four_to_five:
|
||||
name: From side 4 to side 5
|
||||
description: Action to run when cube goes from side 4 to side 5
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
four_to_six:
|
||||
name: From side 4 to side 6
|
||||
description: Action to run when cube goes from side 4 to side 6
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
five_to_one:
|
||||
name: From side 5 to side 1
|
||||
description: Action to run when cube goes from side 5 to side 1
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
five_to_two:
|
||||
name: From side 5 to side 2
|
||||
description: Action to run when cube goes from side 5 to side 2
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
five_to_three:
|
||||
name: From side 5 to side 3
|
||||
description: Action to run when cube goes from side 5 to side 3
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
five_to_four:
|
||||
name: From side 5 to side 4
|
||||
description: Action to run when cube goes from side 5 to side 4
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
five_to_six:
|
||||
name: From side 5 to side 6
|
||||
description: Action to run when cube goes from side 5 to side 6
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
six_to_one:
|
||||
name: From side 6 to side 1
|
||||
description: Action to run when cube goes from side 6 to side 1
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
six_to_two:
|
||||
name: From side 6 to side 2
|
||||
description: Action to run when cube goes from side 6 to side 2
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
six_to_three:
|
||||
name: From side 6 to side 3
|
||||
description: Action to run when cube goes from side 6 to side 3
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
six_to_four:
|
||||
name: From side 6 to side 4
|
||||
description: Action to run when cube goes from side 6 to side 4
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
six_to_five:
|
||||
name: From side 6 to side 5
|
||||
description: Action to run when cube goes from side 6 to side 5
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
one_to_one:
|
||||
name: Knock - Side 1
|
||||
description: Action to run when knocking on side 1
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
two_to_two:
|
||||
name: Knock - Side 2
|
||||
description: Action to run when knocking on side 2
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
three_to_three:
|
||||
name: Knock - Side 3
|
||||
description: Action to run when knocking on side 3
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
four_to_four:
|
||||
name: Knock - Side 4
|
||||
description: Action to run when knocking on side 4
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
five_to_five:
|
||||
name: Knock - Side 5
|
||||
description: Action to run when knocking on side 5
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
six_to_six:
|
||||
name: Knock - Side 6
|
||||
description: Action to run when knocking on side 6
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_on_one:
|
||||
name: Slide - Side 1 up
|
||||
description: Action to run when slides with Side 1 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_on_two:
|
||||
name: Slide - Side 2 up
|
||||
description: Action to run when slides with Side 2 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_on_three:
|
||||
name: Slide - Side 3 up
|
||||
description: Action to run when slides with Side 3 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_on_four:
|
||||
name: Slide - Side 4 up
|
||||
description: Action to run when slides with Side 4 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_on_five:
|
||||
name: Slide - Side 5 up
|
||||
description: Action to run when slides with Side 5 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
slide_on_six:
|
||||
name: Slide - Side 6 up
|
||||
description: Action to run when slides with Side 6 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
cube_wake:
|
||||
name: Wake up the cube
|
||||
description: Action to run when cube wakes up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
cube_drop:
|
||||
name: Cube drops
|
||||
description: Action to run when cube drops
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
cube_shake:
|
||||
name: Shake cube
|
||||
description: Action to run when you shake the cube
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_any_side:
|
||||
name: Rotate any side
|
||||
description: 'Actions to run when rotating cube regardless of the side.
|
||||
|
||||
This cancels all side-specific ''rotate'' functions
|
||||
|
||||
e.g Rotate on side 1 will be the same as rotating side 2'
|
||||
default: false
|
||||
selector:
|
||||
boolean: {}
|
||||
rotate_right:
|
||||
name: Rotate right
|
||||
description: Action to run when cube rotates right on any side. This only works
|
||||
if 'Rotate any side' is toggled
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_left:
|
||||
name: Rotate left
|
||||
description: Action to run when cube rotates left on any side. This only works
|
||||
if 'Rotate any side' is toggled
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_left_side_1:
|
||||
name: Rotate cube left with side 1 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_left_side_2:
|
||||
name: Rotate cube left with side 2 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_left_side_3:
|
||||
name: Rotate cube left with side 3 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_left_side_4:
|
||||
name: Rotate cube left with side 4 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_left_side_5:
|
||||
name: Rotate cube left with side 5 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_left_side_6:
|
||||
name: Rotate cube left with side 6 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_right_side_1:
|
||||
name: Rotate cube right with side 1 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_right_side_2:
|
||||
name: Rotate cube right with side 2 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_right_side_3:
|
||||
name: Rotate cube right with side 3 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_right_side_4:
|
||||
name: Rotate cube right with side 4 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_right_side_5:
|
||||
name: Rotate cube right with side 5 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
rotate_right_side_6:
|
||||
name: Rotate cube right with side 6 up
|
||||
default: []
|
||||
selector:
|
||||
action: {}
|
||||
source_url: https://gist.github.com/rvaidya/3fe8a5f3b1d113ffa8625cf5ff2c88a3
|
||||
mode: restart
|
||||
max_exceeded: silent
|
||||
trigger:
|
||||
- platform: event
|
||||
event_type: zha_event
|
||||
event_data:
|
||||
device_id: !input remote
|
||||
action:
|
||||
- variables:
|
||||
command: '{{ trigger.event.data.command }}'
|
||||
value: '{{ trigger.event.data.args.value | default(0) }}'
|
||||
flip_degrees: '{{ trigger.event.data.args.flip_degrees | default(0) }}'
|
||||
flip_any: !input flip_any
|
||||
flip_90: !input flip_90
|
||||
flip_180: !input flip_180
|
||||
slide_any_side: !input slide_any_side
|
||||
knock_any_side: !input knock_any_side
|
||||
rotate_any_side: !input rotate_any_side
|
||||
flip90: 64
|
||||
flip180: 128
|
||||
slide: 256
|
||||
knock: 512
|
||||
shake: 0
|
||||
drop: 3
|
||||
active_face_entity: !input active_face
|
||||
active_face: '{{ states(active_face_entity) | int }}'
|
||||
activated_face: "\n{% if command == \"slide\" or command == \"knock\" %}\n\n {%
|
||||
if trigger.event.data.args.activated_face == 1 %} 1\n\n {% elif trigger.event.data.args.activated_face
|
||||
== 2 %} 5\n\n {% elif trigger.event.data.args.activated_face == 3 %} 6\n\n
|
||||
\ {% elif trigger.event.data.args.activated_face == 4 %} 4\n\n {% elif trigger.event.data.args.activated_face
|
||||
== 5 %} 2\n\n {% elif trigger.event.data.args.activated_face == 6 %} 3\n\n
|
||||
\ {% endif %}\n\n{% elif command == 'flip' %}\n\n {{ trigger.event.data.args.activated_face
|
||||
| int }}\n\n{% endif %}\n"
|
||||
from_face: "\n{% if command == \"flip\" and flip_degrees == 90 %}\n\n {{ ((value
|
||||
- flip90 - (trigger.event.data.args.activated_face - 1)) / 8) + 1 | int }}\n\n{%
|
||||
endif %}\n"
|
||||
relative_degrees: "\n{% if command == \"rotate_right\" or command == \"rotate_left\"
|
||||
%}\n\n {{ trigger.event.data.args.relative_degrees | float }}\n\n{% endif %}\n"
|
||||
- choose:
|
||||
- conditions:
|
||||
- '{{ command == ''checkin'' }}'
|
||||
sequence: !input cube_wake
|
||||
- conditions:
|
||||
- '{{ command == ''flip'' }}'
|
||||
sequence:
|
||||
- service: input_number.set_value
|
||||
target:
|
||||
entity_id: '{{ active_face_entity }}'
|
||||
data:
|
||||
value: '{{ activated_face | int }}'
|
||||
- choose:
|
||||
- conditions: '{{ flip_any }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ activated_face == 1 }}'
|
||||
sequence: !input cube_flip_1
|
||||
- conditions: '{{ activated_face == 2 }}'
|
||||
sequence: !input cube_flip_2
|
||||
- conditions: '{{ activated_face == 3 }}'
|
||||
sequence: !input cube_flip_3
|
||||
- conditions: '{{ activated_face == 4 }}'
|
||||
sequence: !input cube_flip_4
|
||||
- conditions: '{{ activated_face == 5 }}'
|
||||
sequence: !input cube_flip_5
|
||||
- conditions: '{{ activated_face == 6 }}'
|
||||
sequence: !input cube_flip_6
|
||||
- conditions:
|
||||
- '{{ flip_degrees == 90 and flip_90 }}'
|
||||
sequence: !input cube_flip_90
|
||||
- conditions:
|
||||
- '{{ flip_degrees == 180 and flip_180 }}'
|
||||
sequence: !input cube_flip_180
|
||||
- conditions:
|
||||
- '{{ flip_degrees == 90 and activated_face == 1 }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ from_face == 2 }}'
|
||||
sequence: !input two_to_one
|
||||
- conditions: '{{ from_face == 3 }}'
|
||||
sequence: !input three_to_one
|
||||
- conditions: '{{ from_face == 5 }}'
|
||||
sequence: !input five_to_one
|
||||
- conditions: '{{ from_face == 6 }}'
|
||||
sequence: !input six_to_one
|
||||
- conditions:
|
||||
- '{{ flip_degrees == 90 and activated_face == 2 }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ from_face == 1 }}'
|
||||
sequence: !input one_to_two
|
||||
- conditions: '{{ from_face == 3 }}'
|
||||
sequence: !input three_to_two
|
||||
- conditions: '{{ from_face == 4 }}'
|
||||
sequence: !input four_to_two
|
||||
- conditions: '{{ from_face == 6 }}'
|
||||
sequence: !input six_to_two
|
||||
- conditions:
|
||||
- '{{ flip_degrees == 90 and activated_face == 3 }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ from_face == 1 }}'
|
||||
sequence: !input one_to_three
|
||||
- conditions: '{{ from_face == 2 }}'
|
||||
sequence: !input two_to_three
|
||||
- conditions: '{{ from_face == 4 }}'
|
||||
sequence: !input four_to_three
|
||||
- conditions: '{{ from_face == 5 }}'
|
||||
sequence: !input five_to_three
|
||||
- conditions:
|
||||
- '{{ flip_degrees == 90 and activated_face == 4 }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ from_face == 2 }}'
|
||||
sequence: !input two_to_four
|
||||
- conditions: '{{ from_face == 3 }}'
|
||||
sequence: !input three_to_four
|
||||
- conditions: '{{ from_face == 5 }}'
|
||||
sequence: !input five_to_four
|
||||
- conditions: '{{ from_face == 6 }}'
|
||||
sequence: !input six_to_four
|
||||
- conditions:
|
||||
- '{{ flip_degrees == 90 and activated_face == 5 }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ from_face == 1 }}'
|
||||
sequence: !input one_to_five
|
||||
- conditions: '{{ from_face == 3 }}'
|
||||
sequence: !input three_to_five
|
||||
- conditions: '{{ from_face == 4 }}'
|
||||
sequence: !input four_to_five
|
||||
- conditions: '{{ from_face == 6 }}'
|
||||
sequence: !input six_to_five
|
||||
- conditions:
|
||||
- '{{ flip_degrees == 90 and activated_face == 6 }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ from_face == 1 }}'
|
||||
sequence: !input one_to_six
|
||||
- conditions: '{{ from_face == 2 }}'
|
||||
sequence: !input two_to_six
|
||||
- conditions: '{{ from_face == 4 }}'
|
||||
sequence: !input four_to_six
|
||||
- conditions: '{{ from_face == 5 }}'
|
||||
sequence: !input five_to_six
|
||||
- conditions:
|
||||
- '{{ value == flip180 + activated_face - 1 }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ activated_face == 1 }}'
|
||||
sequence: !input four_to_one
|
||||
- conditions: '{{ activated_face == 2 }}'
|
||||
sequence: !input five_to_two
|
||||
- conditions: '{{ activated_face == 3 }}'
|
||||
sequence: !input six_to_three
|
||||
- conditions: '{{ activated_face == 4 }}'
|
||||
sequence: !input one_to_four
|
||||
- conditions: '{{ activated_face == 5 }}'
|
||||
sequence: !input two_to_five
|
||||
- conditions: '{{ activated_face == 6 }}'
|
||||
sequence: !input three_to_six
|
||||
- conditions:
|
||||
- '{{ command == ''knock'' }}'
|
||||
sequence:
|
||||
- service: input_number.set_value
|
||||
target:
|
||||
entity_id: '{{ active_face_entity }}'
|
||||
data:
|
||||
value: '{{ activated_face | int }}'
|
||||
- choose:
|
||||
- conditions: '{{ knock_any_side }}'
|
||||
sequence: !input cube_knock_any
|
||||
- conditions: '{{ activated_face == 1 }}'
|
||||
sequence: !input one_to_one
|
||||
- conditions: '{{ activated_face == 2 }}'
|
||||
sequence: !input two_to_two
|
||||
- conditions: '{{ activated_face == 3 }}'
|
||||
sequence: !input three_to_three
|
||||
- conditions: '{{ activated_face == 4 }}'
|
||||
sequence: !input four_to_four
|
||||
- conditions: '{{ activated_face == 5 }}'
|
||||
sequence: !input five_to_five
|
||||
- conditions: '{{ activated_face == 6 }}'
|
||||
sequence: !input six_to_six
|
||||
- conditions:
|
||||
- '{{ command == ''slide'' }}'
|
||||
sequence:
|
||||
- service: input_number.set_value
|
||||
target:
|
||||
entity_id: '{{ active_face_entity }}'
|
||||
data:
|
||||
value: '{{ activated_face | int }}'
|
||||
- choose:
|
||||
- conditions: '{{ slide_any_side }}'
|
||||
sequence: !input cube_slide_any
|
||||
- conditions:
|
||||
- '{{ value == slide + activated_face - 1 }}'
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions: '{{ activated_face == 1 }}'
|
||||
sequence: !input slide_on_one
|
||||
- conditions: '{{ activated_face == 2 }}'
|
||||
sequence: !input slide_on_two
|
||||
- conditions: '{{ activated_face == 3 }}'
|
||||
sequence: !input slide_on_three
|
||||
- conditions: '{{ activated_face == 4 }}'
|
||||
sequence: !input slide_on_four
|
||||
- conditions: '{{ activated_face == 5 }}'
|
||||
sequence: !input slide_on_five
|
||||
- conditions: '{{ activated_face == 6 }}'
|
||||
sequence: !input slide_on_six
|
||||
- conditions:
|
||||
- '{{ command == ''rotate_left'' and rotate_any_side }}'
|
||||
sequence: !input rotate_left
|
||||
- conditions:
|
||||
- '{{ command == ''rotate_left'' and active_face == 1 }}'
|
||||
sequence: !input rotate_left_side_1
|
||||
- conditions:
|
||||
- '{{ command == ''rotate_left'' and active_face == 2 }}'
|
||||
sequence: !input rotate_left_side_2
|
||||
- conditions:
|
||||
- '{{ command == ''rotate_left'' and active_face == 3 }}'
|
||||
sequence: !input rotate_left_side_3
|
||||
- conditions:
|
||||
- '{{ command == ''rotate_left'' and active_face == 4 }}'
|
||||
sequence: !input rotate_left_side_4
|
||||
- conditions:
|
||||
- '{{ command == ''rotate_left'' and active_face == 5 }}'
|
||||
sequence: !input rotate_left_side_5
|
||||
- conditions:
|
||||
- '{{ command == ''rotate_left'' and active_face == 6 }}'
|
||||
sequence: !input rotate_left_side_6
|
||||
- conditions:
|
||||
- '{{ command == ''rotate_right'' and rotate_any_side }}'
|
||||
sequence: !input rotate_right
|
||||
- conditions:
|
||||
- '{{ command == ''rotate_right'' and active_face == 1 }}'
|
||||
sequence: !input rotate_right_side_1
|
||||
- conditions:
|
||||
- '{{ command == ''rotate_right'' and active_face == 2 }}'
|
||||
sequence: !input rotate_right_side_2
|
||||
- conditions:
|
||||
- '{{ command == ''rotate_right'' and active_face == 3 }}'
|
||||
sequence: !input rotate_right_side_3
|
||||
- conditions:
|
||||
- '{{ command == ''rotate_right'' and active_face == 4 }}'
|
||||
sequence: !input rotate_right_side_4
|
||||
- conditions:
|
||||
- '{{ command == ''rotate_right'' and active_face == 5 }}'
|
||||
sequence: !input rotate_right_side_5
|
||||
- conditions:
|
||||
- '{{ command == ''rotate_right'' and active_face == 6 }}'
|
||||
sequence: !input rotate_right_side_6
|
||||
- conditions:
|
||||
- '{{ command == ''shake'' or value == shake }}'
|
||||
sequence: !input cube_shake
|
||||
- conditions:
|
||||
- '{{ command == ''drop'' or value == drop }}'
|
||||
sequence: !input cube_drop
|
||||
@@ -24,7 +24,7 @@ observations:
|
||||
prob_given_false: 0.0
|
||||
|
||||
- platform: state
|
||||
entity_id: input_boolean.white_bed_occupied
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
to_state: "on"
|
||||
prob_given_true: .67
|
||||
prob_given_false: 0.0
|
||||
|
||||
@@ -71,25 +71,25 @@ sensors:
|
||||
double_planter_needs_water:
|
||||
unique_id: templatebinarysensor.double_planter_needs_water
|
||||
friendly_name: Double Planter Needs Water
|
||||
value_template: "{{ states('sensor.fineoffset_wh51_00f935_moisture')|float(default=0) <= states('input_number.double_planter_water_alert')|int(default=0) }}"
|
||||
value_template: "{{ states('sensor.hasta_soil_sensor_moisture')|float(default=0) <= states('input_number.double_planter_water_alert')|int(default=0) }}"
|
||||
delay_on: "00:05:00"
|
||||
icon_template: >
|
||||
{% if states('sensor.fineoffset_wh51_00f935_moisture') == 'unavailable' %}
|
||||
{% if states('sensor.hasta_soil_sensor_moisture') == 'unavailable' %}
|
||||
mdi:flower-outline
|
||||
{% else %}
|
||||
mdi:flower
|
||||
{% endif %}
|
||||
attribute_templates:
|
||||
moisture: "{{states('sensor.fineoffset_wh51_00f935_moisture') | float(default=0)}}"
|
||||
moisture: "{{states('sensor.hasta_soil_sensor_moisture') | float(default=0)}}"
|
||||
alarm_trigger: "{{states('input_number.double_planter_water_alert') | float(default=0)}}"
|
||||
|
||||
kitchen_fridge_too_warm:
|
||||
unique_id: templatebinarysensor.kitchen_fridge_too_warm
|
||||
friendly_name: Kitchen Fridge Too Warm
|
||||
value_template: "{{ states('sensor.acurite_986_1r_48226_temperature')|int(default=0) > states('input_number.kitchen_fridge_alert')|int(default=0) }}"
|
||||
value_template: "{{ states('sensor.kitchen_fridge_thermostat_temperature')|int(default=0) > states('input_number.kitchen_fridge_alert')|int(default=0) }}"
|
||||
delay_on: "00:30:00"
|
||||
icon_template: >
|
||||
{% if states('sensor.acurite_986_1r_48226_temperature')|int(default=0) > states('input_number.kitchen_fridge_alert')|int(default=0) %}
|
||||
{% if states('sensor.kitchen_fridge_thermostat_temperature')|int(default=0) > states('input_number.kitchen_fridge_alert')|int(default=0) %}
|
||||
mdi:fridge-variant-alert
|
||||
{% else %}
|
||||
mdi:fridge-variant
|
||||
@@ -98,10 +98,10 @@ sensors:
|
||||
kitchen_freezer_too_warm:
|
||||
unique_id: templatebinarysensor.kitchen_freezer_too_warm
|
||||
friendly_name: Kitchen Freezer Too Warm
|
||||
value_template: "{{ states('sensor.acurite_986_2f_42383_temperature')|int(default=0) > states('input_number.kitchen_freezer_alert')|int(default=0) }}"
|
||||
value_template: "{{ states('sensor.kitchen_freezer_thermostat_temperature')|int(default=0) > states('input_number.kitchen_freezer_alert')|int(default=0) }}"
|
||||
delay_on: "00:30:00"
|
||||
icon_template: >
|
||||
{% if states('sensor.acurite_986_2f_42383_temperature')|int(default=0) > states('input_number.kitchen_freezer_alert')|int(default=0) %}
|
||||
{% if states('sensor.kitchen_freezer_thermostat_temperature')|int(default=0) > states('input_number.kitchen_freezer_alert')|int(default=0) %}
|
||||
mdi:fridge-variant-alert
|
||||
{% else %}
|
||||
mdi:fridge-variant
|
||||
@@ -110,10 +110,10 @@ sensors:
|
||||
kitchen_fridge_or_freezer_too_warm:
|
||||
unique_id: templatebinarysensor.kitchen_fridge_or_freezer_too_warm
|
||||
friendly_name: Kitchen Fridge or Freezer Too Warm
|
||||
value_template: "{{ states('sensor.acurite_986_1r_48226_temperature')|int(default=0) > states('input_number.kitchen_fridge_alert')|int(default=0) or states('sensor.acurite_986_2f_42383_temperature')|int(default=0) > states('input_number.kitchen_freezer_alert')|int(default=0) }}"
|
||||
value_template: "{{ states('sensor.kitchen_fridge_thermostat_temperature')|int(default=0) > states('input_number.kitchen_fridge_alert')|int(default=0) or states('sensor.kitchen_freezer_thermostat_temperature')|int(default=0) > states('input_number.kitchen_freezer_alert')|int(default=0) }}"
|
||||
delay_on: "00:30:00"
|
||||
icon_template: >
|
||||
{% if states('sensor.acurite_986_1r_48226_temperature')|int(default=0) > states('input_number.kitchen_fridge_alert')|int(default=0) or states('sensor.acurite_986_2f_42383_temperature')|int(default=0) > states('input_number.kitchen_freezer_alert')|int(default=0) %}
|
||||
{% if states('sensor.kitchen_fridge_thermostat_temperature')|int(default=0) > states('input_number.kitchen_fridge_alert')|int(default=0) or states('sensor.kitchen_freezer_thermostat_temperature')|int(default=0) > states('input_number.kitchen_freezer_alert')|int(default=0) %}
|
||||
mdi:fridge-variant-alert
|
||||
{% else %}
|
||||
mdi:fridge-variant
|
||||
@@ -375,7 +375,7 @@ sensors:
|
||||
# unique_id: templatebinarysensor.warmer_outside
|
||||
# friendly_name: Warmer Outside
|
||||
# value_template: >-
|
||||
# {% if states('sensor.thermostat_temperature') | float(default=0) - 5 < states('sensor.lacrosse_tx141thbv2_0_temperature') | float(default=0) %}
|
||||
# {% if states('sensor.thermostat_temperature') | float(default=0) - 5 < states('sensor.front_yard_thermostat_temperature') | float(default=0) %}
|
||||
# {{'true'}}
|
||||
# {% else %}
|
||||
# {{ 'false' }}
|
||||
@@ -387,7 +387,7 @@ sensors:
|
||||
# unique_id: templatebinarysensor.cooler_outside
|
||||
# friendly_name: Cooler Outside
|
||||
# value_template: >-
|
||||
# {% if states('sensor.lacrosse_tx141thbv2_0_temperature') | float(default=0) + 5 < states('sensor.thermostat_temperature') | float(default=0) %}
|
||||
# {% if states('sensor.front_yard_thermostat_temperature') | float(default=0) + 5 < states('sensor.thermostat_temperature') | float(default=0) %}
|
||||
# {{'true'}}
|
||||
# {% else %}
|
||||
# {{ 'false' }}
|
||||
@@ -701,8 +701,8 @@ sensors:
|
||||
bridgets_bed:
|
||||
unique_id: templatebinarysensor.bridgets_bed
|
||||
friendly_name: Bridget's Bed
|
||||
value_template: "{{ states('input_boolean.white_bed_occupied') }}"
|
||||
icon_template: "{{ iif(is_state('input_boolean.white_bed_occupied','on'),'mdi:bed','mdi:bed-empty','mdi:bed-outline')}}"
|
||||
value_template: "{{ states('binary_sensor.bed_presence_2d14a4_bed_occupied_either') }}"
|
||||
icon_template: "{{ iif(is_state('binary_sensor.bed_presence_2d14a4_bed_occupied_either','on'),'mdi:bed','mdi:bed-empty','mdi:bed-outline')}}"
|
||||
|
||||
check_mail:
|
||||
unique_id: templatebinarysensor.check_mail
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
name: Podein Kids
|
||||
icon: mdi:alpha-p-box-outline
|
||||
options:
|
||||
- Auto
|
||||
- Home
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
name: Weaver Kids
|
||||
icon: mdi:alpha-w-box
|
||||
options:
|
||||
- Auto
|
||||
- Home
|
||||
|
||||
@@ -342,7 +342,7 @@ template:
|
||||
- trigger:
|
||||
- platform: state
|
||||
entity_id: binary_sensor.is_raining
|
||||
not_from:
|
||||
not_to:
|
||||
- "unknown"
|
||||
- "unavailable"
|
||||
|
||||
@@ -416,7 +416,7 @@ automation:
|
||||
to: "on"
|
||||
|
||||
- platform: state
|
||||
entity_id: sensor.ecowitt_wh40_21917_precipitation
|
||||
entity_id: sensor.rain_gauge_precipitation
|
||||
not_to:
|
||||
- "unknown"
|
||||
- "unavailable"
|
||||
@@ -433,7 +433,7 @@ automation:
|
||||
target:
|
||||
entity_id: notify.precipitation
|
||||
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')}}"
|
||||
message: "{{now().strftime('%Y-%m-%d')}}T{{now().strftime('%H:%M:%S.%f')}},{{states('sensor.rain_gauge_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: "Sprinkler: Reset After Automatic Run"
|
||||
id: automation_sprinkler_reset_after_automatic_run
|
||||
@@ -688,7 +688,7 @@ utility_meter:
|
||||
rain_quarter_hourly:
|
||||
unique_id: utility_meter_rain_quarter_hourly
|
||||
name: "Rain: Quarter Hourly"
|
||||
source: sensor.ecowitt_wh40_21917_precipitation
|
||||
source: sensor.rain_gauge_precipitation
|
||||
cycle: quarter-hourly
|
||||
tariffs:
|
||||
- Precipitation
|
||||
@@ -696,7 +696,7 @@ utility_meter:
|
||||
rain_hourly:
|
||||
unique_id: utility_meter_rain_hourly
|
||||
name: "Rain: Hourly"
|
||||
source: sensor.ecowitt_wh40_21917_precipitation
|
||||
source: sensor.rain_gauge_precipitation
|
||||
cycle: hourly
|
||||
tariffs:
|
||||
- Precipitation
|
||||
@@ -704,7 +704,7 @@ utility_meter:
|
||||
rain_daily:
|
||||
unique_id: utility_meter_rain_daily
|
||||
name: "Rain: Daily"
|
||||
source: sensor.ecowitt_wh40_21917_precipitation
|
||||
source: sensor.rain_gauge_precipitation
|
||||
cycle: daily
|
||||
offset: "12:00"
|
||||
tariffs:
|
||||
@@ -713,7 +713,7 @@ utility_meter:
|
||||
rain_monthly:
|
||||
unique_id: utility_meter_rain_monthly
|
||||
name: "Rain: Monthly"
|
||||
source: sensor.ecowitt_wh40_21917_precipitation
|
||||
source: sensor.rain_gauge_precipitation
|
||||
cycle: monthly
|
||||
tariffs:
|
||||
- Precipitation
|
||||
@@ -721,7 +721,7 @@ utility_meter:
|
||||
rain_yearly:
|
||||
unique_id: utility_meter_rain_yearly
|
||||
name: "Rain: Yearly"
|
||||
source: sensor.ecowitt_wh40_21917_precipitation
|
||||
source: sensor.rain_gauge_precipitation
|
||||
cycle: yearly
|
||||
tariffs:
|
||||
- Precipitation
|
||||
@@ -729,7 +729,7 @@ utility_meter:
|
||||
sprinkler_recent_rain:
|
||||
unique_id: utility_meter_sprinkler_recent_rain
|
||||
name: "Sprinkler: Recent Rain"
|
||||
source: sensor.ecowitt_wh40_21917_precipitation
|
||||
source: sensor.rain_gauge_precipitation
|
||||
cycle: yearly
|
||||
tariffs:
|
||||
- Precipitation
|
||||
|
||||
@@ -21,7 +21,7 @@ script:
|
||||
|
||||
media_content_type:
|
||||
description: "The media content type of the specified media"
|
||||
example: audio/mpeg
|
||||
example: music
|
||||
selector:
|
||||
text:
|
||||
|
||||
@@ -41,14 +41,28 @@ script:
|
||||
# If YTube Music Player is in use, play the announcement over those speakers
|
||||
# If YTube Music Player is not in use, play the announcement over the media_player.announcements speaker group
|
||||
media_player: '{{ iif(entity_id is defined, entity_id, iif(is_state("media_player.ytube_music_player","playing") or is_state("media_player.ytube_music_player","idle") or is_state("media_player.ytube_music_player","paused"),state_attr("media_player.ytube_music_player","remote_player_id"),"media_player.announcements")) }}'
|
||||
remote_player: '{{ state_attr("media_player.ytube_music_player","remote_player_id") }}'
|
||||
remote_player: '{{ iif(entity_id is defined, entity_id, iif(is_state("media_player.ytube_music_player","playing") or is_state("media_player.ytube_music_player","idle") or is_state("media_player.ytube_music_player","paused"),state_attr("media_player.ytube_music_player","remote_player_id"),"")) }}'
|
||||
content_id: '{{ iif(media_content_id is defined,media_content_id,"media-source://media_source/tts/welcome_to_daddys_house.mp3") }}'
|
||||
content_type: '{{ iif(media_content_type is defined,media_content_type,"audio/mpeg") }}'
|
||||
content_type: '{{ iif(media_content_type is defined,media_content_type,"music") }}'
|
||||
volume: "{{ iif(volume is defined,volume,0.6) }}"
|
||||
original_volume: '{{ iif(is_state("media_player.ytube_music_player","off"),0.0,state_attr(state_attr("media_player.ytube_music_player","remote_player_id"), "volume_level")) }}'
|
||||
original_volume: '{{ iif(is_state("media_player.ytube_music_player","off"),0.0)}}' #,state_attr(state_attr("media_player.ytube_music_player","remote_player_id"), "volume")) }}'
|
||||
ytube_in_use: '{{ is_state("media_player.ytube_music_player","playing") or is_state("media_player.ytube_music_player","idle") or is_state("media_player.ytube_music_player","paused") }}'
|
||||
|
||||
sequence:
|
||||
- action: logbook.log
|
||||
data:
|
||||
name: Clever Announcement Values
|
||||
entity_id: script.make_clever_announcement
|
||||
message: >
|
||||
Hopefully this contains all of the values:
|
||||
media_player: {{ media_player }}
|
||||
content_id: {{ content_id }}
|
||||
content_type: {{ content_type }}
|
||||
volume: {{ volume }}
|
||||
original_volume: {{ original_volume }}
|
||||
ytube_in_use: {{ ytube_in_use }}
|
||||
domain: script
|
||||
|
||||
- choose:
|
||||
- alias: "Ytube music player is playing something"
|
||||
conditions: "{{ ytube_in_use }}"
|
||||
@@ -65,15 +79,6 @@ script:
|
||||
minutes: 0
|
||||
seconds: 2
|
||||
|
||||
# This looks to cause the first part of the message to be missed.
|
||||
# Instead of initally muting the speakers, I'll just set them to the appropriate volume off the bat
|
||||
# - alias: "Mute the announcement speakers momentarily"
|
||||
# service: media_player.volume_set
|
||||
# target:
|
||||
# entity_id: '{{ media_player }}'
|
||||
# data:
|
||||
# volume_level: 0
|
||||
|
||||
- alias: "Set the volume on the announcement speakers"
|
||||
service: media_player.volume_set
|
||||
target:
|
||||
@@ -81,12 +86,6 @@ script:
|
||||
data:
|
||||
volume_level: "{{volume}}"
|
||||
|
||||
# - alias: "Wait another bit for the volume to be set"
|
||||
# delay:
|
||||
# hours: 0
|
||||
# minutes: 0
|
||||
# seconds: 2
|
||||
|
||||
- alias: "Play the announcement"
|
||||
service: media_player.play_media
|
||||
target:
|
||||
@@ -95,19 +94,6 @@ script:
|
||||
media_content_id: "{{content_id}}"
|
||||
media_content_type: "{{content_type}}"
|
||||
|
||||
# This is now being done before the announcement is played
|
||||
# - alias: "Set the volume on the announcement speakers"
|
||||
# service: media_player.volume_set
|
||||
# target:
|
||||
# entity_id: '{{media_player}}'
|
||||
# data:
|
||||
# volume_level: '{{volume}}'
|
||||
|
||||
# Wait until media player is idle
|
||||
# This doesn't seem to be working as written. Trying a wait_for_trigger instead
|
||||
#- wait_template: "{{ is_state(media_player,'idle')}}"
|
||||
|
||||
# This shit doesn't work either
|
||||
- alias: Wait for the specified media_player(s) to become idle
|
||||
wait_for_trigger:
|
||||
- platform: template
|
||||
|
||||
@@ -30,7 +30,6 @@ recorder:
|
||||
- sensor.mail_updated
|
||||
- light.upstairs_public
|
||||
- input_select.master_bedroom_camera
|
||||
- automation.cycle_cameras
|
||||
- input_select.outdoor_camera_cycle
|
||||
- input_select.indoor_camera_cycle
|
||||
- sensor.nws_alerts_last_updated
|
||||
|
||||
@@ -13,5 +13,4 @@ sensor:
|
||||
name: Lowest Ecowitt Battery
|
||||
type: min
|
||||
entity_ids:
|
||||
- sensor.fineoffset_wh51_0ce593_battery
|
||||
|
||||
- sensor.hasta_soil_sensor_battery
|
||||
|
||||
@@ -44,11 +44,11 @@ plant:
|
||||
min_conductivity: 10
|
||||
max_conductivity: 5700
|
||||
|
||||
fineoffset_wh51_0ce593:
|
||||
hasta_soil_sensor:
|
||||
sensors:
|
||||
moisture: sensor.fineoffset_wh51_0ce593_moisture
|
||||
moisture: sensor.hasta_soil_sensor_moisture
|
||||
temperature: sensor.outdoor_temperature
|
||||
battery: sensor.fineoffset_wh51_0ce593_battery
|
||||
battery: sensor.hasta_soil_sensor_battery
|
||||
brightness: sensor.outdoors_mean_illuminance
|
||||
min_moisture: 15
|
||||
max_moisture: 80
|
||||
@@ -56,3 +56,16 @@ plant:
|
||||
max_brightness: 300000
|
||||
min_temperature: -30
|
||||
max_temperature: 120
|
||||
|
||||
daisy_soil_sensor:
|
||||
sensors:
|
||||
moisture: sensor.daisy_soil_sensor_moisture
|
||||
temperature: sensor.outdoor_temperature
|
||||
battery: sensor.daisy_soil_sensor_battery
|
||||
brightness: sensor.outdoors_mean_illuminance
|
||||
min_moisture: 15
|
||||
max_moisture: 80
|
||||
min_brightness: 200
|
||||
max_brightness: 300000
|
||||
min_temperature: -30
|
||||
max_temperature: 120
|
||||
@@ -4,14 +4,13 @@ mqtt:
|
||||
device_class: timestamp
|
||||
icon: mdi:clock-in
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-Tower/A/6162/time"
|
||||
force_update: true
|
||||
entity_category: diagnostic
|
||||
unique_id: AcuriteTower-6162-A-UTC
|
||||
unique_id: acurite-tower-1-a-time
|
||||
device:
|
||||
identifiers: AcuriteTower-6162-A
|
||||
name: Acurite 592TXR A
|
||||
model: Acurite 592TXR
|
||||
manufacturer: rtl_433
|
||||
identifiers: acurite-tower-1-a
|
||||
name: Back Yard Thermostat
|
||||
model: Tower
|
||||
manufacturer: Acurite
|
||||
|
||||
- name: "Battery"
|
||||
device_class: battery
|
||||
@@ -20,13 +19,12 @@ mqtt:
|
||||
state_class: measurement
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-Tower/A/6162/battery_ok"
|
||||
force_update: true
|
||||
unique_id: AcuriteTower-6162-A-B
|
||||
unique_id: acurite-tower-1-a-battery-ok
|
||||
device:
|
||||
identifiers: AcuriteTower-6162-A
|
||||
name: Acurite 592TXR A
|
||||
model: Acurite 592TXRv2
|
||||
manufacturer: rtl_433
|
||||
identifiers: acurite-tower-1-a
|
||||
name: Back Yard Thermostat
|
||||
model: Tower
|
||||
manufacturer: Acurite
|
||||
|
||||
- name: "Temperature"
|
||||
device_class: temperature
|
||||
@@ -34,13 +32,12 @@ mqtt:
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-Tower/A/6162/temperature_C"
|
||||
force_update: true
|
||||
unique_id: AcuriteTower-6162-A-T
|
||||
unique_id: acurite-tower-1-a-temperature-c
|
||||
device:
|
||||
identifiers: AcuriteTower-6162-A
|
||||
name: Acurite 592TXR A
|
||||
model: Acurite 592TXR
|
||||
manufacturer: rtl_433
|
||||
identifiers: acurite-tower-1-a
|
||||
name: Back Yard Thermostat
|
||||
model: Tower
|
||||
manufacturer: Acurite
|
||||
|
||||
- name: "Humidity"
|
||||
device_class: humidity
|
||||
@@ -48,10 +45,9 @@ mqtt:
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-Tower/A/6162/humidity"
|
||||
force_update: true
|
||||
unique_id: AcuriteTower-6162-A-H
|
||||
unique_id: acurite-tower-1-a-humidity
|
||||
device:
|
||||
identifiers: AcuriteTower-6162-A
|
||||
name: Acurite 592TXR A
|
||||
model: Acurite 592TXR
|
||||
manufacturer: rtl_433
|
||||
identifiers: acurite-tower-1-a
|
||||
name: Back Yard Thermostat
|
||||
model: Tower
|
||||
manufacturer: Acurite
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
mqtt:
|
||||
device_tracker:
|
||||
- name: "Location"
|
||||
icon: mdi:car-estate
|
||||
json_attributes_topic: "cleverdevices/clever_traverse/attributes"
|
||||
unique_id: chevrolet-traverse-lt-awd
|
||||
device:
|
||||
name: Chevrolet Traverse
|
||||
identifiers: chevrolet-traverse-lt-awd
|
||||
model_id: LT AWD
|
||||
model: Traverse
|
||||
manufacturer: Chevrolet
|
||||
@@ -0,0 +1,42 @@
|
||||
mqtt:
|
||||
sensor:
|
||||
- name: "Timestamp"
|
||||
device_class: timestamp
|
||||
icon: mdi:clock-in
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Fineoffset-WH51/00e1cd/time"
|
||||
entity_category: diagnostic
|
||||
unique_id: fine-offset-wh51-daisy-time
|
||||
device:
|
||||
identifiers: ecowitt-wh51-daisy
|
||||
name: Daisy Soil Sensor
|
||||
model: WH51
|
||||
manufacturer: Ecowitt
|
||||
|
||||
- name: "Battery"
|
||||
device_class: battery
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ (float(value) * 99 + 1) | round(0) }}"
|
||||
state_class: measurement
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Fineoffset-WH51/00e1cd/battery_ok"
|
||||
unique_id: fine-offset-wh51-battery-ok
|
||||
device:
|
||||
identifiers: ecowitt-wh51-daisy
|
||||
name: Daisy Soil Sensor
|
||||
model: WH51
|
||||
manufacturer: Ecowitt
|
||||
|
||||
- name: "Moisture"
|
||||
device_class: moisture
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Fineoffset-WH51/00e1cd/moisture"
|
||||
unique_id: fine-offset-wh51-daisy-moisture
|
||||
device:
|
||||
identifiers: ecowitt-wh51-daisy
|
||||
name: Daisy Soil Sensor
|
||||
model: WH51
|
||||
manufacturer: Ecowitt
|
||||
|
||||
|
||||
@@ -4,14 +4,13 @@ mqtt:
|
||||
device_class: timestamp
|
||||
icon: mdi:clock-in
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Nexus-TH/1/44/time"
|
||||
force_update: true
|
||||
entity_category: diagnostic
|
||||
unique_id: Nexus-TH-1-UTC
|
||||
unique_id: nexus-th-1-time
|
||||
device:
|
||||
identifiers: Nexus-TH-1
|
||||
name: Nexus-TH-1
|
||||
model: Nexus-TH
|
||||
manufacturer: rtl_433
|
||||
identifiers: nexus-th-1
|
||||
name: Deck Thermostat
|
||||
model: TH
|
||||
manufacturer: Nexus
|
||||
|
||||
- name: "Battery"
|
||||
device_class: battery
|
||||
@@ -20,13 +19,12 @@ mqtt:
|
||||
state_class: measurement
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Nexus-TH/1/44/battery_ok"
|
||||
force_update: true
|
||||
unique_id: Nexus-TH-1-B
|
||||
unique_id: nexus-th-1-battery-ok
|
||||
device:
|
||||
identifiers: Nexus-TH-1
|
||||
name: Nexus-TH-1
|
||||
model: Nexus-TH
|
||||
manufacturer: rtl_433
|
||||
identifiers: nexus-th-1
|
||||
name: Deck Thermostat
|
||||
model: TH
|
||||
manufacturer: Nexus
|
||||
|
||||
- name: "Temperature"
|
||||
device_class: temperature
|
||||
@@ -34,13 +32,12 @@ mqtt:
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Nexus-TH/1/44/temperature_C"
|
||||
force_update: true
|
||||
unique_id: Nexus-TH-1-T
|
||||
unique_id: nexus-th-1-temperature-c
|
||||
device:
|
||||
identifiers: Nexus-TH-1
|
||||
name: Nexus-TH-1
|
||||
model: Nexus-TH
|
||||
manufacturer: rtl_433
|
||||
identifiers: nexus-th-1
|
||||
name: Deck Thermostat
|
||||
model: TH
|
||||
manufacturer: Nexus
|
||||
|
||||
- name: "Humidity"
|
||||
device_class: humidity
|
||||
@@ -48,10 +45,9 @@ mqtt:
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Nexus-TH/1/44/humidity"
|
||||
force_update: true
|
||||
unique_id: Nexus-TH-1-H
|
||||
unique_id: nexus-th-1-humidity
|
||||
device:
|
||||
identifiers: Nexus-TH-1
|
||||
name: Nexus-TH-1
|
||||
model: Nexus-TH
|
||||
manufacturer: rtl_433
|
||||
identifiers: nexus-th-1
|
||||
name: Deck Thermostat
|
||||
model: TH
|
||||
manufacturer: Nexus
|
||||
|
||||
+53
-57
@@ -1,57 +1,53 @@
|
||||
mqtt:
|
||||
sensor:
|
||||
- name: "Timestamp"
|
||||
device_class: timestamp
|
||||
icon: mdi:clock-in
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/LaCrosse-TX141THBv2/0/233/time"
|
||||
force_update: true
|
||||
entity_category: diagnostic
|
||||
unique_id: LaCrosse-TX141THBv2-0-UTC
|
||||
device:
|
||||
identifiers: LaCrosse-TX141THBv2-0
|
||||
name: LaCrosse-TX141THBv2-0
|
||||
model: LaCrosse-TX141THBv2
|
||||
manufacturer: rtl_433
|
||||
|
||||
- name: "Battery"
|
||||
device_class: battery
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ (float(value) * 99 + 1) | round(0) }}"
|
||||
state_class: measurement
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/LaCrosse-TX141THBv2/0/233/battery_ok"
|
||||
force_update: true
|
||||
unique_id: LaCrosse-TX141THBv2-0-B
|
||||
device:
|
||||
identifiers: LaCrosse-TX141THBv2-0
|
||||
name: LaCrosse-TX141THBv2-0
|
||||
model: LaCrosse-TX141THBv2
|
||||
manufacturer: rtl_433
|
||||
|
||||
- name: "Temperature"
|
||||
device_class: temperature
|
||||
unit_of_measurement: "°C"
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/LaCrosse-TX141THBv2/0/233/temperature_C"
|
||||
force_update: true
|
||||
unique_id: LaCrosse-TX141THBv2-0-T
|
||||
device:
|
||||
identifiers: LaCrosse-TX141THBv2-0
|
||||
name: LaCrosse-TX141THBv2-0
|
||||
model: LaCrosse-TX141THBv2
|
||||
manufacturer: rtl_433
|
||||
|
||||
- name: "Humidity"
|
||||
device_class: humidity
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/LaCrosse-TX141THBv2/0/233/humidity"
|
||||
force_update: true
|
||||
unique_id: LaCrosse-TX141THBv2-0-H
|
||||
device:
|
||||
identifiers: LaCrosse-TX141THBv2-0
|
||||
name: LaCrosse-TX141THBv2-0
|
||||
model: LaCrosse-TX141THBv2
|
||||
manufacturer: rtl_433
|
||||
mqtt:
|
||||
sensor:
|
||||
- name: "Timestamp"
|
||||
device_class: timestamp
|
||||
icon: mdi:clock-in
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/LaCrosse-TX141THBv2/0/233/time"
|
||||
entity_category: diagnostic
|
||||
unique_id: lacrosse-tx141thbv2-0-time
|
||||
device:
|
||||
identifiers: lacrosse-tx141thbv2-0
|
||||
name: Front Yard Thermostat
|
||||
model: TX141THBv2
|
||||
manufacturer: LaCrosse
|
||||
|
||||
- name: "Battery"
|
||||
device_class: battery
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ (float(value) * 99 + 1) | round(0) }}"
|
||||
state_class: measurement
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/LaCrosse-TX141THBv2/0/233/battery_ok"
|
||||
unique_id: lacrosse-tx141thbv2-0-battery-ok
|
||||
device:
|
||||
identifiers: lacrosse-tx141thbv2-0
|
||||
name: Front Yard Thermostat
|
||||
model: TX141THBv2
|
||||
manufacturer: LaCrosse
|
||||
|
||||
- name: "Temperature"
|
||||
device_class: temperature
|
||||
unit_of_measurement: "°C"
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/LaCrosse-TX141THBv2/0/233/temperature_C"
|
||||
unique_id: lacrosse-tx141thbv2-0-temperature-c
|
||||
device:
|
||||
identifiers: lacrosse-tx141thbv2-0
|
||||
name: Front Yard Thermostat
|
||||
model: TX141THBv2
|
||||
manufacturer: LaCrosse
|
||||
|
||||
- name: "Humidity"
|
||||
device_class: humidity
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/LaCrosse-TX141THBv2/0/233/humidity"
|
||||
unique_id: lacrosse-tx141thbv2-0-humidity
|
||||
device:
|
||||
identifiers: lacrosse-tx141thbv2-0
|
||||
name: Front Yard Thermostat
|
||||
model: TX141THBv2
|
||||
manufacturer: LaCrosse
|
||||
+40
-44
@@ -1,44 +1,40 @@
|
||||
# Green Ziptie
|
||||
mqtt:
|
||||
sensor:
|
||||
- name: "Timestamp"
|
||||
device_class: timestamp
|
||||
icon: mdi:clock-in
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Fineoffset-WH51/0ce593/time"
|
||||
force_update: true
|
||||
entity_category: diagnostic
|
||||
unique_id: Fineoffset-WH51-0ce593-UTC
|
||||
device:
|
||||
identifiers: Fineoffset-WH51-0ce593
|
||||
name: Fineoffset-WH51-0ce593
|
||||
model: Fineoffset-WH51
|
||||
manufacturer: rtl_433
|
||||
|
||||
- name: "Battery"
|
||||
device_class: battery
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ (float(value) * 99 + 1) | round(0) }}"
|
||||
state_class: measurement
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Fineoffset-WH51/0ce593/battery_ok"
|
||||
force_update: true
|
||||
unique_id: Fineoffset-WH51-0ce593-B
|
||||
device:
|
||||
identifiers: Fineoffset-WH51-0ce593
|
||||
name: Fineoffset-WH51-0ce593
|
||||
model: Fineoffset-WH51
|
||||
manufacturer: rtl_433
|
||||
|
||||
- name: "Moisture"
|
||||
device_class: moisture
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Fineoffset-WH51/0ce593/moisture"
|
||||
force_update: true
|
||||
unique_id: Fineoffset-WH51-0ce593-H
|
||||
device:
|
||||
identifiers: Fineoffset-WH51-0ce593
|
||||
name: Fineoffset-WH51-0ce593
|
||||
model: Fineoffset-WH51
|
||||
manufacturer: rtl_433
|
||||
mqtt:
|
||||
sensor:
|
||||
- name: "Timestamp"
|
||||
device_class: timestamp
|
||||
icon: mdi:clock-in
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Fineoffset-WH51/0ce593/time"
|
||||
entity_category: diagnostic
|
||||
unique_id: fine-offset-wh51-hasta-time
|
||||
device:
|
||||
identifiers: ecowitt-wh51-hasta
|
||||
name: Hasta Soil Sensor
|
||||
model: WH51
|
||||
manufacturer: Ecowitt
|
||||
|
||||
- name: "Battery"
|
||||
device_class: battery
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ (float(value) * 99 + 1) | round(0) }}"
|
||||
state_class: measurement
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Fineoffset-WH51/0ce593/battery_ok"
|
||||
unique_id: fine-offset-wh51-hasta-battery-ok
|
||||
device:
|
||||
identifiers: ecowitt-wh51-hasta
|
||||
name: Hasta Soil Sensor
|
||||
model: WH51
|
||||
manufacturer: Ecowitt
|
||||
|
||||
- name: "Moisture"
|
||||
device_class: moisture
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Fineoffset-WH51/0ce593/moisture"
|
||||
unique_id: fine-offset-wh51-0ce593-moisture
|
||||
device:
|
||||
identifiers: ecowitt-wh51-hasta
|
||||
name: Hasta Soil Sensor
|
||||
model: WH51
|
||||
manufacturer: Ecowitt
|
||||
@@ -4,14 +4,14 @@ mqtt:
|
||||
device_class: timestamp
|
||||
icon: mdi:clock-in
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/2F/42383/time"
|
||||
force_update: true
|
||||
entity_category: diagnostic
|
||||
unique_id: Acurite-986-2F-42383-UTC
|
||||
unique_id: acurite-986-2f-time
|
||||
device:
|
||||
identifiers: Acurite-986-2F-42383
|
||||
name: Acurite-986-2F-42383
|
||||
model: Acurite-986
|
||||
manufacturer: rtl_433
|
||||
identifiers: acurite-986-2f
|
||||
name: Kitchen Freezer Thermostat
|
||||
model_id: 2F
|
||||
model: 986
|
||||
manufacturer: Acurite
|
||||
|
||||
- name: "Battery"
|
||||
device_class: battery
|
||||
@@ -20,13 +20,13 @@ mqtt:
|
||||
state_class: measurement
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/2F/42383/battery_ok"
|
||||
force_update: true
|
||||
unique_id: Acurite-986-2F-42383-B
|
||||
unique_id: acurite-986-2f-battery-ok
|
||||
device:
|
||||
identifiers: Acurite-986-2F-42383
|
||||
name: Acurite-986-2F-42383
|
||||
model: Acurite-986
|
||||
manufacturer: rtl_433
|
||||
identifiers: acurite-986-2f
|
||||
name: Kitchen Freezer Thermostat
|
||||
model_id: 2F
|
||||
model: 986
|
||||
manufacturer: Acurite
|
||||
|
||||
- name: "Temperature"
|
||||
device_class: temperature
|
||||
@@ -34,10 +34,10 @@ mqtt:
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/2F/42383/temperature_C"
|
||||
force_update: true
|
||||
unique_id: Acurite-986-2F-42383-T
|
||||
unique_id: acurite-986-2f-temperature-c
|
||||
device:
|
||||
identifiers: Acurite-986-2F-42383
|
||||
name: Acurite-986-2F-42383
|
||||
model: Acurite-986
|
||||
manufacturer: rtl_433
|
||||
identifiers: acurite-986-2f
|
||||
name: Kitchen Freezer Thermostat
|
||||
model_id: 2F
|
||||
model: 986
|
||||
manufacturer: Acurite
|
||||
@@ -4,14 +4,14 @@ mqtt:
|
||||
device_class: timestamp
|
||||
icon: mdi:clock-in
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/1R/48226/time"
|
||||
force_update: true
|
||||
entity_category: diagnostic
|
||||
unique_id: Acurite-986-1R-48226-UTC
|
||||
unique_id: acurite-986-1r-time
|
||||
device:
|
||||
identifiers: Acurite-986-1R-48226
|
||||
name: Acurite-986-1R-48226
|
||||
model: Acurite-986
|
||||
manufacturer: rtl_433
|
||||
identifiers: acurite-986-1r
|
||||
name: Kitchen Fridge Thermostat
|
||||
model_id: 1R
|
||||
model: 986
|
||||
manufacturer: Acurite
|
||||
|
||||
- name: "Battery"
|
||||
device_class: battery
|
||||
@@ -20,13 +20,13 @@ mqtt:
|
||||
state_class: measurement
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/1R/48226/battery_ok"
|
||||
force_update: true
|
||||
unique_id: Acurite-986-1R-48226-B
|
||||
unique_id: acurite-986-1r-battery-ok
|
||||
device:
|
||||
identifiers: Acurite-986-1R-48226
|
||||
name: Acurite-986-1R-48226
|
||||
model: Acurite-986
|
||||
manufacturer: rtl_433
|
||||
identifiers: acurite-986-1r
|
||||
name: Kitchen Fridge Thermostat
|
||||
model_id: 1R
|
||||
model: 986
|
||||
manufacturer: Acurite
|
||||
|
||||
- name: "Temperature"
|
||||
device_class: temperature
|
||||
@@ -34,10 +34,10 @@ mqtt:
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/1R/48226/temperature_C"
|
||||
force_update: true
|
||||
unique_id: Acurite-986-1R-48226-H
|
||||
unique_id: acurite-986-1r-temperature-c
|
||||
device:
|
||||
identifiers: Acurite-986-1R-48226
|
||||
name: Acurite-986-1R-48226
|
||||
model: Acurite-986
|
||||
manufacturer: rtl_433
|
||||
identifiers: acurite-986-1r
|
||||
name: Kitchen Fridge Thermostat
|
||||
model_id: 1R
|
||||
model: 986
|
||||
manufacturer: Acurite
|
||||
@@ -1,73 +0,0 @@
|
||||
mqtt:
|
||||
sensor:
|
||||
- name: "Timestamp"
|
||||
device_class: timestamp
|
||||
icon: mdi:clock-in
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/EcoWitt-WH40/21917/time"
|
||||
force_update: true
|
||||
entity_category: diagnostic
|
||||
unique_id: EcoWitt-WH40-21917-UTC
|
||||
device:
|
||||
identifiers: EcoWitt-WH40-21917
|
||||
name: EcoWitt-WH40-21917
|
||||
model: EcoWitt-WH40
|
||||
manufacturer: rtl_433
|
||||
|
||||
# - name: "Data"
|
||||
# value_template: "{{ value }}"
|
||||
# state_class: measurement
|
||||
# entity_category: diagnostic
|
||||
# state_topic: "rtl_433/9b13b3f4-rtl433/devices/EcoWitt-WH40/21917/data"
|
||||
# force_update: true
|
||||
# unique_id: EcoWitt-WH40-21917-D
|
||||
# device:
|
||||
# identifiers: EcoWitt-WH40-21917
|
||||
# name: EcoWitt-WH40-21917
|
||||
# model: EcoWitt-WH40
|
||||
# manufacturer: rtl_433
|
||||
|
||||
- name: "Precipitation"
|
||||
device_class: precipitation
|
||||
unit_of_measurement: "mm"
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/EcoWitt-WH40/21917/rain_mm"
|
||||
force_update: true
|
||||
unique_id: EcoWitt-WH40-21917-H
|
||||
device:
|
||||
identifiers: EcoWitt-WH40-21917
|
||||
name: EcoWitt-WH40-21917
|
||||
model: EcoWitt-WH40
|
||||
manufacturer: rtl_433
|
||||
|
||||
- name: "Battery"
|
||||
device_class: battery
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ (float(value) / 1.5) * 100 | round(0) }}"
|
||||
state_class: measurement
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/EcoWitt-WH40/21917/battery_V"
|
||||
force_update: true
|
||||
unique_id: EcoWitt-WH40-21917-V
|
||||
device:
|
||||
identifiers: EcoWitt-WH40-21917
|
||||
name: EcoWitt-WH40-21917
|
||||
model: EcoWitt-WH40
|
||||
manufacturer: rtl_433
|
||||
|
||||
binary_sensor:
|
||||
|
||||
- name: "Battery OK"
|
||||
value_template: "{{ value|int }}"
|
||||
device_class: problem
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/EcoWitt-WH40/21917/battery_ok"
|
||||
payload_on: "1"
|
||||
payload_off: "0"
|
||||
force_update: true
|
||||
unique_id: EcoWitt-WH40-21917-Battery-OK
|
||||
device:
|
||||
identifiers: EcoWitt-WH40-21917
|
||||
name: EcoWitt-WH40-21917
|
||||
model: EcoWitt-WH40
|
||||
manufacturer: rtl_433
|
||||
@@ -0,0 +1,11 @@
|
||||
mqtt:
|
||||
device_tracker:
|
||||
- name: Kristy's Phone
|
||||
icon: mdi:cellphone
|
||||
json_attributes_topic: "cleverdevices/kristy_s_phone/attributes"
|
||||
unique_id: kristys-phone
|
||||
|
||||
- name: nmap_tracker_fe_cf_82_b2_22_e0
|
||||
icon: mdi:cellphone
|
||||
json_attributes_topic: "cleverdevices/marshalls_phone/attributes"
|
||||
unique_id: marshalls-phone
|
||||
@@ -0,0 +1,55 @@
|
||||
mqtt:
|
||||
sensor:
|
||||
- name: "Timestamp"
|
||||
device_class: timestamp
|
||||
icon: mdi:clock-in
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/EcoWitt-WH40/21917/time"
|
||||
entity_category: diagnostic
|
||||
unique_id: ecowitt-wh40-time
|
||||
device:
|
||||
identifiers: ecowitt-wh40
|
||||
name: Rain Gauge
|
||||
model: WH40
|
||||
manufacturer: EcoWitt
|
||||
|
||||
- name: "Precipitation"
|
||||
device_class: precipitation
|
||||
unit_of_measurement: "mm"
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/EcoWitt-WH40/21917/rain_mm"
|
||||
unique_id: ecowitt-wh40-rain-mm
|
||||
device:
|
||||
identifiers: ecowitt-wh40
|
||||
name: Rain Gauge
|
||||
model: WH40
|
||||
manufacturer: EcoWitt
|
||||
|
||||
- name: "Battery"
|
||||
device_class: battery
|
||||
unit_of_measurement: "%"
|
||||
value_template: "{{ (float(value) / 1.5) * 100 | round(0) }}"
|
||||
state_class: measurement
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/EcoWitt-WH40/21917/battery_V"
|
||||
unique_id: ecowitt-wh40-battery-v
|
||||
device:
|
||||
identifiers: ecowitt-wh40
|
||||
name: Rain Gauge
|
||||
model: WH40
|
||||
manufacturer: EcoWitt
|
||||
|
||||
binary_sensor:
|
||||
- name: "Battery OK"
|
||||
value_template: "{{ value|int }}"
|
||||
device_class: problem
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/EcoWitt-WH40/21917/battery_ok"
|
||||
payload_on: "1"
|
||||
payload_off: "0"
|
||||
unique_id: ecowitt-wh40-battery-ok
|
||||
device:
|
||||
identifiers: ecowitt-wh40
|
||||
name: Rain Gauge
|
||||
model: WH40
|
||||
manufacturer: EcoWitt
|
||||
@@ -0,0 +1,112 @@
|
||||
mqtt:
|
||||
sensor:
|
||||
- name: "Timestamp"
|
||||
device_class: timestamp
|
||||
icon: mdi:clock-in
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/TPMS/Schrader-EG53MA4/0D0D33/time"
|
||||
entity_category: diagnostic
|
||||
unique_id: schrader-0d0d33-time
|
||||
device:
|
||||
name: "Tire 1"
|
||||
identifiers: schrader-0d0d33
|
||||
via_device: chevrolet-traverse-lt-awd
|
||||
|
||||
- name: "Pressure"
|
||||
device_class: pressure
|
||||
unit_of_measurement: "kPa"
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/TPMS/Schrader-EG53MA4/0D0D33/pressure_kPa"
|
||||
unique_id: schrader-0d0d33-pressure-kpa
|
||||
device:
|
||||
name: "Tire 1"
|
||||
identifiers: schrader-0d0d33
|
||||
via_device: chevrolet-traverse-lt-awd
|
||||
|
||||
- name: "Temperature"
|
||||
device_class: temperature
|
||||
unit_of_measurement: "°C"
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/TPMS/Schrader-EG53MA4/0D0D33/temperature_C"
|
||||
unique_id: schrader-0d0d33-temperature-c
|
||||
device:
|
||||
name: "Tire 1"
|
||||
identifiers: schrader-0d0d33
|
||||
via_device: chevrolet-traverse-lt-awd
|
||||
|
||||
- name: "Timestamp"
|
||||
device_class: timestamp
|
||||
icon: mdi:clock-in
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/TPMS/Schrader-EG53MA4/0D31A0/time"
|
||||
entity_category: diagnostic
|
||||
unique_id: schrader-0d31a0-time
|
||||
device:
|
||||
name: "Tire 2"
|
||||
identifiers: schrader-0d31a0
|
||||
via_device: chevrolet-traverse-lt-awd
|
||||
|
||||
- name: "Pressure"
|
||||
device_class: pressure
|
||||
unit_of_measurement: "kPa"
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/TPMS/Schrader-EG53MA4/0D31A0/pressure_kPa"
|
||||
unique_id: schrader-0d31a0-pressure-kpa
|
||||
device:
|
||||
name: "Tire 2"
|
||||
identifiers: schrader-0d31a0
|
||||
via_device: chevrolet-traverse-lt-awd
|
||||
|
||||
- name: "Temperature"
|
||||
device_class: temperature
|
||||
unit_of_measurement: "°C"
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/TPMS/Schrader-EG53MA4/0D31A0/temperature_C"
|
||||
unique_id: schrader-0d31a0-temperature-c
|
||||
device:
|
||||
name: "Tire 2"
|
||||
identifiers: schrader-0d31a0
|
||||
via_device: chevrolet-traverse-lt-awd
|
||||
|
||||
- name: "Timestamp"
|
||||
device_class: timestamp
|
||||
icon: mdi:clock-in
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/TPMS/Schrader-EG53MA4/0D1909/time"
|
||||
entity_category: diagnostic
|
||||
unique_id: schrader-0d1909-time
|
||||
device:
|
||||
name: "Tire 3"
|
||||
identifiers: schrader-0d1909
|
||||
via_device: chevrolet-traverse-lt-awd
|
||||
|
||||
- name: "Pressure"
|
||||
device_class: pressure
|
||||
unit_of_measurement: "kPa"
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/TPMS/Schrader-EG53MA4/0D1909/pressure_kPa"
|
||||
unique_id: schrader-0d1909-pressure-kpa
|
||||
device:
|
||||
name: "Tire 3"
|
||||
identifiers: schrader-0d1909
|
||||
via_device: chevrolet-traverse-lt-awd
|
||||
|
||||
- name: "Temperature"
|
||||
device_class: temperature
|
||||
unit_of_measurement: "°C"
|
||||
value_template: "{{ value|float }}"
|
||||
state_class: measurement
|
||||
entity_category: diagnostic
|
||||
state_topic: "rtl_433/9b13b3f4-rtl433/devices/TPMS/Schrader-EG53MA4/0D1909/temperature_C"
|
||||
unique_id: schrader-0d1909-temperature-c
|
||||
device:
|
||||
name: "Tire 3"
|
||||
identifiers: schrader-0d1909
|
||||
via_device: chevrolet-traverse-lt-awd
|
||||
@@ -188,7 +188,7 @@ template:
|
||||
- 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']) }}"
|
||||
availability: "{{ (states('binary_sensor.getting_warmer_outside') not in ['unavailable']) }}"
|
||||
icon: mdi:sun-thermometer
|
||||
state_class: measurement
|
||||
unit_of_measurement: p
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
binary_sensor.black_bed_occupied:
|
||||
icon: mdi:bed
|
||||
|
||||
input_boolean.white_bed_occupied:
|
||||
binary_sensor.white_bed_occupied:
|
||||
icon: mdi:bed
|
||||
|
||||
input_boolean.master_bed_occupied:
|
||||
|
||||
@@ -22,9 +22,13 @@ plant.plant_sensor_3eb0:
|
||||
# entity_picture: /local/image/pansy.jpg
|
||||
# friendly_name: Pansy
|
||||
|
||||
plant.fineoffset_wh51_0ce593:
|
||||
plant.hasta_soil_sensor:
|
||||
entity_picture: /local/image/hosta.jpg
|
||||
friendly_name: Hostas (E593)
|
||||
friendly_name: Hostas
|
||||
|
||||
plant.daisy_soil_sensor:
|
||||
entity_picture: /local/image/daisy.jpg
|
||||
friendly_name: Dasies
|
||||
|
||||
## Groups
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
esphome:
|
||||
name: bed-presence-2d14a4
|
||||
friendly_name: Bed Presence 2d14a4
|
||||
comment: White Bed Sensor
|
||||
min_version: 2024.6.0
|
||||
name_add_mac_suffix: false
|
||||
project:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
esphome:
|
||||
name: bed-presence-c175a4
|
||||
friendly_name: Bed Presence c175a4
|
||||
comment: Master Bed Sensor
|
||||
min_version: 2024.6.0
|
||||
name_add_mac_suffix: false
|
||||
project:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
substitutions:
|
||||
devicename: black-bed
|
||||
friendly_name: Black Bed
|
||||
comment: Clever Bed Sensor
|
||||
comment: Black Bed Sensor
|
||||
entity_name: black_bed
|
||||
platform: ESP8266
|
||||
board: nodemcuv2
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
# Example configuration entry
|
||||
sensor:
|
||||
- platform: bme680
|
||||
temperature:
|
||||
name: "BME680 Temperature"
|
||||
oversampling: 16x
|
||||
pressure:
|
||||
name: "BME680 Pressure"
|
||||
humidity:
|
||||
id: "humidity"
|
||||
name: "BME680 Humidity"
|
||||
gas_resistance:
|
||||
id: "gas_resistance"
|
||||
name: "BME680 Gas Resistance"
|
||||
address: 0x77
|
||||
update_interval: 60s
|
||||
- platform: template
|
||||
name: "BME680 Indoor Air Quality"
|
||||
id: iaq
|
||||
icon: "mdi:gauge"
|
||||
# calculation: comp_gas = log(R_gas[ohm]) + 0.04 log(Ohm)/%rh * hum[%rh]
|
||||
lambda: |-
|
||||
return log(id(gas_resistance).state) + 0.04 * id(humidity).state;
|
||||
state_class: "measurement"
|
||||
text_sensor:
|
||||
- platform: template
|
||||
name: "BME680 IAQ Classification"
|
||||
icon: "mdi:checkbox-marked-circle-outline"
|
||||
lambda: |-
|
||||
if (int(id(iaq).state) <= 50) {
|
||||
return {"Excellent"};
|
||||
}
|
||||
else if (int(id(iaq).state) <= 100) {
|
||||
return {"Good"};
|
||||
}
|
||||
else if (int(id(iaq).state) <= 150) {
|
||||
return {"Lightly polluted"};
|
||||
}
|
||||
else if (int(id(iaq).state) <= 200) {
|
||||
return {"Moderately polluted"};
|
||||
}
|
||||
else if (int(id(iaq).state) <= 250) {
|
||||
return {"Heavily polluted"};
|
||||
}
|
||||
else if (int(id(iaq).state) <= 350) {
|
||||
return {"Severely polluted"};
|
||||
}
|
||||
else if (int(id(iaq).state) <= 500) {
|
||||
return {"Extremely polluted"};
|
||||
}
|
||||
else {
|
||||
return {"unknown"};
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
bme680_bsec:
|
||||
# id
|
||||
# -----------
|
||||
# Identifier for this component, useful when working with multiple devices.
|
||||
# Must be unique, and can be used in the sensor sections to refer to the correct device.
|
||||
# Default: auto-computed
|
||||
id: bme680_internal
|
||||
|
||||
# i2c address
|
||||
# -----------
|
||||
# Common values are:
|
||||
# - 0x76
|
||||
# - 0x77
|
||||
# Default: 0x76
|
||||
address: 0x76
|
||||
|
||||
# Temperature offset
|
||||
# ------------------
|
||||
# Useful if device is in enclosure and reads too high
|
||||
# For example, if it reads 5C too high, set this to 5
|
||||
# This also corrects the relative humidity readings
|
||||
# Default: 0
|
||||
temperature_offset: 0
|
||||
|
||||
# IAQ calculation mode
|
||||
# --------------------
|
||||
# Available options:
|
||||
# - static (for fixed position devices)
|
||||
# - mobile (for on a person or other moveable devices)
|
||||
# Default: static
|
||||
iaq_mode: static
|
||||
|
||||
# Supply voltage
|
||||
# --------------------
|
||||
# Available options:
|
||||
# - 3.3V
|
||||
# - 1.8V
|
||||
# Default: 3.3V
|
||||
supply_voltage: 3.3V
|
||||
|
||||
# Sample rate
|
||||
# -----------
|
||||
# Available options:
|
||||
# - lp (low power - samples every 3 seconds)
|
||||
# - ulp (ultra-low power - samples every 5 minutes)
|
||||
# Default: lp
|
||||
sample_rate: ulp
|
||||
|
||||
# Interval at which to save BSEC state
|
||||
# ------------------------------------
|
||||
# Default: 6h
|
||||
state_save_interval: 6h
|
||||
|
||||
sensor:
|
||||
- platform: bme680_bsec
|
||||
# ID of the bme680_bsec component to use for the next sensors.
|
||||
# Useful when working with multiple devices
|
||||
bme680_bsec_id: bme680_internal
|
||||
|
||||
temperature:
|
||||
# Temperature in °C
|
||||
name: "BME680 Temperature"
|
||||
sample_rate: lp
|
||||
filters:
|
||||
- median
|
||||
pressure:
|
||||
# Pressure in hPa
|
||||
name: "BME680 Pressure"
|
||||
sample_rate: lp
|
||||
filters:
|
||||
- median
|
||||
humidity:
|
||||
# Relative humidity %
|
||||
name: "BME680 Humidity"
|
||||
sample_rate: lp
|
||||
filters:
|
||||
- median
|
||||
gas_resistance:
|
||||
# Gas resistance in Ω
|
||||
name: "BME680 Gas Resistance"
|
||||
filters:
|
||||
- median
|
||||
iaq:
|
||||
# Indoor air quality value
|
||||
name: "BME680 IAQ"
|
||||
filters:
|
||||
- median
|
||||
iaq_accuracy:
|
||||
# IAQ accuracy as a numeric value of 0, 1, 2, 3
|
||||
name: "BME680 Numeric IAQ Accuracy"
|
||||
co2_equivalent:
|
||||
# CO2 equivalent estimate in ppm
|
||||
name: "BME680 CO2 Equivalent"
|
||||
filters:
|
||||
- median
|
||||
breath_voc_equivalent:
|
||||
# Volatile organic compounds equivalent estimate in ppm
|
||||
name: "BME680 Breath VOC Equivalent"
|
||||
filters:
|
||||
- median
|
||||
|
||||
text_sensor:
|
||||
- platform: bme680_bsec
|
||||
iaq_accuracy:
|
||||
# IAQ accuracy as a text value of Stabilizing, Uncertain, Calibrating, Calibrated
|
||||
name: "BME680 IAQ Accuracy"
|
||||
@@ -0,0 +1,61 @@
|
||||
# I2C bus for the BME680 devices
|
||||
i2c:
|
||||
- id: "i2cbus_bme"
|
||||
sda: GPIO18
|
||||
scl: GPIO19
|
||||
scan: true
|
||||
|
||||
# BME680 devices using BSEC library
|
||||
bme680_bsec:
|
||||
- id: bme680_internal
|
||||
i2c_id: "i2cbus_bme"
|
||||
address: 0x76
|
||||
- id: bme680_external
|
||||
i2c_id: "i2cbus_bme"
|
||||
address: 0x77
|
||||
|
||||
sensor:
|
||||
# Sensors for the internal BME680 device
|
||||
- platform: bme680_bsec
|
||||
bme680_bsec_id: bme680_internal
|
||||
temperature:
|
||||
name: "IN_Temp"
|
||||
pressure:
|
||||
name: "IN_Press"
|
||||
humidity:
|
||||
name: "IN_RH"
|
||||
iaq:
|
||||
name: "IN_IAQ"
|
||||
co2_equivalent:
|
||||
name: "IN_CO2eq"
|
||||
breath_voc_equivalent:
|
||||
name: "IN_VOCeq"
|
||||
|
||||
# Sensors for the external BME680 device
|
||||
- platform: bme680_bsec
|
||||
bme680_bsec_id: bme680_external
|
||||
temperature:
|
||||
name: "OUT_Temperatura"
|
||||
pressure:
|
||||
name: "OUT_Pressione"
|
||||
humidity:
|
||||
name: "OUT_RH"
|
||||
iaq:
|
||||
name: "OUT_IAQ"
|
||||
co2_equivalent:
|
||||
name: "OUT_CO2eq"
|
||||
breath_voc_equivalent:
|
||||
name: "OUT_VOCeq"
|
||||
|
||||
text_sensor:
|
||||
# Text sensor for the internal BME680 device
|
||||
- platform: bme680_bsec
|
||||
bme680_bsec_id: bme680_internal
|
||||
iaq_accuracy:
|
||||
name: "IN_IAQaccuracy"
|
||||
|
||||
# Text sensor for the external BME680 device
|
||||
- platform: bme680_bsec
|
||||
bme680_bsec_id: bme680_external
|
||||
iaq_accuracy:
|
||||
name: "OUT_IAQaccuracy"
|
||||
@@ -8,13 +8,17 @@ substitutions:
|
||||
board: wemos_d1_mini32
|
||||
static_ip: !secret hvac-multisensor-ip
|
||||
|
||||
# For i2c devices
|
||||
# In this case it's just the display
|
||||
sda_pin: GPIO21
|
||||
scl_pin: GPIO22
|
||||
|
||||
door_pin: GPIO19
|
||||
|
||||
one_wire_pin: GPIO26
|
||||
#one_wire_pin: GPIO14
|
||||
|
||||
# For the ultrasonic sensor
|
||||
trigger_pin: GPIO16
|
||||
#trigger_pin: GPIO04
|
||||
echo_pin: GPIO13
|
||||
|
||||
#mdc_pin: GPIO23
|
||||
@@ -133,7 +137,7 @@ sensor:
|
||||
trigger_pin: ${trigger_pin}
|
||||
echo_pin: ${echo_pin}
|
||||
id: ultrasonic_source
|
||||
#update_interval: 5s
|
||||
update_interval: 1s
|
||||
internal: True
|
||||
filters:
|
||||
- sliding_window_moving_average:
|
||||
|
||||
+2
-3
@@ -4,14 +4,14 @@ front_yard_plants:
|
||||
# does this work?
|
||||
# back to working here?
|
||||
- plant.plant_sensor_cea4 #Pepper
|
||||
- plant.fineoffset_wh51_0ce593 #Hostas
|
||||
- plant.hasta_soil_sensor #Hostas
|
||||
|
||||
back_yard_plants:
|
||||
- plant.plant_sensor_3eb0 #Manly Deck Box
|
||||
- plant.plant_sensor_3eae #Golden Deck Box
|
||||
|
||||
outdoor_plants:
|
||||
- plant.fineoffset_wh51_0ce593 #Hostas
|
||||
- plant.hasta_soil_sensor #Hostas
|
||||
|
||||
ceiling_fans:
|
||||
- fan.master_bedroom
|
||||
@@ -208,7 +208,6 @@ person_bridget:
|
||||
entities:
|
||||
- device_tracker.bridget_s_fire_wifi
|
||||
|
||||
|
||||
traverse:
|
||||
name: Traverse
|
||||
icon: mdi:car-estate
|
||||
|
||||
@@ -79,7 +79,7 @@ card:
|
||||
left: 40%
|
||||
top: 95%
|
||||
- type: state-icon
|
||||
entity: input_boolean.white_bed_occupied
|
||||
entity: binary_sensor.white_bed_occupied
|
||||
style:
|
||||
left: 60%
|
||||
top: 95%
|
||||
@@ -110,11 +110,11 @@ card:
|
||||
|
||||
- type: conditional
|
||||
conditions:
|
||||
- entity: input_boolean.white_bed_occupied
|
||||
- entity: binary_sensor.white_bed_occupied
|
||||
state: "on"
|
||||
elements:
|
||||
- type: state-icon
|
||||
entity: input_boolean.white_bed_occupied
|
||||
entity: binary_sensor.white_bed_occupied
|
||||
style:
|
||||
top: 65%
|
||||
left: 80%
|
||||
|
||||
@@ -14,7 +14,7 @@ cards:
|
||||
- type: entities
|
||||
title: Ecowitt Batteries
|
||||
entities:
|
||||
- entity: sensor.fineoffset_wh51_0ce593_battery
|
||||
- entity: sensor.hasta_soil_sensor_battery
|
||||
name: Hostas - e593
|
||||
- type: entities
|
||||
title: BLE Batteries
|
||||
@@ -87,4 +87,4 @@ cards:
|
||||
- sensor.computer_area_multisensor_battery_level
|
||||
- sensor.great_room_multisensor_battery_level
|
||||
- sensor.garage_multisensor_battery_level
|
||||
- sensor.kitchen_multisensor_battery_level
|
||||
- sensor.kitchen_multisensor_battery_level
|
||||
|
||||
@@ -1811,9 +1811,9 @@ sections:
|
||||
- value: below_horizon
|
||||
label: Night
|
||||
entities:
|
||||
- entity: sensor.lacrosse_tx141thbv2_0_temperature
|
||||
- entity: sensor.front_yard_thermostat_temperature
|
||||
name: Front Yard
|
||||
- entity: sensor.acurite_592txr_a_temperature
|
||||
- entity: sensor.back_yard_thermostat_temperature
|
||||
name: Back Yard
|
||||
- color: white
|
||||
entity: sensor.outdoor_temperature
|
||||
@@ -1875,64 +1875,64 @@ sections:
|
||||
cards:
|
||||
- type: horizontal-stack
|
||||
grid_options:
|
||||
columns: full
|
||||
columns: full
|
||||
cards:
|
||||
- type: markdown
|
||||
content: |-
|
||||
# Sensors:
|
||||
<dl>
|
||||
<dt><strong>Absolute Humidity</strong> <code>absolute_humidity</code></dt>
|
||||
<dd>
|
||||
Absolute humidity is a measure of the actual amount of water vapor
|
||||
(moisture) in the air.
|
||||
</dd>
|
||||
<dt><strong>Heat Index</strong> <code>heat_index</code></dt>
|
||||
<dd>
|
||||
The heat index combines air temperature and relative humidity to posit a
|
||||
human-perceived equivalent temperature.
|
||||
</dd>
|
||||
<dt><strong>Humidex + Perception</strong> <code>humidex</code> <code>humidex_perception</code></dt>
|
||||
<dd>
|
||||
The humidex (humidity index) describes how hot the weather feels to an average person as a result of the combined effect of heat and humidity. It is calculated from the dew point.
|
||||
</dd>
|
||||
<dt><strong>Dew Point + Perception</strong> <code>dew_point</code> <code>dew_point_perception</code></dt>
|
||||
<dd>
|
||||
The dew point is the temperature to which air must be cooled to become
|
||||
saturated with water vapor and dew forms on surfaces.
|
||||
</dd>
|
||||
<dt><strong>Frost Point</strong> <code>frost_point</code></dt>
|
||||
<dd>
|
||||
Frost point, temperature, below 0° C (32° F), at which moisture in the air
|
||||
will condense as a layer of frost on any exposed surface.
|
||||
</dd>
|
||||
<dt><strong>Frost Risk</strong> <code>frost_risk</code></dt>
|
||||
<dd>
|
||||
Risk of Frost based on current temperature, frost point and absolute humidity.
|
||||
</dd>
|
||||
<dt><strong>Relative Strain Perception</strong> <code>relative_strain_perception</code></dt>
|
||||
<dd>
|
||||
A measure of discomfort resulting from the combined effect of temperature and humidity. It assumes a person dressed in a light business suit, walking at a moderate pace in a very light air motion. It is applicable to assess heat stress of manual workers under shelter at various metabolic rates. Valid for temperatures between 26 and 35°C (79 to 95°F).
|
||||
</dd>
|
||||
<dt><strong>Summer Simmer Index + Perception</strong> <code>summer_simmer_index</code> <code>summer_simmer_perception</code></dt>
|
||||
<dd>
|
||||
Provides a proven indicator of heat stress concerns and discomfort using meaningful equivalent temperature values for general public acceptance and awareness.
|
||||
</dd>
|
||||
<dt><strong>Moist Air Enthalpy</strong> <code>moist_air_enthalpy</code></dt>
|
||||
<dd>
|
||||
The enthalpy of moist air is the sum of the enthalpy of the dry air and the enthalpy of the water vapour. Enthalpy is the total energy of a thermodynamic system.
|
||||
</dd>
|
||||
<dt><strong>Summer Scharlau Perception</strong> <code>summer_scharlau_perception</code></dt>
|
||||
<dd>
|
||||
The summer Scharlau index describes a bioclimatic thermal comfort when temperature values are higher than 0°C. Valid for temperatures 17° to 39°C (63° to 102°F) and humidity >= 30%.
|
||||
</dd>
|
||||
<dt><strong>Winter Scharlau Perception</strong> <code>winter_scharlau_perception</code></dt>
|
||||
<dd>
|
||||
Reflects the level of human discomfort caused by cooling. Valid for: temperatures -5 to +6°C (23 to 43°F) and humidity >= 40%.
|
||||
</dd>
|
||||
<dt><strong>Thoms discomfort Perception</strong> <code>thoms_discomfort_perception</code></dt>
|
||||
<dd>
|
||||
Indicates the level of discomfort as a result of high temperature and the combined effect with relative humidity.
|
||||
</dd>
|
||||
</dl>
|
||||
- type: markdown
|
||||
content: |-
|
||||
# Sensors:
|
||||
<dl>
|
||||
<dt><strong>Absolute Humidity</strong> <code>absolute_humidity</code></dt>
|
||||
<dd>
|
||||
Absolute humidity is a measure of the actual amount of water vapor
|
||||
(moisture) in the air.
|
||||
</dd>
|
||||
<dt><strong>Heat Index</strong> <code>heat_index</code></dt>
|
||||
<dd>
|
||||
The heat index combines air temperature and relative humidity to posit a
|
||||
human-perceived equivalent temperature.
|
||||
</dd>
|
||||
<dt><strong>Humidex + Perception</strong> <code>humidex</code> <code>humidex_perception</code></dt>
|
||||
<dd>
|
||||
The humidex (humidity index) describes how hot the weather feels to an average person as a result of the combined effect of heat and humidity. It is calculated from the dew point.
|
||||
</dd>
|
||||
<dt><strong>Dew Point + Perception</strong> <code>dew_point</code> <code>dew_point_perception</code></dt>
|
||||
<dd>
|
||||
The dew point is the temperature to which air must be cooled to become
|
||||
saturated with water vapor and dew forms on surfaces.
|
||||
</dd>
|
||||
<dt><strong>Frost Point</strong> <code>frost_point</code></dt>
|
||||
<dd>
|
||||
Frost point, temperature, below 0° C (32° F), at which moisture in the air
|
||||
will condense as a layer of frost on any exposed surface.
|
||||
</dd>
|
||||
<dt><strong>Frost Risk</strong> <code>frost_risk</code></dt>
|
||||
<dd>
|
||||
Risk of Frost based on current temperature, frost point and absolute humidity.
|
||||
</dd>
|
||||
<dt><strong>Relative Strain Perception</strong> <code>relative_strain_perception</code></dt>
|
||||
<dd>
|
||||
A measure of discomfort resulting from the combined effect of temperature and humidity. It assumes a person dressed in a light business suit, walking at a moderate pace in a very light air motion. It is applicable to assess heat stress of manual workers under shelter at various metabolic rates. Valid for temperatures between 26 and 35°C (79 to 95°F).
|
||||
</dd>
|
||||
<dt><strong>Summer Simmer Index + Perception</strong> <code>summer_simmer_index</code> <code>summer_simmer_perception</code></dt>
|
||||
<dd>
|
||||
Provides a proven indicator of heat stress concerns and discomfort using meaningful equivalent temperature values for general public acceptance and awareness.
|
||||
</dd>
|
||||
<dt><strong>Moist Air Enthalpy</strong> <code>moist_air_enthalpy</code></dt>
|
||||
<dd>
|
||||
The enthalpy of moist air is the sum of the enthalpy of the dry air and the enthalpy of the water vapour. Enthalpy is the total energy of a thermodynamic system.
|
||||
</dd>
|
||||
<dt><strong>Summer Scharlau Perception</strong> <code>summer_scharlau_perception</code></dt>
|
||||
<dd>
|
||||
The summer Scharlau index describes a bioclimatic thermal comfort when temperature values are higher than 0°C. Valid for temperatures 17° to 39°C (63° to 102°F) and humidity >= 30%.
|
||||
</dd>
|
||||
<dt><strong>Winter Scharlau Perception</strong> <code>winter_scharlau_perception</code></dt>
|
||||
<dd>
|
||||
Reflects the level of human discomfort caused by cooling. Valid for: temperatures -5 to +6°C (23 to 43°F) and humidity >= 40%.
|
||||
</dd>
|
||||
<dt><strong>Thoms discomfort Perception</strong> <code>thoms_discomfort_perception</code></dt>
|
||||
<dd>
|
||||
Indicates the level of discomfort as a result of high temperature and the combined effect with relative humidity.
|
||||
</dd>
|
||||
</dl>
|
||||
column_span: 5
|
||||
cards: []
|
||||
cards: []
|
||||
|
||||
@@ -7,9 +7,9 @@ badges: []
|
||||
cards:
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:mushroom-chips-card
|
||||
chips:
|
||||
- type: back
|
||||
# - type: custom:mushroom-chips-card
|
||||
# chips:
|
||||
# - type: back
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- hours_to_show: 24
|
||||
|
||||
@@ -7,9 +7,9 @@ badges: []
|
||||
cards:
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:mushroom-chips-card
|
||||
chips:
|
||||
- type: back
|
||||
# - type: custom:mushroom-chips-card
|
||||
# chips:
|
||||
# - type: back
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- hours_to_show: 24
|
||||
|
||||
@@ -5,9 +5,9 @@ path: computer-area
|
||||
icon: mdi:desktop-classic
|
||||
badges: []
|
||||
cards:
|
||||
- type: custom:mushroom-chips-card
|
||||
chips:
|
||||
- type: back
|
||||
# - type: custom:mushroom-chips-card
|
||||
# chips:
|
||||
# - type: back
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- hours_to_show: 24
|
||||
|
||||
@@ -7,9 +7,9 @@ badges: []
|
||||
cards:
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:mushroom-chips-card
|
||||
chips:
|
||||
- type: back
|
||||
# - type: custom:mushroom-chips-card
|
||||
# chips:
|
||||
# - type: back
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- hours_to_show: 24
|
||||
|
||||
@@ -7,9 +7,9 @@ badges: []
|
||||
cards:
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:mushroom-chips-card
|
||||
chips:
|
||||
- type: back
|
||||
# - type: custom:mushroom-chips-card
|
||||
# chips:
|
||||
# - type: back
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- hours_to_show: 24
|
||||
|
||||
@@ -8,9 +8,9 @@ badges: []
|
||||
sections:
|
||||
- type: grid
|
||||
cards:
|
||||
- type: custom:mushroom-chips-card
|
||||
chips:
|
||||
- type: back
|
||||
# - type: custom:mushroom-chips-card
|
||||
# chips:
|
||||
# - type: back
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- hours_to_show: 24
|
||||
|
||||
@@ -7,42 +7,42 @@ badges: []
|
||||
cards:
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:mushroom-chips-card
|
||||
chips:
|
||||
- type: back
|
||||
# - type: custom:mushroom-chips-card
|
||||
# chips:
|
||||
# - type: back
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:mushroom-template-card
|
||||
primary: "{{states('sensor.lacrosse_tx141thbv2_0_temperature')}}°F"
|
||||
primary: "{{states('sensor.front_yard_thermostat_temperature')}}°F"
|
||||
secondary: ""
|
||||
icon: mdi:thermometer
|
||||
entity: sensor.lacrosse_tx141thbv2_0_temperature
|
||||
entity: sensor.front_yard_thermostat_temperature
|
||||
icon_color: >-
|
||||
{% if states('sensor.lacrosse_tx141thbv2_0_temperature')|float(default=0) < 30.0 %}
|
||||
{% if states('sensor.front_yard_thermostat_temperature')|float(default=0) < 30.0 %}
|
||||
white
|
||||
{%elif states('sensor.lacrosse_tx141thbv2_0_temperature')|float(default=0) < 60.0 %}
|
||||
{%elif states('sensor.front_yard_thermostat_temperature')|float(default=0) < 60.0 %}
|
||||
blue
|
||||
{%elif states('sensor.lacrosse_tx141thbv2_0_temperature')|float(default=0) < 85.0 %}
|
||||
{%elif states('sensor.front_yard_thermostat_temperature')|float(default=0) < 85.0 %}
|
||||
green
|
||||
{%elif states('sensor.lacrosse_tx141thbv2_0_temperature')|float(default=0) < 100.0 %}
|
||||
{%elif states('sensor.front_yard_thermostat_temperature')|float(default=0) < 100.0 %}
|
||||
orange
|
||||
{%else%}
|
||||
red
|
||||
{%endif%}
|
||||
layout: vertical
|
||||
- type: custom:mushroom-template-card
|
||||
primary: "{{states('sensor.lacrosse_tx141thbv2_0_humidity')}}%"
|
||||
primary: "{{states('sensor.front_yard_thermostat_humidity')}}%"
|
||||
secondary: ""
|
||||
icon: mdi:water-percent
|
||||
entity: sensor.lacrosse_tx141thbv2_0_humidity
|
||||
entity: sensor.front_yard_thermostat_humidity
|
||||
icon_color: >-
|
||||
{% if states('sensor.lacrosse_tx141thbv2_0_humidity')|float(default=0) < 20.0 %}
|
||||
{% if states('sensor.front_yard_thermostat_humidity')|float(default=0) < 20.0 %}
|
||||
white
|
||||
{%elif states('sensor.lacrosse_tx141thbv2_0_humidity')|float(default=0) < 40.0 %}
|
||||
{%elif states('sensor.front_yard_thermostat_humidity')|float(default=0) < 40.0 %}
|
||||
grey
|
||||
{%elif states('sensor.lacrosse_tx141thbv2_0_humidity')|float(default=0) < 60.0 %}
|
||||
{%elif states('sensor.front_yard_thermostat_humidity')|float(default=0) < 60.0 %}
|
||||
green
|
||||
{%elif states('sensor.lacrosse_tx141thbv2_0_humidity')|float(default=0) < 80.0 %}
|
||||
{%elif states('sensor.front_yard_thermostat_humidity')|float(default=0) < 80.0 %}
|
||||
cyan
|
||||
{%else%}
|
||||
blue
|
||||
|
||||
@@ -7,9 +7,9 @@ badges: []
|
||||
cards:
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:mushroom-chips-card
|
||||
chips:
|
||||
- type: back
|
||||
# - type: custom:mushroom-chips-card
|
||||
# chips:
|
||||
# - type: back
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- hours_to_show: 24
|
||||
|
||||
@@ -7,9 +7,9 @@ badges: []
|
||||
cards:
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:mushroom-chips-card
|
||||
chips:
|
||||
- type: back
|
||||
# - type: custom:mushroom-chips-card
|
||||
# chips:
|
||||
# - type: back
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- hours_to_show: 24
|
||||
|
||||
@@ -8,9 +8,9 @@ type: sections
|
||||
sections:
|
||||
- type: grid
|
||||
cards:
|
||||
- type: custom:mushroom-chips-card
|
||||
chips:
|
||||
- type: back
|
||||
# - type: custom:mushroom-chips-card
|
||||
# chips:
|
||||
# - type: back
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- hours_to_show: 24
|
||||
|
||||
+63
-34
@@ -17,9 +17,9 @@ cards:
|
||||
- type: conditional
|
||||
conditions:
|
||||
- entity: switch.opensprinkler_enabled
|
||||
state: 'on'
|
||||
state: "on"
|
||||
- entity: input_boolean.sprinkler_is_winterized
|
||||
state: 'off'
|
||||
state: "off"
|
||||
chip:
|
||||
type: entity
|
||||
entity: sensor.sprinkler_current_status
|
||||
@@ -53,7 +53,7 @@ cards:
|
||||
|
||||
- type: template
|
||||
entity: group.my_exterior_doors
|
||||
icon: >
|
||||
icon: >
|
||||
{% if states('sensor.open_external_doors_count') | int(default=0) > 0 -%}
|
||||
{% if is_state('binary_sensor.patio_door_contact','on')-%}
|
||||
mdi:door-sliding-open
|
||||
@@ -72,7 +72,7 @@ cards:
|
||||
- type: conditional
|
||||
conditions:
|
||||
- entity: input_boolean.clint_needs_am_meds
|
||||
state: 'on'
|
||||
state: "on"
|
||||
chip:
|
||||
type: entity
|
||||
entity: input_boolean.clint_needs_am_meds
|
||||
@@ -84,7 +84,7 @@ cards:
|
||||
- type: conditional
|
||||
conditions:
|
||||
- entity: input_boolean.clint_needs_pm_meds
|
||||
state: 'on'
|
||||
state: "on"
|
||||
chip:
|
||||
type: entity
|
||||
entity: input_boolean.clint_needs_pm_meds
|
||||
@@ -96,11 +96,11 @@ cards:
|
||||
- type: conditional
|
||||
conditions:
|
||||
- entity: sensor.dishwasher
|
||||
state_not: 'idle'
|
||||
state_not: "idle"
|
||||
chip:
|
||||
type: template
|
||||
entity: input_boolean.empty_dishwasher
|
||||
icon: >
|
||||
icon: >
|
||||
{% if is_state('sensor.dishwasher','running')-%}
|
||||
mdi:dishwasher
|
||||
{% elif is_state('sensor.dishwasher','pending')-%}
|
||||
@@ -121,11 +121,11 @@ cards:
|
||||
- type: conditional
|
||||
conditions:
|
||||
- entity: sensor.washing_machine
|
||||
state_not: 'idle'
|
||||
state_not: "idle"
|
||||
chip:
|
||||
type: template
|
||||
entity: input_boolean.swap_laundry
|
||||
icon: >
|
||||
icon: >
|
||||
{% if is_state('sensor.washing_machine','running')-%}
|
||||
mdi:washing-machine
|
||||
{% elif is_state('sensor.washing_machine','pending')-%}
|
||||
@@ -146,11 +146,11 @@ cards:
|
||||
- type: conditional
|
||||
conditions:
|
||||
- entity: sensor.tumble_dryer
|
||||
state_not: 'idle'
|
||||
state_not: "idle"
|
||||
chip:
|
||||
type: template
|
||||
entity: input_boolean.fold_clothes
|
||||
icon: >
|
||||
icon: >
|
||||
{% if is_state('sensor.tumble_dryer','running')-%}
|
||||
mdi:tumble-dryer
|
||||
{% elif is_state('sensor.tumble_dryer','pending')-%}
|
||||
@@ -171,7 +171,7 @@ cards:
|
||||
- type: conditional
|
||||
conditions:
|
||||
- entity: alert.garage_door
|
||||
state: 'on'
|
||||
state: "on"
|
||||
chip:
|
||||
type: entity
|
||||
entity: alert.garage_door
|
||||
@@ -293,8 +293,7 @@ cards:
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:mushroom-title-card
|
||||
title: Rooms
|
||||
subtitle: Upstairs
|
||||
title: Upstairs
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:mushroom-template-card
|
||||
@@ -309,7 +308,7 @@ cards:
|
||||
secondary: |-
|
||||
{{states('sensor.nursery_multisensor_air_temperature')}}°F
|
||||
{{states('sensor.nursery_multisensor_humidity')}}%
|
||||
icon_color: '{{iif(is_state(''light.nursery_hue'',''on''),''yellow'')}}'
|
||||
icon_color: "{{iif(is_state('light.nursery_hue','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
- type: custom:mushroom-template-card
|
||||
@@ -325,7 +324,7 @@ cards:
|
||||
{{states('sensor.master_bedroom_multisensor_air_temperature')}}°F
|
||||
|
||||
{{states('sensor.master_bedroom_multisensor_humidity')}}%
|
||||
icon_color: '{{iif(is_state(''light.master_bedroom_hue'',''on''),''yellow'')}}'
|
||||
icon_color: "{{iif(is_state('light.master_bedroom_hue','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
- type: custom:mushroom-template-card
|
||||
@@ -340,7 +339,7 @@ cards:
|
||||
secondary: |-
|
||||
{{states('sensor.master_bathroom_thermostat_temperature')}}°F
|
||||
{{states('sensor.master_bathroom_thermostat_humidity')}}%
|
||||
icon_color: '{{iif(is_state(''light.master_bathroom_hue'',''on''),''yellow'')}}'
|
||||
icon_color: "{{iif(is_state('light.master_bathroom_hue','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
- type: horizontal-stack
|
||||
@@ -357,7 +356,7 @@ cards:
|
||||
secondary: |-
|
||||
{{states('sensor.front_room_thermostat_temperature')}}°F
|
||||
{{states('sensor.front_room_thermostat_humidity')}}%
|
||||
icon_color: '{{iif(is_state(''light.front_room_hue'',''on''),''yellow'')}}'
|
||||
icon_color: "{{iif(is_state('light.front_room_hue','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
- type: custom:mushroom-template-card
|
||||
@@ -372,7 +371,7 @@ cards:
|
||||
secondary: |-
|
||||
{{states('sensor.kitchen_multisensor_air_temperature')}}°F
|
||||
{{states('sensor.kitchen_multisensor_humidity')}}%
|
||||
icon_color: '{{iif(is_state(''light.kitchen_hue'',''on''),''yellow'')}}'
|
||||
icon_color: "{{iif(is_state('light.kitchen_hue','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
- type: custom:mushroom-template-card
|
||||
@@ -387,13 +386,13 @@ cards:
|
||||
secondary: |-
|
||||
{{states('sensor.dining_room_multisensor_air_temperature')}}°F
|
||||
{{states('sensor.dining_room_multisensor_humidity')}}%
|
||||
icon_color: '{{iif(is_state(''light.dining_room_switch'',''on''),''yellow'')}}'
|
||||
icon_color: "{{iif(is_state('light.dining_room_switch','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:mushroom-title-card
|
||||
subtitle: Ground Level
|
||||
title: Ground Level
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:mushroom-template-card
|
||||
@@ -408,7 +407,22 @@ cards:
|
||||
secondary: |-
|
||||
{{states('sensor.entryway_temperature')}}°F
|
||||
{{states('sensor.thermostat_humidity')}}%
|
||||
icon_color: '{{iif(is_state(''light.entryway_hue'',''on''),''yellow'')}}'
|
||||
icon_color: "{{iif(is_state('light.entryway_hue','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
- type: custom:mushroom-template-card
|
||||
primary: Front Porch
|
||||
icon: mdi:door
|
||||
entity: light.front_porch_overhead
|
||||
tap_action:
|
||||
action: navigate
|
||||
navigation_path: garage
|
||||
hold_action:
|
||||
action: toggle
|
||||
secondary: |-
|
||||
{{states('sensor.front_yard_thermostat_temperature')}}°F
|
||||
{{states('sensor.front_yard_thermostat_humidity')}}%
|
||||
icon_color: "{{iif(is_state('light.front_porch_overhead','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
- type: custom:mushroom-template-card
|
||||
@@ -423,7 +437,7 @@ cards:
|
||||
secondary: |-
|
||||
{{states('sensor.garage_multisensor_air_temperature')}}°F
|
||||
{{states('sensor.garage_multisensor_humidity')}}%
|
||||
icon_color: '{{iif(is_state(''light.garage_overhead'',''on''),''yellow'')}}'
|
||||
icon_color: "{{iif(is_state('light.garage_overhead','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
- type: horizontal-stack
|
||||
@@ -440,7 +454,7 @@ cards:
|
||||
secondary: |-
|
||||
{{states('sensor.front_porch_temperature')}}°F
|
||||
{{states('sensor.garage_multisensor_humidity')}}%
|
||||
icon_color: '{{iif(is_state(''light.front_porch_overhead'',''on''),''yellow'')}}'
|
||||
icon_color: "{{iif(is_state('light.front_porch_overhead','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
- type: custom:mushroom-template-card
|
||||
@@ -453,9 +467,24 @@ cards:
|
||||
hold_action:
|
||||
action: toggle
|
||||
secondary: |-
|
||||
{{states('sensor.deck_temperature')}}°F
|
||||
{{states('sensor.garage_multisensor_humidity')}}%
|
||||
icon_color: '{{iif(is_state(''light.deck'',''on''),''yellow'')}}'
|
||||
{{states('sensor.back_yard_thermostat_temperature')}}°F
|
||||
{{states('sensor.back_yard_thermostat_humidity')}}%
|
||||
icon_color: "{{iif(is_state('light.deck','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
- type: custom:mushroom-template-card
|
||||
primary: Deck
|
||||
icon: mdi:grill
|
||||
entity: light.deck
|
||||
tap_action:
|
||||
action: navigate
|
||||
navigation_path: back-yard
|
||||
hold_action:
|
||||
action: toggle
|
||||
secondary: |-
|
||||
{{states('sensor.back_yard_thermostat_temperature')}}°F
|
||||
{{states('sensor.back_yard_thermostat_humidity')}}%
|
||||
icon_color: "{{iif(is_state('light.deck','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
- type: vertical-stack
|
||||
@@ -477,7 +506,7 @@ cards:
|
||||
{{states('sensor.computer_area_multisensor_air_temperature')}}°F
|
||||
|
||||
{{states('sensor.computer_area_multisensor_humidity')}}%
|
||||
icon_color: '{{iif(is_state(''light.computer_area_hue'',''on''),''yellow'')}}'
|
||||
icon_color: "{{iif(is_state('light.computer_area_hue','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
- type: custom:mushroom-template-card
|
||||
@@ -492,7 +521,7 @@ cards:
|
||||
secondary: |-
|
||||
{{states('sensor.great_room_multisensor_air_temperature')}}°F
|
||||
{{states('sensor.great_room_multisensor_humidity')}}%
|
||||
icon_color: '{{iif(is_state(''light.great_room_hue'',''on''),''yellow'')}}'
|
||||
icon_color: "{{iif(is_state('light.great_room_hue','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
- type: custom:mushroom-template-card
|
||||
@@ -507,7 +536,7 @@ cards:
|
||||
secondary: |-
|
||||
{{states('sensor.utility_room_thermostat_temperature')}}°F
|
||||
{{states('sensor.utility_room_thermostat_humidity')}}%
|
||||
icon_color: '{{iif(is_state(''light.utility_room_vanity'',''on''),''yellow'')}}'
|
||||
icon_color: "{{iif(is_state('light.utility_room_vanity','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
- type: horizontal-stack
|
||||
@@ -524,7 +553,7 @@ cards:
|
||||
secondary: |-
|
||||
{{states('sensor.blue_room_multisensor_air_temperature')}}°F
|
||||
{{states('sensor.blue_room_multisensor_humidity')}}%
|
||||
icon_color: '{{iif(is_state(''light.blue_room_hue'',''on''),''yellow'')}}'
|
||||
icon_color: "{{iif(is_state('light.blue_room_hue','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
- type: custom:mushroom-template-card
|
||||
@@ -539,7 +568,7 @@ cards:
|
||||
secondary: |-
|
||||
{{states('sensor.mancave_thermostat_temperature')}}°F
|
||||
{{states('sensor.mancave_thermostat_humidity')}}%
|
||||
icon_color: '{{iif(is_state(''light.mancave'',''on''),''yellow'')}}'
|
||||
icon_color: "{{iif(is_state('light.mancave','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
- type: custom:mushroom-template-card
|
||||
@@ -554,6 +583,6 @@ cards:
|
||||
secondary: |-
|
||||
{{states('sensor.furnace_room_thermostat_temperature')}}°F
|
||||
{{states('sensor.furnace_room_thermostat_humidity')}}%
|
||||
icon_color: '{{iif(is_state(''light.furnace_room'',''on''),''yellow'')}}'
|
||||
icon_color: "{{iif(is_state('light.furnace_room','on'),'yellow')}}"
|
||||
multiline_secondary: true
|
||||
layout: vertical
|
||||
layout: vertical
|
||||
|
||||
@@ -7,9 +7,9 @@ badges: []
|
||||
cards:
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:mushroom-chips-card
|
||||
chips:
|
||||
- type: back
|
||||
# - type: custom:mushroom-chips-card
|
||||
# chips:
|
||||
# - type: back
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- hours_to_show: 24
|
||||
@@ -120,11 +120,11 @@ cards:
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:mushroom-entity-card
|
||||
entity: sensor.acurite_986_2f_42383_temperature
|
||||
entity: sensor.kitchen_freezer_thermostat_temperature
|
||||
name: Freezer
|
||||
layout: vertical
|
||||
- type: custom:mushroom-entity-card
|
||||
entity: sensor.acurite_986_1r_48226_temperature
|
||||
entity: sensor.kitchen_fridge_thermostat_temperature
|
||||
name: Fridge
|
||||
layout: vertical
|
||||
- type: vertical-stack
|
||||
|
||||
@@ -7,9 +7,9 @@ badges: []
|
||||
cards:
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:mushroom-chips-card
|
||||
chips:
|
||||
- type: back
|
||||
# - type: custom:mushroom-chips-card
|
||||
# chips:
|
||||
# - type: back
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- hours_to_show: 24
|
||||
|
||||
@@ -7,9 +7,9 @@ badges: []
|
||||
cards:
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:mushroom-chips-card
|
||||
chips:
|
||||
- type: back
|
||||
# - type: custom:mushroom-chips-card
|
||||
# chips:
|
||||
# - type: back
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- hours_to_show: 24
|
||||
|
||||
@@ -7,9 +7,9 @@ badges: []
|
||||
cards:
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:mushroom-chips-card
|
||||
chips:
|
||||
- type: back
|
||||
# - type: custom:mushroom-chips-card
|
||||
# chips:
|
||||
# - type: back
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- hours_to_show: 24
|
||||
|
||||
+12
-26
@@ -8,9 +8,9 @@ cards:
|
||||
# Header and HVAC
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:mushroom-chips-card
|
||||
chips:
|
||||
- type: back
|
||||
# - type: custom:mushroom-chips-card
|
||||
# chips:
|
||||
# - type: back
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- hours_to_show: 24
|
||||
@@ -331,29 +331,15 @@ cards:
|
||||
target:
|
||||
entity_id: button.black_bed_manual_tare
|
||||
layout: vertical
|
||||
# - type: custom:mushroom-template-card
|
||||
# entity: input_boolean.white_bed_occupied
|
||||
# icon: mdi:bed
|
||||
# icon_color: >-
|
||||
# {% if(is_state('input_boolean.white_bed_occupied','on')) %}
|
||||
# yellow
|
||||
# {% elif(is_state('binary_sensor.white_bed_hx711_error','on')) %}
|
||||
# red
|
||||
# {% endif %}
|
||||
# primary: White Bed
|
||||
# double_tap_action:
|
||||
# action: call-service
|
||||
# service: homeassistant.toggle
|
||||
# service_data: {}
|
||||
# target:
|
||||
# entity_id: switch.white_bed_force_occupancy
|
||||
# hold_action:
|
||||
# action: call-service
|
||||
# service: button.press
|
||||
# service_data: {}
|
||||
# target:
|
||||
# entity_id: button.white_bed_manual_tare
|
||||
# layout: vertical
|
||||
- type: custom:mushroom-template-card
|
||||
entity: binary_sensor.white_bed_occupied
|
||||
icon: mdi:bed
|
||||
icon_color: >-
|
||||
{% if(is_state('binary_sensor.white_bed_occupied','on')) %}
|
||||
yellow
|
||||
{% endif %}
|
||||
primary: White Bed
|
||||
layout: vertical
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: custom:mushroom-entity-card
|
||||
|
||||
+14
-13
@@ -19,13 +19,13 @@ cards:
|
||||
max: 25
|
||||
segments:
|
||||
- from: 5
|
||||
color: '#4dab6d'
|
||||
color: "#4dab6d"
|
||||
- from: 10
|
||||
color: '#c1da64'
|
||||
color: "#c1da64"
|
||||
- from: 15
|
||||
color: '#fabd57'
|
||||
color: "#fabd57"
|
||||
- from: 20.6
|
||||
color: '#ee4d55'
|
||||
color: "#ee4d55"
|
||||
name: Recent Precipitation
|
||||
- type: gauge
|
||||
entity: input_number.sprinkler_maximum_temperature_measured
|
||||
@@ -36,11 +36,11 @@ cards:
|
||||
- from: 61
|
||||
color: var(--info-color)
|
||||
- from: 70
|
||||
color: '#4dab6d'
|
||||
color: "#4dab6d"
|
||||
- from: 79
|
||||
color: '#c1da64'
|
||||
color: "#c1da64"
|
||||
- from: 88
|
||||
color: '#fabd57'
|
||||
color: "#fabd57"
|
||||
name: Recent High Temp
|
||||
- type: gauge
|
||||
entity: sensor.sprinkler_days_since_last_watering
|
||||
@@ -49,18 +49,19 @@ cards:
|
||||
max: 4
|
||||
segments:
|
||||
- from: 0
|
||||
color: '#ee4d55'
|
||||
color: "#ee4d55"
|
||||
- from: 1
|
||||
color: '#fabd57'
|
||||
color: "#fabd57"
|
||||
- from: 2
|
||||
color: '#c1da64'
|
||||
color: "#c1da64"
|
||||
- from: 3
|
||||
color: '#4dab6d'
|
||||
color: "#4dab6d"
|
||||
name: Expected Days Between Watering
|
||||
- !include /config/lovelace/plant-cards/plant_sensor_cea4.yaml
|
||||
- !include /config/lovelace/plant-cards/plant_sensor_3eae.yaml
|
||||
- !include /config/lovelace/plant-cards/plant_sensor_3eb0.yaml
|
||||
- !include /config/lovelace/plant-cards/fineoffset_wh51_0ce593.yaml
|
||||
- !include /config/lovelace/plant-cards/hasta_soil_sensor.yaml
|
||||
- !include /config/lovelace/plant-cards/daisy_soil_sensor.yaml
|
||||
|
||||
- type: vertical-stack
|
||||
view_layout:
|
||||
@@ -74,7 +75,7 @@ cards:
|
||||
action: toggle
|
||||
- type: entities
|
||||
entities:
|
||||
- entity: sensor.ecowitt_wh40_21917_precipitation
|
||||
- entity: sensor.rain_gauge_precipitation
|
||||
secondary_info: last-updated
|
||||
- entity: binary_sensor.is_raining
|
||||
secondary_info: last-changed
|
||||
|
||||
@@ -7,9 +7,9 @@ badges: []
|
||||
cards:
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
- type: custom:mushroom-chips-card
|
||||
chips:
|
||||
- type: back
|
||||
# - type: custom:mushroom-chips-card
|
||||
# chips:
|
||||
# - type: back
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- hours_to_show: 24
|
||||
|
||||
+2
-1
@@ -1,4 +1,5 @@
|
||||
type: vertical-stack
|
||||
cards:
|
||||
- type: plant-status
|
||||
entity: plant.fineoffset_wh51_0ce593
|
||||
entity: plant.daisy_soil_sensor
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
type: vertical-stack
|
||||
cards:
|
||||
- type: plant-status
|
||||
entity: plant.hasta_soil_sensor
|
||||
@@ -25,13 +25,13 @@ elements:
|
||||
# text-transform: capitalize
|
||||
|
||||
- type: state-label
|
||||
entity: sensor.acurite_592txr_a_temperature
|
||||
entity: sensor.back_yard_thermostat_temperature
|
||||
style:
|
||||
left: 15%
|
||||
top: 35%
|
||||
font-size: 180%
|
||||
- type: state-label
|
||||
entity: sensor.acurite_592txr_a_humidity
|
||||
entity: sensor.back_yard_thermostat_humidity
|
||||
style:
|
||||
left: 85%
|
||||
top: 35%
|
||||
|
||||
@@ -30,13 +30,13 @@ elements:
|
||||
text-transform: capitalize
|
||||
|
||||
- type: state-label
|
||||
entity: sensor.lacrosse_tx141thbv2_0_temperature
|
||||
entity: sensor.front_yard_thermostat_temperature
|
||||
style:
|
||||
left: 15%
|
||||
top: 35%
|
||||
font-size: 180%
|
||||
- type: state-label
|
||||
entity: sensor.lacrosse_tx141thbv2_0_humidity
|
||||
entity: sensor.front_yard_thermostat_humidity
|
||||
style:
|
||||
left: 85%
|
||||
top: 35%
|
||||
|
||||
@@ -50,7 +50,7 @@ cards:
|
||||
- sensor.disk_use_percent_home
|
||||
font_size: 50
|
||||
name: HA Disk
|
||||
hours_to_show: 96
|
||||
hours_to_show: 4
|
||||
points_per_hour: 3
|
||||
show:
|
||||
fill: false
|
||||
|
||||
@@ -15,6 +15,7 @@ cards:
|
||||
show_header_toggle: false
|
||||
entities:
|
||||
- entity: device_tracker.chevrolet_mylink
|
||||
- entity: device_tracker.chevrolet_traverse_location
|
||||
|
||||
- type: entities
|
||||
title: Bridget's Tablet
|
||||
|
||||
@@ -97,7 +97,8 @@ cards:
|
||||
- entities:
|
||||
- plant.plant_sensor_cea4
|
||||
- plant.plant_sensor_3eae
|
||||
- plant.fineoffset_wh51_0ce593
|
||||
- plant.hasta_soil_sensor
|
||||
- plant.daisy_soil_sensor
|
||||
- plant.plant_sensor_3eb0
|
||||
states:
|
||||
- state: "problem"
|
||||
@@ -386,14 +387,14 @@ cards:
|
||||
|
||||
# Outside is expected to be colder/hotter
|
||||
- entities:
|
||||
- sensor.lacrosse_tx141thbv2_0_temperature
|
||||
- sensor.front_yard_thermostat_temperature
|
||||
- sensor.front_porch_temperature
|
||||
- sensor.deck_temperature
|
||||
- sensor.garage_multisensor_air_temperature
|
||||
# - sensor.hvac_multisensor_supply
|
||||
# - sensor.hvac_multisensor_return
|
||||
# - sensor.hvac_multisensor_ambient
|
||||
- sensor.acurite_592txr_a_temperature
|
||||
- sensor.back_yard_thermostat_temperature
|
||||
- sensor.outdoor_temperature
|
||||
# text_template: '${entity.state ? entity.state : "unknown"} F'
|
||||
# An example of rounding up a number, i.e. a temperature of 90.1 becomes 91
|
||||
@@ -415,7 +416,7 @@ cards:
|
||||
'
|
||||
|
||||
- entities:
|
||||
- sensor.acurite_986_1r_48226_temperature
|
||||
- sensor.kitchen_fridge_thermostat_temperature
|
||||
text_template: '${entity.state ? Math.floor(entity.state) : "unknown"}'
|
||||
class_template: '
|
||||
var temp = parseFloat(entity.state.replace("°", ""));
|
||||
@@ -430,7 +431,7 @@ cards:
|
||||
'
|
||||
|
||||
- entities:
|
||||
- sensor.acurite_986_2f_42383_temperature
|
||||
- sensor.kitchen_freezer_thermostat_temperature
|
||||
text_template: '${entity.state ? Math.floor(entity.state) : "unknown"}'
|
||||
class_template: '
|
||||
var temp = parseFloat(entity.state.replace("°", ""));
|
||||
@@ -490,9 +491,9 @@ cards:
|
||||
'
|
||||
|
||||
- entities:
|
||||
- sensor.lacrosse_tx141thbv2_0_humidity
|
||||
- sensor.front_yard_thermostat_humidity
|
||||
- sensor.garage_multisensor_humidity
|
||||
- sensor.acurite_592txr_a_humidity
|
||||
- sensor.back_yard_thermostat_humidity
|
||||
- sensor.outdoor_humidity
|
||||
text_template: '${entity.state ? Math.ceil(entity.state) : "unknown"} %'
|
||||
class_template: '
|
||||
|
||||
@@ -16,14 +16,12 @@ cards:
|
||||
name: Nursery
|
||||
- entity: sensor.thermostat_temperature
|
||||
name: Thermostat
|
||||
- entity: sensor.bar_temperature
|
||||
- entity: sensor.dining_room_multisensor_air_temperature
|
||||
name: Dining Room
|
||||
- entity: sensor.front_room_thermostat_temperature
|
||||
name: Front Room
|
||||
- entity: sensor.kitchen_multisensor_air_temperature
|
||||
name: Kitchen
|
||||
- entity: sensor.entryway_temperature
|
||||
name: Entryway
|
||||
hours_to_show: 12
|
||||
refresh_interval: 60
|
||||
title: Upstairs Temp
|
||||
@@ -33,12 +31,14 @@ cards:
|
||||
name: Master Bedroom
|
||||
- entity: sensor.nursery_multisensor_humidity
|
||||
name: Nursery
|
||||
- entity: sensor.thermostat_humidity
|
||||
name: Thermostat
|
||||
- entity: sensor.dining_room_multisensor_humidity
|
||||
name: Dining Room
|
||||
- entity: sensor.front_room_thermostat_humidity
|
||||
name: Front Room
|
||||
- entity: sensor.kitchen_multisensor_humidity
|
||||
name: Kitchen
|
||||
- entity: sensor.thermostat_humidity
|
||||
name: Thermostat
|
||||
hours_to_show: 12
|
||||
refresh_interval: 60
|
||||
title: Upstairs Humidity
|
||||
@@ -57,14 +57,12 @@ cards:
|
||||
- entities:
|
||||
- entity: sensor.computer_area_multisensor_air_temperature
|
||||
name: Computer Area
|
||||
- entity: sensor.entryway_temperature
|
||||
name: Entryway
|
||||
- entity: sensor.mancave_thermostat_temperature
|
||||
name: Mancave
|
||||
- entity: sensor.blue_room_thermostat_temperature
|
||||
name: Blue Room
|
||||
- entity: sensor.great_room_multisensor_air_temperature
|
||||
name: Great Room
|
||||
- entity: sensor.mancave_thermostat_temperature
|
||||
name: Mancave
|
||||
- entity: sensor.blue_room_multisensor_air_temperature
|
||||
name: Blue Room
|
||||
- entity: sensor.furnace_room_thermostat_temperature
|
||||
name: Furnace Room
|
||||
hours_to_show: 12
|
||||
@@ -78,7 +76,7 @@ cards:
|
||||
name: Great Room
|
||||
- entity: sensor.mancave_thermostat_humidity
|
||||
name: Mancave
|
||||
- entity: sensor.blue_room_thermostat_humidity
|
||||
- entity: sensor.blue_room_multisensor_humidity
|
||||
name: Blue Room
|
||||
- entity: sensor.furnace_room_thermostat_humidity
|
||||
name: Furnace Room
|
||||
@@ -137,7 +135,7 @@ cards:
|
||||
name: Nursery
|
||||
- entity: sensor.front_room_light_level
|
||||
name: Front Room
|
||||
- entity: sensor.bar_light_level
|
||||
- entity: sensor.dining_room_multisensor_illuminance
|
||||
name: Dining Room
|
||||
- entity: sensor.entryway_light_level
|
||||
name: Entryway
|
||||
@@ -153,6 +151,8 @@ cards:
|
||||
name: Computer Area
|
||||
- entity: sensor.great_room_multisensor_illuminance
|
||||
name: Great Room
|
||||
- entity: sensor.blue_room_multisensor_illuminance
|
||||
name: Blue Room
|
||||
hours_to_show: 12
|
||||
refresh_interval: 60
|
||||
title: Downstairs Light Level
|
||||
|
||||
@@ -843,7 +843,7 @@ badges:
|
||||
navigation_path: /phone-yaml/plants
|
||||
hold_action:
|
||||
action: more-info
|
||||
- entity: plant.fineoffset_wh51_0ce593
|
||||
- entity: plant.hasta_soil_sensor
|
||||
name: Hostas
|
||||
tap_action:
|
||||
action: navigate
|
||||
|
||||
@@ -43,6 +43,7 @@ cards:
|
||||
- type: calendar
|
||||
entities:
|
||||
- calendar.clint
|
||||
- calendar.wmu_calendar
|
||||
|
||||
- type: vertical-stack
|
||||
cards:
|
||||
@@ -114,4 +115,5 @@ cards:
|
||||
- type: calendar
|
||||
entities:
|
||||
- calendar.bridget
|
||||
- calendar.my_custody
|
||||
- calendar.allegan_public_schools
|
||||
- calendar.west_ward_elementary
|
||||
|
||||
@@ -39,8 +39,8 @@
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.02"
|
||||
inkscape:cx="48525"
|
||||
inkscape:cy="32825"
|
||||
inkscape:cx="56275"
|
||||
inkscape:cy="10675"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
@@ -49,7 +49,7 @@
|
||||
showborder="true"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1009"
|
||||
inkscape:window-x="1912"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
showguides="true"
|
||||
@@ -1278,20 +1278,20 @@
|
||||
transform="translate(-33.504291,-4.0861608)">
|
||||
<rect
|
||||
style="fill:none;stroke:none;stroke-width:0.265857;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="sensor.acurite_986_2f_42383_temperature_2"
|
||||
id="sensor.kitchen_freezer_thermostat_temperature_2"
|
||||
width="10.375003"
|
||||
height="38.750011"
|
||||
x="353.625"
|
||||
y="-17638.875"
|
||||
inkscape:label="sensor.acurite_986_2f_42383_temperature_2" />
|
||||
inkscape:label="sensor.kitchen_freezer_thermostat_temperature_2" />
|
||||
<rect
|
||||
style="fill:none;stroke:none;stroke-width:0.135077;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="sensor.acurite_986_1r_48226_temperature_2"
|
||||
id="sensor.kitchen_fridge_thermostat_temperature_2"
|
||||
width="14.875127"
|
||||
height="39.000011"
|
||||
x="365.125"
|
||||
y="-17639"
|
||||
inkscape:label="sensor.acurite_986_1r_48226_temperature_2" />
|
||||
inkscape:label="sensor.kitchen_fridge_thermostat_temperature_2" />
|
||||
<g
|
||||
id="g991"
|
||||
transform="matrix(0.08582121,0,0,0.08582121,336.50561,-17642.293)">
|
||||
@@ -3864,7 +3864,7 @@
|
||||
d="m 720.0222,-17679.003 a 4.5,4.5 0 0 1 4.99225,3.941 4.5,4.5 0 0 1 -3.93422,4.997 4.5,4.5 0 0 1 -5.00204,-3.928 4.5,4.5 0 0 1 3.92178,-5.007"
|
||||
inkscape:label="light.storage_room"
|
||||
sodipodi:arc-type="arc" />
|
||||
inkscape:label="light.front_porch_overhead" /> <rect
|
||||
inkscape:label="light.front_porch_overhead" /> <rect
|
||||
id="rect12-8-8-9-3-20-4-5-3"
|
||||
width="43.5"
|
||||
height="4.5"
|
||||
@@ -4307,8 +4307,8 @@
|
||||
<text
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.36111px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#d4d4d4;fill-opacity:1;stroke-width:2.63435"
|
||||
transform="scale(0.93757302,1.0665836)"
|
||||
inkscape:label="sensor.acurite_986_2f_42383_temperature"
|
||||
id="sensor.acurite_986_2f_42383_temperature"
|
||||
inkscape:label="sensor.kitchen_freezer_thermostat_temperature"
|
||||
id="sensor.kitchen_freezer_thermostat_temperature"
|
||||
y="-16506.842"
|
||||
x="342.57764"
|
||||
xml:space="preserve"><tspan
|
||||
@@ -4319,8 +4319,8 @@
|
||||
<text
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.36111px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#d4d4d4;fill-opacity:1;stroke-width:2.63435"
|
||||
transform="scale(0.93757302,1.0665836)"
|
||||
inkscape:label="sensor.acurite_986_1r_48226_temperature"
|
||||
id="sensor.acurite_986_1r_48226_temperature"
|
||||
inkscape:label="sensor.kitchen_fridge_thermostat_temperature"
|
||||
id="sensor.kitchen_fridge_thermostat_temperature"
|
||||
y="-16506.842"
|
||||
x="357.37598"
|
||||
xml:space="preserve"><tspan
|
||||
@@ -4976,8 +4976,8 @@
|
||||
<text
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.36111px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;display:inline;fill:#d4d4d4;fill-opacity:1;stroke-width:2.63435"
|
||||
transform="scale(0.93757302,1.0665836)"
|
||||
inkscape:label="sensor.lacrosse_tx141thbv2_0_temperature"
|
||||
id="sensor.lacrosse_tx141thbv2_0_temperature"
|
||||
inkscape:label="sensor.front_yard_thermostat_temperature"
|
||||
id="sensor.front_yard_thermostat_temperature"
|
||||
y="-16661.049"
|
||||
x="742.64539"
|
||||
xml:space="preserve"><tspan
|
||||
@@ -5012,8 +5012,8 @@
|
||||
<text
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.36111px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;display:inline;fill:#d4d4d4;fill-opacity:1;stroke-width:2.63435"
|
||||
transform="scale(0.93757302,1.0665836)"
|
||||
inkscape:label="sensor.lacrosse_tx141thbv2_0_humidity"
|
||||
id="sensor.lacrosse_tx141thbv2_0_humidity"
|
||||
inkscape:label="sensor.front_yard_thermostat_humidity"
|
||||
id="sensor.front_yard_thermostat_humidity"
|
||||
y="-16650.795"
|
||||
x="742.64539"
|
||||
xml:space="preserve"><tspan
|
||||
@@ -5048,8 +5048,8 @@
|
||||
<text
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.36111px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;display:inline;fill:#d4d4d4;fill-opacity:1;stroke-width:2.63435"
|
||||
transform="scale(0.93757302,1.0665836)"
|
||||
inkscape:label="sensor.acurite_592txr_a_temperature"
|
||||
id="sensor.acurite_592txr_a_temperature"
|
||||
inkscape:label="sensor.back_yard_thermostat_temperature"
|
||||
id="sensor.back_yard_thermostat_temperature"
|
||||
y="-16255.984"
|
||||
x="197.79414"
|
||||
xml:space="preserve"><tspan
|
||||
@@ -5060,8 +5060,8 @@
|
||||
<text
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.36111px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;display:inline;fill:#d4d4d4;fill-opacity:1;stroke-width:2.63435"
|
||||
transform="scale(0.93757302,1.0665836)"
|
||||
inkscape:label="sensor.acurite_592txr_a_humidity"
|
||||
id="sensor.acurite_592txr_a_humidity"
|
||||
inkscape:label="sensor.back_yard_thermostat_humidity"
|
||||
id="sensor.back_yard_thermostat_humidity"
|
||||
y="-16245.73"
|
||||
x="197.79414"
|
||||
xml:space="preserve"><tspan
|
||||
@@ -5070,24 +5070,24 @@
|
||||
x="197.79414"
|
||||
y="-16245.73">---------</tspan></text>
|
||||
<g
|
||||
id="plant.fineoffset_wh51_00f935"
|
||||
inkscape:label="plant.fineoffset_wh51_00f935"
|
||||
id="plant.daisy_soil_sensor"
|
||||
inkscape:label="plant.daisy_soil_sensor"
|
||||
style="fill:#000000;fill-opacity:1">
|
||||
<path
|
||||
d="m 1106.6751,-17366.7 a 5.3129774,5.3129774 0 0 0 5.3101,5.098 c 0,-2.832 -2.3802,-5.098 -5.3101,-5.098 m 5.3101,-4.536 a 1.4758274,1.4758274 0 0 1 1.4735,1.698 1.4758274,1.4758274 0 0 1 -1.4735,1.705 1.4758274,1.4758274 0 0 1 -1.4735,-1.705 1.4758274,1.4758274 0 0 1 1.4735,-1.698 m -3.78,2.836 a 1.4758274,1.4758274 0 0 0 1.4792,1.7 c 0.3398,0 0.6007,0 0.8273,0 0,0 0,0 0,0 a 1.4758274,1.4758274 0 0 0 1.4735,1.7 1.4758274,1.4758274 0 0 0 1.4735,-1.7 c 0,0 0,0 0,0 0.2266,0 0.5098,0 0.8274,0 0.8161,0 1.4734,-0.567 1.4734,-1.7 0,-0.571 -0.3398,-1.138 -0.8443,-1.138 0.5098,0 0.8443,-0.567 0.8443,-1.133 0,-0.565 -0.663,-1.699 -1.4734,-1.699 -0.3399,0 -0.6007,0 -0.8274,0 0,0 0,0 0,0 a 1.4758274,1.4758274 0 0 0 -1.4735,-1.699 1.4758274,1.4758274 0 0 0 -1.4735,1.699 c 0,0 0,0 0,0 -0.2265,0 -0.5098,0 -0.8273,0 a 1.4758274,1.4758274 0 0 0 -1.4792,1.699 c 0,0.566 0.3399,1.133 0.8444,1.133 -0.5098,0 -0.8444,0.567 -0.8444,1.138 m 3.78,6.911 a 5.3129774,5.3129774 0 0 0 5.3102,-5.098 c -2.9526,0 -5.3102,2.266 -5.3102,5.098 z"
|
||||
id="plant.fineoffset_wh51_00f935_1"
|
||||
id="plant.hasta_soil_sensor_1"
|
||||
style="fill:#000000;fill-opacity:1;stroke-width:0.590332"
|
||||
inkscape:label="plant.fineoffset_wh51_00f935_1" />
|
||||
inkscape:label="plant.hasta_soil_sensor_1" />
|
||||
<path
|
||||
d="m 1091.1993,-17353.224 a 5.3129774,5.3129774 0 0 0 5.3101,5.098 c 0,-2.832 -2.3802,-5.098 -5.3101,-5.098 m 5.3101,-4.536 a 1.4758274,1.4758274 0 0 1 1.4735,1.698 1.4758274,1.4758274 0 0 1 -1.4735,1.705 1.4758274,1.4758274 0 0 1 -1.4735,-1.705 1.4758274,1.4758274 0 0 1 1.4735,-1.698 m -3.78,2.836 a 1.4758274,1.4758274 0 0 0 1.4792,1.7 c 0.3398,0 0.6007,0 0.8273,0 0,0 0,0 0,0 a 1.4758274,1.4758274 0 0 0 1.4735,1.7 1.4758274,1.4758274 0 0 0 1.4735,-1.7 c 0,0 0,0 0,0 0.2266,0 0.5098,0 0.8274,0 0.8161,0 1.4734,-0.567 1.4734,-1.7 0,-0.571 -0.3398,-1.138 -0.8443,-1.138 0.5098,0 0.8443,-0.567 0.8443,-1.133 0,-0.565 -0.663,-1.699 -1.4734,-1.699 -0.3399,0 -0.6007,0 -0.8274,0 0,0 0,0 0,0 a 1.4758274,1.4758274 0 0 0 -1.4735,-1.699 1.4758274,1.4758274 0 0 0 -1.4735,1.699 c 0,0 0,0 0,0 -0.2265,0 -0.5098,0 -0.8273,0 a 1.4758274,1.4758274 0 0 0 -1.4792,1.699 c 0,0.566 0.3399,1.133 0.8444,1.133 -0.5098,0 -0.8444,0.567 -0.8444,1.138 m 3.78,6.911 a 5.3129774,5.3129774 0 0 0 5.3102,-5.098 c -2.9526,0 -5.3102,2.266 -5.3102,5.098 z"
|
||||
id="plant.fineoffset_wh51_00f935_1-7"
|
||||
id="plant.hasta_soil_sensor_1-7"
|
||||
style="fill:#000000;fill-opacity:1;stroke-width:0.590332"
|
||||
inkscape:label="plant.fineoffset_wh51_00f935_1" />
|
||||
inkscape:label="plant.hasta_soil_sensor_1" />
|
||||
<path
|
||||
d="m 1109.2164,-17348.162 a 5.3129774,5.3129774 0 0 0 5.3101,5.098 c 0,-2.832 -2.3802,-5.098 -5.3101,-5.098 m 5.3101,-4.536 a 1.4758274,1.4758274 0 0 1 1.4735,1.698 1.4758274,1.4758274 0 0 1 -1.4735,1.705 1.4758274,1.4758274 0 0 1 -1.4735,-1.705 1.4758274,1.4758274 0 0 1 1.4735,-1.698 m -3.78,2.836 a 1.4758274,1.4758274 0 0 0 1.4792,1.7 c 0.3398,0 0.6007,0 0.8273,0 0,0 0,0 0,0 a 1.4758274,1.4758274 0 0 0 1.4735,1.7 1.4758274,1.4758274 0 0 0 1.4735,-1.7 c 0,0 0,0 0,0 0.2266,0 0.5098,0 0.8274,0 0.8161,0 1.4734,-0.567 1.4734,-1.7 0,-0.571 -0.3398,-1.138 -0.8443,-1.138 0.5098,0 0.8443,-0.567 0.8443,-1.133 0,-0.565 -0.663,-1.699 -1.4734,-1.699 -0.3399,0 -0.6007,0 -0.8274,0 0,0 0,0 0,0 a 1.4758274,1.4758274 0 0 0 -1.4735,-1.699 1.4758274,1.4758274 0 0 0 -1.4735,1.699 c 0,0 0,0 0,0 -0.2265,0 -0.5098,0 -0.8273,0 a 1.4758274,1.4758274 0 0 0 -1.4792,1.699 c 0,0.566 0.3399,1.133 0.8444,1.133 -0.5098,0 -0.8444,0.567 -0.8444,1.138 m 3.78,6.911 a 5.3129774,5.3129774 0 0 0 5.3102,-5.098 c -2.9526,0 -5.3102,2.266 -5.3102,5.098 z"
|
||||
id="plant.fineoffset_wh51_00f935_1-6"
|
||||
id="plant.hasta_soil_sensor_1-6"
|
||||
style="fill:#000000;fill-opacity:1;stroke-width:0.590332"
|
||||
inkscape:label="plant.fineoffset_wh51_00f935_1" />
|
||||
inkscape:label="plant.hasta_soil_sensor_1" />
|
||||
</g>
|
||||
<path
|
||||
d="m 961.59437,-17416.444 a 5.3129802,5.3128667 0 0 0 5.31011,5.098 c 0,-2.832 -2.38019,-5.098 -5.31011,-5.098 m 5.31011,-4.536 a 1.4758282,1.4757966 0 0 1 1.47351,1.698 1.4758282,1.4757966 0 0 1 -1.47351,1.705 1.4758282,1.4757966 0 0 1 -1.47344,-1.705 1.4758282,1.4757966 0 0 1 1.47344,-1.698 m -3.77996,2.836 a 1.4758282,1.4757966 0 0 0 1.47913,1.7 c 0.33986,0 0.6007,0 0.82739,0 0,0 0,0 0,0 a 1.4758282,1.4757966 0 0 0 1.47344,1.7 1.4758282,1.4757966 0 0 0 1.47351,-1.7 c 0,0 0,0 0,0 0.22659,0 0.50981,0 0.82739,0 0.81607,0 1.47346,-0.567 1.47346,-1.7 0,-0.571 -0.33986,-1.138 -0.84438,-1.138 0.50981,0 0.84438,-0.566 0.84438,-1.133 0,-0.565 -0.66306,-1.698 -1.47346,-1.698 -0.33986,0 -0.6007,0 -0.82739,0 0,0 0,0 0,0 a 1.4758282,1.4757966 0 0 0 -1.47351,-1.7 1.4758282,1.4757966 0 0 0 -1.47344,1.7 c 0,0 0,0 0,0 -0.22658,0 -0.50981,0 -0.82739,0 a 1.4758282,1.4757966 0 0 0 -1.47913,1.698 c 0,0.567 0.33987,1.133 0.84439,1.133 -0.50981,0 -0.84439,0.567 -0.84439,1.138 m 3.77996,6.911 a 5.3129802,5.3128667 0 0 0 5.31018,-5.098 c -2.95257,0 -5.31018,2.267 -5.31018,5.098 z"
|
||||
@@ -5105,19 +5105,19 @@
|
||||
style="fill:#000000;fill-opacity:1;stroke-width:0.590325"
|
||||
inkscape:label="plant.plant_sensor_3eb0" />
|
||||
<g
|
||||
id="plant.fineoffset_wh51_0ce593"
|
||||
inkscape:label="plant.fineoffset_wh51_0ce593"
|
||||
id="plant.hasta_soil_sensor"
|
||||
inkscape:label="plant.hasta_soil_sensor"
|
||||
style="fill:#000000;fill-opacity:1">
|
||||
<path
|
||||
d="m 354.70542,-17793.867 a 5.3129802,5.3128667 0 0 0 5.31011,5.098 c 0,-2.832 -2.38019,-5.098 -5.31011,-5.098 m 5.31011,-4.536 a 1.4758282,1.4757966 0 0 1 1.47351,1.698 1.4758282,1.4757966 0 0 1 -1.47351,1.705 1.4758282,1.4757966 0 0 1 -1.47344,-1.705 1.4758282,1.4757966 0 0 1 1.47344,-1.698 m -3.77996,2.836 a 1.4758282,1.4757966 0 0 0 1.47913,1.7 c 0.33986,0 0.6007,0 0.82739,0 0,0 0,0 0,0 a 1.4758282,1.4757966 0 0 0 1.47344,1.7 1.4758282,1.4757966 0 0 0 1.47351,-1.7 c 0,0 0,0 0,0 0.22659,0 0.50981,0 0.82739,0 0.81607,0 1.47346,-0.567 1.47346,-1.7 0,-0.571 -0.33986,-1.138 -0.84438,-1.138 0.50981,0 0.84438,-0.566 0.84438,-1.133 0,-0.565 -0.66306,-1.698 -1.47346,-1.698 -0.33986,0 -0.6007,0 -0.82739,0 0,0 0,0 0,0 a 1.4758282,1.4757966 0 0 0 -1.47351,-1.7 1.4758282,1.4757966 0 0 0 -1.47344,1.7 c 0,0 0,0 0,0 -0.22658,0 -0.50981,0 -0.82739,0 a 1.4758282,1.4757966 0 0 0 -1.47913,1.698 c 0,0.567 0.33987,1.133 0.84439,1.133 -0.50981,0 -0.84439,0.567 -0.84439,1.138 m 3.77996,6.911 a 5.3129802,5.3128667 0 0 0 5.31018,-5.098 c -2.95257,0 -5.31018,2.267 -5.31018,5.098 z"
|
||||
id="plant.fineoffset_wh51_0ce593_1"
|
||||
id="path1"
|
||||
style="fill:#000000;fill-opacity:1;stroke-width:0.590325"
|
||||
inkscape:label="plant.fineoffset_wh51_0ce593_1" />
|
||||
inkscape:label="plant.hasta_soil_sensor_1" />
|
||||
<path
|
||||
d="m 397.21638,-17795 a 5.3129802,5.3128667 0 0 0 5.31011,5.098 c 0,-2.832 -2.38019,-5.098 -5.31011,-5.098 m 5.31011,-4.536 a 1.4758282,1.4757966 0 0 1 1.47351,1.698 1.4758282,1.4757966 0 0 1 -1.47351,1.705 1.4758282,1.4757966 0 0 1 -1.47344,-1.705 1.4758282,1.4757966 0 0 1 1.47344,-1.698 m -3.77996,2.836 a 1.4758282,1.4757966 0 0 0 1.47913,1.7 c 0.33986,0 0.6007,0 0.82739,0 0,0 0,0 0,0 a 1.4758282,1.4757966 0 0 0 1.47344,1.7 1.4758282,1.4757966 0 0 0 1.47351,-1.7 c 0,0 0,0 0,0 0.22659,0 0.50981,0 0.82739,0 0.81607,0 1.47346,-0.567 1.47346,-1.7 0,-0.571 -0.33986,-1.138 -0.84438,-1.138 0.50981,0 0.84438,-0.566 0.84438,-1.133 0,-0.565 -0.66306,-1.698 -1.47346,-1.698 -0.33986,0 -0.6007,0 -0.82739,0 0,0 0,0 0,0 a 1.4758282,1.4757966 0 0 0 -1.47351,-1.7 1.4758282,1.4757966 0 0 0 -1.47344,1.7 c 0,0 0,0 0,0 -0.22658,0 -0.50981,0 -0.82739,0 a 1.4758282,1.4757966 0 0 0 -1.47913,1.698 c 0,0.567 0.33987,1.133 0.84439,1.133 -0.50981,0 -0.84439,0.567 -0.84439,1.138 m 3.77996,6.911 a 5.3129802,5.3128667 0 0 0 5.31018,-5.098 c -2.95257,0 -5.31018,2.267 -5.31018,5.098 z"
|
||||
id="plant.fineoffset_wh51_0ce593_2"
|
||||
id="plant.hasta_soil_sensor_2"
|
||||
style="fill:#000000;fill-opacity:1;stroke-width:0.590325"
|
||||
inkscape:label="plant.fineoffset_wh51_0ce593_2" />
|
||||
inkscape:label="plant.hasta_soil_sensor_2" />
|
||||
</g>
|
||||
<path
|
||||
d="m 195.2164,-17415 a 5.3129802,5.3128667 0 0 0 5.3101,5.098 c 0,-2.832 -2.3802,-5.098 -5.3101,-5.098 m 5.3101,-4.536 a 1.4758282,1.4757966 0 0 1 1.4735,1.698 1.4758282,1.4757966 0 0 1 -1.4735,1.705 1.4758282,1.4757966 0 0 1 -1.4734,-1.705 1.4758282,1.4757966 0 0 1 1.4734,-1.698 m -3.7799,2.836 a 1.4758282,1.4757966 0 0 0 1.4791,1.7 c 0.3399,0 0.6007,0 0.8274,0 0,0 0,0 0,0 a 1.4758282,1.4757966 0 0 0 1.4734,1.7 1.4758282,1.4757966 0 0 0 1.4735,-1.7 c 0,0 0,0 0,0 0.2266,0 0.5098,0 0.8274,0 0.8161,0 1.4735,-0.567 1.4735,-1.7 0,-0.571 -0.3399,-1.138 -0.8444,-1.138 0.5098,0 0.8444,-0.566 0.8444,-1.133 0,-0.565 -0.6631,-1.698 -1.4735,-1.698 -0.3398,0 -0.6007,0 -0.8274,0 0,0 0,0 0,0 a 1.4758282,1.4757966 0 0 0 -1.4735,-1.7 1.4758282,1.4757966 0 0 0 -1.4734,1.7 c 0,0 0,0 0,0 -0.2266,0 -0.5098,0 -0.8274,0 a 1.4758282,1.4757966 0 0 0 -1.4791,1.698 c 0,0.567 0.3398,1.133 0.8444,1.133 -0.5099,0 -0.8444,0.567 -0.8444,1.138 m 3.7799,6.911 a 5.3129802,5.3128667 0 0 0 5.3102,-5.098 c -2.9526,0 -5.3102,2.267 -5.3102,5.098 z"
|
||||
|
||||
|
Before Width: | Height: | Size: 519 KiB After Width: | Height: | Size: 519 KiB |
Reference in New Issue
Block a user