Virtueller Meldekontakt in HA oder Alexa. Geht das?

Hallo zusammen,

im Folgenden Programmauszug sieht man, wie eine Sprachausgabe über Alexa an die Bedingungen Uhrzeit und Virtueller Schalter geknüpft ist.

Frage:
Kann ich mir in der Alexa-App oder auf Home Assistant im Dashbaord eine Virtuelle Lampe erstellen, die mir Anzeigt, dass beide Bedingungen erfüllt sind.
Unter Einstellungen/Geräte und Dienste/Helfer finde ich keine virtuelle Lampe.

Konkret: Wenn Schalter Ein ist und die Uhrzeit erfüllt ist, leuchtet eine virtuelle Lampe
oder Ähnliches im Dashboard.

  - platform: state
    entity_id:
      - binary_sensor.schlafzimmertur_eg
    from: "off"
    to: "on"
    for:
      hours: 0
      minutes: 0
      seconds: 0
    id: Schlafzimmertür EG
condition:
  - condition: and
    conditions:
      - condition: state
        entity_id: input_boolean.fenster_garage
        state: "on"
      - condition: time
        after: "21:00:00"
        before: "06:00:00"
        weekday:
          - mon
          - tue
          - wed
          - thu
          - fri
          - sat
          - sun
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Küchefenster OG
        sequence:
          - service: notify.alexa_media
            data:
              target:
                - media_player.alexa_wohnzimmer
                - media_player.echo_plus_kuche
                - media_player.echo_dot_schlafzimmer
                - media_player.franks_echo_pop
                - media_player.alexa_tim
              data:
                type: announce
                method: speak
              message: Küchefenster O G wurde geöffnet.
              title: Küchefenster O G wurde geöffnet.
    alias: Küchenfenster OG
  - choose:
      - conditions:
          - condition: trigger

Vielen Dank
Frank

Ich bin ein Stück weiter gekommen. Vielleicht kann mir jemand weiter helfen.

Wenn ich es richtig verstanden habe, muss ich dafür in der configuration.yamel
unter Template einen Eintrag in der Art machen:

template:
  - sensor:
      - name: "Strom-EG-aktuell"
        unit_of_measurement: "W"
        device_class: "power"
        state_class: "measurement"
        state: >
            {{ state_attr('sensor.poweropti', 'Watt') }}
      - name: "Strom-EG-Bezug"
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "total_increasing"
        state: >
            {{ state_attr('sensor.poweropti', 'A_Plus') }}
      - name: "Uhrzeit-fenster-garage"
        state: >
            {{ XXXXXXXXXXXXXXXXXXXXXX }}
# ---------- Sensoren ---------- Sommer Schalter
      - name: "summertime"
        state: "{% if now().month | string in ('1,2,3,4,5,6,7,8,9,10,11,12') | string %}on{% else %}off{% endif %}"
switch:

Belegung:
Name der Automation: Haustüren + Garage
Entitäts-ID: automation.hausturen_garage
Schalter der UND-Verknüpfung: entity_id: input_boolean.fenster_garage
Zeitbereich 21:00 und 6 Uhr: Wie ich dem Zeitbereich eine Entitäts-ID zuweisen kann, weiß ich leider nicht.

Mein Eintrag unter Template wäre dann etwa so:

- name: "Uhrzeit-fenster-garage"
        state: >
            {{ XXXXXXXXXXXXXXXXXXXXXX }}

Ist der der Schalter input_boolean.fenster_garage und die Uhrzeit zwischen 21:00 und 6 Uhr dann schalte den Sensor Uhrzeit-fenster-gare an
Dieser Befehl müsste dann in die geschweiften Klammern kommen, wo ich die vielen XXXX reingeschrieben habe.

Frage:

Wenn das dann klappen würde, hätte ich die Möglichkeit so ein Auge wie hier bei summertime im Dashboard zu erstellen. Hinter dem Auge steht dann auch Ein oder Aus.
Stimmt dieser Gedankengang? Oder müsste dazu dann noch ein Script geschrieben werden?

Vielen Dank
Frank

Wenn ich dich richtig verstehe dann geht das ganze mit ein helfer typ schalter und eine automation ungefähr so:

description: "Prüflampe"
mode: single
trigger:
  - platform: time_pattern
    minutes: /5
