Template für einen Sensorwert als Schieberegler

Basic im Umgang mit Home Assistant. Tipps und Ratschläge die den Umgang mit Home Assistant erleichtern.


Antworten
Rainer
Beiträge: 12
Registriert: Sa 7. Okt 2023, 15:52

Template für einen Sensorwert als Schieberegler

Beitrag von Rainer »

Hallo, habe mal wieder ein grundlegendes Verständnissproblem, da ich mit den Möglichkeiten von yaml
nicht so wirklich klar komme.

Ich habe die Entität media_player.wohnzimmer welche ein Attribut volume_level besitzt. Da ich hierauf nicht direkt zugreifen kann habe ich versucht ein Template zu erstellen. Mit sensor kann ich den Wert zwar auslesen, aber nicht ändern bzw. nicht als id für einen Schieberegler verwenden.
Habe nach längeren suchen und lesen nachfolgenden configuration.yaml Eintrag zusammengestellt, welcher aber natürlich nicht funktioniert, da ich zu geringe Kenntnisse habe.

Code: Alles auswählen

template:
  - number:
    - name: LautstaerkeSonos
      state: >-
          {{ state_attr('media_player.wohnzimmer', 'volume_level') }}
      unique_id: lautstaerke
      step: 0.1
      set_value:
         - action: call-service
           service: media_player.volume_level                   
target: entity_id: - media_player.wohnzimmer data: volume_level: {{value}} <-- value is undefiened min: 0 max: 1

Für jede Hilfe schon mal vielen Dank.

Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Template für einen Sensorwert als Schieberegler

Beitrag von Osorkon »

Hallo @Rainer und Herzlich Willkommen bei den SmartHome for Dummies! :D :D

Was Du brauchst ist einen Automatisierung. Welche bei Veränderung des Helfers Input Number die Lautstärke des Media Players einstellt.
Als Beispiel mit dem Helfer "input_number.lautstarke_bad" und dem Media Player "media_player.bad"

Code: Alles auswählen

alias: Test - Lautstärke Bad
description: ""
trigger:
  - platform: state
    entity_id:
      - input_number.lautstarke_bad
condition: []
action:
  - service: media_player.volume_set
    data:
      volume_level: |
        {{states('input_number.lautstarke_bad') | int(0) / 100 }}
    target:
      entity_id: media_player.bad
mode: single

Den Input Number kannst Du dann z.B. als Mushroom Number Karte im Dashboard verwenden.

Mushroom Number Karte.jpg
Mushroom Number Karte.jpg (24.33 KiB) 637 mal betrachtet

Gruß
Osorkon

EDIT: Template Sensoren, wenn Du denn einmal welche erstellen willst. Kannst Du ohne YAML gefrickel einfach als Helfer über die GUI erstellen. ;)

Einer muss ja für Ordnung sorgen. :D
Rainer
Beiträge: 12
Registriert: Sa 7. Okt 2023, 15:52

Re: Template für einen Sensorwert als Schieberegler

Beitrag von Rainer »

meine Lautstärke hat leider keine Entity Id sondern ist nur als Attribut einer Entity vorhanden. Wie soll ich ohne template darauf zugreifen?

Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Template für einen Sensorwert als Schieberegler

Beitrag von Osorkon »

Da sprichst die Media Player Entität an.
Über den Service media_player.volume_set.

Den Input Number musst Du natürlich erstmal unter Helfer erstellen.
Mit der Automatisierung setzt Du dann die Lautstärke des Media Players auf den Wert des Input Numbers.

Gruß Osorkon

Einer muss ja für Ordnung sorgen. :D
Rainer
Beiträge: 12
Registriert: Sa 7. Okt 2023, 15:52

Re: Template für einen Sensorwert als Schieberegler

Beitrag von Rainer »

Danke schon mal für deine Mühe, aber ich bekomme bei Erstellung der Automation
folgenden Hineweis : Message malformed: extra keys not allowed @ data['0']

Ich habe folgende Code erfasst und den Input Helfer lautstaerke erstellt.

Code: Alles auswählen

