Langzeitprojekt - Nachbau IOBroker VIS zu HA Dashbord

Hallo Zusammen,

ich habe über lange Jahre mein Haus mit IOBroker gesteuert und mir ein für mich und die Familie liebgewonnenes Bedienzentrum mittels eines in den Flurschrank eingebauten Tablets gebaut. Hier kann man zentral sehen ob irgendwo noch Fenster auf sind oder Lichter brennen. Zusätzlich kann ich auch die Heizkörperthermostate steuern, die Rollläden bedienen, über die Termine sehen wann der Müll geholt wird oder ein anderer Termin ansteht oder ob einer der Sensoren neue Batterien braucht und vieles mehr.

Ziel ist es nun dieses Schema so gut wie möglich nachzubauen.

In die VIS musste ich mich auch reindenken und konnte somit über die GUI “selbstgemahlte” Knöpfe frei auf dem Bildschirm platzieren.

Da ich vorhabe mittelfristig komplett auf HA zu wechseln, habe ich angefangen die Bereiche meiner VIS in HA nachzubauen, bin aber leider recht schnell an meine Grenzen gestoßen.

Hier mal ein Bild meines IOB VIS Dashbords:

Anfangen würde ich gerne mit der rechten Spalte, wo ich den Zustand der Aktoren sehen und steuern kann. In der Titelleiste steht immer fix die Etage, gefolgt von einer Varriablen, welche sagt ob gelüftet werden soll oder nicht. Manche der Buttons sind zusätzlich mit Jumps versehen um auf andere Seiten zu springen (z.B. der Mäher oder die Kameras). Wie oben geschrieben sind die Symbole in den Knöpfen mit Pixelmator selbst erstellt.

Mein erster Versuch zum Testen ob ich Buttons frei nebeneinander platzieren kann war so “Semi” erfolgreich. Hier das Ergebnis:

und der benutzte Code:

type: grid
cards:
  - type: heading
    icon: ""
    heading: Erdgeschoss
    heading_style: title
    grid_options:
      rows: 1
      columns: full
  - type: horizontal-stack
    cards:
      - type: markdown
        content: "**Flur**"
        text_only: true
        card_mod:
          style: |
            ha-card {
              background: transparent !important;
              border-radius: 0px !important;
              padding: 0 !important;
              margin: 0 !important;
              box-shadow: none !important;
              border: none !important;
              display: flex;
              align-items: center;
              justify-content: flex-start;
              height: 60px;
            }
            ha-markdown {
              font-size: 20px !important;
            }
      - type: custom:button-card
        color_type: blank-card
        styles:
          card:
            - width: 50px
            - height: 0px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
    grid_options:
      columns: 12
      rows: auto
  - type: horizontal-stack
    cards:
      - type: markdown
        content: "**WZ Terrassentür**"
        text_only: true
        card_mod:
          style: |
            ha-card {
              background: transparent !important;
              border-radius: 0px !important;
              padding: 0 !important;
              margin: 0 !important;
              box-shadow: none !important;
              border: none !important;
              display: flex;
              align-items: center;
              justify-content: flex-start;
              height: 60px;
            }
            ha-markdown {
              font-size: 20px !important;
            }
      - type: custom:button-card
        color_type: blank-card
        styles:
          card:
            - width: 50px
            - height: 0px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
    grid_options:
      columns: 12
      rows: auto
  - type: horizontal-stack
    cards:
      - type: markdown
        content: "**WZ Schiebetür**"
        text_only: true
        card_mod:
          style: |
            ha-card {
              background: transparent !important;
              border-radius: 0px !important;
              padding: 0 !important;
              margin: 0 !important;
              box-shadow: none !important;
              border: none !important;
              display: flex;
              align-items: center;
              justify-content: flex-start;
              height: 60px;
            }
            ha-markdown {
              font-size: 20px !important;
            }
      - type: custom:button-card
        color_type: blank-card
        styles:
          card:
            - width: 50px
            - height: 0px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
    grid_options:
      columns: 12
      rows: auto
  - type: horizontal-stack
    cards:
      - type: markdown
        content: "**Esszimmer**"
        text_only: true
        card_mod:
          style: |
            ha-card {
              background: transparent !important;
              border-radius: 0px !important;
              padding: 0 !important;
              margin: 0 !important;
              box-shadow: none !important;
              border: none !important;
              display: flex;
              align-items: center;
              justify-content: flex-start;
              height: 60px;
            }
            ha-markdown {
              font-size: 20px !important;
            }
      - type: custom:button-card
        color_type: blank-card
        styles:
          card:
            - width: 50px
            - height: 0px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
    grid_options:
      columns: 12
      rows: auto
  - type: horizontal-stack
    cards:
      - type: markdown
        content: "**Küche**"
        text_only: true
        card_mod:
          style: |
            ha-card {
              background: transparent !important;
              border-radius: 0px !important;
              padding: 0 !important;
              margin: 0 !important;
              box-shadow: none !important;
              border: none !important;
              display: flex;
              align-items: center;
              justify-content: flex-start;
              height: 60px;
            }
            ha-markdown {
              font-size: 20px !important;
            }
      - type: custom:button-card
        color_type: blank-card
        styles:
          card:
            - width: 50px
            - height: 0px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
    grid_options:
      columns: 12
      rows: auto
  - type: horizontal-stack
    cards:
      - type: markdown
        content: "**Gäste WC**"
        text_only: true
        card_mod:
          style: |
            ha-card {
              background: transparent !important;
              border-radius: 0px !important;
              padding: 0 !important;
              margin: 0 !important;
              box-shadow: none !important;
              border: none !important;
              display: flex;
              align-items: center;
              justify-content: flex-start;
              height: 60px;
            }
            ha-markdown {
              font-size: 20px !important;
            }
      - type: custom:button-card
        color_type: blank-card
        styles:
          card:
            - width: 50px
            - height: 0px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
      - type: custom:button-card
        entity: switch.shellyplusplugs_64b7080e02e0_switch_0
        icon: mdi:lightbulb
        show_name: false
        styles:
          card:
            - width: 50px
            - height: 50px
            - margin-right: 0px
            - border-radius: 4px
          icon:
            - width: 40px
            - height: 40px
    grid_options:
      columns: 12
      rows: auto
column_span: 1

Idee war rechtsbündig mit button-cards anzufangen und diese als horizontal stack cards dann bei bedarf um weitere button cards zu erweitern. Dies hat allerdings von der vertikalen Ausrichtung der Buttons nicht funktioniert. Als work-around habe ich mir deshalb in jeder Zeile eine blank-card eingefügt. Somit habe ich immer 5 Karten nebeneinander und würde in Bereichen wo ich nur 2 oder 3 Karten brauche die restlichen Karten mit blank-cards auffüllen.

Gibt es hier eine elegantere Lösung?

Ich glaube, dass es einige Leute gibt, die von IOBroker kommen und sich mit den HA Dashboards schwertun. Deshalb würde ich dieses Thema versuchen über die nächsten Monate fortzuführen um möglichst viele “Wechsler” wie mich abzuholen.

Grüße

miwi

Vorherige Beiträge gelöscht, da ich die Lösung der dort angefragten Fehler selbst gefunden habe.

Die rechte Spalte ist nun komplett fertig und sieht so aus:

Hier der Code:

