Advertisement
xSky123

Mobile - White (Personal)

Mar 4th, 2025 (edited)
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 239.78 KB | None | 0 0
  1. kiosk_mode:
  2. user_settings:
  3. - users:
  4. - rey
  5. - christina
  6. hide_header: true
  7. views:
  8. - type: sections
  9. max_columns: 4
  10. title: Overview
  11. path: overview
  12. sections:
  13. - type: grid
  14. cards:
  15. - type: custom:vertical-stack-in-card
  16. cards:
  17. - type: grid
  18. square: false
  19. columns: 2
  20. cards:
  21. - type: custom:mushroom-template-card
  22. entity: sensor.house_average_temperature
  23. primary: |
  24. {{ states(entity) | round(1) }}°C
  25. secondary: |
  26. {{ state_attr(entity,'friendly_name') }}
  27. icon: mdi:thermometer
  28. icon_color: >
  29. {% set temp = states('sensor.house_average_temperature') |
  30. float %}
  31.  
  32. {% if temp < 16 %} #CEB2F5
  33.  
  34. {% elif temp < 18 %} #5EBDEE
  35.  
  36. {% elif temp < 22 %} #9cc8b8
  37.  
  38. {% elif temp < 24 %} #e7b562
  39.  
  40. {% elif temp < 27 %} #FF564B
  41.  
  42. {% else %} #99332d
  43.  
  44. {% endif %}
  45. tap_action:
  46. action: navigate
  47. navigation_path: /mobile-light/room
  48. - type: custom:mushroom-template-card
  49. entity: sensor.outdoor_temperature
  50. primary: |
  51. {{ states(entity) | round(1) }}°C
  52. secondary: |
  53. Outdoor Feels Like
  54. icon: mdi:thermometer
  55. icon_color: >
  56. {% set temp = states('sensor.outdoor_temperature') | float
  57. %}
  58.  
  59. {% if temp < 16 %} #907CAB
  60.  
  61. {% elif temp < 18 %} #4790b6
  62.  
  63. {% elif temp < 22 %} #77998c
  64.  
  65. {% elif temp < 24 %} #b08a4a
  66.  
  67. {% elif temp < 27 %} #c34139
  68.  
  69. {% else %} #752722 {% endif %}
  70. tap_action:
  71. action: navigate
  72. navigation_path: /mobile-light/room
  73. - type: custom:config-template-card
  74. entities:
  75. - sensor.house_average_temperature
  76. - sensor.outdoor_temperature
  77. - climate.heat_pump
  78. variables:
  79. - states['climate.heat_pump'].state
  80. - states['sensor.house_average_temperature'].state
  81. - states['sensor.outdoor_temperature'].state
  82. card:
  83. type: custom:mini-graph-card
  84. entities:
  85. - entity: sensor.house_average_temperature
  86. name: House Average Temperature
  87. color: |-
  88. ${vars[0] === 'heat' ? 'red' :
  89. (vars[0] === 'cool' ? '#12c8da' :
  90. (vars[0] === 'fan_only' ? '#029688' :
  91. (vars[1] < 16 ? '#CEB2F5' :
  92. (vars[1] < 18 ? '#5EBDEE' :
  93. (vars[1] < 22 ? '#9cc8b8' :
  94. (vars[1] < 24 ? '#e7b562' :
  95. (vars[1] < 27 ? '#FF564B' : '#99332d')))))))}
  96. - entity: sensor.outdoor_temperature
  97. name: Outdoor Temperature
  98. color: |-
  99. ${vars[2] < 16 ? '#907CAB' :
  100. (vars[2] < 18 ? '#4790b6' :
  101. (vars[2] < 22 ? '#77998c' :
  102. (vars[2] < 24 ? '#b08a4a' :
  103. (vars[2] < 27 ? '#c34139' :'#752722'))))}
  104. y_axis: secondary
  105. hours_to_show: 24
  106. line_width: 3
  107. font_size: 50
  108. animate: true
  109. show:
  110. name: false
  111. icon: false
  112. state: false
  113. legend: false
  114. fill: fade
  115. - type: horizontal-stack
  116. cards:
  117. - type: custom:mushroom-climate-card
  118. entity: climate.heat_pump
  119. primary_info: none
  120. secondary_info: none
  121. icon_type: none
  122. show_temperature_control: true
  123. - type: custom:mushroom-climate-card
  124. entity: climate.heat_pump
  125. primary_info: none
  126. secondary_info: none
  127. icon_type: none
  128. hvac_modes:
  129. - cool
  130. - heat
  131. - fan_only
  132. - 'off'
  133. - type: custom:vertical-stack-in-card
  134. cards:
  135. - type: custom:mushroom-template-card
  136. primary: Scenes
  137. layout: horizontal
  138. tap_action:
  139. action: none
  140. hold_action:
  141. action: none
  142. double_tap_action:
  143. action: none
  144. card_mod:
  145. style: |
  146. ha-card {
  147. background: transparent !important;
  148. box-shadow: none !important;
  149. }
  150. .card-content {
  151. background: transparent !important;
  152. }
  153. - type: custom:mushroom-chips-card
  154. chips:
  155. - type: template
  156. entity: input_boolean.climate_no_guest
  157. icon: mdi:account
  158. icon_color: |-
  159. {% if is_state(entity, 'on') %}
  160. #0CC078
  161. {% else %}
  162. grey
  163. {% endif %}
  164. tap_action:
  165. action: toggle
  166. content: |-
  167. {% if is_state(entity, 'on') %}
  168. No Guest
  169. {% else %}
  170. {% endif %}
  171. - type: template
  172. entity: input_boolean.climate_single_guest
  173. icon: mdi:account-plus
  174. icon_color: |-
  175. {% if is_state(entity, 'on') %}
  176. orange
  177. {% else %}
  178. grey
  179. {% endif %}
  180. tap_action:
  181. action: toggle
  182. content: |-
  183. {% if is_state(entity, 'on') %}
  184. Single Guest
  185. {% else %}
  186. {% endif %}
  187. - type: template
  188. entity: input_boolean.climate_multiple_guest
  189. icon: mdi:account-group
  190. icon_color: |-
  191. {% if is_state(entity, 'on') %}
  192. #FB6962
  193. {% else %}
  194. grey
  195. {% endif %}
  196. tap_action:
  197. action: toggle
  198. content: |-
  199. {% if is_state(entity, 'on') %}
  200. Multiple Guest
  201. {% else %}
  202. {% endif %}
  203. - type: template
  204. entity: input_boolean.night_car_wash
  205. icon: mdi:car-wash
  206. icon_color: |-
  207. {% if is_state(entity, 'on') %}
  208. #48AAAD
  209. {% else %}
  210. grey
  211. {% endif %}
  212. tap_action:
  213. action: toggle
  214. content: |-
  215. {% if is_state(entity, 'on') %}
  216. Night Car Wash
  217. {% else %}
  218. {% endif %}
  219. - type: template
  220. entity: input_boolean.party_mode
  221. icon: mdi:party-popper
  222. icon_color: |-
  223. {% if is_state(entity, 'on') %}
  224. #ca5cdd
  225. {% else %}
  226. grey
  227. {% endif %}
  228. tap_action:
  229. action: toggle
  230. content: |-
  231. {% if is_state(entity, 'on') %}
  232. Party Mode
  233. {% else %}
  234. {% endif %}
  235. alignment: start
  236. card_mod:
  237. style: |
  238. ha-card {
  239. background: transparent !important;
  240. box-shadow: none !important;
  241. }
  242. .chip-container {
  243. background: transparent !important;
  244. }
  245. card_mod:
  246. style: |
  247. ha-card {
  248. background: transparent !important;
  249. box-shadow: none !important;
  250. }
  251. - type: conditional
  252. conditions:
  253. - condition: state
  254. entity: media_player.spotify_reynaldi_sutrisno
  255. state: playing
  256. card:
  257. type: custom:mushroom-title-card
  258. title: Media
  259. - type: conditional
  260. conditions:
  261. - condition: state
  262. entity: media_player.spotify_reynaldi_sutrisno
  263. state: playing
  264. card:
  265. type: custom:stack-in-card
  266. cards:
  267. - type: custom:mushroom-media-player-card
  268. entity: media_player.spotify_reynaldi_sutrisno
  269. icon: mdi:play
  270. name: Media Player
  271. use_media_info: true
  272. use_media_artwork: false
  273. show_volume_level: false
  274. media_controls:
  275. - play_pause_stop
  276. - previous
  277. - next
  278. volume_controls:
  279. - volume_buttons
  280. - volume_set
  281. fill_container: false
  282. collapsible_controls: true
  283. tap_action:
  284. action: navigate
  285. navigation_path: /mobile-light/media
  286. card_mod:
  287. style:
  288. mushroom-media-player-volume-control$: |
  289. mushroom-slider {
  290. --main-color: #cccccc !important;
  291. --bg-color: rgb(var(--album-art-color)) !important;
  292. }
  293. .: |
  294. mushroom-shape-icon {
  295. display: flex;
  296. {% set media_type = state_attr(config.entity, 'media_content_type') %}
  297. {% if media_type == 'tvshow' %}
  298. --card-mod-icon: mdi:television-classic;
  299. animation: flicker 1s linear infinite alternate;
  300. {% elif media_type == 'movie' %}
  301. --card-mod-icon: mdi:movie-roll;
  302. animation: spin 2s linear infinite reverse;
  303. {% elif media_type == 'music' %}
  304. --card-mod-icon: mdi:music;
  305. animation: beat 1.3s ease-out infinite both;
  306. {% elif media_type == 'playlist' %}
  307. --card-mod-icon: mdi:music;
  308. animation: beat 1.3s ease-out infinite both;
  309. {% else %}
  310. --card-mod-icon: mdi:play;
  311. {% endif %}
  312.  
  313. {{ 'animation: none;' if not is_state(config.entity, 'playing') }}
  314.  
  315. }
  316. @keyframes flicker {
  317. 0%, 31.98%, 32.98%, 34.98%, 36.98%, 39.98%, 67.98%, 68.98%, 95.98%, 96.98%, 97.98%, 98.98%, 100% { --icon-color: rgba(var(--album-art-color), 1); }
  318. 32%, 33%, 35%, 36%, 37%, 40%, 68%, 69%, 96%, 97%, 98%, 99% { --icon-color: rgba(var(--album-art-color), 0.6); }
  319. }
  320. @keyframes beat {
  321. 0%, 60% { --icon-symbol-size: 21px; }
  322. 5%, 17%, 57% { --icon-symbol-size: 22px; }
  323. 10%, 20%, 51% { --icon-symbol-size: 23px; }
  324. 25%, 45% { --icon-symbol-size: 24px; }
  325. 30%, 39% { --icon-symbol-size: 25px; }
  326. 33% { --icon-symbol-size: 26px; }
  327. }
  328. .: |
  329. mushroom-shape-icon {
  330.  
  331. /* Change media player icon based on media type */
  332. {% set media_type = state_attr(config.entity, 'media_content_type') %}
  333. --card-mod-icon:
  334. {% if media_type == 'tvshow' %}
  335. mdi:television-classic
  336. {% elif media_type == 'movie' %}
  337. mdi:movie-roll
  338. {% elif media_type == 'music' %}
  339. mdi:music
  340. {% elif media_type == 'playlist' %}
  341. mdi:music
  342. {% else %}
  343. mdi:play
  344. {% endif %};
  345. }
  346. ha-card {
  347.  
  348. /* Remove border from media player */
  349. --ha-card-border-width: 0;
  350.  
  351. /* Apply album art color to media player icon & volume bar */
  352. --rgb-state-media-player: var(--album-art-color);
  353.  
  354. /* Disable transitions */
  355. transition: all 0s;
  356. }
  357. .actions {
  358.  
  359. /* Apply to controls only when active */
  360. {% if is_state(config.entity, ['playing', 'paused']) %}
  361.  
  362. /* Apply album art color to media player controls */
  363. --rgb-primary-text-color: var(--album-art-color);
  364. --primary-text-color: rgb(var(--album-art-color));
  365.  
  366. /* Add space for progress bar */
  367. padding-top: 24px;
  368. {% endif %}
  369. }
  370. - entity: media_player.spotify_reynaldi_sutrisno
  371. hide:
  372. icon: true
  373. name: true
  374. runtime: true
  375. source: true
  376. power: true
  377. state_label: true
  378. volume: true
  379. info: true
  380. progress: false
  381. controls: true
  382. more_info: false
  383. type: custom:mini-media-player
  384. toggle_power: false
  385. group: true
  386. card_mod:
  387. style:
  388. mmp-progress$: |
  389. paper-progress {
  390.  
  391. /* Hide the progress bar when not playing or paused */
  392. {{ 'display: none;' if not is_state(config.entity, ['playing', 'paused']) }}
  393.  
  394. /* Apply album art color to progress bar when paused */
  395. --paper-progress-container-color: rgba(var(--album-art-color), 0.2) !important;
  396.  
  397. /* Apply album art color to progress bar when playing */
  398. --paper-progress-active-color: rgb(var(--album-art-color)) !important;
  399. }
  400. .: |
  401. ha-card {
  402.  
  403. /* Move progress bar up into gap */
  404. bottom: calc(3 * var(--mush-spacing, 12px) + var(--mush-control-height, -25px));
  405.  
  406. /* Correct margins for progress bar */
  407. margin: 0px calc(1.618 * var(--mush-spacing, 12px)) calc(-1 * var(--mush-spacing, 12px));
  408.  
  409. /* Set height of card to match pregress bar height */
  410. height: var(--mmp-progress-height);
  411.  
  412. /* Remove border outline */
  413. --ha-card-border-width: 0;
  414.  
  415. /* Round corners of progress bar */
  416. --mmp-border-radius: var(--control-border-radius, 12px) !important;
  417.  
  418. /* Set height of progress bar */
  419. --mmp-progress-height: var(--mush-spacing, 12px) !important;
  420.  
  421. /* Remove transitions to prevent progress bar floating in */
  422. transition: all 0s;
  423. }
  424. card_mod:
  425. style: |
  426. ha-card:before {
  427. content: "";
  428.  
  429. /* Position and size background color */
  430. position: absolute;
  431. height: 100%;
  432. width: 100%;
  433.  
  434. /* Apply background to media player using album art color */
  435. {% if is_state('media_player.spotify_reynaldi_sutrisno', ['playing', 'paused']) %}
  436. background: rgba({{ states('sensor.spotify_reynaldi_sutrisno_dark_vibrant_color') }}, 0.3);
  437. {% endif %}
  438.  
  439. }
  440. ha-card {
  441.  
  442. /* Apply blended album art background */
  443. {% if is_state('media_player.spotify_reynaldi_sutrisno', ['playing', 'paused']) %}
  444. background: url( '{{ state_attr("media_player.spotify_reynaldi_sutrisno", "entity_picture") }}' ) no-repeat,
  445. linear-gradient(to left, transparent, rgb(var(--rgb-card-background-color)) 50%);
  446.  
  447. /* Adjust for different aspect ratio of TV shows episode art */
  448. {% if state_attr('media_player.spotify_reynaldi_sutrisno', 'media_content_type') == 'tvshow' %}
  449. background-size: 50% 100%, cover;
  450. {% else %}
  451. background-size: 50% auto, cover;
  452. {% endif %}
  453.  
  454. /* Position art on right side */
  455. background-position: right;
  456.  
  457. /* Blend art with background using saturation */
  458. background-blend-mode: saturation;
  459. {% endif %}
  460. }
  461. :host {
  462.  
  463. /* Assign album art color to variable used in media player. Default to indigo when idle */
  464. --album-art-color:
  465. {% if is_state('media_player.spotify_reynaldi_sutrisno', ['playing', 'paused']) %}
  466. {{ states('sensor.spotify_reynaldi_sutrisno_muted_color') }}
  467. {% else %}
  468. var(--mush-rgb-indigo, 63, 81, 181)
  469. {% endif %};
  470. }
  471. - type: grid
  472. cards:
  473. - type: custom:mushroom-title-card
  474. title: Irrigation Status
  475. - type: custom:vertical-stack-in-card
  476. cards:
  477. - type: grid
  478. square: false
  479. columns: 2
  480. cards:
  481. - type: custom:mushroom-template-card
  482. entity: sensor.right_walkway_water_tap_flow
  483. primary: |
  484. {{ states(entity) | round(1) }} m³/h
  485. secondary: Water Flow Rate
  486. icon: mdi:water
  487. icon_color: >
  488. {% set flow =
  489. states('sensor.right_walkway_water_tap_flow') | float %}
  490.  
  491. {% if flow < 0.1 %} #A9A9A9
  492.  
  493. {% elif flow < 0.3 %} #ffd34f
  494.  
  495. {% elif flow < 0.5 %} #9fe7e8
  496.  
  497. {% else %} #36a9e2
  498.  
  499. {% endif %}
  500. tap_action:
  501. action: navigate
  502. navigation_path: /mobile-light/entities-on
  503. - type: custom:config-template-card
  504. entities: sensor.right_walkway_water_tap_flow
  505. variables:
  506. - states['sensor.right_walkway_water_tap_flow'].state
  507. card:
  508. type: custom:mini-graph-card
  509. entities:
  510. - entity: sensor.right_walkway_water_tap_flow
  511. name: Soil Temperature
  512. color: |-
  513. ${vars[0] < 0.1 ? '#a9a9a9' :
  514. (vars[0] < 0.3 ? '#ffd34f' :
  515. (vars[0] < 0.5 ? '#9fe7e8' : '#36a9e2'))}
  516. hours_to_show: 48
  517. line_width: 3
  518. font_size: 50
  519. animate: true
  520. show:
  521. name: false
  522. icon: false
  523. state: false
  524. legend: false
  525. fill: fade
  526. - type: horizontal-stack
  527. cards:
  528. - type: custom:mushroom-entity-card
  529. entity: input_boolean.no_water_restriction
  530. secondary_info: none
  531. primary_info: none
  532. tap_action:
  533. action: toggle
  534. card_mod:
  535. style:
  536. mushroom-shape-icon$: |
  537. .shape {
  538. --shape-color: {{ '#6f9c3d' if states('input_boolean.no_water_restriction') == 'on' else 'white' }} !important;
  539. }
  540. .: |
  541. ha-state-icon {
  542. color: {{ 'white' if states('input_boolean.no_water_restriction') == 'on' else 'none' }};
  543. }
  544. - type: custom:mushroom-entity-card
  545. entity: input_boolean.water_level_1
  546. secondary_info: none
  547. primary_info: none
  548. tap_action:
  549. action: toggle
  550. card_mod:
  551. style:
  552. mushroom-shape-icon$: |
  553. .shape {
  554. --shape-color: {{ '#a5c90f' if states('input_boolean.water_level_1') == 'on' else 'white' }} !important;
  555. }
  556. .: |
  557. ha-state-icon {
  558. color: {{ 'white' if states('input_boolean.water_level_1') == 'on' else 'none' }};
  559. }
  560. - type: custom:mushroom-entity-card
  561. entity: input_boolean.water_level_2
  562. secondary_info: none
  563. primary_info: none
  564. tap_action:
  565. action: toggle
  566. card_mod:
  567. style:
  568. mushroom-shape-icon$: |
  569. .shape {
  570. --shape-color: {{ '#ffb366' if states('input_boolean.water_level_2') == 'on' else 'white' }} !important;
  571. }
  572. .: |
  573. ha-state-icon {
  574. color: {{ 'white' if states('input_boolean.water_level_2') == 'on' else 'none' }};
  575. }
  576. - type: custom:mushroom-entity-card
  577. entity: input_boolean.water_level_3
  578. secondary_info: none
  579. primary_info: none
  580. tap_action:
  581. action: toggle
  582. card_mod:
  583. style:
  584. mushroom-shape-icon$: |
  585. .shape {
  586. --shape-color: {{ '#ff8829' if states('input_boolean.water_level_3') == 'on' else 'white' }} !important;
  587. }
  588. .: |
  589. ha-state-icon {
  590. color: {{ 'white' if states('input_boolean.water_level_3') == 'on' else 'none' }};
  591. }
  592. - type: custom:mushroom-entity-card
  593. entity: input_boolean.water_level_4
  594. primary_info: none
  595. secondary_info: none
  596. tap_action:
  597. action: toggle
  598. card_mod:
  599. style:
  600. mushroom-shape-icon$: |
  601. .shape {
  602. --shape-color: {{ '#fe6b40' if states('input_boolean.water_level_4') == 'on' else 'white' }} !important;
  603. }
  604. .: |
  605. ha-state-icon {
  606. color: {{ 'white' if states('input_boolean.water_level_4') == 'on' else 'none' }};
  607. }
  608. - type: grid
  609. cards:
  610. - type: custom:week-planner-card
  611. calendars:
  612. - entity: calendar.christina
  613. color: '#fc6c85'
  614. - entity: calendar.reynaldi_sutrisno_rs16_gmail_com
  615. color: '#6ac5fe'
  616. weather:
  617. entity: weather.home
  618. showTemperature: true
  619. showLowTemperature: true
  620. days: 7
  621. noCardBackground: true
  622. eventBackground: rgba(0, 0, 0, 0)
  623. locale: nz
  624. texts:
  625. noEvents: No Events
  626. fullDay: Full Day
  627. today: Today
  628. tomorrow: Tomorrow
  629. card_mod:
  630. style: |
  631. .event.past {
  632. opacity: .3;
  633. }
  634. - type: grid
  635. cards:
  636. - type: custom:mod-card
  637. card_mod:
  638. style: |
  639.  
  640. @media (min-width:180px) {
  641. ha-card {
  642. z-index:6;
  643. position: fixed;
  644. background: #eeedf5;
  645. bottom: 5px;
  646. left: 10px;
  647. padding: 0px;
  648. border-radius: 100px;
  649. width: calc(100% - 20px);
  650. }
  651. }
  652.  
  653. @media (min-width:801px) {
  654. ha-card {
  655. left: calc(20% + 43px);
  656. width: calc(60% - 30px);
  657. }
  658. }
  659. card:
  660. type: grid
  661. square: false
  662. columns: 3
  663. cards:
  664. - type: custom:button-card
  665. icon: mdi:home
  666. name: Overview
  667. show_label: false
  668. show_state: false
  669. show_name: true
  670. tap_action:
  671. action: navigate
  672. navigation_path: /mobile-light/overview
  673. styles:
  674. icon:
  675. - width: 24px
  676. - color: '#3b3b3b'
  677. name:
  678. - font-size: 13px
  679. img_cell:
  680. - width: 50px
  681. - height: 40px
  682. card:
  683. - background: none
  684. - padding: 0
  685. - type: custom:button-card
  686. icon: mdi:home-roof
  687. name: Room
  688. show_label: false
  689. show_state: false
  690. show_name: true
  691. tap_action:
  692. action: navigate
  693. navigation_path: /mobile-light/room
  694. styles:
  695. icon:
  696. - width: 24px
  697. - color: '#3b3b3b'
  698. name:
  699. - font-size: 13px
  700. img_cell:
  701. - width: 50px
  702. - height: 40px
  703. card:
  704. - background: none
  705. - padding: 0
  706. - type: custom:button-card
  707. icon: mdi:cctv
  708. name: Camera
  709. show_label: false
  710. show_state: false
  711. show_name: true
  712. tap_action:
  713. action: navigate
  714. navigation_path: /mobile-light/camera
  715. styles:
  716. icon:
  717. - width: 24px
  718. - color: '#3b3b3b'
  719. name:
  720. - font-size: 13px
  721. img_cell:
  722. - width: 50px
  723. - height: 40px
  724. card:
  725. - background: none
  726. - padding: 0
  727. badges:
  728. - type: custom:mushroom-chips-card
  729. chips:
  730. - type: conditional
  731. conditions:
  732. - entity: sensor.house_maintenance_chip_card
  733. state: 'true'
  734. chip:
  735. type: template
  736. icon: |
  737. {% if is_state('input_boolean.rubbish', 'on') %}
  738. mdi:trash-can
  739. {% elif is_state('input_boolean.recycle', 'on') %}
  740. mdi:recycle
  741. {% else %} {% endif %}
  742. icon_color: |
  743. {% if is_state('input_boolean.rubbish', 'on') %}
  744. #C41E3A
  745. {% elif is_state('input_boolean.recycle', 'on') %}
  746. #50C878
  747. {% else %} {% endif %}
  748. content: |
  749. {% if is_state('input_boolean.rubbish', 'on') %}
  750. Rubbish Day
  751. {% elif is_state('input_boolean.recycle', 'on') %}
  752. Recycle Day
  753. {% else %} {% endif %}
  754. - type: conditional
  755. conditions:
  756. - condition: state
  757. entity: input_boolean.away_mode
  758. state: 'on'
  759. chip:
  760. type: template
  761. icon: mdi:home-export-outline
  762. icon_color: '#52b2bf'
  763. content: >-
  764. {{ 'Away Mode' if states('input_boolean.away_mode') == 'on' else
  765. '' }}
  766. entity: input_boolean.away_mode
  767. tap_action:
  768. action: toggle
  769. - type: conditional
  770. conditions:
  771. - condition: state
  772. entity: binary_sensor.door_sensor_grg_contact
  773. state: 'on'
  774. chip:
  775. type: template
  776. icon: mdi:garage-variant
  777. icon_color: red
  778. content: >-
  779. {{ 'Garage is Opened' if
  780. states('binary_sensor.door_sensor_grg_contact') == 'on' else ''
  781. }}
  782. entity: binary_sensor.door_sensor_grg_contact
  783. tap_action:
  784. action: navigate
  785. navigation_path: /mobile-light/security-garage
  786. - type: conditional
  787. conditions:
  788. - condition: state
  789. entity: climate.heat_pump
  790. state_not: 'off'
  791. chip:
  792. type: entity
  793. entity: sensor.active_climate_rooms
  794. tap_action:
  795. action: navigate
  796. navigation_path: /mobile-light/room
  797. icon: |
  798. {% if is_state('climate.heat_pump', 'heat') %}
  799. mdi:fire
  800. {% elif is_state('climate.heat_pump', 'cool') %}
  801. mdi:snowflake
  802. {% elif is_state('climate.heat_pump', 'fan') %}
  803. mdi:fan
  804. {% else %}
  805. mdi:thermometer
  806. {% endif %}
  807. - type: conditional
  808. conditions:
  809. - condition: state
  810. entity: input_boolean.water_the_flower
  811. state: 'on'
  812. chip:
  813. type: template
  814. icon: mdi:flower
  815. icon_color: '#cc7fdb'
  816. content: >
  817. {{ 'Water Flower' if states('input_boolean.water_the_flower') ==
  818. 'on' else '' }}
  819. entity: input_boolean.water_the_flower
  820. tap_action:
  821. action: toggle
  822. - type: conditional
  823. conditions:
  824. - condition: state
  825. entity: timer.wash_cuddly
  826. state: idle
  827. chip:
  828. type: template
  829. icon: mdi:teddy-bear
  830. icon_color: '#f385bc'
  831. content: >-
  832. {{ 'Wash Cuddly' if states('timer.wash_cuddly') == 'idle' else
  833. '' }}
  834. entity: input_boolean.wash_cuddly
  835. - type: conditional
  836. conditions:
  837. - condition: state
  838. entity: timer.wash_duvet
  839. state: idle
  840. chip:
  841. type: template
  842. icon: mdi:bed-empty
  843. icon_color: '#B2DFDB'
  844. content: >-
  845. {{ 'Wash Duvet' if states('timer.wash_duvet') == 'idle' else ''
  846. }}
  847. entity: input_boolean.wash_duvet
  848. - type: conditional
  849. conditions:
  850. - condition: state
  851. entity: light.all_lights
  852. state: 'on'
  853. chip:
  854. type: template
  855. icon: mdi:lightbulb-group-outline
  856. icon_color: '#c2b280'
  857. content: >-
  858. {{ expand(states.light.all_lights) | selectattr( 'state', 'eq',
  859. 'on') | list | count }}
  860. entity: light.all_lights
  861. tap_action:
  862. action: navigate
  863. navigation_path: /mobile-light/entities-on
  864. - type: conditional
  865. conditions:
  866. - condition: state
  867. entity: switch.all_light_switches
  868. state: 'on'
  869. chip:
  870. type: template
  871. icon: mdi:light-switch
  872. icon_color: '#c2b280'
  873. content: >-
  874. {{ expand(states.switch.all_light_switches) | selectattr(
  875. 'state', 'eq', 'on') | list | count }}
  876. entity: switch.all_light_switches
  877. tap_action:
  878. action: navigate
  879. navigation_path: /mobile-light/entities-on
  880. - type: conditional
  881. conditions:
  882. - condition: state
  883. entity: binary_sensor.all_doors
  884. state: 'on'
  885. chip:
  886. type: template
  887. icon: mdi:door-open
  888. icon_color: red
  889. content: >-
  890. {{ expand(states.binary_sensor.all_doors) | selectattr( 'state',
  891. 'eq', 'on') | list | count }}
  892. entity: binary_sensor.all_doors
  893. tap_action:
  894. action: navigate
  895. navigation_path: /mobile-light/entities-on
  896. - type: conditional
  897. conditions:
  898. - condition: state
  899. entity: binary_sensor.all_windows
  900. state: 'on'
  901. chip:
  902. type: template
  903. icon: mdi:window-open
  904. icon_color: orange
  905. content: >-
  906. {{ expand(states.binary_sensor.all_windows) | selectattr(
  907. 'state', 'eq', 'on') | list | count }}
  908. entity: binary_sensor.all_windows
  909. tap_action:
  910. action: navigate
  911. navigation_path: /mobile-light/room
  912. - type: conditional
  913. conditions:
  914. - condition: state
  915. entity: switch.all_water_taps
  916. state: 'on'
  917. chip:
  918. type: template
  919. icon: mdi:water
  920. icon_color: blue
  921. content: >-
  922. {{ expand(states.switch.all_water_taps) | selectattr( 'state',
  923. 'eq', 'on') | list | count }}
  924. entity: switch.all_water_taps
  925. tap_action:
  926. action: navigate
  927. navigation_path: /mobile-light/entities-on
  928. - type: conditional
  929. conditions:
  930. - condition: state
  931. entity: fan.all_fans
  932. state: 'on'
  933. chip:
  934. type: template
  935. icon: mdi:fan
  936. icon_color: '#b5e0f7'
  937. content: >-
  938. {{ expand(states.fan.all_fans) | selectattr( 'state', 'eq',
  939. 'on') | list | count }}
  940. entity: fan.all_fans
  941. tap_action:
  942. action: navigate
  943. navigation_path: /mobile-light/entities-on
  944. card_mod:
  945. style: |
  946. ha-card {
  947. animation: ping 2s infinite;
  948. }
  949. @keyframes ping {
  950. 0% {box-shadow: 0 0 0 0 rgba(var(--rgb-blue), 0.4);}
  951. 70% {box-shadow: 0 0 0 10px transparent;}
  952. 100% {box-shadow: 0 0 0 0 transparent;}
  953. }
  954. cards: []
  955. icon: mdi:home
  956. header:
  957. card:
  958. type: markdown
  959. text_only: true
  960. content: >-
  961. {% set time = now().hour %}
  962.  
  963. {% if (time >= 18) %}
  964.  
  965. # Evening, {{ user }}!
  966.  
  967. {% elif (time >= 12) %}
  968.  
  969. # Afternoon, {{ user }}!
  970.  
  971. {% elif (time >= 5) %}
  972.  
  973. # Morning, {{ user }}!
  974.  
  975. {% else %}
  976.  
  977. # Welcome, {{ user }}!
  978.  
  979. {% endif %}
  980.  
  981.  
  982. {% set time = now().hour %}
  983.  
  984.  
  985. {% if time < 19 %}
  986.  
  987. **Here is how it feels like today:**
  988.  
  989. 🌡️ 🔺High of {{ states('sensor.home_realfeel_temperature_max_day_0')
  990. }}°C, 🔻Low of {{ states('sensor.home_realfeel_temperature_min_day_0')
  991. }}°C.
  992.  
  993. {{ states('input_text.today_s_weather_ai_wind') }}
  994.  
  995. {{ states('input_text.today_s_weather_ai_uv') }}
  996.  
  997. {% else %}
  998.  
  999. **Here is how it feels like tomorrow:**
  1000.  
  1001. 🌡️ 🔺High of {{ states('sensor.home_realfeel_temperature_max_day_1')
  1002. }}°C, 🔻Low of {{ states('sensor.home_realfeel_temperature_min_day_1')
  1003. }}°C.
  1004.  
  1005. {{ states('input_text.tomorrow_s_weather_ai_wind') }}
  1006.  
  1007. {{ states('input_text.tomorrow_s_weather_ai_uv') }}
  1008.  
  1009. {% endif %}
  1010. layout: responsive
  1011. badges_position: bottom
  1012. - type: sections
  1013. max_columns: 4
  1014. title: Room
  1015. path: room
  1016. sections:
  1017. - type: grid
  1018. cards:
  1019. - type: custom:mushroom-chips-card
  1020. alignment: start
  1021. chips:
  1022. - type: template
  1023. tap_action:
  1024. action: navigate
  1025. navigation_path: /mobile-light/overview
  1026. icon: mdi:arrow-left
  1027. hold_action:
  1028. action: none
  1029. double_tap_action:
  1030. action: none
  1031. - type: custom:mushroom-title-card
  1032. title: Room
  1033. - type: horizontal-stack
  1034. cards:
  1035. - type: custom:stack-in-card
  1036. mode: horizontal
  1037. cards:
  1038. - type: vertical-stack
  1039. cards:
  1040. - type: custom:mushroom-template-card
  1041. primary: Garage
  1042. tap_action:
  1043. action: navigate
  1044. navigation_path: /mobile-light/garage-room-details
  1045. hold_action:
  1046. action: none
  1047. double_tap_action:
  1048. action: none
  1049. secondary: >-
  1050. {{ states('sensor.garage_temperature')|round(1) }}°C /
  1051. {{ states('sensor.garage_humidity')|round(1) }}%
  1052. card_mod:
  1053. style: |
  1054. ha-card {
  1055. border: 0px;
  1056. padding-left: 5px;
  1057. padding-top: 5px;
  1058. width: 500px;
  1059. }
  1060. - type: custom:mushroom-template-card
  1061. entity: switch.light_switch_grg
  1062. layout: horizontal
  1063. icon: mdi:garage-variant
  1064. tap_action:
  1065. action: toggle
  1066. hold_action:
  1067. action: none
  1068. double_tap_action:
  1069. action: none
  1070. icon_color: >-
  1071. {% if is_state('switch.light_switches_grg', 'on') %}
  1072. #c2b280 {% else %} #7A7A7F {% endif %}
  1073. primary_info: none
  1074. secondary_info: none
  1075. card_mod:
  1076. style:
  1077. mushroom-shape-icon$: |
  1078. .shape {
  1079. --icon-size: 135px;
  1080. }
  1081. .: |
  1082. ha-card {
  1083. border: 0px;
  1084. margin-left: -30px;
  1085. margin-top: -15px;
  1086.  
  1087. }
  1088. - type: custom:mushroom-chips-card
  1089. chips:
  1090. - type: template
  1091. entity: switch.light_switch_grg
  1092. tap_action:
  1093. action: toggle
  1094. hold_action:
  1095. action: none
  1096. double_tap_action:
  1097. action: none
  1098. icon: mdi:light-recessed
  1099. card_mod:
  1100. style: |
  1101. ha-card {
  1102. --chip-background: {% if is_state('switch.light_switch_grg', 'on') %} #c2b280 {% else %} #353535 {% endif %};
  1103. --color: {% if is_state('switch.light_switch_grg', 'on') %} #433752 {% else %} #DBDBDB {% endif %};
  1104. justify-content: center;
  1105. height: 35px !important;
  1106. width: 35px !important;
  1107. border: 0 !important;
  1108. box-shadow: none !important;
  1109. border-radius: 22px !important;
  1110. }
  1111. - type: template
  1112. entity: binary_sensor.doors_grg
  1113. tap_action:
  1114. action: none
  1115. hold_action:
  1116. action: none
  1117. double_tap_action:
  1118. action: none
  1119. icon: |
  1120. {% if is_state(entity, 'on') %}
  1121. mdi:door-open
  1122. {% else %}
  1123. mdi:door-closed
  1124. {% endif %}
  1125. card_mod:
  1126. style: |
  1127. ha-card {
  1128. --chip-background: {% if is_state('binary_sensor.doors_grg', 'on') %} #C62828 {% else %} #353535 {% endif %};
  1129. --color: {% if is_state('binary_sensor.doors_grg', 'on') %} white {% else %} #DBDBDB {% endif %};
  1130. justify-content: center;
  1131. height: 35px !important;
  1132. width: 35px !important;
  1133. border: 0 !important;
  1134. box-shadow: none !important;
  1135. border-radius: 22px !important;
  1136. }
  1137. ha-card:after {
  1138. content: "{{ '' if (expand(states.binary_sensor.doors_grg) | selectattr('state', 'eq', 'on') | list | count) == 0 else expand(states.binary_sensor.doors_grg) | selectattr('state', 'eq', 'on') | list | count }}";
  1139. position: absolute;
  1140. top: -10%;
  1141. right: -10%;
  1142. display: {% if is_state('binary_sensor.doors_grg', 'on') %} flex {% else %} none {% endif %};
  1143. justify-content: center;
  1144. align-items: center;
  1145. width: 14px;
  1146. height: 14px;
  1147. font-size: 9px;
  1148. font-weight: 700;
  1149. border-radius: 50%;
  1150. background: {% if is_state('binary_sensor.doors_grg', 'on') %} #EE4B2B {% else %} {% endif %};
  1151. color: var(--card-background-color);
  1152. }
  1153. - type: template
  1154. entity: binary_sensor.windows_grg
  1155. tap_action:
  1156. action: none
  1157. hold_action:
  1158. action: none
  1159. double_tap_action:
  1160. action: none
  1161. icon: |
  1162. {% if is_state(entity, 'on') %}
  1163. mdi:window-open
  1164. {% else %}
  1165. mdi:window-closed
  1166. {% endif %}
  1167. card_mod:
  1168. style: |
  1169. ha-card {
  1170. --chip-background: {% if is_state('binary_sensor.windows_grg', 'on') %} #FFC067 {% else %} #353535 {% endif %};
  1171. --color: {% if is_state('binary_sensor.windows_grg', 'on') %} #433752 {% else %} #DBDBDB {% endif %};
  1172. justify-content: center;
  1173. height: 35px !important;
  1174. width: 35px !important;
  1175. border: 0 !important;
  1176. box-shadow: none !important;
  1177. border-radius: 22px !important;
  1178. }
  1179. ha-card:after {
  1180. content: "{{ '' if (expand(states.binary_sensor.windows_grg) | selectattr('state', 'eq', 'on') | list | count) == 0 else expand(states.binary_sensor.windows_grg) | selectattr('state', 'eq', 'on') | list | count }}";
  1181. position: absolute;
  1182. top: -10%;
  1183. right: -10%;
  1184. display: {% if is_state('binary_sensor.windows_grg', 'on') %} flex {% else %} none {% endif %};
  1185. justify-content: center;
  1186. align-items: center;
  1187. width: 14px;
  1188. height: 14px;
  1189. font-size: 9px;
  1190. font-weight: 700;
  1191. border-radius: 50%;
  1192. background: {% if is_state('binary_sensor.windows_grg', 'on') %} orange {% else %} {% endif %};
  1193. color: var(--card-background-color);
  1194. }
  1195. card_mod:
  1196. style: |
  1197. .chip-container {
  1198. flex-flow: column wrap-reverse !important;
  1199. display: flex !important;
  1200. --chip-spacing: 8px;
  1201. margin: 12px;
  1202. }
  1203. .: |
  1204. .container {
  1205. align: end;
  1206. }
  1207. card_mod:
  1208. style: |
  1209. ha-card {
  1210. background:
  1211. {% set temp = states('sensor.garage_temperature') | float %}
  1212. {% if temp < 16 %}
  1213. #CEB2F5
  1214. {% elif temp < 18 %}
  1215. #a3d9f5
  1216. {% elif temp < 22 %}
  1217. #cde3db
  1218. {% elif temp < 24 %}
  1219. #fbd9a0
  1220. {% elif temp < 27 %}
  1221. #f4a8a3
  1222. {% else %}
  1223. #FC6C6C
  1224. {% endif %};
  1225. max-width: 100%;
  1226. min-width: 50%;
  1227. height: 186px;
  1228. }
  1229. grid_options:
  1230. columns: 6
  1231. rows: 3
  1232. - type: horizontal-stack
  1233. cards:
  1234. - type: custom:stack-in-card
  1235. mode: horizontal
  1236. cards:
  1237. - type: vertical-stack
  1238. cards:
  1239. - type: custom:mushroom-template-card
  1240. primary: Living Area
  1241. secondary: >-
  1242. {{ states('sensor.living_room_temperature')|round(1)
  1243. }}°C / {{
  1244. states('sensor.living_area_humidity')|round(1) }}%
  1245. tap_action:
  1246. action: navigate
  1247. navigation_path: /mobile-light/living-area-room-details
  1248. hold_action:
  1249. action: none
  1250. double_tap_action:
  1251. action: none
  1252. card_mod:
  1253. style:
  1254. mushroom-shape-icon$: |
  1255. .shape {
  1256. display: none !important;
  1257. }
  1258. .: |
  1259. ha-card {
  1260. border: 0px;
  1261. padding-left: 5px;
  1262. padding-top: 5px;
  1263. width: 500px;
  1264. }
  1265. - type: custom:mushroom-template-card
  1266. entity: switch.sofa_light
  1267. layout: horizontal
  1268. icon: mdi:sofa
  1269. tap_action:
  1270. action: toggle
  1271. hold_action:
  1272. action: none
  1273. double_tap_action:
  1274. action: none
  1275. icon_color: >-
  1276. {% if is_state('switch.light_switches_la', 'on') %}
  1277. #c2b280 {% else %} #7A7A7F {% endif %}
  1278. primary_info: none
  1279. secondary_info: none
  1280. card_mod:
  1281. style:
  1282. mushroom-shape-icon$: |
  1283. .shape {
  1284. --icon-size: 135px;
  1285. }
  1286. .: |
  1287. ha-card {
  1288. border: 0px;
  1289. margin-left: -30px;
  1290. margin-top: -15px;
  1291.  
  1292. }
  1293. - type: custom:mushroom-chips-card
  1294. chips:
  1295. - type: template
  1296. entity: climate.living_room
  1297. tap_action:
  1298. action: toggle
  1299. hold_action:
  1300. action: none
  1301. double_tap_action:
  1302. action: none
  1303. icon: |
  1304. {% if is_state(entity, 'heat_cool') %}
  1305. mdi:heat-pump
  1306. {% else %}
  1307. mdi:heat-pump-outline
  1308. {% endif %}
  1309. card_mod:
  1310. style: |
  1311. ha-card {
  1312. --chip-background:
  1313. {% if is_state('climate.living_room', 'heat_cool') and is_state('climate.heat_pump', 'cool') %} #b5e0f7
  1314. {% elif is_state('climate.living_room', 'heat_cool') and is_state('climate.heat_pump', 'heat') %} #FF8B8B
  1315. {% elif is_state('climate.living_room', 'heat_cool') and is_state('climate.heat_pump', 'fan_only') %} #DEDEDE
  1316. {% elif is_state('climate.living_room', 'heat_cool') and is_state('climate.heat_pump', 'off') %} white
  1317. {% else %} #353535
  1318. {% endif %};
  1319. --color: {% if is_state('climate.living_room', 'heat_cool') %} #333333 {% else %} #DBDBDB {% endif %};
  1320. justify-content: center;
  1321. height: 35px !important;
  1322. width: 35px !important;
  1323. border: 0 !important;
  1324. box-shadow: none !important;
  1325. border-radius: 22px !important;
  1326. } - type: custom:mushroom-chips-card
  1327. - type: template
  1328. entity: switch.sofa_light
  1329. tap_action:
  1330. action: toggle
  1331. hold_action:
  1332. action: none
  1333. double_tap_action:
  1334. action: none
  1335. icon: mdi:light-recessed
  1336. card_mod:
  1337. style: |
  1338. ha-card {
  1339. --chip-background: {% if is_state('switch.sofa_light', 'on') %} #c2b280 {% else %} #353535 {% endif %};
  1340. --color: {% if is_state('switch.sofa_light', 'on') %} #433752 {% else %} #DBDBDB {% endif %};
  1341. justify-content: center;
  1342. height: 35px !important;
  1343. width: 35px !important;
  1344. border: 0 !important;
  1345. box-shadow: none !important;
  1346. border-radius: 22px !important;
  1347. }
  1348. - type: template
  1349. entity: binary_sensor.doors_la
  1350. tap_action:
  1351. action: none
  1352. hold_action:
  1353. action: none
  1354. double_tap_action:
  1355. action: none
  1356. icon: |
  1357. {% if is_state(entity, 'on') %}
  1358. mdi:door-sliding-open
  1359. {% else %}
  1360. mdi:door-sliding
  1361. {% endif %}
  1362. card_mod:
  1363. style: |
  1364. ha-card {
  1365. --chip-background: {% if is_state('binary_sensor.doors_la', 'on') %} #C62828 {% else %} #353535 {% endif %};
  1366. --color: {% if is_state('binary_sensor.doors_la', 'on') %} white {% else %} #DBDBDB {% endif %};
  1367. justify-content: center;
  1368. height: 35px !important;
  1369. width: 35px !important;
  1370. border: 0 !important;
  1371. box-shadow: none !important;
  1372. border-radius: 22px !important;
  1373. }
  1374. ha-card:after {
  1375. content: "{{ '' if (expand(states.binary_sensor.doors_la) | selectattr('state', 'eq', 'on') | list | count) == 0 else expand(states.binary_sensor.doors_la) | selectattr('state', 'eq', 'on') | list | count }}";
  1376. position: absolute;
  1377. top: -10%;
  1378. right: -10%;
  1379. display: {% if is_state('binary_sensor.doors_la', 'on') %} flex {% else %} none {% endif %};
  1380. justify-content: center;
  1381. align-items: center;
  1382. width: 14px;
  1383. height: 14px;
  1384. font-size: 9px;
  1385. font-weight: 700;
  1386. border-radius: 50%;
  1387. background: {% if is_state('binary_sensor.doors_la', 'on') %} #EE4B2B {% else %} {% endif %};
  1388. color: var(--card-background-color);
  1389. }
  1390. - type: template
  1391. entity: binary_sensor.windows_la
  1392. tap_action:
  1393. action: none
  1394. hold_action:
  1395. action: none
  1396. double_tap_action:
  1397. action: none
  1398. icon: |
  1399. {% if is_state(entity, 'on') %}
  1400. mdi:window-open
  1401. {% else %}
  1402. mdi:window-closed
  1403. {% endif %}
  1404. card_mod:
  1405. style: |
  1406. ha-card {
  1407. --chip-background: {% if is_state('binary_sensor.windows_la', 'on') %} #FFC067 {% else %} #353535 {% endif %};
  1408. --color: {% if is_state('binary_sensor.windows_la', 'on') %} #433752 {% else %} #DBDBDB {% endif %};
  1409. justify-content: center;
  1410. height: 35px !important;
  1411. width: 35px !important;
  1412. border: 0 !important;
  1413. box-shadow: none !important;
  1414. border-radius: 22px !important;
  1415. }
  1416. ha-card:after {
  1417. content: "{{ '' if (expand(states.binary_sensor.windows_la) | selectattr('state', 'eq', 'on') | list | count) == 0 else expand(states.binary_sensor.windows_la) | selectattr('state', 'eq', 'on') | list | count }}";
  1418. position: absolute;
  1419. top: -10%;
  1420. right: -10%;
  1421. display: {% if is_state('binary_sensor.windows_la', 'on') %} flex {% else %} none {% endif %};
  1422. justify-content: center;
  1423. align-items: center;
  1424. width: 14px;
  1425. height: 14px;
  1426. font-size: 9px;
  1427. font-weight: 700;
  1428. border-radius: 50%;
  1429. background: {% if is_state('binary_sensor.windows_la', 'on') %} orange {% else %} {% endif %};
  1430. color: var(--card-background-color);
  1431. }
  1432. card_mod:
  1433. style: |
  1434. .chip-container {
  1435. flex-flow: column wrap-reverse !important;
  1436. display: flex !important;
  1437. --chip-spacing: 8px;
  1438. margin: 12px;
  1439. }
  1440. .: |
  1441. .container {
  1442. align: end;
  1443. }
  1444. card_mod:
  1445. style: |
  1446. ha-card {
  1447. background:
  1448. {% set temp = states('sensor.living_room_temperature') | float %}
  1449. {% if temp < 16 %}
  1450. #CEB2F5
  1451. {% elif temp < 18 %}
  1452. #a3d9f5
  1453. {% elif temp < 22 %}
  1454. #cde3db
  1455. {% elif temp < 24 %}
  1456. #fbd9a0
  1457. {% elif temp < 27 %}
  1458. #f4a8a3
  1459. {% else %}
  1460. #FC6C6C
  1461. {% endif %};
  1462. max-width: 100%;
  1463. min-width: 50%;
  1464. height: 186px;
  1465. }
  1466. grid_options:
  1467. columns: 6
  1468. rows: 3
  1469. - type: horizontal-stack
  1470. cards:
  1471. - type: custom:stack-in-card
  1472. mode: horizontal
  1473. cards:
  1474. - type: vertical-stack
  1475. cards:
  1476. - type: custom:mushroom-template-card
  1477. primary: Master Bedroom
  1478. secondary: >-
  1479. {{
  1480. states('sensor.master_bedroom_temperature')|round(1)
  1481. }}°C / {{
  1482. states('sensor.master_bedroom_humidity')|round(1) }}%
  1483. tap_action:
  1484. action: navigate
  1485. navigation_path: /mobile-light/master-bedroom-details
  1486. hold_action:
  1487. action: none
  1488. double_tap_action:
  1489. action: none
  1490. card_mod:
  1491. style: |
  1492. ha-card {
  1493. border: 0px;
  1494. padding-left: 5px;
  1495. padding-top: 5px;
  1496. width: 500px;
  1497. }
  1498. - type: custom:mushroom-template-card
  1499. entity: switch.bedside_lights_switch
  1500. layout: horizontal
  1501. icon: mdi:bed-king
  1502. tap_action:
  1503. action: toggle
  1504. hold_action:
  1505. action: none
  1506. double_tap_action:
  1507. action: none
  1508. icon_color: >-
  1509. {% if is_state('switch.light_switches_mbr', 'on') %}
  1510. #c2b280 {% else %} #7A7A7F {% endif %}
  1511. primary_info: none
  1512. secondary_info: none
  1513. card_mod:
  1514. style:
  1515. mushroom-shape-icon$: |
  1516. .shape {
  1517. --icon-size: 135px;
  1518. }
  1519. .: |
  1520. ha-card {
  1521. border: 0px;
  1522. margin-left: -30px;
  1523. margin-top: -15px;
  1524.  
  1525. }
  1526. - type: custom:mushroom-chips-card
  1527. chips:
  1528. - type: template
  1529. entity: climate.master_bedroom
  1530. tap_action:
  1531. action: toggle
  1532. hold_action:
  1533. action: none
  1534. double_tap_action:
  1535. action: none
  1536. icon: |
  1537. {% if is_state(entity, 'heat_cool') %}
  1538. mdi:heat-pump
  1539. {% else %}
  1540. mdi:heat-pump-outline
  1541. {% endif %}
  1542. card_mod:
  1543. style: |
  1544. ha-card {
  1545. --chip-background:
  1546. {% if is_state('climate.master_bedroom', 'heat_cool') and is_state('climate.heat_pump', 'cool') %} #b5e0f7
  1547. {% elif is_state('climate.master_bedroom', 'heat_cool') and is_state('climate.heat_pump', 'heat') %} #FF8B8B
  1548. {% elif is_state('climate.master_bedroom', 'heat_cool') and is_state('climate.heat_pump', 'fan_only') %} #DEDEDE
  1549. {% elif is_state('climate.master_bedroom', 'heat_cool') and is_state('climate.heat_pump', 'off') %} white
  1550. {% else %} #353535
  1551. {% endif %};
  1552. --color: {% if is_state('climate.master_bedroom', 'heat_cool') %} #333333 {% else %} #DBDBDB {% endif %};
  1553. justify-content: center;
  1554. height: 35px !important;
  1555. width: 35px !important;
  1556. border: 0 !important;
  1557. box-shadow: none !important;
  1558. border-radius: 22px !important;
  1559. }
  1560. - type: template
  1561. entity: switch.light_switch_mbr
  1562. tap_action:
  1563. action: toggle
  1564. hold_action:
  1565. action: none
  1566. double_tap_action:
  1567. action: none
  1568. icon: mdi:light-recessed
  1569. card_mod:
  1570. style: |
  1571. ha-card {
  1572. --chip-background: {% if is_state('switch.light_switch_mbr', 'on') %} #c2b280 {% else %} #353535 {% endif %};
  1573. --color: {% if is_state('switch.light_switch_mbr', 'on') %} #433752 {% else %} #DBDBDB {% endif %};
  1574. justify-content: center;
  1575. height: 35px !important;
  1576. width: 35px !important;
  1577. border: 0 !important;
  1578. box-shadow: none !important;
  1579. border-radius: 22px !important;
  1580. }
  1581. - type: template
  1582. entity: binary_sensor.sliding_door_sensor_mbr_contact
  1583. tap_action:
  1584. action: none
  1585. hold_action:
  1586. action: none
  1587. double_tap_action:
  1588. action: none
  1589. icon: |
  1590. {% if is_state(entity, 'on') %}
  1591. mdi:door-sliding-open
  1592. {% else %}
  1593. mdi:door-sliding
  1594. {% endif %}
  1595. card_mod:
  1596. style: |
  1597. ha-card {
  1598. --chip-background: {% if is_state('binary_sensor.sliding_door_sensor_mbr_contact', 'on') %} #C62828 {% else %} #353535 {% endif %};
  1599. --color: {% if is_state('binary_sensor.sliding_door_sensor_mbr_contact', 'on') %} white {% else %} #DBDBDB {% endif %};
  1600. justify-content: center;
  1601. height: 35px !important;
  1602. width: 35px !important;
  1603. border: 0 !important;
  1604. box-shadow: none !important;
  1605. border-radius: 22px !important;
  1606. }
  1607. ha-card:after {
  1608. content: "{{ '' if (expand(states.binary_sensor.sliding_door_sensor_mbr_contact) | selectattr('state', 'eq', 'on') | list | count) == 0 else expand(states.binary_sensor.sliding_door_sensor_mbr_contact) | selectattr('state', 'eq', 'on') | list | count }}";
  1609. position: absolute;
  1610. top: -10%;
  1611. right: -10%;
  1612. display: {% if is_state('binary_sensor.sliding_door_sensor_mbr_contact', 'on') %} flex {% else %} none {% endif %};
  1613. justify-content: center;
  1614. align-items: center;
  1615. width: 14px;
  1616. height: 14px;
  1617. font-size: 9px;
  1618. font-weight: 700;
  1619. border-radius: 50%;
  1620. background: {% if is_state('binary_sensor.sliding_door_sensor_mbr_contact', 'on') %} #EE4B2B {% else %} {% endif %};
  1621. color: var(--card-background-color);
  1622. }
  1623. - type: template
  1624. entity: binary_sensor.windows_mbr
  1625. tap_action:
  1626. action: none
  1627. hold_action:
  1628. action: none
  1629. double_tap_action:
  1630. action: none
  1631. icon: |
  1632. {% if is_state(entity, 'on') %}
  1633. mdi:window-open
  1634. {% else %}
  1635. mdi:window-closed
  1636. {% endif %}
  1637. card_mod:
  1638. style: |
  1639. ha-card {
  1640. --chip-background: {% if is_state('binary_sensor.windows_mbr', 'on') %} #FFC067 {% else %} #353535 {% endif %};
  1641. --color: {% if is_state('binary_sensor.windows_mbr', 'on') %} #433752 {% else %} #DBDBDB {% endif %};
  1642. justify-content: center;
  1643. height: 35px !important;
  1644. width: 35px !important;
  1645. border: 0 !important;
  1646. box-shadow: none !important;
  1647. border-radius: 22px !important;
  1648. }
  1649. ha-card:after {
  1650. content: "{{ '' if (expand(states.binary_sensor.windows_mbr) | selectattr('state', 'eq', 'on') | list | count) == 0 else expand(states.binary_sensor.windows_mbr) | selectattr('state', 'eq', 'on') | list | count }}";
  1651. position: absolute;
  1652. top: -10%;
  1653. right: -10%;
  1654. display: {% if is_state('binary_sensor.windows_mbr', 'on') %} flex {% else %} none {% endif %};
  1655. justify-content: center;
  1656. align-items: center;
  1657. width: 14px;
  1658. height: 14px;
  1659. font-size: 9px;
  1660. font-weight: 700;
  1661. border-radius: 50%;
  1662. background: {% if is_state('binary_sensor.windows_mbr', 'on') %} orange {% else %} {% endif %};
  1663. color: var(--card-background-color);
  1664. }
  1665. card_mod:
  1666. style: |
  1667. .chip-container {
  1668. flex-flow: column wrap-reverse !important;
  1669. display: flex !important;
  1670. --chip-spacing: 8px;
  1671. margin: 12px;
  1672. }
  1673. .: |
  1674. .container {
  1675. align: end;
  1676. }
  1677. card_mod:
  1678. style: |
  1679. ha-card {
  1680. background:
  1681. {% set temp = states('sensor.master_bedroom_temperature') | float %}
  1682. {% if temp < 16 %}
  1683. #CEB2F5
  1684. {% elif temp < 18 %}
  1685. #a3d9f5
  1686. {% elif temp < 22 %}
  1687. #cde3db
  1688. {% elif temp < 24 %}
  1689. #fbd9a0
  1690. {% elif temp < 27 %}
  1691. #f4a8a3
  1692. {% else %}
  1693. #FC6C6C
  1694. {% endif %};
  1695. max-width: 100%;
  1696. min-width: 50%;
  1697. height: 186px;
  1698. }
  1699. grid_options:
  1700. columns: 6
  1701. rows: 3
  1702. - type: horizontal-stack
  1703. cards:
  1704. - type: custom:stack-in-card
  1705. mode: horizontal
  1706. cards:
  1707. - type: vertical-stack
  1708. cards:
  1709. - type: custom:mushroom-template-card
  1710. primary: Baby Room
  1711. entity: switch.light_switch_br
  1712. tap_action:
  1713. action: navigate
  1714. navigation_path: /mobile-light/baby-room-details
  1715. hold_action:
  1716. action: none
  1717. double_tap_action:
  1718. action: none
  1719. secondary: >-
  1720. {{ states('sensor.baby_room_temperature')|round(1) }}°
  1721. / {{ states('sensor.baby_room_humidity')|round(1) }}%
  1722. card_mod:
  1723. style: |
  1724. ha-card {
  1725. border: 0px;
  1726. padding-left: 5px;
  1727. padding-top: 5px;
  1728. width: 500px;
  1729. }
  1730. - type: custom:mushroom-template-card
  1731. entity: switch.light_switch_br
  1732. layout: horizontal
  1733. icon: mdi:baby-carriage
  1734. tap_action:
  1735. action: toggle
  1736. hold_action:
  1737. action: none
  1738. double_tap_action:
  1739. action: none
  1740. icon_color: >-
  1741. {% if is_state(entity, 'on') %} #c2b280 {% else %}
  1742. #7A7A7F {% endif %}
  1743. primary_info: none
  1744. secondary_info: none
  1745. card_mod:
  1746. style:
  1747. mushroom-shape-icon$: |
  1748. .shape {
  1749. --icon-size: 135px;
  1750. }
  1751. .: |
  1752. ha-card {
  1753. border: 0px;
  1754. margin-left: -30px;
  1755. margin-top: -15px;
  1756.  
  1757. }
  1758. - type: custom:mushroom-chips-card
  1759. chips:
  1760. - type: template
  1761. entity: climate.baby_room
  1762. tap_action:
  1763. action: toggle
  1764. hold_action:
  1765. action: none
  1766. double_tap_action:
  1767. action: none
  1768. icon: |
  1769. {% if is_state(entity, 'heat_cool') %}
  1770. mdi:heat-pump
  1771. {% else %}
  1772. mdi:heat-pump-outline
  1773. {% endif %}
  1774. card_mod:
  1775. style: |
  1776. ha-card {
  1777. --chip-background:
  1778. {% if is_state('climate.baby_room', 'heat_cool') and is_state('climate.heat_pump', 'cool') %} #b5e0f7
  1779. {% elif is_state('climate.baby_room', 'heat_cool') and is_state('climate.heat_pump', 'heat') %} #FF8B8B
  1780. {% elif is_state('climate.baby_room', 'heat_cool') and is_state('climate.heat_pump', 'fan_only') %} #DEDEDE
  1781. {% elif is_state('climate.baby_room', 'heat_cool') and is_state('climate.heat_pump', 'off') %} white
  1782. {% else %} #353535
  1783. {% endif %};
  1784. --color: {% if is_state('climate.baby_room', 'heat_cool') %} #333333 {% else %} #DBDBDB {% endif %};
  1785. justify-content: center;
  1786. height: 35px !important;
  1787. width: 35px !important;
  1788. border: 0 !important;
  1789. box-shadow: none !important;
  1790. border-radius: 22px !important;
  1791. }
  1792. - type: template
  1793. entity: switch.light_switch_br
  1794. tap_action:
  1795. action: toggle
  1796. hold_action:
  1797. action: none
  1798. double_tap_action:
  1799. action: none
  1800. icon: mdi:light-recessed
  1801. card_mod:
  1802. style: |
  1803. ha-card {
  1804. --chip-background: {% if is_state('switch.light_switch_br', 'on') %} #c2b280 {% else %} #353535 {% endif %};
  1805. --color: {% if is_state('switch.light_switch_br', 'on') %} #433752 {% else %} #DBDBDB {% endif %};
  1806. justify-content: center;
  1807. height: 35px !important;
  1808. width: 35px !important;
  1809. border: 0 !important;
  1810. box-shadow: none !important;
  1811. border-radius: 22px !important;
  1812. }
  1813. - type: template
  1814. entity: binary_sensor.windows_br
  1815. tap_action:
  1816. action: none
  1817. hold_action:
  1818. action: none
  1819. double_tap_action:
  1820. action: none
  1821. icon: |
  1822. {% if is_state(entity, 'on') %}
  1823. mdi:window-open
  1824. {% else %}
  1825. mdi:window-closed
  1826. {% endif %}
  1827. card_mod:
  1828. style: |
  1829. ha-card {
  1830. --chip-background: {% if is_state('binary_sensor.windows_br', 'on') %} #FFC067 {% else %} #353535 {% endif %};
  1831. --color: {% if is_state('binary_sensor.windows_br', 'on') %} #433752 {% else %} #DBDBDB {% endif %};
  1832. justify-content: center;
  1833. height: 35px !important;
  1834. width: 35px !important;
  1835. border: 0 !important;
  1836. box-shadow: none !important;
  1837. border-radius: 22px !important;
  1838. }
  1839. ha-card:after {
  1840. content: "{{ '' if (expand(states.binary_sensor.windows_br) | selectattr('state', 'eq', 'on') | list | count) == 0 else expand(states.binary_sensor.windows_br) | selectattr('state', 'eq', 'on') | list | count }}";
  1841. position: absolute;
  1842. top: -10%;
  1843. right: -10%;
  1844. display: {% if is_state('binary_sensor.windows_br', 'on') %} flex {% else %} none {% endif %};
  1845. justify-content: center;
  1846. align-items: center;
  1847. width: 14px;
  1848. height: 14px;
  1849. font-size: 9px;
  1850. font-weight: 700;
  1851. border-radius: 50%;
  1852. background: {% if is_state('binary_sensor.windows_br', 'on') %} orange {% else %} {% endif %};
  1853. color: var(--card-background-color);
  1854. }
  1855. card_mod:
  1856. style: |
  1857. .chip-container {
  1858. flex-flow: column wrap-reverse !important;
  1859. display: flex !important;
  1860. --chip-spacing: 8px;
  1861. margin: 12px;
  1862. }
  1863. .: |
  1864. .container {
  1865. align: end;
  1866. }
  1867. card_mod:
  1868. style: |
  1869. ha-card {
  1870. background:
  1871. {% set temp = states('sensor.baby_room_temperature') | float %}
  1872. {% if temp < 16 %}
  1873. #CEB2F5
  1874. {% elif temp < 18 %}
  1875. #a3d9f5
  1876. {% elif temp < 22 %}
  1877. #cde3db
  1878. {% elif temp < 24 %}
  1879. #fbd9a0
  1880. {% elif temp < 27 %}
  1881. #f4a8a3
  1882. {% else %}
  1883. #FC6C6C
  1884. {% endif %};
  1885. max-width: 100%;
  1886. min-width: 50%;
  1887. height: 186px;
  1888. }
  1889. grid_options:
  1890. columns: 6
  1891. rows: 3
  1892. - type: horizontal-stack
  1893. cards:
  1894. - type: custom:mushroom-climate-card
  1895. entity: climate.master_bedroom
  1896. primary_info: none
  1897. secondary_info: none
  1898. icon_type: none
  1899. show_temperature_control: true
  1900. - type: custom:mushroom-climate-card
  1901. entity: climate.baby_room
  1902. primary_info: none
  1903. secondary_info: none
  1904. icon_type: none
  1905. show_temperature_control: true
  1906. - type: horizontal-stack
  1907. cards:
  1908. - type: custom:stack-in-card
  1909. mode: horizontal
  1910. cards:
  1911. - type: vertical-stack
  1912. cards:
  1913. - type: custom:mushroom-template-card
  1914. primary: Single Guest Room
  1915. entity: switch.light_switch_sgr
  1916. tap_action:
  1917. action: navigate
  1918. navigation_path: /mobile-light/single-guest-room-details
  1919. hold_action:
  1920. action: none
  1921. double_tap_action:
  1922. action: none
  1923. secondary: >-
  1924. {{
  1925. states('sensor.single_guest_room_temperature')|round(1)
  1926. }}°C
  1927. card_mod:
  1928. style: |
  1929. ha-card {
  1930. border: 0px;
  1931. padding-left: 5px;
  1932. padding-top: 5px;
  1933. width: 500px;
  1934. }
  1935. - type: custom:mushroom-template-card
  1936. entity: switch.light_switch_sgr
  1937. layout: horizontal
  1938. icon: mdi:account-plus
  1939. tap_action:
  1940. action: toggle
  1941. hold_action:
  1942. action: none
  1943. double_tap_action:
  1944. action: none
  1945. icon_color: >-
  1946. {% if is_state(entity, 'on') %} #c2b280 {% else %}
  1947. #7A7A7F {% endif %}
  1948. primary_info: none
  1949. secondary_info: none
  1950. card_mod:
  1951. style:
  1952. mushroom-shape-icon$: |
  1953. .shape {
  1954. --icon-size: 135px;
  1955. }
  1956. .: |
  1957. ha-card {
  1958. border: 0px;
  1959. margin-left: -30px;
  1960. margin-top: -15px;
  1961.  
  1962. }
  1963. - type: custom:mushroom-chips-card
  1964. chips:
  1965. - type: template
  1966. entity: climate.single_guest_room
  1967. tap_action:
  1968. action: toggle
  1969. hold_action:
  1970. action: none
  1971. double_tap_action:
  1972. action: none
  1973. icon: |
  1974. {% if is_state(entity, 'heat_cool') %}
  1975. mdi:heat-pump
  1976. {% else %}
  1977. mdi:heat-pump-outline
  1978. {% endif %}
  1979. card_mod:
  1980. style: |
  1981. ha-card {
  1982. --chip-background:
  1983. {% if is_state('climate.single_guest_room', 'heat_cool') and is_state('climate.heat_pump', 'cool') %} #b5e0f7
  1984. {% elif is_state('climate.single_guest_room', 'heat_cool') and is_state('climate.heat_pump', 'heat') %} #FF8B8B
  1985. {% elif is_state('climate.single_guest_room', 'heat_cool') and is_state('climate.heat_pump', 'fan_only') %} #DEDEDE
  1986. {% elif is_state('climate.single_guest_room', 'heat_cool') and is_state('climate.heat_pump', 'off') %} white
  1987. {% else %} #353535
  1988. {% endif %};
  1989. --color: {% if is_state('climate.single_guest_room', 'heat_cool') %} #333333 {% else %} #DBDBDB {% endif %};
  1990. justify-content: center;
  1991. height: 35px !important;
  1992. width: 35px !important;
  1993. border: 0 !important;
  1994. box-shadow: none !important;
  1995. border-radius: 22px !important;
  1996. }
  1997. - type: template
  1998. entity: switch.light_switch_sgr
  1999. tap_action:
  2000. action: toggle
  2001. hold_action:
  2002. action: none
  2003. double_tap_action:
  2004. action: none
  2005. icon: mdi:light-recessed
  2006. card_mod:
  2007. style: |
  2008. ha-card {
  2009. --chip-background: {% if is_state('switch.light_switch_sgr', 'on') %} #c2b280 {% else %} #353535 {% endif %};
  2010. --color: {% if is_state('switch.light_switch_sgr', 'on') %} #433752 {% else %} #DBDBDB {% endif %};
  2011. justify-content: center;
  2012. height: 35px !important;
  2013. width: 35px !important;
  2014. border: 0 !important;
  2015. box-shadow: none !important;
  2016. border-radius: 22px !important;
  2017. }
  2018. - type: template
  2019. entity: binary_sensor.windows_sgr
  2020. tap_action:
  2021. action: none
  2022. hold_action:
  2023. action: none
  2024. double_tap_action:
  2025. action: none
  2026. icon: |
  2027. {% if is_state(entity, 'on') %}
  2028. mdi:window-open
  2029. {% else %}
  2030. mdi:window-closed
  2031. {% endif %}
  2032. card_mod:
  2033. style: |
  2034. ha-card {
  2035. --chip-background: {% if is_state('binary_sensor.windows_sgr', 'on') %} #FFC067 {% else %} #353535 {% endif %};
  2036. --color: {% if is_state('binary_sensor.windows_sgr', 'on') %} #433752 {% else %} #DBDBDB {% endif %};
  2037. justify-content: center;
  2038. height: 35px !important;
  2039. width: 35px !important;
  2040. border: 0 !important;
  2041. box-shadow: none !important;
  2042. border-radius: 22px !important;
  2043. }
  2044. ha-card:after {
  2045. content: "{{ '' if (expand(states.binary_sensor.windows_sgr) | selectattr('state', 'eq', 'on') | list | count) == 0 else expand(states.binary_sensor.windows_sgr) | selectattr('state', 'eq', 'on') | list | count }}";
  2046. position: absolute;
  2047. top: -10%;
  2048. right: -10%;
  2049. display: {% if is_state('binary_sensor.windows_sgr', 'on') %} flex {% else %} none {% endif %};
  2050. justify-content: center;
  2051. align-items: center;
  2052. width: 14px;
  2053. height: 14px;
  2054. font-size: 9px;
  2055. font-weight: 700;
  2056. border-radius: 50%;
  2057. background: {% if is_state('binary_sensor.windows_sgr', 'on') %} orange {% else %} {% endif %};
  2058. color: var(--card-background-color);
  2059. }
  2060. card_mod:
  2061. style: |
  2062. .chip-container {
  2063. flex-flow: column wrap-reverse !important;
  2064. display: flex !important;
  2065. --chip-spacing: 8px;
  2066. margin: 12px;
  2067. }
  2068. .: |
  2069. .container {
  2070. align: end;
  2071. }
  2072. card_mod:
  2073. style: |
  2074. ha-card {
  2075. background:
  2076. {% set temp = states('sensor.single_guest_room_temperature') | float %}
  2077. {% if temp < 16 %}
  2078. #CEB2F5
  2079. {% elif temp < 18 %}
  2080. #a3d9f5
  2081. {% elif temp < 22 %}
  2082. #cde3db
  2083. {% elif temp < 24 %}
  2084. #fbd9a0
  2085. {% elif temp < 27 %}
  2086. #f4a8a3
  2087. {% else %}
  2088. #FC6C6C
  2089. {% endif %};
  2090. max-width: 100%;
  2091. min-width: 50%;
  2092. height: 186px;
  2093. }
  2094. grid_options:
  2095. columns: 6
  2096. rows: 3
  2097. - type: horizontal-stack
  2098. cards:
  2099. - type: custom:stack-in-card
  2100. mode: horizontal
  2101. cards:
  2102. - type: vertical-stack
  2103. cards:
  2104. - type: custom:mushroom-template-card
  2105. primary: Multiple Guest Room
  2106. entity: switch.light_switch_mgr
  2107. tap_action:
  2108. action: navigate
  2109. navigation_path: /mobile-light/multiple-guest-room-details
  2110. hold_action:
  2111. action: none
  2112. double_tap_action:
  2113. action: none
  2114. secondary: >-
  2115. {{
  2116. states('sensor.multiple_guest_room_temperature')|round(1)
  2117. }}°C
  2118. card_mod:
  2119. style: |
  2120. ha-card {
  2121. border: 0px;
  2122. padding-left: 5px;
  2123. padding-top: 5px;
  2124. width: 500px;
  2125. }
  2126. - type: custom:mushroom-template-card
  2127. entity: switch.light_switch_mgr
  2128. layout: horizontal
  2129. icon: mdi:account-group
  2130. tap_action:
  2131. action: toggle
  2132. hold_action:
  2133. action: none
  2134. double_tap_action:
  2135. action: none
  2136. icon_color: >-
  2137. {% if is_state(entity, 'on') %} #c2b280 {% else %}
  2138. #7A7A7F {% endif %}
  2139. primary_info: none
  2140. secondary_info: none
  2141. card_mod:
  2142. style:
  2143. mushroom-shape-icon$: |
  2144. .shape {
  2145. --icon-size: 135px;
  2146. }
  2147. .: |
  2148. ha-card {
  2149. border: 0px;
  2150. margin-left: -30px;
  2151. margin-top: -15px;
  2152.  
  2153. }
  2154. - type: custom:mushroom-chips-card
  2155. chips:
  2156. - type: template
  2157. entity: climate.multiple_guest_room
  2158. tap_action:
  2159. action: toggle
  2160. hold_action:
  2161. action: none
  2162. double_tap_action:
  2163. action: none
  2164. icon: |
  2165. {% if is_state(entity, 'heat_cool') %}
  2166. mdi:heat-pump
  2167. {% else %}
  2168. mdi:heat-pump-outline
  2169. {% endif %}
  2170. card_mod:
  2171. style: |
  2172. ha-card {
  2173. --chip-background:
  2174. {% if is_state('climate.multiple_guest_room', 'heat_cool') and is_state('climate.heat_pump', 'cool') %} #b5e0f7
  2175. {% elif is_state('climate.multiple_guest_room', 'heat_cool') and is_state('climate.heat_pump', 'heat') %} #FF8B8B
  2176. {% elif is_state('climate.multiple_guest_room', 'heat_cool') and is_state('climate.heat_pump', 'fan_only') %} #DEDEDE
  2177. {% elif is_state('climate.multiple_guest_room', 'heat_cool') and is_state('climate.heat_pump', 'off') %} white
  2178. {% else %} #353535
  2179. {% endif %};
  2180. --color: {% if is_state('climate.multiple_guest_room', 'heat_cool') %} #333333 {% else %} #DBDBDB {% endif %};
  2181. justify-content: center;
  2182. height: 35px !important;
  2183. width: 35px !important;
  2184. border: 0 !important;
  2185. box-shadow: none !important;
  2186. border-radius: 22px !important;
  2187. }
  2188. - type: template
  2189. entity: switch.light_switch_mgr
  2190. tap_action:
  2191. action: toggle
  2192. hold_action:
  2193. action: none
  2194. double_tap_action:
  2195. action: none
  2196. icon: mdi:light-recessed
  2197. card_mod:
  2198. style: |
  2199. ha-card {
  2200. --chip-background: {% if is_state('switch.light_switch_mgr', 'on') %} #c2b280 {% else %} #353535 {% endif %};
  2201. --color: {% if is_state('switch.light_switch_mgr', 'on') %} #433752 {% else %} #DBDBDB {% endif %};
  2202. justify-content: center;
  2203. height: 35px !important;
  2204. width: 35px !important;
  2205. border: 0 !important;
  2206. box-shadow: none !important;
  2207. border-radius: 22px !important;
  2208. }
  2209. - type: template
  2210. entity: binary_sensor.windows_mgr
  2211. tap_action:
  2212. action: none
  2213. hold_action:
  2214. action: none
  2215. double_tap_action:
  2216. action: none
  2217. icon: |
  2218. {% if is_state(entity, 'on') %}
  2219. mdi:window-open
  2220. {% else %}
  2221. mdi:window-closed
  2222. {% endif %}
  2223. card_mod:
  2224. style: |
  2225. ha-card {
  2226. --chip-background: {% if is_state('binary_sensor.windows_mgr', 'on') %} #FFC067 {% else %} #353535 {% endif %};
  2227. --color: {% if is_state('binary_sensor.windows_mgr', 'on') %} #433752 {% else %} #DBDBDB {% endif %};
  2228. justify-content: center;
  2229. height: 35px !important;
  2230. width: 35px !important;
  2231. border: 0 !important;
  2232. box-shadow: none !important;
  2233. border-radius: 22px !important;
  2234. }
  2235. ha-card:after {
  2236. content: "{{ '' if (expand(states.binary_sensor.windows_mgr) | selectattr('state', 'eq', 'on') | list | count) == 0 else expand(states.binary_sensor.windows_mgr) | selectattr('state', 'eq', 'on') | list | count }}";
  2237. position: absolute;
  2238. top: -10%;
  2239. right: -10%;
  2240. display: {% if is_state('binary_sensor.windows_mgr', 'on') %} flex {% else %} none {% endif %};
  2241. justify-content: center;
  2242. align-items: center;
  2243. width: 14px;
  2244. height: 14px;
  2245. font-size: 9px;
  2246. font-weight: 700;
  2247. border-radius: 50%;
  2248. background: {% if is_state('binary_sensor.windows_mgr', 'on') %} orange {% else %} {% endif %};
  2249. color: var(--card-background-color);
  2250. }
  2251. card_mod:
  2252. style: |
  2253. .chip-container {
  2254. flex-flow: column wrap-reverse !important;
  2255. display: flex !important;
  2256. --chip-spacing: 8px;
  2257. margin: 12px;
  2258. }
  2259. .: |
  2260. .container {
  2261. align: end;
  2262. }
  2263. card_mod:
  2264. style: |
  2265. ha-card {
  2266. background:
  2267. {% set temp = states('sensor.multiple_guest_room_temperature') | float %}
  2268. {% if temp < 16 %}
  2269. #CEB2F5
  2270. {% elif temp < 18 %}
  2271. #a3d9f5
  2272. {% elif temp < 22 %}
  2273. #cde3db
  2274. {% elif temp < 24 %}
  2275. #fbd9a0
  2276. {% elif temp < 27 %}
  2277. #f4a8a3
  2278. {% else %}
  2279. #FC6C6C
  2280. {% endif %};
  2281. max-width: 100%;
  2282. min-width: 50%;
  2283. height: 186px;
  2284. }
  2285. grid_options:
  2286. columns: 6
  2287. rows: 3
  2288. - type: horizontal-stack
  2289. cards:
  2290. - type: custom:mushroom-climate-card
  2291. entity: climate.single_guest_room
  2292. primary_info: none
  2293. secondary_info: none
  2294. icon_type: none
  2295. show_temperature_control: true
  2296. - type: custom:mushroom-climate-card
  2297. entity: climate.multiple_guest_room
  2298. primary_info: none
  2299. secondary_info: none
  2300. icon_type: none
  2301. show_temperature_control: true
  2302. - type: horizontal-stack
  2303. cards:
  2304. - type: custom:stack-in-card
  2305. mode: horizontal
  2306. cards:
  2307. - type: vertical-stack
  2308. cards:
  2309. - type: custom:mushroom-template-card
  2310. primary: Office Room
  2311. entity: switch.light_switch_or
  2312. tap_action:
  2313. action: navigate
  2314. navigation_path: /mobile-light/office-room-details
  2315. hold_action:
  2316. action: none
  2317. double_tap_action:
  2318. action: none
  2319. secondary: >-
  2320. {{ states('sensor.office_room_temperature')|round(1)
  2321. }}°C
  2322. card_mod:
  2323. style: |
  2324. ha-card {
  2325. border: 0px;
  2326. padding-left: 5px;
  2327. padding-top: 5px;
  2328. width: 500px;
  2329. }
  2330. - type: custom:mushroom-template-card
  2331. entity: switch.light_switch_or
  2332. layout: horizontal
  2333. icon: mdi:desktop-tower-monitor
  2334. tap_action:
  2335. action: toggle
  2336. hold_action:
  2337. action: none
  2338. double_tap_action:
  2339. action: none
  2340. icon_color: >-
  2341. {% if is_state(entity, 'on') %} #c2b280 {% else %}
  2342. #7A7A7F {% endif %}
  2343. primary_info: none
  2344. secondary_info: none
  2345. card_mod:
  2346. style:
  2347. mushroom-shape-icon$: |
  2348. .shape {
  2349. --icon-size: 135px;
  2350. }
  2351. .: |
  2352. ha-card {
  2353. border: 0px;
  2354. margin-left: -30px;
  2355. margin-top: -15px;
  2356.  
  2357. }
  2358. - type: custom:mushroom-chips-card
  2359. chips:
  2360. - type: template
  2361. entity: climate.office_room
  2362. tap_action:
  2363. action: toggle
  2364. hold_action:
  2365. action: none
  2366. double_tap_action:
  2367. action: none
  2368. icon: |
  2369. {% if is_state(entity, 'heat_cool') %}
  2370. mdi:heat-pump
  2371. {% else %}
  2372. mdi:heat-pump-outline
  2373. {% endif %}
  2374. card_mod:
  2375. style: |
  2376. ha-card {
  2377. --chip-background:
  2378. {% if is_state('climate.office_room', 'heat_cool') and is_state('climate.heat_pump', 'cool') %} #b5e0f7
  2379. {% elif is_state('climate.office_room', 'heat_cool') and is_state('climate.heat_pump', 'heat') %} #FF8B8B
  2380. {% elif is_state('climate.office_room', 'heat_cool') and is_state('climate.heat_pump', 'fan_only') %} #DEDEDE
  2381. {% elif is_state('climate.office_room', 'heat_cool') and is_state('climate.heat_pump', 'off') %} white
  2382. {% else %} #353535
  2383. {% endif %};
  2384. --color: {% if is_state('climate.office_room', 'heat_cool') %} #333333 {% else %} #DBDBDB {% endif %};
  2385. justify-content: center;
  2386. height: 35px !important;
  2387. width: 35px !important;
  2388. border: 0 !important;
  2389. box-shadow: none !important;
  2390. border-radius: 22px !important;
  2391. }
  2392. - type: template
  2393. entity: switch.light_switch_or
  2394. tap_action:
  2395. action: toggle
  2396. hold_action:
  2397. action: none
  2398. double_tap_action:
  2399. action: none
  2400. icon: mdi:light-recessed
  2401. card_mod:
  2402. style: |
  2403. ha-card {
  2404. --chip-background: {% if is_state('switch.light_switch_or', 'on') %} #c2b280 {% else %} #353535 {% endif %};
  2405. --color: {% if is_state('switch.light_switch_or', 'on') %} #433752 {% else %} #DBDBDB {% endif %};
  2406. justify-content: center;
  2407. height: 35px !important;
  2408. width: 35px !important;
  2409. border: 0 !important;
  2410. box-shadow: none !important;
  2411. border-radius: 22px !important;
  2412. }
  2413. - type: template
  2414. entity: binary_sensor.windows_or
  2415. tap_action:
  2416. action: none
  2417. hold_action:
  2418. action: none
  2419. double_tap_action:
  2420. action: more-info
  2421. icon: |
  2422. {% if is_state(entity, 'on') %}
  2423. mdi:window-open
  2424. {% else %}
  2425. mdi:window-closed
  2426. {% endif %}
  2427. card_mod:
  2428. style: |
  2429. ha-card {
  2430. --chip-background: {% if is_state('binary_sensor.windows_or', 'on') %} #FFC067 {% else %} #353535 {% endif %};
  2431. --color: {% if is_state('binary_sensor.windows_or', 'on') %} #433752 {% else %} #DBDBDB {% endif %};
  2432. justify-content: center;
  2433. height: 35px !important;
  2434. width: 35px !important;
  2435. border: 0 !important;
  2436. box-shadow: none !important;
  2437. border-radius: 22px !important;
  2438. }
  2439. ha-card:after {
  2440. content: "{{ '' if (expand(states.binary_sensor.windows_or) | selectattr('state', 'eq', 'on') | list | count) == 0 else expand(states.binary_sensor.windows_or) | selectattr('state', 'eq', 'on') | list | count }}";
  2441. position: absolute;
  2442. top: -10%;
  2443. right: -10%;
  2444. display: {% if is_state('binary_sensor.windows_or', 'on') %} flex {% else %} none {% endif %};
  2445. justify-content: center;
  2446. align-items: center;
  2447. width: 14px;
  2448. height: 14px;
  2449. font-size: 9px;
  2450. font-weight: 700;
  2451. border-radius: 50%;
  2452. background: {% if is_state('binary_sensor.windows_or', 'on') %} orange {% else %} {% endif %};
  2453. color: var(--card-background-color);
  2454. }
  2455. card_mod:
  2456. style: |
  2457. .chip-container {
  2458. flex-flow: column wrap-reverse !important;
  2459. display: flex !important;
  2460. --chip-spacing: 8px;
  2461. margin: 12px;
  2462. }
  2463. .: |
  2464. .container {
  2465. align: end;
  2466. }
  2467. card_mod:
  2468. style: |
  2469. ha-card {
  2470. background:
  2471. {% set temp = states('sensor.office_room_temperature') | float %}
  2472. {% if temp < 16 %}
  2473. #CEB2F5
  2474. {% elif temp < 18 %}
  2475. #a3d9f5
  2476. {% elif temp < 22 %}
  2477. #cde3db
  2478. {% elif temp < 24 %}
  2479. #fbd9a0
  2480. {% elif temp < 27 %}
  2481. #f4a8a3
  2482. {% else %}
  2483. #FC6C6C
  2484. {% endif %};
  2485. max-width: 100%;
  2486. min-width: 50%;
  2487. height: 186px;
  2488. }
  2489. grid_options:
  2490. columns: 6
  2491. rows: 3
  2492. - type: horizontal-stack
  2493. cards:
  2494. - type: custom:mushroom-climate-card
  2495. entity: climate.office_room
  2496. primary_info: none
  2497. secondary_info: none
  2498. icon_type: none
  2499. show_temperature_control: true
  2500. card_mod:
  2501. style: |
  2502. ha-card {
  2503. max-width: 50%;
  2504. height: 186px;
  2505. }
  2506. - type: grid
  2507. cards:
  2508. - type: custom:mod-card
  2509. card_mod:
  2510. style: |
  2511.  
  2512. @media (min-width:180px) {
  2513. ha-card {
  2514. z-index:6;
  2515. position: fixed;
  2516. background: #eeedf5;
  2517. bottom: 5px;
  2518. left: 10px;
  2519. padding: 0px;
  2520. border-radius: 100px;
  2521. width: calc(100% - 20px);
  2522. }
  2523. }
  2524.  
  2525. @media (min-width:801px) {
  2526. ha-card {
  2527. left: calc(20% + 43px);
  2528. width: calc(60% - 30px);
  2529. }
  2530. }
  2531. card:
  2532. type: grid
  2533. square: false
  2534. columns: 3
  2535. cards:
  2536. - type: custom:button-card
  2537. icon: mdi:home
  2538. name: Overview
  2539. show_label: false
  2540. show_state: false
  2541. show_name: true
  2542. tap_action:
  2543. action: navigate
  2544. navigation_path: /mobile-light/overview
  2545. styles:
  2546. icon:
  2547. - width: 24px
  2548. - color: '#3b3b3b'
  2549. name:
  2550. - font-size: 13px
  2551. img_cell:
  2552. - width: 50px
  2553. - height: 40px
  2554. card:
  2555. - background: none
  2556. - padding: 0
  2557. - type: custom:button-card
  2558. icon: mdi:home-roof
  2559. name: Room
  2560. show_label: false
  2561. show_state: false
  2562. show_name: true
  2563. tap_action:
  2564. action: navigate
  2565. navigation_path: /mobile-light/room
  2566. styles:
  2567. icon:
  2568. - width: 24px
  2569. - color: '#3b3b3b'
  2570. name:
  2571. - font-size: 13px
  2572. img_cell:
  2573. - width: 50px
  2574. - height: 40px
  2575. card:
  2576. - background: none
  2577. - padding: 0
  2578. - type: custom:button-card
  2579. icon: mdi:cctv
  2580. name: Camera
  2581. show_label: false
  2582. show_state: false
  2583. show_name: true
  2584. tap_action:
  2585. action: navigate
  2586. navigation_path: /mobile-light/camera
  2587. styles:
  2588. icon:
  2589. - width: 24px
  2590. - color: '#3b3b3b'
  2591. name:
  2592. - font-size: 13px
  2593. img_cell:
  2594. - width: 50px
  2595. - height: 40px
  2596. card:
  2597. - background: none
  2598. - padding: 0
  2599. icon: mdi:home-roof
  2600. cards: []
  2601. - type: sections
  2602. max_columns: 4
  2603. path: camera
  2604. sections:
  2605. - type: grid
  2606. cards:
  2607. - type: custom:mushroom-chips-card
  2608. alignment: start
  2609. chips:
  2610. - type: template
  2611. tap_action:
  2612. action: navigate
  2613. navigation_path: /mobile-light/overview
  2614. icon: mdi:arrow-left
  2615. hold_action:
  2616. action: none
  2617. double_tap_action:
  2618. action: none
  2619. - type: custom:mushroom-title-card
  2620. title: Driveaway
  2621. - type: custom:webrtc-camera
  2622. entity: camera.left_driveway_camera_clear
  2623. mode: webrtc
  2624. muted: true
  2625. - type: custom:vertical-stack-in-card
  2626. cards:
  2627. - type: custom:mushroom-chips-card
  2628. chips:
  2629. - type: template
  2630. entity: light.left_driveway_camera_floodlight
  2631. icon: mdi:light-flood-down
  2632. icon_color: |-
  2633. {% if is_state(entity, 'on') %}
  2634. #c2b280
  2635. {% else %}
  2636. grey
  2637. {% endif %}
  2638. tap_action:
  2639. action: toggle
  2640. content: Floodlight
  2641. - type: template
  2642. entity: switch.left_driveway_camera_siren_on_event
  2643. icon: mdi:alarm-light
  2644. icon_color: ''
  2645. tap_action:
  2646. action: perform-action
  2647. perform_action: siren.turn_on
  2648. target:
  2649. entity_id:
  2650. - siren.left_driveway_camera_siren
  2651. content: Siren
  2652. alignment: start
  2653. card_mod:
  2654. style: |
  2655. ha-card {
  2656. background: transparent !important;
  2657. box-shadow: none !important;
  2658. }
  2659. .chip-container {
  2660. background: transparent !important;
  2661. }
  2662. card_mod:
  2663. style: |
  2664. ha-card {
  2665. background: transparent !important;
  2666. box-shadow: none !important;
  2667. }
  2668. - type: grid
  2669. cards:
  2670. - type: custom:mushroom-title-card
  2671. title: Right Walkway
  2672. - type: custom:webrtc-camera
  2673. entity: camera.right_walkway_camera_clear
  2674. mode: webrtc
  2675. muted: true
  2676. - type: custom:vertical-stack-in-card
  2677. cards:
  2678. - type: custom:mushroom-chips-card
  2679. chips:
  2680. - type: template
  2681. entity: light.right_walkway_camera_floodlight
  2682. icon: mdi:light-flood-down
  2683. icon_color: |-
  2684. {% if is_state(entity, 'on') %}
  2685. #c2b280
  2686. {% else %}
  2687. grey
  2688. {% endif %}
  2689. tap_action:
  2690. action: toggle
  2691. content: Floodlight
  2692. - type: template
  2693. entity: switch.right_walkway_camera_siren_on_event
  2694. icon: mdi:alarm-light
  2695. icon_color: ''
  2696. tap_action:
  2697. action: perform-action
  2698. perform_action: siren.toggle
  2699. target:
  2700. entity_id:
  2701. - siren.right_walkway_camera_siren
  2702. content: Siren
  2703. alignment: start
  2704. card_mod:
  2705. style: |
  2706. ha-card {
  2707. background: transparent !important;
  2708. box-shadow: none !important;
  2709. }
  2710. .chip-container {
  2711. background: transparent !important;
  2712. }
  2713. card_mod:
  2714. style: |
  2715. ha-card {
  2716. background: transparent !important;
  2717. box-shadow: none !important;
  2718. }
  2719. - type: grid
  2720. cards:
  2721. - type: custom:mushroom-title-card
  2722. title: Left Walkway
  2723. - type: custom:webrtc-camera
  2724. entity: camera.left_walkway_camera_clear
  2725. mode: webrtc
  2726. muted: true
  2727. - type: custom:vertical-stack-in-card
  2728. cards:
  2729. - type: custom:mushroom-chips-card
  2730. chips:
  2731. - type: template
  2732. entity: light.left_walkway_camera_floodlight
  2733. icon: mdi:light-flood-down
  2734. icon_color: |-
  2735. {% if is_state(entity, 'on') %}
  2736. #c2b280
  2737. {% else %}
  2738. grey
  2739. {% endif %}
  2740. tap_action:
  2741. action: toggle
  2742. content: Floodlight
  2743. - type: template
  2744. entity: switch.left_walkway_camera_siren_on_event
  2745. icon: mdi:alarm-light
  2746. icon_color: ''
  2747. tap_action:
  2748. action: perform-action
  2749. perform_action: siren.toggle
  2750. target:
  2751. entity_id:
  2752. - siren.left_walkway_camera_siren
  2753. content: Siren
  2754. alignment: start
  2755. card_mod:
  2756. style: |
  2757. ha-card {
  2758. background: transparent !important;
  2759. box-shadow: none !important;
  2760. }
  2761. .chip-container {
  2762. background: transparent !important;
  2763. }
  2764. card_mod:
  2765. style: |
  2766. ha-card {
  2767. background: transparent !important;
  2768. box-shadow: none !important;
  2769. }
  2770. - type: grid
  2771. cards:
  2772. - type: custom:mushroom-title-card
  2773. title: Garage
  2774. - type: custom:webrtc-camera
  2775. entity: camera.garage_camera_clear
  2776. mode: webrtc
  2777. muted: true
  2778. - type: custom:mushroom-chips-card
  2779. chips:
  2780. - type: entity
  2781. entity: button.garage_camera_ptz_left
  2782. content_info: name
  2783. tap_action:
  2784. action: toggle
  2785. hold_action:
  2786. action: none
  2787. double_tap_action:
  2788. action: none
  2789. icon: mdi:arrow-left
  2790. name: Pan Left
  2791. - type: entity
  2792. entity: button.garage_camera_ptz_stop
  2793. tap_action:
  2794. action: toggle
  2795. hold_action:
  2796. action: none
  2797. double_tap_action:
  2798. action: none
  2799. icon: mdi:stop
  2800. content_info: none
  2801. - type: entity
  2802. entity: button.garage_camera_ptz_right
  2803. icon: mdi:arrow-right
  2804. name: Pan Right
  2805. content_info: name
  2806. tap_action:
  2807. action: toggle
  2808. hold_action:
  2809. action: none
  2810. double_tap_action:
  2811. action: none
  2812. - type: grid
  2813. cards:
  2814. - type: custom:mushroom-title-card
  2815. title: Backyard
  2816. - type: custom:webrtc-camera
  2817. entity: camera.right_backyard_camera_clear
  2818. mode: webrtc
  2819. muted: true
  2820. - type: custom:vertical-stack-in-card
  2821. cards:
  2822. - type: custom:mushroom-chips-card
  2823. chips:
  2824. - type: template
  2825. entity: light.right_backyard_camera_floodlight
  2826. icon: mdi:light-flood-down
  2827. icon_color: |-
  2828. {% if is_state(entity, 'on') %}
  2829. #c2b280
  2830. {% else %}
  2831. grey
  2832. {% endif %}
  2833. tap_action:
  2834. action: toggle
  2835. content: Floodlight
  2836. - type: template
  2837. entity: switch.right_backyard_camera_siren_on_event
  2838. icon: mdi:alarm-light
  2839. icon_color: ''
  2840. tap_action:
  2841. action: perform-action
  2842. perform_action: siren.toggle
  2843. target:
  2844. entity_id:
  2845. - siren.right_backyard_camera_siren
  2846. content: Siren
  2847. alignment: start
  2848. card_mod:
  2849. style: |
  2850. ha-card {
  2851. background: transparent !important;
  2852. box-shadow: none !important;
  2853. }
  2854. .chip-container {
  2855. background: transparent !important;
  2856. }
  2857. card_mod:
  2858. style: |
  2859. ha-card {
  2860. background: transparent !important;
  2861. box-shadow: none !important;
  2862. }
  2863. - type: grid
  2864. cards:
  2865. - type: custom:mod-card
  2866. card_mod:
  2867. style: |
  2868.  
  2869. @media (min-width:180px) {
  2870. ha-card {
  2871. z-index:6;
  2872. position: fixed;
  2873. background: #eeedf5;
  2874. bottom: 5px;
  2875. left: 10px;
  2876. padding: 0px;
  2877. border-radius: 100px;
  2878. width: calc(100% - 20px);
  2879. }
  2880. }
  2881.  
  2882. @media (min-width:801px) {
  2883. ha-card {
  2884. left: calc(20% + 43px);
  2885. width: calc(60% - 30px);
  2886. }
  2887. }
  2888. card:
  2889. type: grid
  2890. square: false
  2891. columns: 3
  2892. cards:
  2893. - type: custom:button-card
  2894. icon: mdi:home
  2895. name: Overview
  2896. show_label: false
  2897. show_state: false
  2898. show_name: true
  2899. tap_action:
  2900. action: navigate
  2901. navigation_path: /mobile-light/overview
  2902. styles:
  2903. icon:
  2904. - width: 24px
  2905. - color: '#3b3b3b'
  2906. name:
  2907. - font-size: 13px
  2908. img_cell:
  2909. - width: 50px
  2910. - height: 40px
  2911. card:
  2912. - background: none
  2913. - padding: 0
  2914. - type: custom:button-card
  2915. icon: mdi:home-roof
  2916. name: Room
  2917. show_label: false
  2918. show_state: false
  2919. show_name: true
  2920. tap_action:
  2921. action: navigate
  2922. navigation_path: /mobile-light/room
  2923. styles:
  2924. icon:
  2925. - width: 24px
  2926. - color: '#3b3b3b'
  2927. name:
  2928. - font-size: 13px
  2929. img_cell:
  2930. - width: 50px
  2931. - height: 40px
  2932. card:
  2933. - background: none
  2934. - padding: 0
  2935. - type: custom:button-card
  2936. icon: mdi:cctv
  2937. name: Camera
  2938. show_label: false
  2939. show_state: false
  2940. show_name: true
  2941. tap_action:
  2942. action: navigate
  2943. navigation_path: /mobile-light/camera
  2944. styles:
  2945. icon:
  2946. - width: 24px
  2947. - color: '#3b3b3b'
  2948. name:
  2949. - font-size: 13px
  2950. img_cell:
  2951. - width: 50px
  2952. - height: 40px
  2953. card:
  2954. - background: none
  2955. - padding: 0
  2956. icon: mdi:cctv
  2957. cards: []
  2958. subview: false
  2959. title: Camera
  2960. - type: sections
  2961. max_columns: 4
  2962. title: Media
  2963. path: media
  2964. icon: mdi:music
  2965. sections:
  2966. - type: grid
  2967. cards:
  2968. - type: custom:mushroom-chips-card
  2969. alignment: start
  2970. chips:
  2971. - type: template
  2972. tap_action:
  2973. action: navigate
  2974. navigation_path: /mobile-light/overview
  2975. icon: mdi:arrow-left
  2976. hold_action:
  2977. action: none
  2978. double_tap_action:
  2979. action: none
  2980. - type: custom:mushroom-title-card
  2981. title: Media
  2982. - type: custom:stack-in-card
  2983. cards:
  2984. - type: custom:mushroom-media-player-card
  2985. entity: media_player.spotify_reynaldi_sutrisno
  2986. icon: mdi:play
  2987. use_media_info: true
  2988. use_media_artwork: false
  2989. show_volume_level: false
  2990. media_controls:
  2991. - play_pause_stop
  2992. - previous
  2993. - next
  2994. volume_controls:
  2995. - volume_buttons
  2996. - volume_set
  2997. fill_container: false
  2998. card_mod:
  2999. style:
  3000. mushroom-media-player-volume-control$: |
  3001. mushroom-slider {
  3002. --main-color: #cccccc !important;
  3003. --bg-color: rgb(var(--album-art-color)) !important;
  3004. }
  3005. .: |
  3006. mushroom-shape-icon {
  3007. display: flex;
  3008. {% set media_type = state_attr(config.entity, 'media_content_type') %}
  3009. {% if media_type == 'tvshow' %}
  3010. --card-mod-icon: mdi:television-classic;
  3011. animation: flicker 1s linear infinite alternate;
  3012. {% elif media_type == 'movie' %}
  3013. --card-mod-icon: mdi:movie-roll;
  3014. animation: spin 2s linear infinite reverse;
  3015. {% elif media_type == 'music' %}
  3016. --card-mod-icon: mdi:music;
  3017. animation: beat 1.3s ease-out infinite both;
  3018. {% elif media_type == 'playlist' %}
  3019. --card-mod-icon: mdi:music;
  3020. animation: beat 1.3s ease-out infinite both;
  3021. {% else %}
  3022. --card-mod-icon: mdi:play;
  3023. {% endif %}
  3024.  
  3025. {{ 'animation: none;' if not is_state(config.entity, 'playing') }}
  3026.  
  3027. }
  3028. mushroom-media-player-volume-control$: |
  3029. mushroom-slider {
  3030. --main-color: black !important;
  3031. --bg-color: #d1eced !important;
  3032. }
  3033. @keyframes flicker {
  3034. 0%, 31.98%, 32.98%, 34.98%, 36.98%, 39.98%, 67.98%, 68.98%, 95.98%, 96.98%, 97.98%, 98.98%, 100% { --icon-color: rgba(var(--album-art-color), 1); }
  3035. 32%, 33%, 35%, 36%, 37%, 40%, 68%, 69%, 96%, 97%, 98%, 99% { --icon-color: rgba(var(--album-art-color), 0.6); }
  3036. }
  3037. @keyframes beat {
  3038. 0%, 60% { --icon-symbol-size: 21px; }
  3039. 5%, 17%, 57% { --icon-symbol-size: 22px; }
  3040. 10%, 20%, 51% { --icon-symbol-size: 23px; }
  3041. 25%, 45% { --icon-symbol-size: 24px; }
  3042. 30%, 39% { --icon-symbol-size: 25px; }
  3043. 33% { --icon-symbol-size: 26px; }
  3044. }
  3045. ha-card {
  3046. --ha-card-border-width: 0;
  3047. --rgb-state-media-player: var(--album-art-color);
  3048. }
  3049. .actions {
  3050. --rgb-primary-text-color: var(--album-art-color);
  3051. --primary-text-color: rgb(var(--album-art-color));
  3052. }
  3053. ha-card:before {
  3054. transform: translate3d(0,0,0);
  3055. -webkit-transform: translate3d(0,0,0);
  3056. content: "";
  3057.  
  3058. background: url('/local/idle_art.png') center no-repeat;
  3059. {% if not is_state(config.entity, 'idle') and not is_state(config.entity, 'off') %}
  3060. background: url( '{{ state_attr(config.entity, "entity_picture") }}') center no-repeat;
  3061. {% endif %}
  3062.  
  3063. background-size: contain;
  3064. margin: 4px 4px 16px;
  3065. filter: drop-shadow(4px 4px 6px rgba(0, 0, 0, 0.5));
  3066. border-radius: var(--control-border-radius);
  3067.  
  3068. {% set media_type = state_attr(config.entity, 'media_content_type') %}
  3069. {% if media_type == 'tvshow' %}
  3070. aspect-ratio: 16 / 9;
  3071. {% elif media_type == 'movie' %}
  3072. aspect-ratio: 2 / 3;
  3073. background-size: 100% 100%;
  3074. {% else %}
  3075. aspect-ratio: 1 / 1;
  3076. {% endif %}
  3077. }
  3078. .actions {
  3079. display: block !important;
  3080. }
  3081. mushroom-button {
  3082. display: flex;
  3083. width: calc((100% / 3) - (var(--spacing) / 3) * 2);
  3084. margin: auto;
  3085. }
  3086. mushroom-media-player-media-control,
  3087. mushroom-media-player-volume-control {
  3088. display: flex;
  3089. margin-right: 0px !important;
  3090. margin-bottom: var(--spacing) !important;
  3091. }
  3092. - type: conditional
  3093. conditions:
  3094. - entity: media_player.spotify_reynaldi_sutrisno
  3095. state_not: 'off'
  3096. - entity: media_player.spotify_reynaldi_sutrisno
  3097. state_not: idle
  3098. card:
  3099. entity: media_player.spotify_reynaldi_sutrisno
  3100. hide:
  3101. icon: true
  3102. name: true
  3103. runtime: true
  3104. source: true
  3105. power: true
  3106. state_label: true
  3107. volume: true
  3108. info: true
  3109. progress: false
  3110. controls: true
  3111. more_info: false
  3112. type: custom:mini-media-player
  3113. toggle_power: false
  3114. group: true
  3115. card_mod:
  3116. style:
  3117. mmp-progress$: |
  3118. paper-progress {
  3119.  
  3120. /* Hide the progress bar when not playing or paused */
  3121. {{ 'display: none;' if not is_state(config.entity, ['playing', 'paused']) }}
  3122.  
  3123. /* Apply album art color to progress bar when paused */
  3124. --paper-progress-container-color: rgba(var(--album-art-color), 0.2) !important;
  3125.  
  3126. /* Apply album art color to progress bar when playing */
  3127. --paper-progress-active-color: rgb(var(--album-art-color)) !important;
  3128. }
  3129. .: |
  3130. ha-card {
  3131.  
  3132. /* Move progress bar up into gap */
  3133. bottom: calc(3 * var(--mush-spacing, 12px) + var(--mush-control-height, -25px));
  3134.  
  3135. /* Correct margins for progress bar */
  3136. margin: 0px calc(1.618 * var(--mush-spacing, 12px)) calc(-1 * var(--mush-spacing, 12px));
  3137.  
  3138. /* Set height of card to match pregress bar height */
  3139. height: var(--mmp-progress-height);
  3140.  
  3141. /* Remove border outline */
  3142. --ha-card-border-width: 0;
  3143.  
  3144. /* Round corners of progress bar */
  3145. --mmp-border-radius: var(--control-border-radius, 12px) !important;
  3146.  
  3147. /* Set height of progress bar */
  3148. --mmp-progress-height: var(--mush-spacing, 12px) !important;
  3149.  
  3150. /* Remove transitions to prevent progress bar floating in */
  3151. transition: all 0s;
  3152. }
  3153. card_mod:
  3154. style: |
  3155. ha-card:before {
  3156. transform: translate3d(0,0,0);
  3157. -webkit-transform: translate3d(0,0,0);
  3158. content: "";
  3159. position: absolute;
  3160. height: 100%;
  3161. width: 100%;
  3162.  
  3163. background: url('/local/idle_art.png') center no-repeat;
  3164. {% if not is_state('media_player.spotify_reynaldi_sutrisno', 'idle') and not is_state('media_player.spotify_reynaldi_sutrisno', 'off') %}
  3165. background: url( '{{ state_attr('media_player.spotify_reynaldi_sutrisno', "entity_picture") }}' ) center no-repeat;
  3166. {% endif %}
  3167.  
  3168. filter: blur(150px) saturate(200%) opacity(60%);
  3169. background-size: 100% 100%;
  3170. }
  3171. ha-card {
  3172. transform: translate3d(0,0,0);
  3173. -webkit-transform: translate3d(0,0,0);
  3174. }
  3175. :host {
  3176. --album-art-color:
  3177. {% if not is_state('media_player.spotify_reynaldi_sutrisno', 'idle') and not is_state('media_player.spotify_reynaldi_sutrisno', 'off') %}
  3178. {{ states('sensor.muted_color') }}
  3179. {% else %}
  3180. var(--rgb-indigo-color)
  3181. {% endif %};
  3182. }
  3183. visibility:
  3184. - condition: state
  3185. entity: media_player.spotify_reynaldi_sutrisno
  3186. state: playing
  3187. cards: []
  3188. subview: true
  3189. - type: sections
  3190. max_columns: 4
  3191. path: entities-on
  3192. sections:
  3193. - type: grid
  3194. cards:
  3195. - type: custom:mushroom-chips-card
  3196. alignment: start
  3197. chips:
  3198. - type: template
  3199. tap_action:
  3200. action: navigate
  3201. navigation_path: /mobile-light/overview
  3202. icon: mdi:arrow-left
  3203. hold_action:
  3204. action: none
  3205. double_tap_action:
  3206. action: none
  3207. - type: custom:mushroom-title-card
  3208. title: |-
  3209. {% set open_doors = expand(states.binary_sensor.all_doors)
  3210. | selectattr('state', 'eq', 'on')
  3211. | list | count %}
  3212. {{ 'Door Open' if open_doors == 1 else 'Doors Open' }}
  3213. - type: custom:mushroom-chips-card
  3214. chips:
  3215. - type: conditional
  3216. conditions:
  3217. - condition: state
  3218. entity: binary_sensor.all_doors
  3219. state: 'on'
  3220. chip:
  3221. type: template
  3222. content: |
  3223. {{ expand(states.binary_sensor.all_doors)
  3224. | selectattr('state', 'eq', 'on')
  3225. | map(attribute='name')
  3226. | join(', ') }}
  3227. icon: |-
  3228. {% set open_doors = expand(states.binary_sensor.all_doors)
  3229. | selectattr('state', 'eq', 'on')
  3230. | list | count %}
  3231. {{ 'mdi:door-sliding-open' if open_doors > 0 else '' }}
  3232. icon_color: red
  3233. - type: custom:auto-entities
  3234. card:
  3235. square: false
  3236. type: grid
  3237. columns: 2
  3238. title: Lights
  3239. card_param: cards
  3240. filter:
  3241. include:
  3242. - group: light.all_lights
  3243. state: 'on'
  3244. options:
  3245. type: custom:mushroom-light-card
  3246. use_light_color: true
  3247. show_brightness_control: true
  3248. show_color_control: true
  3249. layout: vertical
  3250. card_mod:
  3251. style:
  3252. mushroom-shape-icon$: |
  3253. .shape {
  3254. {% if states(config.entity) == 'on' and state_attr(config.entity, 'brightness') != none %}
  3255. {% if state_attr(config.entity,'rgb_color') != none %}
  3256. background: linear-gradient(0deg, rgba{{(state_attr(config.entity,'rgb_color')[0] * 0.85, state_attr(config.entity,'rgb_color')[1] * 0.85, state_attr(config.entity,'rgb_color')[2] * 0.85) + (0.3,)}} calc( {{state_attr(config.entity,'brightness') | float / 2.55}}%), rgba{{(state_attr(config.entity,'rgb_color')[0] * 0.85, state_attr(config.entity,'rgb_color')[1] * 0.85, state_attr(config.entity,'rgb_color')[2] * 0.85) + (0.12,)}} 0.1%) !important;
  3257. {% else %}
  3258. background: linear-gradient(0deg, rgba(255, 152, 0, 0.3) {{state_attr(config.entity,'brightness') | float / 2.55}}%, rgba(255, 152, 0, 0.12) 0.1%) !important;
  3259. {% endif %}
  3260. {% endif %}
  3261. }
  3262. exclude: []
  3263. show_empty: false
  3264. sort:
  3265. method: entity_id
  3266. - type: custom:auto-entities
  3267. card:
  3268. square: false
  3269. type: grid
  3270. columns: 2
  3271. title: Switches
  3272. card_param: cards
  3273. filter:
  3274. include:
  3275. - group: switch.all_light_switches
  3276. state: 'on'
  3277. options:
  3278. type: custom:button-card
  3279. layout: vertical
  3280. styles:
  3281. grid:
  3282. - grid-template-columns: 64px 1fr
  3283. - grid-template-areas: '" i n "'
  3284. card:
  3285. - background: null
  3286. - height: 75px
  3287. img_cell:
  3288. - width: 22px
  3289. icon:
  3290. - width: 22px
  3291. - color: '#000000'
  3292. name:
  3293. - justify-self: start
  3294. - font-size: 14px
  3295. - font-weight: 400
  3296. - color: '#000000'
  3297. state:
  3298. - value: 'on'
  3299. styles:
  3300. card:
  3301. - background: '#ffec8e'
  3302. exclude: []
  3303. show_empty: false
  3304. sort:
  3305. method: entity_id
  3306. - type: custom:auto-entities
  3307. card:
  3308. square: false
  3309. type: grid
  3310. columns: 2
  3311. title: Fans
  3312. card_param: cards
  3313. filter:
  3314. include:
  3315. - group: fan.all_fans
  3316. state: 'on'
  3317. options:
  3318. type: custom:mushroom-light-card
  3319. layout: vertical
  3320. tap_action:
  3321. action: toggle
  3322. secondary_info: state
  3323. card_mod:
  3324. style:
  3325. mushroom-shape-icon$: |
  3326. .shape {
  3327. --shape-animation: spin 1s linear infinite;
  3328. --shape-color: #b5e0f7;
  3329. }
  3330. .: |
  3331. ha-card {
  3332. height: 113px !important;
  3333. }
  3334. ha-state-icon {
  3335. color: #6082B6;
  3336. }
  3337. exclude: []
  3338. show_empty: false
  3339. sort:
  3340. method: friendly_name
  3341. - type: custom:auto-entities
  3342. card:
  3343. square: false
  3344. type: grid
  3345. columns: 2
  3346. title: Water
  3347. card_param: cards
  3348. filter:
  3349. include:
  3350. - group: switch.all_water_taps
  3351. state: 'on'
  3352. options:
  3353. type: custom:mushroom-entity-card
  3354. icon: mdi:water
  3355. layout: vertical
  3356. tap_action:
  3357. action: toggle
  3358. secondary_info: state
  3359. card_mod:
  3360. style:
  3361. mushroom-shape-icon$: |
  3362. .shape {
  3363. --shape-color: #b5e0f7;
  3364. }
  3365. .: |
  3366. ha-card {
  3367. height: 113px !important;
  3368. }
  3369. ha-state-icon {
  3370. color: #6082B6;
  3371. }
  3372. exclude: []
  3373. show_empty: false
  3374. sort:
  3375. method: friendly_name
  3376. icon: ''
  3377. cards: []
  3378. subview: true
  3379. title: Entities On
  3380. - type: sections
  3381. max_columns: 4
  3382. subview: true
  3383. path: garage-room-details
  3384. title: Garage Room Details
  3385. sections:
  3386. - type: grid
  3387. cards:
  3388. - type: custom:vertical-stack-in-card
  3389. cards:
  3390. - square: false
  3391. type: grid
  3392. cards:
  3393. - type: custom:mushroom-template-card
  3394. entity: sensor.garage_temperature
  3395. primary: |
  3396. {{ states(entity) | round(1) }}°C
  3397. secondary: |
  3398. {{ state_attr(entity,'friendly_name') }}
  3399. icon: mdi:thermometer
  3400. icon_color: >
  3401. {% set temp = states('sensor.garage_temperature') | float
  3402. %}
  3403.  
  3404. {% if temp < 16 %} #CEB2F5
  3405.  
  3406. {% elif temp < 18 %} #5EBDEE
  3407.  
  3408. {% elif temp < 22 %} #9cc8b8
  3409.  
  3410. {% elif temp < 24 %} #e7b562
  3411.  
  3412. {% elif temp < 27 %} #FF564B
  3413.  
  3414. {% else %} #99332d
  3415.  
  3416. {% endif %}
  3417. tap_action:
  3418. action: navigate
  3419. navigation_path: /mobile-light/room
  3420. columns: 1
  3421. - type: custom:config-template-card
  3422. entities:
  3423. - sensor.garage_temperature
  3424. variables:
  3425. - states['sensor.garage_temperature'].state
  3426. card:
  3427. type: custom:mini-graph-card
  3428. entities:
  3429. - entity: sensor.garage_temperature
  3430. name: House Average Temperature
  3431. color: |-
  3432. ${vars[0] < 16 ? '#CEB2F5' :
  3433. (vars[0] < 18 ? '#5EBDEE' :
  3434. (vars[0] < 22 ? '#9cc8b8' :
  3435. (vars[0] < 24 ? '#e7b562' :
  3436. (vars[0] < 27 ? '#FF564B' : '#99332d'))))}
  3437. hours_to_show: 24
  3438. line_width: 3
  3439. font_size: 50
  3440. animate: true
  3441. height: 50
  3442. show:
  3443. name: false
  3444. icon: false
  3445. state: false
  3446. legend: false
  3447. fill: fade
  3448. - type: custom:mushroom-title-card
  3449. title: Lights
  3450. - type: custom:button-card
  3451. entity: switch.light_switch_grg
  3452. icon: mdi:light-recessed
  3453. name: Room Light
  3454. tap_action:
  3455. action: toggle
  3456. styles:
  3457. grid:
  3458. - grid-template-columns: 64px 1fr
  3459. - grid-template-areas: '" i n "'
  3460. card:
  3461. - background: null
  3462. - height: 75px
  3463. img_cell:
  3464. - width: 22px
  3465. icon:
  3466. - width: 22px
  3467. - color: '#000000'
  3468. name:
  3469. - justify-self: start
  3470. - font-size: 14px
  3471. - font-weight: 400
  3472. - color: '#000000'
  3473. state:
  3474. - value: 'on'
  3475. styles:
  3476. card:
  3477. - background: '#ffec8e'
  3478. - type: horizontal-stack
  3479. cards:
  3480. - type: custom:button-card
  3481. entity: switch.light_switch_atc
  3482. icon: mdi:home-floor-2
  3483. name: Attic
  3484. tap_action:
  3485. action: toggle
  3486. styles:
  3487. grid:
  3488. - grid-template-columns: 64px 1fr
  3489. - grid-template-areas: '" i n "'
  3490. card:
  3491. - background: null
  3492. - height: 75px
  3493. img_cell:
  3494. - width: 22px
  3495. icon:
  3496. - width: 22px
  3497. - color: '#000000'
  3498. name:
  3499. - justify-self: start
  3500. - font-size: 14px
  3501. - font-weight: 400
  3502. - color: '#000000'
  3503. state:
  3504. - value: 'on'
  3505. styles:
  3506. card:
  3507. - background: '#ffec8e'
  3508. - type: custom:button-card
  3509. entity: switch.rear_light_switch_grg
  3510. icon: mdi:outdoor-lamp
  3511. name: Rear Light
  3512. tap_action:
  3513. action: toggle
  3514. styles:
  3515. grid:
  3516. - grid-template-columns: 64px 1fr
  3517. - grid-template-areas: '" i n "'
  3518. card:
  3519. - background: null
  3520. - height: 75px
  3521. img_cell:
  3522. - width: 22px
  3523. icon:
  3524. - width: 22px
  3525. - color: '#000000'
  3526. name:
  3527. - justify-self: start
  3528. - font-size: 14px
  3529. - font-weight: 400
  3530. - color: '#000000'
  3531. state:
  3532. - value: 'on'
  3533. styles:
  3534. card:
  3535. - background: '#ffec8e'
  3536. - type: custom:mushroom-title-card
  3537. title: |-
  3538. {% set windows_open = expand(states.binary_sensor.windows_grg)
  3539. | selectattr('state', 'eq', 'on')
  3540. | list | count %}
  3541. {% set doors_open = expand(states.binary_sensor.doors_grg)
  3542. | selectattr('state', 'eq', 'on')
  3543. | list | count %}
  3544.  
  3545. {% if windows_open > 0 and doors_open > 0 %}
  3546. {{ 'Open Windows and Doors' if windows_open > 1 and doors_open > 1 else
  3547. 'Open Window and Doors' if windows_open == 1 and doors_open > 1 else
  3548. 'Open Windows and Door' if windows_open > 1 and doors_open == 1 else
  3549. 'Open Window and Door' }}
  3550. {% elif windows_open > 0 %}
  3551. {{ 'Open Windows' if windows_open > 1 else 'Open Window' }}
  3552. {% elif doors_open > 0 %}
  3553. {{ 'Open Doors' if doors_open > 1 else 'Open Door' }}
  3554. {% else %}
  3555.  
  3556. {% endif %}
  3557. - type: custom:mushroom-chips-card
  3558. chips:
  3559. - type: conditional
  3560. conditions:
  3561. - condition: state
  3562. entity: binary_sensor.doors_grg
  3563. state: 'on'
  3564. chip:
  3565. type: template
  3566. content: |
  3567. {{ expand(states.binary_sensor.doors_grg)
  3568. | selectattr('state', 'eq', 'on')
  3569. | map(attribute='name')
  3570. | join(', ') }}
  3571. icon: |-
  3572. {% set open_doors = expand(states.binary_sensor.doors_grg)
  3573. | selectattr('state', 'eq', 'on')
  3574. | list | count %}
  3575. {{ 'mdi:door-open' if open_doors > 0 else '' }}
  3576. icon_color: red
  3577. - type: conditional
  3578. conditions:
  3579. - condition: state
  3580. entity: binary_sensor.windows_grg
  3581. state: 'on'
  3582. chip:
  3583. type: template
  3584. content: |
  3585. {{ expand(states.binary_sensor.windows_grg)
  3586. | selectattr('state', 'eq', 'on')
  3587. | map(attribute='name')
  3588. | join(', ') }}
  3589. icon: mdi:window-open
  3590. icon_color: orange
  3591. icon: mdi:garage-variant
  3592. cards: []
  3593. header:
  3594. card:
  3595. type: markdown
  3596. text_only: true
  3597. content: >-
  3598. # Garage
  3599.  
  3600. {% set time = now().hour %}
  3601.  
  3602.  
  3603. {% if time < 19 %}
  3604.  
  3605. **Here is how it feels like today:**
  3606.  
  3607. 🌡️ 🔺High of {{ states('sensor.home_realfeel_temperature_max_day_0')
  3608. }}°C, 🔻Low of {{ states('sensor.home_realfeel_temperature_min_day_0')
  3609. }}°C.
  3610.  
  3611. {% else %}
  3612.  
  3613. **Here is how it feels like tomorrow:**
  3614.  
  3615. 🌡️ 🔺High of {{ states('sensor.home_realfeel_temperature_max_day_1')
  3616. }}°C, 🔻Low of {{ states('sensor.home_realfeel_temperature_min_day_1')
  3617. }}°C.
  3618.  
  3619. {% endif %}
  3620. layout: responsive
  3621. badges_position: top
  3622. badges:
  3623. - type: custom:mushroom-chips-card
  3624. alignment: start
  3625. chips:
  3626. - type: template
  3627. tap_action:
  3628. action: navigate
  3629. navigation_path: /mobile-light/room
  3630. icon: mdi:arrow-left
  3631. hold_action:
  3632. action: none
  3633. double_tap_action:
  3634. action: none
  3635. - type: sections
  3636. max_columns: 4
  3637. subview: true
  3638. path: living-area-room-details
  3639. title: Living Area Room Details
  3640. sections:
  3641. - type: grid
  3642. cards:
  3643. - type: custom:vertical-stack-in-card
  3644. cards:
  3645. - square: false
  3646. type: grid
  3647. cards:
  3648. - type: custom:mushroom-template-card
  3649. entity: sensor.living_room_temperature
  3650. primary: |
  3651. {{ states(entity) | round(1) }}°C
  3652. secondary: |
  3653. {{ state_attr(entity,'friendly_name') }}
  3654. icon: mdi:thermometer
  3655. icon_color: >
  3656. {% set temp = states('sensor.living_room_temperature') |
  3657. float %}
  3658.  
  3659. {% if temp < 16 %} #CEB2F5
  3660.  
  3661. {% elif temp < 18 %} #5EBDEE
  3662.  
  3663. {% elif temp < 22 %} #9cc8b8
  3664.  
  3665. {% elif temp < 24 %} #e7b562
  3666.  
  3667. {% elif temp < 27 %} #FF564B
  3668.  
  3669. {% else %} #99332d
  3670.  
  3671. {% endif %}
  3672. tap_action:
  3673. action: navigate
  3674. navigation_path: /mobile-light/room
  3675. columns: 1
  3676. - type: custom:config-template-card
  3677. entities:
  3678. - sensor.living_room_temperature
  3679. - climate.living_room
  3680. - climate.heatpump
  3681. variables:
  3682. - states['climate.heat_pump'].state
  3683. - states['climate.living_room'].state
  3684. - states['sensor.living_room_temperature'].state
  3685. card:
  3686. type: custom:mini-graph-card
  3687. entities:
  3688. - entity: sensor.living_room_temperature
  3689. name: Living Room Temperature
  3690. color: >-
  3691. ${vars[0] === 'heat_cool' || vars[1] === 'heat' ? 'red'
  3692. :
  3693. (vars[0] === 'heat_cool' || vars[1] === 'cool' ? '#12c8da' :
  3694. (vars[0] === 'heat_cool' || vars[1] === 'fan_cool' ? '#029688' :
  3695. (vars[2] < 16 ? '#CEB2F5' :
  3696. (vars[2] < 18 ? '#5EBDEE' :
  3697. (vars[2] < 22 ? '#9cc8b8' :
  3698. (vars[2] < 24 ? '#e7b562' :
  3699. (vars[2] < 27 ? '#FF564B' : '#99332d')))))))}
  3700. hours_to_show: 24
  3701. line_width: 3
  3702. font_size: 50
  3703. animate: true
  3704. height: 50
  3705. show:
  3706. name: false
  3707. icon: false
  3708. state: false
  3709. legend: false
  3710. fill: fade
  3711. - type: horizontal-stack
  3712. cards:
  3713. - type: custom:mushroom-climate-card
  3714. entity: climate.living_room
  3715. primary_info: none
  3716. secondary_info: none
  3717. icon_type: none
  3718. hvac_modes:
  3719. - 'off'
  3720. - heat_cool
  3721. show_temperature_control: true
  3722. tap_action:
  3723. action: toggle
  3724. - type: custom:mushroom-title-card
  3725. title: Lights
  3726. - type: horizontal-stack
  3727. cards:
  3728. - type: custom:button-card
  3729. entity: switch.kitchen_light
  3730. icon: mdi:fridge-outline
  3731. name: Kitchen Light
  3732. tap_action:
  3733. action: toggle
  3734. styles:
  3735. grid:
  3736. - grid-template-columns: 64px 1fr
  3737. - grid-template-areas: '" i n "'
  3738. card:
  3739. - background: null
  3740. - height: 75px
  3741. img_cell:
  3742. - width: 22px
  3743. icon:
  3744. - width: 22px
  3745. - color: '#000000'
  3746. name:
  3747. - justify-self: start
  3748. - font-size: 14px
  3749. - font-weight: 400
  3750. - color: '#000000'
  3751. state:
  3752. - value: 'on'
  3753. styles:
  3754. card:
  3755. - background: '#ffec8e'
  3756. - type: custom:button-card
  3757. entity: switch.dining_table_light
  3758. icon: mdi:table-chair
  3759. name: Dining Table Light
  3760. tap_action:
  3761. action: toggle
  3762. styles:
  3763. grid:
  3764. - grid-template-columns: 64px 1fr
  3765. - grid-template-areas: '" i n "'
  3766. card:
  3767. - background: null
  3768. - height: 75px
  3769. img_cell:
  3770. - width: 22px
  3771. icon:
  3772. - width: 22px
  3773. - color: '#000000'
  3774. name:
  3775. - justify-self: start
  3776. - font-size: 14px
  3777. - font-weight: 400
  3778. - color: '#000000'
  3779. state:
  3780. - value: 'on'
  3781. styles:
  3782. card:
  3783. - background: '#ffec8e'
  3784. - type: horizontal-stack
  3785. cards:
  3786. - type: custom:button-card
  3787. entity: switch.kitchen_cabinet_led
  3788. icon: mdi:file-cabinet
  3789. name: Kitchen Cabinet LED
  3790. tap_action:
  3791. action: toggle
  3792. styles:
  3793. grid:
  3794. - grid-template-columns: 64px 1fr
  3795. - grid-template-areas: '" i n "'
  3796. card:
  3797. - background: null
  3798. - height: 75px
  3799. img_cell:
  3800. - width: 22px
  3801. icon:
  3802. - width: 22px
  3803. - color: '#000000'
  3804. name:
  3805. - justify-self: start
  3806. - font-size: 14px
  3807. - font-weight: 400
  3808. - color: '#000000'
  3809. state:
  3810. - value: 'on'
  3811. styles:
  3812. card:
  3813. - background: '#ffec8e'
  3814. - type: custom:button-card
  3815. entity: switch.table_top_light
  3816. icon: mdi:countertop-outline
  3817. name: Table Top Light
  3818. tap_action:
  3819. action: toggle
  3820. styles:
  3821. grid:
  3822. - grid-template-columns: 64px 1fr
  3823. - grid-template-areas: '" i n "'
  3824. card:
  3825. - background: null
  3826. - height: 75px
  3827. img_cell:
  3828. - width: 22px
  3829. icon:
  3830. - width: 22px
  3831. - color: '#000000'
  3832. name:
  3833. - justify-self: start
  3834. - font-size: 14px
  3835. - font-weight: 400
  3836. - color: '#000000'
  3837. state:
  3838. - value: 'on'
  3839. styles:
  3840. card:
  3841. - background: '#ffec8e'
  3842. - type: horizontal-stack
  3843. cards:
  3844. - type: custom:button-card
  3845. entity: switch.table_top_led
  3846. icon: mdi:led-strip-variant
  3847. name: Kitchen Cabinet LED
  3848. tap_action:
  3849. action: toggle
  3850. styles:
  3851. grid:
  3852. - grid-template-columns: 64px 1fr
  3853. - grid-template-areas: '" i n "'
  3854. card:
  3855. - background: null
  3856. - height: 75px
  3857. img_cell:
  3858. - width: 22px
  3859. icon:
  3860. - width: 22px
  3861. - color: '#000000'
  3862. name:
  3863. - justify-self: start
  3864. - font-size: 14px
  3865. - font-weight: 400
  3866. - color: '#000000'
  3867. state:
  3868. - value: 'on'
  3869. styles:
  3870. card:
  3871. - background: '#ffec8e'
  3872. - type: custom:button-card
  3873. entity: switch.sofa_light
  3874. icon: mdi:sofa-outline
  3875. name: Sofa Light
  3876. tap_action:
  3877. action: toggle
  3878. styles:
  3879. grid:
  3880. - grid-template-columns: 64px 1fr
  3881. - grid-template-areas: '" i n "'
  3882. card:
  3883. - background: null
  3884. - height: 75px
  3885. img_cell:
  3886. - width: 22px
  3887. icon:
  3888. - width: 22px
  3889. - color: '#000000'
  3890. name:
  3891. - justify-self: start
  3892. - font-size: 14px
  3893. - font-weight: 400
  3894. - color: '#000000'
  3895. state:
  3896. - value: 'on'
  3897. styles:
  3898. card:
  3899. - background: '#ffec8e'
  3900. - type: custom:mushroom-title-card
  3901. title: Other Lights
  3902. - type: custom:button-card
  3903. entity: switch.light_switch_scr
  3904. icon: mdi:cookie-outline
  3905. name: Scullery
  3906. tap_action:
  3907. action: toggle
  3908. styles:
  3909. grid:
  3910. - grid-template-columns: 64px 1fr
  3911. - grid-template-areas: '" i n "'
  3912. card:
  3913. - background: null
  3914. - height: 75px
  3915. img_cell:
  3916. - width: 22px
  3917. icon:
  3918. - width: 22px
  3919. - color: '#000000'
  3920. name:
  3921. - justify-self: start
  3922. - font-size: 14px
  3923. - font-weight: 400
  3924. - color: '#000000'
  3925. state:
  3926. - value: 'on'
  3927. styles:
  3928. card:
  3929. - background: '#ffec8e'
  3930. - type: horizontal-stack
  3931. cards:
  3932. - type: custom:button-card
  3933. entity: switch.patio_main_switch_la
  3934. icon: mdi:outdoor-lamp
  3935. name: Main Patio
  3936. tap_action:
  3937. action: toggle
  3938. styles:
  3939. grid:
  3940. - grid-template-columns: 64px 1fr
  3941. - grid-template-areas: '" i n "'
  3942. card:
  3943. - background: null
  3944. - height: 75px
  3945. img_cell:
  3946. - width: 22px
  3947. icon:
  3948. - width: 22px
  3949. - color: '#000000'
  3950. name:
  3951. - justify-self: start
  3952. - font-size: 14px
  3953. - font-weight: 400
  3954. - color: '#000000'
  3955. state:
  3956. - value: 'on'
  3957. styles:
  3958. card:
  3959. - background: '#ffec8e'
  3960. - type: custom:button-card
  3961. entity: switch.patio_side_switch_la
  3962. icon: mdi:outdoor-lamp
  3963. name: Side Patio
  3964. tap_action:
  3965. action: toggle
  3966. styles:
  3967. grid:
  3968. - grid-template-columns: 64px 1fr
  3969. - grid-template-areas: '" i n "'
  3970. card:
  3971. - background: null
  3972. - height: 75px
  3973. img_cell:
  3974. - width: 22px
  3975. icon:
  3976. - width: 22px
  3977. - color: '#000000'
  3978. name:
  3979. - justify-self: start
  3980. - font-size: 14px
  3981. - font-weight: 400
  3982. - color: '#000000'
  3983. state:
  3984. - value: 'on'
  3985. styles:
  3986. card:
  3987. - background: '#ffec8e'
  3988. - type: custom:mushroom-title-card
  3989. title: |-
  3990. {% set windows_open = expand(states.binary_sensor.windows_la)
  3991. | selectattr('state', 'eq', 'on')
  3992. | list | count %}
  3993. {% set doors_open = expand(states.binary_sensor.doors_la)
  3994. | selectattr('state', 'eq', 'on')
  3995. | list | count %}
  3996.  
  3997. {% if windows_open > 0 and doors_open > 0 %}
  3998. {{ 'Open Windows and Doors' if windows_open > 1 and doors_open > 1 else
  3999. 'Open Window and Doors' if windows_open == 1 and doors_open > 1 else
  4000. 'Open Windows and Door' if windows_open > 1 and doors_open == 1 else
  4001. 'Open Window and Door' }}
  4002. {% elif windows_open > 0 %}
  4003. {{ 'Open Windows' if windows_open > 1 else 'Open Window' }}
  4004. {% elif doors_open > 0 %}
  4005. {{ 'Open Doors' if doors_open > 1 else 'Open Door' }}
  4006. {% else %}
  4007.  
  4008. {% endif %}
  4009. - type: custom:mushroom-chips-card
  4010. chips:
  4011. - type: conditional
  4012. conditions:
  4013. - condition: state
  4014. entity: binary_sensor.doors_la
  4015. state: 'on'
  4016. chip:
  4017. type: template
  4018. content: |
  4019. {{ expand(states.binary_sensor.doors_la)
  4020. | selectattr('state', 'eq', 'on')
  4021. | map(attribute='name')
  4022. | join(', ') }}
  4023. icon: |-
  4024. {% set open_doors = expand(states.binary_sensor.doors_la)
  4025. | selectattr('state', 'eq', 'on')
  4026. | list | count %}
  4027. {{ 'mdi:door-sliding-open' if open_doors > 0 else '' }}
  4028. icon_color: red
  4029. - type: conditional
  4030. conditions:
  4031. - condition: state
  4032. entity: binary_sensor.windows_la
  4033. state: 'on'
  4034. chip:
  4035. type: template
  4036. content: |
  4037. {{ expand(states.binary_sensor.windows_la)
  4038. | selectattr('state', 'eq', 'on')
  4039. | map(attribute='name')
  4040. | join(', ') }}
  4041. icon: mdi:window-open
  4042. icon_color: orange
  4043. icon: mdi:sofa
  4044. cards: []
  4045. header:
  4046. card:
  4047. type: markdown
  4048. content: >-
  4049. # Living Area
  4050.  
  4051. {% set time = now().hour %}
  4052.  
  4053.  
  4054. {% if time < 19 %}
  4055.  
  4056. **Here is how it feels like today:**
  4057.  
  4058. 🌡️ 🔺High of {{ states('sensor.home_realfeel_temperature_max_day_0')
  4059. }}°C, 🔻Low of {{ states('sensor.home_realfeel_temperature_min_day_0')
  4060. }}°C.
  4061.  
  4062. {% else %}
  4063.  
  4064. **Here is how it feels like tomorrow:**
  4065.  
  4066. 🌡️ 🔺High of {{ states('sensor.home_realfeel_temperature_max_day_1')
  4067. }}°C, 🔻Low of {{ states('sensor.home_realfeel_temperature_min_day_1')
  4068. }}°C.
  4069.  
  4070. {% endif %}
  4071. text_only: true
  4072. layout: responsive
  4073. badges_position: top
  4074. badges:
  4075. - type: custom:mushroom-chips-card
  4076. alignment: start
  4077. chips:
  4078. - type: template
  4079. tap_action:
  4080. action: navigate
  4081. navigation_path: /mobile-light/room
  4082. icon: mdi:arrow-left
  4083. hold_action:
  4084. action: none
  4085. double_tap_action:
  4086. action: none
  4087. - type: sections
  4088. max_columns: 4
  4089. subview: true
  4090. path: master-bedroom-details
  4091. title: Master Bedroom Details
  4092. sections:
  4093. - type: grid
  4094. cards:
  4095. - type: custom:vertical-stack-in-card
  4096. cards:
  4097. - square: false
  4098. type: grid
  4099. cards:
  4100. - type: custom:mushroom-template-card
  4101. entity: sensor.master_bedroom_temperature
  4102. primary: |
  4103. {{ states(entity) | round(1) }}°C
  4104. secondary: |
  4105. {{ state_attr(entity,'friendly_name') }}
  4106. icon: mdi:thermometer
  4107. icon_color: >
  4108. {% set temp = states('sensor.master_bedroom_temperature')
  4109. | float %}
  4110.  
  4111. {% if temp < 16 %} #CEB2F5
  4112.  
  4113. {% elif temp < 18 %} #5EBDEE
  4114.  
  4115. {% elif temp < 22 %} #9cc8b8
  4116.  
  4117. {% elif temp < 24 %} #e7b562
  4118.  
  4119. {% elif temp < 27 %} #FF564B
  4120.  
  4121. {% else %} #99332d
  4122.  
  4123. {% endif %}
  4124. tap_action:
  4125. action: navigate
  4126. navigation_path: /mobile-light/room
  4127. columns: 1
  4128. - type: custom:config-template-card
  4129. entities:
  4130. - sensor.master_bedroom_temperature
  4131. - climate.master_bedroom
  4132. - climate.heatpump
  4133. variables:
  4134. - states['climate.heat_pump'].state
  4135. - states['climate.master_bedroom'].state
  4136. - states['sensor.master_bedroom_temperature'].state
  4137. card:
  4138. type: custom:mini-graph-card
  4139. entities:
  4140. - entity: sensor.master_bedroom_temperature
  4141. name: Master Bedroom Temperature
  4142. color: >-
  4143. ${vars[0] === 'heat_cool' || vars[1] === 'heat' ? 'red'
  4144. :
  4145. (vars[0] === 'heat_cool' || vars[1] === 'cool' ? '#12c8da' :
  4146. (vars[0] === 'heat_cool' || vars[1] === 'fan_cool' ? '#029688' :
  4147. (vars[2] < 16 ? '#CEB2F5' :
  4148. (vars[2] < 18 ? '#5EBDEE' :
  4149. (vars[2] < 22 ? '#9cc8b8' :
  4150. (vars[2] < 24 ? '#e7b562' :
  4151. (vars[2] < 27 ? '#FF564B' : '#99332d')))))))}
  4152. hours_to_show: 24
  4153. line_width: 3
  4154. font_size: 50
  4155. animate: true
  4156. height: 50
  4157. show:
  4158. name: false
  4159. icon: false
  4160. state: false
  4161. legend: false
  4162. fill: fade
  4163. - type: horizontal-stack
  4164. cards:
  4165. - type: custom:mushroom-climate-card
  4166. entity: climate.master_bedroom
  4167. primary_info: none
  4168. secondary_info: none
  4169. icon_type: none
  4170. hvac_modes:
  4171. - 'off'
  4172. - heat_cool
  4173. show_temperature_control: true
  4174. tap_action:
  4175. action: toggle
  4176. - type: custom:paper-buttons-row
  4177. styles:
  4178. gap: 8px
  4179. justify-content: flex-start
  4180. overflow: scroll
  4181. margin: 12px 0 0 -18px
  4182. padding-left: 18px
  4183. width: calc(100% + 36px)
  4184. extra_styles: |
  4185. ::-webkit-scrollbar {
  4186. display: none;
  4187. }
  4188. buttons:
  4189. - entity: automation.room_presence_mbr
  4190. state_icons:
  4191. 'on': mdi:motion-sensor
  4192. 'off': mdi:motion-sensor-off
  4193. layout: icon_name
  4194. name: Sensor
  4195. state_name: null
  4196. tap_action:
  4197. action: call-service
  4198. service: automation.toggle
  4199. target:
  4200. entity_id: automation.room_presence_mbr
  4201. styles:
  4202. name:
  4203. color: var(--gray800)
  4204. button:
  4205. padding: 12px
  4206. width: 76px
  4207. height: 76px
  4208. flex-basis: 1
  4209. flex-shrink: 0
  4210. display: flex
  4211. background-color: var(--popupBG)
  4212. border-radius: 24px
  4213. color: var(--white)
  4214. icon:
  4215. '--mdc-icon-size': 26px
  4216. color: var(--gray800)
  4217. - icon: mdi:lightbulb-outline
  4218. layout: icon_name
  4219. name: Mindre lys
  4220. tap_action:
  4221. action: call-service
  4222. service: script.lys_all_darker_stue_oppe
  4223. styles:
  4224. name:
  4225. color: var(--gray800)
  4226. button:
  4227. padding: 12px
  4228. width: 76px
  4229. height: 76px
  4230. flex-basis: 1
  4231. flex-shrink: 0
  4232. display: flex
  4233. background-color: var(--popupBG)
  4234. border-radius: 24px
  4235. color: var(--white)
  4236. icon:
  4237. '--mdc-icon-size': 26px
  4238. color: var(--gray800)
  4239. - icon: mdi:desk
  4240. layout: icon_name
  4241. name: Kontor
  4242. tap_action:
  4243. action: call-service
  4244. service: scene.turn_on
  4245. target:
  4246. entity_id: scene.stue_oppe_hjemmekontor
  4247. data:
  4248. transition: 1
  4249. styles:
  4250. name:
  4251. color: var(--gray800)
  4252. button:
  4253. padding: 12px
  4254. width: 76px
  4255. height: 76px
  4256. flex-basis: 1
  4257. flex-shrink: 0
  4258. display: flex
  4259. background-color: var(--popupBG)
  4260. border-radius: 24px
  4261. color: var(--white)
  4262. icon:
  4263. '--mdc-icon-size': 26px
  4264. color: var(--gray800)
  4265. - icon: mdi:sleep
  4266. layout: icon_name
  4267. name: Leggetid
  4268. tap_action:
  4269. action: call-service
  4270. service: scene.turn_on
  4271. target:
  4272. entity_id: scene.stue_oppe_leggetid
  4273. data:
  4274. transition: 1
  4275. styles:
  4276. name:
  4277. color: var(--gray800)
  4278. button:
  4279. padding: 12px
  4280. width: 76px
  4281. height: 76px
  4282. flex-basis: 1
  4283. flex-shrink: 0
  4284. display: flex
  4285. background-color: var(--popupBG)
  4286. border-radius: 24px
  4287. color: var(--white)
  4288. icon:
  4289. '--mdc-icon-size': 26px
  4290. color: var(--gray800)
  4291. - icon: mdi:power
  4292. layout: icon_name
  4293. name: Alt av
  4294. tap_action:
  4295. action: call-service
  4296. service: scene.turn_on
  4297. target:
  4298. entity_id: scene.stue_oppe_alt_av
  4299. data:
  4300. transition: 1
  4301. styles:
  4302. name:
  4303. color: var(--gray800)
  4304. button:
  4305. padding: 12px
  4306. width: 76px
  4307. height: 76px
  4308. flex-basis: 1
  4309. flex-shrink: 0
  4310. display: flex
  4311. margin-right: 36px
  4312. background-color: var(--popupBG)
  4313. border-radius: 24px
  4314. color: var(--white)
  4315. icon:
  4316. '--mdc-icon-size': 26px
  4317. color: var(--gray800)
  4318. - type: custom:mushroom-title-card
  4319. title: Lights
  4320. - type: custom:button-card
  4321. entity: switch.light_switch_mbr
  4322. icon: mdi:light-recessed
  4323. name: Room Light
  4324. tap_action:
  4325. action: toggle
  4326. styles:
  4327. grid:
  4328. - grid-template-columns: 64px 1fr
  4329. - grid-template-areas: '" i n "'
  4330. card:
  4331. - background: null
  4332. - height: 75px
  4333. img_cell:
  4334. - width: 22px
  4335. icon:
  4336. - width: 22px
  4337. - color: '#000000'
  4338. name:
  4339. - justify-self: start
  4340. - font-size: 14px
  4341. - font-weight: 400
  4342. - color: '#000000'
  4343. state:
  4344. - value: 'on'
  4345. styles:
  4346. card:
  4347. - background: '#ffec8e'
  4348. - type: horizontal-stack
  4349. cards:
  4350. - type: custom:button-card
  4351. entity: switch.left_bedside_light_switch_mbr
  4352. icon: mdi:face-woman
  4353. name: Chrissy Bed Side Light
  4354. tap_action:
  4355. action: toggle
  4356. styles:
  4357. grid:
  4358. - grid-template-columns: 64px 1fr
  4359. - grid-template-areas: '" i n "'
  4360. card:
  4361. - background: null
  4362. - height: 75px
  4363. img_cell:
  4364. - width: 22px
  4365. icon:
  4366. - width: 22px
  4367. - color: '#000000'
  4368. name:
  4369. - justify-self: start
  4370. - font-size: 14px
  4371. - font-weight: 400
  4372. - color: '#000000'
  4373. state:
  4374. - value: 'on'
  4375. styles:
  4376. card:
  4377. - background: '#ffec8e'
  4378. - type: custom:button-card
  4379. entity: switch.right_bedside_light_switch_mbr
  4380. icon: mdi:face-man
  4381. name: Rey Bed Side Light
  4382. tap_action:
  4383. action: toggle
  4384. styles:
  4385. grid:
  4386. - grid-template-columns: 64px 1fr
  4387. - grid-template-areas: '" i n "'
  4388. card:
  4389. - background: null
  4390. - height: 75px
  4391. img_cell:
  4392. - width: 22px
  4393. icon:
  4394. - width: 22px
  4395. - color: '#000000'
  4396. name:
  4397. - justify-self: start
  4398. - font-size: 14px
  4399. - font-weight: 400
  4400. - color: '#000000'
  4401. state:
  4402. - value: 'on'
  4403. styles:
  4404. card:
  4405. - background: '#ffec8e'
  4406. - type: conditional
  4407. conditions:
  4408. - condition: state
  4409. entity: light.bed_led_mbr
  4410. state: 'off'
  4411. card:
  4412. type: vertical-stack
  4413. cards:
  4414. - type: custom:button-card
  4415. entity: light.bed_led_mbr
  4416. name: Bed LED
  4417. tap_action:
  4418. action: none
  4419. styles:
  4420. grid:
  4421. - grid-template-columns: 64px 1fr
  4422. - grid-template-areas: '" i n "'
  4423. card:
  4424. - background: none
  4425. - height: 75px
  4426. - position: absolute
  4427. - z-index: 1
  4428. img_cell:
  4429. - width: 22px
  4430. icon:
  4431. - width: 22px
  4432. - color: '#000000'
  4433. name:
  4434. - justify-self: start
  4435. - font-size: 14px
  4436. - font-weight: 400
  4437. - color: '#000000'
  4438. - type: custom:my-slider-v2
  4439. entity: light.bed_led_mbr
  4440. allowTapping: false
  4441. allowSliding: true
  4442. styles:
  4443. container:
  4444. - border-radius: 30px
  4445. card:
  4446. - margin-top: '-8px'
  4447. - height: 75px
  4448. progress:
  4449. - background: none
  4450. thumb:
  4451. - width: 3px
  4452. - height: 30%
  4453. - background: '#000000'
  4454. - border-radius: 5px
  4455. - top: 35%
  4456. - margin-right: 12x
  4457. track:
  4458. - background: none
  4459. - type: conditional
  4460. conditions:
  4461. - condition: state
  4462. entity: light.bed_led_mbr
  4463. state: 'on'
  4464. card:
  4465. type: vertical-stack
  4466. cards:
  4467. - type: custom:button-card
  4468. entity: light.bed_led_mbr
  4469. name: Bed LED
  4470. tap_action:
  4471. action: none
  4472. styles:
  4473. grid:
  4474. - grid-template-columns: 64px 1fr
  4475. - grid-template-areas: '" i n "'
  4476. card:
  4477. - background: none
  4478. - height: 75px
  4479. - position: absolute
  4480. - z-index: 1
  4481. img_cell:
  4482. - width: 22px
  4483. icon:
  4484. - width: 22px
  4485. - color: '#ffffff'
  4486. name:
  4487. - justify-self: start
  4488. - font-size: 14px
  4489. - font-weight: 400
  4490. - color: '#ffffff'
  4491. - type: custom:my-slider-v2
  4492. entity: light.bed_led_mbr
  4493. allowTapping: false
  4494. allowSliding: true
  4495. styles:
  4496. container:
  4497. - border-radius: 30px
  4498. card:
  4499. - margin-top: '-8px'
  4500. - height: 75px
  4501. progress:
  4502. - background: >-
  4503. linear-gradient(145deg, rgba(164,164,164,1) 0%,
  4504. rgba(255,215,86,1) 100%
  4505. thumb:
  4506. - width: 3px
  4507. - height: 30%
  4508. - background: '#ffffff'
  4509. - border-radius: 5px
  4510. - top: 35%
  4511. - margin-right: 12x
  4512. track:
  4513. - background: >-
  4514. linear-gradient(145deg, rgba(0,0,0,1) 0%,
  4515. rgba(255,232,157,1) 100%)
  4516. - type: custom:button-card
  4517. entity: switch.light_switch_wr
  4518. icon: mdi:hanger
  4519. name: Wardrobe Light
  4520. tap_action:
  4521. action: toggle
  4522. styles:
  4523. grid:
  4524. - grid-template-columns: 64px 1fr
  4525. - grid-template-areas: '" i n "'
  4526. card:
  4527. - background: null
  4528. - height: 75px
  4529. img_cell:
  4530. - width: 22px
  4531. icon:
  4532. - width: 22px
  4533. - color: '#000000'
  4534. name:
  4535. - justify-self: start
  4536. - font-size: 14px
  4537. - font-weight: 400
  4538. - color: '#000000'
  4539. state:
  4540. - value: 'on'
  4541. styles:
  4542. card:
  4543. - background: '#ffec8e'
  4544. - type: conditional
  4545. conditions:
  4546. - condition: state
  4547. entity: light.floor_led_wr
  4548. state: 'off'
  4549. card:
  4550. type: vertical-stack
  4551. cards:
  4552. - type: custom:button-card
  4553. entity: light.floor_led_wr
  4554. name: Wardrobe LED
  4555. tap_action:
  4556. action: none
  4557. styles:
  4558. grid:
  4559. - grid-template-columns: 64px 1fr
  4560. - grid-template-areas: '" i n "'
  4561. card:
  4562. - background: none
  4563. - height: 75px
  4564. - position: absolute
  4565. - z-index: 1
  4566. img_cell:
  4567. - width: 22px
  4568. icon:
  4569. - width: 22px
  4570. - color: '#000000'
  4571. name:
  4572. - justify-self: start
  4573. - font-size: 14px
  4574. - font-weight: 400
  4575. - color: '#000000'
  4576. - type: custom:my-slider-v2
  4577. entity: light.floor_led_wr
  4578. allowTapping: false
  4579. allowSliding: true
  4580. styles:
  4581. container:
  4582. - border-radius: 30px
  4583. card:
  4584. - margin-top: '-8px'
  4585. - height: 75px
  4586. progress:
  4587. - background: none
  4588. thumb:
  4589. - width: 3px
  4590. - height: 30%
  4591. - background: '#000000'
  4592. - border-radius: 5px
  4593. - top: 35%
  4594. - margin-right: 12x
  4595. track:
  4596. - background: none
  4597. - type: conditional
  4598. conditions:
  4599. - condition: state
  4600. entity: light.floor_led_wr
  4601. state: 'on'
  4602. card:
  4603. type: vertical-stack
  4604. cards:
  4605. - type: custom:button-card
  4606. entity: light.floor_led_wr
  4607. name: Wardrobe LED
  4608. tap_action:
  4609. action: none
  4610. styles:
  4611. grid:
  4612. - grid-template-columns: 64px 1fr
  4613. - grid-template-areas: '" i n "'
  4614. card:
  4615. - background: none
  4616. - height: 75px
  4617. - position: absolute
  4618. - z-index: 1
  4619. img_cell:
  4620. - width: 22px
  4621. icon:
  4622. - width: 22px
  4623. - color: '#ffffff'
  4624. name:
  4625. - justify-self: start
  4626. - font-size: 14px
  4627. - font-weight: 400
  4628. - color: '#ffffff'
  4629. - type: custom:my-slider-v2
  4630. entity: light.floor_led_wr
  4631. allowTapping: false
  4632. allowSliding: true
  4633. styles:
  4634. container:
  4635. - border-radius: 30px
  4636. card:
  4637. - margin-top: '-8px'
  4638. - height: 75px
  4639. progress:
  4640. - background: >-
  4641. linear-gradient(145deg, rgba(164,164,164,1) 0%,
  4642. rgba(255,215,86,1) 100%
  4643. thumb:
  4644. - width: 3px
  4645. - height: 30%
  4646. - background: '#ffffff'
  4647. - border-radius: 5px
  4648. - top: 35%
  4649. - margin-right: 12x
  4650. track:
  4651. - background: >-
  4652. linear-gradient(145deg, rgba(0,0,0,1) 0%,
  4653. rgba(255,232,157,1) 100%)
  4654. - type: custom:button-card
  4655. entity: switch.patio_switch_mbr
  4656. icon: mdi:outdoor-lamp
  4657. name: Patio Light
  4658. tap_action:
  4659. action: toggle
  4660. styles:
  4661. grid:
  4662. - grid-template-columns: 64px 1fr
  4663. - grid-template-areas: '" i n "'
  4664. card:
  4665. - background: null
  4666. - height: 75px
  4667. img_cell:
  4668. - width: 22px
  4669. icon:
  4670. - width: 22px
  4671. - color: '#000000'
  4672. name:
  4673. - justify-self: start
  4674. - font-size: 14px
  4675. - font-weight: 400
  4676. - color: '#000000'
  4677. state:
  4678. - value: 'on'
  4679. styles:
  4680. card:
  4681. - background: '#ffec8e'
  4682. - type: custom:mushroom-title-card
  4683. title: >-
  4684. {% set windows_open = expand(states.binary_sensor.windows_mbr)
  4685. | selectattr('state', 'eq', 'on')
  4686. | list | count %}
  4687. {% set doors_open =
  4688. expand(states.binary_sensor.sliding_door_sensor_mbr_contact)
  4689. | selectattr('state', 'eq', 'on')
  4690. | list | count %}
  4691.  
  4692. {% if windows_open > 0 and doors_open > 0 %}
  4693. {{ 'Open Windows and Doors' if windows_open > 1 and doors_open > 1 else
  4694. 'Open Window and Doors' if windows_open == 1 and doors_open > 1 else
  4695. 'Open Windows and Door' if windows_open > 1 and doors_open == 1 else
  4696. 'Open Window and Door' }}
  4697. {% elif windows_open > 0 %}
  4698. {{ 'Open Windows' if windows_open > 1 else 'Open Window' }}
  4699. {% elif doors_open > 0 %}
  4700. {{ 'Open Doors' if doors_open > 1 else 'Open Door' }}
  4701. {% else %}
  4702.  
  4703.  
  4704. {% endif %}
  4705. - type: custom:mushroom-chips-card
  4706. chips:
  4707. - type: conditional
  4708. conditions:
  4709. - condition: state
  4710. entity: binary_sensor.sliding_door_sensor_mbr_contact
  4711. state: 'on'
  4712. chip:
  4713. type: template
  4714. content: >
  4715. {{
  4716. expand(states.binary_sensor.sliding_door_sensor_mbr_contact)
  4717. | selectattr('state', 'eq', 'on')
  4718. | map(attribute='name')
  4719. | join(', ') }}
  4720. icon: >-
  4721. {% set open_doors =
  4722. expand(states.binary_sensor.sliding_door_sensor_mbr_contact)
  4723. | selectattr('state', 'eq', 'on')
  4724. | list | count %}
  4725. {{ 'mdi:door-sliding-open' if open_doors > 0 else '' }}
  4726. icon_color: red
  4727. - type: conditional
  4728. conditions:
  4729. - condition: state
  4730. entity: binary_sensor.windows_mbr
  4731. state: 'on'
  4732. chip:
  4733. type: template
  4734. content: |
  4735. {{ expand(states.binary_sensor.windows_mbr)
  4736. | selectattr('state', 'eq', 'on')
  4737. | map(attribute='name')
  4738. | join(', ') }}
  4739. icon: mdi:window-open
  4740. icon_color: orange
  4741. cards: []
  4742. icon: mdi:bed-king
  4743. header:
  4744. card:
  4745. type: markdown
  4746. content: |
  4747. # Master Bedroom
  4748. text_only: true
  4749. layout: responsive
  4750. badges_position: top
  4751. badges:
  4752. - type: custom:mushroom-chips-card
  4753. alignment: start
  4754. chips:
  4755. - type: template
  4756. tap_action:
  4757. action: navigate
  4758. navigation_path: /mobile-light/room
  4759. icon: mdi:arrow-left
  4760. hold_action:
  4761. action: none
  4762. double_tap_action:
  4763. action: none
  4764. - type: sections
  4765. max_columns: 4
  4766. subview: true
  4767. path: baby-room-details
  4768. title: Baby Room Details
  4769. sections:
  4770. - type: grid
  4771. cards:
  4772. - type: custom:vertical-stack-in-card
  4773. cards:
  4774. - square: false
  4775. type: grid
  4776. cards:
  4777. - type: custom:mushroom-template-card
  4778. entity: sensor.baby_room_temperature
  4779. primary: |
  4780. {{ states(entity) | round(1) }}°C
  4781. secondary: |
  4782. {{ state_attr(entity,'friendly_name') }}
  4783. icon: mdi:thermometer
  4784. icon_color: >
  4785. {% set temp = states('sensor.baby_room_temperature') |
  4786. float %}
  4787.  
  4788. {% if temp < 16 %} #CEB2F5
  4789.  
  4790. {% elif temp < 18 %} #5EBDEE
  4791.  
  4792. {% elif temp < 22 %} #9cc8b8
  4793.  
  4794. {% elif temp < 24 %} #e7b562
  4795.  
  4796. {% elif temp < 27 %} #FF564B
  4797.  
  4798. {% else %} #99332d
  4799.  
  4800. {% endif %}
  4801. tap_action:
  4802. action: navigate
  4803. navigation_path: /mobile-light/room
  4804. columns: 1
  4805. - type: custom:config-template-card
  4806. entities:
  4807. - sensor.baby_room_temperature
  4808. - climate.baby_room
  4809. - climate.heatpump
  4810. variables:
  4811. - states['climate.heat_pump'].state
  4812. - states['climate.baby_room'].state
  4813. - states['sensor.baby_room_temperature'].state
  4814. card:
  4815. type: custom:mini-graph-card
  4816. entities:
  4817. - entity: sensor.baby_room_temperature
  4818. name: Baby Room Temperature
  4819. color: >-
  4820. ${vars[0] === 'heat_cool' || vars[1] === 'heat' ? 'red'
  4821. :
  4822. (vars[0] === 'heat_cool' || vars[1] === 'cool' ? '#12c8da' :
  4823. (vars[0] === 'heat_cool' || vars[1] === 'fan_cool' ? '#029688' :
  4824. (vars[2] < 16 ? '#CEB2F5' :
  4825. (vars[2] < 18 ? '#5EBDEE' :
  4826. (vars[2] < 22 ? '#9cc8b8' :
  4827. (vars[2] < 24 ? '#e7b562' :
  4828. (vars[2] < 27 ? '#FF564B' : '#99332d')))))))}
  4829. hours_to_show: 24
  4830. line_width: 3
  4831. font_size: 50
  4832. animate: true
  4833. height: 50
  4834. show:
  4835. name: false
  4836. icon: false
  4837. state: false
  4838. legend: false
  4839. fill: fade
  4840. - type: horizontal-stack
  4841. cards:
  4842. - type: custom:mushroom-climate-card
  4843. entity: climate.baby_room
  4844. primary_info: none
  4845. secondary_info: none
  4846. icon_type: none
  4847. hvac_modes:
  4848. - 'off'
  4849. - heat_cool
  4850. show_temperature_control: true
  4851. tap_action:
  4852. action: toggle
  4853. - type: custom:mushroom-title-card
  4854. title: Lights
  4855. - type: custom:button-card
  4856. entity: switch.light_switch_br
  4857. icon: mdi:light-recessed
  4858. name: Room Light
  4859. tap_action:
  4860. action: toggle
  4861. styles:
  4862. grid:
  4863. - grid-template-columns: 64px 1fr
  4864. - grid-template-areas: '" i n "'
  4865. card:
  4866. - background: null
  4867. - height: 75px
  4868. img_cell:
  4869. - width: 22px
  4870. icon:
  4871. - width: 22px
  4872. - color: '#000000'
  4873. name:
  4874. - justify-self: start
  4875. - font-size: 14px
  4876. - font-weight: 400
  4877. - color: '#000000'
  4878. state:
  4879. - value: 'on'
  4880. styles:
  4881. card:
  4882. - background: '#ffec8e'
  4883. - type: conditional
  4884. conditions:
  4885. - condition: state
  4886. entity: light.ava_bed_led_br
  4887. state: 'off'
  4888. card:
  4889. type: vertical-stack
  4890. cards:
  4891. - type: custom:button-card
  4892. entity: light.ava_bed_led_br
  4893. name: Ava Bed LED
  4894. tap_action:
  4895. action: none
  4896. styles:
  4897. grid:
  4898. - grid-template-columns: 64px 1fr
  4899. - grid-template-areas: '" i n "'
  4900. card:
  4901. - background: none
  4902. - height: 75px
  4903. - position: absolute
  4904. - z-index: 1
  4905. img_cell:
  4906. - width: 22px
  4907. icon:
  4908. - width: 22px
  4909. - color: '#000000'
  4910. name:
  4911. - justify-self: start
  4912. - font-size: 14px
  4913. - font-weight: 400
  4914. - color: '#000000'
  4915. - type: custom:my-slider-v2
  4916. entity: light.ava_bed_led_br
  4917. allowTapping: false
  4918. allowSliding: true
  4919. styles:
  4920. container:
  4921. - border-radius: 30px
  4922. card:
  4923. - margin-top: '-8px'
  4924. - height: 75px
  4925. progress:
  4926. - background: none
  4927. thumb:
  4928. - width: 3px
  4929. - height: 30%
  4930. - background: '#000000'
  4931. - border-radius: 5px
  4932. - top: 35%
  4933. - margin-right: 12x
  4934. track:
  4935. - background: none
  4936. - type: conditional
  4937. conditions:
  4938. - condition: state
  4939. entity: light.ava_bed_led_br
  4940. state: 'on'
  4941. card:
  4942. type: vertical-stack
  4943. cards:
  4944. - type: custom:button-card
  4945. entity: light.ava_bed_led_br
  4946. name: Ava Bed LED
  4947. tap_action:
  4948. action: none
  4949. styles:
  4950. grid:
  4951. - grid-template-columns: 64px 1fr
  4952. - grid-template-areas: '" i n "'
  4953. card:
  4954. - background: none
  4955. - height: 75px
  4956. - position: absolute
  4957. - z-index: 1
  4958. img_cell:
  4959. - width: 22px
  4960. icon:
  4961. - width: 22px
  4962. - color: '#ffffff'
  4963. name:
  4964. - justify-self: start
  4965. - font-size: 14px
  4966. - font-weight: 400
  4967. - color: '#ffffff'
  4968. - type: custom:my-slider-v2
  4969. entity: light.ava_bed_led_br
  4970. allowTapping: false
  4971. allowSliding: true
  4972. styles:
  4973. container:
  4974. - border-radius: 30px
  4975. card:
  4976. - margin-top: '-8px'
  4977. - height: 75px
  4978. progress:
  4979. - background: >-
  4980. linear-gradient(145deg, rgba(164,164,164,1) 0%,
  4981. rgba(255,215,86,1) 100%
  4982. thumb:
  4983. - width: 3px
  4984. - height: 30%
  4985. - background: '#ffffff'
  4986. - border-radius: 5px
  4987. - top: 35%
  4988. - margin-right: 12x
  4989. track:
  4990. - background: >-
  4991. linear-gradient(145deg, rgba(0,0,0,1) 0%,
  4992. rgba(255,232,157,1) 100%)
  4993. - type: conditional
  4994. conditions:
  4995. - condition: state
  4996. entity: light.iyla_bed_led_br
  4997. state: 'off'
  4998. card:
  4999. type: vertical-stack
  5000. cards:
  5001. - type: custom:button-card
  5002. entity: light.iyla_bed_led_br
  5003. name: Iyla Bed LED
  5004. tap_action:
  5005. action: none
  5006. styles:
  5007. grid:
  5008. - grid-template-columns: 64px 1fr
  5009. - grid-template-areas: '" i n "'
  5010. card:
  5011. - background: none
  5012. - height: 75px
  5013. - position: absolute
  5014. - z-index: 1
  5015. img_cell:
  5016. - width: 22px
  5017. icon:
  5018. - width: 22px
  5019. - color: '#000000'
  5020. name:
  5021. - justify-self: start
  5022. - font-size: 14px
  5023. - font-weight: 400
  5024. - color: '#000000'
  5025. - type: custom:my-slider-v2
  5026. entity: light.iyla_bed_led_br
  5027. allowTapping: false
  5028. allowSliding: true
  5029. styles:
  5030. container:
  5031. - border-radius: 30px
  5032. card:
  5033. - margin-top: '-8px'
  5034. - height: 75px
  5035. progress:
  5036. - background: none
  5037. thumb:
  5038. - width: 3px
  5039. - height: 30%
  5040. - background: '#000000'
  5041. - border-radius: 5px
  5042. - top: 35%
  5043. - margin-right: 12x
  5044. track:
  5045. - background: none
  5046. - type: conditional
  5047. conditions:
  5048. - condition: state
  5049. entity: light.iyla_bed_led_br
  5050. state: 'on'
  5051. card:
  5052. type: vertical-stack
  5053. cards:
  5054. - type: custom:button-card
  5055. entity: light.iyla_bed_led_br
  5056. name: Iyla Bed LED
  5057. tap_action:
  5058. action: none
  5059. styles:
  5060. grid:
  5061. - grid-template-columns: 64px 1fr
  5062. - grid-template-areas: '" i n "'
  5063. card:
  5064. - background: none
  5065. - height: 75px
  5066. - position: absolute
  5067. - z-index: 1
  5068. img_cell:
  5069. - width: 22px
  5070. icon:
  5071. - width: 22px
  5072. - color: '#ffffff'
  5073. name:
  5074. - justify-self: start
  5075. - font-size: 14px
  5076. - font-weight: 400
  5077. - color: '#ffffff'
  5078. - type: custom:my-slider-v2
  5079. entity: light.iyla_bed_led_br
  5080. allowTapping: false
  5081. allowSliding: true
  5082. styles:
  5083. container:
  5084. - border-radius: 30px
  5085. card:
  5086. - margin-top: '-8px'
  5087. - height: 75px
  5088. progress:
  5089. - background: >-
  5090. linear-gradient(145deg, rgba(164,164,164,1) 0%,
  5091. rgba(255,215,86,1) 100%
  5092. thumb:
  5093. - width: 3px
  5094. - height: 30%
  5095. - background: '#ffffff'
  5096. - border-radius: 5px
  5097. - top: 35%
  5098. - margin-right: 12x
  5099. track:
  5100. - background: >-
  5101. linear-gradient(145deg, rgba(0,0,0,1) 0%,
  5102. rgba(255,232,157,1) 100%)
  5103. - type: custom:mushroom-title-card
  5104. title: |-
  5105. {% set open_windows = expand(states.binary_sensor.windows_br)
  5106. | selectattr('state', 'eq', 'on')
  5107. | list | count %}
  5108. {{ 'Window Open' if open_windows == 1 else 'Windows Open' }}
  5109. - type: custom:mushroom-chips-card
  5110. chips:
  5111. - type: conditional
  5112. conditions:
  5113. - condition: state
  5114. entity: binary_sensor.windows_br
  5115. state: 'on'
  5116. chip:
  5117. type: template
  5118. content: |
  5119. {{ expand(states.binary_sensor.windows_br)
  5120. | selectattr('state', 'eq', 'on')
  5121. | map(attribute='name')
  5122. | join(', ') }}
  5123. icon: mdi:window-open
  5124. icon_color: orange
  5125. cards: []
  5126. icon: mdi:baby-carriage
  5127. header:
  5128. card:
  5129. type: markdown
  5130. content: >-
  5131. # Baby Room
  5132.  
  5133. {% set time = now().hour %}
  5134.  
  5135.  
  5136. {% if time < 19 %}
  5137.  
  5138. **Here is how it feels like today:**
  5139.  
  5140. 🌡️ 🔺High of {{ states('sensor.home_realfeel_temperature_max_day_0')
  5141. }}°C, 🔻Low of {{ states('sensor.home_realfeel_temperature_min_day_0')
  5142. }}°C.
  5143.  
  5144. {% else %}
  5145.  
  5146. **Here is how it feels like tomorrow:**
  5147.  
  5148. 🌡️ 🔺High of {{ states('sensor.home_realfeel_temperature_max_day_1')
  5149. }}°C, 🔻Low of {{ states('sensor.home_realfeel_temperature_min_day_1')
  5150. }}°C.
  5151.  
  5152. {% endif %}
  5153. text_only: true
  5154. layout: responsive
  5155. badges_position: top
  5156. badges:
  5157. - type: custom:mushroom-chips-card
  5158. alignment: start
  5159. chips:
  5160. - type: template
  5161. tap_action:
  5162. action: navigate
  5163. navigation_path: /mobile-light/room
  5164. icon: mdi:arrow-left
  5165. hold_action:
  5166. action: none
  5167. double_tap_action:
  5168. action: none
  5169. - type: sections
  5170. max_columns: 4
  5171. subview: true
  5172. path: single-guest-room-details
  5173. title: Single Guest Room Details
  5174. sections:
  5175. - type: grid
  5176. cards:
  5177. - type: custom:vertical-stack-in-card
  5178. cards:
  5179. - square: false
  5180. type: grid
  5181. cards:
  5182. - type: custom:mushroom-template-card
  5183. entity: sensor.single_guest_room_temperature
  5184. primary: |
  5185. {{ states(entity) | round(1) }}°C
  5186. secondary: |
  5187. {{ state_attr(entity,'friendly_name') }}
  5188. icon: mdi:thermometer
  5189. icon_color: >
  5190. {% set temp =
  5191. states('sensor.single_guest_room_temperature') | float %}
  5192.  
  5193. {% if temp < 16 %} #CEB2F5
  5194.  
  5195. {% elif temp < 18 %} #5EBDEE
  5196.  
  5197. {% elif temp < 22 %} #9cc8b8
  5198.  
  5199. {% elif temp < 24 %} #e7b562
  5200.  
  5201. {% elif temp < 27 %} #FF564B
  5202.  
  5203. {% else %} #99332d
  5204.  
  5205. {% endif %}
  5206. tap_action:
  5207. action: navigate
  5208. navigation_path: /mobile-light/room
  5209. columns: 1
  5210. - type: custom:config-template-card
  5211. entities:
  5212. - sensor.single_guest_room_temperature
  5213. - climate.single_guest_room
  5214. - climate.heatpump
  5215. variables:
  5216. - states['climate.heat_pump'].state
  5217. - states['climate.single_guest_room'].state
  5218. - states['sensor.single_guest_room_temperature'].state
  5219. card:
  5220. type: custom:mini-graph-card
  5221. entities:
  5222. - entity: sensor.single_guest_room_temperature
  5223. name: Single Guest Room Temperature
  5224. color: >-
  5225. ${vars[0] === 'heat_cool' || vars[1] === 'heat' ? 'red'
  5226. :
  5227. (vars[0] === 'heat_cool' || vars[1] === 'cool' ? '#12c8da' :
  5228. (vars[0] === 'heat_cool' || vars[1] === 'fan_cool' ? '#029688' :
  5229. (vars[2] < 16 ? '#CEB2F5' :
  5230. (vars[2] < 18 ? '#5EBDEE' :
  5231. (vars[2] < 22 ? '#9cc8b8' :
  5232. (vars[2] < 24 ? '#e7b562' :
  5233. (vars[2] < 27 ? '#FF564B' : '#99332d')))))))}
  5234. hours_to_show: 24
  5235. line_width: 3
  5236. font_size: 50
  5237. animate: true
  5238. height: 50
  5239. show:
  5240. name: false
  5241. icon: false
  5242. state: false
  5243. legend: false
  5244. fill: fade
  5245. - type: horizontal-stack
  5246. cards:
  5247. - type: custom:mushroom-climate-card
  5248. entity: climate.single_guest_room
  5249. primary_info: none
  5250. secondary_info: none
  5251. icon_type: none
  5252. hvac_modes:
  5253. - 'off'
  5254. - heat_cool
  5255. show_temperature_control: true
  5256. tap_action:
  5257. action: toggle
  5258. - type: custom:mushroom-title-card
  5259. title: Lights
  5260. - type: custom:button-card
  5261. entity: switch.light_switch_sgr
  5262. icon: mdi:light-recessed
  5263. name: Room Light
  5264. tap_action:
  5265. action: toggle
  5266. styles:
  5267. grid:
  5268. - grid-template-columns: 64px 1fr
  5269. - grid-template-areas: '" i n "'
  5270. card:
  5271. - background: null
  5272. - height: 75px
  5273. img_cell:
  5274. - width: 22px
  5275. icon:
  5276. - width: 22px
  5277. - color: '#000000'
  5278. name:
  5279. - justify-self: start
  5280. - font-size: 14px
  5281. - font-weight: 400
  5282. - color: '#000000'
  5283. state:
  5284. - value: 'on'
  5285. styles:
  5286. card:
  5287. - background: '#ffec8e'
  5288. - type: conditional
  5289. conditions:
  5290. - condition: state
  5291. entity: light.bed_led_sgr
  5292. state: 'off'
  5293. card:
  5294. type: vertical-stack
  5295. cards:
  5296. - type: custom:button-card
  5297. entity: light.bed_led_sgr
  5298. name: Bed LED
  5299. tap_action:
  5300. action: none
  5301. styles:
  5302. grid:
  5303. - grid-template-columns: 64px 1fr
  5304. - grid-template-areas: '" i n "'
  5305. card:
  5306. - background: none
  5307. - height: 75px
  5308. - position: absolute
  5309. - z-index: 1
  5310. img_cell:
  5311. - width: 22px
  5312. icon:
  5313. - width: 22px
  5314. - color: '#000000'
  5315. name:
  5316. - justify-self: start
  5317. - font-size: 14px
  5318. - font-weight: 400
  5319. - color: '#000000'
  5320. - type: custom:my-slider-v2
  5321. entity: light.bed_led_sgr
  5322. allowTapping: false
  5323. allowSliding: true
  5324. styles:
  5325. container:
  5326. - border-radius: 30px
  5327. card:
  5328. - margin-top: '-8px'
  5329. - height: 75px
  5330. progress:
  5331. - background: none
  5332. thumb:
  5333. - width: 3px
  5334. - height: 30%
  5335. - background: '#000000'
  5336. - border-radius: 5px
  5337. - top: 35%
  5338. - margin-right: 12x
  5339. track:
  5340. - background: none
  5341. - type: conditional
  5342. conditions:
  5343. - condition: state
  5344. entity: light.bed_led_sgr
  5345. state: 'on'
  5346. card:
  5347. type: vertical-stack
  5348. cards:
  5349. - type: custom:button-card
  5350. entity: light.bed_led_sgr
  5351. name: Bed LED
  5352. tap_action:
  5353. action: none
  5354. styles:
  5355. grid:
  5356. - grid-template-columns: 64px 1fr
  5357. - grid-template-areas: '" i n "'
  5358. card:
  5359. - background: none
  5360. - height: 75px
  5361. - position: absolute
  5362. - z-index: 1
  5363. img_cell:
  5364. - width: 22px
  5365. icon:
  5366. - width: 22px
  5367. - color: '#ffffff'
  5368. name:
  5369. - justify-self: start
  5370. - font-size: 14px
  5371. - font-weight: 400
  5372. - color: '#ffffff'
  5373. - type: custom:my-slider-v2
  5374. entity: light.bed_led_sgr
  5375. allowTapping: false
  5376. allowSliding: true
  5377. styles:
  5378. container:
  5379. - border-radius: 30px
  5380. card:
  5381. - margin-top: '-8px'
  5382. - height: 75px
  5383. progress:
  5384. - background: >-
  5385. linear-gradient(145deg, rgba(164,164,164,1) 0%,
  5386. rgba(255,215,86,1) 100%
  5387. thumb:
  5388. - width: 3px
  5389. - height: 30%
  5390. - background: '#ffffff'
  5391. - border-radius: 5px
  5392. - top: 35%
  5393. - margin-right: 12x
  5394. track:
  5395. - background: >-
  5396. linear-gradient(145deg, rgba(0,0,0,1) 0%,
  5397. rgba(255,232,157,1) 100%)
  5398. - type: custom:mushroom-title-card
  5399. title: |-
  5400. {% set open_windows = expand(states.binary_sensor.windows_sgr)
  5401. | selectattr('state', 'eq', 'on')
  5402. | list | count %}
  5403. {{ 'Window Open' if open_windows == 1 else 'Windows Open' }}
  5404. - type: custom:mushroom-chips-card
  5405. chips:
  5406. - type: conditional
  5407. conditions:
  5408. - condition: state
  5409. entity: binary_sensor.windows_sgr
  5410. state: 'on'
  5411. chip:
  5412. type: template
  5413. content: |
  5414. {{ expand(states.binary_sensor.windows_sgr)
  5415. | selectattr('state', 'eq', 'on')
  5416. | map(attribute='name')
  5417. | join(', ') }}
  5418. icon: mdi:window-open
  5419. icon_color: orange
  5420. cards: []
  5421. icon: mdi:account-plus
  5422. header:
  5423. card:
  5424. type: markdown
  5425. text_only: true
  5426. content: >-
  5427. # Single Guest Room
  5428.  
  5429. {% set time = now().hour %}
  5430.  
  5431.  
  5432. {% if time < 19 %}
  5433.  
  5434. **Here is how it feels like today:**
  5435.  
  5436. 🌡️ 🔺High of {{ states('sensor.home_realfeel_temperature_max_day_0')
  5437. }}°C, 🔻Low of {{ states('sensor.home_realfeel_temperature_min_day_0')
  5438. }}°C.
  5439.  
  5440. {% else %}
  5441.  
  5442. **Here is how it feels like tomorrow:**
  5443.  
  5444. 🌡️ 🔺High of {{ states('sensor.home_realfeel_temperature_max_day_1')
  5445. }}°C, 🔻Low of {{ states('sensor.home_realfeel_temperature_min_day_1')
  5446. }}°C.
  5447.  
  5448. {% endif %}
  5449. layout: responsive
  5450. badges_position: top
  5451. badges:
  5452. - type: custom:mushroom-chips-card
  5453. alignment: start
  5454. chips:
  5455. - type: template
  5456. tap_action:
  5457. action: navigate
  5458. navigation_path: /mobile-light/room
  5459. icon: mdi:arrow-left
  5460. hold_action:
  5461. action: none
  5462. double_tap_action:
  5463. action: none
  5464. - type: sections
  5465. max_columns: 4
  5466. subview: true
  5467. path: multiple-guest-room-details
  5468. title: Multiple Guest Room Details
  5469. sections:
  5470. - type: grid
  5471. cards:
  5472. - type: custom:vertical-stack-in-card
  5473. cards:
  5474. - square: false
  5475. type: grid
  5476. cards:
  5477. - type: custom:mushroom-template-card
  5478. entity: sensor.multiple_guest_room_temperature
  5479. primary: |
  5480. {{ states(entity) | round(1) }}°C
  5481. secondary: |
  5482. {{ state_attr(entity,'friendly_name') }}
  5483. icon: mdi:thermometer
  5484. icon_color: >
  5485. {% set temp =
  5486. states('sensor.multiple_guest_room_temperature') | float
  5487. %}
  5488.  
  5489. {% if temp < 16 %} #CEB2F5
  5490.  
  5491. {% elif temp < 18 %} #5EBDEE
  5492.  
  5493. {% elif temp < 22 %} #9cc8b8
  5494.  
  5495. {% elif temp < 24 %} #e7b562
  5496.  
  5497. {% elif temp < 27 %} #FF564B
  5498.  
  5499. {% else %} #99332d
  5500.  
  5501. {% endif %}
  5502. tap_action:
  5503. action: navigate
  5504. navigation_path: /mobile-light/room
  5505. columns: 1
  5506. - type: custom:config-template-card
  5507. entities:
  5508. - sensor.multiple_guest_room_temperature
  5509. - climate.multiple_guest_room
  5510. - climate.heatpump
  5511. variables:
  5512. - states['climate.heat_pump'].state
  5513. - states['climate.multiple_guest_room'].state
  5514. - states['sensor.multiple_guest_room_temperature'].state
  5515. card:
  5516. type: custom:mini-graph-card
  5517. entities:
  5518. - entity: sensor.multiple_guest_room_temperature
  5519. name: Multiple Guest Room Temperature
  5520. color: >-
  5521. ${vars[0] === 'heat_cool' || vars[1] === 'heat' ? 'red'
  5522. :
  5523. (vars[0] === 'heat_cool' || vars[1] === 'cool' ? '#12c8da' :
  5524. (vars[0] === 'heat_cool' || vars[1] === 'fan_cool' ? '#029688' :
  5525. (vars[2] < 16 ? '#CEB2F5' :
  5526. (vars[2] < 18 ? '#5EBDEE' :
  5527. (vars[2] < 22 ? '#9cc8b8' :
  5528. (vars[2] < 24 ? '#e7b562' :
  5529. (vars[2] < 27 ? '#FF564B' : '#99332d')))))))}
  5530. hours_to_show: 24
  5531. line_width: 3
  5532. font_size: 50
  5533. animate: true
  5534. height: 50
  5535. show:
  5536. name: false
  5537. icon: false
  5538. state: false
  5539. legend: false
  5540. fill: fade
  5541. - type: horizontal-stack
  5542. cards:
  5543. - type: custom:mushroom-climate-card
  5544. entity: climate.multiple_guest_room
  5545. primary_info: none
  5546. secondary_info: none
  5547. icon_type: none
  5548. hvac_modes:
  5549. - 'off'
  5550. - heat_cool
  5551. show_temperature_control: true
  5552. tap_action:
  5553. action: toggle
  5554. - type: custom:mushroom-title-card
  5555. title: Lights
  5556. - type: custom:button-card
  5557. entity: switch.light_switch_mgr
  5558. icon: mdi:light-recessed
  5559. name: Room Light
  5560. tap_action:
  5561. action: toggle
  5562. styles:
  5563. grid:
  5564. - grid-template-columns: 64px 1fr
  5565. - grid-template-areas: '" i n "'
  5566. card:
  5567. - background: null
  5568. - height: 75px
  5569. img_cell:
  5570. - width: 22px
  5571. icon:
  5572. - width: 22px
  5573. - color: '#000000'
  5574. name:
  5575. - justify-self: start
  5576. - font-size: 16px
  5577. - font-weight: 400
  5578. - color: '#000000'
  5579. state:
  5580. - value: 'on'
  5581. styles:
  5582. card:
  5583. - background: '#ffec8e'
  5584. - type: conditional
  5585. conditions:
  5586. - condition: state
  5587. entity: light.bed_led_mgr
  5588. state: 'off'
  5589. card:
  5590. type: vertical-stack
  5591. cards:
  5592. - type: custom:button-card
  5593. entity: light.bed_led_mgr
  5594. name: Bed LED
  5595. tap_action:
  5596. action: none
  5597. styles:
  5598. grid:
  5599. - grid-template-columns: 64px 1fr
  5600. - grid-template-areas: '" i n "'
  5601. card:
  5602. - background: none
  5603. - height: 75px
  5604. - position: absolute
  5605. - z-index: 1
  5606. img_cell:
  5607. - width: 22px
  5608. icon:
  5609. - width: 22px
  5610. - color: '#000000'
  5611. name:
  5612. - justify-self: start
  5613. - font-size: 14px
  5614. - font-weight: 400
  5615. - color: '#000000'
  5616. - type: custom:my-slider-v2
  5617. entity: light.bed_led_mgr
  5618. allowTapping: false
  5619. allowSliding: true
  5620. styles:
  5621. container:
  5622. - border-radius: 30px
  5623. card:
  5624. - margin-top: '-8px'
  5625. - height: 75px
  5626. progress:
  5627. - background: none
  5628. thumb:
  5629. - width: 3px
  5630. - height: 30%
  5631. - background: '#000000'
  5632. - border-radius: 5px
  5633. - top: 35%
  5634. - margin-right: 12x
  5635. track:
  5636. - background: none
  5637. - type: conditional
  5638. conditions:
  5639. - condition: state
  5640. entity: light.bed_led_mgr
  5641. state: 'on'
  5642. card:
  5643. type: vertical-stack
  5644. cards:
  5645. - type: custom:button-card
  5646. entity: light.bed_led_mgr
  5647. name: Bed LED
  5648. tap_action:
  5649. action: none
  5650. styles:
  5651. grid:
  5652. - grid-template-columns: 64px 1fr
  5653. - grid-template-areas: '" i n "'
  5654. card:
  5655. - background: none
  5656. - height: 75px
  5657. - position: absolute
  5658. - z-index: 1
  5659. img_cell:
  5660. - width: 22px
  5661. icon:
  5662. - width: 22px
  5663. - color: '#ffffff'
  5664. name:
  5665. - justify-self: start
  5666. - font-size: 14px
  5667. - font-weight: 400
  5668. - color: '#ffffff'
  5669. - type: custom:my-slider-v2
  5670. entity: light.bed_led_mgr
  5671. allowTapping: false
  5672. allowSliding: true
  5673. styles:
  5674. container:
  5675. - border-radius: 30px
  5676. card:
  5677. - margin-top: '-8px'
  5678. - height: 75px
  5679. progress:
  5680. - background: >-
  5681. linear-gradient(145deg, rgba(164,164,164,1) 0%,
  5682. rgba(255,215,86,1) 100%
  5683. thumb:
  5684. - width: 3px
  5685. - height: 30%
  5686. - background: '#ffffff'
  5687. - border-radius: 5px
  5688. - top: 35%
  5689. - margin-right: 12x
  5690. track:
  5691. - background: >-
  5692. linear-gradient(145deg, rgba(0,0,0,1) 0%,
  5693. rgba(255,232,157,1) 100%)
  5694. - type: custom:mushroom-title-card
  5695. title: |-
  5696. {% set open_windows = expand(states.binary_sensor.windows_mgr)
  5697. | selectattr('state', 'eq', 'on')
  5698. | list | count %}
  5699. {{ 'Window Open' if open_windows == 1 else 'Windows Open' }}
  5700. - type: custom:mushroom-chips-card
  5701. chips:
  5702. - type: conditional
  5703. conditions:
  5704. - condition: state
  5705. entity: binary_sensor.windows_mgr
  5706. state: 'on'
  5707. chip:
  5708. type: template
  5709. content: |
  5710. {{ expand(states.binary_sensor.windows_mgr)
  5711. | selectattr('state', 'eq', 'on')
  5712. | map(attribute='name')
  5713. | join(', ') }}
  5714. icon: mdi:window-open
  5715. icon_color: orange
  5716. cards: []
  5717. icon: mdi:account-group
  5718. header:
  5719. card:
  5720. type: markdown
  5721. text_only: true
  5722. content: >-
  5723. # Multiple Guest Room
  5724.  
  5725. {% set time = now().hour %}
  5726.  
  5727.  
  5728. {% if time < 19 %}
  5729.  
  5730. **Here is how it feels like today:**
  5731.  
  5732. 🌡️ 🔺High of {{ states('sensor.home_realfeel_temperature_max_day_0')
  5733. }}°C, 🔻Low of {{ states('sensor.home_realfeel_temperature_min_day_0')
  5734. }}°C.
  5735.  
  5736. {% else %}
  5737.  
  5738. **Here is how it feels like tomorrow:**
  5739.  
  5740. 🌡️ 🔺High of {{ states('sensor.home_realfeel_temperature_max_day_1')
  5741. }}°C, 🔻Low of {{ states('sensor.home_realfeel_temperature_min_day_1')
  5742. }}°C.
  5743.  
  5744. {% endif %}
  5745. layout: responsive
  5746. badges_position: top
  5747. badges:
  5748. - type: custom:mushroom-chips-card
  5749. alignment: start
  5750. chips:
  5751. - type: template
  5752. tap_action:
  5753. action: navigate
  5754. navigation_path: /mobile-light/room
  5755. icon: mdi:arrow-left
  5756. hold_action:
  5757. action: none
  5758. double_tap_action:
  5759. action: none
  5760. - type: sections
  5761. max_columns: 4
  5762. subview: true
  5763. path: office-room-details
  5764. title: Office Room Details
  5765. sections:
  5766. - type: grid
  5767. cards:
  5768. - type: custom:vertical-stack-in-card
  5769. cards:
  5770. - square: false
  5771. type: grid
  5772. cards:
  5773. - type: custom:mushroom-template-card
  5774. entity: sensor.office_room_temperature
  5775. primary: |
  5776. {{ states(entity) | round(1) }}°C
  5777. secondary: |
  5778. {{ state_attr(entity,'friendly_name') }}
  5779. icon: mdi:thermometer
  5780. icon_color: >
  5781. {% set temp = states('sensor.office_room_temperature') |
  5782. float %}
  5783.  
  5784. {% if temp < 16 %} #CEB2F5
  5785.  
  5786. {% elif temp < 18 %} #5EBDEE
  5787.  
  5788. {% elif temp < 22 %} #9cc8b8
  5789.  
  5790. {% elif temp < 24 %} #e7b562
  5791.  
  5792. {% elif temp < 27 %} #FF564B
  5793.  
  5794. {% else %} #99332d
  5795.  
  5796. {% endif %}
  5797. tap_action:
  5798. action: navigate
  5799. navigation_path: /mobile-light/room
  5800. columns: 1
  5801. - type: custom:config-template-card
  5802. entities:
  5803. - sensor.office_room_temperature
  5804. - climate.office_room
  5805. - climate.heatpump
  5806. variables:
  5807. - states['climate.heat_pump'].state
  5808. - states['climate.office_room'].state
  5809. - states['sensor.office_room_temperature'].state
  5810. card:
  5811. type: custom:mini-graph-card
  5812. entities:
  5813. - entity: sensor.office_room_temperature
  5814. name: Office Room Temperature
  5815. color: >-
  5816. ${vars[0] === 'heat_cool' || vars[1] === 'heat' ? 'red'
  5817. :
  5818. (vars[0] === 'heat_cool' || vars[1] === 'cool' ? '#12c8da' :
  5819. (vars[0] === 'heat_cool' || vars[1] === 'fan_cool' ? '#029688' :
  5820. (vars[2] < 16 ? '#CEB2F5' :
  5821. (vars[2] < 18 ? '#5EBDEE' :
  5822. (vars[2] < 22 ? '#9cc8b8' :
  5823. (vars[2] < 24 ? '#e7b562' :
  5824. (vars[2] < 27 ? '#FF564B' : '#99332d')))))))}
  5825. hours_to_show: 24
  5826. line_width: 3
  5827. font_size: 50
  5828. animate: true
  5829. height: 50
  5830. show:
  5831. name: false
  5832. icon: false
  5833. state: false
  5834. legend: false
  5835. fill: fade
  5836. - type: horizontal-stack
  5837. cards:
  5838. - type: custom:mushroom-climate-card
  5839. entity: climate.office_room
  5840. primary_info: none
  5841. secondary_info: none
  5842. icon_type: none
  5843. hvac_modes:
  5844. - 'off'
  5845. - heat_cool
  5846. show_temperature_control: true
  5847. tap_action:
  5848. action: toggle
  5849. - type: custom:mushroom-title-card
  5850. title: Lights
  5851. - type: custom:button-card
  5852. entity: switch.light_switch_or
  5853. icon: mdi:light-recessed
  5854. name: Room Light
  5855. tap_action:
  5856. action: toggle
  5857. styles:
  5858. grid:
  5859. - grid-template-columns: 64px 1fr
  5860. - grid-template-areas: '" i n "'
  5861. card:
  5862. - background: null
  5863. - height: 75px
  5864. img_cell:
  5865. - width: 22px
  5866. icon:
  5867. - width: 22px
  5868. - color: '#000000'
  5869. name:
  5870. - justify-self: start
  5871. - font-size: 16px
  5872. - font-weight: 400
  5873. - color: '#000000'
  5874. state:
  5875. - value: 'on'
  5876. styles:
  5877. card:
  5878. - background: '#ffec8e'
  5879. - type: custom:mushroom-title-card
  5880. title: |-
  5881. {% set open_windows = expand(states.binary_sensor.windows_mgr)
  5882. | selectattr('state', 'eq', 'on')
  5883. | list | count %}
  5884. {{ 'Window Open' if open_windows == 1 else 'Windows Open' }}
  5885. - type: custom:mushroom-chips-card
  5886. chips:
  5887. - type: conditional
  5888. conditions:
  5889. - condition: state
  5890. entity: binary_sensor.windows_or
  5891. state: 'on'
  5892. chip:
  5893. type: template
  5894. content: |
  5895. {{ expand(states.binary_sensor.windows_or)
  5896. | selectattr('state', 'eq', 'on')
  5897. | map(attribute='name')
  5898. | join(', ') }}
  5899. icon: mdi:window-open
  5900. icon_color: orange
  5901. visibility:
  5902. - condition: state
  5903. entity: binary_sensor.windows_or
  5904. state: 'on'
  5905. cards: []
  5906. icon: mdi:desktop-tower-monitor
  5907. header:
  5908. card:
  5909. type: markdown
  5910. text_only: true
  5911. content: >-
  5912. # Office Room
  5913.  
  5914. {% set time = now().hour %}
  5915.  
  5916.  
  5917. {% if time < 19 %}
  5918.  
  5919. **Here is how it feels like today:**
  5920.  
  5921. 🌡️ 🔺High of {{ states('sensor.home_realfeel_temperature_max_day_0')
  5922. }}°C, 🔻Low of {{ states('sensor.home_realfeel_temperature_min_day_0')
  5923. }}°C.
  5924.  
  5925. {% else %}
  5926.  
  5927. **Here is how it feels like tomorrow:**
  5928.  
  5929. 🌡️ 🔺High of {{ states('sensor.home_realfeel_temperature_max_day_1')
  5930. }}°C, 🔻Low of {{ states('sensor.home_realfeel_temperature_min_day_1')
  5931. }}°C.
  5932.  
  5933. {% endif %}
  5934. layout: responsive
  5935. badges_position: top
  5936. badges:
  5937. - type: custom:mushroom-chips-card
  5938. alignment: start
  5939. chips:
  5940. - type: template
  5941. tap_action:
  5942. action: navigate
  5943. navigation_path: /mobile-light/room
  5944. icon: mdi:arrow-left
  5945. hold_action:
  5946. action: none
  5947. double_tap_action:
  5948. action: none
  5949. - type: sections
  5950. max_columns: 4
  5951. title: Security - Garage
  5952. path: security-garage
  5953. icon: mdi:cctv
  5954. subview: true
  5955. sections:
  5956. - type: grid
  5957. cards:
  5958. - type: custom:mushroom-chips-card
  5959. alignment: start
  5960. chips:
  5961. - type: template
  5962. tap_action:
  5963. action: navigate
  5964. navigation_path: /mobile-light/overview
  5965. icon: mdi:arrow-left
  5966. hold_action:
  5967. action: none
  5968. double_tap_action:
  5969. action: none
  5970. - type: custom:mushroom-title-card
  5971. title: Camera
  5972. subtitle: ''
  5973. - type: custom:webrtc-camera
  5974. entity: camera.garage_camera_clear
  5975. mode: webrtc
  5976. muted: true
  5977. - type: custom:mushroom-chips-card
  5978. chips:
  5979. - type: entity
  5980. entity: button.garage_camera_ptz_left
  5981. content_info: name
  5982. tap_action:
  5983. action: toggle
  5984. hold_action:
  5985. action: none
  5986. double_tap_action:
  5987. action: none
  5988. icon: mdi:arrow-left
  5989. name: Pan Left
  5990. - type: entity
  5991. entity: button.garage_camera_ptz_stop
  5992. tap_action:
  5993. action: toggle
  5994. hold_action:
  5995. action: none
  5996. double_tap_action:
  5997. action: none
  5998. icon: mdi:stop
  5999. content_info: none
  6000. - type: entity
  6001. entity: button.garage_camera_ptz_right
  6002. icon: mdi:arrow-right
  6003. name: Pan Right
  6004. content_info: name
  6005. tap_action:
  6006. action: toggle
  6007. hold_action:
  6008. action: none
  6009. double_tap_action:
  6010. action: none
  6011.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement