Addred Roderique to home-assistant
This commit is contained in:
parent
1d8437766a
commit
cde7f2fc04
@ -88,7 +88,7 @@ switch:
|
|||||||
icon: "mdi:light-flood-down"
|
icon: "mdi:light-flood-down"
|
||||||
restore_mode: RESTORE_DEFAULT_OFF
|
restore_mode: RESTORE_DEFAULT_OFF
|
||||||
on_turn_on:
|
on_turn_on:
|
||||||
- delay: 300s
|
- delay: 600s
|
||||||
- switch.turn_off: relay1
|
- switch.turn_off: relay1
|
||||||
|
|
||||||
- platform: gpio
|
- platform: gpio
|
||||||
@ -134,7 +134,7 @@ switch:
|
|||||||
- binary_sensor.is_on: floodlight_test
|
- binary_sensor.is_on: floodlight_test
|
||||||
then:
|
then:
|
||||||
- switch.turn_on: relay1
|
- switch.turn_on: relay1
|
||||||
- delay: 10s
|
- delay: 30s
|
||||||
- switch.turn_off: relay4
|
- switch.turn_off: relay4
|
||||||
|
|
||||||
#define ANALOG_A1 33
|
#define ANALOG_A1 33
|
||||||
@ -148,7 +148,7 @@ sensor:
|
|||||||
pin: 35
|
pin: 35
|
||||||
name: "Alarm Signal"
|
name: "Alarm Signal"
|
||||||
id: alarm_signal
|
id: alarm_signal
|
||||||
update_interval: 1s
|
update_interval: 500ms
|
||||||
attenuation: 12db
|
attenuation: 12db
|
||||||
sampling_mode: avg
|
sampling_mode: avg
|
||||||
filters:
|
filters:
|
||||||
|
|||||||
@ -32,6 +32,10 @@ conditions:
|
|||||||
condition: template
|
condition: template
|
||||||
value_template: "{{ [\"backyard_z1\"] | select(\"in\", after_zones) | list | length > 0 }}"
|
value_template: "{{ [\"backyard_z1\"] | select(\"in\", after_zones) | list | length > 0 }}"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
- alias: Person detected
|
||||||
|
condition: template
|
||||||
|
value_template: "{{ label == 'person' }}"
|
||||||
|
enabled: true
|
||||||
actions:
|
actions:
|
||||||
- choose:
|
- choose:
|
||||||
- conditions:
|
- conditions:
|
||||||
|
|||||||
@ -34,6 +34,15 @@ conditions:
|
|||||||
{{ ["driveway_z1", "Driveway_Paving"] | select("in", after_zones) | list |
|
{{ ["driveway_z1", "Driveway_Paving"] | select("in", after_zones) | list |
|
||||||
length > 0 }}
|
length > 0 }}
|
||||||
enabled: true
|
enabled: true
|
||||||
|
- condition: or
|
||||||
|
conditions:
|
||||||
|
- condition: template
|
||||||
|
value_template: "{{ label == 'person' }}"
|
||||||
|
alias: Person detected
|
||||||
|
- condition: template
|
||||||
|
value_template: "{{ label == 'license_plate' }}"
|
||||||
|
alias: License plate detected
|
||||||
|
enabled: true
|
||||||
actions:
|
actions:
|
||||||
- choose:
|
- choose:
|
||||||
- conditions:
|
- conditions:
|
||||||
|
|||||||
@ -32,6 +32,10 @@ conditions:
|
|||||||
condition: template
|
condition: template
|
||||||
value_template: "{{ [\"eastwall_z1\"] | select(\"in\", after_zones) | list | length > 0 }}"
|
value_template: "{{ [\"eastwall_z1\"] | select(\"in\", after_zones) | list | length > 0 }}"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
- alias: Person detected
|
||||||
|
condition: template
|
||||||
|
value_template: "{{ label == 'person' }}"
|
||||||
|
enabled: true
|
||||||
actions:
|
actions:
|
||||||
- choose:
|
- choose:
|
||||||
- conditions:
|
- conditions:
|
||||||
|
|||||||
@ -36,6 +36,10 @@ conditions:
|
|||||||
{{ ["patio_z1", "Patio_Gate"] | select("in", after_zones) | list | length
|
{{ ["patio_z1", "Patio_Gate"] | select("in", after_zones) | list | length
|
||||||
> 0 }}
|
> 0 }}
|
||||||
enabled: true
|
enabled: true
|
||||||
|
- alias: Person detected
|
||||||
|
condition: template
|
||||||
|
value_template: "{{ label == 'person' }}"
|
||||||
|
enabled: true
|
||||||
actions:
|
actions:
|
||||||
- choose:
|
- choose:
|
||||||
- conditions:
|
- conditions:
|
||||||
|
|||||||
@ -32,6 +32,10 @@ conditions:
|
|||||||
condition: template
|
condition: template
|
||||||
value_template: "{{ [\"westwall_z1\"] | select(\"in\", after_zones) | list | length > 0 }}"
|
value_template: "{{ [\"westwall_z1\"] | select(\"in\", after_zones) | list | length > 0 }}"
|
||||||
enabled: true
|
enabled: true
|
||||||
|
- alias: Person detected
|
||||||
|
condition: template
|
||||||
|
value_template: "{{ label == 'person' }}"
|
||||||
|
enabled: true
|
||||||
actions:
|
actions:
|
||||||
- choose:
|
- choose:
|
||||||
- conditions:
|
- conditions:
|
||||||
|
|||||||
65
home-assistant/Mushroom badge-chop cards.yml
Normal file
65
home-assistant/Mushroom badge-chop cards.yml
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
# Template badge (can't get animation to work)
|
||||||
|
# ==============
|
||||||
|
type: custom:mushroom-template-badge
|
||||||
|
entity: binary_sensor.motion_detected
|
||||||
|
content: >
|
||||||
|
{{ states['binary_sensor.motion_detected'].state | title }} · {{
|
||||||
|
states['binary_sensor.motion_detected'].last_changed | relative_time }}
|
||||||
|
icon: "{{ state_attr(\"binary_sensor.motion_detected\", \"icon\") }}"
|
||||||
|
color: >-
|
||||||
|
{% set lc = (as_timestamp(now()) -
|
||||||
|
as_timestamp(states[entity].last_changed))|int %} {{ "#ff0000" if lc < 10 }}
|
||||||
|
{{ "#4d061c" if lc >= 10 and lc < 20 }} {{ "#d2042d" if lc >= 20 and lc < 45
|
||||||
|
}} {{ "#fA8072" if lc >= 45 and lc < 90 }} {{ "#ff8c00" if lc >= 90 and lc <
|
||||||
|
180 }} {{ "#ffa500" if lc >= 180 and lc < 400 }} {{ "#fff700" if lc >= 400 and
|
||||||
|
lc < 830 }} {{ "#ffff00" if lc >= 830 and lc < 1725 }} {{ "#008000" if lc >=
|
||||||
|
1725 and lc < 3600 }} {{ "#4682B4" if lc >= 3600 and lc < 21600 }}
|
||||||
|
label: "{{ states[entity].name }}"
|
||||||
|
|
||||||
|
|
||||||
|
# Chip cards (can't add label)
|
||||||
|
# ==========
|
||||||
|
type: custom:mushroom-chips-card
|
||||||
|
alignment: justify
|
||||||
|
chips:
|
||||||
|
- type: template
|
||||||
|
entity: binary_sensor.alarm_triggered
|
||||||
|
icon: "{{ state_attr(\"binary_sensor.alarm_triggered\", \"icon\") }}"
|
||||||
|
icon_color: |
|
||||||
|
{% if is_state('binary_sensor.alarm_triggered', 'on') %}
|
||||||
|
red
|
||||||
|
{% else %}
|
||||||
|
#4682B4
|
||||||
|
{% endif %}
|
||||||
|
content: Alarm
|
||||||
|
tap_action:
|
||||||
|
action: navigate
|
||||||
|
navigation_path: /dashboard-sthome/alarm
|
||||||
|
- type: template
|
||||||
|
entity: binary_sensor.motion_detected
|
||||||
|
icon: "{{ state_attr(\"binary_sensor.motion_detected\", \"icon\") }}"
|
||||||
|
icon_color: >-
|
||||||
|
{% set lc = (as_timestamp(now()) -
|
||||||
|
as_timestamp(states.binary_sensor.motion_detected.last_changed))|int %} {{
|
||||||
|
"#ff0000" if lc < 10 }} {{ "#4d061c" if lc >= 10 and lc < 20 }} {{
|
||||||
|
"#d2042d" if lc >= 20 and lc < 45 }} {{ "#fA8072" if lc >= 45 and lc < 90
|
||||||
|
}} {{ "#ff8c00" if lc >= 90 and lc < 180 }} {{ "#ffa500" if lc >= 180 and
|
||||||
|
lc < 400 }} {{ "#fff700" if lc >= 400 and lc < 830 }} {{ "#ffff00" if lc
|
||||||
|
>= 830 and lc < 1725 }} {{ "#008000" if lc >= 1725 and lc < 3600 }} {{
|
||||||
|
"#4682B4" if lc >= 3600 and lc < 21600 }}
|
||||||
|
content: >-
|
||||||
|
{% set motion = is_state('binary_sensor.motion_detected', 'on') %}
|
||||||
|
{% set elapsed_time = states['binary_sensor.motion_detected'].last_changed | relative_time %}
|
||||||
|
{{ 'Started' if motion else 'Stopped' }} · {{ elapsed_time }} ago
|
||||||
|
tap_action:
|
||||||
|
action: navigate
|
||||||
|
navigation_path: /dashboard-sthome/alarm
|
||||||
|
card_mod:
|
||||||
|
style:
|
||||||
|
mushroom-template-chip:nth-child(2)$: |
|
||||||
|
ha-state-icon {
|
||||||
|
{{ 'animation: clip 2s linear infinite;' if is_state('binary_sensor.motion_detected', 'on') }}
|
||||||
|
}
|
||||||
|
@keyframes clip {
|
||||||
|
50% { clip-path: polygon(0 0, 61% 0, 66% 100%, 0% 100%); }
|
||||||
|
}
|
||||||
@ -8,8 +8,8 @@ variables:
|
|||||||
sequence:
|
sequence:
|
||||||
- if:
|
- if:
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: "{{ states('input_boolean.enable_person_detect_alarm') == 'on' }}"
|
value_template: "{{ states('input_boolean.motion_detect') == 'on' }}"
|
||||||
alias: Person detect alarm is enabled
|
alias: Motion detect alarm is enabled
|
||||||
then:
|
then:
|
||||||
- if:
|
- if:
|
||||||
- condition: template
|
- condition: template
|
||||||
@ -66,9 +66,6 @@ sequence:
|
|||||||
data: {}
|
data: {}
|
||||||
- action: script.send_dynamic_notification_to_devices
|
- action: script.send_dynamic_notification_to_devices
|
||||||
data:
|
data:
|
||||||
send_to_sm_n986b: "{{ states('input_boolean.notify_sm_n986b') == 'on' }}"
|
|
||||||
send_to_nokia_c20: "{{ states('input_boolean.notify_nokia_c20') == 'on' }}"
|
|
||||||
send_to_sm_x115: "{{ states('input_boolean.notify_sm_x115') == 'on' }}"
|
|
||||||
send_to_nova_4k: "{{ send_to_nova_4k }}"
|
send_to_nova_4k: "{{ send_to_nova_4k }}"
|
||||||
id: "{{ id }}"
|
id: "{{ id }}"
|
||||||
title: "{{ title }}"
|
title: "{{ title }}"
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
default_config:
|
default_config:
|
||||||
frontend:
|
frontend:
|
||||||
extra_module_url:
|
extra_module_url:
|
||||||
- /local/card-mod.js
|
- /local/community/lovelace-card-mod/card-mod.js
|
||||||
# Text to speech
|
# Text to speech
|
||||||
tts:
|
tts:
|
||||||
- platform: google_translate
|
- platform: google_translate
|
||||||
@ -20,6 +20,10 @@ http:
|
|||||||
- 10.255.224.0/20
|
- 10.255.224.0/20
|
||||||
|
|
||||||
homeassistant:
|
homeassistant:
|
||||||
|
elevation: 1339
|
||||||
|
latitude: -25.712942
|
||||||
|
longitude: 28.127656
|
||||||
|
|
||||||
customize_domain:
|
customize_domain:
|
||||||
|
|
||||||
automation:
|
automation:
|
||||||
@ -67,11 +71,12 @@ template:
|
|||||||
{% else %}
|
{% else %}
|
||||||
mdi:weather-sunset-down
|
mdi:weather-sunset-down
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
- unique_id: alarm_triggered_gui
|
- unique_id: alarm_triggered_gui
|
||||||
name: Alarm triggered
|
name: Alarm triggered
|
||||||
state: >
|
state: >
|
||||||
{{ 'on' if states('sensor.sthome_ut1_alarm_signal')|float > 1.5 else 'off' }}
|
{{ 'on' if states('sensor.sthome_ut1_alarm_signal')|float > 1.5 else 'off' }}
|
||||||
icon: >
|
icon: &icon_alarm_light >
|
||||||
{%- if this.state == 'on' -%}
|
{%- if this.state == 'on' -%}
|
||||||
mdi:alarm-light
|
mdi:alarm-light
|
||||||
{%- elif this.state == 'off' -%}
|
{%- elif this.state == 'off' -%}
|
||||||
@ -79,17 +84,12 @@ template:
|
|||||||
{%- else -%}
|
{%- else -%}
|
||||||
mdi:alarm-light-off-outline
|
mdi:alarm-light-off-outline
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
|
|
||||||
- unique_id: zone_4_triggered_gui
|
- unique_id: zone_4_triggered_gui
|
||||||
name: Zone 4 triggered
|
name: Zone 4 triggered
|
||||||
state: "{{ states('switch.sthome_ut1_alarm_zone_4') }}"
|
state: "{{ states('switch.sthome_ut1_alarm_zone_4') }}"
|
||||||
icon: >
|
icon: *icon_alarm_light
|
||||||
{%- if this.state == 'on' -%}
|
|
||||||
mdi:alarm-light
|
|
||||||
{%- elif this.state == 'off' -%}
|
|
||||||
mdi:alarm-light-off
|
|
||||||
{%- else -%}
|
|
||||||
mdi:alarm-light-off-outline
|
|
||||||
{%- endif -%}
|
|
||||||
- unique_id: gate_lock_gui
|
- unique_id: gate_lock_gui
|
||||||
name: Gate Lock
|
name: Gate Lock
|
||||||
state: "{{ states('switch.sthome_ut4_relay_5') }}"
|
state: "{{ states('switch.sthome_ut4_relay_5') }}"
|
||||||
@ -101,11 +101,11 @@ template:
|
|||||||
{%- else -%}
|
{%- else -%}
|
||||||
mdi:lock-off
|
mdi:lock-off
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
- unique_id: motion_detected_gui
|
|
||||||
name: Motion Detected
|
- unique_id: backyard_motion_gui
|
||||||
state: >
|
name: Backyard Motion Detect
|
||||||
{{ 'on' if is_state('input_boolean.backyard_motion_detected', 'on') or is_state('input_boolean.westwall_motion_detected', 'on') or is_state('input_boolean.eastwall_motion_detected', 'on') or is_state('input_boolean.patio_motion_detected', 'on') or is_state('input_boolean.driveway_motion_detected', 'on') else 'off' }}
|
state: "{{ states('input_boolean.backyard_motion_detected') }}"
|
||||||
icon: >
|
icon: &icon_motion_sensor >
|
||||||
{% if this.state == 'on' %}
|
{% if this.state == 'on' %}
|
||||||
mdi:motion-sensor
|
mdi:motion-sensor
|
||||||
{% elif this.state == 'off'%}
|
{% elif this.state == 'off'%}
|
||||||
@ -113,17 +113,37 @@ template:
|
|||||||
{% else %}
|
{% else %}
|
||||||
mdi:motion-sensor-off
|
mdi:motion-sensor-off
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
- unique_id: westwall_motion_gui
|
||||||
|
name: Westwall Motion Detect
|
||||||
|
state: "{{ states('input_boolean.westwall_motion_detected') }}"
|
||||||
|
icon: *icon_motion_sensor
|
||||||
|
|
||||||
|
- unique_id: eastwall_motion_gui
|
||||||
|
name: Eastwall Motion Detect
|
||||||
|
state: "{{ 'on' if is_state('input_boolean.eastwall_motion_detected', 'on') else 'off' }}"
|
||||||
|
icon: *icon_motion_sensor
|
||||||
|
|
||||||
|
- unique_id: patio_motion_gui
|
||||||
|
name: Patio Motion Detect
|
||||||
|
state: "{{ 'on' if is_state('input_boolean.patio_motion_detected', 'on') else 'off' }}"
|
||||||
|
icon: *icon_motion_sensor
|
||||||
|
|
||||||
|
- unique_id: driveway_motion_gui
|
||||||
|
name: Driveway Motion Detect
|
||||||
|
state: "{{ 'on' if is_state('input_boolean.driveway_motion_detected', 'on') else 'off' }}"
|
||||||
|
icon: *icon_motion_sensor
|
||||||
|
|
||||||
|
- unique_id: motion_detected_gui
|
||||||
|
name: Motion Detected
|
||||||
|
state: >
|
||||||
|
{{ 'on' if is_state('input_boolean.backyard_motion_detected', 'on') or is_state('input_boolean.westwall_motion_detected', 'on') or is_state('input_boolean.eastwall_motion_detected', 'on') or is_state('input_boolean.patio_motion_detected', 'on') or is_state('input_boolean.driveway_motion_detected', 'on') else 'off' }}
|
||||||
|
icon: *icon_motion_sensor
|
||||||
|
|
||||||
- unique_id: motion_detect_enabled
|
- unique_id: motion_detect_enabled
|
||||||
name: Motion Detect Enabled
|
name: Motion Detect Enabled
|
||||||
state: "{{ states('input_boolean.person_detect') }}"
|
state: "{{ states('input_boolean.person_detect') }}"
|
||||||
icon: >
|
icon: *icon_motion_sensor
|
||||||
{% if this.state == 'on' %}
|
|
||||||
mdi:motion-sensor
|
|
||||||
{% elif this.state == 'off' %}
|
|
||||||
mdi:motion-sensor-off
|
|
||||||
{% else %}
|
|
||||||
mdi:motion-sensor-off
|
|
||||||
{% endif %}
|
|
||||||
#notify:
|
#notify:
|
||||||
# - platform: androidtv
|
# - platform: androidtv
|
||||||
# name: Android TV
|
# name: Android TV
|
||||||
|
|||||||
89
home-assistant/counter.json
Normal file
89
home-assistant/counter.json
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"minor_version": 1,
|
||||||
|
"key": "counter",
|
||||||
|
"data": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"id": "driveway_person_alarm_counter",
|
||||||
|
"initial": 0,
|
||||||
|
"minimum": null,
|
||||||
|
"restore": true,
|
||||||
|
"maximum": null,
|
||||||
|
"step": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "east_wall_person_alarm_counter",
|
||||||
|
"name": "East wall Person Alarm Counter",
|
||||||
|
"initial": 0,
|
||||||
|
"minimum": null,
|
||||||
|
"restore": true,
|
||||||
|
"maximum": null,
|
||||||
|
"step": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "backyard_person_alarm_counter",
|
||||||
|
"name": "Backyard Person Alarm Counter",
|
||||||
|
"initial": 0,
|
||||||
|
"minimum": null,
|
||||||
|
"restore": true,
|
||||||
|
"maximum": null,
|
||||||
|
"step": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "west_wall_person_alarm_counter",
|
||||||
|
"name": "West wall Person Alarm Counter",
|
||||||
|
"initial": 0,
|
||||||
|
"minimum": null,
|
||||||
|
"restore": true,
|
||||||
|
"maximum": null,
|
||||||
|
"step": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "patio_person_alarm_counter",
|
||||||
|
"name": "Patio Person Alarm Counter",
|
||||||
|
"initial": 0,
|
||||||
|
"minimum": null,
|
||||||
|
"restore": true,
|
||||||
|
"maximum": null,
|
||||||
|
"step": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "car_counter",
|
||||||
|
"name": "Car Counter",
|
||||||
|
"initial": 0,
|
||||||
|
"minimum": null,
|
||||||
|
"restore": true,
|
||||||
|
"maximum": null,
|
||||||
|
"step": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "sm_n986b_notification_counter",
|
||||||
|
"name": "SM_N986B: Notification Counter",
|
||||||
|
"minimum": 0,
|
||||||
|
"restore": true,
|
||||||
|
"maximum": null,
|
||||||
|
"initial": 0,
|
||||||
|
"step": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "sm_x115_notification_counter",
|
||||||
|
"name": "SM_X115 Notification Counter",
|
||||||
|
"initial": 0,
|
||||||
|
"minimum": null,
|
||||||
|
"restore": true,
|
||||||
|
"maximum": null,
|
||||||
|
"step": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "nokia_c20_notification_counter",
|
||||||
|
"name": "Nokia C20 Notification Counter",
|
||||||
|
"initial": 0,
|
||||||
|
"minimum": null,
|
||||||
|
"restore": true,
|
||||||
|
"maximum": null,
|
||||||
|
"step": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -6,8 +6,8 @@
|
|||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"id": "enable_person_detect_alarm",
|
"id": "enable_person_detect_alarm",
|
||||||
"name": "Person Detect",
|
"name": "Motion Detect",
|
||||||
"icon": "mdi:run"
|
"icon": "mdi:motion-sensor"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "notify_sm_n986b",
|
"id": "notify_sm_n986b",
|
||||||
@ -48,6 +48,11 @@
|
|||||||
"id": "patio_motion_detected",
|
"id": "patio_motion_detected",
|
||||||
"name": "Patio Motion Detected",
|
"name": "Patio Motion Detected",
|
||||||
"icon": "mdi:motion-sensor"
|
"icon": "mdi:motion-sensor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "notify_sm_a032f",
|
||||||
|
"name": "Notify SM-A032F",
|
||||||
|
"icon": "mdi:cellphone-text"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
817
home-assistant/lovelace.dashboard_sthome.yml
Normal file
817
home-assistant/lovelace.dashboard_sthome.yml
Normal file
@ -0,0 +1,817 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"minor_version": 1,
|
||||||
|
"key": "lovelace.dashboard_sthome",
|
||||||
|
"data": {
|
||||||
|
"config": {
|
||||||
|
"title": "Home",
|
||||||
|
"button_card_templates": {
|
||||||
|
"sensor": {
|
||||||
|
"aspect_ratio": "1.2/1",
|
||||||
|
"show_state": true,
|
||||||
|
"show_icon": true
|
||||||
|
},
|
||||||
|
"sensor_battery": {
|
||||||
|
"template": "sensor",
|
||||||
|
"icon": "[[[\n if (entity.state < 5) return 'mdi:battery-alert-variant-outline';\n if (entity.state >= 5 && entity.state <15) return 'mdi:battery-10';\n if (entity.state >= 15 && entity.state < 25) return 'mdi:battery-20';\n if (entity.state >= 25 && entity.state < 35) return 'mdi:battery-30';\n if (entity.state >= 35 && entity.state < 45) return 'mdi:battery-40';\n if (entity.state >= 45 && entity.state < 55) return 'mdi:battery-50';\n if (entity.state >= 55 && entity.state < 65) return 'mdi:battery-60';\n if (entity.state >= 65 && entity.state < 75) return 'mdi:battery-70';\n if (entity.state >= 75 && entity.state < 85) return 'mdi:battery-80';\n if (entity.state >= 85 && entity.state < 95) return 'mdi:battery-90';\n if (entity.state >= 95) return 'mdi:battery';\n else return 'mdi:battery-alert-variant-outline';\n]]]\n",
|
||||||
|
"style": [
|
||||||
|
{
|
||||||
|
"padding": "0px"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"styles": {
|
||||||
|
"icon": [
|
||||||
|
{
|
||||||
|
"color": "[[[\n if (entity.state < 15) return 'red';\n if (entity.state >= 15 && entity.state <25) return 'firebrick';\n if (entity.state >= 25 && entity.state < 55) return 'orange';\n if (entity.state >= 55) return 'green';\n else return 'red';\n]]]\n"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"views": [
|
||||||
|
{
|
||||||
|
"title": "Home",
|
||||||
|
"cards": [],
|
||||||
|
"type": "sections",
|
||||||
|
"icon": "mdi:home",
|
||||||
|
"badges": [
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-chips-card",
|
||||||
|
"alignment": "justify",
|
||||||
|
"chips": [
|
||||||
|
{
|
||||||
|
"type": "template",
|
||||||
|
"entity": "binary_sensor.alarm_triggered",
|
||||||
|
"icon": "{{ state_attr(\"binary_sensor.alarm_triggered\", \"icon\") }}",
|
||||||
|
"icon_color": "{% if is_state('binary_sensor.alarm_triggered', 'on') %}\n red\n{% else %}\n #4682B4\n{% endif %}\n",
|
||||||
|
"content": "Alarm",
|
||||||
|
"tap_action": {
|
||||||
|
"action": "navigate",
|
||||||
|
"navigation_path": "/dashboard-sthome/alarm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "template",
|
||||||
|
"entity": "binary_sensor.motion_detected",
|
||||||
|
"icon": "{{ state_attr(\"binary_sensor.motion_detected\", \"icon\") }}",
|
||||||
|
"icon_color": "{% set lc = (as_timestamp(now()) - as_timestamp(states.binary_sensor.motion_detected.last_changed))|int %} {{ \"#ff0000\" if lc < 10 }} {{ \"#4d061c\" if lc >= 10 and lc < 20 }} {{ \"#d2042d\" if lc >= 20 and lc < 45 }} {{ \"#fA8072\" if lc >= 45 and lc < 90 }} {{ \"#ff8c00\" if lc >= 90 and lc < 180 }} {{ \"#ffa500\" if lc >= 180 and lc < 400 }} {{ \"#fff700\" if lc >= 400 and lc < 830 }} {{ \"#ffff00\" if lc >= 830 and lc < 1725 }} {{ \"#008000\" if lc >= 1725 and lc < 3600 }} {{ \"#4682B4\" if lc >= 3600 and lc < 21600 }}",
|
||||||
|
"content": "{% set motion = is_state('binary_sensor.motion_detected', 'on') %} {% set elapsed_time = states['binary_sensor.motion_detected'].last_changed | relative_time %} {{ 'Started' if motion else 'Stopped' }} · {{ elapsed_time }} ago",
|
||||||
|
"tap_action": {
|
||||||
|
"action": "navigate",
|
||||||
|
"navigation_path": "/dashboard-sthome/alarm"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"card_mod": {
|
||||||
|
"style": {
|
||||||
|
"mushroom-template-chip:nth-child(2)$": "ha-state-icon {\n {{ 'animation: clip 2s linear infinite;' if is_state('binary_sensor.motion_detected', 'on') }}\n}\n@keyframes clip {\n 50% { clip-path: polygon(0 0, 61% 0, 66% 100%, 0% 100%); }\n}\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sections": [
|
||||||
|
{
|
||||||
|
"type": "grid",
|
||||||
|
"cards": [
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-chips-card",
|
||||||
|
"chips": [
|
||||||
|
{
|
||||||
|
"type": "entity",
|
||||||
|
"entity": "sun.sun"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "template",
|
||||||
|
"content": "Sunrise {% if states.sun.sun %} {{ (as_timestamp(states.sun.sun.attributes.next_rising)) | timestamp_custom(('%H:%M') )}} {% endif %}",
|
||||||
|
"icon": "mdi:weather-sunset-up"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "template",
|
||||||
|
"content": "Sunset {% if states.sun.sun %} {{ (as_timestamp(states.sun.sun.attributes.next_setting)) | timestamp_custom(('%H:%M') )}} {% endif %}",
|
||||||
|
"icon": "mdi:weather-sunset-down"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "entity",
|
||||||
|
"entity": "sensor.moon_phase"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show_current": true,
|
||||||
|
"show_forecast": true,
|
||||||
|
"type": "weather-forecast",
|
||||||
|
"entity": "weather.forecast_home",
|
||||||
|
"secondary_info_attribute": "humidity",
|
||||||
|
"forecast_type": "daily"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-person-card",
|
||||||
|
"entity": "person.chris",
|
||||||
|
"name": "Chris"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-person-card",
|
||||||
|
"entity": "device_tracker.nokia_c20"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "grid",
|
||||||
|
"cards": [
|
||||||
|
{
|
||||||
|
"type": "heading",
|
||||||
|
"heading": "Media players",
|
||||||
|
"heading_style": "title",
|
||||||
|
"icon": "mdi:television"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-media-player-card",
|
||||||
|
"entity": "media_player.smart_tv",
|
||||||
|
"name": "Hisense",
|
||||||
|
"icon": "mdi:television",
|
||||||
|
"collapsible_controls": true,
|
||||||
|
"use_media_info": true,
|
||||||
|
"volume_controls": [
|
||||||
|
"volume_mute",
|
||||||
|
"volume_set",
|
||||||
|
"volume_buttons"
|
||||||
|
],
|
||||||
|
"media_controls": [
|
||||||
|
"on_off",
|
||||||
|
"shuffle",
|
||||||
|
"previous",
|
||||||
|
"play_pause_stop",
|
||||||
|
"next",
|
||||||
|
"repeat"
|
||||||
|
],
|
||||||
|
"show_volume_level": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-media-player-card",
|
||||||
|
"entity": "media_player.xiaomi_tv_box_2",
|
||||||
|
"name": "Xiaomi",
|
||||||
|
"icon": "mdi:television-box",
|
||||||
|
"collapsible_controls": true,
|
||||||
|
"use_media_info": true,
|
||||||
|
"volume_controls": [
|
||||||
|
"volume_mute",
|
||||||
|
"volume_set",
|
||||||
|
"volume_buttons"
|
||||||
|
],
|
||||||
|
"media_controls": [
|
||||||
|
"on_off",
|
||||||
|
"shuffle",
|
||||||
|
"previous",
|
||||||
|
"play_pause_stop",
|
||||||
|
"next",
|
||||||
|
"repeat"
|
||||||
|
],
|
||||||
|
"show_volume_level": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-media-player-card",
|
||||||
|
"entity": "media_player.nova4k",
|
||||||
|
"name": "Nova4k",
|
||||||
|
"icon": "mdi:television-box",
|
||||||
|
"collapsible_controls": true,
|
||||||
|
"use_media_info": true,
|
||||||
|
"volume_controls": [
|
||||||
|
"volume_mute",
|
||||||
|
"volume_set",
|
||||||
|
"volume_buttons"
|
||||||
|
],
|
||||||
|
"media_controls": [
|
||||||
|
"on_off",
|
||||||
|
"shuffle",
|
||||||
|
"previous",
|
||||||
|
"play_pause_stop",
|
||||||
|
"next",
|
||||||
|
"repeat"
|
||||||
|
],
|
||||||
|
"show_volume_level": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "grid",
|
||||||
|
"cards": [
|
||||||
|
{
|
||||||
|
"type": "heading",
|
||||||
|
"heading": "Phones",
|
||||||
|
"heading_style": "title"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-template-card",
|
||||||
|
"primary": "S20 ultra",
|
||||||
|
"secondary": "{{ states['sensor.sm_n986b_battery_level'].state }}%",
|
||||||
|
"entity": "sensor.sm_n986b_battery_level",
|
||||||
|
"icon_color": "{% set state=states['sensor.sm_n986b_battery_level'].state %}\n{% if state|int < 15 %}\n red\n{% elif (state|int > 15 and state|int < 25) %}\n #b22222\n{% elif (state|int > 25 and state|int < 55) %}\n orange\n{% else %}\n green\n{% endif %}",
|
||||||
|
"icon": "{{ state_attr(\"sensor.sm_n986b_battery_level\", \"icon\") }}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-template-card",
|
||||||
|
"primary": "Nokia C20",
|
||||||
|
"secondary": "{{ states['sensor.nokia_c20_battery_level'].state }}%",
|
||||||
|
"entity": "sensor.nokia_c20_battery_level",
|
||||||
|
"icon_color": "{% set state=states['sensor.nokia_c20_battery_level'].state %}\n{% if state|int < 15 %}\n red\n{% elif (state|int > 15 and state|int < 25) %}\n #b22222\n{% elif (state|int > 25 and state|int < 55) %}\n orange\n{% else %}\n green\n{% endif %}",
|
||||||
|
"icon": "{{ state_attr(\"sensor.nokia_c20_battery_level\", \"icon\") }}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-template-card",
|
||||||
|
"primary": "A9 tablet",
|
||||||
|
"secondary": "{{ states['sensor.sm_x115_battery_level'].state }}%",
|
||||||
|
"entity": "sensor.sm_x115_battery_level",
|
||||||
|
"icon_color": "{% set state=states['sensor.sm_x115_battery_level'].state %}\n{% if state|int < 15 %}\n red\n{% elif (state|int > 15 and state|int < 25) %}\n #b22222\n{% elif (state|int > 25 and state|int < 55) %}\n orange\n{% else %}\n green\n{% endif %}",
|
||||||
|
"icon": "{{ state_attr(\"sensor.sm_x115_battery_level\", \"icon\") }}"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "grid",
|
||||||
|
"cards": [
|
||||||
|
{
|
||||||
|
"type": "heading",
|
||||||
|
"heading": "Counters"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-entity-card",
|
||||||
|
"entity": "counter.sm_n986b_notification_counter",
|
||||||
|
"name": "S20",
|
||||||
|
"secondary_info": "state",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 4,
|
||||||
|
"rows": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-entity-card",
|
||||||
|
"entity": "counter.nokia_c20_notification_counter",
|
||||||
|
"name": "Nokia C20",
|
||||||
|
"secondary_info": "state",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 4,
|
||||||
|
"rows": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-entity-card",
|
||||||
|
"entity": "counter.sm_a032f_notification_counter",
|
||||||
|
"name": "A03 Core",
|
||||||
|
"secondary_info": "state",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 4,
|
||||||
|
"rows": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-entity-card",
|
||||||
|
"entity": "counter.sm_x115_notification_counter",
|
||||||
|
"name": "A9 tablet",
|
||||||
|
"secondary_info": "state",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 4,
|
||||||
|
"rows": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-entity-card",
|
||||||
|
"entity": "counter.driveway_person_alarm_counter",
|
||||||
|
"name": "Driveway",
|
||||||
|
"secondary_info": "state",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 4,
|
||||||
|
"rows": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-entity-card",
|
||||||
|
"entity": "counter.east_wall_person_alarm_counter",
|
||||||
|
"name": "Eastwall",
|
||||||
|
"secondary_info": "state",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 4,
|
||||||
|
"rows": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-entity-card",
|
||||||
|
"entity": "counter.backyard_person_alarm_counter",
|
||||||
|
"name": "Backyard",
|
||||||
|
"secondary_info": "state",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 4,
|
||||||
|
"rows": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-entity-card",
|
||||||
|
"entity": "counter.patio_person_alarm_counter",
|
||||||
|
"name": "Patio",
|
||||||
|
"secondary_info": "state",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 4,
|
||||||
|
"rows": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-entity-card",
|
||||||
|
"entity": "counter.west_wall_person_alarm_counter",
|
||||||
|
"name": "Westwall",
|
||||||
|
"secondary_info": "state",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 4,
|
||||||
|
"rows": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "grid",
|
||||||
|
"cards": [
|
||||||
|
{
|
||||||
|
"type": "heading",
|
||||||
|
"heading": "Work in progress",
|
||||||
|
"heading_style": "title",
|
||||||
|
"icon": "mdi:spade"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-entity-card",
|
||||||
|
"entity": "switch.sthome_ut1_relay_2",
|
||||||
|
"name": "Relay 2",
|
||||||
|
"secondary_info": "state",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 4,
|
||||||
|
"rows": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-entity-card",
|
||||||
|
"entity": "switch.sthome_ut1_relay_3",
|
||||||
|
"name": "Relay 3",
|
||||||
|
"secondary_info": "state",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 4,
|
||||||
|
"rows": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-entity-card",
|
||||||
|
"entity": "binary_sensor.gate_lock",
|
||||||
|
"name": "Gate lock",
|
||||||
|
"secondary_info": "state",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 4,
|
||||||
|
"rows": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-entity-card",
|
||||||
|
"entity": "switch.sthome_ut4_relay_6",
|
||||||
|
"name": "Open/Close gate",
|
||||||
|
"secondary_info": "state",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 4,
|
||||||
|
"rows": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"header": {
|
||||||
|
"card": {
|
||||||
|
"type": "markdown",
|
||||||
|
"text_only": true,
|
||||||
|
"content": "# Hello {{ user }}\nsthome dashboard ✨"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"max_columns": 2,
|
||||||
|
"dense_section_placement": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Security Cameras",
|
||||||
|
"cards": [],
|
||||||
|
"icon": "mdi:cctv",
|
||||||
|
"type": "sections",
|
||||||
|
"sections": [
|
||||||
|
{
|
||||||
|
"type": "grid",
|
||||||
|
"cards": [
|
||||||
|
{
|
||||||
|
"type": "heading",
|
||||||
|
"heading": "Cameras",
|
||||||
|
"heading_style": "title",
|
||||||
|
"icon": "mdi:cctv"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show_state": true,
|
||||||
|
"show_name": false,
|
||||||
|
"camera_view": "auto",
|
||||||
|
"type": "picture-entity",
|
||||||
|
"entity": "camera.driveway",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 12,
|
||||||
|
"rows": "auto"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show_state": true,
|
||||||
|
"show_name": false,
|
||||||
|
"camera_view": "auto",
|
||||||
|
"type": "picture-entity",
|
||||||
|
"entity": "camera.patio",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 6,
|
||||||
|
"rows": "auto"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show_state": true,
|
||||||
|
"show_name": false,
|
||||||
|
"camera_view": "auto",
|
||||||
|
"type": "picture-entity",
|
||||||
|
"entity": "camera.eastwall",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 6,
|
||||||
|
"rows": "auto"
|
||||||
|
},
|
||||||
|
"aspect_ratio": "1/1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show_state": true,
|
||||||
|
"show_name": false,
|
||||||
|
"camera_view": "auto",
|
||||||
|
"type": "picture-entity",
|
||||||
|
"entity": "camera.westwall",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 6,
|
||||||
|
"rows": "auto"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show_state": true,
|
||||||
|
"show_name": false,
|
||||||
|
"camera_view": "auto",
|
||||||
|
"type": "picture-entity",
|
||||||
|
"entity": "camera.backyard",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 6,
|
||||||
|
"rows": "auto"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"column_span": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "grid",
|
||||||
|
"cards": [
|
||||||
|
{
|
||||||
|
"type": "heading",
|
||||||
|
"heading": "Detections",
|
||||||
|
"heading_style": "title"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "picture",
|
||||||
|
"image_entity": "image.driveway_person",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 6,
|
||||||
|
"rows": "auto"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "picture",
|
||||||
|
"image_entity": "image.driveway_car",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 6,
|
||||||
|
"rows": "auto"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "picture",
|
||||||
|
"image_entity": "image.eastwall_person",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 6,
|
||||||
|
"rows": "auto"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "picture",
|
||||||
|
"image_entity": "image.patio_person",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 6,
|
||||||
|
"rows": "auto"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "picture",
|
||||||
|
"image_entity": "image.westwall_person",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 6,
|
||||||
|
"rows": "auto"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "picture",
|
||||||
|
"image_entity": "image.backyard_person",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 6,
|
||||||
|
"rows": "auto"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"header": {
|
||||||
|
"card": {
|
||||||
|
"type": "markdown",
|
||||||
|
"text_only": true,
|
||||||
|
"content": "Security Cameras"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"max_columns": 4,
|
||||||
|
"dense_section_placement": true,
|
||||||
|
"badges": [
|
||||||
|
{
|
||||||
|
"type": "entity",
|
||||||
|
"entity": "counter.driveway_person_alarm_counter"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "entity",
|
||||||
|
"entity": "counter.east_wall_person_alarm_counter"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "entity",
|
||||||
|
"entity": "counter.patio_person_alarm_counter"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "entity",
|
||||||
|
"entity": "counter.west_wall_person_alarm_counter"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "entity",
|
||||||
|
"entity": "counter.backyard_person_alarm_counter"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "sections",
|
||||||
|
"max_columns": 10,
|
||||||
|
"subview": false,
|
||||||
|
"path": "alarm",
|
||||||
|
"title": "Alarm",
|
||||||
|
"icon": "mdi:alarm-light",
|
||||||
|
"sections": [
|
||||||
|
{
|
||||||
|
"type": "grid",
|
||||||
|
"cards": [
|
||||||
|
{
|
||||||
|
"type": "heading",
|
||||||
|
"heading": "Settings",
|
||||||
|
"heading_style": "title"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-template-card",
|
||||||
|
"icon": "{% set state = states[\"input_boolean.motion_detect\"].state %}\n{% if state == 'on' %}\n mdi:motion-sensor\n{% elif state == 'off'%}\n mdi:motion-sensor-off\n{% else %}\n mdi:motion-sensor-off\n{% endif %}",
|
||||||
|
"primary": "{{ states[\"input_boolean.motion_detect\"].name }}",
|
||||||
|
"secondary": "{{ states[\"input_boolean.motion_detect\"].state }}",
|
||||||
|
"icon_color": "{% if is_state('input_boolean.motion_detect', 'on') %}\n green\n{% else %}\n #4682B4\n{% endif %}",
|
||||||
|
"badge_icon": "",
|
||||||
|
"badge_color": "",
|
||||||
|
"entity": "input_boolean.motion_detect",
|
||||||
|
"tap_action": {
|
||||||
|
"action": "toggle"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-template-card",
|
||||||
|
"entity": "input_boolean.notify_sm_n986b",
|
||||||
|
"secondary": "{{ states[\"input_boolean.notify_sm_n986b\"].state }}",
|
||||||
|
"icon": "{% if is_state('input_boolean.notify_sm_n986b', 'on') %}\n {{ state_attr(\"input_boolean.notify_sm_n986b\", \"icon\") }}\n{% else %}\n mdi:cellphone-off\n{% endif %}",
|
||||||
|
"primary": "{{ states['input_boolean.notify_sm_n986b'].name }}",
|
||||||
|
"icon_color": "{% if is_state('input_boolean.notify_sm_n986b', 'on') %}\n green\n{% else %}\n #4682B4\n{% endif %}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-template-card",
|
||||||
|
"entity": "input_boolean.notify_nokia_c20",
|
||||||
|
"secondary": "{{ states['input_boolean.notify_nokia_c20'].state }}",
|
||||||
|
"icon": "{% if is_state('input_boolean.notify_nokia_c20', 'on') %}\n {{ state_attr(\"input_boolean.notify_nokia_c20\", \"icon\") }}\n{% else %}\n mdi:cellphone-off\n{% endif %}",
|
||||||
|
"primary": "{{ states['input_boolean.notify_nokia_c20'].name }}",
|
||||||
|
"icon_color": "{% if is_state('input_boolean.notify_nokia_c20', 'on') %}\n green\n{% else %}\n #4682B4\n{% endif %}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-template-card",
|
||||||
|
"entity": "input_boolean.notify_sm_x115",
|
||||||
|
"secondary": "{{ states['input_boolean.notify_sm_x115'].state }}",
|
||||||
|
"icon": "{% if is_state('input_boolean.notify_sm_x115', 'on') %}\n {{ state_attr(\"input_boolean.notify_sm_x115\", \"icon\") }}\n{% else %}\n mdi:cellphone-off\n{% endif %}",
|
||||||
|
"primary": "{{ states['input_boolean.notify_sm_x115'].name }}",
|
||||||
|
"icon_color": "{% if is_state('input_boolean.notify_sm_x115', 'on') %}\n green\n{% else %}\n #4682B4\n{% endif %}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-template-card",
|
||||||
|
"secondary": "{{ states['input_boolean.notify_sm_a032f'].state }}",
|
||||||
|
"icon": "{% if is_state('input_boolean.notify_sm_a032f', 'on') %}\n {{ state_attr(\"input_boolean.notify_sm_a032f\", \"icon\") }}\n{% else %}\n mdi:cellphone-off\n{% endif %}",
|
||||||
|
"primary": "{{ states['input_boolean.notify_sm_a032f'].name }}",
|
||||||
|
"icon_color": "{% if is_state('input_boolean.notify_sm_a032f', 'on') %}\n green\n{% else %}\n #4682B4\n{% endif %}",
|
||||||
|
"tap_action": {
|
||||||
|
"action": "toggle"
|
||||||
|
},
|
||||||
|
"entity": "input_boolean.notify_sm_a032f"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"column_span": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cards": [],
|
||||||
|
"badges": [
|
||||||
|
{
|
||||||
|
"type": "entity",
|
||||||
|
"show_name": true,
|
||||||
|
"show_state": true,
|
||||||
|
"show_icon": true,
|
||||||
|
"entity": "binary_sensor.alarm_triggered",
|
||||||
|
"show_entity_picture": false,
|
||||||
|
"color": "red",
|
||||||
|
"name": "Siren",
|
||||||
|
"state_content": [
|
||||||
|
"state",
|
||||||
|
"last_changed"
|
||||||
|
],
|
||||||
|
"tap_action": {
|
||||||
|
"action": "more-info"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "entity",
|
||||||
|
"show_name": true,
|
||||||
|
"show_state": true,
|
||||||
|
"show_icon": true,
|
||||||
|
"entity": "binary_sensor.zone_4_triggered",
|
||||||
|
"color": "red",
|
||||||
|
"name": "Zone 4",
|
||||||
|
"state_content": [
|
||||||
|
"state",
|
||||||
|
"last_changed"
|
||||||
|
],
|
||||||
|
"tap_action": {
|
||||||
|
"action": "more-info"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "entity",
|
||||||
|
"show_name": true,
|
||||||
|
"show_state": true,
|
||||||
|
"show_icon": true,
|
||||||
|
"entity": "switch.sthome_ut1_floodlights_backyard",
|
||||||
|
"state_content": [
|
||||||
|
"state",
|
||||||
|
"last_changed"
|
||||||
|
],
|
||||||
|
"show_entity_picture": true,
|
||||||
|
"icon": "mdi:light-flood-down",
|
||||||
|
"name": "Backyard",
|
||||||
|
"double_tap_action": {
|
||||||
|
"action": "toggle"
|
||||||
|
},
|
||||||
|
"tap_action": {
|
||||||
|
"action": "more-info"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "entity",
|
||||||
|
"show_name": true,
|
||||||
|
"show_state": true,
|
||||||
|
"show_icon": true,
|
||||||
|
"entity": "binary_sensor.sthome_ut1_floodlights_test_mode",
|
||||||
|
"icon": "mdi:light-flood-down",
|
||||||
|
"show_entity_picture": true,
|
||||||
|
"color": "orange",
|
||||||
|
"name": "Test mode"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-template-badge",
|
||||||
|
"entity": "binary_sensor.patio_motion_detect",
|
||||||
|
"content": "{{ states[entity].state | title }} · {{ states[entity].last_changed | relative_time }}",
|
||||||
|
"icon": "{% set state = states(entity) %}\n{% if state == 'on' %}\n mdi:motion-sensor\n{% elif state == 'off' %}\n mdi:motion-sensor-off\n{% else %}\n mdi:motion-sensor-off\n{% endif %}",
|
||||||
|
"color": "{% set lc = (as_timestamp(now()) - as_timestamp(states[entity].last_changed))|int %} {{ \"#ff0000\" if lc < 10 }} {{ \"#4d061c\" if lc >= 10 and lc < 20 }} {{ \"#d2042d\" if lc >= 20 and lc < 45 }} {{ \"#fA8072\" if lc >= 45 and lc < 90 }} {{ \"#ff8c00\" if lc >= 90 and lc < 180 }} {{ \"#ffa500\" if lc >= 180 and lc < 400 }} {{ \"#fff700\" if lc >= 400 and lc < 830 }} {{ \"#ffff00\" if lc >= 830 and lc < 1725 }} {{ \"#008000\" if lc >= 1725 and lc < 3600 }} {{ \"#4682B4\" if lc >= 3600 and lc < 21600 }}",
|
||||||
|
"label": "{{ states[entity].name }}",
|
||||||
|
"tap_action": {
|
||||||
|
"action": "more-info"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-template-badge",
|
||||||
|
"content": "{{ states[entity].state | title }} · {{ states[entity].last_changed | relative_time }}",
|
||||||
|
"color": "{% set lc = (as_timestamp(now()) - as_timestamp(states[entity].last_changed))|int %} {{ \"#ff0000\" if lc < 10 }} {{ \"#4d061c\" if lc >= 10 and lc < 20 }} {{ \"#d2042d\" if lc >= 20 and lc < 45 }} {{ \"#fA8072\" if lc >= 45 and lc < 90 }} {{ \"#ff8c00\" if lc >= 90 and lc < 180 }} {{ \"#ffa500\" if lc >= 180 and lc < 400 }} {{ \"#fff700\" if lc >= 400 and lc < 830 }} {{ \"#ffff00\" if lc >= 830 and lc < 1725 }} {{ \"#008000\" if lc >= 1725 and lc < 3600 }} {{ \"#4682B4\" if lc >= 3600 and lc < 21600 }}",
|
||||||
|
"label": "{{ states[entity].name }}",
|
||||||
|
"tap_action": {
|
||||||
|
"action": "more-info"
|
||||||
|
},
|
||||||
|
"entity": "binary_sensor.driveway_motion_detect",
|
||||||
|
"icon": "{% set state = states(entity) %}\n{% if state == 'on' %}\n mdi:motion-sensor\n{% elif state == 'off' %}\n mdi:motion-sensor-off\n{% else %}\n mdi:motion-sensor-off\n{% endif %}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-template-badge",
|
||||||
|
"content": "{{ states[entity].state | title }} · {{ states[entity].last_changed | relative_time }}",
|
||||||
|
"icon": "{% set state = states(entity) %}\n{% if state == 'on' %}\n mdi:motion-sensor\n{% elif state == 'off' %}\n mdi:motion-sensor-off\n{% else %}\n mdi:motion-sensor-off\n{% endif %}",
|
||||||
|
"color": "{% set lc = (as_timestamp(now()) - as_timestamp(states[entity].last_changed))|int %} {{ \"#ff0000\" if lc < 10 }} {{ \"#4d061c\" if lc >= 10 and lc < 20 }} {{ \"#d2042d\" if lc >= 20 and lc < 45 }} {{ \"#fA8072\" if lc >= 45 and lc < 90 }} {{ \"#ff8c00\" if lc >= 90 and lc < 180 }} {{ \"#ffa500\" if lc >= 180 and lc < 400 }} {{ \"#fff700\" if lc >= 400 and lc < 830 }} {{ \"#ffff00\" if lc >= 830 and lc < 1725 }} {{ \"#008000\" if lc >= 1725 and lc < 3600 }} {{ \"#4682B4\" if lc >= 3600 and lc < 21600 }}",
|
||||||
|
"label": "{{ states[entity].name }}",
|
||||||
|
"tap_action": {
|
||||||
|
"action": "more-info"
|
||||||
|
},
|
||||||
|
"entity": "binary_sensor.eastwall_motion_detect"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-template-badge",
|
||||||
|
"content": "{{ states[entity].state | title }} · {{ states[entity].last_changed | relative_time }}",
|
||||||
|
"icon": "{% set state = states(entity) %}\n{% if state == 'on' %}\n mdi:motion-sensor\n{% elif state == 'off' %}\n mdi:motion-sensor-off\n{% else %}\n mdi:motion-sensor-off\n{% endif %}",
|
||||||
|
"color": "{% set lc = (as_timestamp(now()) - as_timestamp(states[entity].last_changed))|int %} {{ \"#ff0000\" if lc < 10 }} {{ \"#4d061c\" if lc >= 10 and lc < 20 }} {{ \"#d2042d\" if lc >= 20 and lc < 45 }} {{ \"#fA8072\" if lc >= 45 and lc < 90 }} {{ \"#ff8c00\" if lc >= 90 and lc < 180 }} {{ \"#ffa500\" if lc >= 180 and lc < 400 }} {{ \"#fff700\" if lc >= 400 and lc < 830 }} {{ \"#ffff00\" if lc >= 830 and lc < 1725 }} {{ \"#008000\" if lc >= 1725 and lc < 3600 }} {{ \"#4682B4\" if lc >= 3600 and lc < 21600 }}",
|
||||||
|
"label": "{{ states[entity].name }}",
|
||||||
|
"tap_action": {
|
||||||
|
"action": "more-info"
|
||||||
|
},
|
||||||
|
"entity": "binary_sensor.westwall_motion_detect"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-template-badge",
|
||||||
|
"content": "{{ states[entity].state | title }} · {{ states[entity].last_changed | relative_time }}",
|
||||||
|
"icon": "{% set state = states(entity) %}\n{% if state == 'on' %}\n mdi:motion-sensor\n{% elif state == 'off' %}\n mdi:motion-sensor-off\n{% else %}\n mdi:motion-sensor-off\n{% endif %}",
|
||||||
|
"color": "{% set lc = (as_timestamp(now()) - as_timestamp(states[entity].last_changed))|int %} {{ \"#ff0000\" if lc < 10 }} {{ \"#4d061c\" if lc >= 10 and lc < 20 }} {{ \"#d2042d\" if lc >= 20 and lc < 45 }} {{ \"#fA8072\" if lc >= 45 and lc < 90 }} {{ \"#ff8c00\" if lc >= 90 and lc < 180 }} {{ \"#ffa500\" if lc >= 180 and lc < 400 }} {{ \"#fff700\" if lc >= 400 and lc < 830 }} {{ \"#ffff00\" if lc >= 830 and lc < 1725 }} {{ \"#008000\" if lc >= 1725 and lc < 3600 }} {{ \"#4682B4\" if lc >= 3600 and lc < 21600 }}",
|
||||||
|
"label": "{{ states[entity].name }}",
|
||||||
|
"tap_action": {
|
||||||
|
"action": "more-info"
|
||||||
|
},
|
||||||
|
"entity": "binary_sensor.backyard_motion_detect"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"header": {
|
||||||
|
"card": {
|
||||||
|
"type": "markdown",
|
||||||
|
"text_only": true,
|
||||||
|
"content": "# House Alarm\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "sections",
|
||||||
|
"max_columns": 4,
|
||||||
|
"title": "Gate",
|
||||||
|
"path": "gate",
|
||||||
|
"icon": "mdi:gate",
|
||||||
|
"sections": [
|
||||||
|
{
|
||||||
|
"type": "grid",
|
||||||
|
"cards": [
|
||||||
|
{
|
||||||
|
"type": "heading",
|
||||||
|
"heading": "Driveway",
|
||||||
|
"heading_style": "title"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"show_state": false,
|
||||||
|
"show_name": false,
|
||||||
|
"camera_view": "live",
|
||||||
|
"type": "picture-entity",
|
||||||
|
"entity": "camera.driveway",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 12,
|
||||||
|
"rows": "auto"
|
||||||
|
},
|
||||||
|
"tap_action": {
|
||||||
|
"action": "more-info"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-lock-card",
|
||||||
|
"name": "Open/Close gate",
|
||||||
|
"entity": "switch.sthome_ut4_relay_6",
|
||||||
|
"tap_action": {
|
||||||
|
"action": "toggle"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"header": {
|
||||||
|
"card": {
|
||||||
|
"type": "markdown",
|
||||||
|
"text_only": true,
|
||||||
|
"content": "# Gate\nOpen/close driveway gate\n✨ WORK IN PROGRESS ✨\n<span style=\"color:red\"><b>⚠️WARNING: Make double sure that there are no obstructions before opening or closing the gate!⚠️ If the clock has stopped, it means that the screen is not updating. ⚠️ Refresh your browser and ensure you are getting a live stream before opening/closing gate!⚠️</b></span>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"badges": [
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-template-badge",
|
||||||
|
"content": "{{ 'Locked' if states(entity) == 'on' else 'Unlocked' }}",
|
||||||
|
"icon": "{% set state = states(entity) %}\n{% if state == 'on' %}\n mdi:gate\n{% elif state == 'off' %}\n mdi:gate-alert\n{% else %}\n mdi:gate-alert\n{% endif %}",
|
||||||
|
"color": "{% set state = states(entity) %}\n{% if state == 'on' %}\n red\n{% elif state == 'off' %}\n green\n{% else %}\n orange\n{% endif %}",
|
||||||
|
"label": "Gate",
|
||||||
|
"tap_action": {
|
||||||
|
"action": "more-info"
|
||||||
|
},
|
||||||
|
"entity": "binary_sensor.gate_lock"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,60 +1,185 @@
|
|||||||
alias: Send Dynamic Notification To Devices
|
alias: Send Dynamic Notification To All Devices
|
||||||
sequence:
|
sequence:
|
||||||
- variables:
|
- variables:
|
||||||
image_url: "{{ image }}"
|
image_url: "{{ base_url~image }}"
|
||||||
video_url: "{{ video }}"
|
video_url: "{{ base_url~video }}"
|
||||||
|
send_to_sm_n986b: "{{ states('input_boolean.notify_sm_n986b') == 'on' }}"
|
||||||
|
send_to_nokia_c20: "{{ states('input_boolean.notify_nokia_c20') == 'on' }}"
|
||||||
|
send_to_sm_x115: "{{ states('input_boolean.notify_sm_x115') == 'on' }}"
|
||||||
|
send_to_sm_a032f: "{{ states('input_boolean.notify_sm_a032f') == 'on' }}"
|
||||||
- parallel:
|
- parallel:
|
||||||
- if:
|
- if:
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: "{{ send_to_sm_n986b | default(True) }}"
|
value_template: "{{ send_to_sm_n986b | default(True) }}"
|
||||||
alias: Send to SM_N986B?
|
alias: Send to SM_N986B?
|
||||||
then:
|
then:
|
||||||
- data:
|
- parallel:
|
||||||
message: "{{ message }}"
|
- data:
|
||||||
title: "{{ title }}"
|
message: "{{ message }}"
|
||||||
data:
|
title: "{{ title }}"
|
||||||
sticky: "true"
|
data:
|
||||||
color: "#2DF56D"
|
sticky: "true"
|
||||||
channel: "{{ channel }}"
|
color: "#2DF56D"
|
||||||
vibrationPattern: 100, 1000, 100, 1000, 100
|
channel: "{{ channel }}"
|
||||||
priority: "{{ priority }}"
|
vibrationPattern: 100, 1000, 100, 1000, 100
|
||||||
ledColor: red
|
priority: "{{ priority }}"
|
||||||
importance: "{{ importance }}"
|
ledColor: red
|
||||||
clickAction: "{{ image_url }}"
|
importance: "{{ importance }}"
|
||||||
tag: "{{ notifTag }}"
|
clickAction: "{{ image_url }}"
|
||||||
group: "{{ group }}"
|
tag: "{{ notifTag }}"
|
||||||
image: >-
|
group: "{{ group }}"
|
||||||
{% if (importance == "default" and video != null) -%} {{ null
|
image: >-
|
||||||
}} {%- else -%} {{ image_url }} {%- endif %}
|
{% if (importance == "default" and video != null) -%} {{
|
||||||
video: >-
|
null }} {%- else -%} {{ image_url }} {%- endif %}
|
||||||
{% if (importance == "default" and video != null) -%} {{
|
video: >-
|
||||||
video_url }} {%- else -%} {{ null }} {%- endif %}
|
{% if (importance == "default" and video != null) -%} {{
|
||||||
notification_icon: "{{ notifIcon }}"
|
video_url }} {%- else -%} {{ null }} {%- endif %}
|
||||||
when: "{{ when }}"
|
notification_icon: "{{ notifIcon }}"
|
||||||
actions:
|
when: "{{ when }}"
|
||||||
- action: URI
|
actions:
|
||||||
title: Open Image
|
- action: URI
|
||||||
uri: "{{ image_url }}"
|
title: Open Image
|
||||||
- action: URI
|
uri: "{{ image_url }}"
|
||||||
title: Open Clip
|
- action: URI
|
||||||
uri: "{{ video_url }}"
|
title: Open Clip
|
||||||
action: notify.mobile_app_sm_n986b
|
uri: "{{ video_url }}"
|
||||||
alias: "Notify: Send message to SM_N986B"
|
action: notify.mobile_app_sm_n986b
|
||||||
- action: counter.increment
|
alias: "Notify: Send message to SM_N986B"
|
||||||
target:
|
- action: counter.increment
|
||||||
entity_id: counter.sm_n986b_notification_counter
|
target:
|
||||||
data: {}
|
entity_id: counter.sm_n986b_notification_counter
|
||||||
alias: Increment SM_N986B notification counter
|
data: {}
|
||||||
enabled: true
|
alias: Increment SM_N986B notification counter
|
||||||
|
- if:
|
||||||
|
- condition: template
|
||||||
|
value_template: "{{ send_to_nokia_c20 | default(True) }}"
|
||||||
|
alias: Send to Nokia_C20?
|
||||||
|
then:
|
||||||
|
- parallel:
|
||||||
|
- data:
|
||||||
|
message: "{{ message }}"
|
||||||
|
title: "{{ title }}"
|
||||||
|
data:
|
||||||
|
sticky: "true"
|
||||||
|
color: "#2DF56D"
|
||||||
|
channel: "{{ channel }}"
|
||||||
|
vibrationPattern: 100, 1000, 100, 1000, 100
|
||||||
|
priority: "{{ priority }}"
|
||||||
|
ledColor: red
|
||||||
|
importance: "{{ importance }}"
|
||||||
|
clickAction: "{{ image_url }}"
|
||||||
|
tag: "{{ notifTag }}"
|
||||||
|
group: "{{ group }}"
|
||||||
|
image: >-
|
||||||
|
{% if (importance == "default" and video != null) -%} {{
|
||||||
|
null }} {%- else -%} {{ image_url }} {%- endif %}
|
||||||
|
video: >-
|
||||||
|
{% if (importance == "default" and video != null) -%} {{
|
||||||
|
video_url }} {%- else -%} {{ null }} {%- endif %}
|
||||||
|
notification_icon: "{{ notifIcon }}"
|
||||||
|
when: "{{ when }}"
|
||||||
|
actions:
|
||||||
|
- action: URI
|
||||||
|
title: Open Image
|
||||||
|
uri: "{{ image_url }}"
|
||||||
|
- action: URI
|
||||||
|
title: Open Clip
|
||||||
|
uri: "{{ video_url }}"
|
||||||
|
action: notify.mobile_app_nokia_c20
|
||||||
|
alias: "Notify: Send message to Nokia_C20"
|
||||||
|
- action: counter.increment
|
||||||
|
target:
|
||||||
|
entity_id: counter.nokia_c20_notification_counter
|
||||||
|
data: {}
|
||||||
|
alias: Increment NOKIA_C20 notification counter
|
||||||
|
- if:
|
||||||
|
- condition: template
|
||||||
|
value_template: "{{ send_to_sm_x115 | default(True) }}"
|
||||||
|
alias: Send to SM_X115?
|
||||||
|
then:
|
||||||
|
- parallel:
|
||||||
|
- data:
|
||||||
|
message: "{{ message }}"
|
||||||
|
title: "{{ title }}"
|
||||||
|
data:
|
||||||
|
sticky: "true"
|
||||||
|
color: "#2DF56D"
|
||||||
|
channel: "{{ channel }}"
|
||||||
|
vibrationPattern: 100, 1000, 100, 1000, 100
|
||||||
|
priority: "{{ priority }}"
|
||||||
|
ledColor: red
|
||||||
|
importance: "{{ importance }}"
|
||||||
|
clickAction: "{{ image_url }}"
|
||||||
|
tag: "{{ notifTag }}"
|
||||||
|
group: "{{ group }}"
|
||||||
|
image: >-
|
||||||
|
{% if (importance == "default" and video != null) -%} {{
|
||||||
|
null }} {%- else -%} {{ image_url }} {%- endif %}
|
||||||
|
video: >-
|
||||||
|
{% if (importance == "default" and video != null) -%} {{
|
||||||
|
video_url }} {%- else -%} {{ null }} {%- endif %}
|
||||||
|
notification_icon: "{{ notifIcon }}"
|
||||||
|
when: "{{ when }}"
|
||||||
|
actions:
|
||||||
|
- action: URI
|
||||||
|
title: Open Image
|
||||||
|
uri: "{{ image_url }}"
|
||||||
|
- action: URI
|
||||||
|
title: Open Clip
|
||||||
|
uri: "{{ video_url }}"
|
||||||
|
action: notify.mobile_app_sm_x115
|
||||||
|
alias: "Notify: Send message to SM_X115"
|
||||||
|
- action: counter.increment
|
||||||
|
target:
|
||||||
|
entity_id: counter.sm_x115_notification_counter
|
||||||
|
data: {}
|
||||||
|
alias: Increment SM_X115 notification counter
|
||||||
|
- if:
|
||||||
|
- condition: template
|
||||||
|
value_template: "{{ send_to_sm_a032f | default(True) }}"
|
||||||
|
alias: Send to SM_A032F?
|
||||||
|
then:
|
||||||
|
- parallel:
|
||||||
|
- data:
|
||||||
|
message: "{{ message }}"
|
||||||
|
title: "{{ title }}"
|
||||||
|
data:
|
||||||
|
sticky: "true"
|
||||||
|
color: "#2DF56D"
|
||||||
|
channel: "{{ channel }}"
|
||||||
|
vibrationPattern: 100, 1000, 100, 1000, 100
|
||||||
|
priority: "{{ priority }}"
|
||||||
|
ledColor: red
|
||||||
|
importance: "{{ importance }}"
|
||||||
|
clickAction: "{{ image_url }}"
|
||||||
|
tag: "{{ notifTag }}"
|
||||||
|
group: "{{ group }}"
|
||||||
|
image: >-
|
||||||
|
{% if (importance == "default" and video != null) -%} {{
|
||||||
|
null }} {%- else -%} {{ image_url }} {%- endif %}
|
||||||
|
video: >-
|
||||||
|
{% if (importance == "default" and video != null) -%} {{
|
||||||
|
video_url }} {%- else -%} {{ null }} {%- endif %}
|
||||||
|
notification_icon: "{{ notifIcon }}"
|
||||||
|
when: "{{ when }}"
|
||||||
|
actions:
|
||||||
|
- action: URI
|
||||||
|
title: Open Image
|
||||||
|
uri: "{{ image_url }}"
|
||||||
|
- action: URI
|
||||||
|
title: Open Clip
|
||||||
|
uri: "{{ video_url }}"
|
||||||
|
action: notify.mobile_app_sm_a032f
|
||||||
|
alias: "Notify: Send message to SM_A032F"
|
||||||
|
- action: counter.increment
|
||||||
|
target:
|
||||||
|
entity_id: counter.sm_a032f_notification_counter
|
||||||
|
data: {}
|
||||||
|
alias: Increment SM_A032F notification counter
|
||||||
mode: parallel
|
mode: parallel
|
||||||
icon: mdi:bell-ring-outline
|
icon: mdi:bell-ring-outline
|
||||||
max: 10
|
max: 10
|
||||||
fields:
|
fields:
|
||||||
send_to_sm_n986b:
|
|
||||||
selector:
|
|
||||||
boolean: null
|
|
||||||
name: send_to_sm_n986b
|
|
||||||
required: false
|
|
||||||
send_to_nova_4k:
|
send_to_nova_4k:
|
||||||
selector:
|
selector:
|
||||||
boolean: null
|
boolean: null
|
||||||
@ -90,21 +215,11 @@ fields:
|
|||||||
text: null
|
text: null
|
||||||
name: group
|
name: group
|
||||||
required: true
|
required: true
|
||||||
channel:
|
|
||||||
selector:
|
|
||||||
text: null
|
|
||||||
name: channel
|
|
||||||
required: true
|
|
||||||
importance:
|
importance:
|
||||||
selector:
|
selector:
|
||||||
text: null
|
text: null
|
||||||
name: importance
|
name: importance
|
||||||
required: true
|
required: true
|
||||||
priority:
|
|
||||||
selector:
|
|
||||||
text: null
|
|
||||||
name: priority
|
|
||||||
required: true
|
|
||||||
base_url:
|
base_url:
|
||||||
selector:
|
selector:
|
||||||
text: null
|
text: null
|
||||||
@ -125,4 +240,3 @@ fields:
|
|||||||
text: null
|
text: null
|
||||||
name: when
|
name: when
|
||||||
required: true
|
required: true
|
||||||
description: ""
|
|
||||||
|
|||||||
702
home-assistant/sthome_view.yml
Normal file
702
home-assistant/sthome_view.yml
Normal file
@ -0,0 +1,702 @@
|
|||||||
|
title: Home
|
||||||
|
button_card_templates:
|
||||||
|
sensor:
|
||||||
|
aspect_ratio: 1.2/1
|
||||||
|
show_state: true
|
||||||
|
show_icon: true
|
||||||
|
sensor_battery:
|
||||||
|
template: sensor
|
||||||
|
icon: |
|
||||||
|
[[[
|
||||||
|
if (entity.state < 5) return 'mdi:battery-alert-variant-outline';
|
||||||
|
if (entity.state >= 5 && entity.state <15) return 'mdi:battery-10';
|
||||||
|
if (entity.state >= 15 && entity.state < 25) return 'mdi:battery-20';
|
||||||
|
if (entity.state >= 25 && entity.state < 35) return 'mdi:battery-30';
|
||||||
|
if (entity.state >= 35 && entity.state < 45) return 'mdi:battery-40';
|
||||||
|
if (entity.state >= 45 && entity.state < 55) return 'mdi:battery-50';
|
||||||
|
if (entity.state >= 55 && entity.state < 65) return 'mdi:battery-60';
|
||||||
|
if (entity.state >= 65 && entity.state < 75) return 'mdi:battery-70';
|
||||||
|
if (entity.state >= 75 && entity.state < 85) return 'mdi:battery-80';
|
||||||
|
if (entity.state >= 85 && entity.state < 95) return 'mdi:battery-90';
|
||||||
|
if (entity.state >= 95) return 'mdi:battery';
|
||||||
|
else return 'mdi:battery-alert-variant-outline';
|
||||||
|
]]]
|
||||||
|
style:
|
||||||
|
- padding: 0px
|
||||||
|
styles:
|
||||||
|
icon:
|
||||||
|
- color: |
|
||||||
|
[[[
|
||||||
|
if (entity.state < 15) return 'red';
|
||||||
|
if (entity.state >= 15 && entity.state <25) return 'firebrick';
|
||||||
|
if (entity.state >= 25 && entity.state < 55) return 'orange';
|
||||||
|
if (entity.state >= 55) return 'green';
|
||||||
|
else return 'red';
|
||||||
|
]]]
|
||||||
|
views:
|
||||||
|
- title: Home
|
||||||
|
cards: []
|
||||||
|
type: sections
|
||||||
|
icon: mdi:home
|
||||||
|
badges:
|
||||||
|
- type: custom:mushroom-chips-card
|
||||||
|
alignment: justify
|
||||||
|
chips:
|
||||||
|
- type: template
|
||||||
|
entity: binary_sensor.alarm_triggered
|
||||||
|
icon: '{{ state_attr("binary_sensor.alarm_triggered", "icon") }}'
|
||||||
|
icon_color: |
|
||||||
|
{% if is_state('binary_sensor.alarm_triggered', 'on') %}
|
||||||
|
red
|
||||||
|
{% else %}
|
||||||
|
#4682B4
|
||||||
|
{% endif %}
|
||||||
|
content: Alarm
|
||||||
|
tap_action:
|
||||||
|
action: navigate
|
||||||
|
navigation_path: /dashboard-sthome/alarm
|
||||||
|
- type: template
|
||||||
|
entity: binary_sensor.motion_detected
|
||||||
|
icon: '{{ state_attr("binary_sensor.motion_detected", "icon") }}'
|
||||||
|
icon_color: >-
|
||||||
|
{% set lc = (as_timestamp(now()) -
|
||||||
|
as_timestamp(states.binary_sensor.motion_detected.last_changed))|int
|
||||||
|
%} {{ "#ff0000" if lc < 10 }} {{ "#4d061c" if lc >= 10 and lc < 20
|
||||||
|
}} {{ "#d2042d" if lc >= 20 and lc < 45 }} {{ "#fA8072" if lc >=
|
||||||
|
45 and lc < 90 }} {{ "#ff8c00" if lc >= 90 and lc < 180 }} {{
|
||||||
|
"#ffa500" if lc >= 180 and lc < 400 }} {{ "#fff700" if lc >= 400
|
||||||
|
and lc < 830 }} {{ "#ffff00" if lc >= 830 and lc < 1725 }} {{
|
||||||
|
"#008000" if lc >= 1725 and lc < 3600 }} {{ "#4682B4" if lc >=
|
||||||
|
3600 and lc < 21600 }}
|
||||||
|
content: >-
|
||||||
|
{{ states['binary_sensor.motion_detected'].state | title }} · {{
|
||||||
|
states['binary_sensor.motion_detected'].last_changed |
|
||||||
|
relative_time }}
|
||||||
|
tap_action:
|
||||||
|
action: navigate
|
||||||
|
navigation_path: /dashboard-sthome/alarm
|
||||||
|
card_mod:
|
||||||
|
style:
|
||||||
|
mushroom-template-chip:nth-child(2)$: |
|
||||||
|
ha-state-icon {
|
||||||
|
{{ 'animation: clip 2s linear infinite;' if is_state('binary_sensor.motion_detected', 'on') }}
|
||||||
|
}
|
||||||
|
@keyframes clip {
|
||||||
|
50% { clip-path: polygon(0 0, 61% 0, 66% 100%, 0% 100%); }
|
||||||
|
}
|
||||||
|
sections:
|
||||||
|
- type: grid
|
||||||
|
cards:
|
||||||
|
- type: custom:mushroom-chips-card
|
||||||
|
chips:
|
||||||
|
- type: entity
|
||||||
|
entity: sun.sun
|
||||||
|
- type: template
|
||||||
|
content: >-
|
||||||
|
Sunrise {% if states.sun.sun %} {{
|
||||||
|
(as_timestamp(states.sun.sun.attributes.next_rising)) |
|
||||||
|
timestamp_custom(('%H:%M') )}} {% endif %}
|
||||||
|
icon: mdi:weather-sunset-up
|
||||||
|
- type: template
|
||||||
|
content: >-
|
||||||
|
Sunset {% if states.sun.sun %} {{
|
||||||
|
(as_timestamp(states.sun.sun.attributes.next_setting)) |
|
||||||
|
timestamp_custom(('%H:%M') )}} {% endif %}
|
||||||
|
icon: mdi:weather-sunset-down
|
||||||
|
- type: entity
|
||||||
|
entity: sensor.moon_phase
|
||||||
|
- show_current: true
|
||||||
|
show_forecast: true
|
||||||
|
type: weather-forecast
|
||||||
|
entity: weather.forecast_home
|
||||||
|
secondary_info_attribute: humidity
|
||||||
|
forecast_type: daily
|
||||||
|
- type: custom:mushroom-person-card
|
||||||
|
entity: person.chris
|
||||||
|
name: Chris
|
||||||
|
- type: custom:mushroom-person-card
|
||||||
|
entity: device_tracker.nokia_c20
|
||||||
|
- type: grid
|
||||||
|
cards:
|
||||||
|
- type: heading
|
||||||
|
heading: Media players
|
||||||
|
heading_style: title
|
||||||
|
icon: mdi:television
|
||||||
|
- type: custom:mushroom-media-player-card
|
||||||
|
entity: media_player.smart_tv
|
||||||
|
name: Hisense
|
||||||
|
icon: mdi:television
|
||||||
|
collapsible_controls: true
|
||||||
|
use_media_info: true
|
||||||
|
volume_controls:
|
||||||
|
- volume_mute
|
||||||
|
- volume_set
|
||||||
|
- volume_buttons
|
||||||
|
media_controls:
|
||||||
|
- on_off
|
||||||
|
- shuffle
|
||||||
|
- previous
|
||||||
|
- play_pause_stop
|
||||||
|
- next
|
||||||
|
- repeat
|
||||||
|
show_volume_level: true
|
||||||
|
- type: custom:mushroom-media-player-card
|
||||||
|
entity: media_player.xiaomi_tv_box_2
|
||||||
|
name: Xiaomi
|
||||||
|
icon: mdi:television-box
|
||||||
|
collapsible_controls: true
|
||||||
|
use_media_info: true
|
||||||
|
volume_controls:
|
||||||
|
- volume_mute
|
||||||
|
- volume_set
|
||||||
|
- volume_buttons
|
||||||
|
media_controls:
|
||||||
|
- on_off
|
||||||
|
- shuffle
|
||||||
|
- previous
|
||||||
|
- play_pause_stop
|
||||||
|
- next
|
||||||
|
- repeat
|
||||||
|
show_volume_level: true
|
||||||
|
- type: custom:mushroom-media-player-card
|
||||||
|
entity: media_player.nova4k
|
||||||
|
name: Nova4k
|
||||||
|
icon: mdi:television-box
|
||||||
|
collapsible_controls: true
|
||||||
|
use_media_info: true
|
||||||
|
volume_controls:
|
||||||
|
- volume_mute
|
||||||
|
- volume_set
|
||||||
|
- volume_buttons
|
||||||
|
media_controls:
|
||||||
|
- on_off
|
||||||
|
- shuffle
|
||||||
|
- previous
|
||||||
|
- play_pause_stop
|
||||||
|
- next
|
||||||
|
- repeat
|
||||||
|
show_volume_level: true
|
||||||
|
- type: grid
|
||||||
|
cards:
|
||||||
|
- type: heading
|
||||||
|
heading: Phones
|
||||||
|
heading_style: title
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
primary: S20 ultra
|
||||||
|
secondary: '{{ states[''sensor.sm_n986b_battery_level''].state }}%'
|
||||||
|
entity: sensor.sm_n986b_battery_level
|
||||||
|
icon_color: |-
|
||||||
|
{% set state=states['sensor.sm_n986b_battery_level'].state %}
|
||||||
|
{% if state|int < 15 %}
|
||||||
|
red
|
||||||
|
{% elif (state|int > 15 and state|int < 25) %}
|
||||||
|
#b22222
|
||||||
|
{% elif (state|int > 25 and state|int < 55) %}
|
||||||
|
orange
|
||||||
|
{% else %}
|
||||||
|
green
|
||||||
|
{% endif %}
|
||||||
|
icon: '{{ state_attr("sensor.sm_n986b_battery_level", "icon") }}'
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
primary: Nokia C20
|
||||||
|
secondary: '{{ states[''sensor.nokia_c20_battery_level''].state }}%'
|
||||||
|
entity: sensor.nokia_c20_battery_level
|
||||||
|
icon_color: |-
|
||||||
|
{% set state=states['sensor.nokia_c20_battery_level'].state %}
|
||||||
|
{% if state|int < 15 %}
|
||||||
|
red
|
||||||
|
{% elif (state|int > 15 and state|int < 25) %}
|
||||||
|
#b22222
|
||||||
|
{% elif (state|int > 25 and state|int < 55) %}
|
||||||
|
orange
|
||||||
|
{% else %}
|
||||||
|
green
|
||||||
|
{% endif %}
|
||||||
|
icon: '{{ state_attr("sensor.nokia_c20_battery_level", "icon") }}'
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
primary: A9 tablet
|
||||||
|
secondary: '{{ states[''sensor.sm_x115_battery_level''].state }}%'
|
||||||
|
entity: sensor.sm_x115_battery_level
|
||||||
|
icon_color: |-
|
||||||
|
{% set state=states['sensor.sm_x115_battery_level'].state %}
|
||||||
|
{% if state|int < 15 %}
|
||||||
|
red
|
||||||
|
{% elif (state|int > 15 and state|int < 25) %}
|
||||||
|
#b22222
|
||||||
|
{% elif (state|int > 25 and state|int < 55) %}
|
||||||
|
orange
|
||||||
|
{% else %}
|
||||||
|
green
|
||||||
|
{% endif %}
|
||||||
|
icon: '{{ state_attr("sensor.sm_x115_battery_level", "icon") }}'
|
||||||
|
- type: grid
|
||||||
|
cards:
|
||||||
|
- type: heading
|
||||||
|
heading: Counters
|
||||||
|
- type: custom:mushroom-entity-card
|
||||||
|
entity: counter.sm_n986b_notification_counter
|
||||||
|
name: S20
|
||||||
|
secondary_info: state
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
rows: 1
|
||||||
|
- type: custom:mushroom-entity-card
|
||||||
|
entity: counter.nokia_c20_notification_counter
|
||||||
|
name: Nokia C20
|
||||||
|
secondary_info: state
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
rows: 1
|
||||||
|
- type: custom:mushroom-entity-card
|
||||||
|
entity: counter.sm_x115_notification_counter
|
||||||
|
name: A9 tablet
|
||||||
|
secondary_info: state
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
rows: 1
|
||||||
|
- type: custom:mushroom-entity-card
|
||||||
|
entity: counter.driveway_person_alarm_counter
|
||||||
|
name: Driveway
|
||||||
|
secondary_info: state
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
rows: 1
|
||||||
|
- type: custom:mushroom-entity-card
|
||||||
|
entity: counter.east_wall_person_alarm_counter
|
||||||
|
name: Eastwall
|
||||||
|
secondary_info: state
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
rows: 1
|
||||||
|
- type: custom:mushroom-entity-card
|
||||||
|
entity: counter.backyard_person_alarm_counter
|
||||||
|
name: Backyard
|
||||||
|
secondary_info: state
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
rows: 1
|
||||||
|
- type: custom:mushroom-entity-card
|
||||||
|
entity: counter.patio_person_alarm_counter
|
||||||
|
name: Patio
|
||||||
|
secondary_info: state
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
rows: 1
|
||||||
|
- type: custom:mushroom-entity-card
|
||||||
|
entity: counter.west_wall_person_alarm_counter
|
||||||
|
name: Westwall
|
||||||
|
secondary_info: state
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
rows: 1
|
||||||
|
- type: grid
|
||||||
|
cards:
|
||||||
|
- type: heading
|
||||||
|
heading: Work in progress
|
||||||
|
heading_style: title
|
||||||
|
icon: mdi:spade
|
||||||
|
- type: custom:mushroom-entity-card
|
||||||
|
entity: switch.sthome_ut1_relay_2
|
||||||
|
name: Relay 2
|
||||||
|
secondary_info: state
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
rows: 1
|
||||||
|
- type: custom:mushroom-entity-card
|
||||||
|
entity: switch.sthome_ut1_relay_3
|
||||||
|
name: Relay 3
|
||||||
|
secondary_info: state
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
rows: 1
|
||||||
|
- type: custom:mushroom-entity-card
|
||||||
|
entity: binary_sensor.gate_lock
|
||||||
|
name: Gate lock
|
||||||
|
secondary_info: state
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
rows: 1
|
||||||
|
- type: custom:mushroom-entity-card
|
||||||
|
entity: switch.sthome_ut4_relay_6
|
||||||
|
name: Open/Close gate
|
||||||
|
secondary_info: state
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
rows: 1
|
||||||
|
header:
|
||||||
|
card:
|
||||||
|
type: markdown
|
||||||
|
text_only: true
|
||||||
|
content: |-
|
||||||
|
# Hello {{ user }}
|
||||||
|
sthome dashboard ✨
|
||||||
|
max_columns: 2
|
||||||
|
dense_section_placement: true
|
||||||
|
- title: Security Cameras
|
||||||
|
cards: []
|
||||||
|
icon: mdi:cctv
|
||||||
|
type: sections
|
||||||
|
sections:
|
||||||
|
- type: grid
|
||||||
|
cards:
|
||||||
|
- type: heading
|
||||||
|
heading: Cameras
|
||||||
|
heading_style: title
|
||||||
|
icon: mdi:cctv
|
||||||
|
- show_state: true
|
||||||
|
show_name: true
|
||||||
|
camera_view: auto
|
||||||
|
type: picture-entity
|
||||||
|
entity: camera.driveway
|
||||||
|
grid_options:
|
||||||
|
columns: 12
|
||||||
|
rows: auto
|
||||||
|
- show_state: true
|
||||||
|
show_name: true
|
||||||
|
camera_view: auto
|
||||||
|
type: picture-entity
|
||||||
|
entity: camera.patio
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
rows: auto
|
||||||
|
- show_state: true
|
||||||
|
show_name: true
|
||||||
|
camera_view: auto
|
||||||
|
type: picture-entity
|
||||||
|
entity: camera.eastwall
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
rows: auto
|
||||||
|
- show_state: true
|
||||||
|
show_name: true
|
||||||
|
camera_view: auto
|
||||||
|
type: picture-entity
|
||||||
|
entity: camera.westwall
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
rows: auto
|
||||||
|
- show_state: true
|
||||||
|
show_name: true
|
||||||
|
camera_view: auto
|
||||||
|
type: picture-entity
|
||||||
|
entity: camera.backyard
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
rows: auto
|
||||||
|
column_span: 1
|
||||||
|
- type: grid
|
||||||
|
cards:
|
||||||
|
- type: heading
|
||||||
|
heading: Detections
|
||||||
|
heading_style: title
|
||||||
|
- type: picture
|
||||||
|
image_entity: image.driveway_person
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
rows: auto
|
||||||
|
- type: picture
|
||||||
|
image_entity: image.driveway_car
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
rows: auto
|
||||||
|
- type: picture
|
||||||
|
image_entity: image.eastwall_person
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
rows: auto
|
||||||
|
- type: picture
|
||||||
|
image_entity: image.patio_person
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
rows: auto
|
||||||
|
- type: picture
|
||||||
|
image_entity: image.westwall_person
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
rows: auto
|
||||||
|
- type: picture
|
||||||
|
image_entity: image.backyard_person
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
rows: auto
|
||||||
|
header:
|
||||||
|
card:
|
||||||
|
type: markdown
|
||||||
|
text_only: true
|
||||||
|
content: Security Cameras
|
||||||
|
max_columns: 4
|
||||||
|
dense_section_placement: true
|
||||||
|
badges:
|
||||||
|
- type: entity
|
||||||
|
entity: counter.driveway_person_alarm_counter
|
||||||
|
- type: entity
|
||||||
|
entity: counter.east_wall_person_alarm_counter
|
||||||
|
- type: entity
|
||||||
|
entity: counter.patio_person_alarm_counter
|
||||||
|
- type: entity
|
||||||
|
entity: counter.west_wall_person_alarm_counter
|
||||||
|
- type: entity
|
||||||
|
entity: counter.backyard_person_alarm_counter
|
||||||
|
- type: sections
|
||||||
|
max_columns: 10
|
||||||
|
subview: true
|
||||||
|
path: alarm
|
||||||
|
title: Alarm
|
||||||
|
icon: mdi:alarm-light
|
||||||
|
sections:
|
||||||
|
- type: grid
|
||||||
|
cards:
|
||||||
|
- type: heading
|
||||||
|
heading: Settings
|
||||||
|
heading_style: title
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
icon: '{{ state_attr("binary_sensor.motion_detect_enabled", "icon") }}'
|
||||||
|
primary: '{{ states["input_boolean.motion_detect"].name }}'
|
||||||
|
secondary: '{{ states["input_boolean.motion_detect"].state }}'
|
||||||
|
icon_color: |-
|
||||||
|
{% if is_state('input_boolean.motion_detect', 'on') %}
|
||||||
|
green
|
||||||
|
{% else %}
|
||||||
|
#4682B4
|
||||||
|
{% endif %}
|
||||||
|
badge_icon: ''
|
||||||
|
badge_color: ''
|
||||||
|
entity: input_boolean.motion_detect
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
entity: input_boolean.notify_sm_n986b
|
||||||
|
secondary: '{{ states["input_boolean.notify_sm_n986b"].state }}'
|
||||||
|
icon: '{{ state_attr("input_boolean.notify_sm_n986b", "icon") }}'
|
||||||
|
primary: '{{ states[''input_boolean.notify_sm_n986b''].name }}'
|
||||||
|
icon_color: |-
|
||||||
|
{% if is_state('input_boolean.notify_sm_n986b', 'on') %}
|
||||||
|
green
|
||||||
|
{% else %}
|
||||||
|
#4682B4
|
||||||
|
{% endif %}
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
entity: input_boolean.notify_nokia_c20
|
||||||
|
secondary: '{{ states[''input_boolean.notify_nokia_c20''].state }}'
|
||||||
|
icon: '{{ state_attr("input_boolean.notify_nokia_c20", "icon") }}'
|
||||||
|
primary: '{{ states[''input_boolean.notify_nokia_c20''].name }}'
|
||||||
|
icon_color: |-
|
||||||
|
{% if is_state('input_boolean.notify_nokia_c20', 'on') %}
|
||||||
|
green
|
||||||
|
{% else %}
|
||||||
|
#4682B4
|
||||||
|
{% endif %}
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
entity: input_boolean.notify_sm_x115
|
||||||
|
secondary: '{{ states[''input_boolean.notify_sm_x115''].state }}'
|
||||||
|
icon: '{{ state_attr("input_boolean.notify_sm_x115", "icon") }}'
|
||||||
|
primary: '{{ states[''input_boolean.notify_sm_x115''].name }}'
|
||||||
|
icon_color: |-
|
||||||
|
{% if is_state('input_boolean.notify_sm_x115', 'on') %}
|
||||||
|
green
|
||||||
|
{% else %}
|
||||||
|
#4682B4
|
||||||
|
{% endif %}
|
||||||
|
column_span: 1
|
||||||
|
cards: []
|
||||||
|
badges:
|
||||||
|
- type: entity
|
||||||
|
show_name: true
|
||||||
|
show_state: true
|
||||||
|
show_icon: true
|
||||||
|
entity: binary_sensor.alarm_triggered
|
||||||
|
show_entity_picture: false
|
||||||
|
color: red
|
||||||
|
name: Siren
|
||||||
|
state_content:
|
||||||
|
- state
|
||||||
|
- last_changed
|
||||||
|
tap_action:
|
||||||
|
action: more-info
|
||||||
|
- type: entity
|
||||||
|
show_name: true
|
||||||
|
show_state: true
|
||||||
|
show_icon: true
|
||||||
|
entity: binary_sensor.zone_4_triggered
|
||||||
|
color: red
|
||||||
|
name: Zone 4
|
||||||
|
state_content:
|
||||||
|
- state
|
||||||
|
- last_changed
|
||||||
|
tap_action:
|
||||||
|
action: more-info
|
||||||
|
- type: entity
|
||||||
|
show_name: true
|
||||||
|
show_state: true
|
||||||
|
show_icon: true
|
||||||
|
entity: switch.sthome_ut1_floodlights_backyard
|
||||||
|
state_content:
|
||||||
|
- state
|
||||||
|
- last_changed
|
||||||
|
show_entity_picture: true
|
||||||
|
icon: mdi:light-flood-down
|
||||||
|
name: Backyard
|
||||||
|
double_tap_action:
|
||||||
|
action: toggle
|
||||||
|
tap_action:
|
||||||
|
action: more-info
|
||||||
|
- type: entity
|
||||||
|
show_name: true
|
||||||
|
show_state: true
|
||||||
|
show_icon: true
|
||||||
|
entity: binary_sensor.sthome_ut1_floodlights_test_mode
|
||||||
|
icon: mdi:light-flood-down
|
||||||
|
show_entity_picture: true
|
||||||
|
color: orange
|
||||||
|
name: Test mode
|
||||||
|
- type: custom:mushroom-template-badge
|
||||||
|
entity: binary_sensor.motion_detected
|
||||||
|
content: >
|
||||||
|
{{ states['binary_sensor.motion_detected'].state | title }} · {{
|
||||||
|
states['binary_sensor.motion_detected'].last_changed | relative_time
|
||||||
|
}}
|
||||||
|
icon: '{{ state_attr("binary_sensor.motion_detected", "icon") }}'
|
||||||
|
color: >-
|
||||||
|
{% set lc = (as_timestamp(now()) -
|
||||||
|
as_timestamp(states[entity].last_changed))|int %} {{ "#ff0000" if lc <
|
||||||
|
10 }} {{ "#4d061c" if lc >= 10 and lc < 20 }} {{ "#d2042d" if lc >= 20
|
||||||
|
and lc < 45 }} {{ "#fA8072" if lc >= 45 and lc < 90 }} {{ "#ff8c00" if
|
||||||
|
lc >= 90 and lc < 180 }} {{ "#ffa500" if lc >= 180 and lc < 400 }} {{
|
||||||
|
"#fff700" if lc >= 400 and lc < 830 }} {{ "#ffff00" if lc >= 830 and
|
||||||
|
lc < 1725 }} {{ "#008000" if lc >= 1725 and lc < 3600 }} {{ "#4682B4"
|
||||||
|
if lc >= 3600 and lc < 21600 }}
|
||||||
|
label: '{{ states[entity].name }}'
|
||||||
|
- type: custom:mushroom-template-badge
|
||||||
|
entity: binary_sensor.patio_motion_detect
|
||||||
|
content: >-
|
||||||
|
{{ states[entity].state | title }} · {{ states[entity].last_changed |
|
||||||
|
relative_time }}
|
||||||
|
icon: |-
|
||||||
|
{% set state = states(entity) %}
|
||||||
|
{% if state == 'on' %}
|
||||||
|
mdi:motion-sensor
|
||||||
|
{% elif state == 'off' %}
|
||||||
|
mdi:motion-sensor-off
|
||||||
|
{% else %}
|
||||||
|
mdi:motion-sensor-off
|
||||||
|
{% endif %}
|
||||||
|
color: >-
|
||||||
|
{% set lc = (as_timestamp(now()) -
|
||||||
|
as_timestamp(states[entity].last_changed))|int %} {{ "#ff0000" if lc <
|
||||||
|
10 }} {{ "#4d061c" if lc >= 10 and lc < 20 }} {{ "#d2042d" if lc >= 20
|
||||||
|
and lc < 45 }} {{ "#fA8072" if lc >= 45 and lc < 90 }} {{ "#ff8c00" if
|
||||||
|
lc >= 90 and lc < 180 }} {{ "#ffa500" if lc >= 180 and lc < 400 }} {{
|
||||||
|
"#fff700" if lc >= 400 and lc < 830 }} {{ "#ffff00" if lc >= 830 and
|
||||||
|
lc < 1725 }} {{ "#008000" if lc >= 1725 and lc < 3600 }} {{ "#4682B4"
|
||||||
|
if lc >= 3600 and lc < 21600 }}
|
||||||
|
label: '{{ states[entity].name }}'
|
||||||
|
tap_action:
|
||||||
|
action: more-info
|
||||||
|
- type: custom:mushroom-template-badge
|
||||||
|
content: >-
|
||||||
|
{{ states[entity].state | title }} · {{ states[entity].last_changed |
|
||||||
|
relative_time }}
|
||||||
|
color: >-
|
||||||
|
{% set lc = (as_timestamp(now()) -
|
||||||
|
as_timestamp(states[entity].last_changed))|int %} {{ "#ff0000" if lc <
|
||||||
|
10 }} {{ "#4d061c" if lc >= 10 and lc < 20 }} {{ "#d2042d" if lc >= 20
|
||||||
|
and lc < 45 }} {{ "#fA8072" if lc >= 45 and lc < 90 }} {{ "#ff8c00" if
|
||||||
|
lc >= 90 and lc < 180 }} {{ "#ffa500" if lc >= 180 and lc < 400 }} {{
|
||||||
|
"#fff700" if lc >= 400 and lc < 830 }} {{ "#ffff00" if lc >= 830 and
|
||||||
|
lc < 1725 }} {{ "#008000" if lc >= 1725 and lc < 3600 }} {{ "#4682B4"
|
||||||
|
if lc >= 3600 and lc < 21600 }}
|
||||||
|
label: '{{ states[entity].name }}'
|
||||||
|
tap_action:
|
||||||
|
action: more-info
|
||||||
|
entity: binary_sensor.driveway_motion_detect
|
||||||
|
icon: |-
|
||||||
|
{% set state = states(entity) %}
|
||||||
|
{% if state == 'on' %}
|
||||||
|
mdi:motion-sensor
|
||||||
|
{% elif state == 'off' %}
|
||||||
|
mdi:motion-sensor-off
|
||||||
|
{% else %}
|
||||||
|
mdi:motion-sensor-off
|
||||||
|
{% endif %}
|
||||||
|
- type: custom:mushroom-template-badge
|
||||||
|
content: >-
|
||||||
|
{{ states[entity].state | title }} · {{ states[entity].last_changed |
|
||||||
|
relative_time }}
|
||||||
|
icon: |-
|
||||||
|
{% set state = states(entity) %}
|
||||||
|
{% if state == 'on' %}
|
||||||
|
mdi:motion-sensor
|
||||||
|
{% elif state == 'off' %}
|
||||||
|
mdi:motion-sensor-off
|
||||||
|
{% else %}
|
||||||
|
mdi:motion-sensor-off
|
||||||
|
{% endif %}
|
||||||
|
color: >-
|
||||||
|
{% set lc = (as_timestamp(now()) -
|
||||||
|
as_timestamp(states[entity].last_changed))|int %} {{ "#ff0000" if lc <
|
||||||
|
10 }} {{ "#4d061c" if lc >= 10 and lc < 20 }} {{ "#d2042d" if lc >= 20
|
||||||
|
and lc < 45 }} {{ "#fA8072" if lc >= 45 and lc < 90 }} {{ "#ff8c00" if
|
||||||
|
lc >= 90 and lc < 180 }} {{ "#ffa500" if lc >= 180 and lc < 400 }} {{
|
||||||
|
"#fff700" if lc >= 400 and lc < 830 }} {{ "#ffff00" if lc >= 830 and
|
||||||
|
lc < 1725 }} {{ "#008000" if lc >= 1725 and lc < 3600 }} {{ "#4682B4"
|
||||||
|
if lc >= 3600 and lc < 21600 }}
|
||||||
|
label: '{{ states[entity].name }}'
|
||||||
|
tap_action:
|
||||||
|
action: more-info
|
||||||
|
entity: binary_sensor.eastwall_motion_detect
|
||||||
|
- type: custom:mushroom-template-badge
|
||||||
|
entity: input_boolean.westwall_motion_detected
|
||||||
|
content: >-
|
||||||
|
{{ states[entity].state | title }} · {{ states[entity].last_changed |
|
||||||
|
relative_time }}
|
||||||
|
icon: |-
|
||||||
|
{% set state = states(entity) %}
|
||||||
|
{% if state == 'on' %}
|
||||||
|
mdi:motion-sensor
|
||||||
|
{% elif state == 'off' %}
|
||||||
|
mdi:motion-sensor-off
|
||||||
|
{% else %}
|
||||||
|
mdi:motion-sensor-off
|
||||||
|
{% endif %}
|
||||||
|
color: >-
|
||||||
|
{% set lc = (as_timestamp(now()) -
|
||||||
|
as_timestamp(states[entity].last_changed))|int %} {{ "#ff0000" if lc <
|
||||||
|
10 }} {{ "#4d061c" if lc >= 10 and lc < 20 }} {{ "#d2042d" if lc >= 20
|
||||||
|
and lc < 45 }} {{ "#fA8072" if lc >= 45 and lc < 90 }} {{ "#ff8c00" if
|
||||||
|
lc >= 90 and lc < 180 }} {{ "#ffa500" if lc >= 180 and lc < 400 }} {{
|
||||||
|
"#fff700" if lc >= 400 and lc < 830 }} {{ "#ffff00" if lc >= 830 and
|
||||||
|
lc < 1725 }} {{ "#008000" if lc >= 1725 and lc < 3600 }} {{ "#4682B4"
|
||||||
|
if lc >= 3600 and lc < 21600 }}
|
||||||
|
label: '{{ states[entity].name }}'
|
||||||
|
tap_action:
|
||||||
|
action: more-info
|
||||||
|
- type: custom:mushroom-template-badge
|
||||||
|
entity: input_boolean.backyard_motion_detected
|
||||||
|
content: >-
|
||||||
|
{{ states[entity].state | title }} · {{ states[entity].last_changed |
|
||||||
|
relative_time }}
|
||||||
|
icon: |-
|
||||||
|
{% set state = states(entity) %}
|
||||||
|
{% if state == 'on' %}
|
||||||
|
mdi:motion-sensor
|
||||||
|
{% elif state == 'off' %}
|
||||||
|
mdi:motion-sensor-off
|
||||||
|
{% else %}
|
||||||
|
mdi:motion-sensor-off
|
||||||
|
{% endif %}
|
||||||
|
color: >-
|
||||||
|
{% set lc = (as_timestamp(now()) -
|
||||||
|
as_timestamp(states[entity].last_changed))|int %} {{ "#ff0000" if lc <
|
||||||
|
10 }} {{ "#4d061c" if lc >= 10 and lc < 20 }} {{ "#d2042d" if lc >= 20
|
||||||
|
and lc < 45 }} {{ "#fA8072" if lc >= 45 and lc < 90 }} {{ "#ff8c00" if
|
||||||
|
lc >= 90 and lc < 180 }} {{ "#ffa500" if lc >= 180 and lc < 400 }} {{
|
||||||
|
"#fff700" if lc >= 400 and lc < 830 }} {{ "#ffff00" if lc >= 830 and
|
||||||
|
lc < 1725 }} {{ "#008000" if lc >= 1725 and lc < 3600 }} {{ "#4682B4"
|
||||||
|
if lc >= 3600 and lc < 21600 }}
|
||||||
|
label: '{{ states[entity].name }}'
|
||||||
|
tap_action:
|
||||||
|
action: more-info
|
||||||
|
header:
|
||||||
|
card:
|
||||||
|
type: markdown
|
||||||
|
text_only: true
|
||||||
|
content: |
|
||||||
|
# House Alarm
|
||||||
Loading…
Reference in New Issue
Block a user