Liebe SmartHome for Dummies Gemeinde.

Die phpBB Forum Software gehört nicht wirklich zu den modernsten seiner Art.
Ich habe mich an einer Migration zu Discourse versucht und bin leider kläglich gescheitert.

Möchte aber trotzdem einen Neuanfang auf einer modernen Plattform starten.
Gerne möchte ich Euch animieren das neue Discourse Forum zu benutzen.
Bestehenden Usern bleibt es leider nicht erspart, sich auf der neuen Platform neu anzumelden.

Das Forum hier, bleibt selbstverständlich Online. Ich würde versuchen einiges händisch zu migrieren.
Da fallen mir die Rubriken "Template Sammlungen" oder "Best Practice Automatisierungen" ein.

SmartHome for Dummies Discourse Platform.

Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Die Unterkategorie Templates Sammlungen ist im Lesemodus.
Hier geht es im neuen Kleid weiter https://community-discourse.smarthome-f ... ammlung/12


Forumsregeln

Hier geht es im neuen Kleid weiter https://community-discourse.smarthome-f ... ammlung/12

Antworten
Benutzeravatar
Osorkon
Administrator
Beiträge: 2105
Registriert: Sa 17. Jul 2021, 16:53
3
Wohnort: Langenargen
Has thanked: 63 times
Been thanked: 580 times
Kontaktdaten:

Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von Osorkon »

Wird mal wieder Zeit für Template. :D :D

Dieses Template zählt die Lichter, welche eingeschaltet sind.
Wenn mehr als ein Licht eingeschaltet ist, gibt das Template die Namen der Lichter die eingeschaltet sind.
Sonst "Alle Lichter sind ausgeschaltet"

Kann man für ein Karte, eine Text oder TTS Benachrichtigung verwenden.

Code: Alles auswählen

{% set lichter_liste = states.light |selectattr('state','eq','on')
| map(attribute='name')
| list
| join(', ') %}
{% set lichter_anzahl = states.light |selectattr('state','eq','on')
| list
| count %}
{% if lichter_anzahl == 0 %}
   Alle Lichter sind ausgeschaltet
{% else %}
  Folgende Lichter sind noch an:
{{ lichter_liste }}
{% endif %}

Und hier der kleinen Bruder für offen stehende Fenster. :)

Code: Alles auswählen

{% set fenster_liste = states.binary_sensor
| selectattr('state','eq','on')
| selectattr('attributes.device_class','defined')
| selectattr('attributes.device_class','eq', 'window')
| map(attribute='name')
| list
| join(', ') %}

{% set fenster_anzahl = states.binary_sensor
| selectattr('state','eq','on')
| selectattr('attributes.device_class','defined')
| selectattr('attributes.device_class','eq', 'window')
| list
| count %}
{% if fenster_anzahl == 0 %}
  Alle Fenster sind geschlossen
{% else %}
  Folgende Fenster sind noch geöffnet:
{{ fenster_liste }}
{% endif %}

Die Templates lassen sich natürlich auch für weiter Domain wie Switches, covers, etc verwenden.
Bzw. für andere device classen, wie z.B. Türen.

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
TheBermud
Beiträge: 20
Registriert: Mo 18. Mär 2024, 20:22
Been thanked: 1 time

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von TheBermud »

Danke für das Template.

Code: Alles auswählen

|rejectattr("attributes.entity_id","defined")

wäre glaube ich eine gute Ergänzung, damit die Lichter in Gruppen nicht mitgezählt werden. Finde, dass sonst das Ergebnis verfälscht ist.

Ich würde die Liste gerne alphabetisch sortieren, hast du dazu eine Idee?

Benutzeravatar
Osorkon
Administrator
Beiträge: 2105
Registriert: Sa 17. Jul 2021, 16:53
3
Wohnort: Langenargen
Has thanked: 63 times
Been thanked: 580 times
Kontaktdaten:

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von Osorkon »

Nach Namen sortiert:

Code: Alles auswählen

| sort(attribute='name')

Code: Alles auswählen

{% set lichter_liste = states.light | selectattr('state','eq','on')
| sort(attribute='name')
| map(attribute='name') 
| join(', ') %}
{% set lichter_anzahl = states.light |selectattr('state','eq','on')
| list
| count %}
{% if lichter_anzahl == 0 %}
   Alle Lichter sind ausgeschaltet
{% else %}
  Folgende Lichter sind noch an:
{{ lichter_liste }}
{% endif %}

Wie man die Lichter die keinem Bereich zugeordnet sind aussortiert, müsste ich mir mal genauer anschauen.

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
TheBermud
Beiträge: 20
Registriert: Mo 18. Mär 2024, 20:22
Been thanked: 1 time

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von TheBermud »

