Philips Hue Szenen im Dashboard

Hey zusammen,

ich bearbeite aktuell mein Dashboard und würde mir gerne (ähnlich wie bei den Standard-Entities-Cards) die verfügbaren Hue Szenen eines bestimmten Raumes in einer Card als Button anzeigen lassen, sodass ich sie zügig aktivieren kann.

Klar kann ich jede einzelne Szene über einen Button oder Ähnliches integrieren, allerdings nervt es, wenn ich Szenen in Philips Hue erstellen und anschließend noch manuell in die Cards von HA einbinden muss.

Gibt es da eine charmantere Lösung? Wie macht ihr das?

VG
Marks

Ich mache es mit Mushroom Chips

type: custom:mushroom-chips-card
chips:
  - type: entity
    entity: scene.buro_entspannen
    content_info: none
    icon: phu:scene-relax
    icon_color: orange
    tap_action:
      action: call-service
      service: hue.activate_scene
      target:
        entity_id: scene.buro_entspannen
  - type: entity
    entity: scene.buro_konzentrieren
    content_info: none
    icon: phu:scene-concentrate
    tap_action:
      action: call-service
      service: hue.activate_scene
      target:
        entity_id: scene.buro_konzentrieren
  - type: entity
    entity: scene.buro_vapor_wave
    content_info: none
    icon: phu:scene-dynamic
    icon_color: deep-purple
    tap_action:
      action: call-service
      service: hue.activate_scene
      target:
        entity_id: scene.buro_vapor_wave

Demnach fügst du die Szenen aber auch einzeln hinzu, richtig? Es ist nicht so, dass die Card automatisch neue Szenen erkennt und anzeigt. Sehe ich das richtig?

Ich mache das mit der auto entities card so. Für Alle Szenen die mit wohnzimmer_ anfangen wird eine tile-Card erstellt. Geht auch mit anderen Karten.

 - type: custom:auto-entities
                    filter:
                      template: |
                        {% for state in states.scene -%}
                          {%- if state.entity_id | regex_match('scene.wohnzimmer_',ignorecase=False) -%}
                            {%- set NAME = state_attr(state.entity_id,"friendly_name") | regex_replace(find='Wohnzimmer ', replace='') -%}
                            {{
                              { 'entity': state.entity_id,
                                'type': 'tile',
                                'name': NAME,
                                'tap_action': {
                                  'action': 'toggle'
                                  }
                              }
                            }},
                          {%- endif -%} 
                        {%- endfor %}
                    sort:
                      method: friendly_name
2 „Gefällt mir“

Ja, hab ich aber auch nur einmal gemacht und war großteils copy-paste. Müsste ich alle paar Tage einen Haufen neue Szenen basteln, wäre die Methode von ciddi89 schon eine große Hilfe.

Super, vielen Dank. Genau so etwas ähnliches habe ich gesucht.

1 „Gefällt mir“

Hallo,
habe mir die Auto-Entities Card runtergeladen und den obigen Code kopiert. Es stand schon etwas Code vorher drin, den hab ich zuerst gelöscht aber es kamen leider nur Fehler. Daher hab ich den anfänglichen Code mal drin gelassen. Es werden zwar keine Fehler angezeigt aber ich erhalte lediglich eine leere Karte im Dashboard. Weiß jemand wo der Fehler liegt? Mein Code sieht jetzt folgendermaßen aus:

type: custom:auto-entities
card:
  type: entities
filter:
  include: []
  exclude: []
template: |
  {% for state in states.scene -%}
    {%- if state.entity_id | regex_match('scene.wohnzimmer_',ignorecase=False) -%}
      {%- set NAME = state_attr(state.entity_id,"friendly_name") | regex_replace(find='Wohnzimmer ', replace='') -%}
      {{
        { 'entity': state.entity_id,
          'type': 'tile',
          'name': NAME,
          'tap_action': {
            'action': 'toggle'
            }
        }
      }},
    {%- endif -%} 
  {%- endfor %}
sort: null
method: friendly_name

Erstmal wäre es gut den Fehler dann zu posten. Ich denke es lag daran das ganz am Anfang vor Type der Bindestrich fehlte. Also „- type“

Das die Karte leer ist kann sein das er keine Szenen mit den Wert „_wohnzimmer“ finden kann. Zur Erklärung: in den zwei Zeilen:

    {%- if state.entity_id | regex_match('scene.wohnzimmer_',ignorecase=False) -%}
      {%- set NAME = state_attr(state.entity_id,"friendly_name") | regex_replace(find='Wohnzimmer ', replace='') -%}

es wird nach Szenen gesucht die den Wert _wohnzimmer beinhalten. Wenn es diese gibt entfernt er aus dem Namen der entitie das Wort „Wohnzimmer“
Die Werte müssen natürlich angepasst werden an den eigenen entities.

Hi,
wie gesagt mit dem Code oben gab es keine Fehler. Die Karte war nur leer.

Wenn ich den Bindestrich hinzufüge erhalte ich den Fehler: “Kein Typ angegeben”. Code sieht jetzt so aus:

