CCCPaste

Mushroom template card Luci nuovo codice card...

type: custom:mushroom-template-card
entity: light.luci
primary: ""
secondary: luci
icon: |
  {% if states('sensor.luci_accese')|int >= 0 %}
    {{ 'mdi:numeric-' + states('sensor.luci_accese') + '-circle' }}
  {%- else -%}
    mdi:lightbulb
  {% endif %}
badge_icon: |
  {% if states('sensor.luci_accese')|int >= 1 %}
    mdi:lightbulb-on
  {% else %}
  {% endif %}
tap_action:
  action: fire-dom-event
  browser_mod:
    service: browser_mod.popup
    data:
      dismissable: true
      autoclose: false
      content:
        type: custom:auto-entities
        card:
          type: grid
          title: Luci accese
          columns: 2
          square: false
        card_param: cards
        filter:
          template: >-
            {%- for s in expand(states.light.luci)|selectattr('state','eq','on')
            if s.state == 'on' -%}
              {{
                {
                  'type': 'custom:button-card',
                  'entity': s.entity_id,
                  'template': 'light_button_accese',
                  'label': s.name,
                  'name': ' '
                
                }
              }},
            {%- endfor %}
        sort:
          method: state
          numeric: true
vertical: true
features_position: bottom
icon_tap_action:
  action: fire-dom-event
  browser_mod:
    service: browser_mod.popup
    data:
      dismissable: true
      autoclose: false
      content:
        type: custom:auto-entities
        card:
          type: grid
          title: Luci accese
          columns: 2
          square: false
        card_param: cards
        filter:
          template: >-
            {%- for s in expand(states.light.luci)|selectattr('state','eq','on')
            if s.state == 'on' -%}
              {{
                {
                  'type': 'custom:button-card',
                  'entity': s.entity_id,
                  'template': 'light_button_accese',
                  'label': s.name,
                  'name': ' '
                
                }
              }},
            {%- endfor %}
        sort:
          method: state
          numeric: true
card_mod:
  style:
    ha-tile-icon$: |
      .container {
        width: 36px !important;
        height: 36px !important;
        {% if states('sensor.luci_accese')|int >= 1 %}
        animation: ping 2s infinite;
        {%- else -%}
          box-shadow: 0px 2px 4px 0px rgba(0,0,0,0.36) !important;
          background: inherit !important;
        {% endif %}
        }
      @keyframes ping {
          0% { box-shadow: 0 0 1px 1px rgba(var(--red-rgb), 0.7); }
          100% { box-shadow: 0 0 5px 10px transparent; }
      }
    ha-tile-badge$: |
      .badge {
        --tile-badge-background-color: yellow;
      }
    .: |
      ha-card:active {
        transform: translateY(1.5px);
        transition: 0s;
      }
      ha-card {
        transform: scale(1.3);
        border: none;
        box-shadow: none;
        padding-left: 0px;
        background: rgba(0,0,0,0);
      }
      ha-tile-icon {
        --mdc-icon-size: 24px;
        {% if states('sensor.luci_accese')|int >= 1 %}
        --tile-color: red;
        --tile-icon-opacity: 0.5;
        {%- else -%}
        --tile-color: var(--disabled-color);
        {% endif %}
      }
      ha-tile-badge {
        #--tile-badge-icon-size: 100px;
        --tile-badge-icon-color: red;
        animation: wobbling 0.7s linear infinite alternate;
      }
      @keyframes wobbling {
      0% {transform: rotate(-20deg);}
      100% {transform: rotate(20deg);}
      }
      ha-state-icon {
        {% if states('sensor.luci_accese')|int >= 1 %}
          animation: alarm 3s ease infinite;
          color: yellow;
        {%- else -%}
        {% endif %}
      }
      @keyframes alarm {
        0%, 80%, 100% { transform: translateY(0); }
        10% { transform: translateY(-2px) rotate(-27deg); }
        20% { transform: translateY(-2px) rotate(21deg); }
        30% { transform: translateY(-2px) rotate(-15deg); }
        40% { transform: translateY(-2px) rotate(9deg); }
        50% { transform: translateY(0); }
        60% { transform: translateY(-1.2px) }
      }