Vielen Dank, funktioniert super.

Ich glaube ich habe mich oben falsch ausgedrückt. Mit dem Zusatz werden die Lichtergruppen nicht mit in die Liste aufgenommen, die Lichter in den Gruppen natürlich schon :)

0lli
Beiträge: 5
Registriert: Mi 28. Feb 2024, 09:57
Has thanked: 1 time

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von 0lli »

Hallo,
Tolles Template mein Problem ist das meine Sensoren sowohl die device_class: window als auch door haben was eigentlich nicht das Problem ist dann hätte ich die class door einfach mit angegeben aber dann haut Tankerkönig Adressen mit raus die komischer weise auch auf door laufen :D

wie kann ich denn die device_class änder?
und es stellt sich die frage welche änder ich dann die von Tankerkönig oder die von den Sensoren?
vielen Dank
Gruß Olli

Benutzeravatar
Osorkon
Administrator
Beiträge: 2105
Registriert: Sa 17. Jul 2021, 16:53
3
Wohnort: Langenargen
Has thanked: 63 times
Been thanked: 580 times
Kontaktdaten:

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von Osorkon »

0lli hat geschrieben: Di 30. Apr 2024, 21:41

wie kann ich denn die device_class änder?

Entität auswählen -> Zahnradsymbol -> Anzeigen als

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Shawn26
Beiträge: 4
Registriert: So 23. Jun 2024, 16:10
Has thanked: 1 time

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von Shawn26 »

Hallo Zusammen,

Template funktioniert super, aber ich finde nicht heraus was ich ändern muss, damit ich die einzelnen Fenster nicht durch ein ein Komma getrennt sondern untereinander angezeigt bekomme?

Gibt es da eine Möglichkeit?

Vielen Dank

Shawn

Benutzeravatar
Osorkon
Administrator
Beiträge: 2105
Registriert: Sa 17. Jul 2021, 16:53
3
Wohnort: Langenargen
Has thanked: 63 times
Been thanked: 580 times
Kontaktdaten:

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von Osorkon »

Shawn26 hat geschrieben: Mo 24. Jun 2024, 11:35

damit ich die einzelnen Fenster nicht durch ein ein Komma getrennt sondern untereinander angezeigt bekomme?

ersetze die Zeile

Code: Alles auswählen

| join(', ')

gegen

Code: Alles auswählen

| join('\n')

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Shawn26
Beiträge: 4
Registriert: So 23. Jun 2024, 16:10
Has thanked: 1 time

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von Shawn26 »

Jetzt sieht es aber so aus...

HA-Hinweis.jpg
HA-Hinweis.jpg (9.97 KiB) 4167 mal betrachtet

Shawn

Benutzeravatar
Osorkon
Administrator
Beiträge: 2105
Registriert: Sa 17. Jul 2021, 16:53
3
Wohnort: Langenargen
Has thanked: 63 times
Been thanked: 580 times
Kontaktdaten:

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von Osorkon »

Ein Sensor kennt keinen Zeilenumbruch. ;)

Verwende stattdessen eine Markdown Karte.
Also das Template direkt in der Markdown Karte verwenden.

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Shawn26
Beiträge: 4
Registriert: So 23. Jun 2024, 16:10
Has thanked: 1 time

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von Shawn26 »

@Osorkon

Also das mit der Markdown Karte hat wunderbar funktioniert. Jetzt hätte ich nur eine Frage und hoffe Du kannst mir da ggfs. auch weiterhelfen.
Wie bekomme ich denn das "rote" Fenster (wie in meinem horizontalen Stapel) als Info Icon in einer Markdown dargestellt?

Danke Dir

Shawn

Benutzeravatar
Osorkon
Administrator
Beiträge: 2105
Registriert: Sa 17. Jul 2021, 16:53
3
Wohnort: Langenargen
Has thanked: 63 times
Been thanked: 580 times
Kontaktdaten:

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von Osorkon »

Shawn26 hat geschrieben: Mo 24. Jun 2024, 15:04

Wie bekomme ich denn das "rote" Fenster (wie in meinem horizontalen Stapel) als Info Icon in einer Markdown dargestellt?

Code: Alles auswählen

<font color='#e60000'><ha-icon icon='mdi:window-open-variant'/>

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Shawn26
Beiträge: 4
Registriert: So 23. Jun 2024, 16:10
Has thanked: 1 time

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von Shawn26 »

@Osorkon

Vielen Dank für Deine schnelle Unterstützung. Wenn das mit dem "roten Kreis" im Hintergrund auch noch zu realisieren wäre, dann wäre das ein Traum.
Wenn nicht bin ich mit dieser Lösung aber auch mehr als zufrieden.

Shawn