type: grid
cards:
  - type: custom:mod-card
    card_mod:
      style: |
        ha-card {
          background: #202020 !important;
          padding: 0px !important;
          border-radius: 0px !important;
          box-shadow: none !important;
          height: 217px !important;
          width: 410px !important;
        }
    card:
      type: vertical-stack
      card_mod:
        style: |
          ha-card {
            gap: 0px !important;
          }
          #root {
            margin: 0px !important;
          }
          #root > * {
            margin: 0px !important;
          }
      cards:
        - type: markdown
          content: "**Obergeschoss**"
          card_mod:
            style: |
              ha-card {
                background: transparent !important;
                box-shadow: none !important;
                border-radius: 0px !important;
                border: none !important;
                padding: 0 !important;
                margin: 0 !important;
                height: 35px !important;
                width: 410px !important;
                overflow: hidden !important;
              }
              ha-markdown {
                padding: 0 10px !important;
                height: 35px !important;
                display: flex !important;
                align-items: center !important;
                font-size: 28px !important;
                overflow: hidden !important;
              }
              ha-markdown p {
                margin: 0 !important;
                text-align: left !important;
              }
              ha-markdown-element {
                width: 100% !important;
              }
        - type: horizontal-stack
          cards:
            - type: markdown
              content: "**Schlafen**"
              card_mod:
                style: |
                  ha-card {
                    background: transparent !important;
                    border-radius: 0px !important;
                    padding: 0 !important;
                    margin: 0 !important;
                    box-shadow: none !important;
                    border: none !important;
                    height: 50px !important;
                    width: 140px !important;
                    display: flex !important;
                    align-items: center !important;
                    }
                  ha-markdown {
                    font-size: 18px !important;
                    padding: 0 10px !important;
                    white-space: nowrap !important;            
                    }
                  ha-markdown p {
                    margin: 0 !important;
                  }
                  :host {
                    margin: 0 !important;
                  }
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Licht an1.png
                - value: "off"
                  entity_picture: /local/Bilder/Licht aus.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Licht Schrank an.png
                - value: "off"
                  entity_picture: /local/Bilder/Licht Schrank aus.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/KlimaAN.png
                - value: "off"
                  entity_picture: /local/Bilder/KlimaAUS.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Rollladen unten.png
                - value: "off"
                  entity_picture: /local/Bilder/Rollladen oben.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Fenster offen1.png
                - value: "off"
                  entity_picture: /local/Bilder/Fenster geschlossen.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-top: 0px
                  - margin-right: 7px
                entity_picture:
                  - width: 50px
                  - height: 50px
          card_mod:
            style: |
              ha-card {
                height: 65px !important;
                width: 400px !important;
                display: flex !important;
                align-items: center !important;
                background: transparent !important;
                box-shadow: none !important;
                padding: 0 5px !important;
                margin: 0 !important;
              }
              :host {
                margin: 0 !important;
              }
        - type: horizontal-stack
          cards:
            - type: markdown
              content: "**Badezimmer**"
              card_mod:
                style: |
                  ha-card {
                    background: transparent !important;
                    border-radius: 0px !important;
                    padding: 0 !important;
                    margin: 0 !important;
                    box-shadow: none !important;
                    border: none !important;
                    height: 50px !important;
                    width: 140px !important;
                    display: flex !important;
                    align-items: center !important;
                  }
                  ha-markdown {
                    font-size: 18px !important;
                    padding: 0 10px !important;
                    white-space: nowrap !important;
                  }
                  ha-markdown p {
                    margin: 0 !important;
                  }
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Rollladen unten.png
                - value: "off"
                  entity_picture: /local/Bilder/Rollladen oben.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Fenster offen1.png
                - value: "off"
                  entity_picture: /local/Bilder/Fenster geschlossen.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-top: 0px
                  - margin-right: 7px
                entity_picture:
                  - width: 50px
                  - height: 50px
          card_mod:
            style: |
              ha-card {
                height: 65px !important;
                width: 400px !important;
                display: flex !important;
                align-items: center !important;
                background: transparent !important;
                box-shadow: none !important;
                padding: 0 5px !important;
                margin: 0 !important;
              }
              :host {
                margin: 0 !important;
              }
        - type: horizontal-stack
          cards:
            - type: markdown
              content: "**Flur**"
              card_mod:
                style: |
                  ha-card {
                    background: transparent !important;
                    border-radius: 0px !important;
                    padding: 0 !important;
                    margin: 0 !important;
                    box-shadow: none !important;
                    border: none !important;
                    height: 50px !important;
                    width: 140px !important;
                    display: flex !important;
                    align-items: center !important;
                  }
                  ha-markdown {
                    font-size: 18px !important;
                    padding: 0 10px !important;
                    white-space: nowrap !important;
                  }
                  ha-markdown p {
                    margin: 0 !important;
                  }
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Licht an1.png
                - value: "off"
                  entity_picture: /local/Bilder/Licht aus.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Rollladen unten.png
                - value: "off"
                  entity_picture: /local/Bilder/Rollladen oben.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Fenster offen1.png
                - value: "off"
                  entity_picture: /local/Bilder/Fenster geschlossen.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-top: 0px
                  - margin-right: 7px
                entity_picture:
                  - width: 50px
                  - height: 50px
          card_mod:
            style: |
              ha-card {
                height: 65px !important;
                width: 400px !important;
                display: flex !important;
                align-items: center !important;
                background: transparent !important;
                box-shadow: none !important;
                padding: 0 5px !important;
                margin: 0 !important;
              }
              :host {
                margin: 0 !important;
              }
  - type: custom:mod-card
    card_mod:
      style: |
        ha-card {
          background: #202020 !important;
          padding: 0px !important;
          border-radius: 0px !important;
          box-shadow: none !important;
          height: 390px !important;
          width: 410px !important;
        }
    card:
      type: vertical-stack
      card_mod:
        style: |
          ha-card {
            gap: 0px !important;
          }
          #root {
            margin: 0px !important;
          }
          #root > * {
            margin: 0px !important;
          }
      cards:
        - type: markdown
          content: "**Erdgeschoss**"
          card_mod:
            style: |
              ha-card {
                background: transparent !important;
                box-shadow: none !important;
                border-radius: 0px !important;
                border: none !important;
                padding: 0 !important;
                margin: 0 !important;
                height: 35px !important;
                width: 410px !important;
                overflow: hidden !important;
              }
              ha-markdown {
                padding: 0 10px !important;
                height: 35px !important;
                display: flex !important;
                align-items: center !important;
                font-size: 28px !important;
                overflow: hidden !important;
              }
              ha-markdown p {
                margin: 0 !important;
                text-align: left !important;
              }
              ha-markdown-element {
                width: 100% !important;
              }
        - type: horizontal-stack
          cards:
            - type: markdown
              content: "**Flur**"
              card_mod:
                style: |
                  ha-card {
                    background: transparent !important;
                    border-radius: 0px !important;
                    padding: 0 !important;
                    margin: 0 !important;
                    box-shadow: none !important;
                    border: none !important;
                    height: 50px !important;
                    width: 140px !important;
                    display: flex !important;
                    align-items: center !important;
                    }
                  ha-markdown {
                    font-size: 18px !important;
                    padding: 0 10px !important;
                    white-space: nowrap !important;            
                    }
                  ha-markdown p {
                    margin: 0 !important;
                  }
                  :host {
                    margin: 0 !important;
                  }
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Licht an1.png
                - value: "off"
                  entity_picture: /local/Bilder/Licht aus.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/BWM richtig.png
                - value: "off"
                  entity_picture: /local/Bilder/BWM falsch.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Tur offen.png
                - value: "off"
                  entity_picture: /local/Bilder/Tur geschlossen.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-top: 0px
                  - margin-right: 7px
                entity_picture:
                  - width: 50px
                  - height: 50px
          card_mod:
            style: |
              ha-card {
                height: 65px !important;
                width: 400px !important;
                display: flex !important;
                align-items: center !important;
                background: transparent !important;
                box-shadow: none !important;
                padding: 0 5px !important;
                margin: 0 !important;
              }
              :host {
                margin: 0 !important;
              }
        - type: horizontal-stack
          cards:
            - type: markdown
              content: "**WZ Terrassentür**"
              card_mod:
                style: |
                  ha-card {
                    background: transparent !important;
                    border-radius: 0px !important;
                    padding: 0 !important;
                    margin: 0 !important;
                    box-shadow: none !important;
                    border: none !important;
                    height: 50px !important;
                    width: 170px !important;
                    display: flex !important;
                    align-items: center !important;
                  }
                  ha-markdown {
                    font-size: 18px !important;
                    padding: 0 10px !important;
                    white-space: nowrap !important;
                  }
                  ha-markdown p {
                    margin: 0 !important;
                  }
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Licht an1.png
                - value: "off"
                  entity_picture: /local/Bilder/Licht aus.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Rollladen unten.png
                - value: "off"
                  entity_picture: /local/Bilder/Rollladen oben.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Fenster offen1.png
                - value: "off"
                  entity_picture: /local/Bilder/Fenster geschlossen.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-top: 0px
                  - margin-right: 7px
                entity_picture:
                  - width: 50px
                  - height: 50px
          card_mod:
            style: |
              ha-card {
                height: 65px !important;
                width: 400px !important;
                display: flex !important;
                align-items: center !important;
                background: transparent !important;
                box-shadow: none !important;
                padding: 0 5px !important;
                margin: 0 !important;
              }
              :host {
                margin: 0 !important;
              }
        - type: horizontal-stack
          cards:
            - type: markdown
              content: "**WZ Schiebetür**"
              card_mod:
                style: |
                  ha-card {
                    background: transparent !important;
                    border-radius: 0px !important;
                    padding: 0 !important;
                    margin: 0 !important;
                    box-shadow: none !important;
                    border: none !important;
                    height: 50px !important;
                    width: 170px !important;
                    display: flex !important;
                    align-items: center !important;
                  }
                  ha-markdown {
                    font-size: 18px !important;
                    padding: 0 10px !important;
                    white-space: nowrap !important;
                  }
                  ha-markdown p {
                    margin: 0 !important;
                  }
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Licht an1.png
                - value: "off"
                  entity_picture: /local/Bilder/Licht aus.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/KlimaAN.png
                - value: "off"
                  entity_picture: /local/Bilder/KlimaAUS.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Rollladen unten.png
                - value: "off"
                  entity_picture: /local/Bilder/Rollladen oben.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Fenster offen1.png
                - value: "off"
                  entity_picture: /local/Bilder/Fenster geschlossen.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-top: 0px
                  - margin-right: 7px
                entity_picture:
                  - width: 50px
                  - height: 50px
          card_mod:
            style: |
              ha-card {
                height: 65px !important;
                width: 400px !important;
                display: flex !important;
                align-items: center !important;
                background: transparent !important;
                box-shadow: none !important;
                padding: 0 5px !important;
                margin: 0 !important;
              }
              :host {
                margin: 0 !important;
              }
        - type: horizontal-stack
          cards:
            - type: markdown
              content: "**Küche**"
              card_mod:
                style: |
                  ha-card {
                    background: transparent !important;
                    border-radius: 0px !important;
                    padding: 0 !important;
                    margin: 0 !important;
                    box-shadow: none !important;
                    border: none !important;
                    height: 50px !important;
                    width: 140px !important;
                    display: flex !important;
                    align-items: center !important;
                  }
                  ha-markdown {
                    font-size: 18px !important;
                    padding: 0 10px !important;
                    white-space: nowrap !important;
                  }
                  ha-markdown p {
                    margin: 0 !important;
                  }
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Licht an1.png
                - value: "off"
                  entity_picture: /local/Bilder/Licht aus.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Rollladen unten.png
                - value: "off"
                  entity_picture: /local/Bilder/Rollladen oben.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Fenster offen1.png
                - value: "off"
                  entity_picture: /local/Bilder/Fenster geschlossen.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-top: 0px
                  - margin-right: 7px
                entity_picture:
                  - width: 50px
                  - height: 50px
          card_mod:
            style: |
              ha-card {
                height: 65px !important;
                width: 400px !important;
                display: flex !important;
                align-items: center !important;
                background: transparent !important;
                box-shadow: none !important;
                padding: 0 5px !important;
                margin: 0 !important;
              }
              :host {
                margin: 0 !important;
              }
        - type: horizontal-stack
          cards:
            - type: markdown
              content: "**Gäste WC**"
              card_mod:
                style: |
                  ha-card {
                    background: transparent !important;
                    border-radius: 0px !important;
                    padding: 0 !important;
                    margin: 0 !important;
                    box-shadow: none !important;
                    border: none !important;
                    height: 50px !important;
                    width: 140px !important;
                    display: flex !important;
                    align-items: center !important;
                  }
                  ha-markdown {
                    font-size: 18px !important;
                    padding: 0 10px !important;
                    white-space: nowrap !important;
                  }
                  ha-markdown p {
                    margin: 0 !important;
                  }
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Rollladen unten.png
                - value: "off"
                  entity_picture: /local/Bilder/Rollladen oben.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Fenster offen1.png
                - value: "off"
                  entity_picture: /local/Bilder/Fenster geschlossen.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-top: 0px
                  - margin-right: 7px
                entity_picture:
                  - width: 50px
                  - height: 50px
          card_mod:
            style: |
              ha-card {
                height: 65px !important;
                width: 400px !important;
                display: flex !important;
                align-items: center !important;
                background: transparent !important;
                box-shadow: none !important;
                padding: 0 5px !important;
                margin: 0 !important;
              }
              :host {
                margin: 0 !important;
              }
        - type: horizontal-stack
          cards:
            - type: markdown
              content: "**Garten**"
              card_mod:
                style: |
                  ha-card {
                    background: transparent !important;
                    border-radius: 0px !important;
                    padding: 0 !important;
                    margin: 0 !important;
                    box-shadow: none !important;
                    border: none !important;
                    height: 50px !important;
                    width: 140px !important;
                    display: flex !important;
                    align-items: center !important;
                  }
                  ha-markdown {
                    font-size: 18px !important;
                    padding: 0 10px !important;
                    white-space: nowrap !important;
                  }
                  ha-markdown p {
                    margin: 0 !important;
                  }
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/pool1.png
                - value: "off"
                  entity_picture: /local/Bilder/pool1.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/BWM richtig.png
                - value: "off"
                  entity_picture: /local/Bilder/BWM falsch.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Tur offen.png
                - value: "off"
                  entity_picture: /local/Bilder/Tur geschlossen.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-top: 0px
                  - margin-right: 7px
                entity_picture:
                  - width: 50px
                  - height: 50px
          card_mod:
            style: |
              ha-card {
                height: 65px !important;
                width: 400px !important;
                display: flex !important;
                align-items: center !important;
                background: transparent !important;
                box-shadow: none !important;
                padding: 0 5px !important;
                margin: 0 !important;
              }
              :host {
                margin: 0 !important;
              }
  - type: custom:mod-card
    card_mod:
      style: |
        ha-card {
          background: #202020 !important;
          padding: 0px !important;
          border-radius: 0px !important;
          box-shadow: none !important;
          height: 158px !important;
          width: 410px !important;
        }
    card:
      type: vertical-stack
      card_mod:
        style: |
          ha-card {
            gap: 0px !important;
          }
          #root {
            margin: 0px !important;
          }
          #root > * {
            margin: 0px !important;
          }
      cards:
        - type: markdown
          content: "**Untergeschoss**"
          card_mod:
            style: |
              ha-card {
                background: transparent !important;
                box-shadow: none !important;
                border-radius: 0px !important;
                border: none !important;
                padding: 0 !important;
                margin: 0 !important;
                height: 35px !important;
                width: 410px !important;
                overflow: hidden !important;
              }
              ha-markdown {
                padding: 0 10px !important;
                height: 35px !important;
                display: flex !important;
                align-items: center !important;
                font-size: 28px !important;
                overflow: hidden !important;
              }
              ha-markdown p {
                margin: 0 !important;
                text-align: left !important;
              }
              ha-markdown-element {
                width: 100% !important;
              }
        - type: horizontal-stack
          cards:
            - type: markdown
              content: "**Zimmer Anna**"
              card_mod:
                style: |
                  ha-card {
                    background: transparent !important;
                    border-radius: 0px !important;
                    padding: 0 !important;
                    margin: 0 !important;
                    box-shadow: none !important;
                    border: none !important;
                    height: 50px !important;
                    width: 140px !important;
                    display: flex !important;
                    align-items: center !important;
                    }
                  ha-markdown {
                    font-size: 18px !important;
                    padding: 0 10px !important;
                    white-space: nowrap !important;            
                    }
                  ha-markdown p {
                    margin: 0 !important;
                  }
                  :host {
                    margin: 0 !important;
                  }
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Licht an1.png
                - value: "off"
                  entity_picture: /local/Bilder/Licht aus.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Entfeuchten AN.png
                - value: "off"
                  entity_picture: /local/Bilder/Entfeuchten AUS.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/KlimaAN.png
                - value: "off"
                  entity_picture: /local/Bilder/KlimaAUS.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Rollladen unten.png
                - value: "off"
                  entity_picture: /local/Bilder/Rollladen oben.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Fenster offen1.png
                - value: "off"
                  entity_picture: /local/Bilder/Fenster geschlossen.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-top: 0px
                  - margin-right: 7px
                entity_picture:
                  - width: 50px
                  - height: 50px
          card_mod:
            style: |
              ha-card {
                height: 65px !important;
                width: 400px !important;
                display: flex !important;
                align-items: center !important;
                background: transparent !important;
                box-shadow: none !important;
                padding: 0 5px !important;
                margin: 0 !important;
              }
              :host {
                margin: 0 !important;
              }
        - type: horizontal-stack
          cards:
            - type: markdown
              content: "**HWR/Schrank**"
              card_mod:
                style: |
                  ha-card {
                    background: transparent !important;
                    border-radius: 0px !important;
                    padding: 0 !important;
                    margin: 0 !important;
                    box-shadow: none !important;
                    border: none !important;
                    height: 50px !important;
                    width: 140px !important;
                    display: flex !important;
                    align-items: center !important;
                  }
                  ha-markdown {
                    font-size: 18px !important;
                    padding: 0 10px !important;
                    white-space: nowrap !important;
                  }
                  ha-markdown p {
                    margin: 0 !important;
                  }
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              color_type: blank-card
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Waschmaschine FERTIG.png
                - value: "off"
                  entity_picture: /local/Bilder/Waschmaschine AUS.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Schrank AN.png
                - value: "off"
                  entity_picture: /local/Bilder/Schrank AUS.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-right: "-3px"
                  - margin-top: 0px
                entity_picture:
                  - width: 50px
                  - height: 50px
            - type: custom:button-card
              entity: switch.shellyplusplugs_64b7080e02e0_switch_0
              show_name: false
              tap_action:
                action: toggle
              show_entity_picture: true
              state:
                - value: "on"
                  entity_picture: /local/Bilder/Entfeuchten AN.png
                - value: "off"
                  entity_picture: /local/Bilder/Entfeuchten AUS.png
              styles:
                card:
                  - width: 50px
                  - height: 50px
                  - border-radius: 4px
                  - background: transparent
                  - box-shadow: none
                  - margin-top: 0px
                  - margin-right: 7px
                entity_picture:
                  - width: 50px
                  - height: 50px
          card_mod:
            style: |
              ha-card {
                height: 65px !important;
                width: 400px !important;
                display: flex !important;
                align-items: center !important;
                background: transparent !important;
                box-shadow: none !important;
                padding: 0 5px !important;
                margin: 0 !important;
              }
              :host {
                margin: 0 !important;
              }

