Anzahl von Geräten in einer Integration

Hallo :hugs:
ich hätte gerne die Anzahl von Geräten in einer Integration als Sensor/Entität

muss ja eigentlich vorhanden sein, steht ja hier:

Moin, dass hatte ich letztens auch erst gemacht. Einen Sensor habe ich dafür nicht gefunden, daher mache ich es über ein Template.
Hier das Template zum Auslesen.

{{ integration_entities('shelly') | map('device_id') | unique | list | count }}

Mein Sensor:

template:
  - sensor:
      - name: "Shelly Geräteanzahl"
        state: "{{ integration_entities('shelly') | map('device_id') | unique | list | count }}"
        unit_of_measurement: "Geräte"
3 „Gefällt mir“

ich schau ja gerade auch selber nach

{{ integration_entities('shelly') }}

gibt mir alle entities, hilft mir nicht

die ist auch nett, aber im ‚count‘ stehen bei Shelly auch wieder die Anzahl der entitäten

{% set ns = namespace(items = []) %}
{% for item in  states | map(attribute='entity_id') 
  | map('device_attr', 'identifiers') | reject('none') 
  | map('first') | select('defined') 
  | map(attribute='0') | unique %}

  {% set entities = integration_entities(item) %}
  {% set ns.items = ns.items + [ { 'integration': item, 'count': entities | count} ] %}
{% endfor %}
{{ ns.items | sort(attribute='count', reverse=true) }}

ich verrenne mich, daher warte ich mal auf Euch :yum:

DANKE schön :clap:

1 „Gefällt mir“

Bitte schön… :slight_smile:

1 „Gefällt mir“

Das ist ja genau das was ich suche, obwohl ich gar nicht explizit oben nachgefragt habe :v:
Er zeigt ja auch wirklich nur die „online“ Shellys

Highlight Frage:
bekomme ich auch:

  • die Anzahl „offline“ ? also bei mir die => 1
  • Anzahl aller ? also bei mir die => 12

Nicht getestet, aber müsste dann einfach zu erweitern sein. Habe jetzt einfach noch select('is_state', 'unavailable') dazwischen eingefügt. Dann sollten die „offline“ Geräte angezeigt werden. Einen zweiten Sensor brauchst du dann logischerweise auch, aber brauche ich dir ja nicht zu erklären. :slight_smile:

{{ integration_entities('shelly') | map('device_id') | unique | select('is_state', 'unavailable') | list | count }}
1 „Gefällt mir“

Leider nicht, der „offline“ ist ja schon bei deinem ersten ignoriert

  • habe 12 im Testsystem
  • dein erstes Template :clap: zeigt 11 (was ich ja auch möchte)

Aber Ziel erreicht im Test-System
Virtuelle Energy Berechnung im Energie Dashboard

1 „Gefällt mir“

Habe gerade etwas weiter getestet und festgestellt das hier etwas nicht stimmt :relieved:

Es wurde ein eingesteckter Plug S nicht hochgezählt

in meinem „Helfer Template Sensor“ steht auch unten das:

und hier sieht man auch die unterschiedliche Anzahl der Geräte (gleicher Sensor)

sieht man auch in den Entwicklerwerkzeugen:

  • oben direkt abgefragt (grün)
  • mein Template Helfer (rot)
  • dein Yaml Template (rot)
  • unten Yaml Template mit Trigger 1 min (hellblau)

also wäre richtig:

template:

# Shelly mit Trigger
        
  - trigger:
      - platform: time_pattern
        minutes: "/1"

    sensor:
      - name: "Shelly Geräteanzahl Trigger"
        state: "{{ integration_entities('shelly') | map('device_id') | unique | list | count }}"
        unit_of_measurement: "Geräte"
        unique_id: shelly_geraeteanzahl_trigger_0000000000

Gruß

1 „Gefällt mir“

Aber beim ausstecken eines Plug S wird in der Integration das Gerät nicht mehr auf „Einrichtungsfehler“ (also rot mit Warnung) umgestellt.
Das war in einer älteren HA Version meines Erachtens anders :thinking:
Deshalb wird auch der Wert nicht verringert!
Erst wenn diese Integration neu gestartet wird oder HA neu gestartet wird.

Ist also etwas …… :stuck_out_tongue_closed_eyes:

mal schauen was ich mache (also alle einzeln abfragen mache ich nicht)

Ist aber alles nur zur Info :hugs:

Hi, du sollst nicht soviel testen. :wink: aber ja das ist richtig, der wird nur aktualisiert wenn HA neu gestartet wird, weil da keine Entität hinterlegt ist, die den Sensor aktualisiert. Mir reicht das so aus, HA wird oft genug neu gestartet.

Wenn er sich immer wieder aktualisieren soll kann man es so wie du über Zeittrigger oder über eine Entität machen, die halt immer mal aktualisiert wird. Jede Minute muss das eigentlich nicht geprüft werden.
Hier mal ein Beispiel mit meinem Innenlüfter (der ist nur ein paar Mal am Tag an). Geht aber mit einem Switch usw. auch.

- sensor:
  - name: "Shelly Gerätetest"
    state: "{{ integration_entities('shelly') | map('device_id') | unique | list | count }}"
    unit_of_measurement: "Geräte"
    attributes:
      entity_id: sensor.innenlufter_shellyplug_switch_0_power