Mono
Beiträge: 6
Registriert: Mo 26. Aug 2024, 20:08

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von Mono »

Bei mir kann ich die device_class leider nicht ändern bzw. einstellen da meine Fenster oder Lampen über KNX rein kommen.

was kann ich da machen?

Bild

miami
Beiträge: 14
Registriert: Do 7. Sep 2023, 23:17
1
Has thanked: 1 time
Been thanked: 1 time

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von miami »

Ich habe einen Fenstersensor an der Balkontür. Der ist als Fenster konfiguriert.
Mit einem Helfer "Template" habe ich meine Balkontür zusätzlich als Tür abgelegt:
Einen Binärer Sensor-Template mit {{states('binary_sensor.balkontuer') }} angelegt und als Tür anzeigen lassen

Damit die das Fenster "Balkontür" nun nicht mehr von der Markdown-Karte für Fenster angezeigt wird, habe ich dort (an zwei Stellen) um selectattr('name','ne', 'Balkontür') ergänzt, so dass die Balkontür aus der Liste rausfällt. Die Definition sieht nun bei mir so aus:

Code: Alles auswählen

{% set fenster_liste = states.binary_sensor
| selectattr('state','eq','on')
| selectattr('attributes.device_class','defined')
| selectattr('attributes.device_class','eq', 'window')
| selectattr('name','ne', 'Balkontür')

| sort(attribute='name')
| map(attribute='name')
| list
| join('\n ') %}

{% set fenster_anzahl = states.binary_sensor
| selectattr('state','eq','on')
| selectattr('attributes.device_class','defined')
| selectattr('attributes.device_class','eq', 'window')
| selectattr('name','ne', 'Balkontür')
| list
| count %}

{% if fenster_anzahl == 0 %}
  Alle Fenster sind geschlossen.
{% else %}
  Folgende Fenster sind geöffnet:
{{ fenster_liste }}
{% endif %}
Benutzeravatar
Osorkon
Administrator
Beiträge: 2105
Registriert: Sa 17. Jul 2021, 16:53
3
Wohnort: Langenargen
Has thanked: 63 times
Been thanked: 580 times
Kontaktdaten:

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von Osorkon »

Mono hat geschrieben: Sa 7. Sep 2024, 22:13

ei mir kann ich die device_class leider nicht ändern bzw. einstellen da meine Fenster oder Lampen über KNX rein kommen.

In dem Fall, kannst Du nicht nach der Device Class window filtern.

Aber Du kannst das Label "fenster" verwenden.

Also alle Sensoren mit dem Label "Fenster und dem Status "offen" ausgeben.

Code: Alles auswählen

{% set fenster_liste = label_entities('fenster')
| select('match', 'sensor')
| expand()
| selectattr('state','eq','offen')
| map(attribute='name')
| list
| join(', ') %}
{{ fenster_liste }}

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Mono
Beiträge: 6
Registriert: Mo 26. Aug 2024, 20:08

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von Mono »

Dein Template funktioniert gut.

