Rechnen in Automationen - Wert einer Entität ändern

Hallo liebes Forum,

ich wende mich mit einer Frage an euch, die ich leider so noch nicht beantwortet gefunden habe, weder in YouTube, noch per Google, auch nicht hier im Forum.
Was ich aber gefunden habe, sind andere mit dem gleichen Problem ohne Lösung, z.B. hier:

Ich möchte das Problem etwas allgemeiner formulieren:
Ich möchte, in Abhändigkeit von unterschiedlichen Eingangsgrößen eine Veränderung an einem Wert einer Entität vornehmen. In meinem Fall handelt es sich um den Ladestrom für mein E-Auto, den ich unter bestimmten Bedingungen um 1 erhöhen oder senken möchte.
Die Automation funktioniert testweise, wenn ich einen Helfer (input_number.soeicher_ladestrom) verwende und diesen wie folgt erhöhe oder senke:

 service: input_number.increment
 metadata: {}
 data: {}
 target:
         entity_id: input_number.speicher_ladestrom

Ersetze ich den Helfer jedoch durch die Entität, dann klappt das leider nicht mehr.
Prinzipiell könnte man sich auch vorstellen, das Ganze einfach als Rechnung zu schreiben:

 service: number.set_value
 metadata: {}
 data:
   value: number.homeassistant_go_echarger_255073_amp + 1
 target:
   entity_id: number.homeassistant_go_echarger_255073_amp

Aber das funktioniert eben leider nicht.

Daher die allgemeine Frage:
Kann man in Automationen rechnen? Wenn ja, welche Bedingungen müssen erfüllt sein?
Gibt es ein Beispiel, losgelöst von bestimmten Entitäten, das dieses Problem erklärt?

Vielen Dank fürs Lesen
Flo

:crayon:by HarryP: Post formatiert

Ist im Log bei deinem unteren Beispiel ein Fehler? Vielleicht ein | float ergänzen

Hallo Manu,

vielen Dank für deine Antwort.
Ja, es gibt Hinweise darauf, dass ein “Float” verwendet werden soll, aber leider haben folgenden Varianten auch nichts gebracht, wobei da freilich die Syntax auch falsch sein kann:

{{ float{number.home.... + 1 }}}
{{ number.home.... + 1 | float }}

Prinzipiell sollte aber auch mit integer zu rechnen sein.
Daher hatte ich ja auch versucht die Frage möglichst allgemein zu stellen:
Kann man überhaupt in Automationen rechnen?
Wenn ja, was muss “erfüllt” sein?

Danke und Grüße
Florian

Ich würde es mal so versuchen (ungetestet)

service: number.set_value
 metadata: {}
 data:
   value: "{{ states('number.homeassistant_go_echarger_255073_amp') | float(0) + 1 }}"
 target:
   entity_id: number.homeassistant_go_echarger_255073_amp

Hallo Maxe,

vielen Dank, das funktioniert.
Ich habe es aber noch nicht 100% verstanden, warum es funktioniert.
Mit states frage ich den Status/Wert der Entität ab und weise dann mit | float(0) den Datentyp zu, so dass ich eine numerische Operation durchführen kann?

Warum funktioniert service: input_number.increment nicht mit einem Entitätswert, sondern nur mit dem Helfer?

Danke und Grüße
Flo

P.S: erste Frage beantwortet: - ja! In Automatisierungen kann man rechnen

Sollte eigentlich funktionieren

service: input_number.increment
target:
  entity_id: input_number.speicher_ladestrom
data: {}

Welche Schrittgröße hat der Nummern-Helfer denn? Increment erhöht immer nur um einen Schritt.

Mit dem Nummern-Helfer funktioniert das.

Aber der Hinweis mit dem Increment ist super, weil das wahrscheinlich die Ursache dafür ist, dass es mit

number.homeassistant_go_echarger_255073_amp

Nicht funktioniert. Wahrscheinlich ist das Increment <> 1

Das Problem sind die verschiedenen entitis.
Mit input_number.increment kannst du auch nur einen input_number.xyz bearbeiten.
Einer vom Typ number funktioniert hier nicht.

1 „Gefällt mir“