- type: custom:auto-entities
  card:
    type: entities
  filter:
  template: |
    {% for state in states.scene -%}
      {%- if state.entity_id | regex_match('scene.wohnzimmer_',ignorecase=False) -%}
        {%- set NAME = state_attr(state.entity_id,"friendly_name") | regex_replace(find='Wohnzimmer ', replace='') -%}
        {{
          { 'entity': state.entity_id,
            'type': 'tile',
            'name': NAME,
            'tap_action': {
              'action': 'toggle'
            }
          }
        }},
      {%- endif -%} 
    {%- endfor %}
  sort: null
  method: friendly_name

Bei den Entitäten von Hue habe ich neben anderen Wohnbereichen eine ganze Reihe von “Scene.wohnzimmer_xyz…”
Das müsste ja dann eigentlich passen. Auch ein Neustart brachte nichts. Vielleicht sonst noch Ideen?

Nachtrag: Wenn ich deinen Code einfach mal 1:1 kopiere und einfüge, erhalte ich ebenfalls die Fehlermeldung “Kein Typ angegeben”.

Ähm guck dir mal den Code von mir oben an und dann deinen. Du hast ab der zweiten Zeile
‚card:
type: entities‘
Das ist aber falsch. Du gibst die Karte weiter unten an im Filter Bereich an wo jetzt steht Type: tile diese müsste du ändern in entities

Du meinst so?

- type: custom:auto-entities
  filter:
   template: |
      {% for state in states.scene -%}
        {%- if state.entity_id | regex_match('scene.wohnzimmer_',ignorecase=False) -%}
          {%- set NAME = state_attr(state.entity_id,"friendly_name") | regex_replace(find='Wohnzimmer ', replace='') -%}
          {{
            { 'entity': state.entity_id,
              'type': 'entity',
              'name': NAME,
              'tap_action': {
                'action': 'toggle'
             }
            }
          }},
         {%- endif -%} 
        {%- endfor %}
  sort:
  method: friendly_name

Den Code kann ich so nicht speichern:
Konfigurationsfehler: Kein Typ angegeben

Müsste type: entities nicht entity. Und ganz oben bei Type custom entities vielleicht den Bindestrich vor Type weg, weiß halt nicht welche Karten du da drüber stehen hast.

Kann den Code zwar speichern aber es sieht dann danach so aus:

Das ist im Übrigen ein ganz eigenes Dashboard nur für die Hue Geschichte gedacht. Da steht nichts anderes drin außer der Code wie du ihn siehst…

Hm okay das ist komisch. Versuch dann mal die Karte über die UI hinzuzufügen und dann kannst ja wieder zum yaml Code wechseln und per Hand die fehlenden Details nachtragen.

Moin,

nach einigem rumprobieren läuft es jetzt, der Code sieht folgendermaßen aus:

type: custom:auto-entities
filter:
  include: []
  template: |
    {% for state in states.scene -%}
      {%- if state.entity_id | regex_match('scene.wohnzimmer_',ignorecase=False) -%}
        {%- set NAME = state_attr(state.entity_id,"friendly_name") | regex_replace(find='Wohnzimmer ', replace='') -%}
        {{
          { 'entity': state.entity_id,
            'name': NAME,
            'tap_action': {
              'action': 'toggle'
           }
          }
        }},
       {%- endif -%} 
      {%- endfor %}
sort: null
method: friendly_name
exclude: []
show_empty: true
card:
  type: entities

Anscheinend machte das ‘type’: ‘entities’ im roten Bereich Probleme. Habs gelöscht. Außerdem hatte ich durch den grafischen Editor festgestellt, dass er am Ende doch nochmal den Kartentyp definiert. Auch wenns jetzt funktioniert, verstehe ich nicht wieso sich unsere Codes so unterscheiden und es am Ende bei Beiden funktioniert?

Ich mache es mit einer button card und Gradient
Wenn du möchtest schicke ich den code
Natürlich muss man hier alles händisch pflegen
Auto entities ist da schon smarter

1 „Gefällt mir“

Hallo,

würde mich über den Code freuen.

Danke.

Habe sie nicht mehr aktiv im Dashboard aber auf meinem Testdahsboard sind sind sie noch
hier der Code

type: custom:button-card
spect_ratio: 2/1
name: Nordlichter
icon: mdi:palette
entity: light.licht_wohnzimmer_2
label: null
tap_action:
  action: call-service
  service: hue.activate_scene
  target:
    entity_id: scene.licht_wohnzimmer_nordlichter
hold_action:
  action: more-info
show_label: true
show_state: false
styles:
  card:
    - background: >-
        linear-gradient(90deg, rgba(120,201,255,0.3489728655133929) 0%,
        rgba(116,156,156,1) 100%);
    - padding: 2px
  icon:
    - width: 24px
    - color: null
  img_cell:
    - justify-self: end
    - width: 30px
    - height: 30px
  name:
    - justify-self: null
    - font-size: 18px
    - line-height: 40px
    - font-weight: 600
  label:
    - justify-self: start
    - font-size: 14px
    - font-weight: 500