Advertisement
kabootles

Home Assistant Wall Tablet Dasboard

Nov 6th, 2024
2,503
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 97.65 KB | None | 0 0
  1. wallpanel:
  2. enabled: true
  3. debug: false
  4. fullscreen: false
  5. idle_time: 0
  6. fade_in_time: 1
  7. black_screen_after_time: 0
  8. control_reactivation_time: 0
  9. screensaver_entity: input_boolean.${browser_id}_screensaver
  10. screensaver_stop_navigation_path: /lovelace/overview/
  11. image_url: media-source://media_source/local/wall-tablet
  12. image_fit: cover
  13. image_list_update_interval: 3600
  14. image_order: random
  15. display_time: 60
  16. crossfade_time: 1
  17. profile: device_${browser_id}
  18. profiles:
  19. device_wall_tablet_hallway:
  20. idle_time: 0
  21. title: ''
  22. background: var(--background-image)
  23. kiosk_mode:
  24. non_admin_settings:
  25. kiosk: true
  26. mobile_settings:
  27. hide_header: true
  28. sidebar:
  29. width:
  30. mobile: 0
  31. tablet: 25
  32. desktop: 20
  33. digitalClock: true
  34. digitalClockWithSeconds: false
  35. twelveHourVersion: true
  36. date: true
  37. dateFormat: dddd, MMMM DD
  38. period: false
  39. sidebarMenu:
  40. - action: navigate
  41. navigation_path: /lovelace/overview
  42. name: Overview
  43. active: true
  44. icon: mdi:view-dashboard
  45. - action: navigate
  46. navigation_path: /lovelace/lights
  47. name: Lights
  48. active: true
  49. icon: mdi:lightbulb-on
  50. - action: navigate
  51. navigation_path: /lovelace/music
  52. name: Music
  53. active: true
  54. icon: mdi:music
  55. - action: navigate
  56. navigation_path: /lovelace/calendar
  57. name: Calendar
  58. active: true
  59. icon: mdi:calendar
  60. - action: navigate
  61. navigation_path: /lovelace/security
  62. name: Security
  63. active: true
  64. icon: mdi:cctv
  65. - action: navigate
  66. navigation_path: /lovelace/system
  67. name: System
  68. active: true
  69. icon: mdi:cog
  70. bottomCard:
  71. type: custom:layout-card
  72. cardOptions:
  73. layout_type: custom:grid-layout
  74. cards:
  75. - type: custom:atomic-calendar-revive
  76. enableModeChange: true
  77. entities:
  78. - entity: calendar.holidays
  79. name: Holidays
  80. - entity: calendar.garbage_schedule
  81. name: Garbage Schedule
  82. - entity: calendar.birthdays
  83. name: Birthdays
  84. - entity: calendar.miscellaneous
  85. name: Miscellaneous
  86. defaultMode: Event
  87. hoursOnSameLine: true
  88. showMonth: false
  89. showAllDayHours: false
  90. showEventDate: true
  91. showCalendarName: false
  92. showLastCalendarWeek: false
  93. disableCalEventLink: false
  94. disableCalLocationLink: false
  95. showTimeRemaining: false
  96. showDatePerEvent: false
  97. showDate: false
  98. showLoader: false
  99. showRelativeTime: false
  100. compactMode: true
  101. showLocation: false
  102. showHours: false
  103. eventDateFormat: ddd D
  104. card_mod:
  105. style: |
  106. ha-card{
  107. box-shadow: none;
  108. border-top: 1px solid rgba(255, 255, 255, 0.2);
  109. border-radius: 0;
  110. padding: 0 !important;
  111. }
  112. ha-card .single-event-container{
  113. padding: 10px 0 !important;
  114. }
  115. ha-card .single-event-container:not(.daywrap):not(:first-child){
  116. padding-top: 0 !important;
  117. }
  118. ha-card .daywrap{
  119. border-top: 1px solid rgba(255, 255, 255, 0.2);
  120. }
  121. ha-card .event-left{
  122. width: 60px;
  123. }
  124. ha-card .single-event-container{
  125. line-height: 1.5em;
  126. }
  127. - type: conditional
  128. condition: and
  129. conditions:
  130. - condition: state
  131. entity: media_player.kabootlers_spotify
  132. state_not: idle
  133. - condition: state
  134. entity: media_player.kabootlers_spotify
  135. state_not: unavailable
  136. card:
  137. type: custom:bubble-card
  138. card_type: media-player
  139. entity: media_player.kabootlers_spotify
  140. hide:
  141. volume_button: true
  142. power_button: true
  143. next_button: true
  144. previous_button: true
  145. hideTopMenu: true
  146. style: |
  147. :host{
  148. --sidebar-background: var(--ha-card-background,var(--card-background-color,#fff));
  149. }
  150. :host .digitalClock{
  151. font-family: sans-serif;
  152. font-weight: 500;
  153. text-align: center;
  154. }
  155. :host .date{
  156. font-size: 20px;
  157. text-align: center;
  158. }
  159. :host .bottom layout-card{
  160. width: 100%;
  161. }
  162. views:
  163. - title: Overview
  164. path: overview
  165. type: sections
  166. sections:
  167. - type: grid
  168. cards:
  169. - type: heading
  170. heading: Outdoor Climate
  171. heading_style: title
  172. icon: ''
  173. - show_current: true
  174. show_forecast: true
  175. type: weather-forecast
  176. entity: weather.forecast_my_location
  177. forecast_type: daily
  178. name: My Location, My State
  179. column_span: 1
  180. - type: grid
  181. cards:
  182. - type: heading
  183. heading: Indoor Climate
  184. heading_style: title
  185. icon: ''
  186. - graph: line
  187. type: sensor
  188. detail: 1
  189. entity: sensor.house_temperature
  190. name: Temperature
  191. hours_to_show: 24
  192. - graph: line
  193. type: sensor
  194. detail: 1
  195. name: Humidity
  196. hours_to_show: 24
  197. entity: sensor.house_humidity
  198. - type: custom:mushroom-climate-card
  199. entity: climate.ecobee3lite
  200. name: Thermostat
  201. hvac_modes:
  202. - cool
  203. - 'off'
  204. - heat
  205. - heat_cool
  206. layout: horizontal
  207. show_temperature_control: false
  208. tap_action:
  209. action: more-info
  210. - type: grid
  211. cards:
  212. - type: heading
  213. heading: Modes
  214. heading_style: title
  215. icon: ''
  216. - type: tile
  217. tap_action:
  218. action: toggle
  219. entity: input_boolean.sleep_mode
  220. color: purple
  221. - type: tile
  222. entity: input_boolean.eco_mode
  223. tap_action:
  224. action: toggle
  225. color: green
  226. - type: tile
  227. tap_action:
  228. action: toggle
  229. entity: input_boolean.guest_mode
  230. color: teal
  231. - type: tile
  232. tap_action:
  233. action: toggle
  234. entity: input_boolean.away_mode
  235. color: primary
  236. - type: custom:mushroom-template-card
  237. primary: Focus Mode
  238. secondary: '{{ state_translated(''input_boolean.focus_mode'') }}'
  239. icon: mdi:bullseye-arrow
  240. tap_action:
  241. action: navigate
  242. navigation_path: '#focus-mode'
  243. icon_color: |-
  244. {% if is_state('input_boolean.focus_mode', 'on') %}
  245. yellow
  246. {% endif %}
  247. entity: input_boolean.focus_mode
  248. card_mod:
  249. style: |
  250. ha-state-icon{
  251. animation: {% if is_state('input_boolean.party_mode', 'on') %} wiggle 0.18s linear infinite;
  252. {% else %} none;
  253. {% endif %}
  254. }
  255. @keyframes wiggle{
  256. 0% {
  257. webkit-transform: rotate(0deg);
  258. transform: rotate(0deg);
  259. }
  260. 25% {
  261. webkit-transform: rotate(5deg);
  262. transform: rotate(5deg);
  263. }
  264. 50% {
  265. webkit-transform: rotate(0deg);
  266. transform: rotate(0deg);
  267. }
  268. 75% {
  269. webkit-transform: rotate(-5deg);
  270. transform: rotate(-5deg);
  271. }
  272. 100% {
  273. webkit-transform: rotate(0deg);
  274. transform: rotate(0deg);
  275. }
  276. }
  277. - type: tile
  278. tap_action:
  279. action: toggle
  280. color: deep-orange
  281. entity: input_boolean.vacation_mode
  282. - type: custom:mushroom-template-card
  283. primary: Party Mode
  284. secondary: '{{ state_translated(''input_boolean.party_mode'') }}'
  285. icon: mdi:party-popper
  286. tap_action:
  287. action: navigate
  288. navigation_path: '#party-mode'
  289. icon_color: |-
  290. {% if is_state('input_boolean.party_mode', 'on') %}
  291. pink
  292. {% endif %}
  293. card_mod:
  294. style: |
  295. ha-state-icon{
  296. animation: {% if is_state('input_boolean.party_mode', 'on') %} wiggle 0.18s linear infinite;
  297. {% else %} none;
  298. {% endif %}
  299. }
  300. @keyframes wiggle{
  301. 0% {
  302. webkit-transform: rotate(0deg);
  303. transform: rotate(0deg);
  304. }
  305. 25% {
  306. webkit-transform: rotate(5deg);
  307. transform: rotate(5deg);
  308. }
  309. 50% {
  310. webkit-transform: rotate(0deg);
  311. transform: rotate(0deg);
  312. }
  313. 75% {
  314. webkit-transform: rotate(-5deg);
  315. transform: rotate(-5deg);
  316. }
  317. 100% {
  318. webkit-transform: rotate(0deg);
  319. transform: rotate(0deg);
  320. }
  321. }
  322. - type: grid
  323. cards:
  324. - type: heading
  325. heading: Rooms & Areas
  326. heading_style: title
  327. icon: ''
  328. - type: custom:mushroom-template-card
  329. primary: Office
  330. secondary: >-
  331. {{ (states('sensor.thermostat_office_temperature_current') |
  332. round(1)) | string + " °F" }} / {{
  333. (states('sensor.thermostat_office_humidity_current') | round(1)) |
  334. string + "%" }}
  335. icon: mdi:briefcase
  336. tap_action:
  337. action: navigate
  338. navigation_path: '#office'
  339. icon_color: |-
  340. {% if is_state('light.all_office_lights', 'on') %}
  341. orange
  342. {% endif %}
  343. - type: custom:mushroom-template-card
  344. primary: Bedroom
  345. secondary: >-
  346. {{ (states('sensor.thermostat_main_bedroom_temperature_current') |
  347. round(1)) | string + " °F" }} / {{
  348. (states('sensor.thermostat_main_bedroom_humidity_current') |
  349. round(1)) | string + "%" }}
  350. icon: mdi:bed
  351. icon_color: |-
  352. {% if is_state('light.all_bedroom_lights', 'on') %}
  353. orange
  354. {% endif %}
  355. tap_action:
  356. action: navigate
  357. navigation_path: '#bedroom'
  358. badge_icon: |-
  359. {% if is_state('binary_sensor.bed_occupancy', 'on') %}
  360. mdi:sleep
  361. {% endif %}
  362. badge_color: |-
  363. {% if is_state('binary_sensor.bed_occupancy', 'on') %}
  364. purple
  365. {% endif %}
  366. - type: custom:mushroom-template-card
  367. primary: Living Room
  368. secondary: >-
  369. {{ (states('sensor.thermostat_living_room_temperature_current') |
  370. round(1)) | string + " °F" }} / {{
  371. (states('sensor.thermostat_living_room_humidity_current') |
  372. round(1)) | string + "%" }}
  373. icon: mdi:sofa
  374. tap_action:
  375. action: navigate
  376. navigation_path: '#living-room'
  377. icon_color: |-
  378. {% if is_state('light.all_living_room_lights', 'on') %}
  379. orange
  380. {% endif %}
  381. badge_icon: ''
  382. badge_color: ''
  383. - type: custom:mushroom-template-card
  384. primary: Kitchen
  385. secondary: >-
  386. {{ (states('sensor.thermostat_dining_room_temperature_current') |
  387. round(1)) | string + " °F" }} / {{
  388. (states('sensor.thermostat_dining_room_humidity_current') |
  389. round(1)) | string + "%" }}
  390. icon: mdi:chef-hat
  391. tap_action:
  392. action: navigate
  393. navigation_path: '#kitchen'
  394. icon_color: |-
  395. {% if is_state('light.all_kitchen_lights', 'on') %}
  396. orange
  397. {% endif %}
  398. badge_icon: >-
  399. {% if
  400. is_state('binary_sensor.kitchen_multisensor_motion_detection',
  401. 'on') %}
  402. mdi:run
  403. {% endif %}
  404. badge_color: >-
  405. {% if
  406. is_state('binary_sensor.kitchen_multisensor_motion_detection',
  407. 'on') %}
  408. blue
  409. {% endif %}
  410. multiline_secondary: false
  411. fill_container: false
  412. - type: custom:mushroom-template-card
  413. primary: Bathroom
  414. secondary: >-
  415. {{ (states('sensor.thermostat_main_bathroom_temperature_current')
  416. | round(1)) | string + " °F" }} / {{
  417. (states('sensor.thermostat_main_bathroom_humidity_current') |
  418. round(1)) | string + "%" }}
  419. icon: mdi:toilet
  420. tap_action:
  421. action: navigate
  422. navigation_path: '#bathroom'
  423. icon_color: |-
  424. {% if is_state('light.all_main_bathroom_lights', 'on') %}
  425. orange
  426. {% endif %}
  427. - type: custom:mushroom-template-card
  428. primary: Hallway
  429. secondary: >-
  430. {{ (states('sensor.thermostat_hallway_temperature_current') |
  431. round(1)) | string + " °F" }} / {{
  432. (states('sensor.thermostat_hallway_humidity_current') | round(1))
  433. | string + "%" }}
  434. icon: mdi:door
  435. tap_action:
  436. action: navigate
  437. navigation_path: '#hallway'
  438. icon_color: |-
  439. {% if is_state('light.all_hallway_lights', 'on') %}
  440. orange
  441. {% endif %}
  442. - type: custom:mushroom-template-card
  443. primary: Basement
  444. secondary: ''
  445. icon: mdi:stairs
  446. tap_action:
  447. action: navigate
  448. navigation_path: '#basement'
  449. icon_color: |-
  450. {% if is_state('light.all_basement_lights', 'on') %}
  451. orange
  452. {% endif %}
  453. - type: custom:mushroom-template-card
  454. primary: Garage
  455. secondary: ''
  456. icon: |-
  457. {% if is_state('cover.garage_door', 'open') %}
  458. mdi:garage-open
  459. {% else %}
  460. mdi:garage
  461. {% endif %}
  462. tap_action:
  463. action: navigate
  464. navigation_path: '#garage'
  465. icon_color: |-
  466. {% if is_state('cover.garage_door', 'open') %}
  467. red
  468. {% elif is_state('light.all_garage_lights', 'on') %}
  469. orange
  470. {% endif %}
  471. badge_color: ''
  472. badge_icon: ''
  473. - type: grid
  474. cards:
  475. - type: heading
  476. heading: Security
  477. heading_style: title
  478. icon: ''
  479. - type: custom:mushroom-alarm-control-panel-card
  480. entity: alarm_control_panel.alarmo
  481. states:
  482. - armed_home
  483. - armed_away
  484. - armed_night
  485. - armed_vacation
  486. show_keypad: false
  487. fill_container: false
  488. layout: horizontal
  489. name: Security
  490. - type: heading
  491. heading: Doors
  492. heading_style: title
  493. icon: ''
  494. - type: custom:mushroom-template-card
  495. primary: Side Door
  496. secondary: '{{ state_translated(''lock.side_door'') }}'
  497. icon: >-
  498. {% if is_state('lock.side_door', 'locked') %}
  499. mdi:lock
  500. {% elif is_state('lock.side_door', 'locking') or
  501. is_state('lock.side_door', 'unlocking') %}
  502. mdi:lock-clock
  503. {% elif is_state('lock.side_door', 'unlocked') %}
  504. mdi:lock-open-variant
  505. {% else %}
  506. mdi:lock-alert
  507. {% endif %}
  508. tap_action:
  509. action: toggle
  510. entity: lock.side_door
  511. icon_color: >-
  512. {% if is_state('lock.side_door', 'locked') %}
  513. green
  514. {% elif is_state('lock.side_door', 'locking') or
  515. is_state('lock.side_door', 'unlocking') %}
  516. orange
  517. {% else %}
  518. red
  519. {% endif %}
  520. fill_container: false
  521. layout: horizontal
  522. badge_icon: |-
  523. {% if is_state('binary_sensor.side_doorbell_person', 'on') %}
  524. mdi:walk
  525. {% endif %}
  526. badge_color: |-
  527. {% if is_state('binary_sensor.side_doorbell_person', 'on') %}
  528. blue
  529. {% endif %}
  530. - type: custom:mushroom-cover-card
  531. name: Garage Door
  532. show_buttons_control: true
  533. layout: horizontal
  534. show_position_control: false
  535. entity: cover.garage_door
  536. - type: grid
  537. cards:
  538. - type: heading
  539. heading: To-Do List
  540. heading_style: title
  541. badges: []
  542. icon: ''
  543. - type: todo-list
  544. entity: todo.to_do_list
  545. card_mod:
  546. style: |
  547. ha-card.type-todo-list{
  548. height: 256px;
  549. overflow-y: scroll;
  550. }
  551. ha-card .addRow{
  552. display: none;
  553. }
  554. ha-card .header{
  555. display: none;
  556. }
  557. ha-card .completed{
  558. display: none;
  559. }
  560. ha-card div[role="separator"]{
  561. display: none;
  562. }
  563. ha-card .empty{
  564. padding: 8px 32px;
  565. }
  566. - type: grid
  567. cards:
  568. - type: heading
  569. heading: Appliances
  570. heading_style: title
  571. icon: ''
  572. - type: custom:mushroom-template-card
  573. primary: Washer
  574. secondary: >-
  575. {{ states('sensor.washer_status') }} {% if
  576. is_state('sensor.washer_status', 'Washing') or
  577. is_state('sensor.washer_status', 'Rinsing') or
  578. is_state('sensor.washer_status', 'Spinning') or
  579. is_state('sensor.washer_status', 'Preparing') %}- {% set
  580. remaining_seconds =
  581. (as_timestamp(states('sensor.washer_washer_completion_time'))-as_timestamp(now()))|int
  582. %} {% set remaining_minutes = (remaining_seconds // 60) %} {{
  583. remaining_minutes }}m {% endif %}
  584. icon: mdi:washing-machine
  585. icon_color: >-
  586. {% if is_state('sensor.washer_status', 'Washing') or
  587. is_state('sensor.washer_status', 'Rinsing') or
  588. is_state('sensor.washer_status', 'Spinning') or
  589. is_state('sensor.washer_status', 'Preparing') %}
  590. blue
  591. {% elif is_state('sensor.washer_status', 'Paused') %}
  592. orange
  593. {% elif is_state('sensor.washer_status', 'Finished') %}
  594. green
  595. {% endif %}
  596. tap_action:
  597. action: navigate
  598. navigation_path: '#washer'
  599. entity: sensor.washer_time_remaining
  600. card_mod:
  601. style: |
  602. ha-state-icon{
  603. animation: {% if is_state('sensor.washer_status', 'Preparing') or is_state('sensor.washer_status', 'Washing') or is_state('sensor.washer_status', 'Rinsing') or is_state('sensor.washer_status', 'Spinning') %} wiggle 0.4s linear infinite;
  604. {% elif is_state('sensor.washer_status', 'Unknown') or is_state('sensor.washer_status', 'Paused') %} blink 0.5s linear infinite;
  605. {% else %} none;
  606. {% endif %}
  607. }
  608. @keyframes blink{
  609. 0%, 100% {opacity: 1;}
  610. 50% {opacity: 0;}
  611. }
  612. @keyframes wiggle{
  613. 0% {
  614. webkit-transform: translate(0, 0) rotate(0deg);
  615. transform: translate(0, 0) rotate(0deg);
  616. }
  617. 25% {
  618. webkit-transform: translate(1px, 1px) rotate(5deg);
  619. transform: translate(1px, 1px) rotate(5deg);
  620. }
  621. 50% {
  622. webkit-transform: translate(0, 0) rotate(0deg);
  623. transform: translate(0, 0) rotate(0deg);
  624. }
  625. 75% {
  626. webkit-transform: translate(-1px, 1px) rotate(-5deg);
  627. transform: translate(-1px, 1px) rotate(-5deg);
  628. }
  629. 100% {
  630. webkit-transform: translate(0, 0) rotate(0deg);
  631. transform: translate(0, 0) rotate(0deg);
  632. }
  633. }
  634. - type: custom:mushroom-template-card
  635. primary: Dryer
  636. secondary: >-
  637. {{ states('sensor.dryer_status') }}{% if
  638. is_state('sensor.dryer_status', 'Drying') or
  639. is_state('sensor.dryer_status', 'Cooling') %} - {% set
  640. remaining_seconds =
  641. (as_timestamp(states('sensor.dryer_dryer_completion_time'))-as_timestamp(now()))|int
  642. %} {% set remaining_minutes = (remaining_seconds // 60) %} {{
  643. remaining_minutes }}m {% endif %}
  644. icon: mdi:tumble-dryer
  645. icon_color: |-
  646. {% if is_state('sensor.dryer_status', 'Drying') %}
  647. red
  648. {% elif is_state('sensor.dryer_status', 'Cooling') %}
  649. blue
  650. {% elif is_state('sensor.dryer_status', 'Paused') %}
  651. orange
  652. {% elif is_state('sensor.dryer_status', 'Finished') %}
  653. green
  654. {% endif %}
  655. tap_action:
  656. action: navigate
  657. navigation_path: '#dryer'
  658. entity: sensor.dryer_status
  659. card_mod:
  660. style: |
  661. ha-state-icon{
  662. animation: {% if is_state('sensor.dryer_status', 'Drying') or is_state('sensor.dryer_status', 'Cooling') %} wiggle 0.4s linear infinite;
  663. {% elif is_state('sensor.dryer_status', 'Unknown') or is_state('sensor.dryer_status', 'Paused') %} blink 2s linear infinite;
  664. {% else %} none;
  665. {% endif %}
  666. }
  667. @keyframes blink{}
  668. @keyframes wiggle{
  669. 0% {
  670. webkit-transform: translate(0, 0) rotate(0deg);
  671. transform: translate(0, 0) rotate(0deg);
  672. }
  673. 25% {
  674. webkit-transform: translate(1px, 1px) rotate(5deg);
  675. transform: translate(1px, 1px) rotate(5deg);
  676. }
  677. 50% {
  678. webkit-transform: translate(0, 0) rotate(0deg);
  679. transform: translate(0, 0) rotate(0deg);
  680. }
  681. 75% {
  682. webkit-transform: translate(-1px, 1px) rotate(-5deg);
  683. transform: translate(-1px, 1px) rotate(-5deg);
  684. }
  685. 100% {
  686. webkit-transform: translate(0, 0) rotate(0deg);
  687. transform: translate(0, 0) rotate(0deg);
  688. }
  689. }
  690. - type: custom:mushroom-template-card
  691. primary: Dishwasher
  692. secondary: '{{ states(''sensor.dishwasher_status'') }}'
  693. icon: mdi:dishwasher
  694. badge_color: ''
  695. icon_color: >-
  696. {% if is_state('sensor.dishwasher_status', 'Preparing') or
  697. is_state('sensor.dishwasher_status', 'Running') %}
  698. blue
  699. {% endif %}
  700. tap_action:
  701. action: more-info
  702. entity: sensor.dishwasher_energy
  703. card_mod:
  704. style: |
  705. ha-state-icon{
  706. animation: {% if is_state('sensor.dishwasher_status', 'Running') %} wiggle 0.4s linear infinite;
  707. {% elif is_state('sensor.dishwasher_status', 'Unknown') %} blink 2s linear infinite;
  708. {% else %} none;
  709. {% endif %}
  710. }
  711. @keyframes blink{}
  712. @keyframes wiggle{
  713. 0% {
  714. webkit-transform: translate(0, 0) rotate(0deg);
  715. transform: translate(0, 0) rotate(0deg);
  716. }
  717. 25% {
  718. webkit-transform: translate(1px, 1px) rotate(5deg);
  719. transform: translate(1px, 1px) rotate(5deg);
  720. }
  721. 50% {
  722. webkit-transform: translate(0, 0) rotate(0deg);
  723. transform: translate(0, 0) rotate(0deg);
  724. }
  725. 75% {
  726. webkit-transform: translate(-1px, 1px) rotate(-5deg);
  727. transform: translate(-1px, 1px) rotate(-5deg);
  728. }
  729. 100% {
  730. webkit-transform: translate(0, 0) rotate(0deg);
  731. transform: translate(0, 0) rotate(0deg);
  732. }
  733. }
  734. - type: custom:mushroom-vacuum-card
  735. entity: vacuum.dionysus
  736. tap_action:
  737. action: more-info
  738. icon_animation: true
  739. - type: grid
  740. cards:
  741. - type: heading
  742. heading: Mail
  743. heading_style: title
  744. icon: ''
  745. - type: custom:mushroom-template-card
  746. primary: USPS
  747. secondary: |-
  748. {% if states('sensor.mail_usps_delivered') | int > 0 %}
  749. Delivered
  750. {% else %}
  751. {{ states('sensor.mail_usps_mail') + " piece(s)"}}
  752. {% endif %}
  753. icon: mdi:mailbox
  754. icon_color: |-
  755. {% if states('sensor.mail_usps_delivered') | int > 0 %}
  756. green
  757. {% elif states('sensor.mail_usps_mail') | int > 0 %}
  758. blue
  759. {% endif %}
  760. entity: camera.mail_usps_camera
  761. tap_action:
  762. action: more-info
  763. - type: custom:mushroom-template-card
  764. primary: Amazon
  765. secondary: |-
  766. {% if states('sensor.mail_amazon_packages_delivered') | int > 0 %}
  767. Delivered
  768. {% else %}
  769. {{ states('sensor.mail_amazon_packages') + " package(s)"}}
  770. {% endif %}
  771. icon: mdi:package
  772. icon_color: |-
  773. {% if states('sensor.mail_amazon_packages_delivered') | int > 0 %}
  774. green
  775. {% elif states('sensor.mail_amazon_packages') | int > 0 %}
  776. blue
  777. {% endif %}
  778. entity: sensor.mail_amazon_packages
  779. tap_action:
  780. action: more-info
  781. - type: custom:mushroom-template-card
  782. primary: UPS
  783. secondary: |-
  784. {% if states('sensor.mail_ups_delivered') | int > 0 %}
  785. Delivered
  786. {% else %}
  787. {{ states('sensor.mail_ups_packages') + " package(s)"}}
  788. {% endif %}
  789. icon: mdi:package
  790. icon_color: |-
  791. {% if states('sensor.mail_ups_delivered') | int > 0 %}
  792. green
  793. {% elif states('sensor.mail_ups_packages') | int > 0 %}
  794. blue
  795. {% endif %}
  796. - type: custom:mushroom-template-card
  797. primary: FedEx
  798. secondary: |-
  799. {% if states('sensor.mail_fedex_delivered') | int > 0 %}
  800. Delivered
  801. {% else %}
  802. {{ states('sensor.mail_fedex_packages') + " package(s)"}}
  803. {% endif %}
  804. icon: mdi:package
  805. icon_color: |-
  806. {% if states('sensor.mail_fedex_delivered') | int > 0 %}
  807. green
  808. {% elif states('sensor.mail_fedex_packages') | int > 0 %}
  809. blue
  810. {% endif %}
  811. - type: grid
  812. cards:
  813. - type: heading
  814. heading: Lighting
  815. heading_style: title
  816. icon: ''
  817. - type: custom:mushroom-template-card
  818. primary: Light Mode
  819. secondary: ''
  820. icon: mdi:white-balance-sunny
  821. tap_action:
  822. action: call-service
  823. service: input_select.select_option
  824. target:
  825. entity_id: input_select.lighting_theme
  826. data:
  827. option: Light Mode
  828. icon_color: |-
  829. {% if is_state('input_select.lighting_theme', 'Light Mode') %}
  830. orange
  831. {% endif %}
  832. entity: input_select.lighting_theme
  833. card_mod:
  834. style: |
  835. ha-state-icon{
  836. animation: {% if is_state('input_select.lighting_theme', 'Light Mode') %} spin 5s linear infinite;
  837. {% else %} none;
  838. {% endif %}
  839. }
  840. @keyframes spin{
  841. 0% {
  842. webkit-transform: rotate(0deg);
  843. transform: rotate(0deg);
  844. }
  845. 100% {
  846. webkit-transform: rotate(360deg);
  847. transform: rotate(360deg);
  848. }
  849. }
  850. - type: custom:mushroom-template-card
  851. primary: Dark Mode
  852. secondary: ''
  853. icon: mdi:moon-waxing-crescent
  854. tap_action:
  855. action: call-service
  856. service: input_select.select_option
  857. target:
  858. entity_id: input_select.lighting_theme
  859. data:
  860. option: Dark Mode
  861. icon_color: |-
  862. {% if is_state('input_select.lighting_theme', 'Dark Mode') %}
  863. purple
  864. {% endif %}
  865. entity: input_select.lighting_theme
  866. card_mod:
  867. style: |
  868. ha-state-icon{
  869. animation: {% if is_state('input_select.lighting_theme', 'Dark Mode') %} wiggle 6s ease infinite;
  870. {% else %} none;
  871. {% endif %}
  872. }
  873. @keyframes wiggle{
  874. 0% {
  875. webkit-transform: rotate(0deg);
  876. transform: rotate(0deg);
  877. }
  878. 25% {
  879. webkit-transform: rotate(50deg);
  880. transform: rotate(50deg);
  881. }
  882. 50% {
  883. webkit-transform: rotate(50deg);
  884. transform: rotate(50deg);
  885. }
  886. 75% {
  887. webkit-transform: rotate(0deg);
  888. transform: rotate(0deg);
  889. }
  890. 100% {
  891. webkit-transform: rotate(0deg);
  892. transform: rotate(0deg);
  893. }
  894. }
  895. - type: custom:mushroom-template-card
  896. primary: Party Mode
  897. secondary: ''
  898. icon: mdi:party-popper
  899. tap_action:
  900. action: call-service
  901. service: input_select.select_option
  902. target:
  903. entity_id: input_select.lighting_theme
  904. data:
  905. option: Party Mode
  906. icon_color: |-
  907. {% if is_state('input_select.lighting_theme', 'Party Mode') %}
  908. pink
  909. {% endif %}
  910. entity: input_select.lighting_theme
  911. card_mod:
  912. style: |
  913. ha-state-icon{
  914. animation: {% if is_state('input_select.lighting_theme', 'Party Mode') %} wiggle 0.18s linear infinite;
  915. {% else %} none;
  916. {% endif %}
  917. }
  918. @keyframes wiggle{
  919. 0% {
  920. webkit-transform: rotate(0deg);
  921. transform: rotate(0deg);
  922. }
  923. 25% {
  924. webkit-transform: rotate(5deg);
  925. transform: rotate(5deg);
  926. }
  927. 50% {
  928. webkit-transform: rotate(0deg);
  929. transform: rotate(0deg);
  930. }
  931. 75% {
  932. webkit-transform: rotate(-5deg);
  933. transform: rotate(-5deg);
  934. }
  935. 100% {
  936. webkit-transform: rotate(0deg);
  937. transform: rotate(0deg);
  938. }
  939. }
  940. - type: grid
  941. cards:
  942. - type: vertical-stack
  943. cards:
  944. - type: custom:bubble-card
  945. card_type: pop-up
  946. hash: '#party-mode'
  947. - type: custom:mushroom-title-card
  948. title: Party Mode
  949. subtitle: Let's get the party started!
  950. - type: custom:bubble-card
  951. card_type: select
  952. entity: input_select.party_music
  953. show_state: true
  954. show_attribute: false
  955. attribute: options
  956. show_last_changed: false
  957. force_icon: false
  958. show_icon: true
  959. scrolling_effect: true
  960. - type: conditional
  961. conditions:
  962. - condition: state
  963. entity: input_boolean.party_mode
  964. state: 'off'
  965. card:
  966. type: custom:bubble-card
  967. card_type: button
  968. tap_action:
  969. action: call-service
  970. target:
  971. entity_id: input_boolean.party_mode
  972. service: input_boolean.turn_on
  973. entity: input_boolean.party_mode
  974. name: Start the Party
  975. styles: |2-
  976. .bubble-icon{
  977. animation: wiggle 0.18s linear infinite;
  978. }
  979. @keyframes wiggle{
  980. 0% {
  981. webkit-transform: rotate(0deg);
  982. transform: rotate(0deg);
  983. }
  984. 25% {
  985. webkit-transform: rotate(5deg);
  986. transform: rotate(5deg);
  987. }
  988. 50% {
  989. webkit-transform: rotate(0deg);
  990. transform: rotate(0deg);
  991. }
  992. 75% {
  993. webkit-transform: rotate(-5deg);
  994. transform: rotate(-5deg);
  995. }
  996. 100% {
  997. webkit-transform: rotate(0deg);
  998. transform: rotate(0deg);
  999. }
  1000. }
  1001. .bubble-button-card-container {
  1002. background: var(--pink-color) !important;
  1003. }
  1004. .bubble-icon{
  1005. color: var(--pink-color) !important;
  1006. }
  1007. .bubble-icon-container{
  1008. background-color: rgba(0,0,0,0.6) !important;
  1009. }
  1010. button_action:
  1011. tap_action:
  1012. action: call-service
  1013. service: input_boolean.turn_on
  1014. target:
  1015. entity_id: input_boolean.party_mode
  1016. - type: conditional
  1017. conditions:
  1018. - condition: state
  1019. entity: input_boolean.party_mode
  1020. state: 'on'
  1021. card:
  1022. type: custom:bubble-card
  1023. card_type: button
  1024. tap_action:
  1025. action: call-service
  1026. target:
  1027. entity_id: input_boolean.party_mode
  1028. service: input_boolean.turn_off
  1029. entity: input_boolean.party_mode
  1030. name: End the Party
  1031. styles: ''
  1032. button_action:
  1033. tap_action:
  1034. action: call-service
  1035. service: input_boolean.turn_off
  1036. target:
  1037. entity_id: input_boolean.party_mode
  1038. - type: grid
  1039. cards:
  1040. - type: vertical-stack
  1041. cards:
  1042. - type: custom:bubble-card
  1043. card_type: pop-up
  1044. hash: '#focus-mode'
  1045. - type: custom:mushroom-title-card
  1046. title: Focus Mode
  1047. subtitle: Set Focus Time to zero for no time limit.
  1048. - type: custom:bubble-card
  1049. card_type: button
  1050. entity: input_number.focus_time
  1051. button_type: state
  1052. - type: conditional
  1053. conditions:
  1054. - condition: state
  1055. entity: input_boolean.focus_mode
  1056. state: 'off'
  1057. card:
  1058. type: custom:bubble-card
  1059. card_type: button
  1060. tap_action:
  1061. action: call-service
  1062. target: {}
  1063. service: script.focus_mode_start
  1064. name: Start the Focus
  1065. styles: |
  1066.  
  1067. .bubble-button-card-container {
  1068. background: var(--orange-color) !important;
  1069. }
  1070. .bubble-icon{
  1071. color: var(--orange-color) !important;
  1072. }
  1073. .bubble-icon-container{
  1074. background-color: rgba(0,0,0,0.6) !important;
  1075. }
  1076. button_action:
  1077. tap_action:
  1078. action: call-service
  1079. service: script.focus_mode_start
  1080. target: {}
  1081. entity: script.focus_mode_start
  1082. - type: conditional
  1083. conditions:
  1084. - condition: state
  1085. entity: input_boolean.focus_mode
  1086. state: 'on'
  1087. - condition: numeric_state
  1088. entity: input_number.focus_time
  1089. above: 0
  1090. card:
  1091. type: custom:bubble-card
  1092. card_type: button
  1093. tap_action:
  1094. action: call-service
  1095. target:
  1096. entity_id: timer.focus_mode_timer
  1097. service: timer.cancel
  1098. name: End the Focus
  1099. styles: ''
  1100. button_action:
  1101. tap_action:
  1102. action: call-service
  1103. service: timer.cancel
  1104. target:
  1105. entity_id: timer.focus_mode_timer
  1106. button_type: name
  1107. icon: mdi:bullseye-arrow
  1108. - type: conditional
  1109. conditions:
  1110. - condition: state
  1111. entity: input_boolean.focus_mode
  1112. state: 'on'
  1113. - condition: numeric_state
  1114. entity: input_number.focus_time
  1115. below: 1
  1116. card:
  1117. type: custom:bubble-card
  1118. card_type: button
  1119. tap_action:
  1120. action: call-service
  1121. target:
  1122. entity_id: input_boolean.focus_mode
  1123. service: input_boolean.turn_off
  1124. name: End the Focus
  1125. styles: ''
  1126. button_action:
  1127. tap_action:
  1128. action: call-service
  1129. service: input_boolean.turn_off
  1130. target:
  1131. entity_id: input_boolean.focus_mode
  1132. button_type: name
  1133. icon: mdi:bullseye-arrow
  1134. - type: grid
  1135. cards:
  1136. - type: vertical-stack
  1137. cards:
  1138. - type: custom:bubble-card
  1139. card_type: pop-up
  1140. hash: '#office'
  1141. - type: custom:mushroom-title-card
  1142. title: Office
  1143. subtitle: So work or play?...or both?
  1144. - type: horizontal-stack
  1145. cards:
  1146. - type: custom:mini-graph-card
  1147. name: Temperature
  1148. entities:
  1149. - entity: sensor.thermostat_office_temperature_current
  1150. hours_to_show: 24
  1151. points_per_hour: 1
  1152. animate: true
  1153. - type: custom:mini-graph-card
  1154. name: Humidity
  1155. entities:
  1156. - entity: sensor.thermostat_office_humidity_current
  1157. hours_to_show: 24
  1158. points_per_hour: 1
  1159. animate: true
  1160. - type: custom:bubble-card
  1161. entity: climate.thermostat_office
  1162. card_type: button
  1163. name: Thermostat
  1164. show_attribute: true
  1165. attribute: current_temperature
  1166. button_type: state
  1167. sub_button: []
  1168. - type: horizontal-stack
  1169. cards:
  1170. - type: custom:bubble-card
  1171. card_type: button
  1172. entity: switch.office_studio_monitors
  1173. show_attribute: false
  1174. show_state: true
  1175. - type: custom:mushroom-title-card
  1176. title: ''
  1177. subtitle: Lights
  1178. - type: horizontal-stack
  1179. cards:
  1180. - type: custom:bubble-card
  1181. card_type: button
  1182. entity: light.office_entertainment_center_lamp
  1183. name: TV Lamp
  1184. show_state: true
  1185. button_type: slider
  1186. tap_action:
  1187. action: toggle
  1188. - type: custom:bubble-card
  1189. card_type: button
  1190. name: TV Lamp
  1191. show_state: true
  1192. button_type: slider
  1193. entity: light.desk_lamp
  1194. tap_action:
  1195. action: toggle
  1196. - type: horizontal-stack
  1197. cards:
  1198. - type: custom:bubble-card
  1199. card_type: button
  1200. entity: light.office_desk_leds
  1201. name: ''
  1202. show_state: true
  1203. button_type: slider
  1204. icon: mdi:led-strip-variant
  1205. tap_action:
  1206. action: toggle
  1207. - type: custom:bubble-card
  1208. card_type: button
  1209. name: Computer Monitor LEDs
  1210. show_state: true
  1211. button_type: slider
  1212. entity: light.office_desk_computer_monitor_leds
  1213. icon: mdi:led-strip-variant
  1214. tap_action:
  1215. action: toggle
  1216. - type: horizontal-stack
  1217. cards:
  1218. - type: custom:bubble-card
  1219. card_type: button
  1220. name: Bookshelf Lights
  1221. show_state: true
  1222. button_type: slider
  1223. entity: light.office_bookshelf_leds
  1224. tap_action:
  1225. action: toggle
  1226. - type: custom:bubble-card
  1227. card_type: button
  1228. name: Entertainment Center Lights
  1229. show_state: true
  1230. button_type: slider
  1231. entity: light.office_entertainment_center_leds
  1232. icon: mdi:led-strip-variant
  1233. tap_action:
  1234. action: toggle
  1235. - type: horizontal-stack
  1236. cards:
  1237. - type: custom:bubble-card
  1238. card_type: button
  1239. name: Ceiling Light
  1240. show_state: true
  1241. button_type: slider
  1242. entity: light.office_ceiling_light
  1243. tap_action:
  1244. action: toggle
  1245. - type: grid
  1246. cards:
  1247. - type: vertical-stack
  1248. cards:
  1249. - type: custom:bubble-card
  1250. card_type: pop-up
  1251. hash: '#living-room'
  1252. - type: custom:mushroom-title-card
  1253. title: Living Room
  1254. subtitle: Please god, not another round of zombies...
  1255. - type: horizontal-stack
  1256. cards:
  1257. - type: custom:mini-graph-card
  1258. name: Temperature
  1259. entities:
  1260. - entity: sensor.thermostat_living_room_temperature_current
  1261. hours_to_show: 24
  1262. points_per_hour: 1
  1263. animate: true
  1264. - type: custom:mini-graph-card
  1265. name: Humidity
  1266. entities:
  1267. - entity: sensor.thermostat_living_room_humidity_current
  1268. hours_to_show: 24
  1269. points_per_hour: 1
  1270. animate: true
  1271. - type: custom:bubble-card
  1272. entity: climate.thermostat_living_room
  1273. card_type: button
  1274. name: Thermostat
  1275. show_attribute: true
  1276. attribute: current_temperature
  1277. button_type: state
  1278. sub_button: []
  1279. - type: custom:mushroom-title-card
  1280. title: ''
  1281. subtitle: Lights
  1282. - type: horizontal-stack
  1283. cards:
  1284. - type: custom:bubble-card
  1285. card_type: button
  1286. name: Lamp
  1287. show_state: true
  1288. button_type: slider
  1289. entity: light.living_room_lamp
  1290. tap_action:
  1291. action: toggle
  1292. - type: custom:bubble-card
  1293. card_type: button
  1294. name: TV Lights
  1295. show_state: true
  1296. button_type: slider
  1297. entity: light.living_room_tv_lights
  1298. icon: mdi:led-strip-variant
  1299. tap_action:
  1300. action: toggle
  1301. - type: horizontal-stack
  1302. cards:
  1303. - type: custom:bubble-card
  1304. card_type: button
  1305. entity: light.playstation_light_master
  1306. name: PlayStation Light
  1307. show_state: true
  1308. button_type: slider
  1309. icon: mdi:sony-playstation
  1310. tap_action:
  1311. action: toggle
  1312. - type: grid
  1313. cards:
  1314. - type: vertical-stack
  1315. cards:
  1316. - type: custom:bubble-card
  1317. card_type: pop-up
  1318. hash: '#kitchen'
  1319. - type: custom:mushroom-title-card
  1320. title: Kitchen
  1321. subtitle: Cookin up some goods, ey?
  1322. - type: horizontal-stack
  1323. cards:
  1324. - type: custom:mini-graph-card
  1325. name: Temperature
  1326. entities:
  1327. - entity: sensor.thermostat_dining_room_temperature_current
  1328. hours_to_show: 24
  1329. points_per_hour: 1
  1330. animate: true
  1331. - type: custom:mini-graph-card
  1332. name: Humidity
  1333. entities:
  1334. - entity: sensor.thermostat_dining_room_humidity_current
  1335. hours_to_show: 24
  1336. points_per_hour: 1
  1337. animate: true
  1338. - type: custom:bubble-card
  1339. entity: climate.thermostat_dining_room
  1340. card_type: button
  1341. name: Thermostat
  1342. show_attribute: true
  1343. attribute: current_temperature
  1344. button_type: state
  1345. sub_button: []
  1346. - type: custom:mushroom-title-card
  1347. title: ''
  1348. subtitle: Lights
  1349. - type: horizontal-stack
  1350. cards:
  1351. - type: custom:bubble-card
  1352. card_type: button
  1353. name: Under Cabinet Lights
  1354. show_state: true
  1355. button_type: slider
  1356. entity: light.kitchen_under_cabinet
  1357. tap_action:
  1358. action: toggle
  1359. - type: custom:bubble-card
  1360. card_type: button
  1361. name: Ceiling Lights
  1362. show_state: true
  1363. button_type: slider
  1364. entity: light.kitchen_ceiling_light
  1365. icon: ''
  1366. tap_action:
  1367. action: toggle
  1368. - type: horizontal-stack
  1369. cards:
  1370. - type: custom:bubble-card
  1371. card_type: button
  1372. name: ''
  1373. show_state: true
  1374. button_type: slider
  1375. icon: ''
  1376. entity: light.side_door_outside
  1377. tap_action:
  1378. action: toggle
  1379. - type: grid
  1380. cards:
  1381. - type: vertical-stack
  1382. cards:
  1383. - type: custom:bubble-card
  1384. card_type: pop-up
  1385. hash: '#bathroom'
  1386. - type: custom:mushroom-title-card
  1387. title: Bathroom
  1388. subtitle: Please tell me you've been taking fiber supplements...
  1389. - type: horizontal-stack
  1390. cards:
  1391. - type: custom:mini-graph-card
  1392. name: Temperature
  1393. entities:
  1394. - entity: sensor.thermostat_main_bathroom_temperature_current
  1395. hours_to_show: 24
  1396. points_per_hour: 1
  1397. animate: true
  1398. - type: custom:mini-graph-card
  1399. name: Humidity
  1400. entities:
  1401. - entity: sensor.thermostat_main_bathroom_humidity_current
  1402. hours_to_show: 24
  1403. points_per_hour: 1
  1404. animate: true
  1405. - type: custom:bubble-card
  1406. entity: climate.thermostat_main_bathroom
  1407. card_type: button
  1408. name: Thermostat
  1409. show_attribute: true
  1410. attribute: current_temperature
  1411. button_type: state
  1412. sub_button: []
  1413. - type: custom:mushroom-title-card
  1414. title: ''
  1415. subtitle: Lights
  1416. - type: horizontal-stack
  1417. cards:
  1418. - type: custom:bubble-card
  1419. card_type: button
  1420. name: Sconces
  1421. show_state: true
  1422. button_type: slider
  1423. entity: light.main_bathroom_sconces
  1424. tap_action:
  1425. action: toggle
  1426. - type: grid
  1427. cards:
  1428. - type: vertical-stack
  1429. cards:
  1430. - type: custom:bubble-card
  1431. card_type: pop-up
  1432. hash: '#hallway'
  1433. - type: custom:mushroom-title-card
  1434. title: Hallway
  1435. subtitle: Welcome to your local liminal space
  1436. - type: horizontal-stack
  1437. cards:
  1438. - type: custom:mini-graph-card
  1439. name: Temperature
  1440. entities:
  1441. - entity: sensor.thermostat_hallway_temperature_current
  1442. hours_to_show: 24
  1443. points_per_hour: 1
  1444. animate: true
  1445. - type: custom:mini-graph-card
  1446. name: Humidity
  1447. entities:
  1448. - entity: sensor.thermostat_hallway_humidity_current
  1449. hours_to_show: 24
  1450. points_per_hour: 1
  1451. animate: true
  1452. - type: custom:bubble-card
  1453. entity: climate.ecobee3lite
  1454. card_type: button
  1455. name: Thermostat
  1456. show_attribute: true
  1457. attribute: current_temperature
  1458. button_type: state
  1459. sub_button: []
  1460. - type: custom:mushroom-title-card
  1461. title: ''
  1462. subtitle: Lights
  1463. - type: horizontal-stack
  1464. cards:
  1465. - type: custom:bubble-card
  1466. card_type: button
  1467. name: ''
  1468. show_state: true
  1469. button_type: slider
  1470. entity: light.hallway_ceiling_light
  1471. tap_action:
  1472. action: toggle
  1473. - type: grid
  1474. cards:
  1475. - type: vertical-stack
  1476. cards:
  1477. - type: custom:bubble-card
  1478. card_type: pop-up
  1479. hash: '#basement'
  1480. - type: custom:mushroom-title-card
  1481. title: Basement
  1482. subtitle: So will it be rocking out or watching a rom com?
  1483. - type: custom:mushroom-title-card
  1484. title: ''
  1485. subtitle: Lights
  1486. - type: horizontal-stack
  1487. cards:
  1488. - type: custom:bubble-card
  1489. card_type: button
  1490. name: Ceiling Lights
  1491. show_state: true
  1492. button_type: slider
  1493. entity: light.basement_ceiling_lights
  1494. tap_action:
  1495. action: toggle
  1496. - type: custom:bubble-card
  1497. card_type: button
  1498. name: Bookshelf Lights
  1499. show_state: true
  1500. button_type: slider
  1501. entity: light.basement_bookshelf_lights
  1502. icon: mdi:bookshelf
  1503. tap_action:
  1504. action: toggle
  1505. - type: horizontal-stack
  1506. cards:
  1507. - type: custom:bubble-card
  1508. card_type: button
  1509. name: ''
  1510. show_state: true
  1511. button_type: slider
  1512. icon: ''
  1513. entity: light.cloud_sign
  1514. tap_action:
  1515. action: toggle
  1516. - type: custom:bubble-card
  1517. card_type: button
  1518. name: Server Rack Lights
  1519. show_state: true
  1520. button_type: slider
  1521. icon: ''
  1522. entity: light.server_rack_leds
  1523. tap_action:
  1524. action: toggle
  1525. - type: grid
  1526. cards:
  1527. - type: vertical-stack
  1528. cards:
  1529. - type: custom:bubble-card
  1530. card_type: pop-up
  1531. hash: '#garage'
  1532. - type: custom:mushroom-title-card
  1533. title: Garage
  1534. subtitle: Oh, you must think you're some sort of Dom Toretto...
  1535. - type: custom:bubble-card
  1536. card_type: button
  1537. name: Garage Door
  1538. show_attribute: true
  1539. attribute: current_position
  1540. button_type: state
  1541. sub_button: []
  1542. entity: cover.garage_door
  1543. - type: custom:mushroom-title-card
  1544. title: ''
  1545. subtitle: Lights
  1546. - type: horizontal-stack
  1547. cards:
  1548. - type: custom:bubble-card
  1549. card_type: button
  1550. name: Sconces
  1551. show_state: true
  1552. button_type: slider
  1553. entity: light.garage_sconces
  1554. tap_action:
  1555. action: toggle
  1556. - type: custom:bubble-card
  1557. card_type: button
  1558. name: Server Rack Lights
  1559. show_state: true
  1560. button_type: slider
  1561. icon: ''
  1562. entity: light.garage_server_rack_leds
  1563. tap_action:
  1564. action: toggle
  1565. - type: grid
  1566. cards:
  1567. - type: vertical-stack
  1568. cards:
  1569. - type: custom:bubble-card
  1570. card_type: pop-up
  1571. hash: '#bedroom'
  1572. - type: custom:mushroom-title-card
  1573. title: Bedroom
  1574. subtitle: Oh...shall I dim the lights?
  1575. - type: horizontal-stack
  1576. cards:
  1577. - type: custom:mini-graph-card
  1578. name: Temperature
  1579. entities:
  1580. - entity: sensor.thermostat_main_bedroom_temperature_current
  1581. hours_to_show: 24
  1582. points_per_hour: 1
  1583. animate: true
  1584. - type: custom:mini-graph-card
  1585. name: Humidity
  1586. entities:
  1587. - entity: sensor.thermostat_main_bedroom_humidity_current
  1588. hours_to_show: 24
  1589. points_per_hour: 1
  1590. animate: true
  1591. - type: custom:bubble-card
  1592. entity: climate.thermostat_main_bedroom
  1593. card_type: button
  1594. name: Thermostat
  1595. show_attribute: true
  1596. attribute: current_temperature
  1597. button_type: state
  1598. sub_button: []
  1599. - type: custom:mushroom-title-card
  1600. title: ''
  1601. subtitle: Lights
  1602. - type: horizontal-stack
  1603. cards:
  1604. - type: custom:bubble-card
  1605. card_type: button
  1606. name: Lamp
  1607. show_state: true
  1608. button_type: slider
  1609. entity: light.bedroom_lamp
  1610. tap_action:
  1611. action: toggle
  1612. - type: custom:bubble-card
  1613. card_type: button
  1614. name: TV Lights
  1615. show_state: true
  1616. button_type: slider
  1617. icon: mdi:led-strip-variant
  1618. entity: light.bedroom_tv_leds
  1619. tap_action:
  1620. action: toggle
  1621. - type: horizontal-stack
  1622. cards:
  1623. - type: custom:bubble-card
  1624. card_type: button
  1625. name: Logo
  1626. show_state: true
  1627. button_type: slider
  1628. icon: ''
  1629. entity: light.main_bedroom_logo
  1630. tap_action:
  1631. action: toggle
  1632. - type: grid
  1633. cards:
  1634. - type: vertical-stack
  1635. cards:
  1636. - type: custom:bubble-card
  1637. card_type: pop-up
  1638. hash: '#washer'
  1639. - type: custom:mushroom-title-card
  1640. title: Washer
  1641. subtitle: Oh man...I sure hope that stain comes out!
  1642. - type: horizontal-stack
  1643. cards:
  1644. - type: custom:mushroom-template-card
  1645. primary: Status
  1646. secondary: '{{ states(''sensor.washer_status'') }}'
  1647. icon: mdi:washing-machine
  1648. icon_color: >-
  1649. {% if is_state('sensor.washer_status', 'Washing') or
  1650. is_state('sensor.washer_status', 'Rinsing') or
  1651. is_state('sensor.washer_status', 'Spinning') or
  1652. is_state('sensor.washer_status', 'Preparing') %}
  1653. blue
  1654. {% elif is_state('sensor.washer_status', 'Paused') %}
  1655. orange
  1656. {% elif is_state('sensor.washer_status', 'Finished') %}
  1657. green
  1658. {% endif %}
  1659. tap_action:
  1660. action: more-info
  1661. entity: sensor.washer_time_remaining
  1662. card_mod:
  1663. style: |
  1664. ha-state-icon{
  1665. animation: {% if is_state('sensor.washer_status', 'Preparing') or is_state('sensor.washer_status', 'Washing') or is_state('sensor.washer_status', 'Rinsing') or is_state('sensor.washer_status', 'Spinning') %} wiggle 0.4s linear infinite;
  1666. {% elif is_state('sensor.washer_status', 'Unknown') or is_state('sensor.washer_status', 'Paused') %} blink 0.5s linear infinite;
  1667. {% else %} none;
  1668. {% endif %}
  1669. }
  1670. @keyframes blink{
  1671. 0%, 100% {opacity: 1;}
  1672. 50% {opacity: 0;}
  1673. }
  1674. @keyframes wiggle{
  1675. 0% {
  1676. webkit-transform: translate(0, 0) rotate(0deg);
  1677. transform: translate(0, 0) rotate(0deg);
  1678. }
  1679. 25% {
  1680. webkit-transform: translate(1px, 1px) rotate(5deg);
  1681. transform: translate(1px, 1px) rotate(5deg);
  1682. }
  1683. 50% {
  1684. webkit-transform: translate(0, 0) rotate(0deg);
  1685. transform: translate(0, 0) rotate(0deg);
  1686. }
  1687. 75% {
  1688. webkit-transform: translate(-1px, 1px) rotate(-5deg);
  1689. transform: translate(-1px, 1px) rotate(-5deg);
  1690. }
  1691. 100% {
  1692. webkit-transform: translate(0, 0) rotate(0deg);
  1693. transform: translate(0, 0) rotate(0deg);
  1694. }
  1695. }
  1696. - type: conditional
  1697. conditions:
  1698. - condition: state
  1699. entity: sensor.washer_status
  1700. state_not: Idle
  1701. card:
  1702. type: custom:mushroom-template-card
  1703. primary: Time Remaining
  1704. secondary: >-
  1705. {% set remaining_seconds =
  1706. (as_timestamp(states('sensor.washer_washer_completion_time'))-as_timestamp(now()))|int
  1707. %} {% set remaining_minutes = (remaining_seconds // 60)
  1708. %} {{ remaining_minutes }} minutes
  1709. icon: mdi:clock
  1710. icon_color: blue
  1711. tap_action:
  1712. action: more-info
  1713. entity: sensor.washer_time_remaining
  1714. - type: horizontal-stack
  1715. cards:
  1716. - graph: line
  1717. type: sensor
  1718. detail: 2
  1719. entity: sensor.washer_energy
  1720. hours_to_show: 12
  1721. name: Energy Usage
  1722. - type: grid
  1723. cards:
  1724. - type: vertical-stack
  1725. cards:
  1726. - type: custom:bubble-card
  1727. card_type: pop-up
  1728. hash: '#dryer'
  1729. - type: custom:mushroom-title-card
  1730. title: Dryer
  1731. subtitle: Nobody wants damp underwear.
  1732. - type: horizontal-stack
  1733. cards:
  1734. - type: custom:mushroom-template-card
  1735. primary: Status
  1736. secondary: '{{ states(''sensor.dryer_status'') }}'
  1737. icon: mdi:tumble-dryer
  1738. icon_color: |-
  1739. {% if is_state('sensor.dryer_status', 'Drying') %}
  1740. red
  1741. {% elif is_state('sensor.dryer_status', 'Cooling') %}
  1742. blue
  1743. {% elif is_state('sensor.dryer_status', 'Paused') %}
  1744. orange
  1745. {% elif is_state('sensor.dryer_status', 'Finished') %}
  1746. green
  1747. {% endif %}
  1748. tap_action:
  1749. action: more-info
  1750. entity: sensor.dryer_status
  1751. card_mod:
  1752. style: |
  1753. ha-state-icon{
  1754. animation: {% if is_state('sensor.dryer_status', 'Drying') or is_state('sensor.dryer_status', 'Cooling') %} wiggle 0.4s linear infinite;
  1755. {% elif is_state('sensor.dryer_status', 'Unknown') or is_state('sensor.dryer_status', 'Paused') %} blink 2s linear infinite;
  1756. {% else %} none;
  1757. {% endif %}
  1758. }
  1759. @keyframes blink{}
  1760. @keyframes wiggle{
  1761. 0% {
  1762. webkit-transform: translate(0, 0) rotate(0deg);
  1763. transform: translate(0, 0) rotate(0deg);
  1764. }
  1765. 25% {
  1766. webkit-transform: translate(1px, 1px) rotate(5deg);
  1767. transform: translate(1px, 1px) rotate(5deg);
  1768. }
  1769. 50% {
  1770. webkit-transform: translate(0, 0) rotate(0deg);
  1771. transform: translate(0, 0) rotate(0deg);
  1772. }
  1773. 75% {
  1774. webkit-transform: translate(-1px, 1px) rotate(-5deg);
  1775. transform: translate(-1px, 1px) rotate(-5deg);
  1776. }
  1777. 100% {
  1778. webkit-transform: translate(0, 0) rotate(0deg);
  1779. transform: translate(0, 0) rotate(0deg);
  1780. }
  1781. }
  1782. - type: conditional
  1783. conditions:
  1784. - condition: state
  1785. entity: sensor.dryer_status
  1786. state_not: Idle
  1787. card:
  1788. type: custom:mushroom-template-card
  1789. primary: Time Remaining
  1790. secondary: >-
  1791. {% set remaining_seconds =
  1792. (as_timestamp(states('sensor.dryer_dryer_completion_time'))-as_timestamp(now()))|int
  1793. %} {% set remaining_minutes = (remaining_seconds // 60)
  1794. %} {{ remaining_minutes }} minutes
  1795. icon: mdi:clock
  1796. icon_color: blue
  1797. tap_action:
  1798. action: more-info
  1799. entity: sensor.washer_time_remaining
  1800. - type: horizontal-stack
  1801. cards:
  1802. - graph: line
  1803. type: sensor
  1804. detail: 2
  1805. hours_to_show: 12
  1806. name: Energy Usage
  1807. entity: sensor.dryer_energy
  1808. cards: []
  1809. subview: false
  1810. layout: {}
  1811. max_columns: 3
  1812. - title: Security
  1813. path: security
  1814. type: sections
  1815. sections:
  1816. - type: grid
  1817. cards:
  1818. - camera_view: live
  1819. type: picture-glance
  1820. image: https://demo.home-assistant.io/stub_config/kitchen.png
  1821. entities: []
  1822. camera_image: camera.front_door_camera
  1823. aspect_ratio: '4:3'
  1824. - camera_view: live
  1825. type: picture-glance
  1826. image: https://demo.home-assistant.io/stub_config/kitchen.png
  1827. entities: []
  1828. camera_image: camera.side_door_camera
  1829. aspect_ratio: '4:3'
  1830. - camera_view: live
  1831. type: picture-glance
  1832. image: https://demo.home-assistant.io/stub_config/kitchen.png
  1833. entities: []
  1834. camera_image: camera.garage_front_camera_2
  1835. - type: grid
  1836. cards: []
  1837. - type: grid
  1838. cards: []
  1839. - title: Lights
  1840. path: lights
  1841. cards: []
  1842. type: sections
  1843. sections:
  1844. - type: grid
  1845. cards:
  1846. - type: heading
  1847. heading: Lighting Controls
  1848. - type: custom:mushroom-template-card
  1849. primary: All Lights On
  1850. secondary: ''
  1851. icon: mdi:lightbulb-on
  1852. tap_action:
  1853. action: perform-action
  1854. perform_action: light.turn_on
  1855. target:
  1856. entity_id:
  1857. - light.all_garage_lights
  1858. - light.all_office_lights
  1859. - light.all_hallway_lights
  1860. - light.all_kitchen_lights
  1861. - light.all_bedroom_lights
  1862. - light.all_basement_lights
  1863. - light.all_living_room_lights
  1864. - light.all_main_bathroom_lights
  1865. icon_color: orange
  1866. - type: custom:mushroom-template-card
  1867. primary: All Lights Off
  1868. secondary: ''
  1869. icon: mdi:lightbulb-off
  1870. tap_action:
  1871. action: perform-action
  1872. perform_action: light.turn_off
  1873. target:
  1874. entity_id:
  1875. - light.all_garage_lights
  1876. - light.all_office_lights
  1877. - light.all_hallway_lights
  1878. - light.all_kitchen_lights
  1879. - light.all_bedroom_lights
  1880. - light.all_basement_lights
  1881. - light.all_living_room_lights
  1882. - light.all_main_bathroom_lights
  1883. icon_color: ''
  1884. - type: grid
  1885. cards:
  1886. - type: heading
  1887. heading: Lighting Themes
  1888. - type: custom:mushroom-template-card
  1889. primary: Light Mode
  1890. secondary: ''
  1891. icon: mdi:white-balance-sunny
  1892. tap_action:
  1893. action: perform-action
  1894. perform_action: input_select.select_option
  1895. data:
  1896. option: Light Mode
  1897. target:
  1898. entity_id: input_select.lighting_theme
  1899. icon_color: |-
  1900. {% if is_state('input_select.lighting_theme', 'Light Mode') %}
  1901. orange
  1902. {% endif %}
  1903. entity: input_select.lighting_theme
  1904. card_mod:
  1905. style: |
  1906. ha-state-icon{
  1907. animation: {% if is_state('input_select.lighting_theme', 'Light Mode') %} spin 5s linear infinite;
  1908. {% else %} none;
  1909. {% endif %}
  1910. }
  1911. @keyframes spin{
  1912. 0% {
  1913. webkit-transform: rotate(0deg);
  1914. transform: rotate(0deg);
  1915. }
  1916. 100% {
  1917. webkit-transform: rotate(360deg);
  1918. transform: rotate(360deg);
  1919. }
  1920. }
  1921. - type: custom:mushroom-template-card
  1922. primary: Dark Mode
  1923. secondary: ''
  1924. icon: mdi:moon-waxing-crescent
  1925. tap_action:
  1926. action: call-service
  1927. service: input_select.select_option
  1928. target:
  1929. entity_id: input_select.lighting_theme
  1930. data:
  1931. option: Dark Mode
  1932. icon_color: |-
  1933. {% if is_state('input_select.lighting_theme', 'Dark Mode') %}
  1934. purple
  1935. {% endif %}
  1936. entity: input_select.lighting_theme
  1937. card_mod:
  1938. style: |
  1939. ha-state-icon{
  1940. animation: {% if is_state('input_select.lighting_theme', 'Dark Mode') %} wiggle 6s ease infinite;
  1941. {% else %} none;
  1942. {% endif %}
  1943. }
  1944. @keyframes wiggle{
  1945. 0% {
  1946. webkit-transform: rotate(0deg);
  1947. transform: rotate(0deg);
  1948. }
  1949. 25% {
  1950. webkit-transform: rotate(50deg);
  1951. transform: rotate(50deg);
  1952. }
  1953. 50% {
  1954. webkit-transform: rotate(50deg);
  1955. transform: rotate(50deg);
  1956. }
  1957. 75% {
  1958. webkit-transform: rotate(0deg);
  1959. transform: rotate(0deg);
  1960. }
  1961. 100% {
  1962. webkit-transform: rotate(0deg);
  1963. transform: rotate(0deg);
  1964. }
  1965. }
  1966. - type: custom:mushroom-template-card
  1967. primary: Party Mode
  1968. secondary: ''
  1969. icon: mdi:party-popper
  1970. tap_action:
  1971. action: call-service
  1972. service: input_select.select_option
  1973. target:
  1974. entity_id: input_select.lighting_theme
  1975. data:
  1976. option: Party Mode
  1977. icon_color: |-
  1978. {% if is_state('input_select.lighting_theme', 'Party Mode') %}
  1979. pink
  1980. {% endif %}
  1981. entity: input_select.lighting_theme
  1982. card_mod:
  1983. style: |
  1984. ha-state-icon{
  1985. animation: {% if is_state('input_select.lighting_theme', 'Party Mode') %} wiggle 0.18s linear infinite;
  1986. {% else %} none;
  1987. {% endif %}
  1988. }
  1989. @keyframes wiggle{
  1990. 0% {
  1991. webkit-transform: rotate(0deg);
  1992. transform: rotate(0deg);
  1993. }
  1994. 25% {
  1995. webkit-transform: rotate(5deg);
  1996. transform: rotate(5deg);
  1997. }
  1998. 50% {
  1999. webkit-transform: rotate(0deg);
  2000. transform: rotate(0deg);
  2001. }
  2002. 75% {
  2003. webkit-transform: rotate(-5deg);
  2004. transform: rotate(-5deg);
  2005. }
  2006. 100% {
  2007. webkit-transform: rotate(0deg);
  2008. transform: rotate(0deg);
  2009. }
  2010. }
  2011. - type: grid
  2012. cards:
  2013. - type: heading
  2014. heading: Lighting Automations
  2015. - type: tile
  2016. entity: input_boolean.motion_activated_lighting_automations
  2017. name: Motion Lights
  2018. tap_action:
  2019. action: toggle
  2020. - type: tile
  2021. name: Lights on at Dark
  2022. tap_action:
  2023. action: toggle
  2024. entity: input_boolean.lights_on_at_dark_automation
  2025. - type: grid
  2026. cards:
  2027. - type: heading
  2028. heading: Office Lights
  2029. heading_style: title
  2030. badges:
  2031. - type: entity
  2032. show_state: true
  2033. show_icon: true
  2034. entity: light.office_lights
  2035. color: orange
  2036. state_content: state
  2037. tap_action:
  2038. action: toggle
  2039. icon: ''
  2040. - type: custom:mushroom-light-card
  2041. entity: light.desk_lamp
  2042. name: Desk Lamp
  2043. - type: custom:mushroom-light-card
  2044. entity: light.office_desk_leds
  2045. name: Desk LEDs
  2046. - type: custom:mushroom-light-card
  2047. name: Bookshelf LEDs
  2048. entity: light.office_bookshelf_leds_grouped
  2049. icon: mdi:bookshelf
  2050. - type: custom:mushroom-light-card
  2051. name: Computer Monitor LEDs
  2052. icon: ''
  2053. entity: light.office_desk_computer_monitor_leds
  2054. - type: custom:mushroom-light-card
  2055. name: Entertainment Center
  2056. icon: ''
  2057. entity: light.office_entertainment_center_leds
  2058. - type: custom:mushroom-light-card
  2059. name: TV Lamp
  2060. entity: light.office_entertainment_center_lamp
  2061. - type: custom:mushroom-light-card
  2062. name: Ceiling Light
  2063. entity: light.office_ceiling_light
  2064. icon: mdi:light-recessed
  2065. - type: grid
  2066. cards:
  2067. - type: heading
  2068. heading: Living Room Lights
  2069. heading_style: title
  2070. badges:
  2071. - type: entity
  2072. show_state: true
  2073. show_icon: true
  2074. entity: light.living_room_lights
  2075. color: orange
  2076. tap_action:
  2077. action: toggle
  2078. icon: ''
  2079. - type: custom:mushroom-light-card
  2080. entity: light.living_room_lamp
  2081. name: Lamp
  2082. - type: custom:mushroom-light-card
  2083. entity: light.living_room_tv_leds
  2084. name: TV LEDs
  2085. - type: custom:mushroom-light-card
  2086. entity: light.playstation_light_master
  2087. icon: mdi:sony-playstation
  2088. use_light_color: true
  2089. - type: grid
  2090. cards:
  2091. - type: heading
  2092. heading: Kitchen Lights
  2093. heading_style: title
  2094. badges:
  2095. - type: entity
  2096. show_state: true
  2097. show_icon: true
  2098. entity: light.kitchen_lights
  2099. color: orange
  2100. state_content: state
  2101. tap_action:
  2102. action: toggle
  2103. icon: ''
  2104. - type: custom:mushroom-light-card
  2105. entity: light.kitchen_under_cabinet
  2106. name: Under Cabinet
  2107. - type: custom:mushroom-light-card
  2108. entity: light.kitchen_ceiling_light
  2109. name: Ceiling Light
  2110. - type: custom:mushroom-light-card
  2111. entity: light.side_door_outside
  2112. - type: grid
  2113. cards:
  2114. - type: heading
  2115. heading: Basement Lights
  2116. heading_style: title
  2117. badges:
  2118. - type: entity
  2119. show_state: true
  2120. show_icon: true
  2121. entity: light.basement_lights
  2122. color: orange
  2123. state_content: state
  2124. tap_action:
  2125. action: toggle
  2126. icon: ''
  2127. - type: custom:mushroom-light-card
  2128. entity: light.basement_ceiling_lights
  2129. name: Ceiling Lights
  2130. - type: custom:mushroom-light-card
  2131. entity: light.basement_bookshelf_leds
  2132. name: Bookshelf LEDs
  2133. icon: ''
  2134. - type: custom:mushroom-light-card
  2135. entity: light.server_rack_leds
  2136. name: Server Rack
  2137. - type: custom:mushroom-light-card
  2138. entity: light.cloud_sign
  2139. - type: grid
  2140. cards:
  2141. - type: heading
  2142. heading: Bedroom Lights
  2143. heading_style: title
  2144. badges:
  2145. - type: entity
  2146. show_state: true
  2147. show_icon: true
  2148. entity: light.bedroom_lights
  2149. color: orange
  2150. state_content: state
  2151. tap_action:
  2152. action: toggle
  2153. icon: ''
  2154. - type: custom:mushroom-light-card
  2155. entity: light.bedroom_lamp
  2156. name: Lamp
  2157. - type: custom:mushroom-light-card
  2158. entity: light.main_bedroom_logo
  2159. name: Logo
  2160. - type: custom:mushroom-light-card
  2161. entity: light.bedroom_tv_leds
  2162. name: TV LEDs
  2163. icon: ''
  2164. - type: grid
  2165. cards:
  2166. - type: heading
  2167. heading: Garage Lights
  2168. heading_style: title
  2169. badges:
  2170. - type: entity
  2171. show_state: true
  2172. show_icon: true
  2173. entity: light.all_garage_lights
  2174. color: orange
  2175. state_content: state
  2176. tap_action:
  2177. action: toggle
  2178. icon: ''
  2179. - type: custom:mushroom-light-card
  2180. entity: light.garage_sconces
  2181. name: Sconces
  2182. - type: custom:mushroom-light-card
  2183. entity: light.garage_server_rack_leds
  2184. name: Server Rack
  2185. - type: grid
  2186. cards:
  2187. - type: heading
  2188. heading: Bathroom Lights
  2189. heading_style: title
  2190. badges:
  2191. - type: entity
  2192. show_state: true
  2193. show_icon: true
  2194. entity: light.main_bathroom_lights
  2195. color: orange
  2196. state_content: state
  2197. tap_action:
  2198. action: toggle
  2199. icon: ''
  2200. - type: custom:mushroom-light-card
  2201. entity: light.main_bathroom_sconces
  2202. name: Sconces
  2203. - type: grid
  2204. cards:
  2205. - type: heading
  2206. heading: Hallway Lights
  2207. heading_style: title
  2208. badges:
  2209. - type: entity
  2210. show_state: true
  2211. show_icon: true
  2212. entity: light.hallway_lights
  2213. color: orange
  2214. state_content: state
  2215. tap_action:
  2216. action: toggle
  2217. icon: ''
  2218. - type: custom:mushroom-light-card
  2219. entity: light.hallway_ceiling_light
  2220. icon: mdi:light-recessed
  2221. name: Ceiling Light
  2222. - title: System
  2223. path: system
  2224. type: sections
  2225. max_columns: 4
  2226. sections:
  2227. - type: grid
  2228. cards:
  2229. - type: heading
  2230. heading: Home Assistant
  2231. heading_style: title
  2232. badges:
  2233. - type: entity
  2234. entity: sensor.cpu_temperature
  2235. - graph: line
  2236. type: sensor
  2237. detail: 2
  2238. entity: sensor.cpu_usage
  2239. - graph: line
  2240. type: sensor
  2241. detail: 2
  2242. entity: sensor.memory_usage
  2243. - type: custom:mushroom-update-card
  2244. name: Operating System
  2245. entity: update.home_assistant_operating_system_update
  2246. - type: custom:mushroom-update-card
  2247. entity: update.home_assistant_core_update
  2248. show_buttons_control: false
  2249. collapsible_controls: false
  2250. name: Home Assistant Core
  2251. icon: mdi:home-assistant
  2252. - type: custom:mushroom-template-card
  2253. primary: Uptime
  2254. secondary: >-
  2255. {% set uptime_seconds =
  2256. (as_timestamp(now())-as_timestamp(states('sensor.uptime')))|int %}
  2257. {% set uptime_minutes = (uptime_seconds // 60) %} {% set
  2258. uptime_hours = (uptime_minutes // 60) %} {% set uptime_days =
  2259. (uptime_hours // 24) %} {% if uptime_days != 0 %}{{ uptime_days
  2260. }}d {% endif %}{% if uptime_hours != 0 %}{{ uptime_hours -
  2261. (uptime_days*24)}}h {% endif %}{{ uptime_minutes -
  2262. (uptime_hours*60) }}m
  2263. icon: mdi:clock
  2264. icon_color: green
  2265. entity: sensor.uptime
  2266. tap_action:
  2267. action: more-info
  2268. - type: custom:mushroom-template-card
  2269. primary: Last Backup
  2270. secondary: '{{ states(''sensor.hours_since_last_backup'') + " hours ago" }}'
  2271. icon: mdi:harddisk
  2272. icon_color: |-
  2273. {% if states('sensor.hours_since_last_backup') | int < 24 %}
  2274. green
  2275. {% elif states('sensor.hours_since_last_backup') | int < 48 %}
  2276. orange
  2277. {% else %}
  2278. red
  2279. {% endif %}
  2280. tap_action:
  2281. action: more-info
  2282. entity: sensor.hours_since_last_backup
  2283. - type: grid
  2284. cards:
  2285. - type: heading
  2286. heading: Wall Tablet
  2287. - graph: line
  2288. type: sensor
  2289. detail: 2
  2290. entity: sensor.hallway_wall_tablet_internal_storage_used
  2291. name: Storage
  2292. icon: mdi:harddisk
  2293. - graph: line
  2294. type: sensor
  2295. detail: 2
  2296. entity: sensor.hallway_wall_tablet_used_memory
  2297. icon: mdi:memory
  2298. name: Memory Usage
  2299. - type: custom:mushroom-template-card
  2300. primary: Tablet Battery
  2301. secondary: >-
  2302.  
  2303. {{ states('sensor.hallway_wall_tablet_battery') + "%" }}{% if
  2304. is_state('binary_sensor.hallway_wall_tablet_plugged_in', 'on') %}
  2305. - Charging
  2306.  
  2307. {% endif %}
  2308. icon: >-
  2309. {% if states('sensor.hallway_wall_tablet_battery') | int == 100 %}
  2310. mdi:battery
  2311. {% elif states('sensor.hallway_wall_tablet_battery') | int >= 90
  2312. %}
  2313. mdi:battery-90
  2314. {% elif states('sensor.hallway_wall_tablet_battery') | int >= 80
  2315. %}
  2316. mdi:battery-80
  2317. {% elif states('sensor.hallway_wall_tablet_battery') | int >= 70
  2318. %}
  2319. mdi:battery-70
  2320. {% elif states('sensor.hallway_wall_tablet_battery') | int >= 60
  2321. %}
  2322. mdi:battery-60
  2323. {% elif states('sensor.hallway_wall_tablet_battery') | int >= 50
  2324. %}
  2325. mdi:battery-50
  2326. {% elif states('sensor.hallway_wall_tablet_battery') | int >= 40
  2327. %}
  2328. mdi:battery-40
  2329. {% elif states('sensor.hallway_wall_tablet_battery') | int >= 30
  2330. %}
  2331. mdi:battery-30
  2332. {% elif states('sensor.hallway_wall_tablet_battery') | int >= 20
  2333. %}
  2334. mdi:battery-20
  2335. {% elif states('sensor.hallway_wall_tablet_battery') | int >= 10
  2336. %}
  2337. mdi:battery-10
  2338. {% else %}
  2339. mdi:battery-outline
  2340. {% endif %}
  2341. icon_color: >-
  2342. {% if states('sensor.hallway_wall_tablet_battery') | int >= 20 or
  2343. is_state('binary_sensor.hallway_wall_tablet_plugged_in', 'on') %}
  2344. green
  2345. {% elif states('sensor.hallway_wall_tablet_battery') | int >= 10
  2346. %}
  2347. orange
  2348. {% else %}
  2349. red
  2350. {% endif %}
  2351. tap_action:
  2352. action: toggle
  2353. entity: switch.hallway_outlet_upper
  2354. - type: tile
  2355. entity: automation.hallway_wall_tablet_screensaver
  2356. name: Screensaver
  2357. tap_action:
  2358. action: toggle
  2359. - type: tile
  2360. name: Refresh Tablet
  2361. hide_state: true
  2362. color: primary
  2363. entity: button.hallway_wall_tablet_load_start_url
  2364. icon: mdi:refresh
  2365. tap_action:
  2366. action: toggle
  2367. - type: tile
  2368. entity: button.hallway_wall_tablet_restart_device
  2369. name: Restart Tablet
  2370. hide_state: true
  2371. color: primary
  2372. - type: grid
  2373. cards:
  2374. - type: heading
  2375. heading: Network
  2376. heading_style: title
  2377. badges: []
  2378. - graph: line
  2379. type: sensor
  2380. detail: 2
  2381. entity: sensor.wan_download_rate
  2382. name: Download
  2383. - graph: line
  2384. type: sensor
  2385. detail: 2
  2386. name: Upload
  2387. entity: sensor.wan_upload_rate
  2388. - type: custom:mushroom-template-card
  2389. primary: WAN Status
  2390. secondary: |-
  2391. {% if states('binary_sensor.wan_status') %}
  2392. Connected
  2393. {% else %}
  2394. Disconnected
  2395. {% endif %}
  2396. icon: |-
  2397. {% if states('binary_sensor.wan_status') %}
  2398. mdi:check-network
  2399. {% else %}
  2400. mdi:close-network
  2401. {% endif %}
  2402. entity: binary_sensor.wan_status
  2403. icon_color: |-
  2404. {% if states('binary_sensor.wan_status') %}
  2405. green
  2406. {% else %}
  2407. red
  2408. {% endif %}
  2409. tap_action:
  2410. action: more-info
  2411. badge_icon: ''
  2412. - type: custom:mushroom-template-card
  2413. primary: LAN Status
  2414. secondary: |-
  2415. {% if states('binary_sensor.lan_status') %}
  2416. Connected
  2417. {% else %}
  2418. Disconnected
  2419. {% endif %}
  2420. icon: |-
  2421. {% if states('binary_sensor.lan_status') %}
  2422. mdi:check-network
  2423. {% else %}
  2424. mdi:close-network
  2425. {% endif %}
  2426. icon_color: |-
  2427. {% if states('binary_sensor.lan_status') %}
  2428. green
  2429. {% else %}
  2430. red
  2431. {% endif %}
  2432. tap_action:
  2433. action: more-info
  2434. badge_icon: ''
  2435. entity: binary_sensor.lan_status
  2436. - type: custom:mushroom-template-card
  2437. primary: UPS Battery
  2438. secondary: '{{ states(''sensor.ups_battery_charge'') + "%" }}'
  2439. icon: |-
  2440. {% if states('sensor.ups_battery_charge') | int == 100 %}
  2441. mdi:battery
  2442. {% elif states('sensor.ups_battery_charge') | int >= 90 %}
  2443. mdi:battery-90
  2444. {% elif states('sensor.ups_battery_charge') | int >= 80 %}
  2445. mdi:battery-80
  2446. {% elif states('sensor.ups_battery_charge') | int >= 70 %}
  2447. mdi:battery-70
  2448. {% elif states('sensor.ups_battery_charge') | int >= 60 %}
  2449. mdi:battery-60
  2450. {% elif states('sensor.ups_battery_charge') | int >= 50 %}
  2451. mdi:battery-50
  2452. {% elif states('sensor.ups_battery_charge') | int >= 40 %}
  2453. mdi:battery-40
  2454. {% elif states('sensor.ups_battery_charge') | int >= 30 %}
  2455. mdi:battery-30
  2456. {% elif states('sensor.ups_battery_charge') | int >= 20 %}
  2457. mdi:battery-20
  2458. {% elif states('sensor.ups_battery_charge') | int >= 10 %}
  2459. mdi:battery-10
  2460. {% else %}
  2461. mdi:battery-outline
  2462. {% endif %}
  2463. icon_color: |-
  2464. {% if states('sensor.ups_battery_charge') | int >= 80 %}
  2465. green
  2466. {% elif states('sensor.ups_battery_charge') | int >= 50 %}
  2467. orange
  2468. {% else %}
  2469. red
  2470. {% endif %}
  2471. tap_action:
  2472. action: more-info
  2473. entity: sensor.ups_battery_charge
  2474. - type: custom:mushroom-template-card
  2475. primary: UPS Load
  2476. secondary: '{{ states(''sensor.ups_load'') + "%" }}'
  2477. icon: |-
  2478. {% if states('sensor.ups_load') | int >= 80 %}
  2479. mdi:gauge-full
  2480. {% elif states('sensor.ups_load') | int >= 50 %}
  2481. mdi:gauge
  2482. {% else %}
  2483. mdi:gauge-empty
  2484. {% endif %}
  2485. icon_color: |-
  2486. {% if states('sensor.ups_load') | int >= 80 %}
  2487. red
  2488. {% elif states('sensor.ups_load') | int >= 50 %}
  2489. orange
  2490. {% else %}
  2491. green
  2492. {% endif %}
  2493. entity: sensor.ups_load
  2494. tap_action:
  2495. action: more-info
  2496. - type: custom:mushroom-template-card
  2497. primary: Social Media
  2498. secondary: |-
  2499. {% if is_state('switch.block_social_media', 'on') %}
  2500. Blocked
  2501. {% elif is_state('switch.block_social_media', 'off') %}
  2502. Allowed
  2503. {% endif %}
  2504. icon: mdi:web
  2505. icon_color: |-
  2506. {% if is_state('switch.block_social_media', 'on') %}
  2507. red
  2508. {% elif is_state('switch.block_social_media', 'off') %}
  2509. green
  2510. {% endif %}
  2511. tap_action:
  2512. action: none
  2513. hold_action:
  2514. action: none
  2515. double_tap_action:
  2516. action: none
  2517. - type: custom:mushroom-template-card
  2518. primary: Pi-hole
  2519. secondary: |-
  2520. {% if states('binary_sensor.uptimekuma_pihole') %}
  2521. Connected
  2522. {% else %}
  2523. Disconnected
  2524. {% endif %}
  2525. icon: |-
  2526. {% if states('binary_sensor.uptimekuma_pihole') %}
  2527. mdi:check-network
  2528. {% else %}
  2529. mdi:close-network
  2530. {% endif %}
  2531. icon_color: |-
  2532. {% if states('binary_sensor.uptimekuma_pihole') %}
  2533. green
  2534. {% else %}
  2535. red
  2536. {% endif %}
  2537. tap_action:
  2538. action: more-info
  2539. badge_icon: ''
  2540. entity: binary_sensor.uptimekuma_pihole
  2541. - type: grid
  2542. cards:
  2543. - type: heading
  2544. heading: Synology NAS
  2545. heading_style: title
  2546. badges:
  2547. - type: entity
  2548. entity: sensor.nas_temperature
  2549. - type: entity
  2550. entity: binary_sensor.uptimekuma_nas
  2551. - graph: line
  2552. type: sensor
  2553. detail: 2
  2554. entity: sensor.nas_cpu_utilization_total
  2555. name: CPU Usage
  2556. icon: mdi:cpu-64-bit
  2557. - graph: line
  2558. type: sensor
  2559. detail: 1
  2560. entity: sensor.nas_memory_usage_real
  2561. name: Memory Usage
  2562. icon: ''
  2563. - type: custom:mushroom-update-card
  2564. show_buttons_control: false
  2565. collapsible_controls: false
  2566. name: DSM
  2567. icon: ''
  2568. entity: update.nas_dsm_update
  2569. - type: grid
  2570. cards:
  2571. - type: heading
  2572. heading: Frigate
  2573. heading_style: title
  2574. icon: ''
  2575. badges:
  2576. - type: entity
  2577. entity: sensor.server_surveillance_cpu_temp
  2578. - type: entity
  2579. entity: binary_sensor.uptimekuma_frigate
  2580. - graph: line
  2581. type: sensor
  2582. detail: 2
  2583. name: CPU Usage
  2584. icon: mdi:cpu-64-bit
  2585. entity: sensor.server_surveillance_cpu_usage
  2586. - graph: line
  2587. type: sensor
  2588. detail: 2
  2589. icon: ''
  2590. entity: sensor.server_surveillance_memory_usage
  2591. name: Memory Usage
  2592. - type: grid
  2593. cards:
  2594. - type: heading
  2595. heading: Automations
  2596. - type: tile
  2597. entity: input_boolean.motion_activated_lighting_automations
  2598. name: Motion Lights
  2599. tap_action:
  2600. action: toggle
  2601. - type: tile
  2602. name: Lights on at Dark
  2603. tap_action:
  2604. action: toggle
  2605. entity: input_boolean.lights_on_at_dark_automation
  2606. - type: tile
  2607. name: Thermostat Syncing
  2608. tap_action:
  2609. action: toggle
  2610. entity: input_boolean.thermostat_syncing_automations
  2611. - type: tile
  2612. name: Bathroom Fan
  2613. tap_action:
  2614. action: toggle
  2615. entity: input_boolean.bathroom_fan_automations
  2616. cards: []
  2617. - title: Music
  2618. path: music
  2619. type: panel
  2620. cards:
  2621. - type: iframe
  2622. url: http://homeassistant.local:8095/#/home
  2623. card_mod:
  2624. style: |
  2625. ha-card{
  2626. height: calc(100vh - 16px);
  2627. }
  2628. - title: Calendar
  2629. path: calendar
  2630. type: panel
  2631. cards:
  2632. - type: calendar
  2633. entities:
  2634. - calendar.garbage_schedule
  2635. - calendar.birthdays
  2636. - calendar.holidays
  2637. - calendar.miscellaneous
  2638. card_mod:
  2639. style: |
  2640. ha-full-calendar{
  2641. height: 100%;
  2642. }
  2643.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement