Hallo,
ich habe im ganzen Haus Govee Thermometer rumstehen, die ich über einen ESP32 Bluetooth Proxy ins HA integriert habe. Allen Thermometern ist der richtige Bereich zugeordnet. Jetzt würde ich die Thermometer gern auf meinem Dashboard “in schön” ausgeben lassen. auto-entities kann mir ja prinzipiell alle Temperaturen zusammensuchen und ausgeben. Ich hätte das aber gern gruppiert in die einzelnen Etagen und Bereiche. Geht sowas? Oder muss ich das wirklich manuell einzeln anlegen?
Wie gebt ihr denn Temperaturen übersichtlich im Dashboard aus? Vielleicht fehlt mir doch auch noch eine gute Visualisierung, die mein Vorhaben dann gar nicht mehr erfordert.
Wenn ich es richtig verstehe, schau mal hier:
Bastel da gerade drann rum. Bin noch nicht soweit bestimmte auszuschließen… mal als Anstoß:
type: custom:auto-entities
card:
type: entities
title: SLANG Test - Temperatursensoren nach Bereichen
filter:
template: |
{% set ns = namespace(entries=[]) %}
{% for area in areas() %}
{% set temperatur_sensoren = area_entities(area)
| select('search', '^sensor\.')
| select('is_state_attr', 'device_class', 'temperature')
| list %}
{% if temperatur_sensoren | count > 0 %}
{% set ns.entries = ns.entries + [{'type': 'section', 'label': area_name(area)}] %}
{% for x in temperatur_sensoren %}
{% set ns.entries = ns.entries + [x] %}
{% endfor %}
{% endif %}
{% endfor %}
{{ ns.entries }}
Vielen, vielen Dank. Ich hab endlich verstanden, was genau template als Rückgabewert braucht. Ich bin super happy mit meiner Ansicht:
- type: custom:auto-entities
card:
type: grid
columns: 1
square: false
card_param: cards
filter:
template: |
{% set ns = namespace(entries=[], area_cards=[]) %}
{% for floor in floors() %}
{% set ns.area_cards = [] %}
{% for area in floor_areas(floor) | sort %}
{% set sensoren = area_entities(area)
| select('search', '^sensor\.')
| select('is_state_attr', 'device_class', 'temperature')
| reject('in', label_entities('ui-no-dashboard'))
| list
+
area_entities(area)
| select('search', '^sensor\.')
| select('is_state_attr', 'device_class', 'humidity')
| reject('in', label_entities('ui-no-dashboard'))
| list
%}
{% if sensoren | count > 0 %}
{% set ns.area_cards = ns.area_cards + [
{
'type': 'area',
'area': area,
'display_type': 'compact',
'sensor_classes': ['temperature', 'humidity'],
'tap_action': {
'action': 'navigate',
'navigation_path': '/home/areas-' ~ area
}
}
] %}
{% endif %}
{% endfor %}
{% if ns.area_cards | count > 0 %}
{% set ns.entries = ns.entries + [
{
'type': 'heading',
'heading': floor_name(floor),
},
{
'type': 'grid',
'columns': 3,
'square': false,
'cards': ns.area_cards
}
] %}
{% endif %}
{% endfor %}
{{ ns.entries }}
grid_options:
columns: full
Ich hab einfach bei mir ein Label für einen Nicht-Im-Dashboard-Filter hinzugefügt. Damit kann ich die entities, die ich nicht haben will, dann gut entfernen.
Ah ja… gute Idee. Werde ich mal probieren.