Hallo zusammen!
Ich möchte zu bestimmten Gelegenheiten (Heizung aus, Urlaub, …) meine Avatto-Thermostate umprogrammieren. Für jeden Tag der Woche kann man diesen einen “Schedule” mit jeweils 6 Schaltpunkten eintragen. Da wir als Rentner keinen Unterschied zwischen Werktagen und Wochenende machen müssen, kann/muss der selbe Schedule für alle 7 Tage der Woche angegeben werden.
Beispiel: “07:30/21.0 08:00/21.0 12:00/21.0 14:00/21.0 18:00/21.0 22:00/16.0”
Da ich nun keine Lust habe, diesen (nicht besonders gut lesbaren) String sieben mal eintragen zu müssen (und das für jeden der Thermostate ggfs. unterschiedlich), wollte ich ein Skript mit Parametern dafür verwenden, was mir bis jetzt nicht geglückt ist.
Zum Testen habe ich mir das folgende Skript erstellt:
alias: Test - Schreibe Wert an Thermostat
sequence:
- device_id: ac827200d3fd1505d87923a99c74603e
domain: text
entity_id: 4c369b697670579aed7144144973304c
type: set_value
value: 07:30/21.0 08:00/21.0 12:00/21.0 14:00/21.0 18:00/21.0 22:00/16.0
- action: persistent_notification.create
metadata: {}
data:
message: "{{schedule}}"
description: ""
fields:
schedule:
selector:
text: null
name: schedule
required: true
Hier kann man sehen, wie ich der “action” (notification) den Parameter “schedule” übergebe, der dann auch bei Ausführung korrekt angezeigt wird. Wie ich den Parameter an das erste Element der “sequence” (“device_id”) übergeben soll, weiß ich (noch) nicht.
Aufgerufen wird das Skript aus folgender Automation:
alias: "Test: Reaktion auf Testschalter"
description: >-
Bei jedem Anklicken des Buttons wird das u.a. Skript mit dem einen Parmeter
'schedule' aufgerufen
triggers:
- trigger: state
entity_id:
- input_boolean.testschalter
conditions: []
actions:
- action: script.test_schreibe_wert_an_thermostat
metadata: {}
data:
schedule: 07:30/21.0 08:00/21.0 12:00/21.0 14:00/21.0 18:00/21.0 22:00/16.0
mode: single
Versuche ich, im Skript bei der ersten Aktion (“device_id”) ebenfalls den Parameter einzusetzen, erhalte ich die Fehlermeldung “Message malformed: extra keys not allowed @ data[‘data’]”.
Kann jemand erkennen, was ich da falsch mache und mich auf den rechten Weg schubsen? Mir ist aufgefallen, dass die meisten Tutorials im Zusamenhang mit Parametern diese an eine “action” übergeben, während in o.a. Beispiel ein “device_id” in der Sequenz vorkommt.
Abschließend noch das Skript im visuellen Editor: