Ecrire en couleur une entité en fonction de son état

forum

type: custom:button-card
aspect_ratio: 9/3
custom_fields:
  cardGaragePortail:
    card:
      type: custom:button-card
      name: Garage et<br/>portail
      icon: mdi:gate-open
      aspect_ratio: 1/1
      styles:
        name:
          - font-size: 0.9em
          - justify-self: middle
          - align-self: end
          - color: rgba(255,255,255,0.6)
        card:
          - background-color: rgba(64,64,64,0.8)
          - box-shadow: 4px 4px 4px 0px rgba(32,32,32,0.5)
          - border: 2px rgba(211,211,211,1.0) outset
        icon:
          - border-radius: 50%
          - border: none
          - box-shadow: 0px 0px 5px 5px rgba(0,128,0,0.5)
          - box-shadow: |
              [[[
                if (states['input_boolean.position_garage'].state == 'off' && states['input_boolean.position_portail'].state == 'off')
                  return '0px 0px 5px 5px rgba(0,128,0,0.5)';
                else if (states['input_boolean.position_garage'].state == 'on' && states['input_boolean.position_portail'].state == 'on')
                  return '0px 0px 5px 5px rgba(255,0,0,0.5)';
                else if (states['input_boolean.position_garage'].state == 'off' && states['input_boolean.position_portail'].state == 'on')
                  return '0px 0px 5px 5px rgba(255,140,0,0.5)';
                else if (states['input_boolean.position_garage'].state == 'on' && states['input_boolean.position_portail'].state == 'off')
                  return '0px 0px 5px 5px rgba(255,140,0,0.5)';
              ]]]
          - background-color: |
              [[[
                if (states['input_boolean.position_garage'].state == 'off' && states['input_boolean.position_portail'].state == 'off')
                  return 'rgba(0,128,0,0.5)';
                else if (states['input_boolean.position_garage'].state == 'on' && states['input_boolean.position_portail'].state == 'on')
                  return 'rgba(255,0,0,0.5)';
                else if (states['input_boolean.position_garage'].state == 'off' && states['input_boolean.position_portail'].state == 'on')
                  return 'rgba(255,140,0,0.5)';
                else if (states['input_boolean.position_garage'].state == 'on' && states['input_boolean.position_portail'].state == 'off')
                  return 'rgba(255,140,0,0.5)';
              ]]]
          - width: 60px
          - height: 60px
          - color: |
              [[[
                if (states['input_boolean.position_garage'].state == 'off' && states['input_boolean.position_portail'].state == 'off')
                  return 'rgba(0,255,0,1.0)';
                else if (states['input_boolean.position_garage'].state == 'on' && states['input_boolean.position_portail'].state == 'on')
                  return 'rgba(255,0,0,1.05)';
                else if (states['input_boolean.position_garage'].state == 'off' && states['input_boolean.position_portail'].state == 'on')
                  return 'rgba(255,140,0,1.0)';
                else if (states['input_boolean.position_garage'].state == 'on' && states['input_boolean.position_portail'].state == 'off')
                  return 'rgba(255,140,0,1.0)';
              ]]]          
      tap_action:
        action: call-service
        service: script.essai
      hold_action:
        action: none
  cardGarage:
    card:
      type: custom:button-card
      entity: input_boolean.position_garage
      name: Garage
      icon: mdi:garage
      show_label: true
      label: |
        [[[
          if (states['input_boolean.position_garage'].state == 'off')
            return '<font color= "green"><b>fermé</font>';
          else if (states['input_boolean.position_garage'].state == 'on')
            return '<font color= "red"><b>ouvert</font>';
        ]]]
      aspect_ratio: 1/1
      styles:
        name:
          - font-size: 0.9em
          - justify-self: middle
          - align-self: end
          - color: rgba(255,255,255,0.6)
        card:
          - background-color: rgba(64,64,64,0.8)
          - box-shadow: 4px 4px 4px 0px rgba(32,32,32,0.5)
          - border: 2px rgba(211,211,211,1.0) outset
        icon:
          - border-radius: 50%
          - border: none
          - box-shadow: 0px 0px 5px 5px rgba(0,128,0,0.5)
          - box-shadow: |
              [[[
                if (states['input_boolean.position_garage'].state == 'off')
                  return '0px 0px 5px 5px rgba(0,128,0,0.5)';
                else if (states['input_boolean.position_garage'].state == 'on')
                  return '0px 0px 5px 5px rgba(255,0,0,0.5)';
              ]]]
          - background-color: |
              [[[
                if (states['input_boolean.position_garage'].state == 'off')
                  return 'rgba(0,128,0,0.5)';
                else if (states['input_boolean.position_garage'].state == 'on')
                  return 'rgba(255,0,0,0.5)';
              ]]]
          - width: 60px
          - height: 60px
          - color: |
              [[[
                if (states['input_boolean.position_garage'].state == 'off')
                  return 'rgba(0,255,0,1.0)';
                else if (states['input_boolean.position_garage'].state == 'on')
                  return 'rgba(255,0,0,1.05)';
              ]]]          
      tap_action:
        action: toggle
      hold_action:
        action: none
  cardportail:
    card:
      type: custom:button-card
      entity: input_boolean.position_portail
      name: Portail
      icon: mdi:gate
      show_label: true
      label: |
        [[[
          if (states['input_boolean.position_portail'].state == 'off')
            return '<font color= "green"><b>fermé</font>';
          else if (states['input_boolean.position_portail'].state == 'on')
            return '<font color= "red"><b>ouvert</font>';
        ]]]
      aspect_ratio: 1/1
      styles:
        name:
          - font-size: 0.9em
          - justify-self: middle
          - align-self: end
          - color: rgba(255,255,255,0.6)
        card:
          - background-color: rgba(64,64,64,0.8)
          - box-shadow: 4px 4px 4px 0px rgba(32,32,32,0.5)
          - border: 2px rgba(211,211,211,1.0) outset
        icon:
          - border-radius: 50%
          - border: none
          - box-shadow: 0px 0px 5px 5px rgba(0,128,0,0.5)
          - box-shadow: |
              [[[
                if (states['input_boolean.position_portail'].state == 'off')
                  return '0px 0px 5px 5px rgba(0,128,0,0.5)';
                else if (states['input_boolean.position_portail'].state == 'on')
                  return '0px 0px 5px 5px rgba(255,0,0,0.5)';
              ]]]
          - background-color: |
              [[[
                if (states['input_boolean.position_portail'].state == 'off')
                  return 'rgba(0,128,0,0.5)';
                else if (states['input_boolean.position_portail'].state == 'on')
                  return 'rgba(255,0,0,0.5)';
              ]]]
          - width: 60px
          - height: 60px
          - color: |
              [[[
                if (states['input_boolean.position_portail'].state == 'off')
                  return 'rgba(0,255,0,1.0)';
                else if (states['input_boolean.position_portail'].state == 'on')
                  return 'rgba(255,0,0,1.05)';
              ]]]          
      tap_action:
        action: toggle
      hold_action:
        action: none
styles:
  card:
    - background-color: rgba(0,0,0,0.7)
  custom_fields:
    cardGaragePortail:
      - width: 30%
      - position: absolute
      - left: 3%
      - top: 4%
    cardportail:
      - width: 30%
      - position: absolute
      - left: 35%
      - top: 4%
    cardGarage:
      - width: 30%
      - position: absolute
      - left: 67%
      - top: 4%

Voilà, tu peux modifier avec tes propres entités et ton script.

1 « J'aime »