Home

Awesome

<!-- omit in toc -->

Irrigation Unlimited Card

GitHub Release License hacs_badge

Project Maintenance GitHub Activity

Community Forum

<!-- TOC depthfrom:2 orderedlist:true -->

1. Introduction

A companion card for the Irrigation Unlimited integration. A compact mobile friendly card to display live irrigation status and control its operation.

demo

2. Installation

Add through HACS.

Issues regarding the installation should be asked in the Home Asssitant forum.

In most circumstances you do not need to read beyond this point - just instal and enjoy.

3. Options

This section is for people wanting to use YAML to edit the configuration. Everything listed here is available in the graphical editor.

NameTypeRequirementDescriptionDefault
typestringRequiredcustom:irrigation-unlimited-card
namestringOptionalCard nameIrrigation Unlimited
show_controllersstringOptionalCSV list of controllers to display
always_show_zonesbooleanOptionalForce the zones to always be displayedfalse
always_show_sequencesbooleanOptionalForce the sequences to always be displayedfalse
show_timeline_scheduledbooleanOptionalShow scheduled items in the timelinetrue
show_timeline_historybooleanOptionalShow history items in the timelinetrue

4. Explore

The card is ready to go as is and this section is for people wanting to explore a little further. It demonstrates some of the possibilites by applying CSS styling to various elements of the card. It assumes reasonable knowledge of CSS styling and the use of YAML. The following examples require card_mod. Just to repeat you MUST install card_mod or none of this works.

4.1 Party mode

Let's brighten up the card by adding some colour. This example adds a header (and possibly a footer). It is embedded within an Entities card which opens up even more possibilities to add buttons and such. Sunglasses maybe required for this demo and some bubbly.

lets_party

type: entities
header:
  type: picture
  image: >-
    https://www.home-assistant.io/images/dashboards/header-footer/balloons-header.png
entities:
  - type: custom:irrigation-unlimited-card
    name: Let's Irrigate 💦🌱
    always_show_sequences: true
    always_show_zones: false
    card_mod:
      style:
        $: |
          /* Colour the card title */
          h1.card-header { color: magenta }
        .: |
          /* Remove border around card */
          ha-card { border: none }

          /* Colour header icons */
          div.iu-header-row .iu-td4 ha-icon { color: red }
          div.iu-header-row .iu-td5 ha-icon { color: green }
          div.iu-header-row .iu-td6 ha-icon { color: blue }
          div.iu-header-row .iu-td7 ha-icon { color: khaki }

          /* Colour the controls */
          div.iu-control-panel-item.iu-show-zones {color: crimson }
          div.iu-control-panel-item.iu-show-sequences {color: indigo }

          /* Colour the expanders */
          div.iu-expander.iu-td1 { color: orange }

          /* Colour the menu buttons */
          div.iu-menu > ha-icon { color: khaki }

          /* Colour the menu items */
          div.iu-menu-item.iu-enable { color: green }
          div.iu-menu-item.iu-suspend { color: blue }
          div.iu-menu-item.iu-manual { color: red }
          div.iu-menu-item.iu-cancel { color: purple }
          div.iu-menu-item.iu-adjust { color: orange }
state_color: false
card_mod:
  style: |
    div.card-content {
      padding: 0;
    }

4.2 Minimalist

This example removes the controller menu along with the zone and sequence controls. It only shows sequences.

minimalist

type: custom:irrigation-unlimited-card
always_show_sequences: true
always_show_zones: false
card_mod:
  style: |
    /* Remove controller menu */
    div.iu-controller-row .iu-td7 { visibility: hidden }

    /* Remove zone and sequence buttons */
    div.iu-control-panel { display: none }

4.3 Hidden

This example shows how to remove/hide various elements. Rather than just playing show and tell there are numerous other opportunities to manipulate elements.

type: custom:irrigation-unlimited-card
always_show_sequences: true
always_show_zones: true
card_mod:
  style: |
    /* Hide the header row */
    div.iu-header-row { display: none }

    /* Hide the line seperating controllers */
    div.iu-controller > hr { display: none }

    /* Hide the line seperating zones */
    div.iu-zones > hr { display: none }

    /* Hide the line seperating sequences */
    div.iu-sequences > hr { display: none }

    /* Hide the zone and sequence buttons */
    div.iu-control-panel { display: none }

    /* Hide the controller menu */
    div.iu-controller-row .iu-td7 { visibility: hidden }

    /* Hide the zone menu */
    div.iu-zone-row .iu-td7 { visibility: hidden }

    /* Hide the sequence menu */
    div.iu-sequence-row .iu-td7 { visibility: hidden }

    /* Hide the sequence zone menu */
    div.iu-sequence-zone-row .iu-td7 { visibility: hidden }

    /* Hide the 2nd zone on controller 1 */
    div.iu-zone[iu-key="1.2.0.0"] { display: none }

    /* Hide the 4th sequence on controller 1 */
    div.iu-sequence[iu-key="1.0.4.0"] { display: none }

4.4 Class structure

Here follows an in depth explaination of the innner workings. The card is basically laid out as a 7 column wide table.

└──ha-card
  └── iu-header                       | The header row
    └── iu-header-row                 | The rows with the icons
  └── iu-controllers                  | Container for all controllers
    └── iu-controller                 | Container for the controller \*Note 1
      └── iu-control-panel            | Container for the zone and sequence buttons
      └── iu-controller-row           | The controller line
      └── iu-zones                    | Container for all zones
        └── iu-zone                   | Container for each zone \*Note 1
          └── iu-zone-row             | The zone line
          └── iu-zone-timelines       | Container for the timelines
            └── iu-zone-timeline      | One for each timeline item
      └── iu-sequences                | Container for all sequences
        └── iu-sequence               | Container for each sequence \*Note 1
        └── iu-sequence-row           | The sequence line
        └── iu-sequence-zones         | Container for all sequence zones
          └── iu-sequence-zone        | Container for each sequence zone \*Note 1
            └── iu-sequence-zone-row  | The sequence zone line

*Note 1: These objects may have one or more additional attributes as shown below

ClassDescription
iu-onThe object is on
iu-pausedThe object is paused
iu-delayThe object is in delay state
iu-enabledThe object is enabled
iu-suspendedThe object is suspended
iu-manualThe run is manual not scheduled
iu-runningThe object is running
iu-blockedThe object is blocked
iu-keyIdentifies the individual object. *Note 2

*Note 2: The nomenclature is controller.zone.sequence.sequence_zone for example "1.0.1.0" is sequence 1 of controller 1.

Column class identifiers. Additional classes maybe present as required. For example not every iu-td1 column has an expander.

ClassAdditional classesDescription
iu-td1iu-expanderExpander
iu-td2ha-iconIcon
iu-td3iu-nameName
iu-td4iu-schedule iu-startSchedule
iu-td5iu-durationDuration
iu-td6iu-adjustmentAdjustment
iu-td7Menu

Menu identifiers. Menus are laid out on a 3 columm grid.

Menu rows

ClassAdditional classesDescription
iu-menuContainer for the entire menu
iu-menu-item*Note 3Container for the menu item

*Note 3: One of the following classes to identify the item iu-enable iu-suspend iu-manual iu-pause iu-resume iu-cancel iu-adjust

Menu columns

ClassAdditional classesDescription
iu-mc1Name
iu-mc2inputInput
iu-mc3ha-iconButton

If you have got this far and done something interesting then please share.

Good luck with your card-modding.

5. Translations

If you would like the drop down menu and the options editor in your local language then please contribute a translate. See here for further details.

6. Support

BuyMeCoffee