Sensor aus Gruppenergebnis max/min erstellen

Hallo,

“spiele” schon einige Zeit mit Home Assistant und habe damit unterschiedliche PV Systeme, Loxone, Wallbox etc zusammengeführt

habe an einer Batterie ein BMS von ECS mit 16 Zellen per mqtt angebunden
daraus habe ich für alle Zellen Volt, Temperatur etc
wie : sensor.ecs_cell_1_v oder sensor.ecs_cell_t

daraus jeweils eine max/min Gruppe

 - platform: group
    name: ECS Volt max
    unique_id: ecs_volt_max
    type: max
    entities:
      - sensor.ecs_cell_1_v
      - sensor.ecs_cell_2_v
      - sensor.ecs_cell_3_v

daraus möchte ich jeweils max/min Zelle haben welche in der jeweiligen Gruppeninformation enthalten ist

state_class: measurement
entity_id: sensor.ecs_cell_1_v, sensor.ecs_cell_2_v, sensor.ecs_cell_3_v, sensor.ecs_cell_5_v, sensor.ecs_cell_5_v, sensor.ecs_cell_6_v, sensor.ecs_cell_7_v, sensor.ecs_cell_8_v, sensor.ecs_cell_9_v, sensor.ecs_cell_10_v, sensor.ecs_cell_11_v, sensor.ecs_cell_12_v, sensor.ecs_cell_13_v, sensor.ecs_cell_14_v, sensor.ecs_cell_15_v, sensor.ecs_cell_16_v
max_entity_id: sensor.ecs_cell_12_v
unit_of_measurement: V
device_class: voltage
friendly_name: ECS Volt max

mit dem Template Editor habe ich folgendes Ergebnis bekommen


Template editor

{{ states.sensor.ecs_volt_max.attributes.max_entity_id }}
{{ states.sensor.ecs_volt_max.attributes.max_entity_id.split('_')[2] }}
 
Result type: string
sensor.ecs_cell_12_v
12

scheitere am erstellen eines Sensors aus dem Ergebnis hier 12

template:
  sensor:
    - name: ECS Volt max Zelle
      unique_id: ecs_volt_max_zelle
        {{ states.sensor.ecs_volt_max.attributes.max_entity_id.split('_')[2] }}

bekomme ich Fehler
invalid config for ‘template’ at conf/ecs/ecstemplate.yaml, line 3: required key ‘state’ not provided

fyi: ich habe splitted config

packages: !include_dir_named

Zusatzfrage: gibts es in yaml möglichkeiten mit dem Ergebnis 12 auf die betreffende Zelle zu zeigen

vielen Dank

Da fehlt mindestens state: bei dir

template:
  sensor:
    - name: ECS Volt max Zelle
      unique_id: ecs_volt_max_zelle
      state: >
        {{ states.sensor.ecs_volt_max.attributes.max_entity_id.split('_')[2] }}

danke für die rasche Antwort

das hatte ich auch probiert
dann bekomme ich folgenden Fehler

invalid config for 'template' at conf/ecs/ecstemplate.yaml, line 5: invalid template (TemplateSyntaxError: expected token 'end of print statement', got '[') for dictionary value 'sensor->0->state', got "{{ state_attr('sensor.ecs_volt_max.max_entity_id.split('_')[2]') }}\n"

Versuche es mal so

state: "{{ states.sensor.ecs_volt_max.attributes.max_entity_id.split('_')[2] }}"

das funktioniert leider auch nicht - hatte ich auch schon probiert

homeassistant.exceptions.TemplateError: UndefinedError: ‘homeassistant.util.read_only_dict.ReadOnlyDict object’ has no attribute ‘max_entity_id’

Hat der Sensor denn das Attribut max_entity_id? Zeig mal einen Screenshot mit den Attributen

Letzte Idee

state: "{{ state_attr('sensor.ecs_volt_max','max_entity_id').split('_')[2] }}"

leider nein kommen mehrere Fehler

* TemplateError('UndefinedError: 'None' has no attribute 'split'') while processing template 'Template<template=({{ state_attr('sensor.ecs_volt_max','max_entity_id').split('_')[2] }}) renders=8>' for attribute '_attr_native_value' in entity 'sensor.ecs_volt_max_zelle'

Kannst du das mal über einen Template-Helfer versuchen? Was passiert da?

vielen Dank für die Hilfe das läuft damit

state: "{{ state_attr('sensor.ecs_volt_max','max_entity_id').split('_')[2] }}"

Abhilfe war Restart statt Reload - daran habe ich überhaupt noch nicht gedacht das dies einen Unterschied machen kann

1 „Gefällt mir“

Ja das ist ein riesen Unterschied

kann ich eigentlich irgendwie mit der ermittelten Zellen Nummer was anfangen
d.h. kann ich das als index benutzen und zb die entsprechende Spannung anzeigen

Ich habe noch nicht ganz verstanden was du vor hast :thinking:

Ggf. irgendwas mit wenn-dann in einer Automation oder Bedingungen-Karte im Dashboard? Was willst du wo anzeigen?

die Frage hat sich eigentlich jetzt beim schreiben erledigt - habe ja alle Informationen
muss mir noch überlegen wie ich as auswerten/visualisieren kann/will

gibts es eigentlich eine Möglichkeit diese sensoren (sind ja dann irgendwann ca >100)
in einer Schleife oder etwas ähnlichem anzulegen oder bleibt mir nur der manuelle Weg
copy/paste?

noch mal vielen Dank für deine Hilfe hatte damit schon zu lange rum gemacht :frowning:

Ich kenne keinen Weg manuelle Sensoren oder Helfer automatisch anlegen zu lassen.

Warum musst du denn >100 Sensoren anlegen? Was genau hast du vor?

wg will ich ein bms auswerten/visualisieren
16+2 Zellen a 5 informationen
und da das ja x mal die gleichen Info´s sind hatte ich gehofft das geht einfacher per loop oder was ähnliches