Als nächsten mache ich mich an die Uhr mit Sonnen Auf- und Untergang sowie der Ampel für neue Statusmeldungen.

1 „Gefällt mir“

Zeitfenster ist fertig. Hatte extreme Schwierigkeiten die einzelnen Kachel zu platzieren, da immer wieder Abstände hinzugefügt wurden.

Hier der Code:

type: custom:mod-card
card_mod:
  style: |
    ha-card {
      background: #202020 !important;
      padding: 0px !important;
      border-radius: 0px !important;
      border-width: 0px !important;
      box-shadow: none !important;
      height: 160px !important;
      width: 410px !important;
    }
card:
  type: vertical-stack
  card_mod:
    style: |
      ha-card {
        gap: 0px !important;
        padding: 0px !important;
      }
      ha-card > * {
        margin: 0px !important;
      }
      #root {
        margin: 0px !important;
        gap: 0px !important;
        display: flex !important;
        flex-direction: column !important;
      }
      #root > hui-horizontal-stack-card {
        margin-top: -8px !important;
      }
      #root > hui-markdown-card {
        margin-bottom: -8px !important;
      }
  cards:
    - type: markdown
      content: "**Zeit**"
      card_mod:
        style: |
          :host {
            display: block !important;
            margin: 0 !important;
          }
          ha-card {
            background: transparent !important;
            box-shadow: none !important;
            border-radius: 0px !important;
            border: none !important;
            padding: 0 !important;
            margin: 0 !important;
            height: 35px !important;
            width: 410px !important;
            overflow: hidden !important;
          }
          ha-markdown {
            padding: 0 10px !important;
            height: 35px !important;
            display: flex !important;
            align-items: center !important;
            font-size: 28px !important;
            overflow: hidden !important;
          }
          ha-markdown p {
            margin: 0 !important;
            text-align: left !important;
          }
    - type: horizontal-stack
      card_mod:
        style: |
          :host {
            display: block !important;
            margin: -8px 0 0 0 !important;
          }
          ha-card {
            gap: 0px !important;
            margin-top: -8px !important;
          }
          #root {
            gap: 0px !important;
          }
      cards:
        - type: vertical-stack
          cards:
            - type: markdown
              content: >-
                {{ state_attr('sun.sun', 'next_rising') | as_timestamp |
                timestamp_custom('%H:%M') }}
              card_mod:
                style: |
                  ha-card {
                    background: transparent !important;
                    box-shadow: none !important;
                    border-radius: 0px !important;
                    border: none !important;
                    padding: 0 !important;
                    margin: 0 !important;
                    margin-top: 10px !important;
                    height: 25px !important;
                    width: 100px !important;
                  }
                  ha-markdown {
                    font-size: 20px !important;
                    font-weight: normal !important;
                    color: white !important;
                    text-align: center !important;
                    line-height: 25px !important;
                    padding: 0 !important;
                    margin: 0 !important;
                  }
                  ha-markdown p {
                    margin: 0 !important;
                  }
            - type: picture
              image: /local/Bilder/Sonnenaufgang.png
              tap_action:
                action: none
              hold_action:
                action: none
              card_mod:
                style: |
                  ha-card {
                    background: transparent !important;
                    border: none !important;
                    border-radius: 0px !important;
                    box-shadow: none !important;
                    padding: 0 !important;
                    margin: 0 auto 0 auto !important;
                    height: 21px !important;
                    width: 55px !important;
                  }
                  img {
                    width: 55px !important;
                    height: 21px !important;
                    object-fit: contain !important;
                  }
          card_mod:
            style: |
              ha-card {
                background: transparent !important;
                box-shadow: none !important;
                padding: 0 !important;
                margin: 0 !important;
                height: 80px !important;
                width: 100px !important;
                max-width: 100px !important;
                min-width: 100px !important;
              }
              :host {
                width: 100px !important;
                max-width: 100px !important;
                min-width: 100px !important;
              }
        - type: markdown
          content: "{{ now().strftime('%H:%M') }}"
          card_mod:
            style: |
              ha-card {
                background: transparent !important;
                width: 210px !important;
                height: 80px !important;
                padding: 0 !important;
                margin: 0 !important;
                box-shadow: none !important;
                border-radius: 0px !important;
                border: none !important;
              }
              ha-markdown {
                font-size: 80px !important;
                font-weight: 400 !important;
                color: white !important;
                text-align: center !important;
                line-height: 80px !important;
                padding: 0 !important;
                margin: 0 !important;
              }
              ha-markdown p {
                font-size: 100px !important;
                color: black !important;
                margin: 0 !important;
                line-height: 80px !important;
              }
        - type: vertical-stack
          cards:
            - type: markdown
              content: >-
                {{ state_attr('sun.sun', 'next_setting') | as_timestamp |
                timestamp_custom('%H:%M') }}
              card_mod:
                style: |
                  ha-card {
                    background: transparent !important;
                    box-shadow: none !important;
                    border-radius: 0px !important;
                    border: none !important;
                    padding: 0 !important;
                    margin: 0 !important;
                    margin-top: 10px !important;
                    height: 25px !important;
                    width: 100px !important;
                  }
                  ha-markdown {
                    font-size: 20px !important;
                    font-weight: normal !important;
                    color: white !important;
                    text-align: center !important;
                    line-height: 25px !important;
                    padding: 0 !important;
                    margin: 0 !important;
                  }
                  ha-markdown p {
                    margin: 0 !important;
                  }
            - type: picture
              image: /local/Bilder/Sonnenuntergang.png
              tap_action:
                action: none
              hold_action:
                action: none
              card_mod:
                style: |
                  ha-card {
                    background: transparent !important;
                    border: none !important;
                    border-radius: 0px !important;
                    box-shadow: none !important;
                    padding: 0 !important;
                    margin: 0 auto 0 auto !important;
                    height: 21px !important;
                    width: 55px !important;
                  }
                  img {
                    width: 55px !important;
                    height: 21px !important;
                    object-fit: contain !important;
                  }
          card_mod:
            style: |
              ha-card {
                background: transparent !important;
                box-shadow: none !important;
                padding: 0 !important;
                margin: 0 !important;
                height: 80px !important;
                width: 100px !important;
                max-width: 100px !important;
                min-width: 100px !important;
              }
              :host {
                width: 100px !important;
                max-width: 100px !important;
                min-width: 100px !important;
              }
    - type: horizontal-stack
      card_mod:
        style: |
          :host {
            display: block !important;
            margin: -8px 0 0 0 !important;
          }
          ha-card {
            gap: 0px !important;
            margin-top: -8px !important;
          }
          #root {
            gap: 0px !important;
          }
      cards:
        - type: custom:button-card
          entity: switch.shellyplusplugs_64b7080e02e0_switch_0
          show_state: false
          show_name: false
          show_icon: false
          tap_action:
            action: none
          hold_action:
            action: none
          state:
            - value: "off"
              styles:
                card:
                  - background-image: url("/local/Bilder/status_off.png")
                  - background-size: 49px 21px
                  - background-repeat: no-repeat
                  - background-position: center
            - value: "on"
              styles:
                card:
                  - background-image: url("/local/Bilder/Status_on.png")
                  - background-size: 49px 21px
                  - background-repeat: no-repeat
                  - background-position: center
          styles:
            card:
              - background: transparent
              - width: 100px
              - min-width: 100px
              - max-width: 100px
              - height: 45px
              - padding: 0
              - margin: 0
              - box-shadow: none
              - border-radius: 0px
              - border: none
        - type: markdown
          content: >
            {% set days = {'Monday': 'Montag', 'Tuesday': 'Dienstag',
            'Wednesday': 'Mittwoch', 'Thursday': 'Donnerstag', 'Friday':
            'Freitag', 'Saturday': 'Samstag', 'Sunday': 'Sonntag'} %}

            {% set months = {'January': 'Januar', 'February': 'Februar',
            'March': 'März', 'April': 'April', 'May': 'Mai', 'June': 'Juni',
            'July': 'Juli', 'August': 'August', 'September': 'September',
            'October': 'Oktober', 'November': 'November', 'December':
            'Dezember'} %}

            {{ days[now().strftime('%A')] }}, {{ now().strftime('%d') }}. {{
            months[now().strftime('%B')] }} {{ now().strftime('%Y') }}
          card_mod:
            style: |
              ha-card {
                background: transparent !important;
                width: 210px !important;
                height: 45px !important;
                padding: 0 !important;
                margin: 0 !important;
                box-shadow: none !important;
                border-radius: 0px !important;
                border: none !important;
              }
              ha-markdown {
                font-size: 14px !important;
                font-weight: normal !important;
                color: white !important;
                text-align: center !important;
                line-height: 45px !important;
                padding: 0 !important;
                margin: 0 !important;
              }
              ha-markdown p {
                margin: 0 !important;
                line-height: 45px !important;
              }
        - type: custom:button-card
          color_type: blank-card
          styles:
            card:
              - background: transparent
              - width: 100px
              - height: 45px
              - padding: 0
              - margin: 0
              - box-shadow: none
              - border-radius: 0px

