Bereich rings rum zum Thema Yaml und seine Tücken.
PX80
Beiträge: 583 Registriert: Do 21. Okt 2021, 13:09
2
Has thanked: 63 times
Been thanked: 16 times
Beitrag
von PX80 » Mi 27. Apr 2022, 07:01
Moin,
das Beispiel Script verwendet den WErt von input select. Da meine Geräte aber keine Einheitliche Endung haben, möchte ich die Auswahl Fix machen
Code: Alles auswählen
spotify_start:
alias: 'Spotify: Start Playback'
sequence:
- service: spotcast.start
data:
entity_id: "{% set selected_device = states('input_select.chromecast_audio').lower()\
\ %} {{ 'media_player.' + selected_device }} \n"
force_playback: true
mode: single
icon: mdi:spotify
Quasi:
if input_select.chromecast_audio = "Bad" set selected_device = 'media_player.bad'
etc.
Bräuchte da mal ein Denkanstoss von der Codefomatierung
Osorkon
Administrator
Beiträge: 1958 Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 532 times
Kontaktdaten:
Beitrag
von Osorkon » Mi 27. Apr 2022, 20:52
Warum so kompliziert?!
Code: Alles auswählen
potify_start:
alias: 'Spotify: Start Playback'
sequence:
- service: spotcast.start
data:
entity_id: media_player.{{ states('input_select.chromecast_audio') }}
force_playback: true
mode: single
icon: mdi:spotify
Gruß
Osorkon
Einer muss ja für Ordnung sorgen.
PX80
Beiträge: 583 Registriert: Do 21. Okt 2021, 13:09
2
Has thanked: 63 times
Been thanked: 16 times
Beitrag
von PX80 » Do 28. Apr 2022, 06:20
guten morgen, das funktioniert so nicht für alle geräte
InputSelect = Badezimmer ... der medieplay könnte aber media.player_Badezimmer_3 sein.
Daher möchte ich das gerne hard kodieren
Osorkon
Administrator
Beiträge: 1958 Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 532 times
Kontaktdaten:
Beitrag
von Osorkon » Do 28. Apr 2022, 08:26
Warum benennst Du Deine Entitäten nicht um / einheitlich?
Muss aber zugeben, da ich nicht durchsteige, was das Template genau tun soll?
Gruß
Osorkon
Einer muss ja für Ordnung sorgen.
PX80
Beiträge: 583 Registriert: Do 21. Okt 2021, 13:09
2
Has thanked: 63 times
Been thanked: 16 times
Beitrag
von PX80 » Do 28. Apr 2022, 13:02
prinzipiell hast du recht, nun habe ich jedoch mehrere Speaker im Wohnzimmer und ein Leerzeichen in der Entitry wird durch ein _ in der Entität ersetzt. Zudem möchte ich im Inputselect ggf. ein anderes Wort als der MediaPlayer Entität geben
daher benötige ich eine if this in input.select then that media_player
Osorkon
Administrator
Beiträge: 1958 Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 532 times
Kontaktdaten:
Beitrag
von Osorkon » Do 28. Apr 2022, 13:10
Also brauchst Du Unterstützung bei der if else Anweisung?
Zum Verständnis. Jeder Eintrag in Deiner Auswahlliste soll eindeutig einer media_player Entität zugeordnet werden?
Gruß
Osorkon
Einer muss ja für Ordnung sorgen.
PX80
Beiträge: 583 Registriert: Do 21. Okt 2021, 13:09
2
Has thanked: 63 times
Been thanked: 16 times
Beitrag
von PX80 » Do 28. Apr 2022, 13:22
Das ist korrekt. Vielen Dank vorneweg.
Osorkon
Administrator
Beiträge: 1958 Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 532 times
Kontaktdaten:
Beitrag
von Osorkon » Do 28. Apr 2022, 13:56
Versuche es mal damit
Code: Alles auswählen
{% if is_state('input_select.chomecast_audio', 'Wohnzimmer') %}
media_player.xy
{% elif is_state('input_select.chomecast_audio', 'Arbeitszimmer') %}
media_player.xyz
{% elif is_state('input_select.chomecast_audio', 'Schlafzimmer') %}
media_player.xyzx
{% else %}
unknow
{% endif %}
Gruß
Osorkon
Einer muss ja für Ordnung sorgen.
PX80
Beiträge: 583 Registriert: Do 21. Okt 2021, 13:09
2
Has thanked: 63 times
Been thanked: 16 times
Beitrag
von PX80 » Do 28. Apr 2022, 18:52
Vielen Dank probier ich aus. Schon allein werden Umlaute nicht korrekt geparsed. Aus "küche" wird halt media_player.kuche ... daher funtkioniert der erste Ansatz nicht.
PX80
Beiträge: 583 Registriert: Do 21. Okt 2021, 13:09
2
Has thanked: 63 times
Been thanked: 16 times
Beitrag
von PX80 » Fr 29. Apr 2022, 12:41
@Osorkon die Syntax scheint nicht zu passen.
Code: Alles auswählen
missed comma between flow collection entries at line 6, column 19:
entity_id: {% if is_state('input_select.chom ...
Osorkon
Administrator
Beiträge: 1958 Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 532 times
Kontaktdaten:
Beitrag
von Osorkon » Fr 29. Apr 2022, 16:04
Poste mal Deinein Code. Und die Auswahlliste.
Der von mir bereitgestellte funktioniert bei mir?!
Gruß
Osorkon
Einer muss ja für Ordnung sorgen.
PX80
Beiträge: 583 Registriert: Do 21. Okt 2021, 13:09
2
Has thanked: 63 times
Been thanked: 16 times
Beitrag
von PX80 » Fr 29. Apr 2022, 18:31
Dein Code funktioniert, musste halt meine Umlaute ändern. Mit dem Conditional komm ich nicht zurecht
Code: Alles auswählen
spotify_start:
alias: 'Spotify: Start Playback'
sequence:
- service: spotcast.start
data:
entity_id: {% if is_state('input_select.chomecast_audio', 'Wohnzimmer') %}
media_player.xy
{% elif is_state('input_select.chomecast_audio', 'Arbeitszimmer') %}
media_player.xyz
{% elif is_state('input_select.chomecast_audio', 'Schlafzimmer') %}
media_player.xyzx
{% else %}
unknow
{% endif %}
force_playback: true
mode: single
icon: mdi:spotify
beim Einfügen der Bedingungen mach ich etwas falsch.Kenne die Syntax nicht
Osorkon
Administrator
Beiträge: 1958 Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 532 times
Kontaktdaten:
Beitrag
von Osorkon » Fr 29. Apr 2022, 20:41
Um welche Bedingungen geht es den?
Gruß
Osorkon
Einer muss ja für Ordnung sorgen.
Friedi
Beiträge: 447 Registriert: Do 22. Jul 2021, 16:57
2
Has thanked: 36 times
Been thanked: 21 times
Beitrag
von Friedi » Sa 30. Apr 2022, 08:48
Das
sollte so aussehen:
In der nächsten Zeile um 2 eingerückt dein Code.
Wäre mal der Anfang. Ich bin mir aber nicht sicher, ob das bei entity_id geht. Imho müsstest du da was mit data_template machen.
Bin unterwegs und auf dem Handy coded es sich schwer
Friedi
Beiträge: 447 Registriert: Do 22. Jul 2021, 16:57
2
Has thanked: 36 times
Been thanked: 21 times
Beitrag
von Friedi » Sa 30. Apr 2022, 09:06
Probier es mal so:
Code: Alles auswählen
spotify_start:
alias: 'Spotify: Start Playback'
sequence:
- service: spotcast.start
data_template:
entity_id: >-
{% if is_state('input_select.chomecast_audio', 'Wohnzimmer') %}
media_player.xy
{% elif is_state('input_select.chomecast_audio', 'Arbeitszimmer') %}
media_player.xyz
{% elif is_state('input_select.chomecast_audio', 'Schlafzimmer') %}
media_player.xyzx
{% else %}
unknow
{% endif %}
force_playback: true
mode: single
icon: mdi:spotify
Was du allerdings mit dem „unknow“ erreichen willst, ist mir schleierhaft, da es def. Zum Fehler führen wird.
PX80
Beiträge: 583 Registriert: Do 21. Okt 2021, 13:09
2
Has thanked: 63 times
Been thanked: 16 times
Beitrag
von PX80 » Mo 2. Mai 2022, 11:18
mit dem code bringt er mir auch ein fehler schon beim ersten element
Code: Alles auswählen
can not read an implicit mapping pair; a colon is missed at line 10, column 25:
media_player.xy
^
Irgendwas funtz mit der Intendation oder syntax nicht
Edit: Ok. Die Indenation wird im FileEditor anders gehandhabt, hatte früher VisualCodeEditor. Ich muss alle Tabs rausnehmen die von Copy&Past ekamen
Osorkon
Administrator
Beiträge: 1958 Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 532 times
Kontaktdaten:
Beitrag
von Osorkon » Mo 2. Mai 2022, 11:34
Die media_player Entitäten und das matching zu Deiner Auswahlliste musst Du aber schon anpassen.
Waren in meinem Bsp. Template ja nur Platzhalter.
Egal ob file Editor oder VCE, die Syntax bleibt die gleiche.
Du brauchst dich aber auch nicht mit einem Editor rumschlagen. Kannst das Skript genauso gut in der GUI erstellen und dort das Template einfügen.
Gruß Osorkon
Einer muss ja für Ordnung sorgen.
PX80
Beiträge: 583 Registriert: Do 21. Okt 2021, 13:09
2
Has thanked: 63 times
Been thanked: 16 times
Beitrag
von PX80 » Mo 2. Mai 2022, 11:38
komme mit YAML besser als mit GUI zurecht, nur mit der einrückung hapert es manchmal. mir gings hie wirklich nur um die syntax, die notwendigen Anpassungen sind mir klar.
Osorkon
Administrator
Beiträge: 1958 Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 532 times
Kontaktdaten:
Beitrag
von Osorkon » Mo 2. Mai 2022, 11:51
Tut‘s jetzt? Oder immer noch nicht?
Gruß
Osorkon
Einer muss ja für Ordnung sorgen.
Friedi
Beiträge: 447 Registriert: Do 22. Jul 2021, 16:57
2
Has thanked: 36 times
Been thanked: 21 times
Beitrag
von Friedi » Mo 2. Mai 2022, 13:10
PX80 hat geschrieben: ↑ Mo 2. Mai 2022, 11:18
mit dem code bringt er mir auch ein fehler schon beim ersten element
Code: Alles auswählen
can not read an implicit mapping pair; a colon is missed at line 10, column 25:
media_player.xy
^
Irgendwas funtz mit der Intendation oder syntax nicht
Edit: Ok. Die Indenation wird im FileEditor anders gehandhabt, hatte früher VisualCodeEditor. Ich muss alle Tabs rausnehmen die von Copy&Past ekamen
Dann passt imho deine entity nicht.
Ich habe mir mal dieses Spotcast angesehen. Die Code-Beispiele, die ich sah, gaben alle einen URI mit. Bist du sicher, dass es reicht, nur die Entität anzugeben? Hast du das schon mal ohne Select usw. gemacht? Also mit nur einer def. Entität?
PX80
Beiträge: 583 Registriert: Do 21. Okt 2021, 13:09
2
Has thanked: 63 times
Been thanked: 16 times
Beitrag
von PX80 » Mo 2. Mai 2022, 14:43
Funktioniert jetzt, hatte Probleme mit der Einrückung
Friedi
Beiträge: 447 Registriert: Do 22. Jul 2021, 16:57
2
Has thanked: 36 times
Been thanked: 21 times
Beitrag
von Friedi » Mo 2. Mai 2022, 17:02
PX80 hat geschrieben: ↑ Mo 2. Mai 2022, 14:43
Funktioniert jetzt, hatte Probleme mit der Einrückung
Was ich immer noch nicht weiß: was willst du mit dem „unknow“ erreichen?
Osorkon
Administrator
Beiträge: 1958 Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 532 times
Kontaktdaten:
Beitrag
von Osorkon » Mo 2. Mai 2022, 18:03
Was ich immer noch nicht weiß: was willst du mit dem „unknow“ erreichen?
Den Template Code hat ja von mir.
Ob das Template jetzt nichts oder unknow als Ergebnis raus spuckt wenn unbekannte Auswahl erfolgt, ist ja Wurst. Beides führt zum gleichen Ergebnis, es wird nichts abgespielt, da ungültige Entität. Was ja eigentlich nicht passieren dürfte wenn er die Auswahlliste und das Template synchron hält.
Gruß
Osorkon
Einer muss ja für Ordnung sorgen.
Friedi
Beiträge: 447 Registriert: Do 22. Jul 2021, 16:57
2
Has thanked: 36 times
Been thanked: 21 times
Beitrag
von Friedi » Mo 2. Mai 2022, 18:29
Ah ja
Ich würde da aber einfach ein Fallback machen. Also eine Entität zum Standard machen…
PX80
Beiträge: 583 Registriert: Do 21. Okt 2021, 13:09
2
Has thanked: 63 times
Been thanked: 16 times
Beitrag
von PX80 » Di 3. Mai 2022, 09:08
Friedi hat geschrieben: ↑ Mo 2. Mai 2022, 17:02
PX80 hat geschrieben: ↑ Mo 2. Mai 2022, 14:43
Funktioniert jetzt, hatte Probleme mit der Einrückung
Was ich immer noch nicht weiß: was willst du mit dem „unknow“ erreichen?
Ich bin einfach nur faul bei copy&paste hier im forum