Mushroom dashboard strategy provides a strategy for Home assistant to automatically create a dashboard using Mushroom cards, the area configuration and entity configuration.
My goal is to propose a way to create powerful dashaboards without the need of spending hours manualy creating them.
Note: This is my first javascript code and github repository. Any recomendations are always welcome
- 🛠 Automatically create dashboard with 3 lines of yaml
- 😍 Built-in Views for device specific controls
- 🎨 Many options to customize to your needs
You need to install these cards first before using this strategy
Mushroom dashboard strategy is available in HACS (Home Assistant Community Store).
- Install HACS if you don't have it already
- Open HACS in Home Assistant
- Go to "Frontend" section
- Click 3 dots on top right and custom repository
- Add
https://github.com/AalianKhan/mushroom-strategy
with catagoryLovelace
- Search for "Mushroom strategy" and install
- Download
mushroom-strategy.js
file from thedist
directory. - Put
mushroom-strategy.js
file into yourconfig/www
folder. - Add reference to
mushroom-strategy.js
in Dashboard. There's two way to do that:- Using UI: Settings → Dashboards → More Options icon → Resources → Add Resource → Set Url as
/local/mushroom-strategy.js
→ Set Resource type asJavaScript Module
. Note: If you do not see the Resources menu, you will need to enable Advanced Mode in your User Profile - Using YAML: Add following code to
lovelace
section.resources: - url: /local/mushroom-strategy.js type: module
- Using UI: Settings → Dashboards → More Options icon → Resources → Add Resource → Set Url as
All the Rounded cards can be configured using Dashboard UI editor.
- In Dashboard UI, click 3 dots in top right corner.
- Click Edit Dashboard.
- Click 3 dots again
- Click
Raw configuration editor
- Add these lines
strategy:
type: custom:mushroom-strategy
views: []
When first creating this dashboard, you probably have many entities that you don't want to see.
You can easily hide these entities by holding the entity > Click the cog icon
at the top right corner of the popup > Click Advanced settings
> Set entity status
to hidden
. Refresh the page and it should update
You can easiy add devices to an area by going to Settings
found at the bottom of the sidebar > Click Devices and integration
> Select the integration of your device > Click the device you wish to add > Click the pencil icon
found at the top right corner > Enter an area in area field. You can also set an entity of that device to a different area by going to advanced settings of that entity.
If you created a entity in your configuratation.yaml
you may need to enter a unique_id
first before you set an area to it. See docs
You can set strategy options to further customize the dashboard. It has the following available options
Name | Type | Default | Description |
---|---|---|---|
areas |
list | Optional | One or more areas in a list, see areas object |
entity_config |
list of cards | Optional | Card defination for an entity, see entity config |
views |
object | All views enabled | Setting which pre-built views to show, see available Pre-built views |
chips |
object | All count chips enabled with auto selected weather card | See chips |
quick_access_cards |
list of cards | Optional | List of cards to show between welcome card and rooms cards |
extra_cards |
list of cards | Optional | List of cards to show below room cards |
extra_views |
list of view | Optional | List of views to add to the dashboard |
strategy:
type: custom:mushroom-strategy
options:
areas:
- name: Family Room
icon: mdi:sofa
icon_color: green
views: []
The area object includes all options from the template mushroom card and extra_cards
which is a list of cards to show at the top of the area subview. The order of defination is used to sort the rooms and pre-built views
Name | Type | Default | Description |
---|---|---|---|
name |
string | Required | The name of the area |
icon |
string | Optional | Icon to render. May contain templates. |
icon_color |
string | Optional | Icon color to render. May contain templates. |
primary |
string | Optional | Primary info to render. May contain templates. |
secondary |
string | Optional | Secondary info to render. May contain templates. |
badge_icon |
string | Optional | Badge icon to render. May contain templates. |
badge_color |
string | Optional | Badge icon color to render. May contain templates. |
picture |
string | Optional | Picture to render. May contain templates. |
multiline_secondary |
boolean | false |
Enables support for multiline text for the secondary info. |
layout |
string | Optional | Layout of the card. Vertical, horizontal and default layout are supported |
fill_container |
boolean | false |
Fill container or not. Useful when card is in a grid, vertical or horizontal layout |
tap_action |
action | none |
Home assistant action to perform on tap |
hold_action |
action | none |
Home assistant action to perform on hold |
entity_id |
string list |
Optional | Only reacts to the state changes of these entities. This can be used if the automatic analysis fails to find all relevant entities. |
double_tap_action |
action | more-info |
Home assistant action to perform on double_tap |
extra_cards |
list of cards | Optional | A list of cards to show on the top of the area subview |
strategy:
type: custom:mushroom-strategy
options:
areas:
- name: Family Room
icon: mdi:television
icon_color: green
extra_cards:
- type: custom:mushroom-chips-card
chips:
- type: entity
entity: sensor.family_room_temperature
icon: mdi:thermometer
icon_color: pink
alignment: center
- name: Kitchen
icon: mdi:silverware-fork-knife
icon_color: red
views: []
The entity_config
essentially enables you to give a specific entity any card you wish.
strategy:
type: custom:mushroom-strategy
options:
entity_config:
- entity: fan.master_bedroom_fan
type: custom:mushroom-fan-card
views: []
Mushroom strategy includes pre-built views to control/view specific domains. Only the devices that are in an area defined in areas
are shown. If areas
is not defined then devices in all areas are shown. By default, all views are shown
Available views | type | Description |
---|---|---|
lights |
boolean | View to control all lights and lights of each area |
fans |
boolean | View to control all fans and fans of each area |
covers |
boolean | View to control all covers and covers of each area |
switches |
boolean | View to control all switches and switches of each area |
climates |
boolean | View to control climate devices such as thermostates. Seperated by each area |
cameras |
boolean | View to show all cameras using WebRTC cards. Seperated by each area |
strategy:
type: custom:mushroom-strategy
options:
views:
lights: true
switches: true
covers: false
cameras: true
thermostats: false
views: []
Mushroom strategy has chips that count the number of devices active for a specific domain. Only the devices that are defined in areas
are counted. if areas
is not defined then devices in all areas are counted. By default, all chips are enabled. You can also manually configure a weather entity to use. There is also an option to add more Mushroom Chips using extra_chips
Note: setting the status to hidden for the unwanted weather entity is recomended
Available chips | type | Description |
---|---|---|
light_count |
Boolean | Chip to display the number of lights on, tapping turns off all lights, holding navigates to lights view |
fan_count |
Boolean | Chip to display the number of fans on, tapping turns off all fans, holding navigates to fans view |
cover_count |
Boolean | Chip to display the number of covers not closed, tapping navigates to covers view |
switch_count |
Boolean | Chip to display the number of switches on, tapping turns off all switches, holding navigates to switches view |
climate_count |
Boolean | Chip to display the number of climate not off, tapping naviagetes to climates view |
weather_entity |
Entity ID | Entity ID for the weather chip to use, accepts weather. only |
extra_chips |
List | List of extra chips to display, see Mushroom Chips |
strategy:
type: custom:mushroom-strategy
options:
chips:
climate_count: false
cover_count: false
weather_entity: weather.forecast_home
extra_chips:
- type: conditional
conditions:
- entity: lock.front_door
state: unlocked
chip:
type: entity
entity: lock.front_door
icon_color: red
content_info: none
tap_action:
action: toggle
strategy:
type: custom:mushroom-strategy
options:
views:
lights: true
switches: true
covers: false
cameras: true
thermostats: false
chips:
weather_entity: weather.forecast_home
climate_count: false
cover_count: false
extra_chips:
- type: conditional
conditions:
- entity: lock.front_door
state: unlocked
chip:
type: entity
entity: lock.front_door
icon_color: red
content_info: none
icon: ''
use_entity_picture: false
tap_action:
action: toggle
- type: conditional
conditions:
- entity: cover.garage_door
state_not: closed
chip:
type: entity
entity: cover.garage_door
icon_color: red
content_info: none
tap_action:
action: toggle
areas:
- name: Family Room
icon: mdi:television
icon_color: green
extra_cards:
- type: custom:mushroom-chips-card
chips:
- type: entity
entity: sensor.family_room_temperature
icon: mdi:thermometer
icon_color: pink
alignment: center
- name: Kitchen
icon: mdi:silverware-fork-knife
icon_color: red
- name: Master Bedroom
icon: mdi:bed-king
icon_color: blue
- name: Abia's Bedroom
icon: mdi:flower-tulip
icon_color: green
- name: Aalian's Bedroom
icon: mdi:rocket-launch
icon_color: yellow
- name: Rohaan's Bedroom
icon: mdi:controller
icon_color: red
- name: Hallway
- name: Living Room
icon: mdi:sofa
- name: Front Door
icon: mdi:door-closed
entity_config:
- entity: fan.master_bedroom_fan
type: custom:mushroom-fan-card
quick_access_cards:
- type: custom:mushroom-title-card
title: Security
- type: custom:mushroom-cover-card
entity: cover.garage_door
show_buttons_control: true
- type: horizontal-stack
cards:
- type: custom:mushroom-lock-card
entity: lock.front_door
- type: custom:mushroom-entity-card
entity: sensor.front_door_lock_battery
name: Battery
extra_cards:
- type: custom:xiaomi-vacuum-map-card
map_source:
camera: camera.xiaomi_cloud_map_extractor
calibration_source:
camera: true
entity: vacuum.robot_vacuum
vacuum_platform: default
extra_views:
- theme: Backend-selected
title: cool view
path: cool-view
icon: mdi:emoticon-cool
badges: []
cards:
- type: markdown
content: I am cool
- The cards used are from Mushroom, Mini graph card and Web RTC
- Took inspiration from Balloob battery strategy