Ich habe versucht den status Gekippt noch mit dabei zu nehmen und die beschriftung aber leider bekomme ich das nicht hin. :(

Code: Alles auswählen

{% set fenster_liste = label_entities('Fenster')
| select('match', 'sensor')
| expand()
| selectattr('state','eq','Offen')
| map(attribute='name')
| list
| join(',\n') %}
{% set Fenster_anzahl = label_entities |selectattr('state','eq','Offen','Gekippt')
| list
| count %}
{% if Fenster_anzahl == 0 %}
   Alle Fenster sind zu 
{% else %}
  Folgende Fenster sind noch offen
{{ fenster_liste }}
{% endif %}
Benutzeravatar
Osorkon
Administrator
Beiträge: 2105
Registriert: Sa 17. Jul 2021, 16:53
3
Wohnort: Langenargen
Has thanked: 63 times
Been thanked: 580 times
Kontaktdaten:

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von Osorkon »

Zählt alle Sensoren mit dem Label "fenster" (klein geschrieben!) die nicht "Geschlossen" sind.
Wobei "Geschlossen" exakt der Status des Sensors sein muss, wenn es den geschlossen ist.
Und Listet die Namen der nicht geschlossnen Fenster auf.
Wenn alle Fenster Geschlossen sind, wird
Alle Fenster sind zu
ausgegeben.

Code: Alles auswählen

{% set fenster_liste = label_entities('fenster')
| select('match', 'sensor')
| expand()
| rejectattr('state','eq','Geschlossen') 
| map(attribute='name')
| list %}
{% set fenster_anzahl = fenster_liste 
| count %}

{% if fenster_anzahl == 0 %}
Alle Fenster sind zu 
{% else %}
Folgende Fenster sind noch offen:
{{ fenster_liste |  join(',\n') }}
{% endif %}

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
miami
Beiträge: 14
Registriert: Do 7. Sep 2023, 23:17
1
Has thanked: 1 time
Been thanked: 1 time

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von miami »

Mono, das geht so nicht: selectattr('state','eq','Offen','Gekippt'
Das Attribut state wird auf Gleichheit mit dem folgenden String geprüft. Da kannst du dann keine zwei angeben. Vielleicht gibt es aber auch noch was passenderes als "eq" (equal, also gleich). Weiß ich leider nicht.

Du kannst aber zwei "Abfragen" machen:

Code: Alles auswählen

{% set fenster_liste = label_entities('Fenster')
| select('match', 'sensor')
| expand()
| selectattr('state','eq','Offen')
| map(attribute='name')
| list
| join(',\n') %}
{% set Fenster_anzahl = label_entities |selectattr('state','eq','Offen')
| list
| count %}
{% if Fenster_anzahl == 0 %}
   Alle Fenster sind zu 
{% else %}
  Folgende Fenster sind noch offen
{{ fenster_liste }}
{% endif %}



{% set fenster_liste = label_entities('Fenster')
| select('match', 'sensor')
| expand()
| selectattr('state','eq','Gekippt')
| map(attribute='name')
| list
| join(',\n') %}
{% set Fenster_anzahl = label_entities |selectattr('state','eq','Gekippt')
| list
| count %}
{% if Fenster_anzahl <> 0 %}
  Folgende Fenster sind noch gekippt
{{ fenster_liste }}
{% endif %}

Eine andere Alternative ist auf Ungleichheit zu "Geschlossen" zu prüfen, mit "ne" (not equal oder, also ungleich). Wenn du 10 Fenster hättest:

Code: Alles auswählen

{% set fenster_liste = label_entities('Fenster')
| select('match', 'sensor')
| expand()
| selectattr('state','ne','Geschlossen')
| map(attribute='name')
| list
| join(',\n') %}
{% set Fenster_anzahl = label_entities |selectattr('state','ne','Geschlossen')
| list
| count %}
{% if Fenster_anzahl == 10 %}
   Alle Fenster sind geschlossen
{% else %}
  Folgende Fenster sind nicht geschlossen
{{ fenster_liste }}
{% endif %}
Zuletzt geändert von miami am Di 10. Sep 2024, 21:22, insgesamt 1-mal geändert.
Benutzeravatar
Osorkon
Administrator
Beiträge: 2105
Registriert: Sa 17. Jul 2021, 16:53
3
Wohnort: Langenargen
Has thanked: 63 times
Been thanked: 580 times
Kontaktdaten:

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von Osorkon »

miami hat geschrieben: Di 10. Sep 2024, 21:02

Das geht nicht: selectattr('state','eq','Offen','Gekippt'

Ich habe Dir doch das funktionierende Tempel auf dem Silbertablett präsentiert.

Einfach alles außer dem Status Geschlossen:

Code: Alles auswählen

| rejectattr('state','eq','Geschlossen') 

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
miami
Beiträge: 14
Registriert: Do 7. Sep 2023, 23:17
1
Has thanked: 1 time
Been thanked: 1 time

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von miami »

Ich habe noch was gefunden, das eq und ne etwas erklärt:

http://www.stephan-muller.com/cgi/cgi07.shtml hat geschrieben:

Zum Vergleichen von Strings gibt es folgende Operatoren:

eq - Text 1 muss gleich Text 2 sein
ne - Text 1 muss ungleich Text 2 sein

Der Unterschied zwischen == und eq liegt also darin, das mit == Zahlen und mit eq Zeichenketten verglichen werden können.

miami
Beiträge: 14
Registriert: Do 7. Sep 2023, 23:17
1
Has thanked: 1 time
Been thanked: 1 time

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von miami »

Osorkon hat geschrieben: Di 10. Sep 2024, 21:08
miami hat geschrieben: Di 10. Sep 2024, 21:02

Das geht nicht: selectattr('state','eq','Offen','Gekippt'

Ich habe Dir doch das funktionierende Tempel auf dem Silbertablett präsentiert.
Einfach alles außer dem Status Geschlossen:

Code: Alles auswählen

| rejectattr('state','eq','Geschlossen') 

Ich wollte Mono's Post beantworten und sagen, warum das aus meiner Sicht nicht funktioniert.
Aber danke, rejectattr kannte ich noch nicht (und hatte ich übersehen)

Mono
Beiträge: 6
Registriert: Mo 26. Aug 2024, 20:08

Re: Template - Welcher Lichter sind eingeschaltet - Welche Fenster stehen offen

Beitrag von Mono »

Ich danke euch beiden es läuft wunderbar

Antworten