1 „Gefällt mir“

Nächster Teil ist fertig und hat mich locker 5 Stunden Zeit gekostet, da ich Schwierigkeiten hatte die Flussrichtungen des Stroms mit Pfeilen zu animieren als auch, dass ich mir einige Helfer erstellen musste um den aktuellen Verbrauch und den heutigen Verbrauch anzeigen zu können.

Hier die Kachel:

und hier der Code:

type: grid
cards:
  - type: picture-elements
    elements:
      - type: custom:button-card
        entity: sensor.solaredge_ac_power
        show_name: false
        show_state: false
        show_units: false
        show_icon: false
        state:
          - value: 0
            styles:
              card:
                - display: none
        styles:
          card:
            - width: 70px
            - height: 70px
            - border-radius: 100%
            - border: 2px solid lightgreen
            - background-color: white
            - padding: 0
          grid:
            - position: relative
          custom_fields:
            power:
              - position: absolute
              - top: 50%
              - left: 50%
              - transform: translate(-50%, -50%)
              - color: black
              - font-size: 20px
              - font-weight: bold
              - white-space: nowrap
        custom_fields:
          power: >
            [[[ return (parseFloat(states['sensor.solaredge_ac_power'].state) /
            1000).toFixed(1) + '<br>kW'; ]]]
        style:
          top: 45px
          left: 40px
      - type: conditional
        conditions:
          - entity: sensor.solaredge_ac_power
            state_not: "0"
        elements:
          - type: icon
            icon: mdi:arrow-right-thin
            style:
              top: 45px
              left: 85px
              color: lightgreen
              "--mdc-icon-size": 40px
      - type: custom:button-card
        entity: sensor.lilygo_rs4851_marstek_ac_power
        show_name: false
        show_state: false
        show_units: false
        show_icon: false
        state:
          - operator: ">"
            value: 0
            styles:
              card:
                - border: 2px solid orange
          - value: 0
            styles:
              card:
                - border: 2px solid gray
          - operator: <
            value: 0
            styles:
              card:
                - border: 2px solid lightgreen
        styles:
          card:
            - width: 70px
            - height: 50px
            - border-radius: 0
            - background-color: white
            - padding: 3px
            - box-sizing: border-box
          grid:
            - position: absolute
          custom_fields:
            power:
              - position: absolute
              - top: 2px
              - left: 50%
              - transform: translateX(-50%)
              - color: black
              - font-size: 18px
              - font-weight: bold
              - white-space: nowrap
            battery:
              - position: absolute
              - bottom: 2px
              - left: 50%
              - transform: translateX(-50%)
              - color: black
              - font-size: 15px
              - white-space: nowrap
        custom_fields:
          power: >
            [[[ return
            (parseFloat(states['sensor.lilygo_rs4851_marstek_ac_power'].state) /
            1000).toFixed(1) + ' kW'; ]]]
          battery: >
            [[[ return
            Math.round(parseFloat(states['sensor.lilygo_rs4851_marstek_battery_state_of_charge'].state))
            + ' %'; ]]]
        style:
          position: absolute
          top: 72.5px
          left: 109.5px
          transform: translate(0, 0)
      - type: conditional
        conditions:
          - condition: numeric_state
            entity: sensor.lilygo_rs4851_marstek_ac_power
            below: -0.1
        elements:
          - type: icon
            icon: mdi:arrow-left-thin
            style:
              top: 95px
              left: 188px
              color: lightgreen
              "--mdc-icon-size": 30px
      - type: conditional
        conditions:
          - condition: numeric_state
            entity: sensor.lilygo_rs4851_marstek_ac_power
            above: 0.1
        elements:
          - type: icon
            icon: mdi:arrow-right-thin
            style:
              top: 95px
              left: 188px
              color: orange
              "--mdc-icon-size": 30px
      - type: custom:button-card
        entity: sensor.solaredge_m1_ac_power
        show_name: false
        show_state: false
        show_units: false
        show_icon: false
        state:
          - value: 0
            styles:
              card:
                - display: none
          - operator: ">"
            value: 99
            styles:
              card:
                - border: 2px solid lightgreen
          - operator: <
            value: -99
            styles:
              card:
                - border: 2px solid orange
        styles:
          card:
            - width: 60px
            - height: 60px
            - border-radius: 100%
            - border: 2px solid gray
            - background-color: white
            - padding: 0
          grid:
            - position: relative
          custom_fields:
            power:
              - position: absolute
              - top: 50%
              - left: 50%
              - transform: translate(-50%, -50%)
              - color: black
              - font-size: 18px
              - font-weight: bold
              - white-space: nowrap
        custom_fields:
          power: >
            [[[ return
            (Math.abs(parseFloat(states['sensor.solaredge_m1_ac_power'].state))
            / 1000).toFixed(1) + '<br>kW'; ]]]
        style:
          top: 32px
          left: 308px
      - type: conditional
        conditions:
          - condition: numeric_state
            entity: sensor.solaredge_m1_ac_power
            below: -99
        elements:
          - type: icon
            icon: mdi:arrow-down-thin
            style:
              top: 70px
              left: 307px
              color: orange
              "--mdc-icon-size": 30px
      - type: conditional
        conditions:
          - condition: numeric_state
            entity: sensor.solaredge_m1_ac_power
            above: 99
        elements:
          - type: icon
            icon: mdi:arrow-up-thin
            style:
              top: 70px
              left: 307px
              color: lightgreen
              "--mdc-icon-size": 30px
      - type: conditional
        conditions:
          - condition: numeric_state
            entity: sensor.solaredge_m1_ac_power
            below: -99
        elements:
          - type: icon
            icon: mdi:arrow-left-thin
            style:
              top: 95px
              left: 280px
              color: orange
              "--mdc-icon-size": 40px
      - type: conditional
        conditions:
          - condition: numeric_state
            entity: sensor.solaredge_m1_ac_power
            above: 99
        elements:
          - type: icon
            icon: mdi:arrow-right-thin
            style:
              top: 95px
              left: 280px
              color: lightgreen
              "--mdc-icon-size": 40px
      - type: custom:button-card
        entity: sensor.stromverbrauch_haus_aktuell
        show_name: false
        show_state: false
        show_units: false
        show_icon: false
        styles:
          card:
            - width: 55px
            - height: 55px
            - border-radius: 100%
            - border: none
            - background-color: darkblue
            - padding: 0
          grid:
            - position: absolute
          custom_fields:
            power:
              - position: absolute
              - top: 50%
              - left: 50%
              - transform: translate(-50%, -50%)
              - color: white
              - font-size: 17px
              - font-weight: bold
              - white-space: nowrap
        custom_fields:
          power: >
            [[[ return
            (parseFloat(states['sensor.stromverbrauch_haus_aktuell'].state)).toFixed(1)
            + '<br> kW'; ]]]
        style:
          top: 93px
          left: 223px
      - type: state-label
        style:
          left: 160px
          top: 25px
          font-size: 18px
          font-weight: bold
          position: absolute
          value_template: "{{ states(entity) | float | round(1) }} kWh"
        entity: sensor.stromverbrauch_heute_gerundet
    image: /local/Bilder/Solaredge Black.png
    card_mod:
      style: |
        ha-card {
          border: none !important;
          border-radius: 0 !important;
          box-shadow: none !important;
          width: 410px !important;
          height: 140px !important;
        }

