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

Before

Width:  |  Height:  |  Size: 519 KiB

After

Width:  |  Height:  |  Size: 519 KiB