Compare commits

...

37 Commits

Author SHA1 Message Date
26d86dec90 Update to the current version
Some checks failed
Savin's Home Assistant / build (push) Failing after 1m45s
2025-05-11 16:07:21 -04:00
d45649f8b8 Remove some sensetive information from the main configuration yaml file
Some checks failed
Savin's Home Assistant / build (push) Failing after 1m11s
2025-02-12 14:05:29 -05:00
99c4aba4b1 Removed Pioneer componetnt from the plain text configuration 2025-02-12 14:05:29 -05:00
7bae31bf12 Changed recorder db_url to the secret 2025-02-12 14:05:29 -05:00
efb1e5f1f3 Added mqtt sensors for the Weather station Acurite Atlas 2025-02-12 14:05:29 -05:00
5579b49404 Added a new automation Global - New HA Core Version webhook
All checks were successful
Savin's Home Assistant / build (push) Successful in 2m10s
2025-02-11 14:22:09 -05:00
eec6066c7b More changes
All checks were successful
Savin's Home Assistant / build (push) Successful in 2m5s
2025-02-07 17:46:02 -05:00
8c4d2b2130 More changes
All checks were successful
Savin's Home Assistant / build (push) Successful in 2m5s
2025-02-07 17:33:19 -05:00
97e3c80dde More changes
All checks were successful
Savin's Home Assistant / build (push) Successful in 1m15s
2025-02-07 17:26:43 -05:00
fa231bd805 More changes
Some checks failed
Savin's Home Assistant / build (push) Failing after 9s
2025-02-07 17:24:23 -05:00
298d509811 More changes
Some checks failed
Savin's Home Assistant / build (push) Failing after 9s
2025-02-07 17:22:14 -05:00
c30dd3eace More changes
Some checks failed
Savin's Home Assistant / build (push) Failing after 9s
2025-02-07 16:44:14 -05:00
8eea1952a0 More changes
Some checks failed
Savin's Home Assistant / build (push) Failing after 9s
2025-02-07 16:40:52 -05:00
80c7673c0b more changes
Some checks failed
Savin's Home Assistant / build (push) Failing after 8s
2025-02-07 16:37:41 -05:00
5c4f63d05a more changes
Some checks failed
Savin's Home Assistant / build (push) Failing after 10s
2025-02-07 16:33:58 -05:00
0b1755b6a0 More changes
All checks were successful
Savin's Home Assistant / build (push) Successful in 1m17s
2025-02-07 16:26:45 -05:00
ec6ca8b9a0 more changes
Some checks failed
Savin's Home Assistant / build (push) Failing after 9s
2025-02-07 16:26:15 -05:00
c1b0af5c68 Added a libturbojpeg0
Some checks failed
Savin's Home Assistant / build (push) Failing after 9s
2025-02-07 16:25:08 -05:00
7b47e6f7e3 more changes
Some checks failed
Savin's Home Assistant / build (push) Failing after 27s
2025-02-07 16:24:19 -05:00
3164e2e6c9 more changes
All checks were successful
Savin's Home Assistant / build (push) Successful in 1m17s
2025-02-07 16:20:39 -05:00
c77857c3fa Removed pip search
All checks were successful
Savin's Home Assistant / build (push) Successful in 1m19s
2025-02-07 16:16:26 -05:00
89ccb50117 Added a custom component
Some checks failed
Savin's Home Assistant / build (push) Failing after 14s
2025-02-07 16:15:32 -05:00
72a3f3df57 More changes
Some checks failed
Savin's Home Assistant / build (push) Failing after 4s
2025-02-07 16:12:47 -05:00
27cb5515c4 More fixes
All checks were successful
Savin's Home Assistant / build (push) Successful in 1m19s
2025-02-07 15:22:38 -05:00
106e7ab752 Fixing some dependecies 2025-02-07 15:22:38 -05:00
429cec0c1a Update secrets.sample.yaml
All checks were successful
Savin's Home Assistant / build (push) Successful in 1m13s
2025-02-07 14:58:56 -05:00
6165039cd4 Added missing dependecies 2025-02-07 14:55:57 -05:00
e3710d1c42 Fixed sample secrets.yaml
Some checks failed
Savin's Home Assistant / build (push) Failing after 1m1s
2025-02-07 14:51:23 -05:00
16fd1b3365 Some debuging
Some checks failed
Savin's Home Assistant / build (push) Failing after 37s
2025-02-07 14:39:51 -05:00
b7e50c096a Fixed missing dependencies
Some checks failed
Savin's Home Assistant / build (push) Failing after 12s
2025-02-07 14:38:21 -05:00
1b2a241b4f Some changes
Some checks failed
Savin's Home Assistant / build (push) Failing after 12s
2025-02-07 14:37:23 -05:00
1504c222cc Removed yaml linter
Some checks failed
Savin's Home Assistant / build (push) Failing after 1m5s
2025-02-07 14:35:18 -05:00
3f21a45b55 Testing new steps
Some checks failed
Savin's Home Assistant / build (push) Failing after 43s
2025-02-07 14:32:29 -05:00
5a597b7bb3 Fixed workflow
All checks were successful
Savin's Home Assistant / build (push) Successful in 35s
2025-02-07 14:29:27 -05:00
9f56b9da3b Fixing some errors 2025-02-07 14:27:14 -05:00
2d0a4d1c0c Fixed typo at the folder name 2025-02-07 14:25:29 -05:00
c6bbdbb77b Added a new github workflow 2025-02-07 14:17:46 -05:00
64 changed files with 10900 additions and 2322 deletions

74
.github/workflow/build.yaml vendored Normal file
View File

@ -0,0 +1,74 @@
---
name: "Savin's Home Assistant"
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# - name: Install Custom Components (Hass.IO)
# run: |
# sudo mkdir -p ./custom_components
# pwd
# cd /tmp
# git clone https://github.com/custom-components/sensor.unifigateway.git unifigateway
# sudo cp -r ./unifigateway/custom_components/unifigateway /home/runner/work/home-assistant-conf/home-assistant-conf/custom_components/unifigateway
# git clone https://github.com/rgruebel/ha_zigbee2mqtt_networkmap.git zigbee2mqtt_networkmap
# sudo cp -r ./zigbee2mqtt_networkmap/custom_components/zigbee2mqtt_networkmap /home/runner/work/home-assistant-conf/home-assistant-conf/custom_components/zigbee2mqtt_networkmap
# git clone https://github.com/custom-components/hacs.git hacs_temp
# cd hacs_temp
# git checkout $(git describe --tags --always $(git rev-list --tags --max-count=1000) | grep -e "[0-9]\+\.[0-9]\+\.[0-9]\+$" | head -n 1)
# cd ../
# sudo cp -r hacs_temp/custom_components/hacs hacs
# rm -R hacs_temp
# sudo cp -r ./hacs /home/runner/work/home-assistant-conf/home-assistant-conf/custom_components
- name: Install system libs and dependencies
run: |
sudo apt-get -qq update
sudo apt-get -y -qq install libudev-dev ffmpeg
sudo apt-get -y -qq install libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libswresample-dev
sudo apt-get install nodejs
- name: Install Prettier
run: |
sudo npm install --global prettier
- name: Set up Python 3.8
uses: actions/setup-python@v1
with:
python-version: 3.8
- name: Install Python packages (Lint)
run: |
python -m pip install --upgrade pip
pip install black flake8 pylint yamllint
- name: YAML Lint
run: |
yamllint ./
# - name: Prettier Check Up
# run: |
# prettier --check --no-bracket-spacing '**/*.{yaml,json}'
- name: Install Python packages (Hass.IO)
run: |
pip install yq jq
pip install homeassistant
- name: Check HassIO configuration
run: |
sudo mkdir -p /config/snapshots
hass --version
mv secrets.yaml.sample secrets.yaml
hass -c . --script check_config | tee check.output
! less check.output | grep -q "Failed config"
- name: Send a telegram message with job status
if: always()
uses: appleboy/telegram-action@master
with:
to: ${{ secrets.TELEGRAM_TO }}
token: ${{ secrets.TELEGRAM_TOKEN }}
args: The last job from repo ({{repo}}) finished with ${{job.status}}.

106
.github/workflows/build.yaml vendored Normal file
View File

@ -0,0 +1,106 @@
---
name: Savin's Home Assistant
on:
push:
branches: [develop]
paths-ignore:
- 'README.md'
# - '.github/**'
pull_request:
branches: [develop]
paths-ignore:
- 'README.md'
# - '.github/**'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Custom Components (Hass.IO)
run: |
pwd
ls -la
sudo mkdir -p ./custom_components
pwd
cd /tmp
git clone https://github.com/PiotrMachowski/Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor.git
sudo cp -r ./Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor/custom_components/xiaomi_cloud_map_extractor /workspace/alex/hassio-configuration/custom_components/xiaomi_cloud_map_extractor
# git checkout $(git describe --tags --always $(git rev-list --tags --max-count=1000) | grep -e "[0-9]\+\.[0-9]\+\.[0-9]\+$" | head -n 1)
- name: Install system libs and dependencies
run: |
sudo echo "deb [signed-by=/etc/apt/trusted.gpg.d/libjpeg-turbo.gpg] https://packagecloud.io/dcommander/libjpeg-turbo/any/ any main" > /etc/apt/sources.list.d/libjpeg-turbo.list
wget -q -O- https://packagecloud.io/dcommander/libjpeg-turbo/gpgkey | gpg --dearmor > /etc/apt/trusted.gpg.d/libjpeg-turbo.gpg
sudo apt-get -qq update
sudo apt-get -y -qq install libjpeg-turbo-official ffmpeg
# sudo apt-get -y -qq install libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libswresample-dev
# sudo apt-get install nodejs
# - name: Install Prettier
# run: |
# sudo npm install --global prettier
- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: 3.13
- name: Install Python packages (Lint)
run: |
python -m pip install --upgrade pip
pip install black flake8 pylint yamllint
# - name: YAML Lint
# run: |
# yamllint ./
# # - name: Prettier Check Up
# # run: |
# # prettier --check --no-bracket-spacing '**/*.{yaml,json}'
- name: Install Python packages (Hass.IO)
run: |
pip install yq jq
pip install colorlog
pip install homeassistant
echo "Installing crypto, requered by Component: xiaomi_cloud_map_extractor\n"
pip install pycryptodome requests python-miio pybase64 pillow
echo "Installing numpy, requered by Component: mobile_app, stream and camera\n"
pip install numpy
echo "Installing hassil, requered by Component: mobile_app\n"
pip install hassil
echo "Installing mutagen, requered by Component: mobile_app\n"
pip install mutagen
echo "Installing home_assistant_intents, requered by Component: mobile_app\n"
pip install home_assistant_intents
echo "Installing RestrictedPython, requered by Component: python_script\n"
pip install RestrictedPython
echo "Installing twilio, requered by Component: twilio\n"
pip install twilio
echo "Installing python-telegram-bot, requered by Component: telegram_bot\n"
pip install python-telegram-bot
echo "Installing pyeiscp, requered by Component: onkyo\n"
pip install pyeiscp
echo "Installing async_upnp_client, requered by Component: ssdp\n"
pip install async_upnp_client
- name: Check HassIO configuration
run: |
sudo mkdir -p /config/www
hass --version
mv secrets.sample.yaml secrets.yaml
ls -la
hass -c . --script check_config | tee check.output
# ! less check.output | grep -q "Failed config"
# # - name: Send a telegram message with job status
# # if: always()
# # uses: appleboy/telegram-action@master
# # with:
# # to: ${{ secrets.TELEGRAM_TO }}
# # token: ${{ secrets.TELEGRAM_TOKEN }}
# # args: The last job from repo ({{repo}}) finished with ${{job.status}}.

View File

@ -1,3 +1,11 @@
####################################################################################################
### ALARM CONTROL PANEL ######################################################## DEVICES ###
####################################################################################################
alarm_control_panel: !include configuration/alarm_control_panel/main.yaml
####################################################################################################
### AUTOMATION #################################################################################
####################################################################################################
automation: !include_dir_merge_list configuration/automation automation: !include_dir_merge_list configuration/automation
# Loads default set of integrations. Do not remove. # Loads default set of integrations. Do not remove.
@ -9,6 +17,8 @@ ios:
# Load frontend themes from the themes folder # Load frontend themes from the themes folder
frontend: frontend:
themes: !include_dir_merge_named themes themes: !include_dir_merge_named themes
extra_module_url:
- /local/community/bubble-card/bubble-pop-up-fix.js
script: !include scripts.yaml script: !include scripts.yaml
@ -17,6 +27,11 @@ script: !include scripts.yaml
#################################################################################################### ####################################################################################################
camera: !include_dir_merge_list configuration/camera camera: !include_dir_merge_list configuration/camera
####################################################################################################
### COUNTER #################################################################### DEVICES ###
####################################################################################################
counter: !include_dir_merge_named configuration/counter
#################################################################################################### ####################################################################################################
### FANS ####################################################################### DEVICES ### ### FANS ####################################################################### DEVICES ###
#################################################################################################### ####################################################################################################
@ -29,8 +44,8 @@ homeassistant:
elevation: !secret system_elevation elevation: !secret system_elevation
unit_system: metric unit_system: metric
time_zone: !secret system_timezone time_zone: !secret system_timezone
external_url: https://house.savin.nyc external_url: !secret systemc_url_internal
internal_url: https://house.savin.nyc internal_url: !secret systemc_url_external
#################################################################################################### ####################################################################################################
### AUTHENTICATION PROVIDERS ####################################################### AAA ### ### AUTHENTICATION PROVIDERS ####################################################### AAA ###
@ -63,6 +78,7 @@ homeassistant:
allowlist_external_dirs: allowlist_external_dirs:
# - '/config/snapshots' # - '/config/snapshots'
- '/config/www' - '/config/www'
- '/config/www/bubble'
customize: !include_dir_merge_named configuration/customize customize: !include_dir_merge_named configuration/customize
#################################################################################################### ####################################################################################################
@ -127,7 +143,7 @@ lovelace:
### CUSTOM MODULES ######################################################### RESOURCES ### ### CUSTOM MODULES ######################################################### RESOURCES ###
################################################################################################## ##################################################################################################
resources: resources:
- url: /local/community/webrtc/webrtc-camera.js - url: /local/community/ha-sankey-chart/ha-sankey-chart.js
type: module type: module
- url: /local/community/layout-card/layout-card.js - url: /local/community/layout-card/layout-card.js
type: module type: module
@ -139,38 +155,38 @@ lovelace:
type: module type: module
- url: /local/community/sidebar-card/sidebar-card.js - url: /local/community/sidebar-card/sidebar-card.js
type: module type: module
- url: /local/community/flipdown-timer-card/flipdown-timer-card.js # - url: /local/community/flipdown-timer-card/flipdown-timer-card.js
type: module # type: module
- url: /local/community/mini-media-player-card/mini-media-player-bundle.js - url: /local/community/mini-media-player-card/mini-media-player-bundle.js
type: module type: module
- url: /local/community/fold-entity-row/fold-entity-row.js # - url: /local/community/fold-entity-row/fold-entity-row.js
type: module # type: module
- url: /local/community/button-card/button-card.js - url: /local/community/button-card/button-card.js
type: module type: module
- url: /local/community/simple-thermostat-card/simple-thermostat.js - url: /local/community/simple-thermostat-card/simple-thermostat.js
type: module type: module
- url: /local/community/mushroom-card/mushroom.js - url: /local/community/mushroom-card/mushroom.js
type: module type: module
- url: /local/community/auto-entities/auto-entities.js # - url: /local/community/auto-entities/auto-entities.js
type: module # type: module
- url: /local/community/stack-in-card/stack-in-card.js - url: /local/community/stack-in-card/stack-in-card.js
type: module type: module
- url: /local/community/paper-buttons-row-card/paper-buttons-row.js - url: /local/community/paper-buttons-row-card/paper-buttons-row.js
type: module type: module
- url: /local/community/card-mod/card-mod.js - url: /local/community/card-mod/card-mod.js
type: module type: module
- url: /local/community/collapsable-cards/collapsable-cards.js # - url: /local/community/collapsable-cards/collapsable-cards.js
type: module # type: module
- url: /local/community/swipe-navigation/swipe-navigation.js # - url: /local/community/swipe-navigation/swipe-navigation.js
type: module # type: module
- url: /local/community/local-conditional-card/local-conditional-card.js # - url: /local/community/local-conditional-card/local-conditional-card.js
type: module # type: module
- url: /local/community/bubble-card/bubble-card.js - url: /local/community/bubble-card/bubble-card.js
type: module type: module
- url: /local/community/plotly-graph-card/plotly-graph-card.js - url: /local/community/plotly-graph-card/plotly-graph-card.js
type: module type: module
- url: /local/community/better-thermostat-ui-card/better-thermostat-ui-card.js # - url: /local/community/better-thermostat-ui-card/better-thermostat-ui-card.js
type: module # type: module
- url: /local/community/config-template-card/config-template-card.js - url: /local/community/config-template-card/config-template-card.js
type: module type: module
- url: /local/community/battery-state-card/battery-state-card.js - url: /local/community/battery-state-card/battery-state-card.js
@ -179,6 +195,8 @@ lovelace:
type: module type: module
- url: /local/community/sonos-card/custom-sonos-card.js - url: /local/community/sonos-card/custom-sonos-card.js
type: module type: module
- url: /local/community/custom-brand-icons/custom-brand-icons.js
type: js
# - url: /local/community/hass-bha-icons/hass-bha-icons.js # - url: /local/community/hass-bha-icons/hass-bha-icons.js
# type: js # type: js
# - url: /local/community//.js # - url: /local/community//.js
@ -187,7 +205,7 @@ lovelace:
#################################################################################################### ####################################################################################################
### MEDIA PLAYER ############################################################### DEVICES ### ### MEDIA PLAYER ############################################################### DEVICES ###
#################################################################################################### ####################################################################################################
media_player: !include_dir_merge_list configuration/media_player # media_player: !include_dir_merge_list configuration/media_player
#################################################################################################### ####################################################################################################
### NOTIFY ##################################################################### SERVICE ### ### NOTIFY ##################################################################### SERVICE ###

View File

@ -0,0 +1,28 @@
- platform: manual
name: Home Alarm
unique_id: "KqptwXAX75pU4bbvmonDS23NMNbnd3B3dxil6oADMdFXkGv3TWEUrZKv2cbFDMbb"
code: "12345"
code_arm_required: true
arming_time: 30
delay_time: 20
trigger_time: 4
arming_states:
- armed_home
- armed_night
- armed_away
- armed_vacation
disarmed:
trigger_time: 0
armed_home:
arming_time: 0
delay_time: 0
armed_night:
trigger_time: 5
armed_away:
trigger_time: 5
armed_vacation:
trigger_time: 5

View File

@ -24,10 +24,16 @@
{% if area_id(trigger.entity_id) in label_areas('bathroom') -%} {% if area_id(trigger.entity_id) in label_areas('bathroom') -%}
{{ area_entities(area_name(trigger.entity_id)) | select('match', 'fan') | list | first }} {{ area_entities(area_name(trigger.entity_id)) | select('match', 'fan') | list | first }}
{%- endif %} {%- endif %}
# - fan.bathroom_master - service: telegram_bot.send_message
- service: notify.telegram_alex data:
data_template: target: "-1002338954143"
message_thread_id: 4
message_tag: app_humidity_suppression
title: "[Home Assistant] Humidity Suppression"
message: 'Humidity suppression has started in {{ area_name(trigger.entity_id) }} ({{ area_id(trigger.entity_id) }})' message: 'Humidity suppression has started in {{ area_name(trigger.entity_id) }} ({{ area_id(trigger.entity_id) }})'
# - service: notify.telegram_alex
# data_template:
# message: 'Humidity suppression has started in {{ area_name(trigger.entity_id) }} ({{ area_id(trigger.entity_id) }})'
- id: app_humidity_suppression_off - id: app_humidity_suppression_off
alias: '[App] Humidity Suppression OFF' alias: '[App] Humidity Suppression OFF'
@ -48,7 +54,13 @@
{% if area_id(trigger.entity_id) in label_areas('bathroom') -%} {% if area_id(trigger.entity_id) in label_areas('bathroom') -%}
{{ area_entities(area_name(trigger.entity_id)) | select('match', 'fan') | list | first }} {{ area_entities(area_name(trigger.entity_id)) | select('match', 'fan') | list | first }}
{%- endif %} {%- endif %}
# - fan.bathroom_master - service: telegram_bot.send_message
- service: notify.telegram_alex data:
data_template: target: "-1002338954143"
message_thread_id: 4
message_tag: app_humidity_suppression
title: "[Home Assistant] Humidity Suppression"
message: 'Humidity suppression has done in {{ area_name(trigger.entity_id) }} ({{ area_id(trigger.entity_id) }})' message: 'Humidity suppression has done in {{ area_name(trigger.entity_id) }} ({{ area_id(trigger.entity_id) }})'
# - service: notify.telegram_alex
# data_template:
# message: 'Humidity suppression has done in {{ area_name(trigger.entity_id) }} ({{ area_id(trigger.entity_id) }})'

View File

@ -30,9 +30,16 @@
- media_player.onju_voice_04_onju_voice_04 - media_player.onju_voice_04_onju_voice_04
- media_player.onju_voice_05_onju_voice_05 - media_player.onju_voice_05_onju_voice_05
volume_level: 0.25 volume_level: 0.25
- service: notify.telegram_alex - service: telegram_bot.send_message
data_template: data:
target: "-1002338954143"
message_thread_id: 4
message_tag: night_mode_finished
title: "[Home Assistant] Night Mode"
message: 'Voice Assistant Night mode is started' message: 'Voice Assistant Night mode is started'
# - service: notify.telegram_alex
# data_template:
# message: 'Voice Assistant Night mode is started'
- id: app_va_night_mode_off - id: app_va_night_mode_off
alias: '[App] Voice Assistants Night Mode OFF' alias: '[App] Voice Assistants Night Mode OFF'
@ -57,6 +64,13 @@
- media_player.onju_voice_04_onju_voice_04 - media_player.onju_voice_04_onju_voice_04
- media_player.onju_voice_05_onju_voice_05 - media_player.onju_voice_05_onju_voice_05
volume_level: 1 volume_level: 1
- service: notify.telegram_alex - service: telegram_bot.send_message
data_template: data:
target: "-1002338954143"
message_thread_id: 4
message_tag: night_mode_finished
title: "[Home Assistant] Night Mode"
message: 'Voice Assistant Night mode is finished' message: 'Voice Assistant Night mode is finished'
# - service: notify.telegram_alex
# data_template:
# message: 'Voice Assistant Night mode is finished'

View File

@ -7,9 +7,17 @@
entity_id: binary_sensor.smoke_detector_01 entity_id: binary_sensor.smoke_detector_01
to: "on" to: "on"
action: action:
- service: notify.telegram_alex - service: telegram_bot.send_message
data_template: data:
message: "Smoke Detected" target: "-1002338954143"
message_thread_id: 3
message_tag: night_mode_finished
title: "[Home Assistant] Night Mode"
message: 'Smoke/Fire is detected'
# - service: notify.telegram_alex
# data_template:
# message: "Smoke Detected"
- id: co_detected - id: co_detected
alias: '[App] CO Detected' alias: '[App] CO Detected'
@ -19,6 +27,13 @@
entity_id: binary_sensor.carbon_monoxide_detector_01 entity_id: binary_sensor.carbon_monoxide_detector_01
to: "on" to: "on"
action: action:
- service: notify.telegram_alex - service: telegram_bot.send_message
data_template: data:
message: "CO Detected" target: "-1002338954143"
message_thread_id: 3
message_tag: night_mode_finished
title: "[Home Assistant] Night Mode"
message: 'Carbon monoxide is detected'
# - service: notify.telegram_alex
# data_template:
# message: "CO Detected"

View File

@ -0,0 +1,19 @@
---
- id: global_webhook_gitea
alias: '[Global] Webhook Gitea New Version'
initial_state: 'true'
trigger:
- platform: state
entity_id: update.home_assistant_core_update
to: 'on'
action:
- service: telegram_bot.send_message
data:
target: "-1002338954143"
message_thread_id: 3
message_tag: night_mode_finished
title: "[Home Assistant] New Version"
message: "New HA version ({{ state_attr('update.home_assistant_core_update', 'latest_version') }}) has been release"
# - service: notify.telegram_alex
# data:
# message: "New HA version ({{ state_attr('update.home_assistant_core_update', 'latest_version') }}) has been release"

View File

@ -17,9 +17,16 @@
- service: lock.lock - service: lock.lock
data: data:
entity_id: lock.lock_01 entity_id: lock.lock_01
- service: telegram_bot.send_message
data:
target: "-1002338954143"
message_thread_id: 3
message_tag: night_mode_finished
title: "[Home Assistant] Security"
message: 'Lock is being locked by automation'
# - service: persistent_notification.create # - service: persistent_notification.create
# data: # data:
# message: "Lock is being locked by automation" # message: "Lock is being locked by automation"
- service: notify.telegram_alex # - service: notify.telegram_alex
data: # data:
message: "Lock is being locked by automation" # message: "Lock is being locked by automation"

View File

@ -1,4 +1,15 @@
--- ---
# source_list: Windows 11, PlayStation 4 Pro, Nvidia Shield TV, Unifi Protect, TV/Nothing, Sonos, ChromeCast/Network, Bluetooth
# friendly_name: VSX-LX505
# supported_features: 69516
# video_out: yes,out
# video_information:
# video_input_port: No Video
# input_resolution: Unknown
#input_color_depth: 24bit
# output_resolution: Unknown
# output_color_depth: 24bit
- alias: "[Media] Projector mode" - alias: "[Media] Projector mode"
id: media_switching_to_projector_mode id: media_switching_to_projector_mode
initial_state: "true" initial_state: "true"
@ -22,24 +33,19 @@
- service: media_player.onkyo_select_hdmi_output - service: media_player.onkyo_select_hdmi_output
data: data:
entity_id: media_player.onkyo_receiver entity_id: media_player.onkyo_receiver
hdmi_output: out-sub hdmi_output: out-sub # out | out-sub | sub/both
- delay: "00:00:01" - delay: "00:00:01"
- service: button.press - service: button.press
target: target:
entity_id: entity_id:
- button.esp8266_hdmi_cec_01_turn_active_source - button.esp8266_hdmi_cec_01_turn_active_source
# - button.esp8266_hdmi_cec_01_turn_everything_off - service: telegram_bot.send_message
# - service: remote.send_command
# target:
# entity_id: remote.broadlink_rm4_mini
# data:
# device: projector_lg_hu810pw
# command:
# - "Power Off"
# - "b64:JgBYAAABII8TERMSEjcTERMRExISEhISEjYTNxISEjYTNhI2EjcTNhISEhITERM1ExITEhISExETNhI2EjcTERM2EjYTNhI3EgAFAAABIUgSAAwTAAEhRxMADQU="
- service: notify.telegram_alex
data: data:
message: "Switching to media system to the Projector mode" target: "-1002338954143"
message_thread_id: 4
message_tag: night_mode_finished
title: "[Home Assistant] Media System"
message: 'Switching to media system to the Projector mode'
- alias: "[Media] TV mode" - alias: "[Media] TV mode"
id: media_switching_to_tv_mode id: media_switching_to_tv_mode
@ -49,6 +55,10 @@
entity_id: select.living_room_harmony_hub_activities entity_id: select.living_room_harmony_hub_activities
to: "ShTV+AVR+TV" to: "ShTV+AVR+TV"
action: action:
# - service: button.press
# target:
# entity_id:
# - button.esp8266_hdmi_cec_01_turn_everything_off
- choose: - choose:
- conditions: - conditions:
- condition: state - condition: state
@ -71,9 +81,18 @@
data: data:
entity_id: media_player.onkyo_receiver entity_id: media_player.onkyo_receiver
hdmi_output: out hdmi_output: out
- service: notify.telegram_alex - delay: "00:00:01"
- service: button.press
target:
entity_id:
- button.esp8266_hdmi_cec_02_turn_active_source
- service: telegram_bot.send_message
data: data:
message: "Switching to media system to the TV mode" target: "-1002338954143"
message_thread_id: 4
message_tag: night_mode_finished
title: "[Home Assistant] Media System"
message: 'Switching to media system to the TV mode'
- alias: "[Media] Off mode" - alias: "[Media] Off mode"
id: media_switching_off id: media_switching_off
@ -86,6 +105,18 @@
- service: cover.close_cover - service: cover.close_cover
data: data:
entity_id: cover.motor_01 entity_id: cover.motor_01
- service: notify.telegram_alex - service: button.press
target:
entity_id:
- button.esp8266_hdmi_cec_01_turn_everything_off
- service: button.press
target:
entity_id:
- button.esp8266_hdmi_cec_02_turn_everything_off
- service: telegram_bot.send_message
data: data:
message: "Switching off media system" target: "-1002338954143"
message_thread_id: 4
message_tag: night_mode_finished
title: "[Home Assistant] Media System"
message: 'Switching OFF media system'

View File

@ -1,47 +1,7 @@
--- ---
- alias: '[Frigate] Person enters Driveway Zone'
trigger:
platform: mqtt
topic: frigate/events
condition:
condition: and
conditions:
- condition: template
value_template: "{{ trigger.payload_json['after']['label'] == 'person' }}"
- condition: template
value_template: "{{ 'zone_driveway' in trigger.payload_json['after']['entered_zones'] }}"
action:
- service: notify.telegram_alex
data:
message: "A {{trigger.payload_json['after']['label']}} has entered the yard."
data:
photo:
- url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
# caption: "{{trigger.payload_json['after']['id']}}"
- alias: '[Frigate] Person leaves Driveway Zone'
trigger:
platform: mqtt
topic: frigate/events
condition:
condition: and
conditions:
- condition: template
value_template: "{{ trigger.payload_json['after']['label'] == 'person' }}"
- condition: template
value_template: "{{ 'zone_driveway' in trigger.payload_json['before']['current_zones'] }}"
- condition: template
value_template: "{{ not 'zone_driveway' in trigger.payload_json['after']['current_zones'] }}"
action:
- service: notify.telegram_alex
data:
message: "A {{trigger.payload_json['after']['label']}} has left the yard."
data:
photo:
- url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
# caption: "{{trigger.payload_json['after']['id']}}"
- alias: '[Frigate] Person detected by Doorbell camera' - alias: '[Frigate] Person detected by Doorbell camera'
mode: parallel
max: 10
trigger: trigger:
platform: mqtt platform: mqtt
topic: frigate/events topic: frigate/events
@ -53,10 +13,309 @@
- condition: template - condition: template
value_template: "{{ trigger.payload_json['after']['camera'] == 'doorbell' }}" value_template: "{{ trigger.payload_json['after']['camera'] == 'doorbell' }}"
action: action:
- service: notify.telegram_alex - service: telegram_bot.send_photo
data_template:
message: 'Person detected by Doorbell camera'
data: data:
photo: target: "-1002338954143"
- url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg" message_thread_id: 2
# caption: "{{trigger.payload_json['after']['id']}}" message_tag: frigate
caption: "Person detected by Doorbell camera"
url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
- alias: '[Frigate] Person detected by Doorbell camera (Face)'
mode: parallel
max: 10
trigger:
platform: mqtt
topic: frigate/events
condition:
condition: and
conditions:
- condition: template
value_template: "{{ trigger.payload_json['after']['label'] == 'face' }}"
- condition: template
value_template: "{{ trigger.payload_json['after']['camera'] == 'doorbell' }}"
action:
- service: telegram_bot.send_photo
data:
target: "-1002338954143"
message_thread_id: 2
message_tag: frigate
caption: "Person (Face) detected by Doorbell camera"
url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
- alias: '[Frigate] License plate detected by Doorbell camera'
mode: parallel
max: 10
trigger:
platform: mqtt
topic: frigate/events
condition:
condition: and
conditions:
- condition: template
value_template: "{{ trigger.payload_json['after']['label'] == 'license_plate' }}"
- condition: template
value_template: "{{ trigger.payload_json['after']['camera'] == 'doorbell' }}"
action:
- service: telegram_bot.send_photo
data:
target: "-1002338954143"
message_thread_id: 2
message_tag: frigate
caption: "License plate detected by Doorbell camera"
url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
#- alias: '[Frigate] Car detected by Doorbell camera'
# trigger:
# platform: mqtt
# topic: frigate/events
# condition:
# condition: and
# conditions:
# - condition: template
# value_template: "{{ trigger.payload_json['after']['label'] == 'car' }}"
# - condition: template
# value_template: "{{ trigger.payload_json['after']['camera'] == 'doorbell' }}"
# action:
# - service: telegram_bot.send_photo
# data:
# target: "-1002338954143"
# message_thread_id: 2
# message_tag: frigate
# caption: "Car detected by Doorbell camera"
# url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
- alias: '[Frigate] Person enters Driveway Zone'
mode: parallel
max: 10
trigger:
platform: mqtt
topic: frigate/events
condition:
condition: and
conditions:
- condition: template
value_template: "{{ trigger.payload_json['after']['label'] == 'person' }}"
- condition: template
value_template: "{{ 'zone-frontyard-driveway-1' in trigger.payload_json['after']['entered_zones'] }}"
action:
- service: telegram_bot.send_photo
data:
target: "-1002338954143"
message_thread_id: 2
message_tag: frigate
caption: "A {{trigger.payload_json['after']['label']}} has entered the driveway."
url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
- alias: '[Frigate] Person leaves Driveway Zone'
mode: parallel
max: 10
trigger:
platform: mqtt
topic: frigate/events
condition:
condition: and
conditions:
- condition: template
value_template: "{{ trigger.payload_json['after']['label'] == 'person' }}"
- condition: template
value_template: "{{ 'zone-frontyard-driveway-1' in trigger.payload_json['before']['current_zones'] }}"
- condition: template
value_template: "{{ not 'zone-frontyard-driveway-1' in trigger.payload_json['after']['current_zones'] }}"
action:
- service: telegram_bot.send_photo
data:
target: "-1002338954143"
message_thread_id: 2
message_tag: frigate
caption: "A {{trigger.payload_json['after']['label']}} has left the yard."
url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
- alias: '[Frigate] Person enters Frontyard Property Zone'
mode: parallel
max: 10
trigger:
platform: mqtt
topic: frigate/events
condition:
condition: and
conditions:
- condition: template
value_template: "{{ trigger.payload_json['after']['label'] == 'person' }}"
- condition: template
value_template: "{{ 'zone-frontyard-property-1' in trigger.payload_json['after']['entered_zones'] }}"
action:
- service: telegram_bot.send_photo
data:
target: "-1002338954143"
message_thread_id: 2
message_tag: frigate
caption: "A {{trigger.payload_json['after']['label']}} has entered the frontyard."
url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
- alias: '[Frigate] Person leaves Frontyard Property Zone'
mode: parallel
max: 10
trigger:
platform: mqtt
topic: frigate/events
condition:
condition: and
conditions:
- condition: template
value_template: "{{ trigger.payload_json['after']['label'] == 'person' }}"
- condition: template
value_template: "{{ 'zone-frontyard-property-1' in trigger.payload_json['before']['current_zones'] }}"
- condition: template
value_template: "{{ not 'zone-frontyard-property-1' in trigger.payload_json['after']['current_zones'] }}"
action:
- service: telegram_bot.send_photo
data:
target: "-1002338954143"
message_thread_id: 2
message_tag: frigate
caption: "A {{trigger.payload_json['after']['label']}} has left the frontyard."
url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
- alias: '[Frigate] Person enters Side 1 Property Zone'
mode: parallel
max: 10
trigger:
platform: mqtt
topic: frigate/events
condition:
condition: and
conditions:
- condition: template
value_template: "{{ trigger.payload_json['after']['label'] == 'person' }}"
- condition: template
value_template: "{{ 'zone-side1-property-1' in trigger.payload_json['after']['entered_zones'] }}"
action:
- service: telegram_bot.send_photo
data:
target: "-1002338954143"
message_thread_id: 2
message_tag: frigate
caption: "A {{trigger.payload_json['after']['label']}} has entered the side 1."
url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
- alias: '[Frigate] Person leaves Side 1 Property Zone'
mode: parallel
max: 10
trigger:
platform: mqtt
topic: frigate/events
condition:
condition: and
conditions:
- condition: template
value_template: "{{ trigger.payload_json['after']['label'] == 'person' }}"
- condition: template
value_template: "{{ 'zone-side1-property-1' in trigger.payload_json['before']['current_zones'] }}"
- condition: template
value_template: "{{ not 'zone-side1-property-1' in trigger.payload_json['after']['current_zones'] }}"
action:
- service: telegram_bot.send_photo
data:
target: "-1002338954143"
message_thread_id: 2
message_tag: frigate
caption: "A {{trigger.payload_json['after']['label']}} has left the side 1."
url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
- alias: '[Frigate] Person enters Side 2 Property Zone'
mode: parallel
max: 10
trigger:
platform: mqtt
topic: frigate/events
condition:
condition: and
conditions:
- condition: template
value_template: "{{ trigger.payload_json['after']['label'] == 'person' }}"
- condition: template
value_template: "{{ 'zone-side2-property-1' in trigger.payload_json['after']['entered_zones'] }}"
action:
- service: telegram_bot.send_photo
data:
target: "-1002338954143"
message_thread_id: 2
message_tag: frigate
caption: "A {{trigger.payload_json['after']['label']}} has entered the side 2."
url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
- alias: '[Frigate] Person leaves Side 2 Property Zone'
mode: parallel
max: 10
trigger:
platform: mqtt
topic: frigate/events
condition:
condition: and
conditions:
- condition: template
value_template: "{{ trigger.payload_json['after']['label'] == 'person' }}"
- condition: template
value_template: "{{ 'zone-side2-property-1' in trigger.payload_json['before']['current_zones'] }}"
- condition: template
value_template: "{{ not 'zone-side2-property-1' in trigger.payload_json['after']['current_zones'] }}"
action:
- service: telegram_bot.send_photo
data:
target: "-1002338954143"
message_thread_id: 2
message_tag: frigate
caption: "A {{trigger.payload_json['after']['label']}} has left the side 2."
url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
#- alias: '[Frigate] Car enters Driveway Zone'
# trigger:
# platform: mqtt
# topic: frigate/events
# condition:
# condition: and
# conditions:
# - condition: template
# value_template: "{{ trigger.payload_json['after']['label'] == 'car' }}"
# - condition: template
# value_template: "{{ 'zone-frontyard-driveway-1' in trigger.payload_json['after']['entered_zones'] }}"
# action:
# - service: telegram_bot.send_photo
# data:
# target: "-1002338954143"
# message_thread_id: 2
# message_tag: frigate
# caption: "A {{trigger.payload_json['after']['label']}} has entered the driveway."
# url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
#- alias: '[Frigate] Car leaves Driveway Zone'
# trigger:
# platform: mqtt
# topic: frigate/events
# condition:
# condition: and
# conditions:
# - condition: template
# value_template: "{{ trigger.payload_json['after']['label'] == 'car' }}"
# - condition: template
# value_template: "{{ 'zone-frontyard-driveway-1' in trigger.payload_json['before']['current_zones'] }}"
# - condition: template
# value_template: "{{ not 'zone-frontyard-driveway-1' in trigger.payload_json['after']['current_zones'] }}"
# action:
# - service: telegram_bot.send_photo
# data:
# target: "-1002338954143"
# message_thread_id: 2
# message_tag: frigate
# caption: "A {{trigger.payload_json['after']['label']}} has left the yard."
# url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
# - service: notify.telegram_alex
# data:
# message: "A {{trigger.payload_json['after']['label']}} has entered the yard."
# data:
# photo:
# - url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
# # caption: "{{trigger.payload_json['after']['id']}}"