condition: []
action:
  - if:
      - condition: and
        conditions:
          - condition: state
            entity_id: input_boolean.post
            state: "on"
          - condition: time
            after: "21:00:00"
            before: "06:00:00"
    then:
      - service: input_boolean.turn_on
        data: {}
        target:
          entity_id: input_boolean.badnormal
    else:
      - service: input_boolean.turn_off
        data: {}
        target:
          entity_id: input_boolean.badnormal

Der Prüft alle 5 Minuten ob es zwischen 21 uhr und 6 uhr ist und dein schalter an ist (in meinen Beispiel wäre das input_boolean.post) wenn das zutrifft schaltet er deine dummie lampe an ( in meinen Beispiel wäre das input_boolean.badnormal).

Einfacher geht es nicht danach musst du die Card nur dazu bringen das Sie statt an und aus dir die Lampe anzeigt.
Wenn es nicht zutrifft dann schaltet er es aus.

@Lindtbaer, vielen Dank für deine Mühe und deine Arbeit.

Ich werde da morgen gleich mal rangehen.
Füge ich diese Zeilen in die configuration.yamal, oder ist das ein eigenes Scrpt?

Ich habe bei meiner configuration.yamal versucht zu analysieren, wie das Franky hier im Forum gemacht hat. Die folgende Programmzeilen habe ich für die Funktion bekommen, wie man Alexa fragt, welche Türen und Fenster noch offen sind.
Das wurde hier besprochen: https://community.simon42.com/t/alexa-welches-fenster-tuer-ist-noch-offen/7056/25

Da dies über ein Script passierte, habe ich mich da nicht ran gewagt.
Aber hier mal ein Beispiel:

Bei dem Beispiel wird gleich in Echtzeit angezeigt, ob der Schalter summertime
eingeschaltet ist oder nicht.
Eingeschaltet wird dieser, z.B. in den Monaten 5.6,7,8,9

Hier ein Auszug aus der configuration.yamal.
Ab dem Punkt# ---------- Sensoren ---------- Sommer Schalter ist die Funktion programmiert

# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

# Text-to-speech
tts:
  - platform: google_translate

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

alexa:
intent_script:
  script.offene_fenster_und_turen_abfragen:
            name: "fenster_offen"
            display_categories: SCRIPT
            
# ---------- Stromzaehler ----------
rest:
  - authentication: basic
    username: !secret username
    password: !secret password
    scan_interval: 30
    resource: https://backend.powerfox.energy/api/2.0/my/main/current?unit=kwh
    sensor:
      - name: "poweropti"
        json_attributes:
          - "Watt"
          - "Timestamp"
          - "A_Plus"
          - "A_Minus"
          - "Outdated"

template:
  - sensor:
      - name: "Strom-EG-aktuell"
        unit_of_measurement: "W"
        device_class: "power"
        state_class: "measurement"
        state: >
            {{ state_attr('sensor.poweropti', 'Watt') }}
      - name: "Strom-EG-Bezug"
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "total_increasing"
        state: >
            {{ state_attr('sensor.poweropti', 'A_Plus') }}

# ---------- Sensoren ---------- Sommer Schalter
      - name: "summertime"
        state: "{% if now().month | string in ('1,2,3,4,10,11,12') | string %}on{% else %}off{% endif %}"
switch:
    - platform: template
      switches:
        summertime:
          value_template: "{{ is_state('sensor.summertime', 'on') }}"
          turn_on:
            service: switch.turn_on
            target:
              entity_id: switch.summertime_open
          turn_off:
            service: switch.turn_off
            target:
              entity_id: switch.summertime_close

Diese Funktion wurde dann in folgendes Script eingebunden:

