Home Assistant - Entität manuelle Eingabe in einer Szene

beuldi

Cadet 3rd Year
Registriert
Nov. 2009
Beiträge
54
Moin,
ich bin seit ein paar Tagen dabei, mich in HA einzuarbeiten und hänge da gerade an einer Sache fest.
Ich möchte per Automation eine Szene erstellen. In dieser Szene möchte ich den Zustand einer Entität manipulieren können und nicht per Snapshot automatisch ermitteln lassen.
Aber ich scheitere gerade kläglich an der richtigen Syntax, denn in einer kleinen Testumgebung bekomme ich es nicht hin.
So sieht es im Moment aus:

Code:
action: scene.create
metadata: {}
data:
  scene_id: testanwesenheit
  entities: input_number.test_zahl 23

... aber so übernimmt er nicht den wert "23"

Vielleicht liegt der Fehler auch zwischen den Ohren, aber wie schon gesagt, ich hänge hier fest.

Kann mir jemand helfen?
 
Zuletzt bearbeitet:
Ich kann noch nicht exakt beurteilen, ob dein Wunsch so umsetzbar ist, deshalb ein paar Fragen:

1.: Nutzt du dafür den Automation-Editor? Settings -> Automations & Scenes -> Create Automation (unten rechts).
Falls ja, hilft dir der visuelle Editor weiter, dein Problem zu lösen?

2.: Ist deine Entity überhaupt in der Lage, geschrieben zu werden?
So als blödes Beispiel: Die Temperatur-Entity einer Thermometer-Device ist für gewöhnlich ein Messwert, den du nicht ändern / schreiben kannst. Generell vermute ich, dass du statt direkt über eine Entity zuerst zu einer Device navigieren musst. Das ist aber ohne Details etwas schwierig zu beurteilen.
3.: Was steht als Error in den Logs, wenn du die Automation triggerst?
4.: In meinen YAML Configurations steht immer eine Entity_ID statt der Entity selbst. Auch sind dort Einrueckungen. Deshalb die Frage: Wo genau definierst du denn deine Automation?
 
Danke erst mal für deine Antwort!
zu 1. Ich habe mit der UI angefangen und letztlich nur den Haken bei Snapshot gestzt und dann die oben genannte Entität ausgewählt. So läuft es auch. Ich möchte jedoch nicht den aktuellen Ist-Zustand festhalten, sondern einen Wert der von mir manipulierbar ist.
zu 2. ich denke schon. ist eine gewöhnliche Zahlenwert-Eingabe per Helfer erstellt.
zu 3. kein Error
zu 4. das ist mein Problem und meine Unerfahrenheit mit HA. Bis zur input_number-Entität spuckt das der YAML-Editor der UI-Oberfläche aus.

Ich möchte vom ioBroker zu HA wechseln. Im ioB habe ich mir eine Heizungssteuerung per JavaScript gebastelt. Ich habe dort eine zeitliche gesteuerte Heizungsregelung mit Fenstersteuerung für jeden Raum programmiert.
  • mehrere Zeitintervalle
  • Heizungs Aus bei geöfnneten Fenster
  • merken der letzten aktuellen Soll-Tempertur des Raums (falls die Soll-Temperatur verändert wurde und ich dann nur kurz mal das Fenster geöffnet habe)
  • wenn das geöffnete Fenster in einen neuen Zeitintervall gestoßen ist, sollte aber der neue programmierte Heizwert übernommen werden
In aller Kürze und ich hoffe, man kann sich das vorstellen.

Ich versuche gerade genau das in HA umzusetzten und habe dabei besagte Schwierigkeiten.
Bisher habe ich mir für jeden Raum einen Zeitplan gesetzt, so wie ich ihn beim ioB hatte und jedem Zeitintervall habe ich einen Temperatur-Wert verpasst, der dann per Template den gewünschten Wert dem Thermostat vermittelt. Das klappt auch. Ich habe nur gerade keine Lösung, wie ich den Intervall-Wechsel bei geöffneten Fenster hinbekomme.
Vielleicht denk ich aber auch zu kompliziert und es gibt für mein Szenario auch eine bessere Lösung.
 
Hallo, verwende ein Skript mit einem hinzugefügten Feld als Variable.
Hier ein Beispiel (geht hier zwar um Texte zur Sprachausgabe, aber das Prinzip ist gleich)
Das Skript ruftst du dann in der Automation auf.
 
  • Gefällt mir
Reaktionen: beuldi
@beuldi Konkret kann ich dein Problem leider nicht lösen, zumindest nicht, ohne mir dein gesamtes System anschauen zu können, ist ein sehr komplexer Wunsch. Grundsätzlich solltest du aber in das Thema "Templating" schauen.

Wie oben erwähnt musst du auf jeden Fall statt mit der Entity, mit der zugehörigen entity_id arbeiten. Dann musst du im "data" Tag per Templating mit dem Befehl "state_attr" die Value setzen, die du haben möchtest.

Ich habe aus dem Homeassistant Forum folgendes Beispiel zusammengesucht:

Code:
service: input_number.set_value
target:
  entity_id: input_number.wh_master_setpoint
data:
    value: "{{ state_attr('climate.water_heater_master_local_water_heater_master_local','temperature') }}"
 
so, habe es vorerst gelöst. und zwar habe ich ganz klassisch eine input_number Entität gesetzt, welche als dynamischer Speicher für die Soll-Temperatur dient. Die Szene ist dabei raus geflogen.
Das Ganze ist jetzt nicht wirklich smart, aber es funktioniert erst mal wie gewünscht.

@ohmsl Trotzdem Danke für den Denkanstoß generell es anders zu lösen. Werde mich dem Thema Scripte aber trotzdem widmen. Schön, das man auch so Funktionen einbinden kann.
 
Zurück
Oben