2023-03-28 12:55:19 -04:00
2023-03-27 18:34:59 -04:00
2023-03-26 16:07:27 -04:00
2023-03-28 12:55:19 -04:00
2023-03-26 15:55:17 -04:00
2023-03-26 15:45:36 -04:00
2023-03-28 11:48:02 -04:00

Mushroom dashboard strategy

hacs release

Automatic

Views

customizable

What is Mushroom dashboard strategy ?

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

Features

  • 🛠 Automatically create dashboard with 3 lines of yaml
  • 😍 Built-in Views for device specific controls
  • 🎨 Many options to customize to your needs

Installation

Preresquisites

You need to install these cards first before using this strategy

HACS

Mushroom dashboard strategy is available in HACS (Home Assistant Community Store).

  1. Install HACS if you don't have it already
  2. Open HACS in Home Assistant
  3. Go to "Frontend" section
  4. Click 3 dots on top right and custom repository
  5. Add https://github.com/AalianKhan/mushroom-strategy with catagory Lovelace
  6. Search for "Mushroom strategy" and install

Manual

  1. Download mushroom-strategy.js file from the dist directory.
  2. Put mushroom-strategy.js file into your config/www folder.
  3. 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 as JavaScript 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
      

Usage

All the Rounded cards can be configured using Dashboard UI editor.

  1. In Dashboard UI, click 3 dots in top right corner.
  2. Click Edit Dashboard.
  3. Click 3 dots again
  4. Click Raw configuration editor
  5. Add these lines
strategy:
  type: custom:mushroom-strategy
views: []

Hidding specific entities

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

Views

Adding devices to areas

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

Strategy 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 specific entity, see entity_config
views object All views enabled Setting which pre-built views to show, see available views
chips object All count chips enabled Setting which pre-built chips to show, see available chips
quick_access_cards list of cards Optional List of cards to show below welcome card and above rooms cards
extra_cards list of cards Optional List of cards to show below room cards
extra_chips list of mushroom chips Optional List of chips to show on home view
extra_views list of view Optional List of views to add to the dashboard

Area Object

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

Example

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

Entity Config Object

The entity_config is a list of cards that enables you to give a specific entity any card you wish.

Example

entity_config:
  - entity: fan.master_bedroom_fan
    type: custom:mushroom-fan-card

Pre-built views

Mushroom strategy includes pre-built views to control/view specific domains. Only the devices that are in an area and is also defined in areas are shown. By default, all views are shown

Availible 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

Example

views:
  lights: true
  switches: true
  covers: false
  cameras: true
  thermostats: false

Pre-built chips

Mushroom strategy has chips that count the number of devices active for a specific domain. Only the devices that are in an area and is also defined in areas are counted. By default, all chips are enabled

Availible 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

Example

chips:
  climate_count: false
  cover_count: false

Full Example

strategy:
  type: custom:mushroom-strategy
  options:
    views:
      lights: true
      switches: true
      covers: false
      cameras: true
      thermostats: false
    chips:
      climate_count: false
      cover_count: false
    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_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
    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

Credits

S
Description
A strategy to automatically generate a dashboard using mushroom cards
Readme MIT
40 MiB
Languages
TypeScript 100%