Als nächstes kommt die Kachel die anzeigt ob ein Auto lädt (diese kommt Anstelle der Stromanzeigekachel).
1 „Gefällt mir“

Hier die nächste Kachel:

und der zugehörige Code:

type: custom:mod-card
card_mod:
  style: |
    ha-card {
      background: #202020 !important;
      padding: 0px !important;
      border-radius: 0px !important;
      border: none !important;
      box-shadow: none !important;
      height: 136px !important;
      width: 410px !important;
      overflow: hidden !important;
    }
card:
  type: vertical-stack
  cards:
    - type: markdown
      content: "**Netatmo**"
      card_mod:
        style: |
          ha-card {
            background: transparent !important;
            box-shadow: none !important;
            border: none !important;
            height: 35px !important;
            width: 410px !important;
            overflow: hidden !important;
          }
          ha-markdown {
            padding: 0 10px !important;
            height: 35px !important;
            display: flex !important;
            align-items: center !important;
            font-size: 28px !important;
            color: #a8a8a8 !important;
          }
          ha-markdown p { margin: 0 !important; padding: 0 !important; }
    - type: picture-elements
      image: >-
        data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDEwIiBoZWlnaHQ9IjEwMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cmVjdCB3aWR0aD0iNDEwIiBoZWlnaHQ9IjEwMSIgZmlsbD0iIzIwMjAyMCIvPjwvc3ZnPg==
      card_mod:
        style: |
          ha-card {
            background: #202020 !important;
            height: 101px !important;
            width: 410px !important;
            border: none !important;
            border-radius: 0px !important;
            padding: 0 !important;
          }
      elements:
        - type: image
          entity: sensor.wohnzimmer_kinderzimmer_batterie
          image: /local/Bilder/Batterie.png
          style:
            left: 62px
            top: 7px
            width: 25px
          card_mod:
            style: >
              :host { display: {{ 'block' if
              states('sensor.wohnzimmer_kinderzimmer_batterie') | float(100) <
              20 else 'none' }} !important; }
        - type: state-label
          entity: sensor.wohnzimmer_kinderzimmer_luftfeuchtigkeit
          style:
            left: 62px
            top: 32px
            font-size: 32px
            color: white
        - type: state-label
          entity: sensor.wohnzimmer_kinderzimmer_kohlendioxid
          style:
            left: 62px
            top: 58px
            font-size: 15px
            color: white
        - type: image
          entity: sensor.wohnzimmer_kinderzimmer_kohlendioxid
          image: >-
            data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBjeD0iNSIgY3k9IjUiIHI9IjUiIGZpbGw9InJlZCIvPjwvc3ZnPg==
          style:
            left: 106px
            top: 58px
            width: 10px
          card_mod:
            style: >
              :host { filter: {{ 'hue-rotate(120deg)' if
              states('sensor.wohnzimmer_kinderzimmer_kohlendioxid') | float(0)
              <= 1000 else 'none' }} !important; }
        - type: state-label
          entity: sun.sun
          style:
            left: 62px
            top: 80px
          card_mod:
            style: |
              div { 
                color: transparent !important;
                white-space: nowrap;
              }
              div::before { 
                content: "Zimmer Anna"; 
                color: white !important;
                font-size: 13px !important;
                position: absolute;
                left: 50%;
                transform: translateX(-50%); /* Nur horizontale Zentrierung */
              }
        - type: state-label
          entity: sensor.wohnzimmer_luftfeuchtigkeit
          style:
            left: 154px
            top: 32px
            font-size: 32px
            color: white
        - type: state-label
          entity: sensor.wohnzimmer_kohlendioxid
          style:
            left: 154px
            top: 58px
            font-size: 15px
            color: white
        - type: image
          entity: sensor.wohnzimmer_kohlendioxid
          image: >-
            data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBjeD0iNSIgY3k9IjUiIHI9IjUiIGZpbGw9InJlZCIvPjwvc3ZnPg==
          style:
            left: 199px
            top: 58px
            width: 10px
          card_mod:
            style: >
              :host { filter: {{ 'hue-rotate(120deg)' if
              states('sensor.wohnzimmer_kohlendioxid') | float(0) <= 1000 else
              'none' }} !important; }
        - type: state-label
          entity: sun.sun
          style:
            left: 154px
            top: 80px
          card_mod:
            style: |
              div { 
                color: transparent !important;
                white-space: nowrap;
              }
              div::before { 
                content: "Wohnzimmer"; 
                color: white !important;
                font-size: 13px !important;
                position: absolute;
                left: 50%;
                transform: translateX(-50%);
              }
        - type: image
          entity: sensor.wohnzimmer_schlafzimmer_batterie
          image: /local/Bilder/Batterie.png
          style:
            left: 256px
            top: 7px
            width: 25px
          card_mod:
            style: >
              :host { display: {{ 'block' if
              states('sensor.wohnzimmer_schlafzimmer_batterie') | float(100) <
              20 else 'none' }} !important; }
        - type: state-label
          entity: sensor.wohnzimmer_schlafzimmer_luftfeuchtigkeit
          style:
            left: 256px
            top: 32px
            font-size: 32px
            color: white
        - type: state-label
          entity: sensor.wohnzimmer_schlafzimmer_kohlendioxid
          style:
            left: 256px
            top: 58px
            font-size: 15px
            color: white
        - type: image
          entity: sensor.wohnzimmer_schlafzimmer_kohlendioxid
          image: >-
            data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBjeD0iNSIgY3k9IjUiIHI9IjUiIGZpbGw9InJlZCIvPjwvc3ZnPg==
          style:
            left: 301px
            top: 58px
            width: 10px
          card_mod:
            style: >
              :host { filter: {{ 'hue-rotate(120deg)' if
              states('sensor.wohnzimmer_schlafzimmer_kohlendioxid') | float(0)
              <= 1000 else 'none' }} !important; }
        - type: state-label
          entity: sun.sun
          style:
            left: 256px
            top: 80px
          card_mod:
            style: |
              div { 
                color: transparent !important;
                white-space: nowrap;
              }
              div::before { 
                content: "Schlafzimmer"; 
                color: white !important;
                font-size: 13px !important;
                position: absolute;
                left: 50%;
                transform: translateX(-50%);
              }
        - type: image
          entity: sensor.wohnzimmer_kinderzimmer_batterie
          image: /local/Bilder/Batterie.png
          style:
            left: 348px
            top: 7px
            width: 25px
          card_mod:
            style: >
              :host { display: {{ 'block' if
              states('sensor.wohnzimmer_kinderzimmer_batterie') | float(100) <
              20 else 'none' }} !important; }
        - type: state-label
          entity: sensor.wohnzimmer_luftfeuchtigkeit
          style:
            left: 348px
            top: 32px
            font-size: 32px
            color: white
        - type: state-label
          entity: sensor.wohnzimmer_kohlendioxid
          style:
            left: 348px
            top: 58px
            font-size: 16px
            color: white
        - type: image
          entity: sensor.wohnzimmer_kohlendioxid
          image: >-
            data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBjeD0iNSIgY3k9IjUiIHI9IjUiIGZpbGw9InJlZCIvPjwvc3ZnPg==
          style:
            left: 393px
            top: 58px
            width: 10px
          card_mod:
            style: >
              :host { filter: {{ 'hue-rotate(120deg)' if
              states('sensor.wohnzimmer_kohlendioxid') | float(0) <= 1000 else
              'none' }} !important; }
        - type: state-label
          entity: sun.sun
          style:
            left: 348px
            top: 80px
          card_mod:
            style: |
              div { 
                color: transparent !important;
                white-space: nowrap;
              }
              div::before { 
                content: "HWR"; 
                color: white !important;
                font-size: 13px !important;
                position: absolute;
                left: 50%;
                transform: translateX(-50%);
              }