alias: fenster_offen
sequence:
  - service: alexa_media.update_last_called
    data: {}
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 2
  - service: notify.alexa_media_last_called
    data:
      message: >-
        {% set status = expand('binary_sensor.fenster_offen')  |
        selectattr('state', 'eq', 'on')                |
        map(attribute='name')                | list                | join (', ')
        %}        

        {% if status == '' %}            {{ status|replace("", "Alle Fenster und
        Türen sind geschlossen!") }}       {% else %}           
              Folgende Fenster und Türen sind noch offen: {{status}}       
        {% endif %}
mode: single
icon: mdi:window-open

Kannst du da einen Zusammenhang sehen, wie Franky dies hinbekommen hat, dass in Echtzeit die virtuelle Lampe in Form eines Auges immer gleich anzeigt, ob summertime aktiviert ist ist oder nicht?

Bezeichnungen:
Scriptname: Status der offenen Fenster
Entität-ID: script.tur_offen
Alias für Sprachassistenten: fenster_offen
Anzeige Auge: sensor.summertime
Schalter: switch.summertime

Wenn ich bei den Entitäten auf z.B. auf sensor.summertime oder auf switch.summertime klicke, kommt immer folgende Fehlermeldung, so dass ich leider nicht mehr Informationen auslesen kann.
Fehlermeldung:
Diese Entität (“sensor.summertime”) hat keine eindeutige ID, daher können die Einstellungen nicht über die UI verwaltet werden. Schaue in der Dokumentation nach für mehr Details.

Das Geniale daran ist, dass hier ein sensor.summertime generiert bzw. programmiert wurde, den ich dann im Dahsbaord verwenden kann.

So bräuchte ich einen für die Fenster-Garage, der angibt, ist das Auge in der Zeit zwischen
6:00 und 21 Uhr, dann leuchtet das Auge und es steht neben dran An.
(Vielleicht geht das auch über > Größer 6:00 Uhr und < Kleiner 21:00 Uhr oder so.)

Ich hoffe ich konnte mein Gedankengang / Wunsch verdeutlichen.

Vielen Dank
Frank

Ne steht da ist eine Automation. Heisst Einstellungen → Automatisierung & Szenen → Automatisierung erstellen (Button unten rechts) → Neue Automatisierung erstellen

Oben Rechts auf die 3 Punkte und als Yaml bearbeiten anklicken

Da gehört es rein musst nur die Entitäten auf deine anpassen.

Das mit den Hilfsschaltern mache ich auch so.
Aber was muss ich machen, damit statt des Schalters eine Lampe angezeigt wird?

Gute frage. Ich würde es mit den mal versuchen:

https://github.com/benct/lovelace-multiple-entity-row

Vieleicht hat ja jemand anderes noch eine idee damit wäre es aber an einfachsten.

@Lindtbaer Danke für deine Hilfe

Wie hast du die dummie lampe erstellt. Bei den Helfern gibt es leider keine Lampen.
Ich habe mal ein Schalter gewählt, und diesem als Icon ein Auge gegeben. Da passiert aber leider nichts, wenn ich meinen Schalter input_boolean.fenster_garage betätige, oder die Zeit z.b. auf 10 Uhr statt 21 Uhr ändere.

alias: fenster_garage-lampe
description: .fenster_garage-lampe
trigger:
  - platform: time_pattern
    minutes: /1
condition: []
action:
  - if:
      - condition: and
        conditions:
          - condition: state
            entity_id: input_boolean.fenster_garage
            state: "on"
          - condition: time
            after: "10:00:00"
            before: "06:00:00"
    then:
      - service: input_boolean.turn_on
        data: {}
        target:
          entity_id: input_boolean.hg_lampe
    else:
      - service: input_boolean.turn_off
        data: {}
mode: single

Meldeleuchte: input_boolean.hg_lampe
Schalter: input_boolean.fenster_garage
Name der Automation: fenster_garage-lampe

Frage 2
Wie kann man statt der Minutenabfrage z.B. 1 Sekunde Abfrage erstellen?

Ja, ich habe auch einen Schalter genommen. Da die Lampe ja auch nur zwei Zustände hat, gibt es diese nicht.

Du hast auch den letzten Teil vergessen. Er muss ja den: input_boolean.hg_lampe ja an und aus schalten. Das heißt, wenn zwischen 6 und 21 Uhr ist und input_boolean.fenster_garage an ist, dann schaltet er input_boolean.hg_lampe aus. Wenn es zwischen 21 und 6 Uhr ist und input_boolean.fenster_garage an ist, dann schaltet er input_boolean.hg_lampe an.

Zu deiner Frage mit den Sekunden solltest du dir den Modus mal umschalten. Oben Rechts die 3 Punkte und dann auf: Im visuellen Editor bearbeiten auswählen und wenn du den obersten Teil mal aufklappst, sollte das klar sein. :slight_smile:

P.S: Das mit der Zeit einstellen auf den PC geht, glaube ich nicht, da er sich die Zeit aus dem Internet holt.

Danke für deine schnelle Antwort:

Ich verstehe den Syntex leider nicht.
Wenn ich - service: input_boolean.hg_lampe.turn_off statt - service: input_boolean.turn_off bekomme ich eine Fehlermeldung.

Nachtrag:
Oh ich depp. Du meinst die letzte Zeile:
Also so.

``alias: fenster_garage-lampe
description: .fenster_garage-lampe
trigger:
  - platform: time_pattern
    seconds: "1"
condition: []
action:
  - if:
      - condition: and
        conditions:
          - condition: state
            entity_id: input_boolean.fenster_garage
            state: "on"
          - condition: time
            after: "10:00:00"
            before: "06:00:00"
    then:
      - service: input_boolean.turn_on
        data: {}
        target:
          entity_id: input_boolean.hg_lampe
    else:
      - service: input_boolean.turn_off
        data: {}
        target:
          entity_id: input_boolean.hg_lampe
`

Aber leider geht es so auch noch nicht.

Die Zeit hatte ich nicht am PC sondern in der Automation geändert

:crayon:by HarryP: Zusammenführung Doppelpost.

Nachtrag:

Es funktioniert, wenn ich die Automation in HA ausführe.
Wenn ich aber im DashBoard den Schalter hinter hg-lampe betätige, und diesen einschaltet, wird dieser nicht automatisch gleich wieder zurückgesetzt, als auf aus geschalten, obwohl die Zeit 21:00 noch nicht erreicht ist.

Bei der summertime wo das ganze nicht als Schalter sondern als Sensor eingebunden ist, gibt es erst gar kein Schalter, an der Position wo der Schalter ist, steht entweder An oder Aus. Ist das auch machbar?

Wenn es jede Sekunde abgefragt werden soll musst du das so machen: /1 sonst geht das nicht. Aber jede Sekunde zu prüfen würde ich nicht machen jede minute macht da mehr sinn.

Vielen Dank für deine Hilfe. Als Neuling bin ich in vielen Foren unterwegs um dazuzulernen.

Es taucht immer wieder der Begriff Template auf.

Unter anderem hatte ich hier

Die Antwort steht bei den Kommentaren

folgende Antwort bekommen:

Mach dir einen Template binary Sensor in der configuration.yaml der beide Bedingungen prüft und Leg diesen aufs Dashboard.

Frage:
Kann man die Automation in die config.yaml transferieren?
Oder ist das sehr kompliziert?

Danke dir

Ja Templates und configuration.yaml da kann man auch viel machen. Aber warum kompliziert mit Neustarts usw. wenn es einfacher geht? Die Entwickler von HA bringen immer mehr Sachen direkt in Frontend, damit jeder mit ein paar Klicks das zum Laufen bekommt ohne sich groß durch irgendwelchen Templates und Codes zu quälen. Also warum das nicht nutzen. Das, was ich dir da oben gemacht habe, hab ich in 5 Minuten zusammen geklickt ohne zu Googeln. Bei Templates usw. geht das nicht so flott.

Und nein, die Automation bekommst du nicht in der configuration.yaml. Würde auch kein Sinn machen, wenn du Templates verwenden willst, findest du das auch unter Automation und kannst da auch teile von deinen Templates benutzen. Deine ganzen Automations findest du übrigens unter automations.yaml, da werden die abgelegt. Liegt da, wo auch die configuration.yaml liegt.

Hallo @Lindtbaer,

Ja Templates und configuration.yaml da kann man auch viel machen. Aber warum kompliziert mit Neustarts usw. wenn es einfacher geht?

Also warum das nicht nutzen. Das, was ich dir da oben gemacht habe, hab ich in 5 Minuten zusammen geklickt ohne zu Googeln.

ich beginne zu verstehen. Für mich sah beides gleich kompliziert aus.

Mir hat halt vor allem gefallen, dass bei den Templates kein Schalter sondern nur das Auge mit An und Aus im Dashboard steht.

Bei der Automation, vorausgesetzt ich habe dies richtig umgesetzt, ist neben hg_lampe ein Schalter.
Ich kann den Schalter neben hg_lampe ein- und ausschalten, was ja nichts bringt und vielleicht sogar die Automation verhagelt. Hier wünschte ich mir auch, dass statt dem Schalter nur die Bezeichnung An oder Aus. ** dasteht.

Also nur den Zustand den die Automation eingenommen hat.**
Und um das zu erreichen, dachte ich, muss man dies als Templates in der configuration.yaml programmieren.

Frage:
Verstehe ich das so richtig? Oder geht das auch in der Automation bzw. mit dem richtigen Helfer Wenn ja, habe ich das nicht rausbekommen wie das geht, bzw. welchen Helfer ich nehmen müsste.

Hier noch ein Bild wie mein Dahsboard diesbezüglich aussieht.

Zu der Zeit Einstellung:

Ich habe deswegen eine Sekunde gewählt, dass wenn ich mit dem Handy z.B. die auf das Dahsboard gehe und die Automation Haustür Garage mit dem Schalter aktiviere ich auch gleich sehe ob die Automation greift.
Dies würde ich daran erkennen, wenn dann auch hg_lampe leuchtet und der Schalter rechts ist, bzw. hellblau.
Wenn ich da jetzt 5 Minuten warten müsste, wäre das sehr umständlich.

Lindtbare, ich danke dir sehr und hoffe du verlierst nicht die Geduld mit mir.
Ab Montag morgen sind wir auch 10 Tage im Urlaub, so dass ich vielleicht nur im Bus oder im Stau ein wenig mit HA experimentieren kann. Macht ja auch irgendwie Spaß, kostet aber auch viel Zeit.

Vielen lieben Dank
Frank

Das was du da machst ist der Falsche weg. Du versuchst dich an der Card anzupassen. Mach es andersrum passe die Card auf dein wunsch an und es geht auch ohne Template.

Ich hatte oben schon auf die lovelace-multiple-entity-row Card hingewiesen. Benutze die da kannst du einstellen was was er dir anzeigen soll egal ob switch oder input_boolean.

Hier mal ein Beispiel damit du siehst was ich meine:

Und wegen den Sekunden Thema bist du auch falsch vorgegangen aber muss gestehen hab ich auch übersehen. Füge oben bei Auslöser den Wert Zustand aus und wähle da dein input_boolean.fenster_garage aus. Mehr nicht. Und stelle es wieder auf /5 oder etwas anderes nur nicht sekunden.

Dann läuft das ganze alle 5 minuten und wenn du deine fenster garage drückst wird sie manuell und direkt ausgeführt ohne jede Sekunde den Stand abzufragen :slightly_smiling_face:

Ich hatte zuvor zu viel Respekt “lovelace-multiple-entity-row Card” zu installieren, da ich kein deutsche Youtube Anleitung gefunden habe.

OR install using HACS and add this (if in YAML mode):

lovelace: resources: - url: /hacsfiles/lovelace-multiple-entity-row/multiple-entity-row.js type: module

The above configuration can be managed in the Configuration → Dashboards → Resources panel when not using YAML.

Hacs habe ich schon installiert.
Wo in Hacs gebe ich diese Zeile ein?

lovelace:
  resources:
    - url: /hacsfiles/lovelace-multiple-entity-row/multiple-entity-row.js
      type: module

Oder schreibe ich diese auch in die configuration.yaml als letzten Eintrag bzw. wo in die Cinfigruation.yaml kommt dieser Eintrag hin?

Besten Dank
Frank

Einstellungen → Dashboards → (3 Punkte oben Rechts) Resourcen

Prüfe ob der eintrag vorhanden ist wenn ja musst du nix tun. Wenn nein dann unten Rechts auf Ressource hinzufügen. Die url da einfügen und Javascript-Modul auswählen und auf Erstellen klicken

Also nur die URL den Rest nicht.

So wie hier auf dem Bild.

Verwundert hat mich das LEERZEICHEN hinter url und dem \Schrägstrich …
Das System habe ich sicherheitshalber auch neu gestartet.

Danke Dir

Das url: bitte noch entfernen sonst wird das nix

Soweit hat es geklappt.
Die Adresse des Dashboard heißt nun: http://homeassistant.local:8123/lovelace/default_view

Nachtrag:
Kennst du da eine Seite, wo das erklärt wird wie man lovelace richtig benutzt?

Ich habe ein Tutorial auf deutsch gefunden, jedoch ist das veraltet und die Menüs sehen ganz anders aus.
Englisch kann ich leider nicht so gut, dass ich einem Video folgen könnt.

Vielen Dank

:crayon:by HarryP: Zusammenführung Doppelpost.