View File

@ -0,0 +1,86 @@
---
- alias: '[Frigate] Person enters Driveway Zone'
trigger:
platform: mqtt
topic: frigate/events
condition:
condition: and
conditions:
- condition: template
value_template: "{{ trigger.payload_json['after']['label'] == 'person' }}"
- condition: template
value_template: "{{ 'zone_driveway' in trigger.payload_json['after']['entered_zones'] }}"
action:
- service: telegram_bot.send_photo
data:
target: "-1002338954143"
message_thread_id: 2
message_tag: frigate
caption: "A {{trigger.payload_json['after']['label']}} has entered the driveway."
url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
# - service: notify.telegram_alex
# data:
# message: "A {{trigger.payload_json['after']['label']}} has entered the yard."
# data:
# photo:
# - url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
# # caption: "{{trigger.payload_json['after']['id']}}"
- alias: '[Frigate] Person leaves Driveway Zone'
trigger:
platform: mqtt
topic: frigate/events
condition:
condition: and
conditions:
- condition: template
value_template: "{{ trigger.payload_json['after']['label'] == 'person' }}"
- condition: template
value_template: "{{ 'zone_driveway' in trigger.payload_json['before']['current_zones'] }}"
- condition: template
value_template: "{{ not 'zone_driveway' in trigger.payload_json['after']['current_zones'] }}"
action:
- service: telegram_bot.send_photo
data:
target: "-1002338954143"
message_thread_id: 2
message_tag: frigate
caption: "A {{trigger.payload_json['after']['label']}} has left the yard."
url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
# - service: notify.telegram_alex
# data:
# message: "A {{trigger.payload_json['after']['label']}} has left the driveway."
# data:
# photo:
# - url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
# # caption: "{{trigger.payload_json['after']['id']}}"
- alias: '[Frigate] Person detected by Doorbell camera'
trigger:
platform: mqtt
topic: frigate/events
condition:
condition: and
conditions:
- condition: template
value_template: "{{ trigger.payload_json['after']['label'] == 'person' }}"
- condition: template
value_template: "{{ trigger.payload_json['after']['camera'] == 'doorbell' }}"
action:
- service: telegram_bot.send_photo
data:
target: "-1002338954143"
message_thread_id: 2
message_tag: frigate
caption: "Person detected by Doorbell camera"
url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
# - service: notify.telegram_alex
# data_template:
# message: 'Person detected by Doorbell camera'
# data:
# photo:
# - url: "https://objects.savin.nyc/api/events/{{trigger.payload_json['after']['id']}}/thumbnail.jpg"
# # caption: "{{trigger.payload_json['after']['id']}}"

View File

@ -0,0 +1,45 @@
---
- id: notification_washer_changed_status
alias: '[Notification] Washer changed status'
initial_state: 'true'
trigger:
platform: state
entity_id: sensor.washtower_washer_current_status
action:
- service: telegram_bot.send_message
data:
target: "-1002338954143"
message_thread_id: 4
message_tag: kitchen_appliances
title: "[Home Assistant] Laundry is finished"
message: 'Washer changes status to {{ trigger.to_state.state }}'
- id: notification_dryer_changed_status
alias: '[Notification] Dryer changed status'
initial_state: 'true'
trigger:
platform: state
entity_id: sensor.washtower_dryer_current_status
action:
- service: telegram_bot.send_message
data:
target: "-1002338954143"
message_thread_id: 4
message_tag: kitchen_appliances
title: "[Home Assistant] Dryer changed status"
message: 'Dryer changes status to {{ trigger.to_state.state }}'
- id: notification_dishwasher_changed_status
alias: '[Notification] Dishwasher changed status'
initial_state: 'true'
trigger:
platform: state
entity_id: sensor.dishwasher_current_status
action:
- service: telegram_bot.send_message
data:
target: "-1002338954143"
message_thread_id: 4
message_tag: kitchen_appliances
title: "[Home Assistant] Dishwasher changed status"
message: 'Dishwasher changes status to {{ trigger.to_state.state }}'

View File

@ -14,9 +14,17 @@
- condition: template - condition: template
value_template: "{{ states('sensor.lock_01_alarm_type') | int == 0 }}" value_template: "{{ states('sensor.lock_01_alarm_type') | int == 0 }}"
action: action:
- service: notify.telegram_alex - service: telegram_bot.send_message
data: data:
message: "Someone entered the wrong code" target: "-1002338954143"
message_thread_id: 3
message_tag: night_mode_finished
title: "[Home Assistant] Security"
message: 'Someone entered the wrong code'
# - service: notify.telegram_alex
# data:
# message: "Someone entered the wrong code"
# - service: notify.mobile_app_alex_google_pixel_7_pro # - service: notify.mobile_app_alex_google_pixel_7_pro
# data: # data:
# message: Someone entered the wrong code # message: Someone entered the wrong code

View File

@ -0,0 +1,5 @@
bedroom_master_cat_counter:
name: "Master Bedroom (Cat Counter)"
icon: mdi:cat
initial: 0
step: 1

View File

@ -0,0 +1,5 @@
bedroom_maxim_cat_counter:
name: "Maxim Bedroom (Cta Counter)"
icon: mdi:cat
initial: 0
step: 1

View File

@ -0,0 +1,5 @@
bedroom_olivia_cat_counter:
name: "Olivia Bedroom (Cat Counter)"
icon: mdi:cat
initial: 0
step: 1

View File

@ -0,0 +1,5 @@
garage_cat_counter:
name: "Garage (Cat Counter)"
icon: mdi:cat
initial: 0
step: 1

View File

@ -0,0 +1,5 @@
kitchen_cat_counter:
name: "Kitchen (Cat Counter)"
icon: mdi:cat
initial: 0
step: 1

View File

@ -0,0 +1,5 @@
living_room_cat_counter:
name: "Living Room (Cat Counter)"
icon: mdi:cat
initial: 0
step: 1

View File

@ -0,0 +1,5 @@
stairwell_cat_counter:
name: "Stairwell (Cat Counter)"
icon: mdi:cat
initial: 0
step: 1

View File

@ -0,0 +1,5 @@
bedroom_master_people_counter:
name: "Master Bedroom (People Counter)"
icon: mdi:account-multiple
initial: 0
step: 1

View File

@ -0,0 +1,5 @@
bedroom_maxim_people_counter:
name: "Maxim Bedroom (People Counter)"
icon: mdi:account-multiple
initial: 0
step: 1

View File

@ -0,0 +1,5 @@
bedroom_olivia_people_counter:
name: "Olivia Bedroom (People Counter)"
icon: mdi:account-multiple
initial: 0
step: 1

View File

@ -0,0 +1,5 @@
garage_people_counter:
name: "Garage (People Counter)"
icon: mdi:account-multiple
initial: 0
step: 1

View File

@ -0,0 +1,5 @@
kitchen_people_counter:
name: "Kitchen (People Counter)"
icon: mdi:account-multiple
initial: 0
step: 1

View File

@ -0,0 +1,5 @@
living_room_people_counter:
name: "Living Room (People Counter)"
icon: mdi:account-multiple
initial: 0
step: 1

View File

@ -0,0 +1,5 @@
stairwell_people_counter:
name: "Stairwell (People Counter)"
icon: mdi:account-multiple
initial: 0
step: 1

View File

@ -0,0 +1,22 @@
# ---
# - platform: onkyo
# # name: "Pioneer VSX-LX505"
# host: 10.10.12.100
# sources:
# "dvd": "Nvidia Shield TV"
# "game": "PlayStation 4 Pro"
# "cbl": "Windows 11"
# "strm-box": "Unifi Protect"
# "tv": "TV/Nothing"
# "net": "ChromeCast/Network"
# "bluetooth": "Bluetooth"
# "cd": "Sonos"
# #action: media_player.onkyo_select_hdmi_output
# #data:
# # entity_id: media_player.onkyo_receiver
# # hdmi_output: out-sub
# # out - Main
# # sub - M+S
# # out-sub - Sub

View File

@ -1,22 +0,0 @@
---
- platform: onkyo
# name: "Pioneer VSX-LX505"
host: 10.10.12.100
sources:
"dvd": "Nvidia Shield TV"
"game": "PlayStation 4 Pro"
"cbl": "Windows 11"
"strm-box": "Unifi Protect"
"tv": "TV/Nothing"
"net": "ChromeCast/Network"
"bluetooth": "Bluetooth"
"cd": "Sonos"
#action: media_player.onkyo_select_hdmi_output
#data:
# entity_id: media_player.onkyo_receiver
# hdmi_output: out-sub
# out - Main
# sub - M+S
# out-sub - Sub

View File

@ -28,57 +28,242 @@ sensor:
state_topic: "zigbee02/bridge/state" state_topic: "zigbee02/bridge/state"
icon: mdi:router-wireless icon: mdi:router-wireless
# - name: '' # {"model":"Acurite-Atlas","id":409,"channel":"A","sequence_num":0,"battery_ok":1,"message_type":37,"wind_avg_km_h":0,"temperature_C":2.77778,"humidity":45,"strike_count":14,"strike_distance":0,"exception":0,"raw_msg":"c199650006822d03c037","protocol":"Acurite 592TXR Temp/Humidity, 592TX Temp, 5n1 Weather Station, 6045 Lightning, 899 Rain, 3N1, Atlas","rssi":-77,"duration":152997}
# unique_id: # {"model":"Acurite-Atlas","id":409,"channel":"A","sequence_num":0,"battery_ok":1,"message_type":38,"wind_avg_km_h":4.82803,"wind_dir_deg":280,"rain_mm":60.706,"strike_count":14,"strike_distance":0,"exception":0,"raw_msg":"c199668148e16f03c09c80","protocol":"Acurite 592TXR Temp/Humidity, 592TX Temp, 5n1 Weather Station, 6045 Lightning, 899 Rain, 3N1, Atlas","rssi":-77,"duration":155997}
# device: # {"model":"Acurite-Atlas","id":409,"channel":"A","sequence_num":0,"battery_ok":1,"message_type":39,"wind_avg_km_h":0,"uv":1,"lux":12710,"strike_count":14,"strike_distance":0,"exception":0,"raw_msg":"c199e70081097703c005","protocol":"Acurite 592TXR Temp/Humidity, 592TX Temp, 5n1 Weather Station, 6045 Lightning, 899 Rain, 3N1, Atlas","rssi":-79,"duration":151996}
# state_topic: 'rtl433-01/RTL_433_ESP_OOK/RTL_433toMQTT/Acurite-Atlas/A/409'
# json_attributes_topic
# suggested_display_precision: 1
# unit_of_measurement: "°C"
# value_template: "{{ value_json.temperature }}"
# availability:
# - topic: "home/sensor1/status"
# payload_available: "online"
# payload_not_available: "offline"
#
#{"model":"Acurite-Atlas","id":409,"channel":"A","sequence_num":0,"battery_ok":1,"message_type":39,"wind_avg_km_h":0,"uv":1,"lux":12710,"strike_count":14,"strike_distance":0,"exception":0,"raw_msg":"c199e70081097703c005","protocol":"Acurite 592TXR Temp/Humidity, 592TX Temp, 5n1 Weather Station, 6045 Lightning, 899 Rain, 3N1, Atlas","rssi":-79,"duration":151996}
# - name: "Outdoor Temp" # {"stat_t":"+/+/RTL_433toMQTT/Acurite-Atlas/A/409","dev_cla":"signal_strength","unit_of_meas":"dB","name":"RSSI","uniq_id":"Acurite-Atlas-A-409-rssi","val_tpl":"{{ value_json.rssi | is_defined }}","stat_cla":"measurement","device":{"ids":["Acurite-Atlas-A-409"],"cns":[["mac","Acurite-Atlas-A-409"]],"mdl":"Acurite-Atlas","name":"Acurite-Atlas-A-409","via_device":"RTL_433_ESP_OOK"}}
# state_topic: "rtl433/ESP32-RTL-433-01/RTL_433toMQTT/Acurite-Atlas/A/409" - name: 'RSSI'
# unit_of_measurement: '°C' unique_id: 'Acurite-Atlas-409-A-Strike-RSSI'
# value_template: > state_topic: 'rtl433-01/RTL_433_ESP_OOK/RTL_433toMQTT/Acurite-Atlas/A/409'
# {% if value_json is defined and value_json.message_type == 37 %} value_template: "{{ value_json.rssi | is_defined }}"
# {{ value_json.temperature_C }} unit_of_measurement: "dB"
# {% else %} device_class: "signal_strength"
# {{ states('sensor.outdoor_temp') }} device:
# {% endif %} via_device: RTL_433_ESP_OOK
# model: Acurite-Atlas
# - name: "Outdoor Humidity" identifiers:
# state_topic: "rtl433/ESP32-RTL-433-01/RTL_433toMQTT/Acurite-Atlas/A/409" - Acurite-Atlas-A-409
# unit_of_measurement: '%' connections:
# value_template: > - - mac
# {% if value_json is defined and value_json.message_type == 37 %} - Acurite-Atlas-A-409
# {{ value_json.humidity }} name: Acurite-Atlas-A-409
# {% else %} availability:
# {{ states('sensor.outdoor_humidity') }} - topic: "rtl433-01/RTL_433_ESP_OOK/LWT"
# {% endif %} payload_available: "online"
# payload_not_available: "offline"
# - name: "Outdoor UV"
# state_topic: "rtl433/ESP32-RTL-433-01/RTL_433toMQTT/Acurite-Atlas/A/409" # {"stat_t":"+/+/RTL_433toMQTT/Acurite-Atlas/A/409","dev_cla":"temperature","unit_of_meas":"°C","name":"Temperature","uniq_id":"Acurite-Atlas-A-409-temperature_C","val_tpl":"{{ value_json.temperature_C | is_defined }}","stat_cla":"measurement","device":{"ids":["Acurite-Atlas-A-409"],"cns":[["mac","Acurite-Atlas-A-409"]],"mdl":"Acurite-Atlas","name":"Acurite-Atlas-A-409","via_device":"RTL_433_ESP_OOK"}}
# unit_of_measurement: 'UV' - name: 'Temperature'
# value_template: > unique_id: 'Acurite-Atlas-409-A-Strike-Temperature'
# {% if value_json is defined and value_json.message_type == 39 %} state_topic: 'rtl433-01/RTL_433_ESP_OOK/RTL_433toMQTT/Acurite-Atlas/A/409'
# {{ value_json.uv }} value_template: "{{ value_json.temperature_C | is_defined }}"
# {% else %} unit_of_measurement: "°C"
# {{ states('sensor.outdoor_uv') }} device_class: "temperature"
# {% endif %} device:
# via_device: RTL_433_ESP_OOK
# - name: "Outdoor LUX" model: Acurite-Atlas
# state_topic: "rtl433/ESP32-RTL-433-01/RTL_433toMQTT/Acurite-Atlas/A/409" identifiers:
# unit_of_measurement: 'lx' - Acurite-Atlas-A-409
# value_template: > connections:
# {% if value_json is defined and value_json.message_type == 39 %} - - mac
# {{ value_json.lux }} - Acurite-Atlas-A-409
# {% else %} name: Acurite-Atlas-A-409
# {{ states('sensor.outdoor_lux') }} availability:
# {% endif %} - topic: "rtl433-01/RTL_433_ESP_OOK/LWT"
payload_available: "online"
payload_not_available: "offline"
# {"stat_t":"+/+/RTL_433toMQTT/Acurite-Atlas/A/409","dev_cla":"humidity","unit_of_meas":"%","name":"Humidity","uniq_id":"Acurite-Atlas-A-409-humidity","val_tpl":"{{ value_json.humidity | is_defined }}","stat_cla":"measurement","device":{"ids":["Acurite-Atlas-A-409"],"cns":[["mac","Acurite-Atlas-A-409"]],"mdl":"Acurite-Atlas","name":"Acurite-Atlas-A-409","via_device":"RTL_433_ESP_OOK"}}
- name: 'Humidity'
unique_id: 'Acurite-Atlas-409-A-Strike-Humidity'
state_topic: 'rtl433-01/RTL_433_ESP_OOK/RTL_433toMQTT/Acurite-Atlas/A/409'
value_template: "{{ value_json.humidity | is_defined }}"
unit_of_measurement: "%"
state_class: "measurement"
device_class: "precipitation"
device:
via_device: RTL_433_ESP_OOK
model: Acurite-Atlas
identifiers:
- Acurite-Atlas-A-409
connections:
- - mac
- Acurite-Atlas-A-409
name: Acurite-Atlas-A-409
availability:
- topic: "rtl433-01/RTL_433_ESP_OOK/LWT"
payload_available: "online"
payload_not_available: "offline"
# {"stat_t":"+/+/RTL_433toMQTT/Acurite-Atlas/A/409","dev_cla":"wind_speed","unit_of_meas":"km/h","name":"Wind average","uniq_id":"Acurite-Atlas-A-409-wind_avg_km_h","val_tpl":"{{ value_json.wind_avg_km_h | is_defined }}","stat_cla":"measurement","device":{"ids":["Acurite-Atlas-A-409"],"cns":[["mac","Acurite-Atlas-A-409"]],"mdl":"Acurite-Atlas","name":"Acurite-Atlas-A-409","via_device":"RTL_433_ESP_OOK"}}
- name: 'Wind Speed (Average)'
unique_id: 'Acurite-Atlas-409-A-Wind-Speed'
state_topic: 'rtl433-01/RTL_433_ESP_OOK/RTL_433toMQTT/Acurite-Atlas/A/409'
value_template: "{{ value_json.wind_avg_km_h | is_defined }}"
state_class: "measurement"
unit_of_measurement: "km/h"
device_class: "wind_speed"
device:
via_device: RTL_433_ESP_OOK
model: Acurite-Atlas
identifiers:
- Acurite-Atlas-A-409
connections:
- - mac
- Acurite-Atlas-A-409
name: Acurite-Atlas-A-409
availability:
- topic: "rtl433-01/RTL_433_ESP_OOK/LWT"
payload_available: "online"
payload_not_available: "offline"
# {"stat_t":"+/+/RTL_433toMQTT/Acurite-Atlas/A/409","unit_of_meas":"°","name":"Wind direction","uniq_id":"Acurite-Atlas-A-409-wind_dir_deg","val_tpl":"{{ value_json.wind_dir_deg | is_defined }}","stat_cla":"measurement","device":{"ids":["Acurite-Atlas-A-409"],"cns":[["mac","Acurite-Atlas-A-409"]],"mdl":"Acurite-Atlas","name":"Acurite-Atlas-A-409","via_device":"RTL_433_ESP_OOK"}}
- name: 'Wind Direction'
unique_id: 'Acurite-Atlas-409-A-Wind-Direction'
state_topic: 'rtl433-01/RTL_433_ESP_OOK/RTL_433toMQTT/Acurite-Atlas/A/409'
value_template: "{{ value_json.wind_dir_deg | is_defined }}"
state_class: measurement
unit_of_measurement: "°"
device:
via_device: RTL_433_ESP_OOK
model: Acurite-Atlas
identifiers:
- Acurite-Atlas-A-409
connections:
- - mac
- Acurite-Atlas-A-409
name: Acurite-Atlas-A-409
availability:
- topic: "rtl433-01/RTL_433_ESP_OOK/LWT"
payload_available: "online"
payload_not_available: "offline"
# {"stat_t":"+/+/RTL_433toMQTT/Acurite-Atlas/A/409","dev_cla":"precipitation","unit_of_meas":"mm","name":"Rain","uniq_id":"Acurite-Atlas-A-409-rain_mm","val_tpl":"{{ value_json.rain_mm | is_defined }}","stat_cla":"measurement","device":{"ids":["Acurite-Atlas-A-409"],"cns":[["mac","Acurite-Atlas-A-409"]],"mdl":"Acurite-Atlas","name":"Acurite-Atlas-A-409","via_device":"RTL_433_ESP_OOK"}}
- name: 'Rain'
unique_id: 'Acurite-Atlas-409-A-Rain-MM'
state_topic: 'rtl433-01/RTL_433_ESP_OOK/RTL_433toMQTT/Acurite-Atlas/A/409'
value_template: "{{ value_json.rain_mm | is_defined }}"
state_class: "measurement"
unit_of_measurement: "mm"
device_class: "precipitation"
device:
via_device: RTL_433_ESP_OOK
model: Acurite-Atlas
identifiers:
- Acurite-Atlas-A-409
connections:
- - mac
- Acurite-Atlas-A-409
name: Acurite-Atlas-A-409
availability:
- topic: "rtl433-01/RTL_433_ESP_OOK/LWT"
payload_available: "online"
payload_not_available: "offline"
# {"stat_t":"+/+/RTL_433toMQTT/Acurite-Atlas/A/409","name":"UV","uniq_id":"Acurite-Atlas-A-409-uv","val_tpl":"{{ value_json.uv | is_defined }}","stat_cla":"measurement","device":{"ids":["Acurite-Atlas-A-409"],"cns":[["mac","Acurite-Atlas-A-409"]],"mdl":"Acurite-Atlas","name":"Acurite-Atlas-A-409","via_device":"RTL_433_ESP_OOK"}}
- name: 'UV'
unique_id: 'Acurite-Atlas-409-A-UV'
state_topic: 'rtl433-01/RTL_433_ESP_OOK/RTL_433toMQTT/Acurite-Atlas/A/409'
value_template: "{{ value_json.uv | is_defined }}"
state_class: "measurement"
device:
via_device: RTL_433_ESP_OOK
model: Acurite-Atlas
identifiers:
- Acurite-Atlas-A-409
connections:
- - mac
- Acurite-Atlas-A-409
name: Acurite-Atlas-A-409
availability:
- topic: "rtl433-01/RTL_433_ESP_OOK/LWT"
payload_available: "online"
payload_not_available: "offline"
# {"stat_t":"+/+/RTL_433toMQTT/Acurite-Atlas/A/409","dev_cla":"illuminance","unit_of_meas":"lx","name":"Illuminance","uniq_id":"Acurite-Atlas-A-409-lux","val_tpl":"{{ value_json.lux | is_defined }}","stat_cla":"measurement","device":{"ids":["Acurite-Atlas-A-409"],"cns":[["mac","Acurite-Atlas-A-409"]],"mdl":"Acurite-Atlas","name":"Acurite-Atlas-A-409","via_device":"RTL_433_ESP_OOK"}}
- name: 'Illuminance'
unique_id: 'Acurite-Atlas-409-A-LUX'
state_topic: 'rtl433-01/RTL_433_ESP_OOK/RTL_433toMQTT/Acurite-Atlas/A/409'
json_attributes_topic: 'rtl433-01/RTL_433_ESP_OOK/RTL_433toMQTT/Acurite-Atlas/A/409'
value_template: "{{ value_json.lux | is_defined }}"
state_class: "measurement"
unit_of_measurement: "lx"
device_class: "illuminance"
device:
via_device: RTL_433_ESP_OOK
model: Acurite-Atlas
identifiers:
- Acurite-Atlas-A-409
connections:
- - mac
- Acurite-Atlas-A-409
name: Acurite-Atlas-A-409
availability:
- topic: "rtl433-01/RTL_433_ESP_OOK/LWT"
payload_available: "online"
payload_not_available: "offline"
# {"stat_t":"+/+/RTL_433toMQTT/Acurite-Atlas/A/409","name":"Strike count","uniq_id":"Acurite-Atlas-A-409-strike_count","val_tpl":"{{ value_json.strike_count | is_defined }}","pl_on":"1","pl_off":"0","stat_cla":"total_increasing","device":{"ids":["Acurite-Atlas-A-409"],"cns":[["mac","Acurite-Atlas-A-409"]],"mdl":"Acurite-Atlas","name":"Acurite-Atlas-A-409","via_device":"RTL_433_ESP_OOK"}}
- name: 'Strike Count'
unique_id: 'Acurite-Atlas-409-A-Strike-Count'
state_topic: 'rtl433-01/RTL_433_ESP_OOK/RTL_433toMQTT/Acurite-Atlas/A/409'
json_attributes_topic: 'rtl433-01/RTL_433_ESP_OOK/RTL_433toMQTT/Acurite-Atlas/A/409'
value_template: "{{ value_json.strike_count | is_defined }}"
state_class: "total_increasing"
device:
via_device: RTL_433_ESP_OOK
model: Acurite-Atlas
identifiers:
- Acurite-Atlas-A-409
connections:
- - mac
- Acurite-Atlas-A-409
name: Acurite-Atlas-A-409
availability:
- topic: "rtl433-01/RTL_433_ESP_OOK/LWT"
payload_available: "online"
payload_not_available: "offline"
# {"stat_t":"+/+/RTL_433toMQTT/Acurite-Atlas/A/409","dev_cla":"distance","name":"Strike distance","uniq_id":"Acurite-Atlas-A-409-strike_distance","val_tpl":"{{ value_json.strike_distance | is_defined }}","stat_cla":"measurement","device":{"ids":["Acurite-Atlas-A-409"],"cns":[["mac","Acurite-Atlas-A-409"]],"mdl":"Acurite-Atlas","name":"Acurite-Atlas-A-409","via_device":"RTL_433_ESP_OOK"}}
- name: 'Strike Distance'
unique_id: 'Acurite-Atlas-409-A-Strike-Distance'
state_topic: 'rtl433-01/RTL_433_ESP_OOK/RTL_433toMQTT/Acurite-Atlas/A/409'
json_attributes_topic: 'rtl433-01/RTL_433_ESP_OOK/RTL_433toMQTT/Acurite-Atlas/A/409'
value_template: "{{ value_json.strike_distance | is_defined }}"
state_class: "measurement"
device_class: "distance"
device:
via_device: RTL_433_ESP_OOK
model: Acurite-Atlas
identifiers:
- Acurite-Atlas-A-409
connections:
- - mac
- Acurite-Atlas-A-409
name: Acurite-Atlas-A-409
availability:
- topic: "rtl433-01/RTL_433_ESP_OOK/LWT"
payload_available: "online"
payload_not_available: "offline"
- name: Battery
unique_id: Acurite-Atlas-A-409-battery_ok
state_topic: "+/+/RTL_433toMQTT/Acurite-Atlas/A/409"
payload_off: '1'
payload_on: '0'
value_template: '{{ value_json.battery_ok | is_defined }}'
device_class: battery
device:
via_device: RTL_433_ESP_OOK
model: Acurite-Atlas
identifiers:
- Acurite-Atlas-A-409
connections:
- - mac
- Acurite-Atlas-A-409
name: Acurite-Atlas-A-409
availability:
- topic: "rtl433-01/RTL_433_ESP_OOK/LWT"
payload_available: "online"
payload_not_available: "offline"

View File

@ -2,7 +2,7 @@
### RECORDER ################################################################################### ### RECORDER ###################################################################################
#################################################################################################### ####################################################################################################
--- ---
db_url: postgresql://hassio:qP4fwHvq69QnZqj4@10.10.12.11:5432/hassio?client_encoding=utf8 db_url: !secret database_url
purge_keep_days: 10 purge_keep_days: 10
auto_purge: true auto_purge: true
auto_repack: true auto_repack: true

View File

@ -29,11 +29,11 @@
state: off state: off
light.bedroom_master_ceiling_01: light.bedroom_master_ceiling_01:
state: on state: on
# color_temp: 255 # color_temp_kelvin: 255
# brightness: 255 # brightness: 255
light.bedroom_master_ceiling_02: light.bedroom_master_ceiling_02:
state: on state: on
# color_temp: 255 # color_temp_kelvin: 255
# brightness: 255 # brightness: 255
- name: 'Bedroom Master (Floor Only)' - name: 'Bedroom Master (Floor Only)'

View File

@ -10,11 +10,11 @@
entities: entities:
light.bedroom_max_table_01: light.bedroom_max_table_01:
state: on state: on
color_temp: 255 color_temp_kelvin: 3500
brightness: 255 brightness: 255
light.bedroom_max_ceiling_01: light.bedroom_max_ceiling_01:
state: on state: on
color_temp: 255 color_temp_kelvin: 255
brightness: 255 brightness: 255
- name: 'Bedroom Max (Ceiling Only)' - name: 'Bedroom Max (Ceiling Only)'
@ -23,14 +23,14 @@
state: off state: off
light.bedroom_max_ceiling_01: light.bedroom_max_ceiling_01:
state: on state: on
color_temp: 255 color_temp_kelvin: 3500
brightness: 255 brightness: 255
- name: 'Bedroom Max (Table Only)' - name: 'Bedroom Max (Table Only)'
entities: entities:
light.bedroom_max_table_01: light.bedroom_max_table_01:
state: on state: on
color_temp: 255 color_temp_kelvin: 3500
brightness: 255 brightness: 255
light.bedroom_max_ceiling_01: light.bedroom_max_ceiling_01:
state: off state: off

View File

@ -10,11 +10,11 @@
entities: entities:
light.bedroom_olivia_floor_01: light.bedroom_olivia_floor_01:
state: on state: on
color_temp: 280 color_temp_kelvin: 3500
brightness: 255 brightness: 255
light.bedroom_olivia_ceiling_01: light.bedroom_olivia_ceiling_01:
state: on state: on
color_temp: 255 color_temp_kelvin: 3500
brightness: 255 brightness: 255
- name: "Bedroom Olivia (Ceiling Only)" - name: "Bedroom Olivia (Ceiling Only)"
@ -23,14 +23,14 @@
state: off state: off
light.bedroom_olivia_ceiling_01: light.bedroom_olivia_ceiling_01:
state: on state: on
color_temp: 255 color_temp_kelvin: 3500
brightness: 255 brightness: 255
- name: "Bedroom Olivia (Floor Only)" - name: "Bedroom Olivia (Floor Only)"
entities: entities:
light.bedroom_olivia_floor_01: light.bedroom_olivia_floor_01:
state: on state: on
color_temp: 255 color_temp_kelvin: 3500
brightness: 255 brightness: 255
light.bedroom_olivia_ceiling_01: light.bedroom_olivia_ceiling_01:
state: off state: off

View File

@ -16,19 +16,19 @@
entities: entities:
light.kitchen_led_01: light.kitchen_led_01:
state: on state: on
color_temp: 280 color_temp_kelvin: 3500
brightness: 255 brightness: 255
light.kitchen_sink_01: light.kitchen_sink_01:
state: on state: on
color_temp: 255 color_temp_kelvin: 3500
brightness: 255 brightness: 255
light.kitchen_ceiling_01: light.kitchen_ceiling_01:
state: on state: on
color_temp: 255 color_temp_kelvin: 3500
brightness: 255 brightness: 255
light.kitchen_ceiling_02: light.kitchen_ceiling_02:
state: on state: on
color_temp: 255 color_temp_kelvin: 3500
brightness: 255 brightness: 255
# light.kitchen_decorating_01: # light.kitchen_decorating_01:
# state: on # state: on
@ -37,15 +37,15 @@
entities: entities:
light.kitchen_led_01: light.kitchen_led_01:
state: on state: on
color_temp: 280 color_temp_kelvin: 3500
brightness: 255 brightness: 255
light.kitchen_sink_01: light.kitchen_sink_01:
state: on state: on
brightness: 255 brightness: 255
color_temp: 255 color_temp_kelvin: 3500
light.kitchen_ceiling_01: light.kitchen_ceiling_01:
state: on state: on
color_temp: 255 color_temp_kelvin: 3500
brightness: 255 brightness: 255
light.kitchen_ceiling_02: light.kitchen_ceiling_02:
state: off state: off
@ -62,7 +62,7 @@
state: off state: off
light.kitchen_ceiling_02: light.kitchen_ceiling_02:
state: on state: on
color_temp: 255 color_temp_kelvin: 255
brightness: 255 brightness: 255
# light.kitchen_decorating_01: # light.kitchen_decorating_01:
# state: on # state: on
@ -75,11 +75,11 @@
state: off state: off
light.kitchen_ceiling_01: light.kitchen_ceiling_01:
state: on state: on
color_temp: 255 color_temp_kelvin: 3500
brightness: 255 brightness: 255
light.kitchen_ceiling_02: light.kitchen_ceiling_02:
state: on state: on
color_temp: 255 color_temp_kelvin: 3500
brightness: 255 brightness: 255
# light.kitchen_decorating_01: # light.kitchen_decorating_01:
# state: off # state: off
@ -94,7 +94,7 @@
# state: off # state: off
# light.kitchen_ceiling_02: # light.kitchen_ceiling_02:
# state: on # state: on
# color_temp: 255 # color_temp_kelvin: 255
# brightness: 255 # brightness: 255
# light.kitchen_decorating_01: # light.kitchen_decorating_01:
# state: off # state: off

View File

@ -18,7 +18,7 @@
entities: entities:
light.living_room_floor_lamp_01: light.living_room_floor_lamp_01:
state: on state: on
color_temp: 255 color_temp_kelvin: 3500
brightness: 255 brightness: 255
light.living_room_ceiling_01: light.living_room_ceiling_01:
state: on state: on
@ -84,7 +84,7 @@
entities: entities:
light.living_room_floor_lamp_01: light.living_room_floor_lamp_01:
state: on state: on
color_temp: 255 color_temp_kelvin: 3500
brightness: 255 brightness: 255
light.living_room_ceiling_01: light.living_room_ceiling_01:
state: off state: off
@ -99,7 +99,7 @@
entities: entities:
light.living_room_floor_lamp_01: light.living_room_floor_lamp_01:
state: on state: on
color_temp: 255 color_temp_kelvin: 3500
brightness: 255 brightness: 255
light.living_room_ceiling_01: light.living_room_ceiling_01:
state: on state: on