So langsam verstehe ich den Aufbau, muss aber sagen, dass die Erstellung eines Dashboards in IOBroker um einiges einfacher war, da man hauptsächlich in der GUI die Grafikelemente platzieren und mit Entitäten verknüpfen konnte. Hier in HA ist 90% der Dinge Code-basierend und ich muss viel lesen, probieren und fairerweise auch auf AI (Claude) zurückgreifen.

Nächste Kachel fertig.

Hier nutze ich als Basis die Trashcard. Musste aber einige Anpassungen machen um die Mushroomoptik loszuwerden. Ein versuch direkt auf den Kalender zuzugreifen hat nicht funktioniert, da immer nur der nächste Termin verfügbar war.

Hier der Code:

type: custom:mod-card
card_mod:
  style: |
    ha-card {
      background: #202020 !important;
      padding: 0px !important;
      border-radius: 0px !important;
      border: none !important;
      box-shadow: none !important;
      height: 213px !important;
      width: 410px !important;
      overflow: hidden !important;
    }
card:
  type: vertical-stack
  cards:
    - type: markdown
      content: "**Termine**"
      card_mod:
        style: |
          ha-card {
            background: transparent !important;
            box-shadow: none !important;
            border: none !important;
            height: 35px !important;
            width: 410px !important;
            overflow: hidden !important;
          }
          ha-markdown {
            padding: 0 10px !important;
            height: 35px !important;
            display: flex !important;
            align-items: center !important;
            font-size: 28px !important;
            color: #a8a8a8 !important;
            overflow: hidden !important;
          }
          ha-markdown p { 
            margin: 0 !important; 
            padding: 0 !important; 
            overflow: hidden !important;
          }
    - type: custom:trash-card
      entities:
        - calendar.tablet
      event_grouping: false
      use_summary: false
      full_size: true
      items_per_row: 1
      next_days: 13
      pattern:
        - icon: mdi:trash-can-outline
          color: disabled
          type: others
      day_style: counter
      day_style_format: yyyy.MM.dd
      alignment_style: left
      color_mode: icon
      with_label: true
      layout: default
      card_mod:
        style: |
          ha-card {
            background: transparent !important;
            border: none !important;
            box-shadow: none !important;
            display: block !important; 
            margin: 1px !important;
            margin-top: -15px !important;
            margin-left: -20px !important;
            padding: 0 10px !important;
            transform: scale(1.2) !important;
            transform-origin: top left !important;
            width: 80% !important; 
          }

          .trash-card-container {
            display: flex !important;
            flex-direction: column !important;
            justify-content: flex-start !important;
          }

          mushroom-template-card, mushroom-state-item {
            height: 55px !important; 
          }