- id: '1696697803359'
  alias: Neue Automatisierung
  description: ''
  trigger:
    - platform: state
      entity_id:
        - input_number.lautstaerke
  condition: []
  action:
    - service: media_player.volume_set
      data:
        volume_level: |
          {{states('input_number.lautstaerke') | int(0) / 100 }}
      target: 
        entity_id: media_player
  mode: single
  
Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Template für einen Sensorwert als Schieberegler

Beitrag von Osorkon »

Du hast bei der Aktion, bei der Angabe der Entität einen Fehler.

Es muss lauten:

Code: Alles auswählen

entity_id: media_player.wohnzimmer

und nicht

Code: Alles auswählen

entity_id: media_player

BTW: Wie erstellst Du den Deine Automatisierungen?
Nicht in der GUI?

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Rainer
Beiträge: 12
Registriert: Sa 7. Okt 2023, 15:52

Re: Template für einen Sensorwert als Schieberegler

Beitrag von Rainer »

Mit media_player.wohnzimmer bekomme ich den selben Fehler beim abspeichern angezeigt.
Zu deiner Frage, normalerweise mit der GUI, in diesem Fall aber als yaml bearbeiten.

PS.: Habe eigentlich nichts geändert und plötzlich lies es sich abspeichern und jetzt scheint es zu gehen.
Muss es noch ausführlich testen, aber schon amls vielenbDank

Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Template für einen Sensorwert als Schieberegler

Beitrag von Osorkon »

Hier noch eine Erweiterung, damit auch der Input Number aktualisiert wird, wenn Du die Lautstärke am Media Player oder über einen anderen Weg durchführst.

Code: Alles auswählen

alias: Lautstärke Wohnzimmer
description: ""
trigger:
  - platform: state
    entity_id:
      - input_number.lautstaerke
    id: indirekt
  - platform: state
    entity_id:
      - media_player.wohnzimmer
    attribute: volume_level
    id: direkt
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - direkt
        sequence:
          - service: input_number.set_value
            data:
              value: >
                {{ state_attr('media_player.wohnzimmer','volume_level') * 100 | int(0)
                }}
            target:
              entity_id: input_number.lautstaerke
      - conditions:
          - condition: trigger
            id:
              - indirekt
        sequence:
          - service: media_player.volume_set
            data:
              volume_level: |
                {{states('input_number.lautstaerke') | int(0) / 100 }}
            target:
              entity_id: media_player.wohnzimmer
mode: single

BTW: Du kannst die Automatisierung direkt in der GUI im YAML Modus bearbeiten und einfach zischen visuellen Editor und YAML umschalten.
Die 3 Punkte oben rechts.

Automatisierung-Menü.jpg
Automatisierung-Menü.jpg (25.36 KiB) 609 mal betrachtet

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Rainer
Beiträge: 12
Registriert: Sa 7. Okt 2023, 15:52

Re: Template für einen Sensorwert als Schieberegler

Beitrag von Rainer »

Super was du, da zusammen gebracht hast. Es funktioniert im wesentlichen und ich kann mit meinen
geringen Kenntnisse sogar das meiste verstehen und nachvollziehen.

Was noch nicht ganz funktioniert, ist wenn von dritter Seite im Media player die Lautstärke verendert
wurde, automatisch auch den Wert von input_number.lautstaerke im slider geändert sein sollte.

Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Template für einen Sensorwert als Schieberegler

Beitrag von Osorkon »

Rainer hat geschrieben: Mo 9. Okt 2023, 12:13

Was noch nicht ganz funktioniert, ist wenn von dritter Seite im Media player die Lautstärke verendert
wurde, automatisch auch den Wert von input_number.lautstaerke im slider geändert sein sollte.

Auch nicht mit dem vom mir bereitgestellter Automatisierung?
Es ist ja nicht so, dass ich die Automatisierung bei mir nicht getestet habe. Geprüft und für gut befunden. :D

Hast Du mal penibel geprüft ob die Entität exakt den Deiner entsprechen?

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Rainer
Beiträge: 12
Registriert: Sa 7. Okt 2023, 15:52

Re: Template für einen Sensorwert als Schieberegler

Beitrag von Rainer »

Natürlich hattest du recht.
5 x Zeile für Zeile verglichen !?

Beim 6. Mal Schreibfehler gefunden.

Vielen Dank, funktioniert besser als ursprünglich geplant.

Antworten