View File

@ -25,7 +25,7 @@
state: off state: off
light.frontyard_decoration_01: light.frontyard_decoration_01:
state: off state: off
# color_temp: 255 # color_temp_kelvin: 255
# brightness: 255 # brightness: 255
- name: 'Porch (Garage Only)' - name: 'Porch (Garage Only)'

View File

@ -8,6 +8,7 @@
- !secret services_notification_telegram_chat_id_02 - !secret services_notification_telegram_chat_id_02
- !secret services_notification_telegram_chat_id_03 - !secret services_notification_telegram_chat_id_03
- !secret services_notification_telegram_chat_id_04 - !secret services_notification_telegram_chat_id_04
- !secret services_notification_telegram_chat_id_05
trusted_networks: trusted_networks:
- 149.154.160.0/20 - 149.154.160.0/20
- 91.108.4.0/22 - 91.108.4.0/22

View File

@ -0,0 +1,764 @@
---
#name: Home
#icon: mdi:home
title: Security
icon: mdi:shield-home
#panel: true
visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex
- user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya
cards:
- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: custom:mushroom-chips-card
chips:
- type: template
icon: mdi:faucet-variant
icon_color: "{% if is_state('binary_sensor.presence_kitchen_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_kitchen_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:sofa
icon_color: "{% if is_state('binary_sensor.presence_living_room_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_living_room_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:bed-king
icon_color: "{% if is_state('binary_sensor.presence_bedroom_master_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_bedroom_master_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:bed
icon_color: "{% if is_state('binary_sensor.presence_bedroom_maxim_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_bedroom_maxim_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:bed
icon_color: "{% if is_state('binary_sensor.presence_bedroom_olivia_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_bedroom_olivia_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:stairs
icon_color: "{% if is_state('binary_sensor.presence_stairwell_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_stairwell_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:garage-variant
icon_color: "{% if is_state('binary_sensor.presence_garage_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_garage_sensor_1
tap_action:
action: more-info
- type: custom:bubble-card
entity: alarm_control_panel.home_alarm
card_type: button
button_type: name
name: Security
icon: mdi:shield-check
show_state: true
show_last_changed: true
sub_button:
- name: Doors
icon: mdi:door-open
show_state: false
show_background: true
tap_action:
action: navigate
navigation_path: '#popup-open-doors'
- name: Windows
icon: mdi:window-open
show_background: true
tap_action:
action: navigate
navigation_path: '#popup-open-windows'
- name: Lights
icon: mdi:lightbulb-group
tap_action:
action: navigate
navigation_path: '#popup-on-lights'
- name: Garage Cover
icon: mdi:garage-variant
entity: cover.garage_gate
tap_action:
confirmation:
text: open/Close a Garage Cover?
action: call-service
service: cover.toggle
target:
entity_id: cover.garage_gate
- name: Lock
icon: mdi:lock-smart
entity: lock.lock_01
tap_action:
confirmation:
text: Lock/Unlock a Lock?
action: call-service
service: lock.lock
target:
entity_id: lock.lock_01
modules:
- badges
badges:
main_icon:
badge_1:
icon: mdi:alert-circle-outline
sub_button:
sub_button_index: 1
badge_1:
icon: mdi:alert-circle-outline
color: red
condition:
- condition: numeric_state
entity_id: sensor.number_doors_open
above: 0
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'on' ? 'var(--light-theme-disabled-color)' : 'var(--light-theme-disabled-color)' } !important;
}
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-2 {
background-color: white !important;
}
.bubble-sub-button-3 {
background-color: white !important;
}
.bubble-sub-button-4 {
background-color: white !important;
}
.bubble-sub-button-5 {
background-color: white !important;
}
- type: horizontal-stack
cards:
- image: /local/profile_savin_alex.jpg
type: picture-entity
show_name: false
tap_action:
action: more-info
entity: person.alexander_savin
- image: /local/profile_savin_tanya.jpg
type: picture-entity
show_name: false
tap_action:
action: more-info
entity: person.tatiana_savin
- type: horizontal-stack
cards:
- image: /local/profile_savin_maxim.jpg
type: picture-entity
show_name: false
tap_action:
action: more-info
entity: person.maxim_savin
- image: /local/profile_savin_olivia.jpg
type: picture-entity
show_name: false
tap_action:
action: more-info
entity: person.olivia_savin
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: state
name: Alexander Savin
entity: person.alexander_savin
show_state: true
show_last_changed: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
modules:
- progress_border
progress_border:
entity: sensor.alex_s_google_pixel_8_pro_battery_level
color: purple
backcolor: deep-purple
styles: |
.bubble-entity-picture {
display: flex !important;
background-image: url("/local/profile_savin_alex.jpg") !important;
background-size: 300%;
}
- type: custom:bubble-card
card_type: button
button_type: state
name: Tatiana Savin
entity: person.tatiana_savin
show_state: true
show_last_changed: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
modules:
- progress_border
progress_border:
entity: sensor.tanya_s_google_pixel_8_pro_battery_level
color: purple
backcolor: deep-purple
styles: |
.bubble-entity-picture {
display: flex !important;
background-image: url("/local/profile_savin_tanya.jpg") !important;
background-size: 300%;
}
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: state
name: Maxim Savin
entity: person.maxim_savin
show_state: true
show_last_changed: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
styles: |
.bubble-entity-picture {
display: flex !important;
background-image: url("/local/profile_savin_maxim.jpg") !important;
background-size: 300%;
}
- type: custom:bubble-card
card_type: button
button_type: state
name: Olivia Savin
entity: person.olivia_savin
show_state: true
show_last_changed: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
styles: |
.bubble-entity-picture {
display: flex !important;
background-image: url("/local/profile_savin_olivia.jpg") !important;
background-size: 300%;
}
- type: map
aspect_ratio: 100%
entities:
- entity: person.alexander_savin
- entity: person.tatiana_savin
- entity: person.maxim_savin
- entity: person.olivia_savin
- entity: device_tracker.subaru_outback_txt
- zone.home
- zone.npfd
- zone.work_kiswe
- zone.ymca_berkley_heights
- zone.nphs_school
- zone.awr_school
# - type: map
# aspect_ratio: 100%
# entities:
# - entity: person.maxim
- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: 'custom:mushroom-lock-card'
name: Main Lock
entity: lock.lock_01
fill_container: true
layout: horizontal
# show_name: false
# icon: mdi:lock
# size: 50px
# state:
# - value: "locked"
# color: rgb(79, 114, 154)
# icon: mdi:lock-smart
# - value: "unlocked"
# color: red
# icon: mdi:lock-smart
tap_action:
action: toggle
# - type: custom:mushroom-climate-card
# entity: climate.living_room
# name: Thermostat
# show_temperature_control: true
# hvac_modes:
# - heat
# - cool
# - off
# layout: vertical
- type: custom:bubble-card
card_type: climate
entity: climate.living_room
sub_button:
- name: HVAC modes menu
select_attribute: hvac_modes
show_arrow: false
state_background: false
# - type: horizontal-stack
# cards:
# - type: 'custom:simple-thermostat'
# entity: climate.living_room
# step_size: 1
# header: false
# control:
# hvac:
# 'off':
# name: 'Off'
# cool:
# name: A/C
# heat:
# name: Heat
# heat_cool: false
# sensors:
# - entity: sensor.power_house_6_1d
# name: Blower Energy
# - entity: sensor.power_house_8_1d
# name: AC Energy
- type: custom:bubble-card
card_type: button
button_type: switch
name: Vacuum
entity: vacuum.roborock_s5_max
icon: mdi:robot-vacuum
show_state: true
show_last_changed: true
tap_action:
action: navigate
navigation_path: '#popup-vacuum-cleaner-kitchen'
button_action:
tap_action:
action: more-info
sub_button:
- name: Return to dock
icon: mdi:home
show_background: false
tap_action:
action: call-service
service: vacuum.return_to_base
target:
entity_id: vacuum.roborock_s5_max
- name: Pause
icon: mdi:pause
show_background: false
tap_action:
action: call-service
service: vacuum.pause
target:
entity_id: vacuum.roborock_s5_max
- name: Start
icon: mdi:play
tap_action:
action: call-service
service: vacuum.start
target:
entity_id: vacuum.roborock_s5_max
styles: |
.bubble-button-card-container {
/* Change the background color when the vacuum get an error (optional), more details in the styles template section */
background: ${state === 'error' ? 'rgb(200, 80, 40)' : ''} !important;
}
/* Change the first sub-button battery icon based on the battery_icon attribute, more details in the styles template section */
${subButtonIcon[0].setAttribute("icon", hass.states['vacuum.roborock_s5_max'].attributes.battery_icon)}
- type: custom:layout-break
- type: vertical-stack
cards:
- type: weather-forecast
entity: weather.my_weather_station
secondary_info_attribute: humidity
show_current: true
show_forecast: true
- type: horizontal-stack
cards:
- type: picture
image: https://objects.savin.nyc/api/frontyard/person/best.jpg
- type: picture
image: https://objects.savin.nyc/api/side1/person/best.jpg
- type: horizontal-stack
cards:
- type: picture
image: https://objects.savin.nyc/api/doorbell/person/best.jpg
- type: picture
image: https://objects.savin.nyc/api/entrance/person/best.jpg
- type: horizontal-stack
cards:
- type: picture
image: https://objects.savin.nyc/api/side2/person/best.jpg
- type: picture
image: https://objects.savin.nyc/api/backyard/person/best.jpg
# - type: custom:auto-entities
# card:
# type: entities
# filter:
# template: "{{states.light | map(attribute='entity_id') | list}}"
- type: vertical-stack
cards:
- type: 'custom:bubble-card'
card_type: pop-up
hash: '#popup-open-windows'
name: Windows
icon: 'mdi:window-open'
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Kitchen
icon: mdi:countertop
show_state: false
sub_button:
- name: Kitchen Window
entity: binary_sensor.window_kitchen_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.window_kitchen_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.window_kitchen_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Living Room
icon: mdi:sofa
show_state: false
sub_button:
- name: Front (Left)
entity: binary_sensor.window_living_room_front_left_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
- name: Front (Center)
entity: binary_sensor.window_living_room_front_center_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
- name: Front (Right)
entity: binary_sensor.window_living_room_front_right_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
- name: Side
entity: binary_sensor.window_living_room_side_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.window_living_room_front_left_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-2 {
background-color: white !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${ hass.states['binary_sensor.window_living_room_front_center_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-3 {
background-color: white !important;
}
.bubble-sub-button-3 > ha-icon {
color: ${ hass.states['binary_sensor.window_living_room_front_right_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-4 {
background-color: white !important;
}
.bubble-sub-button-4 > ha-icon {
color: ${ hass.states['binary_sensor.window_living_room_side_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.window_living_room_front_left_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
${subButtonIcon[1].setAttribute("icon", hass.states['binary_sensor.window_living_room_front_center_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
${subButtonIcon[2].setAttribute("icon", hass.states['binary_sensor.window_living_room_front_right_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
${subButtonIcon[3].setAttribute("icon", hass.states['binary_sensor.window_living_room_side_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Master Bedroom
icon: mdi:bed-king
show_state: false
sub_button:
- name: Front (Left)
entity: binary_sensor.window_bedroom_master_left_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
- name: Front (Center)
entity: binary_sensor.window_bedroom_master_center_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
- name: Front (Right)
entity: binary_sensor.window_bedroom_master_right_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.window_bedroom_master_left_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-2 {
background-color: white !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${ hass.states['binary_sensor.window_bedroom_master_center_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-3 {
background-color: white !important;
}
.bubble-sub-button-3 > ha-icon {
color: ${ hass.states['binary_sensor.window_bedroom_master_right_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.window_bedroom_master_left_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
${subButtonIcon[1].setAttribute("icon", hass.states['binary_sensor.window_bedroom_master_center_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
${subButtonIcon[2].setAttribute("icon", hass.states['binary_sensor.window_bedroom_master_right_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Maxim Bedroom
icon: mdi:bed
show_state: false
sub_button:
- name: Window
entity: binary_sensor.window_bedroom_max_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.window_bedroom_max_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.window_bedroom_max_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Olivia Bedroom
icon: mdi:bed
show_state: false
sub_button:
- name: Window
entity: binary_sensor.window_bedroom_olivia_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.window_bedroom_olivia_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.window_bedroom_olivia_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Master Bathroom
icon: mdi:shower
show_state: false
sub_button:
- name: Window
entity: binary_sensor.window_bathroom_master_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.window_bathroom_master_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.window_bathroom_master_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Bedroom Bathroom
icon: mdi:shower
show_state: false
sub_button:
- name: Window
entity: binary_sensor.window_bathroom_bedroom_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.window_bathroom_bedroom_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.window_bathroom_bedroom_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
- type: vertical-stack
cards:
- type: 'custom:bubble-card'
card_type: pop-up
hash: '#popup-open-doors'
name: Doors
icon: 'mdi:door-open'
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Kitchen
icon: mdi:countertop
show_state: false
sub_button:
- name: Kitchen Door
entity: binary_sensor.door_kitchen_01
icon: mdi:door-sliding
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.door_kitchen_01'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.door_kitchen_01'].state === 'on' ? 'mdi:door-sliding-open' : 'mdi:door-sliding')}
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Living Room
icon: mdi:sofa
show_state: false
sub_button:
- name: Entrance Door
entity: binary_sensor.door_entrance_01
icon: mdi:door-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.door_entrance_01'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.door_entrance_01'].state === 'on' ? 'mdi:door-open' : 'mdi:door-closed')}
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Garage
icon: mdi:garage-variant
show_state: false
sub_button:
- name: Garage Gate
entity: binary_sensor.door_kitchen_01_contact
icon: mdi:garage-variant
show_state: false
show_background: true
- name: Garage Door
entity: binary_sensor.door_garage_01_contact
icon: mdi:door-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.window_kitchen_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-2 {
background-color: white !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${ hass.states['binary_sensor.window_kitchen_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.window_kitchen_01_contact'].state === 'on' ? 'mdi:garage-open-variant' : 'mdi:garage-variant')}
${subButtonIcon[1].setAttribute("icon", hass.states['binary_sensor.door_garage_01_contact'].state === 'on' ? 'mdi:door-open' : 'mdi:door-closed')}
- type: vertical-stack
cards:
- type: 'custom:bubble-card'
card_type: pop-up
hash: '#popup-on-lights'
name: Doors
icon: 'mdi:door-open'
- type: custom:auto-entities
card:
type: grid
columns: 1
square: false
card_param: cards
filter:
include:
- domain: light
state: 'on'
options:
type: custom:bubble-card
card_type: button
button_type: slider
show_attribute: false
show_last_changed: true
show_state: true
exclude: []
show_empty: true
- type: vertical-stack
cards:
- type: 'custom:bubble-card'
card_type: pop-up
hash: '#popup-vacuum-cleaner-kitchen'
name: Vacuum Cleaner
icon: 'mdi:door-open'
- type: horizontal-stack
cards:
- type: custom:xiaomi-vacuum-map-card
entity: vacuum.roborock_s5_max
map_source:
camera: camera.xiaomi_cloud_map_extractor
calibration_source:
camera: true
debug: false
map_modes:
- template: vacuum_clean_zone
- template: vacuum_goto
- template: vacuum_clean_zone_predefined
predefined_selections:
- zones: [[26600,21200,23600,27000]] # Kitchen
- zones: [[32700,26000,26600,20700]] # Living Room
map_locked: true

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,340 @@
---
#name: Home
#icon: mdi:home
title: Security
icon: mdi:shield-home
#panel: true
visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex
- user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya
cards:
- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: custom:mushroom-chips-card
chips:
- type: template
icon: mdi:faucet-variant
icon_color: "{% if is_state('binary_sensor.presence_kitchen_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_kitchen_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:sofa
icon_color: "{% if is_state('binary_sensor.presence_living_room_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_living_room_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:bed-king
icon_color: "{% if is_state('binary_sensor.presence_bedroom_master_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_bedroom_master_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:bed
icon_color: "{% if is_state('binary_sensor.presence_bedroom_maxim_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_bedroom_maxim_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:bed
icon_color: "{% if is_state('binary_sensor.presence_bedroom_olivia_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_bedroom_olivia_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:stairs
icon_color: "{% if is_state('binary_sensor.presence_stairwell_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_stairwell_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:garage-variant
icon_color: "{% if is_state('binary_sensor.presence_garage_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_garage_sensor_1
tap_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: name
name: Security
icon: mdi:shield-check
show_state: true
show_last_changed: true
sub_button:
- name: Doors
icon: mdi:door-open
shiw_state: false
show_background: true
tap_action:
action: navigate
navigation_path: '#popup-open-doors'
- name: Windows
icon: mdi:window-open
show_background: true
tap_action:
action: navigate
navigation_path: '#popup-open-windows'
- name: Lights
icon: mdi:lightbulb-group
tap_action:
action: navigate
navigation_path: '#popup-on-lights'
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'on' ? 'var(--light-theme-disabled-color)' : 'var(--light-theme-disabled-color)' } !important;
}
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-2 {
background-color: white !important;
}
.bubble-sub-button-3 {
background-color: white !important;
}
- type: horizontal-stack
cards:
- type: custom:mushroom-template-card
icon: mdi:door-open
icon_color: blue
badge_icon: "{% if states('sensor.number_doors_open') | int > 0 -%}{{ 'mdi:numeric-' + states('sensor.number_doors_open') + '-circle' }}{%- endif %}"
badge_color: red
fill_container: false
card_mod:
style: "ha-card { border: none; background: none; }"
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
title: HTML content
content:
type: glance
entities:
- binary_sensor.door_entrance_01
- binary_sensor.door_kitchen_01
- binary_sensor.door_garage_01_contact
- type: custom:mushroom-template-card
icon: mdi:window-open
icon_color: blue
badge_icon: "{% if states('sensor.number_windows_open') | int > 0 -%}{{ 'mdi:numeric-' + states('sensor.number_windows_open') + '-circle' }}{%- endif %}"
badge_color: red
fill_container: false
card_mod:
style: "ha-card { border: none; background: none; }"
- type: custom:mushroom-template-card
icon: mdi:lightbulb
icon_color: blue
badge_icon: "{% if states('sensor.number_light_on') | int > 0 -%}{{ 'mdi:numeric-' + states('sensor.number_light_on') + '-circle' }}{%- endif %}"
badge_color: red
fill_container: false
card_mod:
style: "ha-card { border: none; background: none; }"
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
title: HTML content
content:
type: glance
entities:
- light.aisle_ceiling_01
- light.aisle_ceiling_02
- light.attic_bulb_01
- light.backyard_01
- light.bathroom_bedroom_wall_01
- light.bathroom_living_room_01
- light.bathroom_master_wall_01
- light.bedroom_master_ceiling_01
- light.bedroom_master_ceiling_02
- light.bedroom_master_floor_lamp_01
- light.bedroom_master_floor_lamp_02
- light.bedroom_max_ceiling_01
- light.bedroom_max_table_01
- light.bedroom_olivia_ceiling_01
- light.bedroom_olivia_floor_01
- light.christmas_tree
- light.frontyard_decoration_01
- light.garage_ceiling_01
- light.garage_gate_01
- light.kitchen_decorating_01
- light.kitchen_led_01
- light.kitchen_sink_01
- light.light_bed_bedroom_master_01
- light.light_bed_max_01
- light.light_kitchen_ceiling_01
- light.light_kitchen_ceiling_02
- light.living_room_ceiling_01
- light.living_room_ceiling_02
- light.living_room_ceiling_03
- light.living_room_ceiling_04
- light.living_room_floor_lamp_01
- light.living_room_strip_01
- light.living_room_tiles_01
- light.porch_01
- type: custom:mushroom-chips-card
chips:
- type: template
content: "Open Windows ({{ states('sensor.number_windows_open') | int }}) Doors ({{ states('sensor.number_doors_open') | int }}) Light ({{ states('sensor.number_light_on') | int }})"
- type: horizontal-stack
cards:
- image: /local/profile_savin_alex.jpg
type: picture-entity
show_name: false
tap_action:
action: more-info
entity: person.alexander_savin
- image: /local/profile_savin_tanya.jpg
type: picture-entity
show_name: false
tap_action:
action: more-info
entity: person.tatiana_savin
- type: horizontal-stack
cards:
- image: /local/profile_savin_maxim.jpg
type: picture-entity
show_name: false
tap_action:
action: more-info
entity: person.maxim_savin
- image: /local/profile_savin_olivia.jpg
type: picture-entity
show_name: false
tap_action:
action: more-info
entity: person.olivia_savin
- type: map
aspect_ratio: 100%
entities:
- entity: person.alexander_savin
- entity: person.tatiana_savin
- entity: person.maxim_savin
- entity: person.olivia_savin
- entity: device_tracker.subaru_outback_txt
- zone.home
- zone.npfd
- zone.work_kiswe
- zone.ymca_berkley_heights
- zone.nphs_school
- zone.awr_school
# - type: map
# aspect_ratio: 100%
# entities:
# - entity: person.maxim
- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: 'custom:mushroom-lock-card'
name: Main Lock
entity: lock.lock_01
fill_container: true
layout: horizontal
# show_name: false
# icon: mdi:lock
# size: 50px
# state:
# - value: "locked"
# color: rgb(79, 114, 154)
# icon: mdi:lock-smart
# - value: "unlocked"
# color: red
# icon: mdi:lock-smart
tap_action:
action: toggle
# - type: custom:mushroom-climate-card
# entity: climate.living_room
# name: Thermostat
# show_temperature_control: true
# hvac_modes:
# - heat
# - cool
# - off
# layout: vertical
- type: horizontal-stack
cards:
- type: 'custom:simple-thermostat'
entity: climate.living_room
step_size: 1
header: false
control:
hvac:
'off':
name: 'Off'
cool:
name: A/C
heat:
name: Heat
heat_cool: false
sensors:
- entity: sensor.power_house_6_1d
name: Blower Energy
- entity: sensor.power_house_8_1d
name: AC Energy
# - type: alarm-panel
# entity: alarm_control_panel.alarm
# title: Alarm Panel
# hide_keypad: false
# style: '--alarm-color-disarmed: var(--label-badge-blue);'
# states:
# - arm_home
# - arm_away
# - type: thermostat
# entity: climate.living_room
- type: horizontal-stack
cards:
- type: custom:xiaomi-vacuum-map-card
entity: vacuum.roborock_s5_max
map_source:
camera: camera.xiaomi_cloud_map_extractor
calibration_source:
camera: true
debug: false
map_modes:
- template: vacuum_clean_zone
- template: vacuum_goto
- template: vacuum_clean_zone_predefined
predefined_selections:
- zones: [[26600,21200,23600,27000]] # Kitchen
- zones: [[32700,26000,26600,20700]] # Living Room
map_locked: true
- type: vertical-stack
cards:
- type: weather-forecast
entity: weather.my_weather_station
secondary_info_attribute: humidity
show_current: true
show_forecast: true
- type: horizontal-stack
cards:
- type: picture
image: https://objects.savin.nyc/api/frontyard/person/best.jpg
- type: picture
image: https://objects.savin.nyc/api/side1/person/best.jpg
- type: horizontal-stack
cards:
- type: picture
image: https://objects.savin.nyc/api/doorbell/person/best.jpg
- type: picture
image: https://objects.savin.nyc/api/entrance/person/best.jpg
- type: horizontal-stack
cards:
- type: picture
image: https://objects.savin.nyc/api/side2/person/best.jpg
- type: picture
image: https://objects.savin.nyc/api/backyard/person/best.jpg
# - type: custom:auto-entities
# card:
# type: entities
# filter:
# template: "{{states.light | map(attribute='entity_id') | list}}"

View File

@ -7,12 +7,15 @@ visible:
- user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya - user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya
cards: cards:
- type: custom:layout-card - type: custom:layout-card
layout: vertical layout_type: custom:vertical-layout
layout:
max_cols: 3
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-chips-card - type: custom:mushroom-chips-card
chips: chips:
- type: template - type: template
icon: "{% if is_state('binary_sensor.presence_kitchen_sensor_2', 'on') -%}mdi:account-multiple{%- else -%}mdi:account-off-outline{%- endif %}" icon: "{% if is_state('binary_sensor.presence_kitchen_sensor_2', 'on') -%}mdi:account-multiple{%- else -%}mdi:account-off-outline{%- endif %}"
icon_color: "{% if is_state('binary_sensor.presence_kitchen_sensor_2', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}" icon_color: "{% if is_state('binary_sensor.presence_kitchen_sensor_2', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
@ -33,187 +36,178 @@ cards:
entity: binary_sensor.door_kitchen_01 entity: binary_sensor.door_kitchen_01
tap_action: tap_action:
action: more-info action: more-info
- type: custom:stack-in-card
###################################################################################################
### KITCHEN CLIMATE ###########################################################################
###################################################################################################
- type: custom:bubble-card
card_type: separator
icon: mdi:countertop-outline
sub_button:
- name: Temp
icon: mdi:thermometer-lines
entity: sensor.climate_kitchen_01_temperature
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Humidity
icon: mdi:water-percent
entity: sensor.climate_kitchen_01_humidity
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Light Level
icon: mdi:weather-sunny
entity: sensor.presence_kitchen_light_level_2
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: PM2.5
icon: mdi:blur
entity: sensor.climate_kitchen_02_pm25
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
styles: |
.bubble-feedback-container {
margin: 0px;
}
- type: vertical-stack
cards: cards:
- type: grid - type: 'custom:bubble-card'
columns: 2 card_type: button
square: false button_type: switch
cards: name: Occupancy
- type: custom:mushroom-entity-card entity: input_boolean.occupancy_kitchen
entity: input_boolean.kitchen_light_state icon: 'mdi:account-multiple'
name: Kitchen show_state: false
icon: mdi:lightbulb-group show_background: false
tap_action: tap_action:
action: toggle action: toggle
card_mod: button_action:
style: "ha-card { border: none; }" tap_action:
- type: custom:paper-buttons-row action: more-info
preset: mushroom sub_button:
styles: - entity: sensor.kitchen_person_count
justify-content: flex-end icon: 'mdi:account-group'
base_config: show_state: false
styles: show_background: true
button: - entity: sensor.kitchen_cat_count
margin-top: 12px icon: 'mdi:cat'
margin-right: 12px show_state: false
buttons: show_background: true
- layout: icon - icon: 'mdi:brightness-auto'
entity: input_boolean.manually_operated_light_kitchen
show_state: false
show_background: true
tap_action:
action: toggle
styles: >
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'on' ? 'var(--light-theme-disabled-color)' : 'var(--light-theme-disabled-color)' } !important;
}
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['sensor.kitchen_person_count'].state > 0 ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-2 {
background-color: white !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${ hass.states['sensor.kitchen_cat_count'].state > 0 ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-3 {
background-color: white !important;
}
${subButtonIcon[2].setAttribute("icon", hass.states['input_boolean.manually_operated_light_kitchen'].state === 'on' ? 'mdi:hand-front-right' : 'mdi:brightness-auto')}
modules:
###################################################################################################
### KITCHEN LIGHTS ############################################################################
###################################################################################################
- type: custom:bubble-card
card_type: button
button_type: switch
name: Light
entity: input_boolean.kitchen_light_state
icon: mdi:lightbulb-group icon: mdi:lightbulb-group
show_state: true
show_background: false
tap_action:
action: toggle
button_action:
tap_action:
action: navigate
navigation_path: '#popup-kitchen-light'
sub_button:
- icon: mdi:lightbulb-group
entity: scene.kitchen_all
show_state: false
show_background: true
tap_action: tap_action:
action: call-service action: call-service
service: input_select.select_option service: input_select.select_option
service_data: service_data:
entity_id: input_select.kitchen_scenes entity_id: input_select.kitchen_scenes
option: "All" option: "All"
styles: - icon: mdi:countertop-outline
button: entity: scene.kitchen_work_zone_only
color: "{% if is_state('input_boolean.kitchen_light_state', 'on') and is_state('input_select.kitchen_scenes', 'All') %}#FFC107{% else %}#44739E{% endif %}" show_state: false
background-color: "{% if is_state('input_boolean.kitchen_light_state', 'on') and is_state('input_select.kitchen_scenes', 'All') %}#FFF3D7{% else %}#F4F4F4{% endif %}" show_background: true
- layout: icon
icon: mdi:countertop-outline
tap_action: tap_action:
action: call-service action: call-service
service: input_select.select_option service: input_select.select_option
service_data: service_data:
entity_id: input_select.kitchen_scenes entity_id: input_select.kitchen_scenes
option: "Work Zone Only" option: "Work Zone Only"
styles: - icon: mdi:food-turkey
button: entity: scene.kitchen_dinning_zone_only
color: "{% if is_state('input_boolean.kitchen_light_state', 'on') and is_state('input_select.kitchen_scenes', 'Work Zone Only') %}#FFC107{% else %}#44739E{% endif %}" show_state: false
background-color: "{% if is_state('input_boolean.kitchen_light_state', 'on') and is_state('input_select.kitchen_scenes', 'Work Zone Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}" show_background: true
- layout: icon
icon: mdi:food-turkey
tap_action: tap_action:
action: call-service action: call-service
service: input_select.select_option service: input_select.select_option
service_data: service_data:
entity_id: input_select.kitchen_scenes entity_id: input_select.kitchen_scenes
option: "Dinning Zone Only" option: "Dinning Zone Only"
styles: - icon: mdi:ceiling-light-multiple
button: entity: scene.kitchen_ceiling_only
color: "{% if is_state('input_boolean.kitchen_light_state', 'on') and is_state('input_select.kitchen_scenes', 'Dinning Zone Only') %}#FFC107{% else %}#44739E{% endif %}" show_state: false
background-color: "{% if is_state('input_boolean.kitchen_light_state', 'on') and is_state('input_select.kitchen_scenes', 'Dinning Zone Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}" show_background: true
- layout: icon
icon: mdi:ceiling-light-multiple
tap_action: tap_action:
action: call-service action: call-service
service: input_select.select_option service: input_select.select_option
service_data: service_data:
entity_id: input_select.kitchen_scenes entity_id: input_select.kitchen_scenes
option: "Ceiling Only" option: "Ceiling Only"
styles: styles: |
button: .bubble-sub-button-1 > ha-icon {
color: "{% if is_state('input_boolean.kitchen_light_state', 'on') and is_state('input_select.kitchen_scenes', 'Ceiling Only') %}#FFC107{% else %}#44739E{% endif %}" color: ${hass.states['input_select.kitchen_scenes'].state === 'All' ? 'rgb(255, 152, 0)' : ''} !important;
background-color: "{% if is_state('input_boolean.kitchen_light_state', 'on') and is_state('input_select.kitchen_scenes', 'Ceiling Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}" }
- layout: icon .bubble-sub-button-2 > ha-icon {
icon: mdi:globe-light-outline color: ${hass.states['input_select.kitchen_scenes'].state === 'Work Zone Only' ? 'rgb(255, 152, 0)' : ''} !important;
tap_action: }
action: call-service .bubble-sub-button-3 > ha-icon {
service: light.toggle color: ${hass.states['input_select.kitchen_scenes'].state === 'Dinning Zone Only' ? 'rgb(255, 152, 0)' : ''} !important;
service_data: }
entity_id: light.kitchen_decorating_01 .bubble-sub-button-4 > ha-icon {
styles: color: ${hass.states['input_select.kitchen_scenes'].state === 'Ceiling Only' ? 'rgb(255, 152, 0)' : ''} !important;
button: }
color: "{% if is_state('light.kitchen_decorating_01', 'on') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('light.kitchen_decorating_01', 'on') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
# name: Temperature
line_color: orange
font_size: 60
font_size_header: 12
entities:
- entity: sensor.climate_kitchen_01_temperature
# name: Temperature
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
icon: false
# card_mod:
# style: |
# ha-card {
# background: url("/local/outback.jpg");
# background-size: 100% 400px;
# }
- type: custom:mini-graph-card
name: Humidity
line_color: blue
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_kitchen_01_humidity
name: Humidity
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
name: Illuminance
line_color: red
font_size: 75
font_size_header: 12
entities:
- entity: sensor.presence_kitchen_light_level_2
name: Illuminance
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
name: Ppm25
line_color: green
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_kitchen_02_pm25
name: Ppm25
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.kitchen_sink_01
name: 'Kitchen Sink #01'
icon: mdi:ceiling-light
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.kitchen_led_01
name: 'Kitchen LED #01'
icon: mdi:led-strip-variant
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.kitchen_ceiling_01
name: 'Kitchen Ceiling #1'
icon: mdi:dome-light
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.kitchen_ceiling_02
name: 'Kitchen Ceiling #2'
icon: mdi:dome-light
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:layout-break - type: custom:layout-break
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: 'custom:webrtc-camera' - type: 'custom:webrtc-camera'
@ -221,38 +215,120 @@ cards:
title: 'Kitchen' title: 'Kitchen'
muted: true muted: true
mode: webrtc,mse mode: webrtc,mse
- type: custom:layout-break - type: custom:layout-break
- type: vertical-stack - type: vertical-stack
cards: cards:
# - type: entities
# title: Lights ###################################################################################################
# show_header_toggle: false ### KITCHEN MAX ########################################################### BUBBLE CARD ###
# entities: ###################################################################################################
# - entity: timer.app_lighting_kitchen - type: custom:bubble-card
# - type: custom:flipdown-timer-card card_type: media-player
# entity: timer.app_lighting_kitchen
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack
cards:
- type: button
name: Occupancy
entity: input_boolean.occupancy_kitchen
- type: button
name: Operating Mode
entity: input_boolean.manually_operated_light_kitchen
- type: button
name: Occupants
entity: input_number.occupants_kitchen
- type: custom:mini-media-player
entity: media_player.kitchen_max entity: media_player.kitchen_max
artwork: cover grid_options:
rows: 2
columns: 12
scrolling_effect: false
show_icon: true
show_state: false
show_attribute: false
hide:
play_pause_button: false
power_button: true
next_button: false
previous_button: false
volume_button: false
card_layout: large
cover_background: true
sub_button: []
name: "Kitchen Max"
force_icon: false
show_name: true
show_last_changed: false
double_tap_action:
action: none
hold_action:
action: none
styles: |
ha-card div.bubble-media-player-container {
height: 119px !important;
}
ha-card div.bubble-cover-background {
filter: blur(3px);
opacity: 0.4;
}
ha-card div.bubble-media-player {
bottom: 30px;
}
ha-card div.bubble-media-info-container {
display: inline;
position: absolute;
top: 95px;
left: 16px
}
ha-card div.bubble-name-container {
display: inline !important;
}
ha-icon.bubble-play-pause-button {
position: absolute;
bottom: -22px;
right: 8px;
}
###################################################################################################
### KITCHEN LIGHTS ############################################################## POPUP ###
###################################################################################################
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#popup-kitchen-light'
name: Kitchen
icon: mdi:fridge
- type: custom:bubble-card
card_type: button
button_type: slider
name: Sink
entity: light.kitchen_sink_01
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle
- type: custom:bubble-card
card_type: button
button_type: slider
name: LED
entity: light.kitchen_led_01
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle
- type: custom:bubble-card
card_type: button
button_type: slider
name: 'Ceiling #1'
entity: light.kitchen_ceiling_01
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle
- type: custom:bubble-card
card_type: button
button_type: slider
name: 'Ceiling #2'
entity: light.kitchen_ceiling_02
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle

View File

@ -0,0 +1,258 @@
---
title: Kitchen
icon: mdi:countertop
panel: true
visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex
- user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya
cards:
- type: custom:layout-card
layout: vertical
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-chips-card
chips:
- type: template
icon: "{% if is_state('binary_sensor.presence_kitchen_sensor_2', 'on') -%}mdi:account-multiple{%- else -%}mdi:account-off-outline{%- endif %}"
icon_color: "{% if is_state('binary_sensor.presence_kitchen_sensor_2', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
badge_icon: mdi:numeric-1-circle
badge_color: green
entity: binary_sensor.presence_kitchen_sensor_2
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.window_kitchen_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.window_kitchen_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.window_kitchen_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.door_kitchen_01', 'on') -%}mdi:door-sliding-open{%- else -%}mdi:door-sliding{%- endif %}"
icon_color: "{% if is_state('binary_sensor.door_kitchen_01', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.door_kitchen_01
tap_action:
action: more-info
- type: custom:stack-in-card
cards:
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: input_boolean.kitchen_light_state
name: Kitchen
icon: mdi:lightbulb-group
tap_action:
action: toggle
card_mod:
style: "ha-card { border: none; }"
- type: custom:paper-buttons-row
preset: mushroom
styles:
justify-content: flex-end
base_config:
styles:
button:
margin-top: 12px
margin-right: 12px
buttons:
- layout: icon
icon: mdi:lightbulb-group
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.kitchen_scenes
option: "All"
styles:
button:
color: "{% if is_state('input_boolean.kitchen_light_state', 'on') and is_state('input_select.kitchen_scenes', 'All') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.kitchen_light_state', 'on') and is_state('input_select.kitchen_scenes', 'All') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:countertop-outline
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.kitchen_scenes
option: "Work Zone Only"
styles:
button:
color: "{% if is_state('input_boolean.kitchen_light_state', 'on') and is_state('input_select.kitchen_scenes', 'Work Zone Only') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.kitchen_light_state', 'on') and is_state('input_select.kitchen_scenes', 'Work Zone Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:food-turkey
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.kitchen_scenes
option: "Dinning Zone Only"
styles:
button:
color: "{% if is_state('input_boolean.kitchen_light_state', 'on') and is_state('input_select.kitchen_scenes', 'Dinning Zone Only') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.kitchen_light_state', 'on') and is_state('input_select.kitchen_scenes', 'Dinning Zone Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:ceiling-light-multiple
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.kitchen_scenes
option: "Ceiling Only"
styles:
button:
color: "{% if is_state('input_boolean.kitchen_light_state', 'on') and is_state('input_select.kitchen_scenes', 'Ceiling Only') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.kitchen_light_state', 'on') and is_state('input_select.kitchen_scenes', 'Ceiling Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:globe-light-outline
tap_action:
action: call-service
service: light.toggle
service_data:
entity_id: light.kitchen_decorating_01
styles:
button:
color: "{% if is_state('light.kitchen_decorating_01', 'on') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('light.kitchen_decorating_01', 'on') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
# name: Temperature
line_color: orange
font_size: 60
font_size_header: 12
entities:
- entity: sensor.climate_kitchen_01_temperature
# name: Temperature
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
icon: false
# card_mod:
# style: |
# ha-card {
# background: url("/local/outback.jpg");
# background-size: 100% 400px;
# }
- type: custom:mini-graph-card
name: Humidity
line_color: blue
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_kitchen_01_humidity
name: Humidity
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
name: Illuminance
line_color: red
font_size: 75
font_size_header: 12
entities:
- entity: sensor.presence_kitchen_light_level_2
name: Illuminance
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
name: Ppm25
line_color: green
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_kitchen_02_pm25
name: Ppm25
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.kitchen_sink_01
name: 'Kitchen Sink #01'
icon: mdi:ceiling-light
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.kitchen_led_01
name: 'Kitchen LED #01'
icon: mdi:led-strip-variant
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.kitchen_ceiling_01
name: 'Kitchen Ceiling #1'
icon: mdi:dome-light
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.kitchen_ceiling_02
name: 'Kitchen Ceiling #2'
icon: mdi:dome-light
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:layout-break
- type: vertical-stack
cards:
- type: 'custom:webrtc-camera'
url: 'rtsp://10.10.11.110:8554/kitchen'
title: 'Kitchen'
muted: true
mode: webrtc,mse
- type: custom:layout-break
- type: vertical-stack
cards:
# - type: entities
# title: Lights
# show_header_toggle: false
# entities:
# - entity: timer.app_lighting_kitchen
# - type: custom:flipdown-timer-card
# entity: timer.app_lighting_kitchen
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack
cards:
- type: button
name: Occupancy
entity: input_boolean.occupancy_kitchen
- type: button
name: Operating Mode
entity: input_boolean.manually_operated_light_kitchen
- type: button
name: Occupants
entity: input_number.occupants_kitchen
- type: custom:mini-media-player
entity: media_player.kitchen_max
artwork: cover

View File

@ -1,397 +1,528 @@
--- ---
title: Living Room title: Living Room
icon: mdi:sofa icon: 'mdi:sofa'
panel: true panel: true
visible: visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex - user: 1614b22cbef54f979741cf8a6b3413ec
- user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya - user: 76e8af2547254ef0ab523ae1ad0bf81a
cards: cards:
- type: custom:layout-card - type: 'custom:layout-card'
layout: vertical layout_type: 'custom:vertical-layout'
layout:
max_cols: 3
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-chips-card - type: 'custom:mushroom-chips-card'
chips: chips:
- type: template - type: template
icon: "{% if is_state('binary_sensor.presence_living_room_sensor_1', 'on') -%}mdi:account-multiple{%- else -%}mdi:account-off-outline{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.presence_living_room_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}" {% if is_state('binary_sensor.presence_living_room_sensor_1',
badge_icon: mdi:numeric-1-circle 'on') -%}mdi:account-multiple{%- else
-%}mdi:account-off-outline{%- endif %}
icon_color: >-
{% if is_state('binary_sensor.presence_living_room_sensor_1',
'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}
badge_icon: 'mdi:numeric-1-circle'
badge_color: green badge_color: green
entity: binary_sensor.presence_living_room_sensor_1 entity: binary_sensor.presence_living_room_sensor_1
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.window_living_room_front_left_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.window_living_room_front_left_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
is_state('binary_sensor.window_living_room_front_left_01_contact',
'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif
%}
icon_color: >-
{% if
is_state('binary_sensor.window_living_room_front_left_01_contact',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: binary_sensor.window_living_room_front_left_01_contact entity: binary_sensor.window_living_room_front_left_01_contact
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.window_living_room_front_center_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.window_living_room_front_center_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
is_state('binary_sensor.window_living_room_front_center_01_contact',
'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif
%}
icon_color: >-
{% if
is_state('binary_sensor.window_living_room_front_center_01_contact',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: binary_sensor.window_living_room_front_center_01_contact entity: binary_sensor.window_living_room_front_center_01_contact
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.window_living_room_front_right_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.window_living_room_front_right_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
is_state('binary_sensor.window_living_room_front_right_01_contact',
'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif
%}
icon_color: >-
{% if
is_state('binary_sensor.window_living_room_front_right_01_contact',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: binary_sensor.window_living_room_front_right_01_contact entity: binary_sensor.window_living_room_front_right_01_contact
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.window_living_room_side_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.window_living_room_side_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
is_state('binary_sensor.window_living_room_side_01_contact',
'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif
%}
icon_color: >-
{% if
is_state('binary_sensor.window_living_room_side_01_contact',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: binary_sensor.window_living_room_side_01_contact entity: binary_sensor.window_living_room_side_01_contact
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.smoke_living_room_01_smoke', 'on') -%}mdi:smoke-detector-variant-alert{%- else -%}mdi:smoke-detector-variant{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.smoke_living_room_01_smoke', 'on') -%}#D40909{%- else -%}#44739E{%- endif %}" {% if is_state('binary_sensor.smoke_living_room_01_smoke',
'on') -%}mdi:smoke-detector-variant-alert{%- else
-%}mdi:smoke-detector-variant{%- endif %}
icon_color: >-
{% if is_state('binary_sensor.smoke_living_room_01_smoke',
'on') -%}#D40909{%- else -%}#44739E{%- endif %}
entity: binary_sensor.smoke_living_room_01_smoke entity: binary_sensor.smoke_living_room_01_smoke
tap_action: tap_action:
action: more-info action: more-info
- type: custom:stack-in-card - type: 'custom:bubble-card'
card_type: separator
icon: 'mdi:sofa'
sub_button:
- name: Temp
icon: 'mdi:thermometer-lines'
entity: sensor.climate_living_room_01_temperature
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Humidity
icon: 'mdi:water-percent'
entity: sensor.climate_living_room_01_humidity
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Light Level
icon: 'mdi:weather-sunny'
entity: sensor.presence_living_room_light_level
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
styles: |
.bubble-feedback-container {
margin: 0px;
}
- type: vertical-stack
cards: cards:
- type: grid - type: 'custom:bubble-card'
columns: 2 card_type: button
square: false button_type: switch
cards: name: Occupancy
- type: custom:mushroom-entity-card entity: input_boolean.occupancy_living_room
entity: input_boolean.living_room_light_state icon: 'mdi:account-multiple'
name: Living Room show_state: false
icon: mdi:lightbulb-group show_background: false
tap_action: tap_action:
action: toggle action: toggle
card_mod: button_action:
style: "ha-card { border: none; }" tap_action:
- type: custom:paper-buttons-row action: more-info
preset: mushroom sub_button:
styles: - entity: sensor.living_room_01_person_count
justify-content: flex-end icon: 'mdi:account-group'
base_config: show_state: false
styles: show_background: true
button: - entity: sensor.living_room_01_cat_count
margin-top: 12px icon: 'mdi:cat'
margin-right: 12px show_state: false
buttons: show_background: true
- layout: icon - icon: 'mdi:brightness-auto'
icon: mdi:lightbulb-group entity: input_boolean.manually_operated_light_living_room
show_state: false
show_background: true
tap_action:
action: toggle
styles: >
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'on' ? 'var(--light-theme-disabled-color)' : 'var(--light-theme-disabled-color)' } !important;
}
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['sensor.living_room_01_person_count'].state > 0 ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-2 {
background-color: white !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${ hass.states['sensor.living_room_01_cat_count'].state > 0 ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-3 {
background-color: white !important;
}
${subButtonIcon[2].setAttribute("icon", hass.states['input_boolean.manually_operated_light_living_room'].state === 'on' ? 'mdi:hand-front-right' : 'mdi:brightness-auto')}
- type: 'custom:bubble-card'
card_type: button
button_type: switch
name: Light
entity: input_boolean.living_room_light_state
icon: 'mdi:lightbulb-group'
show_state: true
show_background: false
tap_action:
action: toggle
button_action:
tap_action:
action: navigate
navigation_path: '#popup-living-room-light'
sub_button:
- icon: 'mdi:lightbulb-group'
entity: scene.living_room_all
show_state: false
show_background: true
tap_action: tap_action:
action: call-service action: call-service
service: input_select.select_option service: input_select.select_option
service_data: service_data:
entity_id: input_select.living_room_scenes entity_id: input_select.living_room_scenes
option: "All" option: All
styles: - icon: 'mdi:ceiling-light-multiple'
button: entity: scene.living_room_ceiling_only
color: "{% if is_state('input_boolean.living_room_light_state', 'on') and is_state('input_select.living_room_scenes', 'All') %}#FFC107{% else %}#44739E{% endif %}" show_state: false
background-color: "{% if is_state('input_boolean.living_room_light_state', 'on') and is_state('input_select.living_room_scenes', 'All') %}#FFF3D7{% else %}#F4F4F4{% endif %}" show_background: true
- layout: icon
icon: mdi:ceiling-light-multiple
tap_action: tap_action:
action: call-service action: call-service
service: input_select.select_option service: input_select.select_option
service_data: service_data:
entity_id: input_select.living_room_scenes entity_id: input_select.living_room_scenes
option: "Ceiling Only" option: Ceiling Only
styles: - icon: 'mdi:ceiling-light-multiple'
button: entity: scene.living_room_ceiling_group_1_only
color: "{% if is_state('input_boolean.living_room_light_state', 'on') and is_state('input_select.living_room_scenes', 'Ceiling Only') %}#FFC107{% else %}#44739E{% endif %}" show_state: false
background-color: "{% if is_state('input_boolean.living_room_light_state', 'on') and is_state('input_select.living_room_scenes', 'Ceiling Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}" show_background: true
- layout: icon
icon: mdi:floor-lamp-torchiere
tap_action: tap_action:
action: call-service action: call-service
service: input_select.select_option service: input_select.select_option
service_data: service_data:
entity_id: input_select.living_room_scenes entity_id: input_select.living_room_scenes
option: "Floor Only" option: Ceiling Group 1 Only
styles: - icon: 'mdi:ceiling-light-multiple'
button: entity: scene.living_room_ceiling_group_2_only
color: "{% if is_state('input_boolean.living_room_light_state', 'on') and is_state('input_select.living_room_scenes', 'Floor Only') %}#FFC107{% else %}#44739E{% endif %}" show_state: false
background-color: "{% if is_state('input_boolean.living_room_light_state', 'on') and is_state('input_select.living_room_scenes', 'Floor Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}" show_background: true
- type: vertical-stack tap_action:
cards: action: call-service
- type: horizontal-stack service: input_select.select_option
cards: service_data:
- type: custom:mini-graph-card entity_id: input_select.living_room_scenes
# name: Temperature option: Ceiling Group 2 Only
line_color: orange - icon: 'mdi:floor-lamp-torchiere-outline'
font_size: 75 entity: scene.living_room_floor_only
font_size_header: 12 show_state: false
entities: show_background: true
- entity: sensor.climate_living_room_01_temperature tap_action:
# name: Temperature action: call-service
hours_to_show: 24 service: input_select.select_option
points_per_hour: 4 service_data:
align_icon: state entity_id: input_select.living_room_scenes
align_state: left option: Floor Only
show: styles: |
name: false .bubble-sub-button-1 > ha-icon {
- type: custom:mini-graph-card color: ${hass.states['input_select.living_room_scenes'].state === 'All' ? 'rgb(255, 152, 0)' : ''} !important;
# name: Humidity }
line_color: blue .bubble-sub-button-2 > ha-icon {
font_size: 75 color: ${hass.states['input_select.living_room_scenes'].state === 'Ceiling Only' ? 'rgb(255, 152, 0)' : ''} !important;
font_size_header: 12 }
entities: .bubble-sub-button-3 > ha-icon {
- entity: sensor.climate_living_room_01_humidity color: ${hass.states['input_select.living_room_scenes'].state === 'Ceiling Group 1 Only' ? 'rgb(255, 152, 0)' : ''} !important;
# name: Humidity }
hours_to_show: 24 .bubble-sub-button-4 > ha-icon {
points_per_hour: 4 color: ${hass.states['input_select.living_room_scenes'].state === 'Ceiling Group 2 Only' ? 'rgb(255, 152, 0)' : ''} !important;
align_icon: state }
align_state: left .bubble-sub-button-5 > ha-icon {
show: color: ${hass.states['input_select.living_room_scenes'].state === 'Floor Only' ? 'rgb(255, 152, 0)' : ''} !important;
name: false }
- type: custom:mini-graph-card
# name: Illuminance - type: 'custom:layout-break'
line_color: red - type: 'vertical-stack'
font_size: 75
font_size_header: 12
entities:
- entity: sensor.presence_living_room_light_level
# name: Illuminance
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.living_room_ceiling_all
name: All Ceiling Lings
icon: mdi:ceiling-light-multiple
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.living_room_floor_lamp_01
name: Floor Lamp
icon: mdi:floor-lamp-torchiere-outline
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.living_room_ceiling_group_1
name: 'Ceiling 1 (Couch)'
icon: mdi:ceiling-light-multiple
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.living_room_ceiling_group_2
name: 'Ceiling 2 (TV)'
icon: mdi:ceiling-light-multiple
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.living_room_tiles_01
name: 'Tile'
icon: mdi:star-box-multiple
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.living_room_strip_01
name: 'LED Strip'
icon: mdi:led-strip-variant
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.christmas_tree
name: 'Christmas Tree'
icon: mdi:string-lights
show_brightness_control: false
collapsible_controls: false
use_light_color: false
- type: custom:layout-break
- type: vertical-stack
cards: cards:
- type: 'custom:webrtc-camera' - type: 'custom:webrtc-camera'
url: 'rtsp://10.10.11.110:8554/living-room-01' url: 'rtsp://10.10.11.110:8554/living-room-01'
title: 'Living Room 1' title: Living Room 1
muted: true muted: true
mode: webrtc,mse mode: 'webrtc,mse'
- type: 'custom:webrtc-camera' - type: 'custom:webrtc-camera'
url: 'rtsp://10.10.11.110:8554/living-room-02' url: 'rtsp://10.10.11.110:8554/living-room-02'
title: 'Living Room 2' title: Living Room 2
muted: true muted: true
mode: webrtc,mse mode: 'webrtc,mse'
- type: custom:layout-break
- type: vertical-stack - type: 'custom:layout-break'
- type: 'vertical-stack'
cards: cards:
# - type: entities - type: 'custom:mini-media-player'
# title: Lights
# show_header_toggle: false
# entities:
# - entity: timer.app_lighting_kitchen
# - type: custom:flipdown-timer-card
# entity: timer.app_lighting_kitchen
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack
cards:
- type: button
name: Occupancy
entity: input_boolean.occupancy_living_room
- type: custom:button-card
name: Operating Mode
entity: input_boolean.manually_operated_light_living_room
state:
- value: 'on'
icon: mdi:hand-front-right
color: orange
- value: 'off'
icon: mdi:brightness-auto
- type: button
name: Occupants
entity: input_number.occupants_living_room
- type: custom:mini-media-player
entity: media_player.pioneer_vsx_lx505_f5bae6
artwork: cover
# - type: custom:mini-media-player
# entity: media_player.living_room_pair
# artwork: cover
- type: custom:mini-media-player
entity: media_player.living_room_speaker entity: media_player.living_room_speaker
artwork: cover artwork: cover
# - type: custom:mini-media-player - type: 'custom:bubble-card'
# entity: media_player.living_room_max_1 card_type: button
# artwork: cover entity: remote.living_room_harmony_hub
# - type: custom:mini-media-player
# entity: media_player.living_room_max_2
# artwork: cover
- type: custom:mini-media-player
entity: media_player.living_room_1
artwork: cover
- type: custom:mini-media-player
entity: media_player.nvidia_shield_tv_living_room
artwork: cover
- type: media-control
entity: media_player.onkyo_receiver
- type: conditional
conditions:
- condition: state
entity: media_player.onkyo_receiver
state: "on"
card:
type: horizontal-stack
cards:
- name: Nvidia ShieldTV
entity: script.receiver_switch_to_shield_tv
type: button
icon: mdi:youtube-tv
tap_action: tap_action:
action: toggle action: toggle
hold_action: button_action:
tap_action:
action: more-info action: more-info
show_name: false sub_button:
show_icon: true - entity: select.living_room_harmony_hub_activities
color: "{% if state_attr('media_player.onkyo_receiver', 'source') == 'Nvidia Shield TV' -%}#FFC107{%- else -%}#44739E{%- endif %}" name: TV
color_type: icon icon: 'mdi:television'
- name: PS4 show_background: true
entity: script.receiver_switch_to_playstation
type: button
icon: mdi:sony-playstation
tap_action:
action: toggle
hold_action:
action: more-info
show_name: false
show_icon: true
- name: Win11
entity: script.receiver_switch_to_windows
type: button
icon: mdi:microsoft-windows
tap_action:
action: toggle
show_name: false
show_icon: true
show_state: false show_state: false
- name: Cameras
entity: script.receiver_switch_to_security
type: button
icon: mdi:camera-wireless
tap_action: tap_action:
action: toggle action: select.select_option
hold_action: data:
action: more-info option: ShTV+AVR+TV
show_name: false - entity: select.living_room_harmony_hub_activities
show_icon: true name: Projector
icon: 'mdi:projector'
show_background: true
show_state: false
tap_action:
action: select.select_option
data:
option: ShTV+AVR+Prj
styles: >
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'on' ? 'var(--light-theme-disabled-color)' : 'var(--light-theme-disabled-color)' } !important;
}
/* .bubble-button-card-container { background-color: ${state === 'on' ? 'rgb(255, 150, 0)' : ''} !important; opacity: 1 !important; } */
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['remote.living_room_harmony_hub'].attributes.current_activity === 'ShTV+AVR+TV' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-2 {
background-color: white !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${ hass.states['remote.living_room_harmony_hub'].attributes.current_activity === 'ShTV+AVR+Prj' ? 'rgb(255, 152, 0)' : '' } !important;
}
- type: conditional - type: conditional
conditions: conditions:
- condition: state - entity: remote.living_room_harmony_hub
entity: media_player.onkyo_receiver state: 'on'
state: "on"
- condition: state
entity: switch.onkyo_source_nvidia_shield_tv
state: "on"
card: card:
type: horizontal-stack type: 'custom:bubble-card'
card_type: button
button_type: switch
card_layout: normal
name: Pioneer VSX-LX505
entity: media_player.onkyo_receiver
icon: 'mdi:audio-video'
show_state: true
show_background: false
show_attribute: true
attribute: source
button_action:
tap_action: null
action: toggle
sub_button:
- entity: script.receiver_switch_to_shield_tv
icon: 'mdi:television-classic'
show_background: true
show_state: false
tap_action:
action: toggle
- entity: script.receiver_switch_to_playstation
icon: 'mdi:controller'
show_background: true
show_state: false
tap_action:
action: toggle
- entity: script.receiver_switch_to_security
icon: 'mdi:camera-metering-matrix'
show_background: true
show_state: false
tap_action:
action: toggle
- entity: script.receiver_switch_to_windows
icon: 'mdi:laptop'
show_background: true
show_state: false
tap_action:
action: toggle
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'on' ? 'var(--light-theme-disabled-color)' : 'var(--light-theme-disabled-color)' } !important;
}
.bubble-sub-button-1 {
display: ${hass.states['media_player.onkyo_receiver'].state === 'off' ? 'none' : ''} !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['media_player.onkyo_receiver'].attributes.source === 'Nvidia Shield TV' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-2 {
display: ${hass.states['media_player.onkyo_receiver'].state === 'off' ? 'none' : ''} !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${ hass.states['media_player.onkyo_receiver'].attributes.source === 'PlayStation 4 Pro' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-3 {
display: ${hass.states['media_player.onkyo_receiver'].state === 'off' ? 'none' : ''} !important;
}
.bubble-sub-button-3 > ha-icon {
color: ${ hass.states['media_player.onkyo_receiver'].attributes.source === 'Unifi Protect' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-4 {
display: ${hass.states['media_player.onkyo_receiver'].state === 'off' ? 'none' : ''} !important;
}
.bubble-sub-button-4 > ha-icon {
color: ${ hass.states['media_player.onkyo_receiver'].attributes.source === 'Windows 11' ? 'rgb(255, 152, 0)' : '' } !important;
}
- type: 'custom:bubble-card'
card_type: button
entity: media_player.nvidia_shield_tv_living_room_2
sub_button:
- entity: switch.android_tv_youtube
icon: 'mdi:youtube'
show_background: true
show_state: false
tap_action:
action: toggle
- entity: switch.android_tv_netflix
icon: 'mdi:netflix'
show_background: true
show_state: false
tap_action:
action: toggle
- entity: switch.android_tv_plex
icon: 'mdi:plex'
show_background: true
show_state: false
tap_action:
action: toggle
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'on' ? 'var(--light-theme-disabled-color)' : 'var(--light-theme-disabled-color)' } !important;
}
.bubble-sub-button-1 {
display: ${hass.states['media_player.nvidia_shield_tv_living_room_2'].state === 'off' ? 'none' : ''} !important;
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['media_player.nvidia_shield_tv_living_room_2'].attributes.app_id === 'com.google.android.youtube.tv' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-2 {
display: ${hass.states['media_player.nvidia_shield_tv_living_room_2'].state === 'off' ? 'none' : ''} !important;
background-color: white !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${ hass.states['media_player.nvidia_shield_tv_living_room_2'].attributes.app_id === 'com.netflix.ninja' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-3 {
display: ${hass.states['media_player.nvidia_shield_tv_living_room_2'].state === 'off' ? 'none' : ''} !important;
background-color: white !important;
}
.bubble-sub-button-3 > ha-icon {
color: ${ hass.states['media_player.nvidia_shield_tv_living_room_2'].attributes.app_id === 'com.plexapp.android' ? 'rgb(255, 152, 0)' : '' } !important;
}
- type: vertical-stack
cards: cards:
- name: youtube - type: 'custom:bubble-card'
entity: switch.android_tv_youtube card_type: pop-up
type: button hash: '#popup-living-room-light'
icon: mdi:youtube name: Kitchen
icon: 'mdi:fridge'
- type: 'custom:bubble-card'
card_type: button
button_type: slider
name: All Ceiling Lights
entity: light.living_room_ceiling_all
show_state: true
tap_action: tap_action:
action: toggle action: toggle
hold_action: button_action:
action: more-info
show_name: false
show_icon: true
- name: Netflix
entity: switch.android_tv_netflix
type: button
icon: mdi:netflix
tap_action: tap_action:
action: toggle action: toggle
hold_action: - type: 'custom:bubble-card'
action: more-info card_type: button
show_name: false button_type: slider
show_icon: true name: Floor Lamp
- name: Plex entity: light.living_room_floor_lamp
entity: switch.android_tv_plex show_state: true
type: button tap_action:
icon: mdi:plex action: toggle
button_action:
tap_action:
action: toggle
- type: 'custom:bubble-card'
card_type: button
button_type: slider
name: Ceiling 1 (Couch)
entity: light.living_room_ceiling_group_1
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle
- type: 'custom:bubble-card'
card_type: button
button_type: slider
name: Ceiling 2 (TV)
entity: light.living_room_ceiling_group_2
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle
- type: 'custom:bubble-card'
card_type: button
button_type: slider
name: Tile
entity: light.living_room_tiles_01
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle
- type: 'custom:bubble-card'
card_type: button
button_type: slider
name: LED Strip
entity: light.living_room_strip_01
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle
- type: 'custom:bubble-card'
card_type: button
button_type: slider
name: Christmas Tree
entity: light.christmas_tree
show_state: true
tap_action:
action: toggle
button_action:
tap_action: tap_action:
action: toggle action: toggle
hold_action:
action: more-info
show_name: false
show_icon: true
# - name: Go to sleep
# entity: script.sleep
# type: button
# tap_action:
# action: toggle
# icon: mdi:sleep
# hold_action:
# action: more-info
# show_name: true
# show_icon: true
- type: media-control
entity: media_player.playstation_4_pro
- type: entities
entities:
- remote.living_room_harmony_hub
- select.living_room_harmony_hub_activities

View File

@ -0,0 +1,397 @@
---
title: Living Room
icon: mdi:sofa
panel: true
visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex
- user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya
cards:
- type: custom:layout-card
layout: vertical
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-chips-card
chips:
- type: template
icon: "{% if is_state('binary_sensor.presence_living_room_sensor_1', 'on') -%}mdi:account-multiple{%- else -%}mdi:account-off-outline{%- endif %}"
icon_color: "{% if is_state('binary_sensor.presence_living_room_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
badge_icon: mdi:numeric-1-circle
badge_color: green
entity: binary_sensor.presence_living_room_sensor_1
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.window_living_room_front_left_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.window_living_room_front_left_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.window_living_room_front_left_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.window_living_room_front_center_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.window_living_room_front_center_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.window_living_room_front_center_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.window_living_room_front_right_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.window_living_room_front_right_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.window_living_room_front_right_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.window_living_room_side_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.window_living_room_side_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.window_living_room_side_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.smoke_living_room_01_smoke', 'on') -%}mdi:smoke-detector-variant-alert{%- else -%}mdi:smoke-detector-variant{%- endif %}"
icon_color: "{% if is_state('binary_sensor.smoke_living_room_01_smoke', 'on') -%}#D40909{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.smoke_living_room_01_smoke
tap_action:
action: more-info
- type: custom:stack-in-card
cards:
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: input_boolean.living_room_light_state
name: Living Room
icon: mdi:lightbulb-group
tap_action:
action: toggle
card_mod:
style: "ha-card { border: none; }"
- type: custom:paper-buttons-row
preset: mushroom
styles:
justify-content: flex-end
base_config:
styles:
button:
margin-top: 12px
margin-right: 12px
buttons:
- layout: icon
icon: mdi:lightbulb-group
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.living_room_scenes
option: "All"
styles:
button:
color: "{% if is_state('input_boolean.living_room_light_state', 'on') and is_state('input_select.living_room_scenes', 'All') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.living_room_light_state', 'on') and is_state('input_select.living_room_scenes', 'All') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:ceiling-light-multiple
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.living_room_scenes
option: "Ceiling Only"
styles:
button:
color: "{% if is_state('input_boolean.living_room_light_state', 'on') and is_state('input_select.living_room_scenes', 'Ceiling Only') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.living_room_light_state', 'on') and is_state('input_select.living_room_scenes', 'Ceiling Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:floor-lamp-torchiere
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.living_room_scenes
option: "Floor Only"
styles:
button:
color: "{% if is_state('input_boolean.living_room_light_state', 'on') and is_state('input_select.living_room_scenes', 'Floor Only') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.living_room_light_state', 'on') and is_state('input_select.living_room_scenes', 'Floor Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
# name: Temperature
line_color: orange
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_living_room_01_temperature
# name: Temperature
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
# name: Humidity
line_color: blue
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_living_room_01_humidity
# name: Humidity
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
# name: Illuminance
line_color: red
font_size: 75
font_size_header: 12
entities:
- entity: sensor.presence_living_room_light_level
# name: Illuminance
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.living_room_ceiling_all
name: All Ceiling Lings
icon: mdi:ceiling-light-multiple
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.living_room_floor_lamp_01
name: Floor Lamp
icon: mdi:floor-lamp-torchiere-outline
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.living_room_ceiling_group_1
name: 'Ceiling 1 (Couch)'
icon: mdi:ceiling-light-multiple
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.living_room_ceiling_group_2
name: 'Ceiling 2 (TV)'
icon: mdi:ceiling-light-multiple
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.living_room_tiles_01
name: 'Tile'
icon: mdi:star-box-multiple
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.living_room_strip_01
name: 'LED Strip'
icon: mdi:led-strip-variant
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.christmas_tree
name: 'Christmas Tree'
icon: mdi:string-lights
show_brightness_control: false
collapsible_controls: false
use_light_color: false
- type: custom:layout-break
- type: vertical-stack
cards:
- type: 'custom:webrtc-camera'
url: 'rtsp://10.10.11.110:8554/living-room-01'
title: 'Living Room 1'
muted: true
mode: webrtc,mse
- type: 'custom:webrtc-camera'
url: 'rtsp://10.10.11.110:8554/living-room-02'
title: 'Living Room 2'
muted: true
mode: webrtc,mse
- type: custom:layout-break
- type: vertical-stack
cards:
# - type: entities
# title: Lights
# show_header_toggle: false
# entities:
# - entity: timer.app_lighting_kitchen
# - type: custom:flipdown-timer-card
# entity: timer.app_lighting_kitchen
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack
cards:
- type: button
name: Occupancy
entity: input_boolean.occupancy_living_room
- type: custom:button-card
name: Operating Mode
entity: input_boolean.manually_operated_light_living_room
state:
- value: 'on'
icon: mdi:hand-front-right
color: orange
- value: 'off'
icon: mdi:brightness-auto
- type: button
name: Occupants
entity: input_number.occupants_living_room
- type: custom:mini-media-player
entity: media_player.pioneer_vsx_lx505_f5bae6
artwork: cover
# - type: custom:mini-media-player
# entity: media_player.living_room_pair
# artwork: cover
- type: custom:mini-media-player
entity: media_player.living_room_speaker
artwork: cover
# - type: custom:mini-media-player
# entity: media_player.living_room_max_1
# artwork: cover
# - type: custom:mini-media-player
# entity: media_player.living_room_max_2
# artwork: cover
- type: custom:mini-media-player
entity: media_player.living_room_1
artwork: cover
- type: custom:mini-media-player
entity: media_player.nvidia_shield_tv_living_room
artwork: cover
- type: media-control
entity: media_player.onkyo_receiver
- type: conditional
conditions:
- condition: state
entity: media_player.onkyo_receiver
state: "on"
card:
type: horizontal-stack
cards:
- name: Nvidia ShieldTV
entity: script.receiver_switch_to_shield_tv
type: button
icon: mdi:youtube-tv
tap_action:
action: toggle
hold_action:
action: more-info
show_name: false
show_icon: true
color: "{% if state_attr('media_player.onkyo_receiver', 'source') == 'Nvidia Shield TV' -%}#FFC107{%- else -%}#44739E{%- endif %}"
color_type: icon
- name: PS4
entity: script.receiver_switch_to_playstation
type: button
icon: mdi:sony-playstation
tap_action:
action: toggle
hold_action:
action: more-info
show_name: false
show_icon: true
- name: Win11
entity: script.receiver_switch_to_windows
type: button
icon: mdi:microsoft-windows
tap_action:
action: toggle
show_name: false
show_icon: true
show_state: false
- name: Cameras
entity: script.receiver_switch_to_security
type: button
icon: mdi:camera-wireless
tap_action:
action: toggle
hold_action:
action: more-info
show_name: false
show_icon: true
- type: conditional
conditions:
- condition: state
entity: media_player.onkyo_receiver
state: "on"
- condition: state
entity: switch.onkyo_source_nvidia_shield_tv
state: "on"
card:
type: horizontal-stack
cards:
- name: youtube
entity: switch.android_tv_youtube
type: button
icon: mdi:youtube
tap_action:
action: toggle
hold_action:
action: more-info
show_name: false
show_icon: true
- name: Netflix
entity: switch.android_tv_netflix
type: button
icon: mdi:netflix
tap_action:
action: toggle
hold_action:
action: more-info
show_name: false
show_icon: true
- name: Plex
entity: switch.android_tv_plex
type: button
icon: mdi:plex
tap_action:
action: toggle
hold_action:
action: more-info
show_name: false
show_icon: true
# - name: Go to sleep
# entity: script.sleep
# type: button
# tap_action:
# action: toggle
# icon: mdi:sleep
# hold_action:
# action: more-info
# show_name: true
# show_icon: true
- type: media-control
entity: media_player.playstation_4_pro
- type: entities
entities:
- remote.living_room_harmony_hub
- select.living_room_harmony_hub_activities

View File

@ -1,283 +1,382 @@
--- ---
title: Master Bedroom title: Master Bedroom
icon: mdi:bed-king icon: 'mdi:bed-king'
panel: true panel: true
visible: visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex - user: 1614b22cbef54f979741cf8a6b3413ec
- user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya - user: 76e8af2547254ef0ab523ae1ad0bf81a
cards: cards:
- type: custom:layout-card - type: 'custom:layout-card'
layout: vertical layout_type: 'custom:vertical-layout'
layout:
max_cols: 3
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:mushroom-chips-card - type: 'custom:mushroom-chips-card'
chips: chips:
- type: template - type: template
icon: "{% if is_state('binary_sensor.presence_bedroom_master_sensor_1', 'on') -%}mdi:account-multiple{%- else -%}mdi:account-off-outline{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.presence_bedroom_master_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}" {% if
badge_icon: mdi:numeric-1-circle is_state('binary_sensor.presence_bedroom_master_sensor_1',
'on') -%}mdi:account-multiple{%- else
-%}mdi:account-off-outline{%- endif %}
icon_color: >-
{% if
is_state('binary_sensor.presence_bedroom_master_sensor_1',
'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}
badge_icon: 'mdi:numeric-1-circle'
badge_color: green badge_color: green
entity: binary_sensor.presence_bedroom_master_sensor_1 entity: binary_sensor.presence_bedroom_master_sensor_1
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.window_bedroom_master_left_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.window_bedroom_master_left_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
is_state('binary_sensor.window_bedroom_master_left_01_contact',
'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif
%}
icon_color: >-
{% if
is_state('binary_sensor.window_bedroom_master_left_01_contact',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: binary_sensor.window_bedroom_master_left_01_contact entity: binary_sensor.window_bedroom_master_left_01_contact
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.window_bedroom_master_center_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.window_bedroom_master_center_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
is_state('binary_sensor.window_bedroom_master_center_01_contact',
'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif
%}
icon_color: >-
{% if
is_state('binary_sensor.window_bedroom_master_center_01_contact',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: binary_sensor.window_bedroom_master_center_01_contact entity: binary_sensor.window_bedroom_master_center_01_contact
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.window_bedroom_master_right_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.window_bedroom_master_right_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
is_state('binary_sensor.window_bedroom_master_right_01_contact',
'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif
%}
icon_color: >-
{% if
is_state('binary_sensor.window_bedroom_master_right_01_contact',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: binary_sensor.window_bedroom_master_right_01_contact entity: binary_sensor.window_bedroom_master_right_01_contact
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.door_bedroom_master_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.door_bedroom_master_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if is_state('binary_sensor.door_bedroom_master_01_contact',
'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}
icon_color: >-
{% if is_state('binary_sensor.door_bedroom_master_01_contact',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: binary_sensor.door_bedroom_master_01_contact entity: binary_sensor.door_bedroom_master_01_contact
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.door_bedroom_master_closet_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.door_bedroom_master_closet_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
is_state('binary_sensor.door_bedroom_master_closet_01_contact',
'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}
icon_color: >-
{% if
is_state('binary_sensor.door_bedroom_master_closet_01_contact',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: binary_sensor.door_bedroom_master_closet_01_contact entity: binary_sensor.door_bedroom_master_closet_01_contact
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.smoke_bedroom_master_01_smoke', 'on') -%}mdi:smoke-detector-variant-alert{%- else -%}mdi:smoke-detector-variant{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.smoke_bedroom_master_01_smoke', 'on') -%}#D40909{%- else -%}#44739E{%- endif %}" {% if is_state('binary_sensor.smoke_bedroom_master_01_smoke',
'on') -%}mdi:smoke-detector-variant-alert{%- else
-%}mdi:smoke-detector-variant{%- endif %}
icon_color: >-
{% if is_state('binary_sensor.smoke_bedroom_master_01_smoke',
'on') -%}#D40909{%- else -%}#44739E{%- endif %}
entity: binary_sensor.smoke_bedroom_master_01_smoke entity: binary_sensor.smoke_bedroom_master_01_smoke
tap_action: tap_action:
action: more-info action: more-info
- type: custom:stack-in-card - type: 'custom:bubble-card'
card_type: separator
icon: 'mdi:sofa'
sub_button:
- name: Temp
icon: 'mdi:thermometer-lines'
entity: sensor.climate_bedroom_master_01_temperature
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Humidity
icon: 'mdi:water-percent'
entity: sensor.climate_bedroom_master_01_humidity
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Light Level
icon: 'mdi:weather-sunny'
entity: sensor.presence_bedroom_master_light_level
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: PM2.5
icon: 'mdi:blur'
entity: sensor.climate_bedroom_master_02_pm25
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
styles: |
.bubble-feedback-container {
margin: 0px;
}
- type: vertical-stack
cards: cards:
- type: grid - type: 'custom:bubble-card'
columns: 2 card_type: button
square: false button_type: switch
cards: name: Occupancy
- type: custom:mushroom-entity-card entity: input_boolean.occupancy_bedroom_master
entity: input_boolean.bedroom_master_light_state icon: 'mdi:account-multiple'
name: Master Bedroom show_state: false
icon: mdi:lightbulb-group show_background: false
tap_action: tap_action:
action: toggle action: toggle
card_mod: button_action:
style: "ha-card { border: none; }" tap_action:
- type: custom:paper-buttons-row action: more-info
preset: mushroom sub_button:
styles: - entity: sensor.bedroom_master_person_count
justify-content: flex-end icon: 'mdi:account-group'
base_config: show_state: false
styles: show_background: true
button: - entity: sensor.bedroom_master_cat_count
margin-top: 12px icon: 'mdi:cat'
margin-right: 12px show_state: false
buttons: show_background: true
- layout: icon - icon: 'mdi:brightness-auto'
icon: mdi:lightbulb-group entity: input_boolean.manually_operated_light_bedroom_master
show_state: false
show_background: true
tap_action:
action: toggle
styles: >
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'on' ? 'var(--light-theme-disabled-color)' : 'var(--light-theme-disabled-color)' } !important;
}
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['sensor.bedroom_master_person_count'].state > 0 ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-2 {
background-color: white !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${ hass.states['sensor.bedroom_master_cat_count'].state > 0 ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-3 {
background-color: white !important;
} ${subButtonIcon[2].setAttribute("icon", hass.states['input_boolean.manually_operated_light_bedroom_master'].state === 'on' ? 'mdi:hand-front-right' : 'mdi:brightness-auto')}
- type: 'custom:bubble-card'
card_type: button
button_type: switch
name: Light
entity: input_boolean.bedroom_master_light_state
icon: 'mdi:lightbulb-group'
show_state: true
show_background: false
tap_action:
action: toggle
button_action:
tap_action:
action: navigate
navigation_path: '#popup-bedroom-master-light'
sub_button:
- icon: 'mdi:lightbulb-group'
entity: scene.bedroom_master_all
show_state: false
show_background: true
tap_action: tap_action:
action: call-service action: call-service
service: input_select.select_option service: input_select.select_option
service_data: service_data:
entity_id: input_select.bedroom_master_scenes entity_id: input_select.bedroom_master_scenes
option: "All" option: All
styles: - icon: 'mdi:ceiling-light-multiple'
button: entity: scene.bedroom_master_ceiling_only
color: "{% if is_state('input_boolean.bedroom_master_light_state', 'on') and is_state('input_select.bedroom_master_scenes', 'All') %}#FFC107{% else %}#44739E{% endif %}" show_state: false
background-color: "{% if is_state('input_boolean.bedroom_master_light_state', 'on') and is_state('input_select.bedroom_master_scenes', 'All') %}#FFF3D7{% else %}#F4F4F4{% endif %}" show_background: true
- layout: icon
icon: mdi:ceiling-light-multiple
tap_action: tap_action:
action: call-service action: call-service
service: input_select.select_option service: input_select.select_option
service_data: service_data:
entity_id: input_select.bedroom_master_scenes entity_id: input_select.bedroom_master_scenes
option: "Ceiling Only" option: Ceiling Only
styles: - icon: 'mdi:floor-lamp-torchiere'
button: entity: scene.bedroom_master_floor_only
color: "{% if is_state('input_boolean.bedroom_master_light_state', 'on') and is_state('input_select.bedroom_master_scenes', 'Ceiling Only') %}#FFC107{% else %}#44739E{% endif %}" show_state: false
background-color: "{% if is_state('input_boolean.bedroom_master_light_state', 'on') and is_state('input_select.bedroom_master_scenes', 'Ceiling Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}" show_background: true
- layout: icon
icon: mdi:floor-lamp-torchiere
tap_action: tap_action:
action: call-service action: call-service
service: input_select.select_option service: input_select.select_option
service_data: service_data:
entity_id: input_select.bedroom_master_scenes entity_id: input_select.bedroom_master_scenes
option: "Floor Only" option: Floor Only
styles: - icon: 'mdi:bed-king-outline'
button: entity: light.bedroom_master_bed_01
color: "{% if is_state('input_boolean.bedroom_master_light_state', 'on') and is_state('input_select.bedroom_master_scenes', 'Floor Only') %}#FFC107{% else %}#44739E{% endif %}" show_state: false
background-color: "{% if is_state('input_boolean.bedroom_master_light_state', 'on') and is_state('input_select.bedroom_master_scenes', 'Floor Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}" show_background: true
- layout: icon
icon: mdi:bed-queen-outline
tap_action: tap_action:
action: call-service action: call-service
service: light.toggle service: light.toggle
service_data: service_data:
entity_id: light.bedroom_master_bed_01 entity_id: light.bedroom_master_bed_01
styles: styles: |
button: .bubble-sub-button-1 > ha-icon {
color: "{% if is_state('light.bedroom_master_bed_01', 'on') %}#FFC107{% else %}#44739E{% endif %}" color: ${hass.states['input_select.bedroom_master_scenes'].state === 'All' ? 'rgb(255, 152, 0)' : ''} !important;
background-color: "{% if is_state('light.bedroom_master_bed_01', 'on') %}#FFF3D7{% else %}#F4F4F4{% endif %}" }
- type: horizontal-stack .bubble-sub-button-2 > ha-icon {
cards: color: ${hass.states['input_select.bedroom_master_scenes'].state === 'Ceiling Only' ? 'rgb(255, 152, 0)' : ''} !important;
- type: custom:mini-graph-card }
# name: Temperature .bubble-sub-button-3 > ha-icon {
line_color: orange color: ${hass.states['input_select.bedroom_master_scenes'].state === 'Floor Only' ? 'rgb(255, 152, 0)' : ''} !important;
font_size: 75 }
font_size_header: 12 .bubble-sub-button-4 > ha-icon {
entities: color: ${hass.states['light.bedroom_master_bed_01'].state === 'on' ? 'rgb(255, 152, 0)' : ''} !important;
- entity: sensor.climate_bedroom_master_01_temperature }
# name: Temperature - type: 'custom:layout-break'
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
# name: Humidity
line_color: blue
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bedroom_master_01_humidity
# name: Humidity
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
# name: Illuminance
line_color: red
font_size: 75
font_size_header: 12
entities:
- entity: sensor.presence_bedroom_master_light_level
# name: Illuminance
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
name: Ppm25
line_color: green
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bedroom_master_02_pm25
name: Ppm25
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.bedroom_master_floor_all
name: Bed Lights
icon: mdi:lamps
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.bedroom_master_ceiling_all
name: Ceiling Lights
icon: mdi:dome-light
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.bedroom_master_floor_lamp_02
name: "Tanya's Bed Light"
icon: mdi:ceiling-light-multiple
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.bedroom_master_floor_lamp_01
name: "Alex's Bed Light"
icon: mdi:ceiling-light-multiple
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.bedroom_master_bed_01
name: 'Bed Light'
icon: mdi:led-strip-variant
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:layout-break
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: 'custom:webrtc-camera' - type: 'custom:webrtc-camera'
url: 'rtsp://10.10.11.110:8554/bedroom-master' url: 'rtsp://10.10.11.110:8554/bedroom-master'
title: 'Master Bedroom' title: Master Bedroom
muted: true muted: true
mode: webrtc,mse mode: 'webrtc,mse'
- type: custom:mushroom-chips-card - type: 'custom:layout-break'
chips:
- type: entity
entity:
- type: entity
entity:
- type: entity
entity:
- type: custom:layout-break
- type: vertical-stack - type: vertical-stack
cards: cards:
# - type: entities - type: 'custom:mini-media-player'
# title: Lights
# show_header_toggle: false
# entities:
# - entity: timer.app_lighting_bedroom_master
# - type: custom:flipdown-timer-card
# entity: timer.app_lighting_bedroom_master
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack
cards:
- type: button
name: Occupancy
entity: input_boolean.occupancy_bedroom_master
- type: button
name: Operating Mode
entity: input_boolean.manually_operated_light_bedroom_master
- type: button
name: Occupants
entity: input_number.occupants_bedroom_master
- type: custom:mini-media-player
entity: media_player.master_bedroom_display entity: media_player.master_bedroom_display
artwork: cover artwork: cover
- type: custom:mini-media-player - type: 'custom:mini-media-player'
entity: media_player.master_bedroom_pair entity: media_player.master_bedroom_pair
artwork: cover artwork: cover
- type: 'custom:bubble-card'
card_type: media-player
entity: media_player.master_bedroom_display
grid_options:
rows: 2
columns: 12
scrolling_effect: false
show_icon: true
show_state: false
show_attribute: false
hide:
play_pause_button: false
power_button: true
next_button: false
previous_button: false
volume_button: false
card_layout: large
cover_background: true
sub_button: []
name: Master Bedroom Nest
force_icon: false
show_name: true
show_last_changed: false
double_tap_action:
action: none
hold_action:
action: none
styles: |
ha-card div.bubble-media-player-container {
height: 119px !important;
}
ha-card div.bubble-cover-background {
filter: blur(3px);
opacity: 0.4;
}
ha-card div.bubble-media-player {
bottom: 30px;
}
ha-card div.bubble-media-info-container {
display: inline;
position: absolute;
top: 95px;
left: 16px
}
ha-card div.bubble-name-container {
display: inline !important;
}
ha-icon.bubble-play-pause-button {
position: absolute;
bottom: -22px;
right: 8px;
}
- type: vertical-stack
cards:
- type: 'custom:bubble-card'
card_type: pop-up
hash: '#popup-bedroom-master-light'
name: Master Bedroom
icon: 'mdi:bed-king'
- type: 'custom:bubble-card'
card_type: button
button_type: slider
name: 'Ceiling #1'
entity: light.bedroom_master_ceiling_01
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle
- type: 'custom:bubble-card'
card_type: button
button_type: slider
name: 'Ceiling #2'
entity: light.bedroom_master_ceiling_01
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle
- type: 'custom:bubble-card'
card_type: button
button_type: slider
name: 'Floor #1'
entity: light.bedroom_master_floor_lamp_01
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle
- type: 'custom:bubble-card'
card_type: button
button_type: slider
name: 'Floor #2'
entity: light.bedroom_master_floor_lamp_02
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle

View File

@ -0,0 +1,283 @@
---
title: Master Bedroom
icon: mdi:bed-king
panel: true
visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex
- user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya
cards:
- type: custom:layout-card
layout: vertical
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-chips-card
chips:
- type: template
icon: "{% if is_state('binary_sensor.presence_bedroom_master_sensor_1', 'on') -%}mdi:account-multiple{%- else -%}mdi:account-off-outline{%- endif %}"
icon_color: "{% if is_state('binary_sensor.presence_bedroom_master_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
badge_icon: mdi:numeric-1-circle
badge_color: green
entity: binary_sensor.presence_bedroom_master_sensor_1
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.window_bedroom_master_left_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.window_bedroom_master_left_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.window_bedroom_master_left_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.window_bedroom_master_center_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.window_bedroom_master_center_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.window_bedroom_master_center_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.window_bedroom_master_right_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.window_bedroom_master_right_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.window_bedroom_master_right_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.door_bedroom_master_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.door_bedroom_master_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.door_bedroom_master_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.door_bedroom_master_closet_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.door_bedroom_master_closet_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.door_bedroom_master_closet_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.smoke_bedroom_master_01_smoke', 'on') -%}mdi:smoke-detector-variant-alert{%- else -%}mdi:smoke-detector-variant{%- endif %}"
icon_color: "{% if is_state('binary_sensor.smoke_bedroom_master_01_smoke', 'on') -%}#D40909{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.smoke_bedroom_master_01_smoke
tap_action:
action: more-info
- type: custom:stack-in-card
cards:
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: input_boolean.bedroom_master_light_state
name: Master Bedroom
icon: mdi:lightbulb-group
tap_action:
action: toggle
card_mod:
style: "ha-card { border: none; }"
- type: custom:paper-buttons-row
preset: mushroom
styles:
justify-content: flex-end
base_config:
styles:
button:
margin-top: 12px
margin-right: 12px
buttons:
- layout: icon
icon: mdi:lightbulb-group
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_master_scenes
option: "All"
styles:
button:
color: "{% if is_state('input_boolean.bedroom_master_light_state', 'on') and is_state('input_select.bedroom_master_scenes', 'All') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.bedroom_master_light_state', 'on') and is_state('input_select.bedroom_master_scenes', 'All') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:ceiling-light-multiple
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_master_scenes
option: "Ceiling Only"
styles:
button:
color: "{% if is_state('input_boolean.bedroom_master_light_state', 'on') and is_state('input_select.bedroom_master_scenes', 'Ceiling Only') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.bedroom_master_light_state', 'on') and is_state('input_select.bedroom_master_scenes', 'Ceiling Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:floor-lamp-torchiere
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_master_scenes
option: "Floor Only"
styles:
button:
color: "{% if is_state('input_boolean.bedroom_master_light_state', 'on') and is_state('input_select.bedroom_master_scenes', 'Floor Only') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.bedroom_master_light_state', 'on') and is_state('input_select.bedroom_master_scenes', 'Floor Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:bed-queen-outline
tap_action:
action: call-service
service: light.toggle
service_data:
entity_id: light.bedroom_master_bed_01
styles:
button:
color: "{% if is_state('light.bedroom_master_bed_01', 'on') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('light.bedroom_master_bed_01', 'on') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
# name: Temperature
line_color: orange
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bedroom_master_01_temperature
# name: Temperature
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
# name: Humidity
line_color: blue
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bedroom_master_01_humidity
# name: Humidity
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
# name: Illuminance
line_color: red
font_size: 75
font_size_header: 12
entities:
- entity: sensor.presence_bedroom_master_light_level
# name: Illuminance
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
name: Ppm25
line_color: green
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bedroom_master_02_pm25
name: Ppm25
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.bedroom_master_floor_all
name: Bed Lights
icon: mdi:lamps
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.bedroom_master_ceiling_all
name: Ceiling Lights
icon: mdi:dome-light
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.bedroom_master_floor_lamp_02
name: "Tanya's Bed Light"
icon: mdi:ceiling-light-multiple
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.bedroom_master_floor_lamp_01
name: "Alex's Bed Light"
icon: mdi:ceiling-light-multiple
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.bedroom_master_bed_01
name: 'Bed Light'
icon: mdi:led-strip-variant
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:layout-break
- type: vertical-stack
cards:
- type: 'custom:webrtc-camera'
url: 'rtsp://10.10.11.110:8554/bedroom-master'
title: 'Master Bedroom'
muted: true
mode: webrtc,mse
- type: custom:mushroom-chips-card
chips:
- type: entity
entity:
- type: entity
entity:
- type: entity
entity:
- type: custom:layout-break
- type: vertical-stack
cards:
# - type: entities
# title: Lights
# show_header_toggle: false
# entities:
# - entity: timer.app_lighting_bedroom_master
# - type: custom:flipdown-timer-card
# entity: timer.app_lighting_bedroom_master
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack
cards:
- type: button
name: Occupancy
entity: input_boolean.occupancy_bedroom_master
- type: button
name: Operating Mode
entity: input_boolean.manually_operated_light_bedroom_master
- type: button
name: Occupants
entity: input_number.occupants_bedroom_master
- type: custom:mini-media-player
entity: media_player.master_bedroom_display
artwork: cover
- type: custom:mini-media-player
entity: media_player.master_bedroom_pair
artwork: cover

View File

@ -1,13 +1,14 @@
---
title: "Maxim's Bedroom" title: "Maxim's Bedroom"
icon: mdi:bed icon: 'mdi:bed'
panel: true panel: true
visible: visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex - user: 1614b22cbef54f979741cf8a6b3413ec
- user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya - user: 76e8af2547254ef0ab523ae1ad0bf81a
cards: cards:
- type: custom:layout-card - type: 'custom:layout-card'
layout: vertical layout_type: 'custom:vertical-layout'
layout:
max_cols: 3
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
@ -56,265 +57,238 @@ cards:
icon_color: "{% if is_state('fan.bedroom_max', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" icon_color: "{% if is_state('fan.bedroom_max', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
tap_action: tap_action:
action: toggle action: toggle
- type: custom:stack-in-card - type: 'custom:bubble-card'
cards: card_type: separator
- type: grid icon: 'mdi:bed'
columns: 2 sub_button:
square: false - name: Temp
cards: icon: 'mdi:thermometer-lines'
- type: custom:mushroom-entity-card entity: sensor.climate_bedroom_max_01_temperature
entity: input_boolean.bedroom_max_light_state show_name: false
name: Max Bedroom show_icon: true
icon: mdi:lightbulb-group show_state: true
tap_action: show_background: false
action: toggle show_attribute: false
card_mod: - name: Humidity
style: "ha-card { border: none; }" icon: 'mdi:water-percent'
- type: custom:paper-buttons-row entity: sensor.climate_bedroom_max_01_humidity
preset: mushroom show_name: false
styles: show_icon: true
justify-content: flex-end show_state: true
base_config: show_background: false
styles: show_attribute: false
button: - name: Light Level
margin-top: 12px icon: 'mdi:weather-sunny'
margin-right: 12px entity: sensor.presence_bedroom_maxim_light_level
buttons: show_name: false
- layout: icon show_icon: true
icon: mdi:lightbulb-group show_state: true
tap_action: show_background: false
action: call-service show_attribute: false
service: input_select.select_option styles: |
service_data: .bubble-feedback-container {
entity_id: input_select.bedroom_max_scenes margin: 0px;
option: "All" }
styles:
button:
color: "{% if is_state('input_boolean.bedroom_max_light_state', 'on') and is_state('input_select.bedroom_max_scenes', 'All') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.bedroom_max_light_state', 'on') and is_state('input_select.bedroom_max_scenes', 'All') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:ceiling-light-multiple
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_max_scenes
option: "Ceiling Only"
styles:
button:
color: "{% if is_state('input_boolean.bedroom_max_light_state', 'on') and is_state('input_select.bedroom_max_scenes', 'Ceiling Only') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.bedroom_max_light_state', 'on') and is_state('input_select.bedroom_max_scenes', 'Ceiling Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:floor-lamp-torchiere
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_max_scenes
option: "Table Only"
styles:
button:
color: "{% if is_state('input_boolean.bedroom_max_light_state', 'on') and is_state('input_select.bedroom_max_scenes', 'Table Only') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.bedroom_max_light_state', 'on') and is_state('input_select.bedroom_max_scenes', 'Table Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:bed-queen-outline
tap_action:
action: call-service
service: light.toggle
service_data:
entity_id: light.bedroom_maxim_bed_01
styles:
button:
color: "{% if is_state('light.bedroom_maxim_bed_01', 'on') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('light.bedroom_maxim_bed_01', 'on') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
# name: Temperature
line_color: orange
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bedroom_max_01_temperature
# name: Temperature
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
# name: Humidity
line_color: blue
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bedroom_max_01_humidity
# name: Humidity
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
# name: Illuminance
line_color: red
font_size: 75
font_size_header: 12
entities:
- entity: sensor.presence_bedroom_maxim_light_level
# name: Illuminance
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.bedroom_max_ceiling_01
name: Ceiling Light
icon: mdi:ceiling-fan-light
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.bedroom_max_table_01
name: Table Light
icon: mdi:floor-lamp
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.bedroom_maxim_bed_01
name: 'Bed Light'
icon: mdi:led-strip-variant
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-fan-card
entity: fan.bedroom_maxim
name: 'Ceiling Fan'
icon_animation: on
show_percentage_control: true
collapsible_controls: true
# - type: custom:stack-in-card
# cards:
# - type: grid
# columns: 2
# square: false
# cards:
# - type: custom:mushroom-entity-card
# entity: fan.bedroom_max
# name: Fan
# icon: mdi:ceiling-fan-light
# use_light_color: false
# tap_action:
# action: toggle
# card_mod:
# style: "ha-card { border: none }"
# - type: custom:paper-buttons-row
# preset: mushroom
# styles:
# justify-content: flex-end
# base_config:
# styles:
# button:
# margin-top: 12px
# margin-right: 12px
# buttons:
# - layout: icon
# icon: mdi:fan-speed-1
# tap_action:
# action: call-service
# service: fan.set_preset_mode
# service_data:
# entity_id: fan.bedroom_max
# preset_mode: low
# styles:
# button:
# color: "{% if is_state_attr('fan.bedroom_max', 'preset_mode', 'low') %}#FFC107{% else %}#44739E{% endif %}"
# - layout: icon
# icon: mdi:fan-speed-2
# tap_action:
# action: call-service
# service: fan.set_preset_mode
# service_data:
# entity_id: fan.bedroom_max
# preset_mode: medium
# styles:
# button:
# color: "{% if is_state_attr('fan.bedroom_max', 'preset_mode', 'medium') %}#FFC107{% else %}#44739E{% endif %}"
# - layout: icon
# icon: mdi:fan-speed-3
# tap_action:
# action: call-service
# service: fan.set_preset_mode
# service_data:
# entity_id: fan.bedroom_max
# preset_mode: high
# styles:
# button:
# color: "{% if is_state_attr('fan.bedroom_max', 'preset_mode', 'high') %}#FFC107{% else %}#44739E{% endif %}"
# - type: horizontal-stack
# cards:
# - type: entities
# show_header_toggle: false
# entities:
# - type: custom:mushroom-fan-card
# name: Fan
# entity: fan.bedroom_max
# icon_animation: true
# show_percentage_control: false
# collapsible_controls: true
# - type: custom:fan-mode-button-row
# entity: fan.bedroom_max
# name: Fan
# customTheme: false
- type: custom:layout-break
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:webrtc-camera - type: 'custom:bubble-card'
url: "rtsp://10.10.11.110:8554/bedroom-max" card_type: button
title: "Maxim's Bedroom" button_type: switch
muted: true
mode: webrtc,mse
- type: custom:layout-break
- type: vertical-stack
cards:
# - type: entities
# title: Lights
# show_header_toggle: false
# entities:
# - entity: timer.app_lighting_bedroom_max
# - type: custom:flipdown-timer-card
# entity: timer.app_lighting_kitchen
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack
cards:
- type: button
name: Occupancy name: Occupancy
entity: input_boolean.occupancy_bedroom_max entity: input_boolean.occupancy_bedroom_max
- type: button icon: 'mdi:account-multiple'
name: Operating Mode show_state: false
show_background: false
tap_action:
action: toggle
button_action:
tap_action:
action: more-info
sub_button:
- entity: sensor.bedroom_max_person_count
icon: 'mdi:account-group'
show_state: false
show_background: true
- entity: sensor.bedroom_max_cat_count
icon: 'mdi:cat'
show_state: false
show_background: true
- icon: 'mdi:brightness-auto'
entity: input_boolean.manually_operated_light_bedroom_max entity: input_boolean.manually_operated_light_bedroom_max
- type: button show_state: false
name: Occupants show_background: true
entity: input_number.occupants_bedroom_max tap_action:
- type: custom:mini-media-player action: toggle
styles: >
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'on' ? 'var(--light-theme-disabled-color)' : 'var(--light-theme-disabled-color)' } !important;
}
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['sensor.bedroom_max_person_count'].state > 0 ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-2 {
background-color: white !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${ hass.states['sensor.bedroom_max_cat_count'].state > 0 ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-3 {
background-color: white !important;
} ${subButtonIcon[2].setAttribute("icon", hass.states['input_boolean.manually_operated_light_bedroom_max'].state === 'on' ? 'mdi:hand-front-right' : 'mdi:brightness-auto')}
- type: 'custom:bubble-card'
card_type: button
button_type: switch
name: Light
entity: input_boolean.bedroom_max_light_state
icon: 'mdi:lightbulb-group'
show_state: true
show_background: false
tap_action:
action: toggle
button_action:
tap_action:
action: navigate
navigation_path: '#popup-bedroom-max-light'
sub_button:
- icon: 'mdi:lightbulb-group'
entity: scene.bedroom_max_all
show_state: false
show_background: true
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_max_scenes
option: All
- icon: 'mdi:ceiling-light-multiple'
entity: scene.bedroom_max_ceiling_only
show_state: false
show_background: true
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_max_scenes
option: Ceiling Only
- icon: 'mdi:floor-lamp-torchiere'
entity: scene.bedroom_max_table_only
show_state: false
show_background: true
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_max_scenes
option: Floor Only
styles: |
.bubble-sub-button-1 > ha-icon {
color: ${hass.states['input_select.bedroom_max_scenes'].state === 'All' ? 'rgb(255, 152, 0)' : ''} !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${hass.states['input_select.bedroom_max_scenes'].state === 'Ceiling Only' ? 'rgb(255, 152, 0)' : ''} !important;
}
.bubble-sub-button-3 > ha-icon {
color: ${hass.states['input_select.bedroom_max_scenes'].state === 'Table Only' ? 'rgb(255, 152, 0)' : ''} !important;
}
- type: 'custom:bubble-card'
card_type: button
button_type: switch
name: Fan
entity: fan.bedroom_maxim
icon: 'mdi:fan'
show_state: true
show_background: false
tap_action:
action: toggle
button_action:
tap_action:
action: more-info
sub_button:
- icon: 'mdi:fan-speed-1'
entity: fan.bedroom_maxim
show_state: false
show_background: true
tap_action:
action: call-service
service: fan.set_preset_mode
service_data:
entity_id: fan.bedroom_maxim
option: low
- icon: 'mdi:fan-speed-2'
entity: fan.bedroom_maxim
show_state: false
show_background: true
tap_action:
action: call-service
service: fan.set_preset_mode
service_data:
entity_id: fan.bedroom_maxim
option: medium
- icon: 'mdi:fan-speed-3'
entity: fan.bedroom_maxim
show_state: false
show_background: true
tap_action:
action: call-service
service: fan.set_preset_mode
service_data:
entity_id: fan.bedroom_maxim
option: high
styles: |
.bubble-sub-button-1 > ha-icon {
color: ${hass.states['fan.bedroom_maxim'].attributes.percentage === 33 ? 'rgb(255, 152, 0)' : ''} !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${hass.states['fan.bedroom_maxim'].attributes.percentage === 66 ? 'rgb(255, 152, 0)' : ''} !important;
}
.bubble-sub-button-3 > ha-icon {
color: ${hass.states['fan.bedroom_maxim'].attributes.percentage === 100 ? 'rgb(255, 152, 0)' : ''} !important;
}
- type: 'custom:layout-break'
- type: vertical-stack
cards:
- type: 'custom:webrtc-camera'
url: 'rtsp://10.10.11.110:8554/bedroom-max'
title: Maxim Bedroom
muted: true
mode: 'webrtc,mse'
- type: 'custom:layout-break'
- type: vertical-stack
cards:
- type: 'custom:mini-media-player'
entity: media_player.max_s_bedroom_display entity: media_player.max_s_bedroom_display
artwork: cover artwork: cover
- type: vertical-stack
cards:
- type: 'custom:bubble-card'
card_type: pop-up
hash: '#popup-bedroom-maxim-light'
name: Maxim Bedroom
icon: 'mdi:bed-king'
- type: 'custom:bubble-card'
card_type: button
button_type: slider
name: 'Ceiling #1'
entity: light.bedroom_maxim_ceiling_01
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle
- type: 'custom:bubble-card'
card_type: button
button_type: slider
name: 'Floor #1'
entity: light.bedroom_maxim_floor_lamp_01
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle

View File

@ -0,0 +1,320 @@
---
title: "Maxim's Bedroom"
icon: mdi:bed
panel: true
visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex
- user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya
cards:
- type: custom:layout-card
layout: vertical
cards:
- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: custom:mushroom-chips-card
chips:
- type: template
icon: "{% if is_state('binary_sensor.presence_bedroom_maxim_sensor_1', 'on') -%}mdi:account-multiple{%- else -%}mdi:account-off-outline{%- endif %}"
icon_color: "{% if is_state('binary_sensor.presence_bedroom_maxim_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
badge_icon: mdi:numeric-1-circle
badge_color: green
entity: binary_sensor.presence_bedroom_maxim_sensor_1
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.window_bedroom_max_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.window_bedroom_max_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.window_bedroom_max_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.door_bedroom_max_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.door_bedroom_max_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.door_bedroom_max_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.smoke_bedroom_maxim_01_smoke', 'on') -%}mdi:smoke-detector-variant-alert{%- else -%}mdi:smoke-detector-variant{%- endif %}"
icon_color: "{% if is_state('binary_sensor.smoke_bedroom_maxim_01_smoke', 'on') -%}#D40909{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.smoke_bedroom_maxim_01_smoke
tap_action:
action: more-info
- type: custom:mushroom-chips-card
alignment: end
chips:
- type: template
entity: light.bedroom_guest_ceiling_01
icon: mdi:ceiling-light
tap_action:
action: toggle
icon_color: "{% if is_state('light.bedroom_max_ceiling_01', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
- type: template
entity: fan.bedroom_max
icon: mdi:fan
icon_color: "{% if is_state('fan.bedroom_max', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
tap_action:
action: toggle
- type: custom:stack-in-card
cards:
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: input_boolean.bedroom_max_light_state
name: Max Bedroom
icon: mdi:lightbulb-group
tap_action:
action: toggle
card_mod:
style: "ha-card { border: none; }"
- type: custom:paper-buttons-row
preset: mushroom
styles:
justify-content: flex-end
base_config:
styles:
button:
margin-top: 12px
margin-right: 12px
buttons:
- layout: icon
icon: mdi:lightbulb-group
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_max_scenes
option: "All"
styles:
button:
color: "{% if is_state('input_boolean.bedroom_max_light_state', 'on') and is_state('input_select.bedroom_max_scenes', 'All') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.bedroom_max_light_state', 'on') and is_state('input_select.bedroom_max_scenes', 'All') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:ceiling-light-multiple
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_max_scenes
option: "Ceiling Only"
styles:
button:
color: "{% if is_state('input_boolean.bedroom_max_light_state', 'on') and is_state('input_select.bedroom_max_scenes', 'Ceiling Only') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.bedroom_max_light_state', 'on') and is_state('input_select.bedroom_max_scenes', 'Ceiling Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:floor-lamp-torchiere
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_max_scenes
option: "Table Only"
styles:
button:
color: "{% if is_state('input_boolean.bedroom_max_light_state', 'on') and is_state('input_select.bedroom_max_scenes', 'Table Only') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.bedroom_max_light_state', 'on') and is_state('input_select.bedroom_max_scenes', 'Table Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:bed-queen-outline
tap_action:
action: call-service
service: light.toggle
service_data:
entity_id: light.bedroom_maxim_bed_01
styles:
button:
color: "{% if is_state('light.bedroom_maxim_bed_01', 'on') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('light.bedroom_maxim_bed_01', 'on') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
# name: Temperature
line_color: orange
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bedroom_max_01_temperature
# name: Temperature
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
# name: Humidity
line_color: blue
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bedroom_max_01_humidity
# name: Humidity
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
# name: Illuminance
line_color: red
font_size: 75
font_size_header: 12
entities:
- entity: sensor.presence_bedroom_maxim_light_level
# name: Illuminance
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.bedroom_max_ceiling_01
name: Ceiling Light
icon: mdi:ceiling-fan-light
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.bedroom_max_table_01
name: Table Light
icon: mdi:floor-lamp
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.bedroom_maxim_bed_01
name: 'Bed Light'
icon: mdi:led-strip-variant
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-fan-card
entity: fan.bedroom_maxim
name: 'Ceiling Fan'
icon_animation: on
show_percentage_control: true
collapsible_controls: true
# - type: custom:stack-in-card
# cards:
# - type: grid
# columns: 2
# square: false
# cards:
# - type: custom:mushroom-entity-card
# entity: fan.bedroom_max
# name: Fan
# icon: mdi:ceiling-fan-light
# use_light_color: false
# tap_action:
# action: toggle
# card_mod:
# style: "ha-card { border: none }"
# - type: custom:paper-buttons-row
# preset: mushroom
# styles:
# justify-content: flex-end
# base_config:
# styles:
# button:
# margin-top: 12px
# margin-right: 12px
# buttons:
# - layout: icon
# icon: mdi:fan-speed-1
# tap_action:
# action: call-service
# service: fan.set_preset_mode
# service_data:
# entity_id: fan.bedroom_max
# preset_mode: low
# styles:
# button:
# color: "{% if is_state_attr('fan.bedroom_max', 'preset_mode', 'low') %}#FFC107{% else %}#44739E{% endif %}"
# - layout: icon
# icon: mdi:fan-speed-2
# tap_action:
# action: call-service
# service: fan.set_preset_mode
# service_data:
# entity_id: fan.bedroom_max
# preset_mode: medium
# styles:
# button:
# color: "{% if is_state_attr('fan.bedroom_max', 'preset_mode', 'medium') %}#FFC107{% else %}#44739E{% endif %}"
# - layout: icon
# icon: mdi:fan-speed-3
# tap_action:
# action: call-service
# service: fan.set_preset_mode
# service_data:
# entity_id: fan.bedroom_max
# preset_mode: high
# styles:
# button:
# color: "{% if is_state_attr('fan.bedroom_max', 'preset_mode', 'high') %}#FFC107{% else %}#44739E{% endif %}"
# - type: horizontal-stack
# cards:
# - type: entities
# show_header_toggle: false
# entities:
# - type: custom:mushroom-fan-card
# name: Fan
# entity: fan.bedroom_max
# icon_animation: true
# show_percentage_control: false
# collapsible_controls: true
# - type: custom:fan-mode-button-row
# entity: fan.bedroom_max
# name: Fan
# customTheme: false
- type: custom:layout-break
- type: vertical-stack
cards:
- type: custom:webrtc-camera
url: "rtsp://10.10.11.110:8554/bedroom-max"
title: "Maxim's Bedroom"
muted: true
mode: webrtc,mse
- type: custom:layout-break
- type: vertical-stack
cards:
# - type: entities
# title: Lights
# show_header_toggle: false
# entities:
# - entity: timer.app_lighting_bedroom_max
# - type: custom:flipdown-timer-card
# entity: timer.app_lighting_kitchen
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack
cards:
- type: button
name: Occupancy
entity: input_boolean.occupancy_bedroom_max
- type: button
name: Operating Mode
entity: input_boolean.manually_operated_light_bedroom_max
- type: button
name: Occupants
entity: input_number.occupants_bedroom_max
- type: custom:mini-media-player
entity: media_player.max_s_bedroom_display
artwork: cover

View File

@ -1,60 +1,80 @@
--- ---
title: "Olivia's Bedroom" title: "Olivia's Bedroom"
icon: mdi:bed icon: 'mdi:bed'
panel: true panel: true
visible: visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex - user: 1614b22cbef54f979741cf8a6b3413ec
- user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya - user: 76e8af2547254ef0ab523ae1ad0bf81a
cards: cards:
- type: custom:layout-card - type: 'custom:layout-card'
layout: vertical layout_type: 'custom:vertical-layout'
layout:
max_cols: 3
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- type: custom:mushroom-chips-card - type: 'custom:mushroom-chips-card'
chips: chips:
- type: template - type: template
icon: "{% if is_state('binary_sensor.presence_bedroom_olivia_sensor_1', 'on') -%}mdi:account-multiple{%- else -%}mdi:account-off-outline{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.presence_bedroom_olivia_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}" {% if
badge_icon: mdi:numeric-1-circle is_state('binary_sensor.presence_bedroom_olivia_sensor_1',
'on') -%}mdi:account-multiple{%- else
-%}mdi:account-off-outline{%- endif %}
icon_color: >-
{% if
is_state('binary_sensor.presence_bedroom_olivia_sensor_1',
'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}
badge_icon: 'mdi:numeric-1-circle'
badge_color: green badge_color: green
entity: binary_sensor.presence_bedroom_olivia_sensor_1 entity: binary_sensor.presence_bedroom_olivia_sensor_1
tap_action: tap_action:
action: more-info action: more-info
# - type: template
# icon: "{% if is_state('binary_sensor.presence_01_presence', 'on') -%}mdi:account-multiple{%- else -%}mdi:account-off-outline{%- endif %}"
# icon_color: "{% if is_state('binary_sensor.presence_01_presence', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
# badge_icon: mdi:numeric-1-circle
# badge_color: green
# - type: template
# icon: "{% if is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_4', 'on') -%}mdi:motion-sensor{%- else -%}mdi:motion-sensor-off{%- endif %}"
# icon_color: "{% if is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_4', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
# entity: binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_4
# tap_action:
# action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.window_bedroom_olivia_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.window_bedroom_olivia_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
is_state('binary_sensor.window_bedroom_olivia_01_contact',
'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif
%}
icon_color: >-
{% if
is_state('binary_sensor.window_bedroom_olivia_01_contact',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: binary_sensor.window_bedroom_olivia_01_contact entity: binary_sensor.window_bedroom_olivia_01_contact
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.door_bedroom_olivia_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.door_bedroom_olivia_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if is_state('binary_sensor.door_bedroom_olivia_01_contact',
'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}
icon_color: >-
{% if is_state('binary_sensor.door_bedroom_olivia_01_contact',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: binary_sensor.door_bedroom_olivia_01_contact entity: binary_sensor.door_bedroom_olivia_01_contact
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.door_bedroom_olivia_closet_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.door_bedroom_olivia_closet_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
is_state('binary_sensor.door_bedroom_olivia_closet_01_contact',
'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}
icon_color: >-
{% if
is_state('binary_sensor.door_bedroom_olivia_closet_01_contact',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: binary_sensor.door_bedroom_olivia_closet_01_contact entity: binary_sensor.door_bedroom_olivia_closet_01_contact
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.smoke_bedroom_olivia_01_smoke', 'on') -%}mdi:smoke-detector-variant-alert{%- else -%}mdi:smoke-detector-variant{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.smoke_bedroom_olivia_01_smoke', 'on') -%}#D40909{%- else -%}#44739E{%- endif %}" {% if is_state('binary_sensor.smoke_bedroom_olivia_01_smoke',
'on') -%}mdi:smoke-detector-variant-alert{%- else
-%}mdi:smoke-detector-variant{%- endif %}
icon_color: >-
{% if is_state('binary_sensor.smoke_bedroom_olivia_01_smoke',
'on') -%}#D40909{%- else -%}#44739E{%- endif %}
entity: binary_sensor.smoke_bedroom_olivia_01_smoke entity: binary_sensor.smoke_bedroom_olivia_01_smoke
tap_action: tap_action:
action: more-info action: more-info
@ -73,249 +93,209 @@ cards:
icon_color: "{% if is_state('fan.bedroom_olivia', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" icon_color: "{% if is_state('fan.bedroom_olivia', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
tap_action: tap_action:
action: toggle action: toggle
- type: custom:stack-in-card
cards: - type: 'custom:bubble-card'
- type: grid card_type: separator
columns: 2 icon: 'mdi:bed'
square: false sub_button:
cards: - name: Temp
- type: custom:mushroom-entity-card icon: 'mdi:thermometer-lines'
entity: input_boolean.bedroom_olivia_light_state entity: sensor.climate_bedroom_olivia_01_temperature
name: Olivia Bedroom show_name: false
icon: mdi:lightbulb-group show_icon: true
tap_action: show_state: true
action: toggle show_background: false
card_mod: show_attribute: false
style: "ha-card { border: none; }" - name: Humidity
- type: custom:paper-buttons-row icon: 'mdi:water-percent'
preset: mushroom entity: sensor.climate_bedroom_olivia_01_humidity
styles: show_name: false
justify-content: flex-end show_icon: true
base_config: show_state: true
styles: show_background: false
button: show_attribute: false
margin-top: 12px - name: Light Level
margin-right: 12px icon: 'mdi:weather-sunny'
buttons: entity: sensor.presence_bedroom_olivia_light_level
- layout: icon show_name: false
icon: mdi:lightbulb-group show_icon: true
tap_action: show_state: true
action: call-service show_background: false
service: input_select.select_option show_attribute: false
service_data: styles: |
entity_id: input_select.bedroom_olivia_scenes .bubble-feedback-container {
option: "All" margin: 0px;
styles: }
button:
color: "{% if is_state('input_boolean.bedroom_olivia_light_state', 'on') and is_state('input_select.bedroom_olivia_scenes', 'All') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.bedroom_olivia_light_state', 'on') and is_state('input_select.bedroom_olivia_scenes', 'All') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:ceiling-light-multiple
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_olivia_scenes
option: "Ceiling Only"
styles:
button:
color: "{% if is_state('input_boolean.bedroom_olivia_light_state', 'on') and is_state('input_select.bedroom_olivia_scenes', 'Ceiling Only') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.bedroom_olivia_light_state', 'on') and is_state('input_select.bedroom_olivia_scenes', 'Ceiling Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:floor-lamp-torchiere
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_olivia_scenes
option: "Floor Only"
styles:
button:
color: "{% if is_state('input_boolean.bedroom_olivia_light_state', 'on') and is_state('input_select.bedroom_olivia_scenes', 'Floor Only') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.bedroom_olivia_light_state', 'on') and is_state('input_select.bedroom_olivia_scenes', 'Table Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
# name: Temperature
line_color: orange
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bedroom_olivia_01_temperature
# name: Temperature
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
# name: Humidity
line_color: blue
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bedroom_olivia_01_humidity
# name: Humidity
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
# name: Illuminance
line_color: red
font_size: 75
font_size_header: 12
entities:
- entity: sensor.presence_bedroom_olivia_light_level
# name: Illuminance
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.bedroom_olivia_ceiling_01
name: Ceiling Light
icon: mdi:ceiling-fan-light
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.bedroom_olivia_floor_01
name: Floor Light
icon: mdi:floor-lamp
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-fan-card
entity: fan.bedroom_maxim
name: 'Ceiling Fan'
icon_animation: on
show_percentage_control: true
collapsible_controls: true
# - type: custom:stack-in-card
# cards:
# - type: grid
# columns: 2
# square: false
# cards:
# - type: custom:mushroom-entity-card
# entity: fan.bedroom_olivia
# name: Fan
# icon: mdi:ceiling-fan-light
# use_light_color: false
# tap_action:
# action: toggle
# card_mod:
# style: "ha-card { border: none }"
# - type: custom:paper-buttons-row
# preset: mushroom
# styles:
# justify-content: flex-end
# base_config:
# styles:
# button:
# margin-top: 12px
# margin-right: 12px
# buttons:
# - layout: icon
# icon: mdi:fan-speed-1
# tap_action:
# action: call-service
# service: fan.set_preset_mode
# service_data:
# entity_id: fan.bedroom_olivia
# preset_mode: low
# styles:
# button:
# color: "{% if is_state_attr('fan.bedroom_olivia', 'preset_mode', 'low') %}#FFC107{% else %}#44739E{% endif %}"
# - layout: icon
# icon: mdi:fan-speed-2
# tap_action:
# action: call-service
# service: fan.set_preset_mode
# service_data:
# entity_id: fan.bedroom_olivia
# preset_mode: medium
# styles:
# button:
# color: "{% if is_state_attr('fan.bedroom_olivia', 'preset_mode', 'medium') %}#FFC107{% else %}#44739E{% endif %}"
# - layout: icon
# icon: mdi:fan-speed-3
# tap_action:
# action: call-service
# service: fan.set_preset_mode
# service_data:
# entity_id: fan.bedroom_olivia
# preset_mode: high
# styles:
# button:
# color: "{% if is_state_attr('fan.bedroom_olivia', 'preset_mode', 'high') %}#FFC107{% else %}#44739E{% endif %}"
# - type: entities
# show_header_toggle: false
# entities:
# - type: custom:fan-mode-button-row
# entity: fan.bedroom_olivia
# name: Fan
# customTheme: false
- type: custom:layout-break
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: custom:webrtc-camera - type: 'custom:bubble-card'
url: "rtsp://10.10.11.110:8554/bedroom-olivia" card_type: button
title: "Olivia's Bedroom" button_type: switch
muted: true
mode: webrtc,mse
- type: custom:mushroom-chips-card
chips:
- type: entity
entity:
- type: entity
entity:
- type: entity
entity:
- type: custom:layout-break
- type: vertical-stack
cards:
# - type: entities
# title: Lights
# show_header_toggle: false
# entities:
# - entity: timer.app_lighting_bedroom_olivia
# - type: custom:flipdown-timer-card
# entity: timer.app_lighting_bedroom_olivia
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack
cards:
- type: button
name: Occupancy name: Occupancy
entity: input_boolean.occupancy_bedroom_olivia entity: input_boolean.occupancy_bedroom_olivia
- type: button icon: 'mdi:account-multiple'
name: Operating Mode show_state: false
show_background: false
tap_action:
action: toggle
button_action:
tap_action:
action: more-info
sub_button:
- entity: sensor.bedroom_olivia_person_count
icon: 'mdi:account-group'
show_state: false
show_background: true
- entity: sensor.bedroom_olivia_cat_count
icon: 'mdi:cat'
show_state: false
show_background: true
- icon: 'mdi:brightness-auto'
entity: input_boolean.manually_operated_light_bedroom_olivia entity: input_boolean.manually_operated_light_bedroom_olivia
- type: button show_state: false
name: Occupants show_background: true
entity: input_number.occupants_bedroom_olivia tap_action:
# - type: custom:mini-media-player action: toggle
# entity: media_player.kitchen_max styles: >
# artwork: cover .bubble-button-background {
- type: custom:plotly-graph opacity: 1 !important;
background-color: ${ state === 'on' ? 'var(--light-theme-disabled-color)' : 'var(--light-theme-disabled-color)' } !important;
} .bubble-sub-button-1 {
background-color: white !important;
} .bubble-sub-button-1 > ha-icon {
color: ${ hass.states['sensor.bedroom_olivia_person_count'].state > 0 ? 'rgb(255, 152, 0)' : '' } !important;
} .bubble-sub-button-2 {
background-color: white !important;
} .bubble-sub-button-2 > ha-icon {
color: ${ hass.states['sensor.bedroom_olivia_cat_count'].state > 0 ? 'rgb(255, 152, 0)' : '' } !important;
} .bubble-sub-button-3 {
background-color: white !important;
}
${subButtonIcon[2].setAttribute("icon", hass.states['input_boolean.manually_operated_light_bedroom_olivia'].state === 'on' ? 'mdi:hand-front-right' : 'mdi:brightness-auto')}
- type: 'custom:bubble-card'
card_type: button
button_type: switch
name: Light
entity: input_boolean.bedroom_olivia_light_state
icon: 'mdi:lightbulb-group'
show_state: true
show_background: false
tap_action:
action: toggle
button_action:
tap_action:
action: navigate
navigation_path: '#popup-bedroom-olivia-light'
sub_button:
- icon: 'mdi:lightbulb-group'
entity: scene.bedroom_olivia_all
show_state: false
show_background: true
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_olivia_scenes
option: All
- icon: 'mdi:ceiling-light-multiple'
entity: scene.bedroom_olivia_ceiling_only
show_state: false
show_background: true
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_olivia_scenes
option: Ceiling Only
- icon: 'mdi:floor-lamp-torchiere'
entity: scene.bedroom_olivia_floor_only
show_state: false
show_background: true
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_olivia_scenes
option: Floor Only
styles: |
.bubble-sub-button-1 > ha-icon {
color: ${hass.states['input_select.bedroom_olivia_scenes'].state === 'All' ? 'rgb(255, 152, 0)' : ''} !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${hass.states['input_select.bedroom_olivia_scenes'].state === 'Ceiling Only' ? 'rgb(255, 152, 0)' : ''} !important;
}
.bubble-sub-button-3 > ha-icon {
color: ${hass.states['input_select.bedroom_olivia_scenes'].state === 'Floor Only' ? 'rgb(255, 152, 0)' : ''} !important;
}
- type: 'custom:bubble-card'
card_type: button
button_type: switch
name: Fan
entity: fan.bedroom_olivia
icon: 'mdi:fan'
show_state: true
show_background: false
tap_action:
action: toggle
button_action:
tap_action:
action: more-info
sub_button:
- icon: 'mdi:fan-speed-1'
entity: fan.bedroom_olivia
show_state: false
show_background: true
tap_action:
action: call-service
service: fan.set_preset_mode
service_data:
entity_id: fan.bedroom_olivia
preset_mode: low
- icon: 'mdi:fan-speed-2'
entity: fan.bedroom_olivia
show_state: false
show_background: true
tap_action:
action: call-service
service: fan.set_preset_mode
service_data:
entity_id: fan.bedroom_olivia
preset_mode: medium
- icon: 'mdi:fan-speed-3'
entity: fan.bedroom_olivia
show_state: false
show_background: true
tap_action:
action: call-service
service: fan.set_preset_mode
service_data:
entity_id: fan.bedroom_olivia
preset_mode: high
styles: |
.bubble-sub-button-1 > ha-icon {
color: ${hass.states['fan.bedroom_olivia'].attributes.percentage === 33 ? 'rgb(255, 152, 0)' : ''} !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${hass.states['fan.bedroom_olivia'].attributes.percentage === 66 ? 'rgb(255, 152, 0)' : ''} !important;
}
.bubble-sub-button-3 > ha-icon {
color: ${hass.states['fan.bedroom_olivia'].attributes.percentage === 100 ? 'rgb(255, 152, 0)' : ''} !important;
}
- type: 'custom:layout-break'
- type: vertical-stack
cards:
- type: 'custom:webrtc-camera'
url: 'rtsp://10.10.11.110:8554/bedroom-olivia'
title: Olivia Bedroom
muted: true
mode: 'webrtc,mse'
- type: 'custom:layout-break'
- type: vertical-stack
cards:
- type: 'custom:mini-media-player'
entity: media_player.olivia_bedroom
artwork: cover
- type: 'custom:plotly-graph'
refresh_interval: 1 refresh_interval: 1
hours_to_show: current_day hours_to_show: current_day
config: config:
@ -336,8 +316,8 @@ cards:
showticklabels: true showticklabels: true
dtick: 1000 dtick: 1000
visible: true visible: true
gridcolor: RGBA(200,200,200,0.15) gridcolor: 'RGBA(200,200,200,0.15)'
zerolinecolor: RGBA(200,200,200,0.15) zerolinecolor: 'RGBA(200,200,200,0.15)'
type: number type: number
fixedrange: true fixedrange: true
range: range:
@ -347,8 +327,8 @@ cards:
showticklabels: true showticklabels: true
dtick: 1000 dtick: 1000
visible: true visible: true
gridcolor: RGBA(200,200,200,0.15) gridcolor: 'RGBA(200,200,200,0.15)'
zerolinecolor: RGBA(200,200,200,0.15) zerolinecolor: 'RGBA(200,200,200,0.15)'
scaleanchor: x scaleanchor: x
scaleratio: 1 scaleratio: 1
fixedrange: true fixedrange: true
@ -358,10 +338,15 @@ cards:
entities: entities:
- entity: '' - entity: ''
fn_var1: $ex vars.sensor_id = "d158f4"; fn_var1: $ex vars.sensor_id = "d158f4";
fn_var2: $ex vars.sensor_name_prefix = "sensor.screek_human_sensor_2a_" + vars.sensor_id + "_"; fn_var2: >-
fn_var3: $ex vars.number_name_prefix = "number.screek_human_sensor_2a_" + vars.sensor_id + "_"; $ex vars.sensor_name_prefix = "sensor.screek_human_sensor_2a_"
fn_var4: $ex vars.is_inch_unit = hass.states[vars.sensor_name_prefix + "target1_x"].attributes.unit_of_measurement == "in"; + vars.sensor_id + "_";
# name: sensor_id fn_var3: >-
$ex vars.number_name_prefix = "number.screek_human_sensor_2a_"
+ vars.sensor_id + "_";
fn_var4: >-
$ex vars.is_inch_unit = hass.states[vars.sensor_name_prefix +
"target1_x"].attributes.unit_of_measurement == "in";
- entity: '' - entity: ''
name: Target1 name: Target1
marker: marker:
@ -371,21 +356,19 @@ cards:
shape: spline shape: spline
width: 5 width: 5
x: x:
- $ex { - >-
var x = hass.states[vars.sensor_name_prefix + "target1_x"].state; $ex { var x = hass.states[vars.sensor_name_prefix +
var y = hass.states[vars.sensor_name_prefix + "target1_y"].state; "target1_x"].state; var y =
if (x == 0 && y == 0) { return -9999 }; hass.states[vars.sensor_name_prefix + "target1_y"].state; if
if (vars.is_inch_unit) { x = x * 25.4 }; (x == 0 && y == 0) { return -9999 }; if (vars.is_inch_unit)
return x; { x = x * 25.4 }; return x; }
} 'y':
y: - >-
- $ex { $ex { var x = hass.states[vars.sensor_name_prefix +
var x = hass.states[vars.sensor_name_prefix + "target1_x"].state; "target1_x"].state; var y =
var y = hass.states[vars.sensor_name_prefix + "target1_y"].state; hass.states[vars.sensor_name_prefix + "target1_y"].state; if
if (x == 0 && y == 0) { return -9999 }; (x == 0 && y == 0) { return -9999 }; if (vars.is_inch_unit)
if (vars.is_inch_unit) { y = y * 25.4 }; { y = y * 25.4 }; return y; }
return y;
}
- entity: '' - entity: ''
name: Target2 name: Target2
marker: marker:
@ -395,21 +378,19 @@ cards:
shape: spline shape: spline
width: 5 width: 5
x: x:
- $ex { - >-
var x = hass.states[vars.sensor_name_prefix + "target2_x"].state; $ex { var x = hass.states[vars.sensor_name_prefix +
var y = hass.states[vars.sensor_name_prefix + "target2_y"].state; "target2_x"].state; var y =
if (x == 0 && y == 0) { return -9999 }; hass.states[vars.sensor_name_prefix + "target2_y"].state; if
if (vars.is_inch_unit) { x = x * 25.4 }; (x == 0 && y == 0) { return -9999 }; if (vars.is_inch_unit)
return x; { x = x * 25.4 }; return x; }
} 'y':
y: - >-
- $ex { $ex { var x = hass.states[vars.sensor_name_prefix +
var x = hass.states[vars.sensor_name_prefix + "target2_x"].state; "target2_x"].state; var y =
var y = hass.states[vars.sensor_name_prefix + "target2_y"].state; hass.states[vars.sensor_name_prefix + "target2_y"].state; if
if (x == 0 && y == 0) { return -9999 }; (x == 0 && y == 0) { return -9999 }; if (vars.is_inch_unit)
if (vars.is_inch_unit) { y = y * 25.4 }; { y = y * 25.4 }; return y; }
return y;
}
- entity: '' - entity: ''
internal: false internal: false
name: Target3 name: Target3
@ -420,191 +401,188 @@ cards:
shape: spline shape: spline
width: 5 width: 5
x: x:
- $ex { - >-
var x = hass.states[vars.sensor_name_prefix + "target3_x"].state; $ex { var x = hass.states[vars.sensor_name_prefix +
var y = hass.states[vars.sensor_name_prefix + "target3_y"].state; "target3_x"].state; var y =
if (x == 0 && y == 0) { return -9999 }; hass.states[vars.sensor_name_prefix + "target3_y"].state; if
if (vars.is_inch_unit) { x = x * 25.4 }; (x == 0 && y == 0) { return -9999 }; if (vars.is_inch_unit)
return x; { x = x * 25.4 }; return x; }
} 'y':
y: - >-
- $ex { $ex { var x = hass.states[vars.sensor_name_prefix +
var x = hass.states[vars.sensor_name_prefix + "target3_x"].state; "target3_x"].state; var y =
var y = hass.states[vars.sensor_name_prefix + "target3_y"].state; hass.states[vars.sensor_name_prefix + "target3_y"].state; if
if (x == 0 && y == 0) { return -9999 }; (x == 0 && y == 0) { return -9999 }; if (vars.is_inch_unit)
if (vars.is_inch_unit) { y = y * 25.4 }; { y = y * 25.4 }; return y; }
return y;
}
- entity: '' - entity: ''
name: Zone1 name: Zone1
mode: lines mode: lines
fill: toself fill: toself
fillcolor: RGBA(20,200,0,0.06) fillcolor: 'RGBA(20,200,0,0.06)'
line: line:
color: RGBA(20,200,0,0.2) color: 'RGBA(20,200,0,0.2)'
shape: line shape: line
width: 2 width: 2
x: x:
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone1_x_begin"].state "zone1_x_begin"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone1_x_begin"].state "zone1_x_begin"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone1_x_end"].state "zone1_x_end"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone1_x_end"].state "zone1_x_end"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone1_x_begin"].state "zone1_x_begin"].state
y: 'y':
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone1_y_begin"].state "zone1_y_begin"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone1_y_end"].state "zone1_y_end"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone1_y_end"].state "zone1_y_end"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone1_y_begin"].state "zone1_y_begin"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone1_y_begin"].state "zone1_y_begin"].state
- entity: '' - entity: ''
name: Zone2 name: Zone2
mode: lines mode: lines
fill: toself fill: toself
fillcolor: RGBA(200,0,255,0.06) fillcolor: 'RGBA(200,0,255,0.06)'
line: line:
color: RGBA(200,0,255,0.2) color: 'RGBA(200,0,255,0.2)'
shape: line shape: line
width: 2 width: 2
x: x:
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone2_x_begin"].state "zone2_x_begin"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone2_x_begin"].state "zone2_x_begin"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone2_x_end"].state "zone2_x_end"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone2_x_end"].state "zone2_x_end"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone2_x_begin"].state "zone2_x_begin"].state
y: 'y':
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone2_y_begin"].state "zone2_y_begin"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone2_y_end"].state "zone2_y_end"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone2_y_end"].state "zone2_y_end"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone2_y_begin"].state "zone2_y_begin"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone2_y_begin"].state "zone2_y_begin"].state
- entity: '' - entity: ''
name: Zone3 name: Zone3
mode: lines mode: lines
fill: toself fill: toself
fillcolor: RGBA(200,120,55,0.06) fillcolor: 'RGBA(200,120,55,0.06)'
line: line:
color: RGBA(200,120,55,0.2) color: 'RGBA(200,120,55,0.2)'
shape: line shape: line
width: 2 width: 2
x: x:
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone3_x_begin"].state "zone3_x_begin"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone3_x_begin"].state "zone3_x_begin"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone3_x_end"].state "zone3_x_end"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone3_x_end"].state "zone3_x_end"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone3_x_begin"].state "zone3_x_begin"].state
y: 'y':
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone3_y_begin"].state "zone3_y_begin"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone3_y_end"].state "zone3_y_end"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone3_y_end"].state "zone3_y_end"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone3_y_begin"].state "zone3_y_begin"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zone3_y_begin"].state "zone3_y_begin"].state
- entity: '' - entity: ''
name: ExZone name: ExZone
mode: lines mode: lines
fill: toself fill: toself
fillcolor: RGBA(255,0,0,0.15) fillcolor: 'RGBA(255,0,0,0.15)'
line: line:
shape: line shape: line
width: 1 width: 1
color: RGBA(255,0,0,0.2) color: 'RGBA(255,0,0,0.2)'
x: x:
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zout1_x_begin"].state "zout1_x_begin"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zout1_x_begin"].state "zout1_x_begin"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zout1_x_end"].state "zout1_x_end"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zout1_x_end"].state "zout1_x_end"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zout1_x_begin"].state "zout1_x_begin"].state
y: 'y':
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zout1_y_begin"].state "zout1_y_begin"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zout1_y_end"].state "zout1_y_end"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zout1_y_end"].state "zout1_y_end"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zout1_y_begin"].state "zout1_y_begin"].state
- >- - >-
$ex $ex hass.states[vars.number_name_prefix +
hass.states[vars.number_name_prefix + "zout1_y_begin"].state "zout1_y_begin"].state
- entity: '' - entity: ''
name: Coverage name: Coverage
mode: lines mode: lines
fill: tonexty fill: tonexty
fillcolor: rgba(168, 216, 234, 0.15) fillcolor: 'rgba(168, 216, 234, 0.15)'
hoverinfo: none hoverinfo: none
line: line:
shape: line shape: line
@ -651,5 +629,33 @@ cards:
- $ex 7500 * Math.cos((2 * Math.PI)/360 * 60) - $ex 7500 * Math.cos((2 * Math.PI)/360 * 60)
- 0 - 0
raw_plotly_config: true raw_plotly_config: true
title: $ex "Human Sensor 2A " + vars.sensor_id + " Map" title: $ex "Human Sensor 2A " + vars.sensor_id + " Map"
- type: vertical-stack
cards:
- type: 'custom:bubble-card'
card_type: pop-up
hash: '#popup-bedroom-olivia-light'
name: Olivia Bedroom
icon: 'mdi:bed'
- type: 'custom:bubble-card'
card_type: button
button_type: slider
name: 'Ceiling #1'
entity: light.bedroom_olivia_ceiling_01
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle
- type: 'custom:bubble-card'
card_type: button
button_type: slider
name: 'Floor #1'
entity: light.bedroom_olivia_floor_lamp_01
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle

View File

@ -0,0 +1,655 @@
---
title: "Olivia's Bedroom"
icon: mdi:bed
panel: true
visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex
- user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya
cards:
- type: custom:layout-card
layout: vertical
cards:
- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: custom:mushroom-chips-card
chips:
- type: template
icon: "{% if is_state('binary_sensor.presence_bedroom_olivia_sensor_1', 'on') -%}mdi:account-multiple{%- else -%}mdi:account-off-outline{%- endif %}"
icon_color: "{% if is_state('binary_sensor.presence_bedroom_olivia_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
badge_icon: mdi:numeric-1-circle
badge_color: green
entity: binary_sensor.presence_bedroom_olivia_sensor_1
tap_action:
action: more-info
# - type: template
# icon: "{% if is_state('binary_sensor.presence_01_presence', 'on') -%}mdi:account-multiple{%- else -%}mdi:account-off-outline{%- endif %}"
# icon_color: "{% if is_state('binary_sensor.presence_01_presence', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
# badge_icon: mdi:numeric-1-circle
# badge_color: green
# - type: template
# icon: "{% if is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_4', 'on') -%}mdi:motion-sensor{%- else -%}mdi:motion-sensor-off{%- endif %}"
# icon_color: "{% if is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_4', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
# entity: binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_4
# tap_action:
# action: more-info
- type: template
icon: "{% if is_state('binary_sensor.window_bedroom_olivia_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.window_bedroom_olivia_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.window_bedroom_olivia_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.door_bedroom_olivia_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.door_bedroom_olivia_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.door_bedroom_olivia_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.door_bedroom_olivia_closet_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.door_bedroom_olivia_closet_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.door_bedroom_olivia_closet_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.smoke_bedroom_olivia_01_smoke', 'on') -%}mdi:smoke-detector-variant-alert{%- else -%}mdi:smoke-detector-variant{%- endif %}"
icon_color: "{% if is_state('binary_sensor.smoke_bedroom_olivia_01_smoke', 'on') -%}#D40909{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.smoke_bedroom_olivia_01_smoke
tap_action:
action: more-info
- type: custom:mushroom-chips-card
alignment: end
chips:
- type: template
entity: light.bedroom_olivia_ceiling_01
icon: mdi:ceiling-light
tap_action:
action: toggle
icon_color: "{% if is_state('light.bedroom_olivia_ceiling_01', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
- type: template
entity: fan.bedroom_olivia
icon: mdi:fan
icon_color: "{% if is_state('fan.bedroom_olivia', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
tap_action:
action: toggle
- type: custom:stack-in-card
cards:
- type: grid
columns: 2
square: false
cards:
- type: custom:mushroom-entity-card
entity: input_boolean.bedroom_olivia_light_state
name: Olivia Bedroom
icon: mdi:lightbulb-group
tap_action:
action: toggle
card_mod:
style: "ha-card { border: none; }"
- type: custom:paper-buttons-row
preset: mushroom
styles:
justify-content: flex-end
base_config:
styles:
button:
margin-top: 12px
margin-right: 12px
buttons:
- layout: icon
icon: mdi:lightbulb-group
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_olivia_scenes
option: "All"
styles:
button:
color: "{% if is_state('input_boolean.bedroom_olivia_light_state', 'on') and is_state('input_select.bedroom_olivia_scenes', 'All') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.bedroom_olivia_light_state', 'on') and is_state('input_select.bedroom_olivia_scenes', 'All') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:ceiling-light-multiple
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_olivia_scenes
option: "Ceiling Only"
styles:
button:
color: "{% if is_state('input_boolean.bedroom_olivia_light_state', 'on') and is_state('input_select.bedroom_olivia_scenes', 'Ceiling Only') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.bedroom_olivia_light_state', 'on') and is_state('input_select.bedroom_olivia_scenes', 'Ceiling Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- layout: icon
icon: mdi:floor-lamp-torchiere
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.bedroom_olivia_scenes
option: "Floor Only"
styles:
button:
color: "{% if is_state('input_boolean.bedroom_olivia_light_state', 'on') and is_state('input_select.bedroom_olivia_scenes', 'Floor Only') %}#FFC107{% else %}#44739E{% endif %}"
background-color: "{% if is_state('input_boolean.bedroom_olivia_light_state', 'on') and is_state('input_select.bedroom_olivia_scenes', 'Table Only') %}#FFF3D7{% else %}#F4F4F4{% endif %}"
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
# name: Temperature
line_color: orange
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bedroom_olivia_01_temperature
# name: Temperature
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
# name: Humidity
line_color: blue
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bedroom_olivia_01_humidity
# name: Humidity
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
# name: Illuminance
line_color: red
font_size: 75
font_size_header: 12
entities:
- entity: sensor.presence_bedroom_olivia_light_level
# name: Illuminance
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.bedroom_olivia_ceiling_01
name: Ceiling Light
icon: mdi:ceiling-fan-light
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-light-card
entity: light.bedroom_olivia_floor_01
name: Floor Light
icon: mdi:floor-lamp
show_brightness_control: true
collapsible_controls: true
use_light_color: true
- type: custom:mushroom-fan-card
entity: fan.bedroom_maxim
name: 'Ceiling Fan'
icon_animation: on
show_percentage_control: true
collapsible_controls: true
# - type: custom:stack-in-card
# cards:
# - type: grid
# columns: 2
# square: false
# cards:
# - type: custom:mushroom-entity-card
# entity: fan.bedroom_olivia
# name: Fan
# icon: mdi:ceiling-fan-light
# use_light_color: false
# tap_action:
# action: toggle
# card_mod:
# style: "ha-card { border: none }"
# - type: custom:paper-buttons-row
# preset: mushroom
# styles:
# justify-content: flex-end
# base_config:
# styles:
# button:
# margin-top: 12px
# margin-right: 12px
# buttons:
# - layout: icon
# icon: mdi:fan-speed-1
# tap_action:
# action: call-service
# service: fan.set_preset_mode
# service_data:
# entity_id: fan.bedroom_olivia
# preset_mode: low
# styles:
# button:
# color: "{% if is_state_attr('fan.bedroom_olivia', 'preset_mode', 'low') %}#FFC107{% else %}#44739E{% endif %}"
# - layout: icon
# icon: mdi:fan-speed-2
# tap_action:
# action: call-service
# service: fan.set_preset_mode
# service_data:
# entity_id: fan.bedroom_olivia
# preset_mode: medium
# styles:
# button:
# color: "{% if is_state_attr('fan.bedroom_olivia', 'preset_mode', 'medium') %}#FFC107{% else %}#44739E{% endif %}"
# - layout: icon
# icon: mdi:fan-speed-3
# tap_action:
# action: call-service
# service: fan.set_preset_mode
# service_data:
# entity_id: fan.bedroom_olivia
# preset_mode: high
# styles:
# button:
# color: "{% if is_state_attr('fan.bedroom_olivia', 'preset_mode', 'high') %}#FFC107{% else %}#44739E{% endif %}"
# - type: entities
# show_header_toggle: false
# entities:
# - type: custom:fan-mode-button-row
# entity: fan.bedroom_olivia
# name: Fan
# customTheme: false
- type: custom:layout-break
- type: vertical-stack
cards:
- type: custom:webrtc-camera
url: "rtsp://10.10.11.110:8554/bedroom-olivia"
title: "Olivia's Bedroom"
muted: true
mode: webrtc,mse
- type: custom:mushroom-chips-card
chips:
- type: entity
entity:
- type: entity
entity:
- type: entity
entity:
- type: custom:layout-break
- type: vertical-stack
cards:
# - type: entities
# title: Lights
# show_header_toggle: false
# entities:
# - entity: timer.app_lighting_bedroom_olivia
# - type: custom:flipdown-timer-card
# entity: timer.app_lighting_bedroom_olivia
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack
cards:
- type: button
name: Occupancy
entity: input_boolean.occupancy_bedroom_olivia
- type: button
name: Operating Mode
entity: input_boolean.manually_operated_light_bedroom_olivia
- type: button
name: Occupants
entity: input_number.occupants_bedroom_olivia
# - type: custom:mini-media-player
# entity: media_player.kitchen_max
# artwork: cover
- type: custom:plotly-graph
refresh_interval: 1
hours_to_show: current_day
config:
modeBarButtonsToRemove:
- select2d
- lasso2d
- toImage
displaylogo: false
layout:
height: 240
margin:
l: 40
r: 20
t: 20
b: 55
showlegend: true
xaxis:
showticklabels: true
dtick: 1000
visible: true
gridcolor: RGBA(200,200,200,0.15)
zerolinecolor: RGBA(200,200,200,0.15)
type: number
fixedrange: true
range:
- 4000
- -4000
yaxis:
showticklabels: true
dtick: 1000
visible: true
gridcolor: RGBA(200,200,200,0.15)
zerolinecolor: RGBA(200,200,200,0.15)
scaleanchor: x
scaleratio: 1
fixedrange: true
range:
- 7500
- 0
entities:
- entity: ''
fn_var1: $ex vars.sensor_id = "d158f4";
fn_var2: $ex vars.sensor_name_prefix = "sensor.screek_human_sensor_2a_" + vars.sensor_id + "_";
fn_var3: $ex vars.number_name_prefix = "number.screek_human_sensor_2a_" + vars.sensor_id + "_";
fn_var4: $ex vars.is_inch_unit = hass.states[vars.sensor_name_prefix + "target1_x"].attributes.unit_of_measurement == "in";
# name: sensor_id
- entity: ''
name: Target1
marker:
size: 10
symbol: star-diamond
line:
shape: spline
width: 5
x:
- $ex {
var x = hass.states[vars.sensor_name_prefix + "target1_x"].state;
var y = hass.states[vars.sensor_name_prefix + "target1_y"].state;
if (x == 0 && y == 0) { return -9999 };
if (vars.is_inch_unit) { x = x * 25.4 };
return x;
}
y:
- $ex {
var x = hass.states[vars.sensor_name_prefix + "target1_x"].state;
var y = hass.states[vars.sensor_name_prefix + "target1_y"].state;
if (x == 0 && y == 0) { return -9999 };
if (vars.is_inch_unit) { y = y * 25.4 };
return y;
}
- entity: ''
name: Target2
marker:
size: 10
symbol: star-diamond
line:
shape: spline
width: 5
x:
- $ex {
var x = hass.states[vars.sensor_name_prefix + "target2_x"].state;
var y = hass.states[vars.sensor_name_prefix + "target2_y"].state;
if (x == 0 && y == 0) { return -9999 };
if (vars.is_inch_unit) { x = x * 25.4 };
return x;
}
y:
- $ex {
var x = hass.states[vars.sensor_name_prefix + "target2_x"].state;
var y = hass.states[vars.sensor_name_prefix + "target2_y"].state;
if (x == 0 && y == 0) { return -9999 };
if (vars.is_inch_unit) { y = y * 25.4 };
return y;
}
- entity: ''
internal: false
name: Target3
marker:
size: 10
symbol: star-diamond
line:
shape: spline
width: 5
x:
- $ex {
var x = hass.states[vars.sensor_name_prefix + "target3_x"].state;
var y = hass.states[vars.sensor_name_prefix + "target3_y"].state;
if (x == 0 && y == 0) { return -9999 };
if (vars.is_inch_unit) { x = x * 25.4 };
return x;
}
y:
- $ex {
var x = hass.states[vars.sensor_name_prefix + "target3_x"].state;
var y = hass.states[vars.sensor_name_prefix + "target3_y"].state;
if (x == 0 && y == 0) { return -9999 };
if (vars.is_inch_unit) { y = y * 25.4 };
return y;
}
- entity: ''
name: Zone1
mode: lines
fill: toself
fillcolor: RGBA(20,200,0,0.06)
line:
color: RGBA(20,200,0,0.2)
shape: line
width: 2
x:
- >-
$ex
hass.states[vars.number_name_prefix + "zone1_x_begin"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone1_x_begin"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone1_x_end"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone1_x_end"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone1_x_begin"].state
y:
- >-
$ex
hass.states[vars.number_name_prefix + "zone1_y_begin"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone1_y_end"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone1_y_end"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone1_y_begin"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone1_y_begin"].state
- entity: ''
name: Zone2
mode: lines
fill: toself
fillcolor: RGBA(200,0,255,0.06)
line:
color: RGBA(200,0,255,0.2)
shape: line
width: 2
x:
- >-
$ex
hass.states[vars.number_name_prefix + "zone2_x_begin"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone2_x_begin"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone2_x_end"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone2_x_end"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone2_x_begin"].state
y:
- >-
$ex
hass.states[vars.number_name_prefix + "zone2_y_begin"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone2_y_end"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone2_y_end"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone2_y_begin"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone2_y_begin"].state
- entity: ''
name: Zone3
mode: lines
fill: toself
fillcolor: RGBA(200,120,55,0.06)
line:
color: RGBA(200,120,55,0.2)
shape: line
width: 2
x:
- >-
$ex
hass.states[vars.number_name_prefix + "zone3_x_begin"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone3_x_begin"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone3_x_end"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone3_x_end"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone3_x_begin"].state
y:
- >-
$ex
hass.states[vars.number_name_prefix + "zone3_y_begin"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone3_y_end"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone3_y_end"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone3_y_begin"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zone3_y_begin"].state
- entity: ''
name: ExZone
mode: lines
fill: toself
fillcolor: RGBA(255,0,0,0.15)
line:
shape: line
width: 1
color: RGBA(255,0,0,0.2)
x:
- >-
$ex
hass.states[vars.number_name_prefix + "zout1_x_begin"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zout1_x_begin"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zout1_x_end"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zout1_x_end"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zout1_x_begin"].state
y:
- >-
$ex
hass.states[vars.number_name_prefix + "zout1_y_begin"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zout1_y_end"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zout1_y_end"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zout1_y_begin"].state
- >-
$ex
hass.states[vars.number_name_prefix + "zout1_y_begin"].state
- entity: ''
name: Coverage
mode: lines
fill: tonexty
fillcolor: rgba(168, 216, 234, 0.15)
hoverinfo: none
line:
shape: line
width: 0.7
dash: dot
x:
- 0
- $ex 7500 * Math.sin((2 * Math.PI)/360 * 60)
- 6500
- 5500
- 4500
- 4000
- 3000
- 2000
- 1000
- 0
- -1000
- -2000
- -3000
- -4000
- -4500
- -5500
- -6500
- $ex -7500 * Math.sin((2 * Math.PI)/360 * 60)
- 0
'y':
- 0
- $ex 7500 * Math.cos((2 * Math.PI)/360 * 60)
- $ex Math.sqrt( 7500**2 - 6500**2 )
- $ex Math.sqrt( 7500**2 - 5500**2 )
- $ex Math.sqrt( 7500**2 - 4500**2 )
- $ex Math.sqrt( 7500**2 - 4000**2 )
- $ex Math.sqrt( 7500**2 - 3000**2 )
- $ex Math.sqrt( 7500**2 - 2000**2 )
- $ex Math.sqrt( 7500**2 - 1000**2 )
- 7500
- $ex Math.sqrt( 7500**2 - 1000**2 )
- $ex Math.sqrt( 7500**2 - 2000**2 )
- $ex Math.sqrt( 7500**2 - 3000**2 )
- $ex Math.sqrt( 7500**2 - 4000**2 )
- $ex Math.sqrt( 7500**2 - 4500**2 )
- $ex Math.sqrt( 7500**2 - 5500**2 )
- $ex Math.sqrt( 7500**2 - 6500**2 )
- $ex 7500 * Math.cos((2 * Math.PI)/360 * 60)
- 0
raw_plotly_config: true
title: $ex "Human Sensor 2A " + vars.sensor_id + " Map"

View File

@ -1,138 +1,138 @@
--- ---
title: Bathrooms title: Bathrooms
icon: mdi:shower icon: 'mdi:shower'
panel: true panel: true
visible: visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex - user: 1614b22cbef54f979741cf8a6b3413ec
- user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya - user: 76e8af2547254ef0ab523ae1ad0bf81a
cards: cards:
- type: custom:layout-card - type: 'custom:layout-card'
layout: vertical layout_type: 'custom:vertical-layout'
layout:
max_cols: 3
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- type: custom:mushroom-chips-card - type: 'custom:mushroom-chips-card'
chips: chips:
- type: template - type: template
icon: "{% if is_state('binary_sensor.presence_03_presence', 'on') -%}mdi:account-multiple{%- else -%}mdi:account-off-outline{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.presence_03_presence', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}" {% if is_state('binary_sensor.presence_03_presence', 'on')
badge_icon: mdi:numeric-1-circle -%}mdi:account-multiple{%- else
-%}mdi:account-off-outline{%- endif %}
icon_color: >-
{% if is_state('binary_sensor.presence_03_presence', 'on')
-%} #FFC107 {%- else -%} #44739E {%- endif %}
badge_icon: 'mdi:numeric-1-circle'
badge_color: green badge_color: green
entity: binary_sensor.presence_03_presence entity: binary_sensor.presence_03_presence
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.bathroom_master_01_home_security_motion_detection', 'on') -%}mdi:motion-sensor{%- else -%}mdi:motion-sensor-off{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.bathroom_master_01_home_security_motion_detection', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
entity: binary_sensor.bathroom_master_01_home_security_motion_detection is_state('binary_sensor.bathroom_master_01_home_security_motion_detection',
'on') -%}mdi:motion-sensor{%- else
-%}mdi:motion-sensor-off{%- endif %}
icon_color: >-
{% if
is_state('binary_sensor.bathroom_master_01_home_security_motion_detection',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: >-
binary_sensor.bathroom_master_01_home_security_motion_detection
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.window_bathroom_master_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.window_bathroom_master_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
is_state('binary_sensor.window_bathroom_master_01_contact',
'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%-
endif %}
icon_color: >-
{% if
is_state('binary_sensor.window_bathroom_master_01_contact',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: binary_sensor.window_bathroom_master_01_contact entity: binary_sensor.window_bathroom_master_01_contact
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.door_bathroom_master_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.door_bathroom_master_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
is_state('binary_sensor.door_bathroom_master_01_contact',
'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif
%}
icon_color: >-
{% if
is_state('binary_sensor.door_bathroom_master_01_contact',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: binary_sensor.door_bathroom_master_01_contact entity: binary_sensor.door_bathroom_master_01_contact
tap_action: tap_action:
action: more-info action: more-info
- type: custom:mushroom-chips-card - type: 'custom:mushroom-chips-card'
alignment: end alignment: end
chips: chips:
- type: template - type: template
icon: mdi:ceiling-light icon: 'mdi:ceiling-light'
icon_color: "{% if is_state('light.bathroom_master_wall_01', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" icon_color: >-
{% if is_state('light.bathroom_master_wall_01', 'on')
-%}#FFC107{%- else -%}#44739E{%- endif %}
entity: light.bathroom_master_wall_01 entity: light.bathroom_master_wall_01
tap_action: tap_action:
action: toggle action: toggle
- type: template - type: template
icon: mdi:fan icon: 'mdi:fan'
icon_color: "{% if is_state('fan.bathroom_master', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" icon_color: >-
{% if is_state('fan.bathroom_master', 'on') -%}#FFC107{%-
else -%}#44739E{%- endif %}
entity: fan.bathroom_master entity: fan.bathroom_master
tap_action: tap_action:
action: toggle action: toggle
- type: horizontal-stack - type: 'custom:bubble-card'
cards: card_type: separator
- type: custom:mini-graph-card icon: 'mdi:shower'
line_color: orange sub_button:
font_size: 75 - name: Temp
font_size_header: 12 icon: 'mdi:thermometer-lines'
entities: entity: sensor.climate_bathroom_master_01_temperature
- entity: sensor.climate_bathroom_master_01_temperature show_name: false
hours_to_show: 24 show_icon: true
points_per_hour: 4 show_state: true
align_icon: state show_background: false
align_state: left show_attribute: false
show: - name: Humidity
name: false icon: 'mdi:water-percent'
- type: custom:mini-graph-card entity: sensor.climate_bathroom_master_01_humidity
line_color: blue show_name: false
font_size: 75 show_icon: true
font_size_header: 12 show_state: true
entities: show_background: false
- entity: sensor.climate_bathroom_master_01_humidity show_attribute: false
hours_to_show: 24 - name: Light Level
points_per_hour: 4 icon: 'mdi:weather-sunny'
align_icon: state entity: sensor.motion_bathroom_master_01_illuminance
align_state: left show_name: false
show: show_icon: true
name: false show_state: true
- type: custom:mini-graph-card show_background: false
line_color: red show_attribute: false
font_size: 75 styles: |
font_size_header: 12 .bubble-feedback-container {
entities: margin: 0px;
- entity: sensor.motion_bathroom_master_01_illuminance }
hours_to_show: 24 - type: 'custom:bubble-card'
points_per_hour: 4 card_type: button
align_icon: state button_type: slider
align_state: left name: Light
show:
name: false
- type: horizontal-stack
cards:
- type: tile
entity: light.bathroom_master_wall_01 entity: light.bathroom_master_wall_01
icon: mdi:lamp icon: 'mdi:lamp'
color: orange show_state: true
features: tap_action:
- type: "light-brightness" action: toggle
button_action:
tap_action: tap_action:
action: toggle action: toggle
hold_action:
action: more-info
# - type: horizontal-stack
# cards:
# - type: custom:button-card
# name: Fan
# entity: fan.master_bathroom
# show_state: false
# styles:
# card:
# - height: 140px
# - width: 140px
# icon:
# - animation: >
# [[[ return 'rotating ' + (states['sensor.air_purifier_fan_speed'].state) + 's linear infinite' ]]]
# - type: custom:flipdown-timer-card
# entity: timer.app_lighting_bedroom_olivia
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- type: button - type: button
@ -144,136 +144,116 @@ cards:
- type: button - type: button
name: Occupants name: Occupants
entity: input_number.occupants_bathroom_master entity: input_number.occupants_bathroom_master
# - type: horizontal-stack - type: 'custom:layout-break'
# cards:
# - type: custom:mini-media-player
# entity: media_player.master_bathroom
# artwork: cover
- type: custom:layout-break
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- type: custom:mushroom-chips-card - type: 'custom:mushroom-chips-card'
chips: chips:
- type: template - type: template
icon: "{% if is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_7', 'on') -%}mdi:motion-sensor{%- else -%}mdi:motion-sensor-off{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_7', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
entity: binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_7 is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_7',
'on') -%}mdi:motion-sensor{%- else
-%}mdi:motion-sensor-off{%- endif %}
icon_color: >-
{% if
is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_7',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: >-
binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_7
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.window_bathroom_bedroom_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.window_bathroom_bedroom_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
is_state('binary_sensor.window_bathroom_bedroom_01_contact',
'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%-
endif %}
icon_color: >-
{% if
is_state('binary_sensor.window_bathroom_bedroom_01_contact',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: binary_sensor.window_bathroom_bedroom_01_contact entity: binary_sensor.window_bathroom_bedroom_01_contact
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.door_bathroom_bedroom_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.door_bathroom_bedroom_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
is_state('binary_sensor.door_bathroom_bedroom_01_contact',
'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif
%}
icon_color: >-
{% if
is_state('binary_sensor.door_bathroom_bedroom_01_contact',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: binary_sensor.door_bathroom_bedroom_01_contact entity: binary_sensor.door_bathroom_bedroom_01_contact
tap_action: tap_action:
action: more-info action: more-info
- type: custom:mushroom-chips-card - type: 'custom:mushroom-chips-card'
alignment: end alignment: end
chips: chips:
- type: template - type: template
icon: mdi:ceiling-light icon: 'mdi:ceiling-light'
icon_color: "{% if is_state('light.bathroom_bedroom_wall_01', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" icon_color: >-
{% if is_state('light.bathroom_bedroom_wall_01', 'on')
-%}#FFC107{%- else -%}#44739E{%- endif %}
entity: light.bathroom_bedroom_wall_01 entity: light.bathroom_bedroom_wall_01
tap_action: tap_action:
action: toggle action: toggle
- type: template - type: template
icon: mdi:fan icon: 'mdi:fan'
icon_color: "{% if is_state('fan.bathroom_bedroom', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" icon_color: >-
{% if is_state('fan.bathroom_bedroom', 'on') -%}#FFC107{%-
else -%}#44739E{%- endif %}
entity: fan.bathroom_bedroom entity: fan.bathroom_bedroom
tap_action: tap_action:
action: toggle action: toggle
- type: horizontal-stack - type: 'custom:bubble-card'
cards: card_type: separator
- type: custom:mini-graph-card icon: 'mdi:shower'
line_color: orange sub_button:
font_size: 75 - name: Temp
font_size_header: 12 icon: 'mdi:thermometer-lines'
entities: entity: sensor.climate_bathroom_bedroom_01_temperature
- entity: sensor.climate_bathroom_bedroom_01_temperature show_name: false
hours_to_show: 24 show_icon: true
points_per_hour: 4 show_state: true
align_icon: state show_background: false
align_state: left show_attribute: false
show: - name: Humidity
name: false icon: 'mdi:water-percent'
- type: custom:mini-graph-card entity: sensor.climate_bathroom_bedroom_01_humidity
line_color: blue show_name: false
font_size: 75 show_icon: true
font_size_header: 12 show_state: true
entities: show_background: false
- entity: sensor.climate_bathroom_bedroom_01_humidity show_attribute: false
hours_to_show: 24 - name: Light Level
points_per_hour: 4 icon: 'mdi:weather-sunny'
align_icon: state entity: sensor.motion_bathroom_bedroom_01_illuminance
align_state: left show_name: false
show: show_icon: true
name: false show_state: true
- type: custom:mini-graph-card show_background: false
line_color: red show_attribute: false
font_size: 75 styles: |
font_size_header: 12 .bubble-feedback-container {
entities: margin: 0px;
- entity: sensor.motion_bathroom_bedroom_01_illuminance }
hours_to_show: 24 - type: 'custom:bubble-card'
points_per_hour: 4 card_type: button
align_icon: state button_type: slider
align_state: left name: Light
show:
name: false
- type: horizontal-stack
cards:
- type: tile
entity: light.bathroom_bedroom_wall_01 entity: light.bathroom_bedroom_wall_01
icon: mdi:lamp icon: 'mdi:lamp'
color: orange show_state: true
features: tap_action:
- type: "light-brightness" action: toggle
button_action:
tap_action: tap_action:
action: toggle action: toggle
hold_action:
action: more-info
# - type: horizontal-stack
# cards:
# - type: custom:button-card
# name: Fan
# entity: fan.master_bedroom_bathroom
# show_state: false
# state:
# - value: "locked"
# color: green
# icon: mdi:lock
# - value: "unlocked"
# color: red
# icon: mdi:lock-open-variant
# styles:
# card:
# - height: 140px
# - width: 140px
# icon:
# - animation: >
# [[[ return 'rotating ' + (states['sensor.air_purifier_fan_speed'].state) + 's linear infinite' ]]]
# - type: custom:flipdown-timer-card
# entity: timer.app_lighting_bathroom_bedroom
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- type: button - type: button
@ -285,122 +265,103 @@ cards:
- type: button - type: button
name: Occupants name: Occupants
entity: input_number.occupants_bathroom_bedroom entity: input_number.occupants_bathroom_bedroom
- type: custom:layout-break - type: 'custom:layout-break'
- type: vertical-stack - type: vertical-stack
cards: cards:
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- type: custom:mushroom-chips-card - type: 'custom:mushroom-chips-card'
chips: chips:
# - type: template
# icon: "{% if is_state('binary_sensor.presence_01_presence', 'on') -%}mdi:account-multiple{%- else -%}mdi:account-off-outline{%- endif %}"
# icon_color: "{% if is_state('binary_sensor.presence_01_presence', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
# badge_icon: mdi:numeric-1-circle
# badge_color: green
- type: template - type: template
icon: "{% if is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_6', 'on') -%}mdi:motion-sensor{%- else -%}mdi:motion-sensor-off{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_6', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
entity: binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_6 is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_6',
'on') -%}mdi:motion-sensor{%- else
-%}mdi:motion-sensor-off{%- endif %}
icon_color: >-
{% if
is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_6',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: >-
binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_6
tap_action: tap_action:
action: more-info action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.door_bathroom_living_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}" icon: >-
icon_color: "{% if is_state('binary_sensor.door_bathroom_living_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" {% if
is_state('binary_sensor.door_bathroom_living_01_contact',
'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif
%}
icon_color: >-
{% if
is_state('binary_sensor.door_bathroom_living_01_contact',
'on') -%}#FFC107{%- else -%}#44739E{%- endif %}
entity: binary_sensor.door_bathroom_living_01_contact entity: binary_sensor.door_bathroom_living_01_contact
tap_action: tap_action:
action: more-info action: more-info
- type: custom:mushroom-chips-card - type: 'custom:mushroom-chips-card'
alignment: end alignment: end
chips: chips:
- type: template - type: template
icon: mdi:ceiling-light icon: 'mdi:ceiling-light'
icon_color: "{% if is_state('light.bathroom_living_room_01', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" icon_color: >-
{% if is_state('light.bathroom_living_room_01', 'on')
-%}#FFC107{%- else -%}#44739E{%- endif %}
entity: light.bathroom_living_room_01 entity: light.bathroom_living_room_01
tap_action: tap_action:
action: toggle action: toggle
- type: template - type: template
icon: mdi:fan icon: 'mdi:fan'
icon_color: "{% if is_state('fan.bathroom_living_room', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" icon_color: >-
{% if is_state('fan.bathroom_living_room', 'on')
-%}#FFC107{%- else -%}#44739E{%- endif %}
entity: fan.bathroom_living_room entity: fan.bathroom_living_room
tap_action: tap_action:
action: toggle action: toggle
- type: horizontal-stack - type: 'custom:bubble-card'
cards: card_type: separator
- type: custom:mini-graph-card icon: 'mdi:toilet'
line_color: orange sub_button:
font_size: 75 - name: Temp
font_size_header: 12 icon: 'mdi:thermometer-lines'
entities: entity: sensor.climate_bathroom_living_01_temperature
- entity: sensor.climate_bathroom_living_01_temperature show_name: false
hours_to_show: 24 show_icon: true
points_per_hour: 4 show_state: true
align_icon: state show_background: false
align_state: left show_attribute: false
show: - name: Humidity
name: false icon: 'mdi:water-percent'
- type: custom:mini-graph-card entity: sensor.climate_bathroom_living_01_humidity
line_color: blue show_name: false
font_size: 75 show_icon: true
font_size_header: 12 show_state: true
entities: show_background: false
- entity: sensor.climate_bathroom_living_01_humidity show_attribute: false
hours_to_show: 24 - name: Light Level
points_per_hour: 4 icon: 'mdi:weather-sunny'
align_icon: state entity: sensor.motion_bathroom_living_01_illuminance
align_state: left show_name: false
show: show_icon: true
name: false show_state: true
- type: custom:mini-graph-card show_background: false
line_color: red show_attribute: false
font_size: 75 styles: |
font_size_header: 12 .bubble-feedback-container {
entities: margin: 0px;
- entity: sensor.motion_bathroom_living_01_illuminance }
hours_to_show: 24 - type: 'custom:bubble-card'
points_per_hour: 4 card_type: button
align_icon: state button_type: slider
align_state: left name: Light
show:
name: false
- type: horizontal-stack
cards:
- type: tile
entity: light.bathroom_living_room_01 entity: light.bathroom_living_room_01
icon: mdi:lamp icon: 'mdi:lamp'
color: orange show_state: true
features: tap_action:
- type: "light-brightness" action: toggle
button_action:
tap_action: tap_action:
action: toggle action: toggle
hold_action:
action: more-info
# - type: horizontal-stack
# cards:
# - type: custom:button-card
# name: Fan
# entity: fan.living_room_bathroom
# show_state: false
# styles:
# card:
# - height: 140px
# - width: 140px
# icon:
# - animation: >
# [[[ return 'rotating ' + (states['sensor.air_purifier_fan_speed'].state) + 's linear infinite' ]]]
# - type: custom:flipdown-timer-card
# entity: timer.app_lighting_bathroom_living
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- type: button - type: button

View File

@ -0,0 +1,414 @@
---
title: Bathrooms
icon: mdi:shower
panel: true
visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex
- user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya
cards:
- type: custom:layout-card
layout: vertical
cards:
- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: custom:mushroom-chips-card
chips:
- type: template
icon: "{% if is_state('binary_sensor.presence_03_presence', 'on') -%}mdi:account-multiple{%- else -%}mdi:account-off-outline{%- endif %}"
icon_color: "{% if is_state('binary_sensor.presence_03_presence', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
badge_icon: mdi:numeric-1-circle
badge_color: green
entity: binary_sensor.presence_03_presence
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.bathroom_master_01_home_security_motion_detection', 'on') -%}mdi:motion-sensor{%- else -%}mdi:motion-sensor-off{%- endif %}"
icon_color: "{% if is_state('binary_sensor.bathroom_master_01_home_security_motion_detection', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.bathroom_master_01_home_security_motion_detection
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.window_bathroom_master_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.window_bathroom_master_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.window_bathroom_master_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.door_bathroom_master_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.door_bathroom_master_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.door_bathroom_master_01_contact
tap_action:
action: more-info
- type: custom:mushroom-chips-card
alignment: end
chips:
- type: template
icon: mdi:ceiling-light
icon_color: "{% if is_state('light.bathroom_master_wall_01', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: light.bathroom_master_wall_01
tap_action:
action: toggle
- type: template
icon: mdi:fan
icon_color: "{% if is_state('fan.bathroom_master', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: fan.bathroom_master
tap_action:
action: toggle
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
line_color: orange
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bathroom_master_01_temperature
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
line_color: blue
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bathroom_master_01_humidity
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
line_color: red
font_size: 75
font_size_header: 12
entities:
- entity: sensor.motion_bathroom_master_01_illuminance
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: horizontal-stack
cards:
- type: tile
entity: light.bathroom_master_wall_01
icon: mdi:lamp
color: orange
features:
- type: "light-brightness"
tap_action:
action: toggle
hold_action:
action: more-info
# - type: horizontal-stack
# cards:
# - type: custom:button-card
# name: Fan
# entity: fan.master_bathroom
# show_state: false
# styles:
# card:
# - height: 140px
# - width: 140px
# icon:
# - animation: >
# [[[ return 'rotating ' + (states['sensor.air_purifier_fan_speed'].state) + 's linear infinite' ]]]
# - type: custom:flipdown-timer-card
# entity: timer.app_lighting_bedroom_olivia
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack
cards:
- type: button
name: Occupancy
entity: input_boolean.occupancy_bathroom_master
- type: button
name: Operating Mode
entity: input_boolean.manually_operated_light_bathroom_master
- type: button
name: Occupants
entity: input_number.occupants_bathroom_master
# - type: horizontal-stack
# cards:
# - type: custom:mini-media-player
# entity: media_player.master_bathroom
# artwork: cover
- type: custom:layout-break
- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: custom:mushroom-chips-card
chips:
- type: template
icon: "{% if is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_7', 'on') -%}mdi:motion-sensor{%- else -%}mdi:motion-sensor-off{%- endif %}"
icon_color: "{% if is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_7', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_7
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.window_bathroom_bedroom_01_contact', 'on') -%}mdi:window-open{%- else -%}mdi:window-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.window_bathroom_bedroom_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.window_bathroom_bedroom_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.door_bathroom_bedroom_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.door_bathroom_bedroom_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.door_bathroom_bedroom_01_contact
tap_action:
action: more-info
- type: custom:mushroom-chips-card
alignment: end
chips:
- type: template
icon: mdi:ceiling-light
icon_color: "{% if is_state('light.bathroom_bedroom_wall_01', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: light.bathroom_bedroom_wall_01
tap_action:
action: toggle
- type: template
icon: mdi:fan
icon_color: "{% if is_state('fan.bathroom_bedroom', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: fan.bathroom_bedroom
tap_action:
action: toggle
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
line_color: orange
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bathroom_bedroom_01_temperature
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
line_color: blue
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bathroom_bedroom_01_humidity
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
line_color: red
font_size: 75
font_size_header: 12
entities:
- entity: sensor.motion_bathroom_bedroom_01_illuminance
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: horizontal-stack
cards:
- type: tile
entity: light.bathroom_bedroom_wall_01
icon: mdi:lamp
color: orange
features:
- type: "light-brightness"
tap_action:
action: toggle
hold_action:
action: more-info
# - type: horizontal-stack
# cards:
# - type: custom:button-card
# name: Fan
# entity: fan.master_bedroom_bathroom
# show_state: false
# state:
# - value: "locked"
# color: green
# icon: mdi:lock
# - value: "unlocked"
# color: red
# icon: mdi:lock-open-variant
# styles:
# card:
# - height: 140px
# - width: 140px
# icon:
# - animation: >
# [[[ return 'rotating ' + (states['sensor.air_purifier_fan_speed'].state) + 's linear infinite' ]]]
# - type: custom:flipdown-timer-card
# entity: timer.app_lighting_bathroom_bedroom
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack
cards:
- type: button
name: Occupancy
entity: input_boolean.occupancy_bathroom_bedroom
- type: button
name: Operating Mode
entity: input_boolean.manually_operated_light_bathroom_bedroom
- type: button
name: Occupants
entity: input_number.occupants_bathroom_bedroom
- type: custom:layout-break
- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: custom:mushroom-chips-card
chips:
# - type: template
# icon: "{% if is_state('binary_sensor.presence_01_presence', 'on') -%}mdi:account-multiple{%- else -%}mdi:account-off-outline{%- endif %}"
# icon_color: "{% if is_state('binary_sensor.presence_01_presence', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
# badge_icon: mdi:numeric-1-circle
# badge_color: green
- type: template
icon: "{% if is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_6', 'on') -%}mdi:motion-sensor{%- else -%}mdi:motion-sensor-off{%- endif %}"
icon_color: "{% if is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_6', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_6
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.door_bathroom_living_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.door_bathroom_living_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.door_bathroom_living_01_contact
tap_action:
action: more-info
- type: custom:mushroom-chips-card
alignment: end
chips:
- type: template
icon: mdi:ceiling-light
icon_color: "{% if is_state('light.bathroom_living_room_01', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: light.bathroom_living_room_01
tap_action:
action: toggle
- type: template
icon: mdi:fan
icon_color: "{% if is_state('fan.bathroom_living_room', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: fan.bathroom_living_room
tap_action:
action: toggle
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
line_color: orange
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bathroom_living_01_temperature
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
line_color: blue
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_bathroom_living_01_humidity
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
line_color: red
font_size: 75
font_size_header: 12
entities:
- entity: sensor.motion_bathroom_living_01_illuminance
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: horizontal-stack
cards:
- type: tile
entity: light.bathroom_living_room_01
icon: mdi:lamp
color: orange
features:
- type: "light-brightness"
tap_action:
action: toggle
hold_action:
action: more-info
# - type: horizontal-stack
# cards:
# - type: custom:button-card
# name: Fan
# entity: fan.living_room_bathroom
# show_state: false
# styles:
# card:
# - height: 140px
# - width: 140px
# icon:
# - animation: >
# [[[ return 'rotating ' + (states['sensor.air_purifier_fan_speed'].state) + 's linear infinite' ]]]
# - type: custom:flipdown-timer-card
# entity: timer.app_lighting_bathroom_living
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack
cards:
- type: button
name: Occupancy
entity: input_boolean.occupancy_bathroom_living
- type: button
name: Operating Mode
entity: input_boolean.manually_operated_light_bathroom_living
- type: button
name: Occupants
entity: input_number.occupants_bathroom_living

View File

@ -6,8 +6,10 @@ visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex - user: 1614b22cbef54f979741cf8a6b3413ec # Alex
- user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya - user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya
cards: cards:
- type: custom:layout-card - type: 'custom:layout-card'
layout: vertical layout_type: 'custom:vertical-layout'
layout:
max_cols: 3
cards: cards:
- type: vertical-stack - type: vertical-stack
cards: cards:
@ -21,12 +23,6 @@ cards:
entity: binary_sensor.presence_garage_sensor_1 entity: binary_sensor.presence_garage_sensor_1
tap_action: tap_action:
action: more-info action: more-info
# - type: template
# icon: "{% if is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_8', 'on') -%}mdi:motion-sensor{%- else -%}mdi:motion-sensor-off{%- endif %}"
# icon_color: "{% if is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_8', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
# entity: binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_8
# tap_action:
# action: more-info
- type: template - type: template
icon: "{% if is_state('binary_sensor.door_garage_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}" icon: "{% if is_state('binary_sensor.door_garage_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.door_garage_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}" icon_color: "{% if is_state('binary_sensor.door_garage_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
@ -45,76 +41,178 @@ cards:
entity: binary_sensor.smoke_garage_01_smoke entity: binary_sensor.smoke_garage_01_smoke
tap_action: tap_action:
action: more-info action: more-info
- type: horizontal-stack
- type: 'custom:bubble-card'
card_type: separator
icon: 'mdi:bed'
sub_button:
- name: Temp
icon: 'mdi:thermometer-lines'
entity: sensor.climate_garage_01_temperature
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Humidity
icon: 'mdi:water-percent'
entity: sensor.climate_garage_01_humidity
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Light Level
icon: 'mdi:weather-sunny'
entity: sensor.presence_garage_light_level
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
styles: |
.bubble-feedback-container {
margin: 0px;
}
- type: vertical-stack
cards: cards:
- type: custom:mini-graph-card - type: 'custom:bubble-card'
line_color: orange card_type: button
font_size: 75 button_type: switch
font_size_header: 12 name: Occupancy
entities: entity: input_boolean.occupancy_garage
- entity: sensor.climate_garage_01_temperature icon: 'mdi:account-multiple'
hours_to_show: 24 show_state: false
points_per_hour: 4 show_background: false
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
line_color: blue
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_garage_01_humidity
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
line_color: red
font_size: 75
font_size_header: 12
entities:
- entity: sensor.presence_garage_light_level
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: horizontal-stack
cards:
- type: tile
entity: light.garage_ceiling_01
icon: mdi:ceiling-light
color: orange
features:
- type: "light-brightness"
tap_action: tap_action:
action: toggle action: toggle
hold_action: button_action:
tap_action:
action: more-info action: more-info
- type: tile sub_button:
entity: cover.garage_gate - entity: sensor.garage_person_count
features: icon: 'mdi:account-group'
- type: "cover-open-close" show_state: false
show_background: true
- entity: sensor.garage_cat_count
icon: 'mdi:cat'
show_state: false
show_background: true
- icon: 'mdi:brightness-auto'
entity: input_boolean.manually_operated_light_garage
show_state: false
show_background: true
tap_action: tap_action:
action: toggle action: toggle
confirmation: styles: |
text: Are you sure you want to operate Garage Door? .bubble-button-background {
- type: horizontal-stack opacity: 1 !important;
background-color: ${ state === 'on' ? 'var(--light-theme-disabled-color)' : 'var(--light-theme-disabled-color)' } !important;
}
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['sensor.garage_person_count'].state > 0 ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-2 {
background-color: white !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${ hass.states['sensor.garage_cat_count'].state > 0 ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-3 {
background-color: white !important;
}
${subButtonIcon[2].setAttribute("icon", hass.states['input_boolean.manually_operated_light_garage'].state === 'on' ? 'mdi:hand-front-right' : 'mdi:brightness-auto')}
- type: 'custom:bubble-card'
card_type: button
button_type: switch
name: Light
entity: input_boolean.garage_light_state
icon: 'mdi:lightbulb-group'
show_state: true
show_background: false
tap_action:
action: toggle
button_action:
tap_action:
action: navigate
navigation_path: '#popup-garage-light'
sub_button:
- icon: 'phu:ceiling-round'
entity: scene.garage_ceiling_only
show_state: false
show_background: true
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.garage_scenes
option: Ceiling Only
styles: |
.bubble-sub-button-1 > ha-icon {
color: ${hass.states['input_select.garage_scenes'].state === 'Ceiling Only' ? 'rgb(255, 152, 0)' : ''} !important;
}
- type: vertical-stack
cards: cards:
- type: tile - type: 'custom:bubble-card'
entity: lock.subaru_outback_txt_lock card_type: button
features: button_type: switch
- type: "lock-commands" name: Garage Gate
entity: cover.garage_gate
icon: 'mdi:garage-variant'
show_state: false
show_background: false
tap_action: tap_action:
action: toggle action: toggle
confirmation: button_action:
text: Are you sure you want to lock Subaru? tap_action:
- type: tile action: more-info
entity: switch.subaru_outback_txt_ignition sub_button:
- icon: 'mdi:arrow-up-thick'
show_state: false
show_background: true
tap_action:
action: call-service
service: cover.open_cover
service_data:
entity_id: cover.garage_gate
- icon: 'mdi:stop'
show_state: false
show_background: true
tap_action:
action: call-service
service: cover.stop_cover
service_data:
entity_id: cover.garage_gate
- icon: 'mdi:arrow-down-thick'
show_state: false
show_background: true
tap_action:
action: call-service
service: cover.close_cover
service_data:
entity_id: cover.garage_gate
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'on' ? 'var(--light-theme-disabled-color)' : 'var(--light-theme-disabled-color)' } !important;
}
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-2 {
background-color: white !important;
}
.bubble-sub-button-3 {
background-color: white !important;
}
- type: custom:layout-break - type: custom:layout-break
- type: vertical-stack - type: vertical-stack
cards: cards:
@ -125,38 +223,29 @@ cards:
title: 'Garage' title: 'Garage'
muted: true muted: true
mode: webrtc,mse mode: webrtc,mse
- type: custom:layout-break - type: custom:layout-break
- type: vertical-stack - type: vertical-stack
cards: cards:
# - type: entities
# title: Lights
# show_header_toggle: false
# entities:
# - entity: timer.app_lighting_garage
# - type: custom:flipdown-timer-card
# entity: timer.app_lighting_garage
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack
cards:
- type: button
name: Occupancy
entity: input_boolean.occupancy_garage
- type: button
name: Operating Mode
entity: input_boolean.manually_operated_light_garage
- type: button
name: Occupants
entity: input_number.occupants_garage
- type: custom:mini-media-player - type: custom:mini-media-player
entity: media_player.garage entity: media_player.garage
artwork: cover artwork: cover
- type: vertical-stack
cards:
- type: 'custom:bubble-card'
card_type: pop-up
hash: '#popup-garage-light'
name: Garage
icon: 'mdi:garage-variant'
- type: 'custom:bubble-card'
card_type: button
button_type: slider
name: 'Ceiling #1'
entity: light.garage_ceiling_01
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle

View File

@ -0,0 +1,162 @@
---
title: Garage
icon: mdi:garage-variant
panel: true
visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex
- user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya
cards:
- type: custom:layout-card
layout: vertical
cards:
- type: vertical-stack
cards:
- type: custom:mushroom-chips-card
chips:
- type: template
icon: "{% if is_state('binary_sensor.presence_garage_sensor_1', 'on') -%}mdi:account-multiple{%- else -%}mdi:account-off-outline{%- endif %}"
icon_color: "{% if is_state('binary_sensor.presence_garage_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
badge_icon: mdi:numeric-1-circle
badge_color: green
entity: binary_sensor.presence_garage_sensor_1
tap_action:
action: more-info
# - type: template
# icon: "{% if is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_8', 'on') -%}mdi:motion-sensor{%- else -%}mdi:motion-sensor-off{%- endif %}"
# icon_color: "{% if is_state('binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_8', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
# entity: binary_sensor.dome_z_wave_plus_motion_detector_with_light_sensor_and_flexible_magnetic_mount_home_security_motion_detection_8
# tap_action:
# action: more-info
- type: template
icon: "{% if is_state('binary_sensor.door_garage_01_contact', 'on') -%}mdi:door-open{%- else -%}mdi:door-closed{%- endif %}"
icon_color: "{% if is_state('binary_sensor.door_garage_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.door_garage_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.cover_garage_01_contact', 'on') -%}mdi:garage-open-variant{%- else -%}mdi:garage-variant{%- endif %}"
icon_color: "{% if is_state('binary_sensor.cover_garage_01_contact', 'on') -%}#FFC107{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.cover_garage_01_contact
tap_action:
action: more-info
- type: template
icon: "{% if is_state('binary_sensor.smoke_garage_01_smoke', 'on') -%}mdi:smoke-detector-variant-alert{%- else -%}mdi:smoke-detector-variant{%- endif %}"
icon_color: "{% if is_state('binary_sensor.smoke_garage_01_smoke', 'on') -%}#D40909{%- else -%}#44739E{%- endif %}"
entity: binary_sensor.smoke_garage_01_smoke
tap_action:
action: more-info
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
line_color: orange
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_garage_01_temperature
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
line_color: blue
font_size: 75
font_size_header: 12
entities:
- entity: sensor.climate_garage_01_humidity
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: custom:mini-graph-card
line_color: red
font_size: 75
font_size_header: 12
entities:
- entity: sensor.presence_garage_light_level
hours_to_show: 24
points_per_hour: 4
align_icon: state
align_state: left
show:
name: false
- type: horizontal-stack
cards:
- type: tile
entity: light.garage_ceiling_01
icon: mdi:ceiling-light
color: orange
features:
- type: "light-brightness"
tap_action:
action: toggle
hold_action:
action: more-info
- type: tile
entity: cover.garage_gate
features:
- type: "cover-open-close"
tap_action:
action: toggle
confirmation:
text: Are you sure you want to operate Garage Door?
- type: horizontal-stack
cards:
- type: tile
entity: lock.subaru_outback_txt_lock
features:
- type: "lock-commands"
tap_action:
action: toggle
confirmation:
text: Are you sure you want to lock Subaru?
- type: tile
entity: switch.subaru_outback_txt_ignition
- type: custom:layout-break
- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: 'custom:webrtc-camera'
url: 'rtsp://10.10.11.110:8554/garage'
title: 'Garage'
muted: true
mode: webrtc,mse
- type: custom:layout-break
- type: vertical-stack
cards:
# - type: entities
# title: Lights
# show_header_toggle: false
# entities:
# - entity: timer.app_lighting_garage
# - type: custom:flipdown-timer-card
# entity: timer.app_lighting_garage
# show_hour: false
# show_title: false
# show_header: false
# duration: "00:01:00"
# styles:
# rotor:
# width: 60px
# height: 80px
# button:
# width: 60px
# location: bottom
- type: horizontal-stack
cards:
- type: button
name: Occupancy
entity: input_boolean.occupancy_garage
- type: button
name: Operating Mode
entity: input_boolean.manually_operated_light_garage
- type: button
name: Occupants
entity: input_number.occupants_garage
- type: custom:mini-media-player
entity: media_player.garage
artwork: cover

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,703 @@
# ${card.querySelector('.bubble-state').innerText = "It's currently " + hass.states['weather.forecast_home'].state} # Change Entity Status string change show_state to false
---
title: Testing
icon: mdi:test-tube
panel: true
visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex
cards:
- type: custom:layout-card
layout_type: custom:vertical-layout
layout:
max_cols: 3
cards:
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: separator
# name: Kitchen
icon: mdi:countertop-outline
sub_button:
- name: Temp
icon: mdi:thermometer-lines
entity: sensor.climate_kitchen_01_temperature
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Humidity
icon: mdi:water-percent
entity: sensor.climate_kitchen_01_humidity
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Light Level
icon: mdi:weather-sunny
entity: sensor.presence_kitchen_light_level_2
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: PM2.5
icon: mdi:blur
entity: sensor.climate_kitchen_02_pm25
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:bubble-card
card_type: button
button_type: slider
card_layout: normal
name: Light
entity: input_boolean.kitchen_light_state
icon: mdi:lightbulb-group
show_state: true
show_background: true
button_action:
tap_action:
action: toggle
sub_button:
- icon: mdi:lightbulb-group
show_background: true
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.kitchen_scenes
option: "All"
- icon: mdi:countertop-outline
show_background: true
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.kitchen_scenes
option: "Work Zone Only"
- icon: mdi:food-turkey
show_background: true
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.kitchen_scenes
option: "Dinning Zone Only"
- icon: mdi:ceiling-light-multiple
show_background: true
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.kitchen_scenes
option: "Ceiling Only"
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: rgb(229, 229, 229) !important;
}
.bubble-sub-button-1 {
background: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${hass.states['input_select.kitchen_scenes'].state === 'All' ? 'rgb(255, 152, 0)' : 'grey'} !important;
}
.bubble-sub-button-2 {
background: white !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${hass.states['input_select.kitchen_scenes'].state === 'Work Zone Only' ? 'rgb(255, 152, 0)' : 'grey'} !important;
}
.bubble-sub-button-3 {
background: white !important;
}
.bubble-sub-button-3 > ha-icon {
color: ${hass.states['input_select.kitchen_scenes'].state === 'Dinning Zone Only' ? 'rgb(255, 152, 0)' : 'grey'} !important;
}
.bubble-sub-button-4 {
background: white !important;
}
.bubble-sub-button-4 > ha-icon {
color: ${hass.states['input_select.kitchen_scenes'].state === 'Ceiling Only' ? 'rgb(255, 152, 0)' : 'grey'} !important;
}
- type: custom:bubble-card
card_type: separator
icon: mdi:countertop-outline
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.kitchen_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
tap_action:
action: data
entity_id: image.kitchen_person
- name: Cats
icon: mdi:cat
entity: sensor.kitchen_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:bubble-card
card_type: separator
icon: mdi:sofa
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.living_room_01_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Cats
icon: mdi:cat
entity: sensor.living_room_01_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:bubble-card
card_type: separator
icon: mdi:sofa
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.living_room_02_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Cats
icon: mdi:cat
entity: sensor.living_room_02_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:bubble-card
card_type: separator
icon: mdi:stairs
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.stairway_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Cats
icon: mdi:cat
entity: sensor.stairway_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:bubble-card
card_type: separator
icon: mdi:bed-king
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.bedroom_master_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Cats
icon: mdi:cat
entity: sensor.bedroom_master_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:bubble-card
card_type: separator
icon: mdi:bed
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.bedroom_max_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Cats
icon: mdi:cat
entity: sensor.bedroom_max_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:bubble-card
card_type: separator
icon: mdi:bed
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.bedroom_olivia_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Cats
icon: mdi:cat
entity: sensor.bedroom_olivia_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:bubble-card
card_type: separator
icon: mdi:garage-variant
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.garage_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Cats
icon: mdi:cat
entity: sensor.garage_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:bubble-card
card_type: separator
icon: mdi:home-circle-outline
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.pergola_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Cats
icon: mdi:cat
entity: sensor.pergola_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:layout-break
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
name: Vacuum
entity: vacuum.roborock_s5_max
icon: mdi:robot-vacuum
show_state: true
show_last_changed: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
sub_button:
- name: Battery
icon: mdi:battery
show_name: false
show_icon: true
show_background: false
show_attribute: true
attribute: battery_level
- name: Return to dock
icon: mdi:home
show_background: false
tap_action:
action: call-service
service: vacuum.return_to_base
target:
entity_id: vacuum.roborock_s5_max
- name: Pause
icon: mdi:pause
show_background: false
tap_action:
action: call-service
service: vacuum.pause
target:
entity_id: vacuum.roborock_s5_max
- name: Start
icon: mdi:play
tap_action:
action: call-service
service: vacuum.start
target:
entity_id: vacuum.roborock_s5_max
styles: >-
.bubble-button-card-container {
/* Change the background color when the vacuum get an error (optional), more details in the styles template section */
background: ${state === 'error' ? 'rgb(200, 80, 40)' : ''} !important;
}
/* Change the first sub-button battery icon based on the battery_icon attribute, more details in the styles template section */
${subButtonIcon[0].setAttribute("icon", hass.states['vacuum.roborock_s5_max'].attributes.battery_icon)}
- type: custom:bubble-card
card_type: button
button_type: state
card_layout: large-2-rows
name: 'CyberPower UPS #1'
entity: sensor.ups_cyberpower_01_status
icon: mdi:power-plug-battery
show_state: true
show_attribute: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
sub_button:
- name: Battery
entity: sensor.ups_cyberpower_01_battery_level
icon: mdi:battery
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Time Left
entity: sensor.ups_cyberpower_01_time_left
icon: mdi:timer
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Load
entity: sensor.ups_cyberpower_01_load_percentage
icon: mdi:battery-arrow-down
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Transfers
entity: sensor.ups_cyberpower_01_transfers
icon: mdi:sync
show_name: false
show_icon: true
show_state: true
show_background: false
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'COMMLOST' ? 'rgb(255, 179, 179)' : '' } !important;
}
${icon.setAttribute("icon", hass.states['sensor.ups_cyberpower_01_status'].state === 'COMMLOST' ? 'mdi:power-plug-off-outline' : hass.states['sensor.ups_cyberpower_01_status'].state === 'ONBATT' ? 'mdi:car-battery' : 'mdi:power-plug-battery' )}
- type: custom:bubble-card
card_type: button
button_type: state
card_layout: large-2-rows
name: 'CyberPower UPS #2'
entity: sensor.ups_cyberpower_02_status
icon: mdi:power-plug-battery
show_state: true
show_attribute: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
sub_button:
- name: Battery
entity: sensor.ups_cyberpower_02_battery_level
icon: mdi:battery
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Time Left
entity: sensor.ups_cyberpower_02_time_left
icon: mdi:timer
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Load
entity: sensor.ups_cyberpower_02_load_percentage
icon: mdi:battery-arrow-down
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Transfers
entity: sensor.ups_cyberpower_02_transfers
icon: mdi:sync
show_name: false
show_icon: true
show_state: true
show_background: false
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'COMMLOST' ? 'rgb(255, 179, 179)' : '' } !important;
}
${icon.setAttribute("icon", hass.states['sensor.ups_cyberpower_02_status'].state === 'COMMLOST' ? 'mdi:power-plug-off-outline' : hass.states['sensor.ups_cyberpower_02_status'].state === 'ONBATT' ? 'mdi:car-battery' : 'mdi:power-plug-battery' )}
- type: custom:bubble-card
card_type: button
button_type: state
card_layout: large-2-rows
name: 'CyberPower UPS #3'
entity: sensor.ups_cyberpower_03_status
icon: mdi:power-plug-battery
show_state: true
show_attribute: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
sub_button:
- name: Battery
entity: sensor.ups_cyberpower_03_battery_level
icon: mdi:battery
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Time Left
entity: sensor.ups_cyberpower_03_time_left
icon: mdi:timer
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Load
entity: sensor.ups_cyberpower_03_load_percentage
icon: mdi:battery-arrow-down
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Transfers
entity: sensor.ups_cyberpower_03_transfers
icon: mdi:sync
show_name: false
show_icon: true
show_state: true
show_background: false
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'COMMLOST' ? 'rgb(255, 179, 179)' : '' } !important;
}
${icon.setAttribute("icon", hass.states['sensor.ups_cyberpower_03_status'].state === 'COMMLOST' ? 'mdi:power-plug-off-outline' : hass.states['sensor.ups_cyberpower_03_status'].state === 'ONBATT' ? 'mdi:car-battery' : 'mdi:power-plug-battery' )}
- type: custom:bubble-card
card_type: button
button_type: state
card_layout: large-2-rows
name: 'CyberPower UPS #4'
entity: sensor.ups_cyberpower_04_status
icon: mdi:power-plug-battery
show_state: true
show_attribute: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
sub_button:
- name: Battery
entity: sensor.ups_cyberpower_04_battery_level
icon: mdi:battery
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Time Left
entity: sensor.ups_cyberpower_04_time_left
icon: mdi:timer
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Load
entity: sensor.ups_cyberpower_04_load_percentage
icon: mdi:battery-arrow-down
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Transfers
entity: sensor.ups_cyberpower_04_transfers
icon: mdi:sync
show_name: false
show_icon: true
show_state: true
show_background: false
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'COMMLOST' ? 'rgb(255, 179, 179)' : state === 'ONBATT' ? 'rgb(255, 221, 153)' : '' } !important;
}
${icon.setAttribute("icon", hass.states['sensor.ups_cyberpower_04_status'].state === 'COMMLOST' ? 'mdi:power-plug-off-outline' : hass.states['sensor.ups_cyberpower_04_status'].state === 'ONBATT' ? 'mdi:car-battery' : 'mdi:power-plug-battery' )}
- type: custom:layout-break
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: state
card_layout: large-2-rows
name: Energy
entity: sensor.power_house_total_1mon
icon: mdi:transmission-tower
show_state: true
button_action:
tap_action:
action: navigate
navigation_path: '#energy'
sub_button:
- entity: sensor.power_house_total_1d
show_background: false
show_state: true
- entity: sensor.power_house_total_1mon
show_state: true
show_background: false
icon: mdi:calendar-week
- type: custom:bubble-card
card_type: button
button_type: state
card_layout: large-2-rows
name: Gas
entity: sensor.power_house_total_1mon
icon: mdi:meter-gas
show_state: true
button_action:
tap_action:
action: navigate
navigation_path: '#gas'
sub_button:
- entity: sensor.gas_daily
show_background: false
show_state: true
- entity: sensor.gas_monthly
show_state: true
show_background: false
icon: mdi:calendar-week
- type: custom:bubble-card
card_type: button
button_type: state
card_layout: large-2-rows
name: Water
entity: sensor.water_monthly
icon: mdi:cup-water
show_state: true
button_action:
tap_action:
action: navigate
navigation_path: '#water'
sub_button:
- entity: sensor.water_daily
show_background: false
show_state: true
- entity: sensor.water_monthly
show_state: true
show_background: false
icon: mdi:calendar-week
- type: custom:bubble-card
card_type: button
button_type: switch
card_layout: normal
name: Pioneer VSX-LX505
entity: media_player.onkyo_receiver
icon: mdi:audio-video
show_state: true
button_action:
tap_action:
action: toggle
sub_button:
- entity: script.receiver_switch_to_shield_tv
icon: mdi:television-classic
show_background: true
show_state: false
tap_action:
action: toggle
- entity: script.receiver_switch_to_playstation
icon: mdi:controller
show_background: true
show_state: false
tap_action:
action: toggle
- entity: script.receiver_switch_to_security
icon: mdi:camera-metering-matrix
show_background: true
show_state: false
tap_action:
action: toggle
- entity: script.receiver_switch_to_windows
icon: mdi:laptop
show_background: true
show_state: false
tap_action:
action: toggle
- type: custom:bubble-card
card_type: climate
entity: climate.living_room
sub_button:
- name: HVAC modes menu
select_attribute: hvac_modes
show_arrow: false
state_background: false
- type: custom:bubble-card
card_type: button
button_type: name
name: Kitchen
icon: mdi:fridge
button_action:
tap_action:
action: navigate
navigation_path: '#kitchen'
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#kitchen'
name: Kitchen
icon: mdi:fridge
entity: light.kitchen_sink_01

View File

@ -0,0 +1,836 @@
# ${card.querySelector('.bubble-state').innerText = "It's currently " + hass.states['weather.forecast_home'].state} # Change Entity Status string change show_state to false
# bubble-feedback-container margin
---
title: Testing
icon: mdi:test-tube
panel: true
visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex
cards:
- type: custom:layout-card
layout_type: custom:vertical-layout
layout:
max_cols: 3
cards:
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: separator
# name: Kitchen
icon: mdi:countertop-outline
sub_button:
- name: Temp
icon: mdi:thermometer-lines
entity: sensor.climate_kitchen_01_temperature
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Humidity
icon: mdi:water-percent
entity: sensor.climate_kitchen_01_humidity
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Light Level
icon: mdi:weather-sunny
entity: sensor.presence_kitchen_light_level_2
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: PM2.5
icon: mdi:blur
entity: sensor.climate_kitchen_02_pm25
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
styles: |
.bubble-feedback-container {
margin: 0px;
}
- type: custom:bubble-card
card_type: button
button_type: switch
card_layout: normal
name: Light
entity: input_boolean.kitchen_light_state
icon: mdi:lightbulb-group
show_state: true
show_background: false
tap_action:
action: toggle
button_action:
tap_action:
action: navigate
navigation_path: '#kitchen'
sub_button:
- icon: mdi:lightbulb-group
show_background: true
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.kitchen_scenes
option: "All"
- icon: mdi:countertop-outline
show_background: true
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.kitchen_scenes
option: "Work Zone Only"
- icon: mdi:food-turkey
show_background: true
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.kitchen_scenes
option: "Dinning Zone Only"
- icon: mdi:ceiling-light-multiple
show_background: true
tap_action:
action: call-service
service: input_select.select_option
service_data:
entity_id: input_select.kitchen_scenes
option: "Ceiling Only"
styles: |
.bubble-sub-button-1 {
background: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${hass.states['input_select.kitchen_scenes'].state === 'All' ? 'rgb(255, 152, 0)' : ''} !important;
}
.bubble-sub-button-2 {
background: white !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${hass.states['input_select.kitchen_scenes'].state === 'Work Zone Only' ? 'rgb(255, 152, 0)' : ''} !important;
}
.bubble-sub-button-3 {
background: white !important;
}
.bubble-sub-button-3 > ha-icon {
color: ${hass.states['input_select.kitchen_scenes'].state === 'Dinning Zone Only' ? 'rgb(255, 152, 0)' : ''} !important;
}
.bubble-sub-button-4 {
background: white !important;
}
.bubble-sub-button-4 > ha-icon {
color: ${hass.states['input_select.kitchen_scenes'].state === 'Ceiling Only' ? 'rgb(255, 152, 0)' : ''} !important;
}
- type: custom:bubble-card
card_type: separator
icon: mdi:countertop-outline
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.kitchen_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
tap_action:
action: data
entity_id: image.kitchen_person
- name: Cats
icon: mdi:cat
entity: sensor.kitchen_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:bubble-card
card_type: separator
icon: mdi:sofa
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.living_room_01_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Cats
icon: mdi:cat
entity: sensor.living_room_01_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:bubble-card
card_type: separator
icon: mdi:sofa
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.living_room_02_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Cats
icon: mdi:cat
entity: sensor.living_room_02_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:bubble-card
card_type: separator
icon: mdi:stairs
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.stairway_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Cats
icon: mdi:cat
entity: sensor.stairway_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:bubble-card
card_type: separator
icon: mdi:bed-king
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.bedroom_master_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Cats
icon: mdi:cat
entity: sensor.bedroom_master_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:bubble-card
card_type: separator
icon: mdi:bed
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.bedroom_max_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Cats
icon: mdi:cat
entity: sensor.bedroom_max_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:bubble-card
card_type: separator
icon: mdi:bed
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.bedroom_olivia_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Cats
icon: mdi:cat
entity: sensor.bedroom_olivia_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:bubble-card
card_type: separator
icon: mdi:garage-variant
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.garage_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Cats
icon: mdi:cat
entity: sensor.garage_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:bubble-card
card_type: separator
icon: mdi:home-circle-outline
sub_button:
- name: People
icon: mdi:account-group
entity: sensor.pergola_person_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- name: Cats
icon: mdi:cat
entity: sensor.pergola_cat_count
show_name: false
show_icon: true
show_state: true
show_background: false
show_attribute: false
- type: custom:layout-break
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
name: Vacuum
entity: vacuum.roborock_s5_max
icon: mdi:robot-vacuum
show_state: true
show_last_changed: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
sub_button:
- name: Return to dock
icon: mdi:home
show_background: false
tap_action:
action: call-service
service: vacuum.return_to_base
target:
entity_id: vacuum.roborock_s5_max
- name: Pause
icon: mdi:pause
show_background: false
tap_action:
action: call-service
service: vacuum.pause
target:
entity_id: vacuum.roborock_s5_max
- name: Start
icon: mdi:play
tap_action:
action: call-service
service: vacuum.start
target:
entity_id: vacuum.roborock_s5_max
styles: >-
.bubble-button-card-container {
/* Change the background color when the vacuum get an error (optional), more details in the styles template section */
background: ${state === 'error' ? 'rgb(200, 80, 40)' : ''} !important;
}
- type: custom:bubble-card
card_type: button
button_type: state
card_layout: large-2-rows
name: 'CyberPower UPS #1'
entity: sensor.ups_cyberpower_01_status
icon: mdi:power-plug-battery
show_state: true
show_attribute: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
sub_button:
- name: Battery
entity: sensor.ups_cyberpower_01_battery_level
icon: mdi:battery
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Time Left
entity: sensor.ups_cyberpower_01_time_left
icon: mdi:timer
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Load
entity: sensor.ups_cyberpower_01_load_percentage
icon: mdi:battery-arrow-down
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Transfers
entity: sensor.ups_cyberpower_01_transfers
icon: mdi:sync
show_name: false
show_icon: true
show_state: true
show_background: false
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'COMMLOST' ? 'rgb(255, 179, 179)' : '' } !important;
}
${icon.setAttribute("icon", hass.states['sensor.ups_cyberpower_01_status'].state === 'COMMLOST' ? 'mdi:power-plug-off-outline' : hass.states['sensor.ups_cyberpower_01_status'].state === 'ONBATT' ? 'mdi:car-battery' : 'mdi:power-plug-battery' )}
- type: custom:bubble-card
card_type: button
button_type: state
card_layout: large-2-rows
name: 'CyberPower UPS #2'
entity: sensor.ups_cyberpower_02_status
icon: mdi:power-plug-battery
show_state: true
show_attribute: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
sub_button:
- name: Battery
entity: sensor.ups_cyberpower_02_battery_level
icon: mdi:battery
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Time Left
entity: sensor.ups_cyberpower_02_time_left
icon: mdi:timer
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Load
entity: sensor.ups_cyberpower_02_load_percentage
icon: mdi:battery-arrow-down
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Transfers
entity: sensor.ups_cyberpower_02_transfers
icon: mdi:sync
show_name: false
show_icon: true
show_state: true
show_background: false
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'COMMLOST' ? 'rgb(255, 179, 179)' : '' } !important;
}
${icon.setAttribute("icon", hass.states['sensor.ups_cyberpower_02_status'].state === 'COMMLOST' ? 'mdi:power-plug-off-outline' : hass.states['sensor.ups_cyberpower_02_status'].state === 'ONBATT' ? 'mdi:car-battery' : 'mdi:power-plug-battery' )}
- type: custom:bubble-card
card_type: button
button_type: state
card_layout: large-2-rows
name: 'CyberPower UPS #3'
entity: sensor.ups_cyberpower_03_status
icon: mdi:power-plug-battery
show_state: true
show_attribute: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
sub_button:
- name: Battery
entity: sensor.ups_cyberpower_03_battery_level
icon: mdi:battery
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Time Left
entity: sensor.ups_cyberpower_03_time_left
icon: mdi:timer
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Load
entity: sensor.ups_cyberpower_03_load_percentage
icon: mdi:battery-arrow-down
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Transfers
entity: sensor.ups_cyberpower_03_transfers
icon: mdi:sync
show_name: false
show_icon: true
show_state: true
show_background: false
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'COMMLOST' ? 'rgb(255, 179, 179)' : '' } !important;
}
${icon.setAttribute("icon", hass.states['sensor.ups_cyberpower_03_status'].state === 'COMMLOST' ? 'mdi:power-plug-off-outline' : hass.states['sensor.ups_cyberpower_03_status'].state === 'ONBATT' ? 'mdi:car-battery' : 'mdi:power-plug-battery' )}
- type: custom:bubble-card
card_type: button
button_type: state
card_layout: large-2-rows
name: 'CyberPower UPS #4'
entity: sensor.ups_cyberpower_04_status
icon: mdi:power-plug-battery
show_state: true
show_attribute: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
sub_button:
- name: Battery
entity: sensor.ups_cyberpower_04_battery_level
icon: mdi:battery
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Time Left
entity: sensor.ups_cyberpower_04_time_left
icon: mdi:timer
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Load
entity: sensor.ups_cyberpower_04_load_percentage
icon: mdi:battery-arrow-down
show_name: false
show_icon: true
show_state: true
show_background: false
- name: Transfers
entity: sensor.ups_cyberpower_04_transfers
icon: mdi:sync
show_name: false
show_icon: true
show_state: true
show_background: false
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'COMMLOST' ? 'rgb(255, 179, 179)' : state === 'ONBATT' ? 'rgb(255, 221, 153)' : '' } !important;
}
${icon.setAttribute("icon", hass.states['sensor.ups_cyberpower_04_status'].state === 'COMMLOST' ? 'mdi:power-plug-off-outline' : hass.states['sensor.ups_cyberpower_04_status'].state === 'ONBATT' ? 'mdi:car-battery' : 'mdi:power-plug-battery' )}
- type: custom:layout-break
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: state
card_layout: large-2-rows
name: Energy
entity: sensor.power_house_total_1mon
icon: mdi:transmission-tower
show_state: true
button_action:
tap_action:
action: navigate
navigation_path: '#energy'
sub_button:
- entity: sensor.power_house_total_1d
show_background: false
show_state: true
- entity: sensor.power_house_total_1mon
show_state: true
show_background: false
icon: mdi:calendar-week
- type: custom:bubble-card
card_type: button
button_type: state
card_layout: large-2-rows
name: Gas
entity: sensor.gas_monthly
icon: mdi:meter-gas
show_state: true
button_action:
tap_action:
action: navigate
navigation_path: '#gas'
sub_button:
- entity: sensor.gas_daily
show_background: false
show_state: true
- entity: sensor.gas_monthly
show_state: true
show_background: false
icon: mdi:calendar-week
- type: custom:bubble-card
card_type: button
button_type: state
card_layout: large-2-rows
name: Water
entity: sensor.water_monthly
icon: mdi:cup-water
show_state: true
button_action:
tap_action:
action: navigate
navigation_path: '#water'
sub_button:
- entity: sensor.water_daily
show_background: false
show_state: true
- entity: sensor.water_monthly
show_state: true
show_background: false
icon: mdi:calendar-week
# remote.living_room_harmony_hub
#
# activity_list: ShTV+AVR+TV, ShTV+AVR+Prj
# current_activity: ShTV+AVR+TV
# activity_starting: null
# devices_list: LG TV, Pioneer AV Receiver VSX-LX505, LG Projector, Nvidia Shield TV Pro 2019
# last_activity: ShTV+AVR+TV
# friendly_name: Living Room Harmony Hub
# supported_features: 4
# source_list: Windows 11, PlayStation 4 Pro, Nvidia Shield TV, Unifi Protect, TV/Nothing, Sonos, ChromeCast/Network, Bluetooth
# volume_level: 1
# is_volume_muted: false
# source: PlayStation 4 Pro
# sound_mode: DOLBY ATMOS/DOLBY SURROUND ··· PLII/PLIIx MOVIE
# video_out: yes,out
# video_information:
# video_input_port: HDMI 2
# input_resolution: 4K(3840x2160) 59 Hz
# input_color_schema: RGB
# input_color_depth: 24bit
# output_resolution: 4K(3840x2160) 59 Hz
# output_color_schema: RGB
# output_color_depth: 24bit
# friendly_name: VSX-LX505
# supported_features: 69516
- type: custom:bubble-card
card_type: button
button_type: switch
card_layout: normal
name: Pioneer VSX-LX505
entity: media_player.onkyo_receiver
icon: mdi:audio-video
show_state: true
show_background: false
show_attribute: true
attribute: source
button_action:
tap_action:
action: toggle
sub_button:
- entity: script.receiver_switch_to_shield_tv
icon: mdi:television-classic
show_background: true
show_state: false
tap_action:
action: toggle
- entity: script.receiver_switch_to_playstation
icon: mdi:controller
show_background: true
show_state: false
tap_action:
action: toggle
- entity: script.receiver_switch_to_security
icon: mdi:camera-metering-matrix
show_background: true
show_state: false
tap_action:
action: toggle
- entity: script.receiver_switch_to_windows
icon: mdi:laptop
show_background: true
show_state: false
tap_action:
action: toggle
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'on' ? 'var(--light-theme-disabled-color)' : 'var(--light-theme-disabled-color)' } !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['media_player.onkyo_receiver'].attributes.source === 'Nvidia Shield TV,' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${ hass.states['media_player.onkyo_receiver'].attributes.source === 'PlayStation 4 Pro' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-3 > ha-icon {
color: ${ hass.states['media_player.onkyo_receiver'].attributes.source === 'Unifi Protect, TV/Nothing' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-4 > ha-icon {
color: ${ hass.states['media_player.onkyo_receiver'].attributes.source === 'Windows 11' ? 'rgb(255, 152, 0)' : '' } !important;
}
# media_player.playstation_4_pro
#
# playing
#
# source_list: BATTLEFIELD 4, Battlefield™ 1, Call of Duty®: Modern Warfare® 2 Campaign Remastered, DIABLO III: REAPER OF SOULS ULTIMATE EVIL EDITION, DiRT Rally, Fall Guys, Fortnite, Gran Turismo® 7, Gran Turismo™SPORT, Grand Theft Auto V (PS4™), Terraria: PS4™ Edition, XCOM® 2
# media_content_id: CUSA00419
# media_content_type: game
# media_title: Grand Theft Auto V (PS4™)
# source: Grand Theft Auto V (PS4™)
# entity_picture: /api/media_player_proxy/media_player.playstation_4_pro?token=007ca02b0380f3ac9c545f072bbc59c1d0630ff327babffc223e2ef6bf940f71&cache=5cf70801995f315e
# friendly_name: PlayStation 4 Pro
# supported_features: 6529
- type: custom:bubble-card
card_type: button
entity: media_player.nvidia_shield_tv_living_room_2
sub_button:
- entity: switch.android_tv_youtube
icon: mdi:youtube
show_background: true
show_state: false
tap_action:
action: toggle
- entity: switch.android_tv_netflix
icon: mdi:netflix
show_background: true
show_state: false
tap_action:
action: toggle
- entity: switch.android_tv_plex
icon: mdi:plex
show_background: true
show_state: false
tap_action:
action: toggle
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'on' ? 'var(--light-theme-disabled-color)' : 'var(--light-theme-disabled-color)' } !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['media_player.nvidia_shield_tv_living_room_2'].attributes.app_id === 'com.google.android.youtube.tv,' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${ hass.states['media_player.nvidia_shield_tv_living_room_2'].attributes.app_id === 'com.netflix.ninja' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-3 > ha-icon {
color: ${ hass.states['media_player.nvidia_shield_tv_living_room_2'].attributes.app_id === 'com.plexapp.android' ? 'rgb(255, 152, 0)' : '' } !important;
}
- type: custom:bubble-card
card_type: climate
entity: climate.living_room
sub_button:
- name: HVAC modes menu
select_attribute: hvac_modes
show_arrow: false
state_background: false
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#kitchen'
name: Kitchen
icon: mdi:fridge
- type: custom:bubble-card
card_type: button
button_type: slider
name: Sink
entity: light.kitchen_sink_01
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle
- type: custom:bubble-card
card_type: button
button_type: slider
name: LED
entity: light.kitchen_led_01
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle
- type: custom:bubble-card
card_type: button
button_type: slider
name: 'Ceiling #1'
entity: light.kitchen_ceiling_01
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle
- type: custom:bubble-card
card_type: button
button_type: slider
name: 'Ceiling #2'
entity: light.kitchen_ceiling_02
show_state: true
tap_action:
action: toggle
button_action:
tap_action:
action: toggle

View File

@ -0,0 +1,15 @@
entity_id = data.get('entity_id')
command = data.get('command')
params = str(data.get('params'))
parsedParams = []
for z in params.replace(' ', '').replace('],[', '|').replace('[', '').replace(']', '').split('|'):
rect = []
for c in z.split(','):
rect.append(int(c))
parsedParams.append(rect)
if command in ["app_goto_target", "app_segment_clean"]:
parsedParams = parsedParams[0]
hass.services.call('vacuum', 'send_command', {'entity_id': entity_id, 'command': command, 'params': parsedParams}, True)

91
secrets.sample.yaml Normal file
View File

@ -0,0 +1,91 @@
system_name: Savin!Home
system_latitude: 12.34567
system_longitude: -12.34567
system_elevation: 68
system_timezone: America/New_York
system_http_api: [REDACTED]
trusted_proxy_01: 10.10.10.10
trusted_network_01: 10.10.10.0/24
trusted_network_02: 10.10.11.0/24
trusted_network_03: 10.10.12.0/24
trusted_network_04: 10.10.13.0/24
trusted_network_05: 10.10.14.0/24
trusted_user_id_01: e7a4f74b143746e4b08b3fa2406dcd7a
trusted_user_id_02: 38dda68f32aa4b58a2c358ac5176a9bd
database_url: postgresql://homeassistant:homeassistant@10.10.10.1:5432/homeassistant?client_encoding=utf8
device_roborock_01_host: 10.10.10.1
device_roborock_01_token: [REDACTED]
device_roborock_01_cloud_username: redacted@gmail.com
device_roborock_01_cloud_password: [REDACTED]
services_nest_client_id: [REDACTED]
services_nest_client_secret: [REDACTED]
services_nest_project_id: [REDACTED]
services_nest_subscriber_id: [REDACTED]
services_remote_harmony_host: 10.10.10.1
services_light_ikea_hub_host: 10.10.10.1
services_notification_telegram_api_key: [REDACTED]
services_notification_telegram_url: https://localhost
services_notification_telegram_chat_id_01: 1234567890
services_notification_telegram_chat_id_02: 1234567890
services_notification_telegram_chat_id_03: '-1234567890'
services_notification_telegram_chat_id_04: '1234567890'
services_notification_telegram_white_ip_01: 10.10.10.1
services_notification_telegram_trusted_network_01: 10.10.10.1/32
service_twilio_sid: [REDACTED]
service_twilio_auth_token: [REDACTED]
weather_openweathermap_api_key: [REDACTED]
weather_darksky: [REDACTED]
zone_01_latitude: 12.34567
zone_01_longitude: -12.34567
zone_02_latitude: 12.34567
zone_02_longitude: -12.34567
zone_03_latitude: 12.34567
zone_03_longitude: -12.34567
zone_04_latitude: 12.34567
zone_04_longitude: -12.34567
zone_05_latitude: 12.34567
zone_05_longitude: -12.34567
zone_06_latitude: 12.34567
zone_06_longitude: -12.34567
zone_07_latitude: 12.34567
zone_07_longitude: -12.34567
zone_08_latitude: 12.34567
zone_08_longitude: -12.34567
zone_09_latitude: 12.34567
zone_09_longitude: -12.34567
zone_10_latitude: 12.34567
zone_10_longitude: -12.34567
zone_11_latitude: 12.34567
zone_11_longitude: -12.34567
zone_12_latitude: 12.34567
zone_12_longitude: -12.34567
zone_13_latitude: 12.34567
zone_13_longitude: -12.34567
notify_twilio_number_from: '+15551234567'

View File

View File

@ -123,3 +123,8 @@ views:
### APPLICATIONS VIEW ############################################################# VIEWS ### ### APPLICATIONS VIEW ############################################################# VIEWS ###
##################################################################################################### #####################################################################################################
- !include configuration/ui-lovelace/190-apps.yaml - !include configuration/ui-lovelace/190-apps.yaml
#####################################################################################################
### TESTING VIEW ################################################################## VIEWS ###
#####################################################################################################
- !include configuration/ui-lovelace/200-testing.yaml