Als nächstes sind die Heizungen dran.

Habe die letzten Tage viel rumprobiert und neben dem Dashbord noch meine ganzen IOB Scripte als HA Automationen umgeschrieben. Eben habe ich dann den Schritt gewagt und IOB abgeschaltet.

Das Dashbord ist fertig und sieht meinem alten IOB sehr ähnlich.

Ihr seht nur die Hauptkacheln. Einige davon haben Entitätsabhängige Sichtbarkeiten, wie z.B. die Homematic Statusmeldungen, das Laden der Autos und die Überwachungskameras und Klingeln.

Aktuell läuft alles. Ich vermute es braucht aber noch viel Feintuning bis das System “wartungsarm” läuft.

Als nächsten werde ich die Anwesenheitssteuerung und Alarmanlage mit Alarmo basteln.

Grundsätzlich ist aber eindeutig, dass der Wechsel des Dashbords von IOBroker zu Homematic nicht einfach ist, da man seeeeehr viel lesen und ausprobieren muss da NICHTS drag and drop ist. Alles was ich gemacht habe, habe ich über Codes in manuelle Cards geschrieben. Alles in allem wird der Wechsel ca. 60 Stunden in Anspruch genommen haben.

Grüße vom neuen 100% Homeassistant´ler

miwi

3 „Gefällt mir“

