Addred Roderique to home-assistant
This commit is contained in:
parent
1d8437766a
commit
cde7f2fc04
@ -88,7 +88,7 @@ switch:
|
||||
icon: "mdi:light-flood-down"
|
||||
restore_mode: RESTORE_DEFAULT_OFF
|
||||
on_turn_on:
|
||||
- delay: 300s
|
||||
- delay: 600s
|
||||
- switch.turn_off: relay1
|
||||
|
||||
- platform: gpio
|
||||
@ -134,7 +134,7 @@ switch:
|
||||
- binary_sensor.is_on: floodlight_test
|
||||
then:
|
||||
- switch.turn_on: relay1
|
||||
- delay: 10s
|
||||
- delay: 30s
|
||||
- switch.turn_off: relay4
|
||||
|
||||
#define ANALOG_A1 33
|
||||
@ -148,7 +148,7 @@ sensor:
|
||||
pin: 35
|
||||
name: "Alarm Signal"
|
||||
id: alarm_signal
|
||||
update_interval: 1s
|
||||
update_interval: 500ms
|
||||
attenuation: 12db
|
||||
sampling_mode: avg
|
||||
filters:
|
||||
|
||||
@ -32,6 +32,10 @@ conditions:
|
||||
condition: template
|
||||
value_template: "{{ [\"backyard_z1\"] | select(\"in\", after_zones) | list | length > 0 }}"
|
||||
enabled: true
|
||||
- alias: Person detected
|
||||
condition: template
|
||||
value_template: "{{ label == 'person' }}"
|
||||
enabled: true
|
||||
actions:
|
||||
- choose:
|
||||
- conditions:
|
||||
|
||||
@ -34,6 +34,15 @@ conditions:
|
||||
{{ ["driveway_z1", "Driveway_Paving"] | select("in", after_zones) | list |
|
||||
length > 0 }}
|
||||
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:
|
||||
- choose:
|
||||
- conditions:
|
||||
|
||||
@ -32,6 +32,10 @@ conditions:
|
||||
condition: template
|
||||
value_template: "{{ [\"eastwall_z1\"] | select(\"in\", after_zones) | list | length > 0 }}"
|
||||
enabled: true
|
||||
- alias: Person detected
|
||||
condition: template
|
||||
value_template: "{{ label == 'person' }}"
|
||||
enabled: true
|
||||
actions:
|
||||
- choose:
|
||||
- conditions:
|
||||
|
||||
@ -36,6 +36,10 @@ conditions:
|
||||
{{ ["patio_z1", "Patio_Gate"] | select("in", after_zones) | list | length
|
||||
> 0 }}
|
||||
enabled: true
|
||||
- alias: Person detected
|
||||
condition: template
|
||||
value_template: "{{ label == 'person' }}"
|
||||
enabled: true
|
||||
actions:
|
||||
- choose:
|
||||
- conditions:
|
||||
|
||||
@ -32,6 +32,10 @@ conditions:
|
||||
condition: template
|
||||
value_template: "{{ [\"westwall_z1\"] | select(\"in\", after_zones) | list | length > 0 }}"
|
||||
enabled: true
|
||||
- alias: Person detected
|
||||
condition: template
|
||||
value_template: "{{ label == 'person' }}"
|
||||
enabled: true
|
||||
actions:
|
||||
- choose:
|
||||
- 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:
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: "{{ states('input_boolean.enable_person_detect_alarm') == 'on' }}"
|
||||
alias: Person detect alarm is enabled
|
||||
value_template: "{{ states('input_boolean.motion_detect') == 'on' }}"
|
||||
alias: Motion detect alarm is enabled
|
||||
then:
|
||||
- if:
|
||||
- condition: template
|
||||
@ -66,9 +66,6 @@ sequence:
|
||||
data: {}
|
||||
- action: script.send_dynamic_notification_to_devices
|
||||
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 }}"
|
||||
id: "{{ id }}"
|
||||
title: "{{ title }}"
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
default_config:
|
||||
frontend:
|
||||
extra_module_url:
|
||||
- /local/card-mod.js
|
||||
- /local/community/lovelace-card-mod/card-mod.js
|
||||
# Text to speech
|
||||
tts:
|
||||
- platform: google_translate
|
||||
@ -20,6 +20,10 @@ http:
|
||||
- 10.255.224.0/20
|
||||
|
||||
homeassistant:
|
||||
elevation: 1339
|
||||
latitude: -25.712942
|
||||
longitude: 28.127656
|
||||
|
||||
customize_domain:
|
||||
|
||||
automation:
|
||||
@ -67,11 +71,12 @@ template:
|
||||
{% else %}
|
||||
mdi:weather-sunset-down
|
||||
{% endif %}
|
||||
|
||||
- unique_id: alarm_triggered_gui
|
||||
name: Alarm triggered
|
||||
state: >
|
||||
{{ 'on' if states('sensor.sthome_ut1_alarm_signal')|float > 1.5 else 'off' }}
|
||||
icon: >
|
||||
icon: &icon_alarm_light >
|
||||
{%- if this.state == 'on' -%}
|
||||
mdi:alarm-light
|
||||
{%- elif this.state == 'off' -%}
|
||||
@ -79,17 +84,12 @@ template:
|
||||
{%- else -%}
|
||||
mdi:alarm-light-off-outline
|
||||
{%- endif -%}
|
||||
|
||||
- unique_id: zone_4_triggered_gui
|
||||
name: Zone 4 triggered
|
||||
state: "{{ states('switch.sthome_ut1_alarm_zone_4') }}"
|
||||
icon: >
|
||||
{%- if this.state == 'on' -%}
|
||||
mdi:alarm-light
|
||||
{%- elif this.state == 'off' -%}
|
||||
mdi:alarm-light-off
|
||||
{%- else -%}
|
||||
mdi:alarm-light-off-outline
|
||||
{%- endif -%}
|
||||
icon: *icon_alarm_light
|
||||
|
||||
- unique_id: gate_lock_gui
|
||||
name: Gate Lock
|
||||
state: "{{ states('switch.sthome_ut4_relay_5') }}"
|
||||
@ -101,29 +101,49 @@ template:
|
||||
{%- else -%}
|
||||
mdi:lock-off
|
||||
{%- endif -%}
|
||||
|
||||
- unique_id: backyard_motion_gui
|
||||
name: Backyard Motion Detect
|
||||
state: "{{ states('input_boolean.backyard_motion_detected') }}"
|
||||
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 %}
|
||||
|
||||
- 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: >
|
||||
{% if this.state == 'on' %}
|
||||
mdi:motion-sensor
|
||||
{% elif this.state == 'off'%}
|
||||
mdi:motion-sensor-off
|
||||
{% else %}
|
||||
mdi:motion-sensor-off
|
||||
{% endif %}
|
||||
icon: *icon_motion_sensor
|
||||
|
||||
- unique_id: motion_detect_enabled
|
||||
name: Motion Detect Enabled
|
||||
state: "{{ states('input_boolean.person_detect') }}"
|
||||
icon: >
|
||||
{% if this.state == 'on' %}
|
||||
mdi:motion-sensor
|
||||
{% elif this.state == 'off' %}
|
||||
mdi:motion-sensor-off
|
||||
{% else %}
|
||||
mdi:motion-sensor-off
|
||||
{% endif %}
|
||||
icon: *icon_motion_sensor
|
||||
#notify:
|
||||
# - platform: androidtv
|
||||
# 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": [
|
||||
{
|
||||
"id": "enable_person_detect_alarm",
|
||||
"name": "Person Detect",
|
||||
"icon": "mdi:run"
|
||||
"name": "Motion Detect",
|
||||
"icon": "mdi:motion-sensor"
|
||||
},
|
||||
{
|
||||
"id": "notify_sm_n986b",
|
||||
@ -48,6 +48,11 @@
|
||||
"id": "patio_motion_detected",
|
||||
"name": "Patio Motion Detected",
|
||||
"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,14 +1,19 @@
|
||||
alias: Send Dynamic Notification To Devices
|
||||
alias: Send Dynamic Notification To All Devices
|
||||
sequence:
|
||||
- variables:
|
||||
image_url: "{{ image }}"
|
||||
video_url: "{{ video }}"
|
||||
image_url: "{{ base_url~image }}"
|
||||
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:
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: "{{ send_to_sm_n986b | default(True) }}"
|
||||
alias: Send to SM_N986B?
|
||||
then:
|
||||
- parallel:
|
||||
- data:
|
||||
message: "{{ message }}"
|
||||
title: "{{ title }}"
|
||||
@ -24,8 +29,8 @@ sequence:
|
||||
tag: "{{ notifTag }}"
|
||||
group: "{{ group }}"
|
||||
image: >-
|
||||
{% if (importance == "default" and video != null) -%} {{ null
|
||||
}} {%- else -%} {{ image_url }} {%- endif %}
|
||||
{% if (importance == "default" and video != null) -%} {{
|
||||
null }} {%- else -%} {{ image_url }} {%- endif %}
|
||||
video: >-
|
||||
{% if (importance == "default" and video != null) -%} {{
|
||||
video_url }} {%- else -%} {{ null }} {%- endif %}
|
||||
@ -45,16 +50,136 @@ sequence:
|
||||
entity_id: counter.sm_n986b_notification_counter
|
||||
data: {}
|
||||
alias: Increment SM_N986B notification counter
|
||||
enabled: true
|
||||
- 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
|
||||
icon: mdi:bell-ring-outline
|
||||
max: 10
|
||||
fields:
|
||||
send_to_sm_n986b:
|
||||
selector:
|
||||
boolean: null
|
||||
name: send_to_sm_n986b
|
||||
required: false
|
||||
send_to_nova_4k:
|
||||
selector:
|
||||
boolean: null
|
||||
@ -90,21 +215,11 @@ fields:
|
||||
text: null
|
||||
name: group
|
||||
required: true
|
||||
channel:
|
||||
selector:
|
||||
text: null
|
||||
name: channel
|
||||
required: true
|
||||
importance:
|
||||
selector:
|
||||
text: null
|
||||
name: importance
|
||||
required: true
|
||||
priority:
|
||||
selector:
|
||||
text: null
|
||||
name: priority
|
||||
required: true
|
||||
base_url:
|
||||
selector:
|
||||
text: null
|
||||
@ -125,4 +240,3 @@ fields:
|
||||
text: null
|
||||
name: when
|
||||
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