renames, fixes , and other fun schtuff

This commit is contained in:
CeeWeasel
2025-08-09 23:34:29 -04:00
parent d60b56b37a
commit c5e740a895
78 changed files with 2050 additions and 2700 deletions
+1 -1
View File
@@ -38,7 +38,7 @@ media/
custom_components/ custom_components/
custom_logs/ custom_logs/
snapshots/ snapshots/
rtl_433*/ rtl_433/
tts/ tts/
/lovelace/private /lovelace/private
model_cache/ model_cache/
@@ -5,7 +5,7 @@ mode: restart
trigger: trigger:
- platform: state - platform: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
to: "on" to: "on"
for: "00:10:00" for: "00:10:00"
- platform: state - platform: state
@@ -22,14 +22,14 @@ condition:
state: "on" state: "on"
- condition: state - condition: state
entity_id: entity_id:
- input_boolean.white_bed_occupied - binary_sensor.white_bed_occupied
state: "on" state: "on"
for: "00:10:00" for: "00:10:00"
- condition: state - condition: state
entity_id: input_boolean.bridget_in_bed entity_id: input_boolean.bridget_in_bed
state: "off" state: "off"
#- condition: state #- condition: state
# entity_id: input_boolean.white_bed_occupied # entity_id: binary_sensor.white_bed_occupied
# state: 'on' # state: 'on'
# for: # for:
# minutes: 5 # minutes: 5
+2 -2
View File
@@ -4,7 +4,7 @@ mode: restart
trigger: trigger:
- platform: state - platform: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
to: "on" to: "on"
for: "00:05:00" for: "00:05:00"
- platform: state - platform: state
@@ -31,7 +31,7 @@ condition:
for: for:
minutes: 5 minutes: 5
- condition: state - condition: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
state: "on" state: "on"
for: for:
minutes: 5 minutes: 5
+11 -11
View File
@@ -16,7 +16,7 @@ trigger:
- platform: state - platform: state
entity_id: entity_id:
- binary_sensor.black_bed_occupied - binary_sensor.black_bed_occupied
- input_boolean.white_bed_occupied - binary_sensor.white_bed_occupied
to: "off" to: "off"
for: "00:05:00" for: "00:05:00"
@@ -67,10 +67,10 @@ condition:
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
state: "off" state: "off"
- condition: state - condition: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
state: "unavailable" state: "unavailable"
- condition: or - condition: or
conditions: conditions:
@@ -96,10 +96,10 @@ condition:
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
state: "off" state: "off"
- condition: state - condition: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
state: "unavailable" state: "unavailable"
action: action:
- service: input_boolean.turn_off - service: input_boolean.turn_off
@@ -140,10 +140,10 @@ action:
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
state: "off" state: "off"
- condition: state - condition: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
state: "unavailable" state: "unavailable"
sequence: sequence:
- service: input_boolean.turn_off - service: input_boolean.turn_off
@@ -170,10 +170,10 @@ action:
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
state: "off" state: "off"
- condition: state - condition: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
state: "unavailable" state: "unavailable"
sequence: sequence:
- service: input_boolean.turn_off - service: input_boolean.turn_off
@@ -194,10 +194,10 @@ action:
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
state: "off" state: "off"
- condition: state - condition: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
state: "unavailable" state: "unavailable"
- condition: not - condition: not
conditions: conditions:
@@ -8,7 +8,7 @@ trigger:
for: "00:00:03" for: "00:00:03"
- platform: state - platform: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
to: "off" to: "off"
for: "00:00:03" for: "00:00:03"
@@ -7,7 +7,7 @@ trigger:
to: "off" to: "off"
for: "00:00:03" for: "00:00:03"
- platform: state - platform: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
to: "off" to: "off"
for: "00:00:03" for: "00:00:03"
@@ -7,7 +7,7 @@ trigger:
to: "on" to: "on"
for: "00:00:30" for: "00:00:30"
- platform: state - platform: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
to: "on" to: "on"
for: "00:00:30" for: "00:00:30"
@@ -24,7 +24,7 @@ condition:
state: "off" state: "off"
- condition: state - condition: state
entity_id: entity_id:
- input_boolean.white_bed_occupied - binary_sensor.white_bed_occupied
- binary_sensor.black_bed_occupied - binary_sensor.black_bed_occupied
state: state:
- "off" - "off"
@@ -11,7 +11,7 @@ trigger:
to: "off" to: "off"
for: "00:00:05" for: "00:00:05"
- trigger: state - trigger: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
from: "on" from: "on"
to: "off" to: "off"
for: "00:00:05" for: "00:00:05"
+2 -2
View File
@@ -69,7 +69,7 @@ triggers:
condition: condition:
- alias: "Only turn the fans on if it's warm enough outside" - alias: "Only turn the fans on if it's warm enough outside"
condition: template 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: action:
- alias: "Calculate fan speeds" - alias: "Calculate fan speeds"
@@ -82,7 +82,7 @@ action:
# name: Automatic Fan Speeds # name: Automatic Fan Speeds
# entity_id: automation.automatic_fan_speeds # entity_id: automation.automatic_fan_speeds
# message: > # 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 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 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)}} # 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
@@ -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 prob_given_false: 0.0
- platform: state - platform: state
entity_id: input_boolean.white_bed_occupied entity_id: binary_sensor.white_bed_occupied
to_state: "on" to_state: "on"
prob_given_true: .67 prob_given_true: .67
prob_given_false: 0.0 prob_given_false: 0.0
+13 -13
View File
@@ -71,25 +71,25 @@ sensors:
double_planter_needs_water: double_planter_needs_water:
unique_id: templatebinarysensor.double_planter_needs_water unique_id: templatebinarysensor.double_planter_needs_water
friendly_name: 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" delay_on: "00:05:00"
icon_template: > icon_template: >
{% if states('sensor.fineoffset_wh51_00f935_moisture') == 'unavailable' %} {% if states('sensor.hasta_soil_sensor_moisture') == 'unavailable' %}
mdi:flower-outline mdi:flower-outline
{% else %} {% else %}
mdi:flower mdi:flower
{% endif %} {% endif %}
attribute_templates: 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)}}" alarm_trigger: "{{states('input_number.double_planter_water_alert') | float(default=0)}}"
kitchen_fridge_too_warm: kitchen_fridge_too_warm:
unique_id: templatebinarysensor.kitchen_fridge_too_warm unique_id: templatebinarysensor.kitchen_fridge_too_warm
friendly_name: 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" delay_on: "00:30:00"
icon_template: > 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 mdi:fridge-variant-alert
{% else %} {% else %}
mdi:fridge-variant mdi:fridge-variant
@@ -98,10 +98,10 @@ sensors:
kitchen_freezer_too_warm: kitchen_freezer_too_warm:
unique_id: templatebinarysensor.kitchen_freezer_too_warm unique_id: templatebinarysensor.kitchen_freezer_too_warm
friendly_name: 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" delay_on: "00:30:00"
icon_template: > 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 mdi:fridge-variant-alert
{% else %} {% else %}
mdi:fridge-variant mdi:fridge-variant
@@ -110,10 +110,10 @@ sensors:
kitchen_fridge_or_freezer_too_warm: kitchen_fridge_or_freezer_too_warm:
unique_id: templatebinarysensor.kitchen_fridge_or_freezer_too_warm unique_id: templatebinarysensor.kitchen_fridge_or_freezer_too_warm
friendly_name: 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" delay_on: "00:30:00"
icon_template: > 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 mdi:fridge-variant-alert
{% else %} {% else %}
mdi:fridge-variant mdi:fridge-variant
@@ -375,7 +375,7 @@ sensors:
# unique_id: templatebinarysensor.warmer_outside # unique_id: templatebinarysensor.warmer_outside
# friendly_name: Warmer Outside # friendly_name: Warmer Outside
# value_template: >- # 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'}} # {{'true'}}
# {% else %} # {% else %}
# {{ 'false' }} # {{ 'false' }}
@@ -387,7 +387,7 @@ sensors:
# unique_id: templatebinarysensor.cooler_outside # unique_id: templatebinarysensor.cooler_outside
# friendly_name: Cooler Outside # friendly_name: Cooler Outside
# value_template: >- # 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'}} # {{'true'}}
# {% else %} # {% else %}
# {{ 'false' }} # {{ 'false' }}
@@ -701,8 +701,8 @@ sensors:
bridgets_bed: bridgets_bed:
unique_id: templatebinarysensor.bridgets_bed unique_id: templatebinarysensor.bridgets_bed
friendly_name: Bridget's Bed friendly_name: Bridget's Bed
value_template: "{{ states('input_boolean.white_bed_occupied') }}" value_template: "{{ states('binary_sensor.bed_presence_2d14a4_bed_occupied_either') }}"
icon_template: "{{ iif(is_state('input_boolean.white_bed_occupied','on'),'mdi:bed','mdi:bed-empty','mdi:bed-outline')}}" icon_template: "{{ iif(is_state('binary_sensor.bed_presence_2d14a4_bed_occupied_either','on'),'mdi:bed','mdi:bed-empty','mdi:bed-outline')}}"
check_mail: check_mail:
unique_id: templatebinarysensor.check_mail unique_id: templatebinarysensor.check_mail
@@ -1,4 +1,5 @@
name: Podein Kids name: Podein Kids
icon: mdi:alpha-p-box-outline
options: options:
- Auto - Auto
- Home - Home
@@ -1,4 +1,5 @@
name: Weaver Kids name: Weaver Kids
icon: mdi:alpha-w-box
options: options:
- Auto - Auto
- Home - Home
@@ -342,7 +342,7 @@ template:
- trigger: - trigger:
- platform: state - platform: state
entity_id: binary_sensor.is_raining entity_id: binary_sensor.is_raining
not_from: not_to:
- "unknown" - "unknown"
- "unavailable" - "unavailable"
@@ -416,7 +416,7 @@ automation:
to: "on" to: "on"
- platform: state - platform: state
entity_id: sensor.ecowitt_wh40_21917_precipitation entity_id: sensor.rain_gauge_precipitation
not_to: not_to:
- "unknown" - "unknown"
- "unavailable" - "unavailable"
@@ -433,7 +433,7 @@ automation:
target: target:
entity_id: notify.precipitation entity_id: notify.precipitation
data: 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" - alias: "Sprinkler: Reset After Automatic Run"
id: automation_sprinkler_reset_after_automatic_run id: automation_sprinkler_reset_after_automatic_run
@@ -688,7 +688,7 @@ utility_meter:
rain_quarter_hourly: rain_quarter_hourly:
unique_id: utility_meter_rain_quarter_hourly unique_id: utility_meter_rain_quarter_hourly
name: "Rain: Quarter Hourly" name: "Rain: Quarter Hourly"
source: sensor.ecowitt_wh40_21917_precipitation source: sensor.rain_gauge_precipitation
cycle: quarter-hourly cycle: quarter-hourly
tariffs: tariffs:
- Precipitation - Precipitation
@@ -696,7 +696,7 @@ utility_meter:
rain_hourly: rain_hourly:
unique_id: utility_meter_rain_hourly unique_id: utility_meter_rain_hourly
name: "Rain: Hourly" name: "Rain: Hourly"
source: sensor.ecowitt_wh40_21917_precipitation source: sensor.rain_gauge_precipitation
cycle: hourly cycle: hourly
tariffs: tariffs:
- Precipitation - Precipitation
@@ -704,7 +704,7 @@ utility_meter:
rain_daily: rain_daily:
unique_id: utility_meter_rain_daily unique_id: utility_meter_rain_daily
name: "Rain: Daily" name: "Rain: Daily"
source: sensor.ecowitt_wh40_21917_precipitation source: sensor.rain_gauge_precipitation
cycle: daily cycle: daily
offset: "12:00" offset: "12:00"
tariffs: tariffs:
@@ -713,7 +713,7 @@ utility_meter:
rain_monthly: rain_monthly:
unique_id: utility_meter_rain_monthly unique_id: utility_meter_rain_monthly
name: "Rain: Monthly" name: "Rain: Monthly"
source: sensor.ecowitt_wh40_21917_precipitation source: sensor.rain_gauge_precipitation
cycle: monthly cycle: monthly
tariffs: tariffs:
- Precipitation - Precipitation
@@ -721,7 +721,7 @@ utility_meter:
rain_yearly: rain_yearly:
unique_id: utility_meter_rain_yearly unique_id: utility_meter_rain_yearly
name: "Rain: Yearly" name: "Rain: Yearly"
source: sensor.ecowitt_wh40_21917_precipitation source: sensor.rain_gauge_precipitation
cycle: yearly cycle: yearly
tariffs: tariffs:
- Precipitation - Precipitation
@@ -729,7 +729,7 @@ utility_meter:
sprinkler_recent_rain: sprinkler_recent_rain:
unique_id: utility_meter_sprinkler_recent_rain unique_id: utility_meter_sprinkler_recent_rain
name: "Sprinkler: Recent Rain" name: "Sprinkler: Recent Rain"
source: sensor.ecowitt_wh40_21917_precipitation source: sensor.rain_gauge_precipitation
cycle: yearly cycle: yearly
tariffs: tariffs:
- Precipitation - Precipitation
+18 -32
View File
@@ -21,7 +21,7 @@ script:
media_content_type: media_content_type:
description: "The media content type of the specified media" description: "The media content type of the specified media"
example: audio/mpeg example: music
selector: selector:
text: text:
@@ -41,14 +41,28 @@ script:
# If YTube Music Player is in use, play the announcement over those speakers # 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 # 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")) }}' 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_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) }}" 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") }}' 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: 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: - choose:
- alias: "Ytube music player is playing something" - alias: "Ytube music player is playing something"
conditions: "{{ ytube_in_use }}" conditions: "{{ ytube_in_use }}"
@@ -65,15 +79,6 @@ script:
minutes: 0 minutes: 0
seconds: 2 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" - alias: "Set the volume on the announcement speakers"
service: media_player.volume_set service: media_player.volume_set
target: target:
@@ -81,12 +86,6 @@ script:
data: data:
volume_level: "{{volume}}" volume_level: "{{volume}}"
# - alias: "Wait another bit for the volume to be set"
# delay:
# hours: 0
# minutes: 0
# seconds: 2
- alias: "Play the announcement" - alias: "Play the announcement"
service: media_player.play_media service: media_player.play_media
target: target:
@@ -95,19 +94,6 @@ script:
media_content_id: "{{content_id}}" media_content_id: "{{content_id}}"
media_content_type: "{{content_type}}" 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 - alias: Wait for the specified media_player(s) to become idle
wait_for_trigger: wait_for_trigger:
- platform: template - platform: template
-1
View File
@@ -30,7 +30,6 @@ recorder:
- sensor.mail_updated - sensor.mail_updated
- light.upstairs_public - light.upstairs_public
- input_select.master_bedroom_camera - input_select.master_bedroom_camera
- automation.cycle_cameras
- input_select.outdoor_camera_cycle - input_select.outdoor_camera_cycle
- input_select.indoor_camera_cycle - input_select.indoor_camera_cycle
- sensor.nws_alerts_last_updated - sensor.nws_alerts_last_updated
@@ -13,5 +13,4 @@ sensor:
name: Lowest Ecowitt Battery name: Lowest Ecowitt Battery
type: min type: min
entity_ids: entity_ids:
- sensor.fineoffset_wh51_0ce593_battery - sensor.hasta_soil_sensor_battery
+16 -3
View File
@@ -44,11 +44,24 @@ plant:
min_conductivity: 10 min_conductivity: 10
max_conductivity: 5700 max_conductivity: 5700
fineoffset_wh51_0ce593: hasta_soil_sensor:
sensors: sensors:
moisture: sensor.fineoffset_wh51_0ce593_moisture moisture: sensor.hasta_soil_sensor_moisture
temperature: sensor.outdoor_temperature 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
min_brightness: 200
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 brightness: sensor.outdoors_mean_illuminance
min_moisture: 15 min_moisture: 15
max_moisture: 80 max_moisture: 80
@@ -4,14 +4,13 @@ mqtt:
device_class: timestamp device_class: timestamp
icon: mdi:clock-in icon: mdi:clock-in
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-Tower/A/6162/time" state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-Tower/A/6162/time"
force_update: true
entity_category: diagnostic entity_category: diagnostic
unique_id: AcuriteTower-6162-A-UTC unique_id: acurite-tower-1-a-time
device: device:
identifiers: AcuriteTower-6162-A identifiers: acurite-tower-1-a
name: Acurite 592TXR A name: Back Yard Thermostat
model: Acurite 592TXR model: Tower
manufacturer: rtl_433 manufacturer: Acurite
- name: "Battery" - name: "Battery"
device_class: battery device_class: battery
@@ -20,13 +19,12 @@ mqtt:
state_class: measurement state_class: measurement
entity_category: diagnostic entity_category: diagnostic
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-Tower/A/6162/battery_ok" state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-Tower/A/6162/battery_ok"
force_update: true unique_id: acurite-tower-1-a-battery-ok
unique_id: AcuriteTower-6162-A-B
device: device:
identifiers: AcuriteTower-6162-A identifiers: acurite-tower-1-a
name: Acurite 592TXR A name: Back Yard Thermostat
model: Acurite 592TXRv2 model: Tower
manufacturer: rtl_433 manufacturer: Acurite
- name: "Temperature" - name: "Temperature"
device_class: temperature device_class: temperature
@@ -34,13 +32,12 @@ mqtt:
value_template: "{{ value|float }}" value_template: "{{ value|float }}"
state_class: measurement state_class: measurement
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-Tower/A/6162/temperature_C" state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-Tower/A/6162/temperature_C"
force_update: true unique_id: acurite-tower-1-a-temperature-c
unique_id: AcuriteTower-6162-A-T
device: device:
identifiers: AcuriteTower-6162-A identifiers: acurite-tower-1-a
name: Acurite 592TXR A name: Back Yard Thermostat
model: Acurite 592TXR model: Tower
manufacturer: rtl_433 manufacturer: Acurite
- name: "Humidity" - name: "Humidity"
device_class: humidity device_class: humidity
@@ -48,10 +45,9 @@ mqtt:
value_template: "{{ value|float }}" value_template: "{{ value|float }}"
state_class: measurement state_class: measurement
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-Tower/A/6162/humidity" state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-Tower/A/6162/humidity"
force_update: true unique_id: acurite-tower-1-a-humidity
unique_id: AcuriteTower-6162-A-H
device: device:
identifiers: AcuriteTower-6162-A identifiers: acurite-tower-1-a
name: Acurite 592TXR A name: Back Yard Thermostat
model: Acurite 592TXR model: Tower
manufacturer: rtl_433 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 device_class: timestamp
icon: mdi:clock-in icon: mdi:clock-in
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Nexus-TH/1/44/time" state_topic: "rtl_433/9b13b3f4-rtl433/devices/Nexus-TH/1/44/time"
force_update: true
entity_category: diagnostic entity_category: diagnostic
unique_id: Nexus-TH-1-UTC unique_id: nexus-th-1-time
device: device:
identifiers: Nexus-TH-1 identifiers: nexus-th-1
name: Nexus-TH-1 name: Deck Thermostat
model: Nexus-TH model: TH
manufacturer: rtl_433 manufacturer: Nexus
- name: "Battery" - name: "Battery"
device_class: battery device_class: battery
@@ -20,13 +19,12 @@ mqtt:
state_class: measurement state_class: measurement
entity_category: diagnostic entity_category: diagnostic
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Nexus-TH/1/44/battery_ok" state_topic: "rtl_433/9b13b3f4-rtl433/devices/Nexus-TH/1/44/battery_ok"
force_update: true unique_id: nexus-th-1-battery-ok
unique_id: Nexus-TH-1-B
device: device:
identifiers: Nexus-TH-1 identifiers: nexus-th-1
name: Nexus-TH-1 name: Deck Thermostat
model: Nexus-TH model: TH
manufacturer: rtl_433 manufacturer: Nexus
- name: "Temperature" - name: "Temperature"
device_class: temperature device_class: temperature
@@ -34,13 +32,12 @@ mqtt:
value_template: "{{ value|float }}" value_template: "{{ value|float }}"
state_class: measurement state_class: measurement
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Nexus-TH/1/44/temperature_C" state_topic: "rtl_433/9b13b3f4-rtl433/devices/Nexus-TH/1/44/temperature_C"
force_update: true unique_id: nexus-th-1-temperature-c
unique_id: Nexus-TH-1-T
device: device:
identifiers: Nexus-TH-1 identifiers: nexus-th-1
name: Nexus-TH-1 name: Deck Thermostat
model: Nexus-TH model: TH
manufacturer: rtl_433 manufacturer: Nexus
- name: "Humidity" - name: "Humidity"
device_class: humidity device_class: humidity
@@ -48,10 +45,9 @@ mqtt:
value_template: "{{ value|float }}" value_template: "{{ value|float }}"
state_class: measurement state_class: measurement
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Nexus-TH/1/44/humidity" state_topic: "rtl_433/9b13b3f4-rtl433/devices/Nexus-TH/1/44/humidity"
force_update: true unique_id: nexus-th-1-humidity
unique_id: Nexus-TH-1-H
device: device:
identifiers: Nexus-TH-1 identifiers: nexus-th-1
name: Nexus-TH-1 name: Deck Thermostat
model: Nexus-TH model: TH
manufacturer: rtl_433 manufacturer: Nexus
@@ -4,14 +4,13 @@ mqtt:
device_class: timestamp device_class: timestamp
icon: mdi:clock-in icon: mdi:clock-in
state_topic: "rtl_433/9b13b3f4-rtl433/devices/LaCrosse-TX141THBv2/0/233/time" state_topic: "rtl_433/9b13b3f4-rtl433/devices/LaCrosse-TX141THBv2/0/233/time"
force_update: true
entity_category: diagnostic entity_category: diagnostic
unique_id: LaCrosse-TX141THBv2-0-UTC unique_id: lacrosse-tx141thbv2-0-time
device: device:
identifiers: LaCrosse-TX141THBv2-0 identifiers: lacrosse-tx141thbv2-0
name: LaCrosse-TX141THBv2-0 name: Front Yard Thermostat
model: LaCrosse-TX141THBv2 model: TX141THBv2
manufacturer: rtl_433 manufacturer: LaCrosse
- name: "Battery" - name: "Battery"
device_class: battery device_class: battery
@@ -20,13 +19,12 @@ mqtt:
state_class: measurement state_class: measurement
entity_category: diagnostic entity_category: diagnostic
state_topic: "rtl_433/9b13b3f4-rtl433/devices/LaCrosse-TX141THBv2/0/233/battery_ok" state_topic: "rtl_433/9b13b3f4-rtl433/devices/LaCrosse-TX141THBv2/0/233/battery_ok"
force_update: true unique_id: lacrosse-tx141thbv2-0-battery-ok
unique_id: LaCrosse-TX141THBv2-0-B
device: device:
identifiers: LaCrosse-TX141THBv2-0 identifiers: lacrosse-tx141thbv2-0
name: LaCrosse-TX141THBv2-0 name: Front Yard Thermostat
model: LaCrosse-TX141THBv2 model: TX141THBv2
manufacturer: rtl_433 manufacturer: LaCrosse
- name: "Temperature" - name: "Temperature"
device_class: temperature device_class: temperature
@@ -34,13 +32,12 @@ mqtt:
value_template: "{{ value|float }}" value_template: "{{ value|float }}"
state_class: measurement state_class: measurement
state_topic: "rtl_433/9b13b3f4-rtl433/devices/LaCrosse-TX141THBv2/0/233/temperature_C" state_topic: "rtl_433/9b13b3f4-rtl433/devices/LaCrosse-TX141THBv2/0/233/temperature_C"
force_update: true unique_id: lacrosse-tx141thbv2-0-temperature-c
unique_id: LaCrosse-TX141THBv2-0-T
device: device:
identifiers: LaCrosse-TX141THBv2-0 identifiers: lacrosse-tx141thbv2-0
name: LaCrosse-TX141THBv2-0 name: Front Yard Thermostat
model: LaCrosse-TX141THBv2 model: TX141THBv2
manufacturer: rtl_433 manufacturer: LaCrosse
- name: "Humidity" - name: "Humidity"
device_class: humidity device_class: humidity
@@ -48,10 +45,9 @@ mqtt:
value_template: "{{ value|float }}" value_template: "{{ value|float }}"
state_class: measurement state_class: measurement
state_topic: "rtl_433/9b13b3f4-rtl433/devices/LaCrosse-TX141THBv2/0/233/humidity" state_topic: "rtl_433/9b13b3f4-rtl433/devices/LaCrosse-TX141THBv2/0/233/humidity"
force_update: true unique_id: lacrosse-tx141thbv2-0-humidity
unique_id: LaCrosse-TX141THBv2-0-H
device: device:
identifiers: LaCrosse-TX141THBv2-0 identifiers: lacrosse-tx141thbv2-0
name: LaCrosse-TX141THBv2-0 name: Front Yard Thermostat
model: LaCrosse-TX141THBv2 model: TX141THBv2
manufacturer: rtl_433 manufacturer: LaCrosse
@@ -1,18 +1,16 @@
# Green Ziptie
mqtt: mqtt:
sensor: sensor:
- name: "Timestamp" - name: "Timestamp"
device_class: timestamp device_class: timestamp
icon: mdi:clock-in icon: mdi:clock-in
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Fineoffset-WH51/0ce593/time" state_topic: "rtl_433/9b13b3f4-rtl433/devices/Fineoffset-WH51/0ce593/time"
force_update: true
entity_category: diagnostic entity_category: diagnostic
unique_id: Fineoffset-WH51-0ce593-UTC unique_id: fine-offset-wh51-hasta-time
device: device:
identifiers: Fineoffset-WH51-0ce593 identifiers: ecowitt-wh51-hasta
name: Fineoffset-WH51-0ce593 name: Hasta Soil Sensor
model: Fineoffset-WH51 model: WH51
manufacturer: rtl_433 manufacturer: Ecowitt
- name: "Battery" - name: "Battery"
device_class: battery device_class: battery
@@ -21,13 +19,12 @@ mqtt:
state_class: measurement state_class: measurement
entity_category: diagnostic entity_category: diagnostic
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Fineoffset-WH51/0ce593/battery_ok" state_topic: "rtl_433/9b13b3f4-rtl433/devices/Fineoffset-WH51/0ce593/battery_ok"
force_update: true unique_id: fine-offset-wh51-hasta-battery-ok
unique_id: Fineoffset-WH51-0ce593-B
device: device:
identifiers: Fineoffset-WH51-0ce593 identifiers: ecowitt-wh51-hasta
name: Fineoffset-WH51-0ce593 name: Hasta Soil Sensor
model: Fineoffset-WH51 model: WH51
manufacturer: rtl_433 manufacturer: Ecowitt
- name: "Moisture" - name: "Moisture"
device_class: moisture device_class: moisture
@@ -35,10 +32,9 @@ mqtt:
value_template: "{{ value|float }}" value_template: "{{ value|float }}"
state_class: measurement state_class: measurement
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Fineoffset-WH51/0ce593/moisture" state_topic: "rtl_433/9b13b3f4-rtl433/devices/Fineoffset-WH51/0ce593/moisture"
force_update: true unique_id: fine-offset-wh51-0ce593-moisture
unique_id: Fineoffset-WH51-0ce593-H
device: device:
identifiers: Fineoffset-WH51-0ce593 identifiers: ecowitt-wh51-hasta
name: Fineoffset-WH51-0ce593 name: Hasta Soil Sensor
model: Fineoffset-WH51 model: WH51
manufacturer: rtl_433 manufacturer: Ecowitt
@@ -4,14 +4,14 @@ mqtt:
device_class: timestamp device_class: timestamp
icon: mdi:clock-in icon: mdi:clock-in
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/2F/42383/time" state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/2F/42383/time"
force_update: true
entity_category: diagnostic entity_category: diagnostic
unique_id: Acurite-986-2F-42383-UTC unique_id: acurite-986-2f-time
device: device:
identifiers: Acurite-986-2F-42383 identifiers: acurite-986-2f
name: Acurite-986-2F-42383 name: Kitchen Freezer Thermostat
model: Acurite-986 model_id: 2F
manufacturer: rtl_433 model: 986
manufacturer: Acurite
- name: "Battery" - name: "Battery"
device_class: battery device_class: battery
@@ -20,13 +20,13 @@ mqtt:
state_class: measurement state_class: measurement
entity_category: diagnostic entity_category: diagnostic
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/2F/42383/battery_ok" state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/2F/42383/battery_ok"
force_update: true unique_id: acurite-986-2f-battery-ok
unique_id: Acurite-986-2F-42383-B
device: device:
identifiers: Acurite-986-2F-42383 identifiers: acurite-986-2f
name: Acurite-986-2F-42383 name: Kitchen Freezer Thermostat
model: Acurite-986 model_id: 2F
manufacturer: rtl_433 model: 986
manufacturer: Acurite
- name: "Temperature" - name: "Temperature"
device_class: temperature device_class: temperature
@@ -34,10 +34,10 @@ mqtt:
value_template: "{{ value|float }}" value_template: "{{ value|float }}"
state_class: measurement state_class: measurement
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/2F/42383/temperature_C" state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/2F/42383/temperature_C"
force_update: true unique_id: acurite-986-2f-temperature-c
unique_id: Acurite-986-2F-42383-T
device: device:
identifiers: Acurite-986-2F-42383 identifiers: acurite-986-2f
name: Acurite-986-2F-42383 name: Kitchen Freezer Thermostat
model: Acurite-986 model_id: 2F
manufacturer: rtl_433 model: 986
manufacturer: Acurite
@@ -4,14 +4,14 @@ mqtt:
device_class: timestamp device_class: timestamp
icon: mdi:clock-in icon: mdi:clock-in
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/1R/48226/time" state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/1R/48226/time"
force_update: true
entity_category: diagnostic entity_category: diagnostic
unique_id: Acurite-986-1R-48226-UTC unique_id: acurite-986-1r-time
device: device:
identifiers: Acurite-986-1R-48226 identifiers: acurite-986-1r
name: Acurite-986-1R-48226 name: Kitchen Fridge Thermostat
model: Acurite-986 model_id: 1R
manufacturer: rtl_433 model: 986
manufacturer: Acurite
- name: "Battery" - name: "Battery"
device_class: battery device_class: battery
@@ -20,13 +20,13 @@ mqtt:
state_class: measurement state_class: measurement
entity_category: diagnostic entity_category: diagnostic
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/1R/48226/battery_ok" state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/1R/48226/battery_ok"
force_update: true unique_id: acurite-986-1r-battery-ok
unique_id: Acurite-986-1R-48226-B
device: device:
identifiers: Acurite-986-1R-48226 identifiers: acurite-986-1r
name: Acurite-986-1R-48226 name: Kitchen Fridge Thermostat
model: Acurite-986 model_id: 1R
manufacturer: rtl_433 model: 986
manufacturer: Acurite
- name: "Temperature" - name: "Temperature"
device_class: temperature device_class: temperature
@@ -34,10 +34,10 @@ mqtt:
value_template: "{{ value|float }}" value_template: "{{ value|float }}"
state_class: measurement state_class: measurement
state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/1R/48226/temperature_C" state_topic: "rtl_433/9b13b3f4-rtl433/devices/Acurite-986/1R/48226/temperature_C"
force_update: true unique_id: acurite-986-1r-temperature-c
unique_id: Acurite-986-1R-48226-H
device: device:
identifiers: Acurite-986-1R-48226 identifiers: acurite-986-1r
name: Acurite-986-1R-48226 name: Kitchen Fridge Thermostat
model: Acurite-986 model_id: 1R
manufacturer: rtl_433 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 - name: Outdoor Temperature Gradient
unique_id: templatesensor.outdoor_temperature_gradient unique_id: templatesensor.outdoor_temperature_gradient
state: "{{ (state_attr('binary_sensor.getting_warmer_outside','gradient') | float(default=0) * 10000) | round(2)}}" 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 icon: mdi:sun-thermometer
state_class: measurement state_class: measurement
unit_of_measurement: p unit_of_measurement: p
+1 -1
View File
@@ -1,7 +1,7 @@
binary_sensor.black_bed_occupied: binary_sensor.black_bed_occupied:
icon: mdi:bed icon: mdi:bed
input_boolean.white_bed_occupied: binary_sensor.white_bed_occupied:
icon: mdi:bed icon: mdi:bed
input_boolean.master_bed_occupied: input_boolean.master_bed_occupied:
+6 -2
View File
@@ -22,9 +22,13 @@ plant.plant_sensor_3eb0:
# entity_picture: /local/image/pansy.jpg # entity_picture: /local/image/pansy.jpg
# friendly_name: Pansy # friendly_name: Pansy
plant.fineoffset_wh51_0ce593: plant.hasta_soil_sensor:
entity_picture: /local/image/hosta.jpg 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 ## Groups
+1
View File
@@ -1,6 +1,7 @@
esphome: esphome:
name: bed-presence-2d14a4 name: bed-presence-2d14a4
friendly_name: Bed Presence 2d14a4 friendly_name: Bed Presence 2d14a4
comment: White Bed Sensor
min_version: 2024.6.0 min_version: 2024.6.0
name_add_mac_suffix: false name_add_mac_suffix: false
project: project:
+1
View File
@@ -1,6 +1,7 @@
esphome: esphome:
name: bed-presence-c175a4 name: bed-presence-c175a4
friendly_name: Bed Presence c175a4 friendly_name: Bed Presence c175a4
comment: Master Bed Sensor
min_version: 2024.6.0 min_version: 2024.6.0
name_add_mac_suffix: false name_add_mac_suffix: false
project: project:
+1 -1
View File
@@ -1,7 +1,7 @@
substitutions: substitutions:
devicename: black-bed devicename: black-bed
friendly_name: Black Bed friendly_name: Black Bed
comment: Clever Bed Sensor comment: Black Bed Sensor
entity_name: black_bed entity_name: black_bed
platform: ESP8266 platform: ESP8266
board: nodemcuv2 board: nodemcuv2
+53
View File
@@ -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"};
}
+106
View File
@@ -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"
+61
View File
@@ -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"
+7 -3
View File
@@ -8,13 +8,17 @@ substitutions:
board: wemos_d1_mini32 board: wemos_d1_mini32
static_ip: !secret hvac-multisensor-ip static_ip: !secret hvac-multisensor-ip
# For i2c devices
# In this case it's just the display
sda_pin: GPIO21 sda_pin: GPIO21
scl_pin: GPIO22 scl_pin: GPIO22
door_pin: GPIO19 door_pin: GPIO19
one_wire_pin: GPIO26 one_wire_pin: GPIO26
#one_wire_pin: GPIO14
# For the ultrasonic sensor
trigger_pin: GPIO16 trigger_pin: GPIO16
#trigger_pin: GPIO04
echo_pin: GPIO13 echo_pin: GPIO13
#mdc_pin: GPIO23 #mdc_pin: GPIO23
@@ -133,7 +137,7 @@ sensor:
trigger_pin: ${trigger_pin} trigger_pin: ${trigger_pin}
echo_pin: ${echo_pin} echo_pin: ${echo_pin}
id: ultrasonic_source id: ultrasonic_source
#update_interval: 5s update_interval: 1s
internal: True internal: True
filters: filters:
- sliding_window_moving_average: - sliding_window_moving_average:
+2 -3
View File
@@ -4,14 +4,14 @@ front_yard_plants:
# does this work? # does this work?
# back to working here? # back to working here?
- plant.plant_sensor_cea4 #Pepper - plant.plant_sensor_cea4 #Pepper
- plant.fineoffset_wh51_0ce593 #Hostas - plant.hasta_soil_sensor #Hostas
back_yard_plants: back_yard_plants:
- plant.plant_sensor_3eb0 #Manly Deck Box - plant.plant_sensor_3eb0 #Manly Deck Box
- plant.plant_sensor_3eae #Golden Deck Box - plant.plant_sensor_3eae #Golden Deck Box
outdoor_plants: outdoor_plants:
- plant.fineoffset_wh51_0ce593 #Hostas - plant.hasta_soil_sensor #Hostas
ceiling_fans: ceiling_fans:
- fan.master_bedroom - fan.master_bedroom
@@ -208,7 +208,6 @@ person_bridget:
entities: entities:
- device_tracker.bridget_s_fire_wifi - device_tracker.bridget_s_fire_wifi
traverse: traverse:
name: Traverse name: Traverse
icon: mdi:car-estate icon: mdi:car-estate
+3 -3
View File
@@ -79,7 +79,7 @@ card:
left: 40% left: 40%
top: 95% top: 95%
- type: state-icon - type: state-icon
entity: input_boolean.white_bed_occupied entity: binary_sensor.white_bed_occupied
style: style:
left: 60% left: 60%
top: 95% top: 95%
@@ -110,11 +110,11 @@ card:
- type: conditional - type: conditional
conditions: conditions:
- entity: input_boolean.white_bed_occupied - entity: binary_sensor.white_bed_occupied
state: "on" state: "on"
elements: elements:
- type: state-icon - type: state-icon
entity: input_boolean.white_bed_occupied entity: binary_sensor.white_bed_occupied
style: style:
top: 65% top: 65%
left: 80% left: 80%
+1 -1
View File
@@ -14,7 +14,7 @@ cards:
- type: entities - type: entities
title: Ecowitt Batteries title: Ecowitt Batteries
entities: entities:
- entity: sensor.fineoffset_wh51_0ce593_battery - entity: sensor.hasta_soil_sensor_battery
name: Hostas - e593 name: Hostas - e593
- type: entities - type: entities
title: BLE Batteries title: BLE Batteries
+60 -60
View File
@@ -1811,9 +1811,9 @@ sections:
- value: below_horizon - value: below_horizon
label: Night label: Night
entities: entities:
- entity: sensor.lacrosse_tx141thbv2_0_temperature - entity: sensor.front_yard_thermostat_temperature
name: Front Yard name: Front Yard
- entity: sensor.acurite_592txr_a_temperature - entity: sensor.back_yard_thermostat_temperature
name: Back Yard name: Back Yard
- color: white - color: white
entity: sensor.outdoor_temperature entity: sensor.outdoor_temperature
@@ -1875,64 +1875,64 @@ sections:
cards: cards:
- type: horizontal-stack - type: horizontal-stack
grid_options: grid_options:
columns: full columns: full
cards: cards:
- type: markdown - type: markdown
content: |- content: |-
# Sensors: # Sensors:
<dl> <dl>
<dt><strong>Absolute Humidity</strong> <code>absolute_humidity</code></dt> <dt><strong>Absolute Humidity</strong> <code>absolute_humidity</code></dt>
<dd> <dd>
Absolute humidity is a measure of the actual amount of water vapor Absolute humidity is a measure of the actual amount of water vapor
(moisture) in the air. (moisture) in the air.
</dd> </dd>
<dt><strong>Heat Index</strong> <code>heat_index</code></dt> <dt><strong>Heat Index</strong> <code>heat_index</code></dt>
<dd> <dd>
The heat index combines air temperature and relative humidity to posit a The heat index combines air temperature and relative humidity to posit a
human-perceived equivalent temperature. human-perceived equivalent temperature.
</dd> </dd>
<dt><strong>Humidex + Perception</strong> <code>humidex</code> <code>humidex_perception</code></dt> <dt><strong>Humidex + Perception</strong> <code>humidex</code> <code>humidex_perception</code></dt>
<dd> <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. 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> </dd>
<dt><strong>Dew Point + Perception</strong> <code>dew_point</code> <code>dew_point_perception</code></dt> <dt><strong>Dew Point + Perception</strong> <code>dew_point</code> <code>dew_point_perception</code></dt>
<dd> <dd>
The dew point is the temperature to which air must be cooled to become The dew point is the temperature to which air must be cooled to become
saturated with water vapor and dew forms on surfaces. saturated with water vapor and dew forms on surfaces.
</dd> </dd>
<dt><strong>Frost Point</strong> <code>frost_point</code></dt> <dt><strong>Frost Point</strong> <code>frost_point</code></dt>
<dd> <dd>
Frost point, temperature, below 0° C (32° F), at which moisture in the air 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. will condense as a layer of frost on any exposed surface.
</dd> </dd>
<dt><strong>Frost Risk</strong> <code>frost_risk</code></dt> <dt><strong>Frost Risk</strong> <code>frost_risk</code></dt>
<dd> <dd>
Risk of Frost based on current temperature, frost point and absolute humidity. Risk of Frost based on current temperature, frost point and absolute humidity.
</dd> </dd>
<dt><strong>Relative Strain Perception</strong> <code>relative_strain_perception</code></dt> <dt><strong>Relative Strain Perception</strong> <code>relative_strain_perception</code></dt>
<dd> <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). 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> </dd>
<dt><strong>Summer Simmer Index + Perception</strong> <code>summer_simmer_index</code> <code>summer_simmer_perception</code></dt> <dt><strong>Summer Simmer Index + Perception</strong> <code>summer_simmer_index</code> <code>summer_simmer_perception</code></dt>
<dd> <dd>
Provides a proven indicator of heat stress concerns and discomfort using meaningful equivalent temperature values for general public acceptance and awareness. Provides a proven indicator of heat stress concerns and discomfort using meaningful equivalent temperature values for general public acceptance and awareness.
</dd> </dd>
<dt><strong>Moist Air Enthalpy</strong> <code>moist_air_enthalpy</code></dt> <dt><strong>Moist Air Enthalpy</strong> <code>moist_air_enthalpy</code></dt>
<dd> <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. 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> </dd>
<dt><strong>Summer Scharlau Perception</strong> <code>summer_scharlau_perception</code></dt> <dt><strong>Summer Scharlau Perception</strong> <code>summer_scharlau_perception</code></dt>
<dd> <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%. 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> </dd>
<dt><strong>Winter Scharlau Perception</strong> <code>winter_scharlau_perception</code></dt> <dt><strong>Winter Scharlau Perception</strong> <code>winter_scharlau_perception</code></dt>
<dd> <dd>
Reflects the level of human discomfort caused by cooling. Valid for: temperatures -5 to +6°C (23 to 43°F) and humidity >= 40%. Reflects the level of human discomfort caused by cooling. Valid for: temperatures -5 to +6°C (23 to 43°F) and humidity >= 40%.
</dd> </dd>
<dt><strong>Thoms discomfort Perception</strong> <code>thoms_discomfort_perception</code></dt> <dt><strong>Thoms discomfort Perception</strong> <code>thoms_discomfort_perception</code></dt>
<dd> <dd>
Indicates the level of discomfort as a result of high temperature and the combined effect with relative humidity. Indicates the level of discomfort as a result of high temperature and the combined effect with relative humidity.
</dd> </dd>
</dl> </dl>
column_span: 5 column_span: 5
cards: [] cards: []
+3 -3
View File
@@ -7,9 +7,9 @@ badges: []
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-chips-card # - type: custom:mushroom-chips-card
chips: # chips:
- type: back # - type: back
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- hours_to_show: 24 - hours_to_show: 24
+3 -3
View File
@@ -7,9 +7,9 @@ badges: []
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-chips-card # - type: custom:mushroom-chips-card
chips: # chips:
- type: back # - type: back
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- hours_to_show: 24 - hours_to_show: 24
+3 -3
View File
@@ -5,9 +5,9 @@ path: computer-area
icon: mdi:desktop-classic icon: mdi:desktop-classic
badges: [] badges: []
cards: cards:
- type: custom:mushroom-chips-card # - type: custom:mushroom-chips-card
chips: # chips:
- type: back # - type: back
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- hours_to_show: 24 - hours_to_show: 24
+3 -3
View File
@@ -7,9 +7,9 @@ badges: []
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-chips-card # - type: custom:mushroom-chips-card
chips: # chips:
- type: back # - type: back
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- hours_to_show: 24 - hours_to_show: 24
+3 -3
View File
@@ -7,9 +7,9 @@ badges: []
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-chips-card # - type: custom:mushroom-chips-card
chips: # chips:
- type: back # - type: back
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- hours_to_show: 24 - hours_to_show: 24
+3 -3
View File
@@ -8,9 +8,9 @@ badges: []
sections: sections:
- type: grid - type: grid
cards: cards:
- type: custom:mushroom-chips-card # - type: custom:mushroom-chips-card
chips: # chips:
- type: back # - type: back
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- hours_to_show: 24 - hours_to_show: 24
+15 -15
View File
@@ -7,42 +7,42 @@ badges: []
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-chips-card # - type: custom:mushroom-chips-card
chips: # chips:
- type: back # - type: back
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- type: custom:mushroom-template-card - type: custom:mushroom-template-card
primary: "{{states('sensor.lacrosse_tx141thbv2_0_temperature')}}°F" primary: "{{states('sensor.front_yard_thermostat_temperature')}}°F"
secondary: "" secondary: ""
icon: mdi:thermometer icon: mdi:thermometer
entity: sensor.lacrosse_tx141thbv2_0_temperature entity: sensor.front_yard_thermostat_temperature
icon_color: >- 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 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 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 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 orange
{%else%} {%else%}
red red
{%endif%} {%endif%}
layout: vertical layout: vertical
- type: custom:mushroom-template-card - type: custom:mushroom-template-card
primary: "{{states('sensor.lacrosse_tx141thbv2_0_humidity')}}%" primary: "{{states('sensor.front_yard_thermostat_humidity')}}%"
secondary: "" secondary: ""
icon: mdi:water-percent icon: mdi:water-percent
entity: sensor.lacrosse_tx141thbv2_0_humidity entity: sensor.front_yard_thermostat_humidity
icon_color: >- 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 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 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 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 cyan
{%else%} {%else%}
blue blue
+3 -3
View File
@@ -7,9 +7,9 @@ badges: []
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-chips-card # - type: custom:mushroom-chips-card
chips: # chips:
- type: back # - type: back
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- hours_to_show: 24 - hours_to_show: 24
+3 -3
View File
@@ -7,9 +7,9 @@ badges: []
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-chips-card # - type: custom:mushroom-chips-card
chips: # chips:
- type: back # - type: back
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- hours_to_show: 24 - hours_to_show: 24
+3 -3
View File
@@ -8,9 +8,9 @@ type: sections
sections: sections:
- type: grid - type: grid
cards: cards:
- type: custom:mushroom-chips-card # - type: custom:mushroom-chips-card
chips: # chips:
- type: back # - type: back
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- hours_to_show: 24 - hours_to_show: 24
+62 -33
View File
@@ -17,9 +17,9 @@ cards:
- type: conditional - type: conditional
conditions: conditions:
- entity: switch.opensprinkler_enabled - entity: switch.opensprinkler_enabled
state: 'on' state: "on"
- entity: input_boolean.sprinkler_is_winterized - entity: input_boolean.sprinkler_is_winterized
state: 'off' state: "off"
chip: chip:
type: entity type: entity
entity: sensor.sprinkler_current_status entity: sensor.sprinkler_current_status
@@ -53,7 +53,7 @@ cards:
- type: template - type: template
entity: group.my_exterior_doors entity: group.my_exterior_doors
icon: > icon: >
{% if states('sensor.open_external_doors_count') | int(default=0) > 0 -%} {% if states('sensor.open_external_doors_count') | int(default=0) > 0 -%}
{% if is_state('binary_sensor.patio_door_contact','on')-%} {% if is_state('binary_sensor.patio_door_contact','on')-%}
mdi:door-sliding-open mdi:door-sliding-open
@@ -72,7 +72,7 @@ cards:
- type: conditional - type: conditional
conditions: conditions:
- entity: input_boolean.clint_needs_am_meds - entity: input_boolean.clint_needs_am_meds
state: 'on' state: "on"
chip: chip:
type: entity type: entity
entity: input_boolean.clint_needs_am_meds entity: input_boolean.clint_needs_am_meds
@@ -84,7 +84,7 @@ cards:
- type: conditional - type: conditional
conditions: conditions:
- entity: input_boolean.clint_needs_pm_meds - entity: input_boolean.clint_needs_pm_meds
state: 'on' state: "on"
chip: chip:
type: entity type: entity
entity: input_boolean.clint_needs_pm_meds entity: input_boolean.clint_needs_pm_meds
@@ -96,11 +96,11 @@ cards:
- type: conditional - type: conditional
conditions: conditions:
- entity: sensor.dishwasher - entity: sensor.dishwasher
state_not: 'idle' state_not: "idle"
chip: chip:
type: template type: template
entity: input_boolean.empty_dishwasher entity: input_boolean.empty_dishwasher
icon: > icon: >
{% if is_state('sensor.dishwasher','running')-%} {% if is_state('sensor.dishwasher','running')-%}
mdi:dishwasher mdi:dishwasher
{% elif is_state('sensor.dishwasher','pending')-%} {% elif is_state('sensor.dishwasher','pending')-%}
@@ -121,11 +121,11 @@ cards:
- type: conditional - type: conditional
conditions: conditions:
- entity: sensor.washing_machine - entity: sensor.washing_machine
state_not: 'idle' state_not: "idle"
chip: chip:
type: template type: template
entity: input_boolean.swap_laundry entity: input_boolean.swap_laundry
icon: > icon: >
{% if is_state('sensor.washing_machine','running')-%} {% if is_state('sensor.washing_machine','running')-%}
mdi:washing-machine mdi:washing-machine
{% elif is_state('sensor.washing_machine','pending')-%} {% elif is_state('sensor.washing_machine','pending')-%}
@@ -146,11 +146,11 @@ cards:
- type: conditional - type: conditional
conditions: conditions:
- entity: sensor.tumble_dryer - entity: sensor.tumble_dryer
state_not: 'idle' state_not: "idle"
chip: chip:
type: template type: template
entity: input_boolean.fold_clothes entity: input_boolean.fold_clothes
icon: > icon: >
{% if is_state('sensor.tumble_dryer','running')-%} {% if is_state('sensor.tumble_dryer','running')-%}
mdi:tumble-dryer mdi:tumble-dryer
{% elif is_state('sensor.tumble_dryer','pending')-%} {% elif is_state('sensor.tumble_dryer','pending')-%}
@@ -171,7 +171,7 @@ cards:
- type: conditional - type: conditional
conditions: conditions:
- entity: alert.garage_door - entity: alert.garage_door
state: 'on' state: "on"
chip: chip:
type: entity type: entity
entity: alert.garage_door entity: alert.garage_door
@@ -293,8 +293,7 @@ cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-title-card - type: custom:mushroom-title-card
title: Rooms title: Upstairs
subtitle: Upstairs
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- type: custom:mushroom-template-card - type: custom:mushroom-template-card
@@ -309,7 +308,7 @@ cards:
secondary: |- secondary: |-
{{states('sensor.nursery_multisensor_air_temperature')}}°F {{states('sensor.nursery_multisensor_air_temperature')}}°F
{{states('sensor.nursery_multisensor_humidity')}}% {{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 multiline_secondary: true
layout: vertical layout: vertical
- type: custom:mushroom-template-card - type: custom:mushroom-template-card
@@ -325,7 +324,7 @@ cards:
{{states('sensor.master_bedroom_multisensor_air_temperature')}}°F {{states('sensor.master_bedroom_multisensor_air_temperature')}}°F
{{states('sensor.master_bedroom_multisensor_humidity')}}% {{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 multiline_secondary: true
layout: vertical layout: vertical
- type: custom:mushroom-template-card - type: custom:mushroom-template-card
@@ -340,7 +339,7 @@ cards:
secondary: |- secondary: |-
{{states('sensor.master_bathroom_thermostat_temperature')}}°F {{states('sensor.master_bathroom_thermostat_temperature')}}°F
{{states('sensor.master_bathroom_thermostat_humidity')}}% {{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 multiline_secondary: true
layout: vertical layout: vertical
- type: horizontal-stack - type: horizontal-stack
@@ -357,7 +356,7 @@ cards:
secondary: |- secondary: |-
{{states('sensor.front_room_thermostat_temperature')}}°F {{states('sensor.front_room_thermostat_temperature')}}°F
{{states('sensor.front_room_thermostat_humidity')}}% {{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 multiline_secondary: true
layout: vertical layout: vertical
- type: custom:mushroom-template-card - type: custom:mushroom-template-card
@@ -372,7 +371,7 @@ cards:
secondary: |- secondary: |-
{{states('sensor.kitchen_multisensor_air_temperature')}}°F {{states('sensor.kitchen_multisensor_air_temperature')}}°F
{{states('sensor.kitchen_multisensor_humidity')}}% {{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 multiline_secondary: true
layout: vertical layout: vertical
- type: custom:mushroom-template-card - type: custom:mushroom-template-card
@@ -387,13 +386,13 @@ cards:
secondary: |- secondary: |-
{{states('sensor.dining_room_multisensor_air_temperature')}}°F {{states('sensor.dining_room_multisensor_air_temperature')}}°F
{{states('sensor.dining_room_multisensor_humidity')}}% {{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 multiline_secondary: true
layout: vertical layout: vertical
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-title-card - type: custom:mushroom-title-card
subtitle: Ground Level title: Ground Level
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- type: custom:mushroom-template-card - type: custom:mushroom-template-card
@@ -408,7 +407,22 @@ cards:
secondary: |- secondary: |-
{{states('sensor.entryway_temperature')}}°F {{states('sensor.entryway_temperature')}}°F
{{states('sensor.thermostat_humidity')}}% {{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 multiline_secondary: true
layout: vertical layout: vertical
- type: custom:mushroom-template-card - type: custom:mushroom-template-card
@@ -423,7 +437,7 @@ cards:
secondary: |- secondary: |-
{{states('sensor.garage_multisensor_air_temperature')}}°F {{states('sensor.garage_multisensor_air_temperature')}}°F
{{states('sensor.garage_multisensor_humidity')}}% {{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 multiline_secondary: true
layout: vertical layout: vertical
- type: horizontal-stack - type: horizontal-stack
@@ -440,7 +454,7 @@ cards:
secondary: |- secondary: |-
{{states('sensor.front_porch_temperature')}}°F {{states('sensor.front_porch_temperature')}}°F
{{states('sensor.garage_multisensor_humidity')}}% {{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 multiline_secondary: true
layout: vertical layout: vertical
- type: custom:mushroom-template-card - type: custom:mushroom-template-card
@@ -453,9 +467,24 @@ cards:
hold_action: hold_action:
action: toggle action: toggle
secondary: |- secondary: |-
{{states('sensor.deck_temperature')}}°F {{states('sensor.back_yard_thermostat_temperature')}}°F
{{states('sensor.garage_multisensor_humidity')}}% {{states('sensor.back_yard_thermostat_humidity')}}%
icon_color: '{{iif(is_state(''light.deck'',''on''),''yellow'')}}' 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 multiline_secondary: true
layout: vertical layout: vertical
- type: vertical-stack - type: vertical-stack
@@ -477,7 +506,7 @@ cards:
{{states('sensor.computer_area_multisensor_air_temperature')}}°F {{states('sensor.computer_area_multisensor_air_temperature')}}°F
{{states('sensor.computer_area_multisensor_humidity')}}% {{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 multiline_secondary: true
layout: vertical layout: vertical
- type: custom:mushroom-template-card - type: custom:mushroom-template-card
@@ -492,7 +521,7 @@ cards:
secondary: |- secondary: |-
{{states('sensor.great_room_multisensor_air_temperature')}}°F {{states('sensor.great_room_multisensor_air_temperature')}}°F
{{states('sensor.great_room_multisensor_humidity')}}% {{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 multiline_secondary: true
layout: vertical layout: vertical
- type: custom:mushroom-template-card - type: custom:mushroom-template-card
@@ -507,7 +536,7 @@ cards:
secondary: |- secondary: |-
{{states('sensor.utility_room_thermostat_temperature')}}°F {{states('sensor.utility_room_thermostat_temperature')}}°F
{{states('sensor.utility_room_thermostat_humidity')}}% {{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 multiline_secondary: true
layout: vertical layout: vertical
- type: horizontal-stack - type: horizontal-stack
@@ -524,7 +553,7 @@ cards:
secondary: |- secondary: |-
{{states('sensor.blue_room_multisensor_air_temperature')}}°F {{states('sensor.blue_room_multisensor_air_temperature')}}°F
{{states('sensor.blue_room_multisensor_humidity')}}% {{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 multiline_secondary: true
layout: vertical layout: vertical
- type: custom:mushroom-template-card - type: custom:mushroom-template-card
@@ -539,7 +568,7 @@ cards:
secondary: |- secondary: |-
{{states('sensor.mancave_thermostat_temperature')}}°F {{states('sensor.mancave_thermostat_temperature')}}°F
{{states('sensor.mancave_thermostat_humidity')}}% {{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 multiline_secondary: true
layout: vertical layout: vertical
- type: custom:mushroom-template-card - type: custom:mushroom-template-card
@@ -554,6 +583,6 @@ cards:
secondary: |- secondary: |-
{{states('sensor.furnace_room_thermostat_temperature')}}°F {{states('sensor.furnace_room_thermostat_temperature')}}°F
{{states('sensor.furnace_room_thermostat_humidity')}}% {{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 multiline_secondary: true
layout: vertical layout: vertical
+5 -5
View File
@@ -7,9 +7,9 @@ badges: []
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-chips-card # - type: custom:mushroom-chips-card
chips: # chips:
- type: back # - type: back
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- hours_to_show: 24 - hours_to_show: 24
@@ -120,11 +120,11 @@ cards:
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- type: custom:mushroom-entity-card - type: custom:mushroom-entity-card
entity: sensor.acurite_986_2f_42383_temperature entity: sensor.kitchen_freezer_thermostat_temperature
name: Freezer name: Freezer
layout: vertical layout: vertical
- type: custom:mushroom-entity-card - type: custom:mushroom-entity-card
entity: sensor.acurite_986_1r_48226_temperature entity: sensor.kitchen_fridge_thermostat_temperature
name: Fridge name: Fridge
layout: vertical layout: vertical
- type: vertical-stack - type: vertical-stack
+3 -3
View File
@@ -7,9 +7,9 @@ badges: []
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-chips-card # - type: custom:mushroom-chips-card
chips: # chips:
- type: back # - type: back
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- hours_to_show: 24 - hours_to_show: 24
+3 -3
View File
@@ -7,9 +7,9 @@ badges: []
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-chips-card # - type: custom:mushroom-chips-card
chips: # chips:
- type: back # - type: back
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- hours_to_show: 24 - hours_to_show: 24
+3 -3
View File
@@ -7,9 +7,9 @@ badges: []
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-chips-card # - type: custom:mushroom-chips-card
chips: # chips:
- type: back # - type: back
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- hours_to_show: 24 - hours_to_show: 24
+12 -26
View File
@@ -8,9 +8,9 @@ cards:
# Header and HVAC # Header and HVAC
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-chips-card # - type: custom:mushroom-chips-card
chips: # chips:
- type: back # - type: back
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- hours_to_show: 24 - hours_to_show: 24
@@ -331,29 +331,15 @@ cards:
target: target:
entity_id: button.black_bed_manual_tare entity_id: button.black_bed_manual_tare
layout: vertical layout: vertical
# - type: custom:mushroom-template-card - type: custom:mushroom-template-card
# entity: input_boolean.white_bed_occupied entity: binary_sensor.white_bed_occupied
# icon: mdi:bed icon: mdi:bed
# icon_color: >- icon_color: >-
# {% if(is_state('input_boolean.white_bed_occupied','on')) %} {% if(is_state('binary_sensor.white_bed_occupied','on')) %}
# yellow yellow
# {% elif(is_state('binary_sensor.white_bed_hx711_error','on')) %} {% endif %}
# red primary: White Bed
# {% endif %} layout: vertical
# 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: horizontal-stack - type: horizontal-stack
cards: cards:
- type: custom:mushroom-entity-card - type: custom:mushroom-entity-card
+14 -13
View File
@@ -19,13 +19,13 @@ cards:
max: 25 max: 25
segments: segments:
- from: 5 - from: 5
color: '#4dab6d' color: "#4dab6d"
- from: 10 - from: 10
color: '#c1da64' color: "#c1da64"
- from: 15 - from: 15
color: '#fabd57' color: "#fabd57"
- from: 20.6 - from: 20.6
color: '#ee4d55' color: "#ee4d55"
name: Recent Precipitation name: Recent Precipitation
- type: gauge - type: gauge
entity: input_number.sprinkler_maximum_temperature_measured entity: input_number.sprinkler_maximum_temperature_measured
@@ -36,11 +36,11 @@ cards:
- from: 61 - from: 61
color: var(--info-color) color: var(--info-color)
- from: 70 - from: 70
color: '#4dab6d' color: "#4dab6d"
- from: 79 - from: 79
color: '#c1da64' color: "#c1da64"
- from: 88 - from: 88
color: '#fabd57' color: "#fabd57"
name: Recent High Temp name: Recent High Temp
- type: gauge - type: gauge
entity: sensor.sprinkler_days_since_last_watering entity: sensor.sprinkler_days_since_last_watering
@@ -49,18 +49,19 @@ cards:
max: 4 max: 4
segments: segments:
- from: 0 - from: 0
color: '#ee4d55' color: "#ee4d55"
- from: 1 - from: 1
color: '#fabd57' color: "#fabd57"
- from: 2 - from: 2
color: '#c1da64' color: "#c1da64"
- from: 3 - from: 3
color: '#4dab6d' color: "#4dab6d"
name: Expected Days Between Watering name: Expected Days Between Watering
- !include /config/lovelace/plant-cards/plant_sensor_cea4.yaml - !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_3eae.yaml
- !include /config/lovelace/plant-cards/plant_sensor_3eb0.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 - type: vertical-stack
view_layout: view_layout:
@@ -74,7 +75,7 @@ cards:
action: toggle action: toggle
- type: entities - type: entities
entities: entities:
- entity: sensor.ecowitt_wh40_21917_precipitation - entity: sensor.rain_gauge_precipitation
secondary_info: last-updated secondary_info: last-updated
- entity: binary_sensor.is_raining - entity: binary_sensor.is_raining
secondary_info: last-changed secondary_info: last-changed
+3 -3
View File
@@ -7,9 +7,9 @@ badges: []
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-chips-card # - type: custom:mushroom-chips-card
chips: # chips:
- type: back # - type: back
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- hours_to_show: 24 - hours_to_show: 24
@@ -1,4 +1,5 @@
type: vertical-stack type: vertical-stack
cards: cards:
- type: plant-status - 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
+2 -2
View File
@@ -25,13 +25,13 @@ elements:
# text-transform: capitalize # text-transform: capitalize
- type: state-label - type: state-label
entity: sensor.acurite_592txr_a_temperature entity: sensor.back_yard_thermostat_temperature
style: style:
left: 15% left: 15%
top: 35% top: 35%
font-size: 180% font-size: 180%
- type: state-label - type: state-label
entity: sensor.acurite_592txr_a_humidity entity: sensor.back_yard_thermostat_humidity
style: style:
left: 85% left: 85%
top: 35% top: 35%
+2 -2
View File
@@ -30,13 +30,13 @@ elements:
text-transform: capitalize text-transform: capitalize
- type: state-label - type: state-label
entity: sensor.lacrosse_tx141thbv2_0_temperature entity: sensor.front_yard_thermostat_temperature
style: style:
left: 15% left: 15%
top: 35% top: 35%
font-size: 180% font-size: 180%
- type: state-label - type: state-label
entity: sensor.lacrosse_tx141thbv2_0_humidity entity: sensor.front_yard_thermostat_humidity
style: style:
left: 85% left: 85%
top: 35% top: 35%
+1 -1
View File
@@ -50,7 +50,7 @@ cards:
- sensor.disk_use_percent_home - sensor.disk_use_percent_home
font_size: 50 font_size: 50
name: HA Disk name: HA Disk
hours_to_show: 96 hours_to_show: 4
points_per_hour: 3 points_per_hour: 3
show: show:
fill: false fill: false
+1
View File
@@ -15,6 +15,7 @@ cards:
show_header_toggle: false show_header_toggle: false
entities: entities:
- entity: device_tracker.chevrolet_mylink - entity: device_tracker.chevrolet_mylink
- entity: device_tracker.chevrolet_traverse_location
- type: entities - type: entities
title: Bridget's Tablet title: Bridget's Tablet
+8 -7
View File
@@ -97,7 +97,8 @@ cards:
- entities: - entities:
- plant.plant_sensor_cea4 - plant.plant_sensor_cea4
- plant.plant_sensor_3eae - plant.plant_sensor_3eae
- plant.fineoffset_wh51_0ce593 - plant.hasta_soil_sensor
- plant.daisy_soil_sensor
- plant.plant_sensor_3eb0 - plant.plant_sensor_3eb0
states: states:
- state: "problem" - state: "problem"
@@ -386,14 +387,14 @@ cards:
# Outside is expected to be colder/hotter # Outside is expected to be colder/hotter
- entities: - entities:
- sensor.lacrosse_tx141thbv2_0_temperature - sensor.front_yard_thermostat_temperature
- sensor.front_porch_temperature - sensor.front_porch_temperature
- sensor.deck_temperature - sensor.deck_temperature
- sensor.garage_multisensor_air_temperature - sensor.garage_multisensor_air_temperature
# - sensor.hvac_multisensor_supply # - sensor.hvac_multisensor_supply
# - sensor.hvac_multisensor_return # - sensor.hvac_multisensor_return
# - sensor.hvac_multisensor_ambient # - sensor.hvac_multisensor_ambient
- sensor.acurite_592txr_a_temperature - sensor.back_yard_thermostat_temperature
- sensor.outdoor_temperature - sensor.outdoor_temperature
# text_template: '${entity.state ? entity.state : "unknown"} F' # text_template: '${entity.state ? entity.state : "unknown"} F'
# An example of rounding up a number, i.e. a temperature of 90.1 becomes 91 # An example of rounding up a number, i.e. a temperature of 90.1 becomes 91
@@ -415,7 +416,7 @@ cards:
' '
- entities: - entities:
- sensor.acurite_986_1r_48226_temperature - sensor.kitchen_fridge_thermostat_temperature
text_template: '${entity.state ? Math.floor(entity.state) : "unknown"}' text_template: '${entity.state ? Math.floor(entity.state) : "unknown"}'
class_template: ' class_template: '
var temp = parseFloat(entity.state.replace("°", "")); var temp = parseFloat(entity.state.replace("°", ""));
@@ -430,7 +431,7 @@ cards:
' '
- entities: - entities:
- sensor.acurite_986_2f_42383_temperature - sensor.kitchen_freezer_thermostat_temperature
text_template: '${entity.state ? Math.floor(entity.state) : "unknown"}' text_template: '${entity.state ? Math.floor(entity.state) : "unknown"}'
class_template: ' class_template: '
var temp = parseFloat(entity.state.replace("°", "")); var temp = parseFloat(entity.state.replace("°", ""));
@@ -490,9 +491,9 @@ cards:
' '
- entities: - entities:
- sensor.lacrosse_tx141thbv2_0_humidity - sensor.front_yard_thermostat_humidity
- sensor.garage_multisensor_humidity - sensor.garage_multisensor_humidity
- sensor.acurite_592txr_a_humidity - sensor.back_yard_thermostat_humidity
- sensor.outdoor_humidity - sensor.outdoor_humidity
text_template: '${entity.state ? Math.ceil(entity.state) : "unknown"} %' text_template: '${entity.state ? Math.ceil(entity.state) : "unknown"} %'
class_template: ' class_template: '
+13 -13
View File
@@ -16,14 +16,12 @@ cards:
name: Nursery name: Nursery
- entity: sensor.thermostat_temperature - entity: sensor.thermostat_temperature
name: Thermostat name: Thermostat
- entity: sensor.bar_temperature - entity: sensor.dining_room_multisensor_air_temperature
name: Dining Room name: Dining Room
- entity: sensor.front_room_thermostat_temperature - entity: sensor.front_room_thermostat_temperature
name: Front Room name: Front Room
- entity: sensor.kitchen_multisensor_air_temperature - entity: sensor.kitchen_multisensor_air_temperature
name: Kitchen name: Kitchen
- entity: sensor.entryway_temperature
name: Entryway
hours_to_show: 12 hours_to_show: 12
refresh_interval: 60 refresh_interval: 60
title: Upstairs Temp title: Upstairs Temp
@@ -33,12 +31,14 @@ cards:
name: Master Bedroom name: Master Bedroom
- entity: sensor.nursery_multisensor_humidity - entity: sensor.nursery_multisensor_humidity
name: Nursery name: Nursery
- entity: sensor.thermostat_humidity
name: Thermostat
- entity: sensor.dining_room_multisensor_humidity
name: Dining Room
- entity: sensor.front_room_thermostat_humidity - entity: sensor.front_room_thermostat_humidity
name: Front Room name: Front Room
- entity: sensor.kitchen_multisensor_humidity - entity: sensor.kitchen_multisensor_humidity
name: Kitchen name: Kitchen
- entity: sensor.thermostat_humidity
name: Thermostat
hours_to_show: 12 hours_to_show: 12
refresh_interval: 60 refresh_interval: 60
title: Upstairs Humidity title: Upstairs Humidity
@@ -57,14 +57,12 @@ cards:
- entities: - entities:
- entity: sensor.computer_area_multisensor_air_temperature - entity: sensor.computer_area_multisensor_air_temperature
name: Computer Area 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 - entity: sensor.great_room_multisensor_air_temperature
name: Great Room 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 - entity: sensor.furnace_room_thermostat_temperature
name: Furnace Room name: Furnace Room
hours_to_show: 12 hours_to_show: 12
@@ -78,7 +76,7 @@ cards:
name: Great Room name: Great Room
- entity: sensor.mancave_thermostat_humidity - entity: sensor.mancave_thermostat_humidity
name: Mancave name: Mancave
- entity: sensor.blue_room_thermostat_humidity - entity: sensor.blue_room_multisensor_humidity
name: Blue Room name: Blue Room
- entity: sensor.furnace_room_thermostat_humidity - entity: sensor.furnace_room_thermostat_humidity
name: Furnace Room name: Furnace Room
@@ -137,7 +135,7 @@ cards:
name: Nursery name: Nursery
- entity: sensor.front_room_light_level - entity: sensor.front_room_light_level
name: Front Room name: Front Room
- entity: sensor.bar_light_level - entity: sensor.dining_room_multisensor_illuminance
name: Dining Room name: Dining Room
- entity: sensor.entryway_light_level - entity: sensor.entryway_light_level
name: Entryway name: Entryway
@@ -153,6 +151,8 @@ cards:
name: Computer Area name: Computer Area
- entity: sensor.great_room_multisensor_illuminance - entity: sensor.great_room_multisensor_illuminance
name: Great Room name: Great Room
- entity: sensor.blue_room_multisensor_illuminance
name: Blue Room
hours_to_show: 12 hours_to_show: 12
refresh_interval: 60 refresh_interval: 60
title: Downstairs Light Level title: Downstairs Light Level
+1 -1
View File
@@ -843,7 +843,7 @@ badges:
navigation_path: /phone-yaml/plants navigation_path: /phone-yaml/plants
hold_action: hold_action:
action: more-info action: more-info
- entity: plant.fineoffset_wh51_0ce593 - entity: plant.hasta_soil_sensor
name: Hostas name: Hostas
tap_action: tap_action:
action: navigate action: navigate
+3 -1
View File
@@ -43,6 +43,7 @@ cards:
- type: calendar - type: calendar
entities: entities:
- calendar.clint - calendar.clint
- calendar.wmu_calendar
- type: vertical-stack - type: vertical-stack
cards: cards:
@@ -114,4 +115,5 @@ cards:
- type: calendar - type: calendar
entities: entities:
- calendar.bridget - calendar.bridget
- calendar.my_custody - calendar.allegan_public_schools
- calendar.west_ward_elementary
+34 -34
View File
@@ -39,8 +39,8 @@
inkscape:pageopacity="0.0" inkscape:pageopacity="0.0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:zoom="0.02" inkscape:zoom="0.02"
inkscape:cx="48525" inkscape:cx="56275"
inkscape:cy="32825" inkscape:cy="10675"
inkscape:document-units="px" inkscape:document-units="px"
inkscape:current-layer="layer1" inkscape:current-layer="layer1"
showgrid="true" showgrid="true"
@@ -49,7 +49,7 @@
showborder="true" showborder="true"
inkscape:window-width="1920" inkscape:window-width="1920"
inkscape:window-height="1009" inkscape:window-height="1009"
inkscape:window-x="1912" inkscape:window-x="-8"
inkscape:window-y="-8" inkscape:window-y="-8"
inkscape:window-maximized="1" inkscape:window-maximized="1"
showguides="true" showguides="true"
@@ -1278,20 +1278,20 @@
transform="translate(-33.504291,-4.0861608)"> transform="translate(-33.504291,-4.0861608)">
<rect <rect
style="fill:none;stroke:none;stroke-width:0.265857;stroke-miterlimit:4;stroke-dasharray:none" 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" width="10.375003"
height="38.750011" height="38.750011"
x="353.625" x="353.625"
y="-17638.875" y="-17638.875"
inkscape:label="sensor.acurite_986_2f_42383_temperature_2" /> inkscape:label="sensor.kitchen_freezer_thermostat_temperature_2" />
<rect <rect
style="fill:none;stroke:none;stroke-width:0.135077;stroke-miterlimit:4;stroke-dasharray:none" 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" width="14.875127"
height="39.000011" height="39.000011"
x="365.125" x="365.125"
y="-17639" y="-17639"
inkscape:label="sensor.acurite_986_1r_48226_temperature_2" /> inkscape:label="sensor.kitchen_fridge_thermostat_temperature_2" />
<g <g
id="g991" id="g991"
transform="matrix(0.08582121,0,0,0.08582121,336.50561,-17642.293)"> 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" 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" inkscape:label="light.storage_room"
sodipodi:arc-type="arc" /> sodipodi:arc-type="arc" />
&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10; inkscape:label=&quot;light.front_porch_overhead&quot; /&gt;&#10; <rect &#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10;&#10; inkscape:label=&quot;light.front_porch_overhead&quot; /&gt;&#10; <rect
id="rect12-8-8-9-3-20-4-5-3" id="rect12-8-8-9-3-20-4-5-3"
width="43.5" width="43.5"
height="4.5" height="4.5"
@@ -4307,8 +4307,8 @@
<text <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" 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)" transform="scale(0.93757302,1.0665836)"
inkscape:label="sensor.acurite_986_2f_42383_temperature" inkscape:label="sensor.kitchen_freezer_thermostat_temperature"
id="sensor.acurite_986_2f_42383_temperature" id="sensor.kitchen_freezer_thermostat_temperature"
y="-16506.842" y="-16506.842"
x="342.57764" x="342.57764"
xml:space="preserve"><tspan xml:space="preserve"><tspan
@@ -4319,8 +4319,8 @@
<text <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" 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)" transform="scale(0.93757302,1.0665836)"
inkscape:label="sensor.acurite_986_1r_48226_temperature" inkscape:label="sensor.kitchen_fridge_thermostat_temperature"
id="sensor.acurite_986_1r_48226_temperature" id="sensor.kitchen_fridge_thermostat_temperature"
y="-16506.842" y="-16506.842"
x="357.37598" x="357.37598"
xml:space="preserve"><tspan xml:space="preserve"><tspan
@@ -4976,8 +4976,8 @@
<text <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" 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)" transform="scale(0.93757302,1.0665836)"
inkscape:label="sensor.lacrosse_tx141thbv2_0_temperature" inkscape:label="sensor.front_yard_thermostat_temperature"
id="sensor.lacrosse_tx141thbv2_0_temperature" id="sensor.front_yard_thermostat_temperature"
y="-16661.049" y="-16661.049"
x="742.64539" x="742.64539"
xml:space="preserve"><tspan xml:space="preserve"><tspan
@@ -5012,8 +5012,8 @@
<text <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" 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)" transform="scale(0.93757302,1.0665836)"
inkscape:label="sensor.lacrosse_tx141thbv2_0_humidity" inkscape:label="sensor.front_yard_thermostat_humidity"
id="sensor.lacrosse_tx141thbv2_0_humidity" id="sensor.front_yard_thermostat_humidity"
y="-16650.795" y="-16650.795"
x="742.64539" x="742.64539"
xml:space="preserve"><tspan xml:space="preserve"><tspan
@@ -5048,8 +5048,8 @@
<text <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" 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)" transform="scale(0.93757302,1.0665836)"
inkscape:label="sensor.acurite_592txr_a_temperature" inkscape:label="sensor.back_yard_thermostat_temperature"
id="sensor.acurite_592txr_a_temperature" id="sensor.back_yard_thermostat_temperature"
y="-16255.984" y="-16255.984"
x="197.79414" x="197.79414"
xml:space="preserve"><tspan xml:space="preserve"><tspan
@@ -5060,8 +5060,8 @@
<text <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" 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)" transform="scale(0.93757302,1.0665836)"
inkscape:label="sensor.acurite_592txr_a_humidity" inkscape:label="sensor.back_yard_thermostat_humidity"
id="sensor.acurite_592txr_a_humidity" id="sensor.back_yard_thermostat_humidity"
y="-16245.73" y="-16245.73"
x="197.79414" x="197.79414"
xml:space="preserve"><tspan xml:space="preserve"><tspan
@@ -5070,24 +5070,24 @@
x="197.79414" x="197.79414"
y="-16245.73">---------</tspan></text> y="-16245.73">---------</tspan></text>
<g <g
id="plant.fineoffset_wh51_00f935" id="plant.daisy_soil_sensor"
inkscape:label="plant.fineoffset_wh51_00f935" inkscape:label="plant.daisy_soil_sensor"
style="fill:#000000;fill-opacity:1"> style="fill:#000000;fill-opacity:1">
<path <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" 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" 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 <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" 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" 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 <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" 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" 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> </g>
<path <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" 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" style="fill:#000000;fill-opacity:1;stroke-width:0.590325"
inkscape:label="plant.plant_sensor_3eb0" /> inkscape:label="plant.plant_sensor_3eb0" />
<g <g
id="plant.fineoffset_wh51_0ce593" id="plant.hasta_soil_sensor"
inkscape:label="plant.fineoffset_wh51_0ce593" inkscape:label="plant.hasta_soil_sensor"
style="fill:#000000;fill-opacity:1"> style="fill:#000000;fill-opacity:1">
<path <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" 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" 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 <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" 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" 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> </g>
<path <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" 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