Hallo @miwi73,

beeindruckend wie konsequent du das durchgezogen hat!

Das erinnert mich an meinem Umzug, vor ~5 Jahren, von IoB zu HA. Allerdings hatte ich mich weniger auf das Dashboard konzentriert sondern mehr auf meine Scripte und habe so NodeRed für mich entdeckt.

Wenn dir noch nicht die Lust ausgegangen ist…

In deinem Dashboard arbeitest du scheinbar gerne mit „eigenen Positionen“ und setzt Highlights ein. Vielleicht wäre auch die custom:button_Card etwas für dich. Diese allein oder in Kombination mit „Stack-in-Card“ ermöglichen dir sehr viele Freiheiten.

Für die App (Handy-Ansicht) kann ich dir die mushroom_card empfehlen. Diese bringen für ihr „Kachel-Design“ viele fertige Funktionen mit und rendert sehr gut auf unterschiedliche Displays. Geht natürlich auch mit custom:button_card, ist aber deutlich mehr code

Die Companion App ist als nächstes dran. Hier werde ich mit den Mushroom Karten arbeiten, da ich dies nicht von IOB übernehme. Stack in nutze ich bereits.

Was noch Tuning braucht:

  • Das Dashboard braucht beim Aufwachen des Tablets ca.5 Sekunden zum Aktualisieren. Grundsätzlich nicht schlimm, sieht halt nur unschön aus, wenn jemand dran vorbei läuft oder wenn ich morgens vom Flur auf dem Weg in die Küche im “vorbeihuschen” schnell das Küchenlicht auf dem Display anschalten will und der Button noch nicht da ist.
  • Der MatterHub(v76) läuft mit Alexa nicht vernünftig. Geräte tauchen auf und verschwinden immer wieder im Wechsel und sind somit auch nicht immer über die Sprachsteuerung erreichbar. Bringt den Hausfrieden etwas ins Wanken :wink:
  • Anwesenheitserkennung. Zuerst über die Companion App und Tailscale probiert. Das zieht mir den Akku des Handy´s über Nacht von 60% auf 0%. Dazu kommt, dass ich auf dem Handy noch andere Apps bzw. Zugriffe auf GUIs in meinem Heimnetz via Safari mit Wireguard nutze und sobald man Wireguard aktiviert lässt sich Tailscale nicht mehr starten. Also anderer Versuch über fritz tools um zu sehen ob die Handys im Wlan sind. Funktioniert bei den Iphones, allerdings nicht bei Androids. Als nächstes ping(ICMP) getestet. Samsung geht, Iphone,sobald es in Tiefschlaf geht, leider nicht mehr. Versuche jetzt für die Apple Geräte Iphone detect. Schauen ob das stabil läuft.

Sobald ich weitere visuelle Änderungen an diesem Dashbord durchgeführt habe werde ich diese hier posten.

Wenn das zuvor nicht der Fall war, dann könnte ein Verdacht in Richtung card_mod gehen

Sehr spannend was du schon herausgefunden hast. Das mit dem Akku und ping hatte ich auch festgestellt, dann aber nicht weiter verfolgt.