Automationen Werte aus Variablen auslesen und setzen

Hallo Zusammen,

mit yaml werde ich aktuell nicht richtig warm. Vielleicht bin ich Dinosaurier oder sowas.

Mein aktuelles Thema: Ich möchte eine Automation haben die mir zu festgelegten Zeiten den Wert eines Sensors in einen Zahlen-Helfer schreibt und auch den Namen der Tankstelle in einen weitern Text-Helfer.

Im konkreten Fall sind das Daten von Tankerkönig, hier soll täglich um 1100 die preiswerteste Tankstelle für Diesel und E10 täglich um 1130 per CallmeBot versandt werden (wird per separater Automation gemacht, ich mag es granular :wink: ).

Und ja ich kann yaml lesen, aber schreiben… :wink: Und auch nicht yaml in Automationen übersetzen.

Naja es müssen noch ein paar Automationen rumdrum (best-Price-Findung und Co). Wäre aber der zweite Schritt.

Gruß Carsten

Hallo.
Also ich kann dir hier keine fertige Lösung präsentieren, aber meines Erachtens braucht du nur 1 Automation (für das Senden über CallMeBot) und 2 Helfer (1 Template und 1 Gruppe) für die Tankstellen und Preise.

  1. Der Tankstellen Sensor (Gruppe): sensor.tankstellen
    Dieser Sensor ermittelt die günstigste Tankstelle, in meinem Fall für E10, aus der Liste der Tankerkönig Entitäten, die du abfragen willst.

  1. Der Template-Sensor: sensor.gunstigste_tankstelle wenn du einen schönen Text für die entsprechende Tankstelle haben möchtest und nicht den Namen der Tankerkönig-Sensoren.
{% if state_attr('sensor.tankstellen', 'min_entity_id') == ('sensor.aral_am_rathausplatz_22_super_e10') %} ARAL Dannstadt: {{ states('sensor.tankstellen') }}€
{% elif state_attr('sensor.tankstellen', 'min_entity_id') == ('sensor.globus_sb_warenhaus_oderstrasse_8c_super_e10') %} GLOBUS: {{ states('sensor.tankstellen') }}€
{% elif state_attr('sensor.tankstellen', 'min_entity_id') == ('sensor.jet_ludwigshafener_str_32_super_e10') %} JET Mutterstadt: {{ states('sensor.tankstellen') }}€
{% elif state_attr('sensor.tankstellen', 'min_entity_id') == ('sensor.supermarkt_tankstelle_oderstr_2_super_e10') %} METRO: {{ states('sensor.tankstellen') }}€
{% else %} Tankcenter Mundenheim: {{ states('sensor.tankstellen') }}€ {% endif %}

Ich lasse mir die günstigste Tankstelle in einem Badge auf dem Hauptdashboard anzeigen.
Den Inhalt kannst du für das Senden über CallMeBot verwenden.

image

CallMeBot hast du schon in Verwendung, oder?

Grüße
Frank

1 „Gefällt mir“

Hallo Frank,

@FrankP danke für Deinen Hinweis, das klappt auf jedenfall für Spritpreise und Co. :slight_smile:

Trotzdem wäre es mir lieber wenn ich den Wert aus einem Sensor in eine Variable/Helfer schreiben kann. Hier habe ich noch ein paar andere Ideen was ich machen möchte :slight_smile: .

Daher wäre es für mich am besten wenn ich den Wert eines Sensors “wegschreiben” kann. Und nicht in eine DB, sondern in einen Helfer (diesen kann ich immer wieder aus dem Hut zaubern).

CallMeBot läuft aktuell bei mir für eine Ping-Überwachung und Hausnotruf für die Schwiegermutter.

Gruß Carsten

Hallo Don_KeyShot,

dann könntest du es so machen, wie ich am Monatsende, wenn die eingespeiste Strommenge in eine Variable übertragen wird.

alias: Stromzählerstand Einspeisung am Monatsende
description: ""
triggers:
  - at: "23:59:55"
    trigger: time
conditions:
  - condition: template
    value_template: |
      {{ (now() + timedelta(days=1)).day == 1 }}
actions:
  - target:
      entity_id: input_number.stromzahler_einspeisung_am_monatsende
    data:
      value: >-
        {{
        states('sensor.tibber_pulse_xyz')
        | float(0) | round(0) }}
    action: input_number.set_value
mode: single

Grüße
Frank

Hallo Frank,

ich habe mal versucht Dein Script für mich anzupassen und das schaut jetzt so aus:

Der Helfer ist erst lumeneingang, Und dann schnapp ich mir den Lumenwert des Sensors. M.E. schreibe ich den dadurch in den Lumenwert.

Was übersehe ich hier?

Gruß Carsten

image

2 Sachen sehe ich sofort

  • ist das wirklich der vollständige Sensorname?
  • States ergibt immer einen String aber Du willst in input_number speichern

Also ich denke, dass der Sensorname/Entität ist:

Keine Sorge um die “kryptische” Nomenklatur :wink: Hilft mir die Dinger wieder zu finden und deren Standort zu ermitteln :slight_smile: . Naja ich gebe zu: Ein wenig Autist steckt in mir… Im diesem Fall ist das ein Sensor im Altbau, der Wohnung Altbau, im Eingangsbereich, dient dem Bedarf Sicherheit und kann PIR (ist auch der zweite seiner Art in den Bereich mit dieser Funktion) :wink:

Wo kann ich ich den vollständigen Sensor-Namen ansonsten sehen?

Mal mit diesen YAML gespielt:

Das einzige was funzte war die direkte Wertzuweisung mit dez

Gruß Carsten

image
beginnt mit dem Wort “sensor”

und vergiß das | float nicht

Kleiner Tipp: Immer vorher den Code in den Entwicklerwerkzeugen → Templates kopieren und schauen ob dort keine Fehler kommen. Und hier im Forum bekommst Du noch eher Hilfe wenn Du die Fehlermeldungen nennst.

Ich kriege keine Fehlermeldung, aber checkte noch nicht das ganze im Entwicklerwerkzeug :slight_smile:

Jetzt gucken :slight_smile: und auch mit sensor als präfix :slight_smile:

Danke und ich gebe Rückmeldung :slight_smile:

Hier würde ich auch schauen wenn Du Befehle suchst
Gehe dann auf “Zum Yaml Modus” und dort siehst

action: input_number.set_value
target:
  entity_id: input_number.1_forum_luftfeuchtigkeit
data:
  value: 22

Mit Aktion ausführen kannst Du testen ob der Wert auch wirklich im Helfer ankommt.
Und wenn es hier klappt, geht es auch in der Automatisation.

:smiling_face_with_three_hearts:

Hatte ich zum glück schon gefunden :slight_smile:

Fummele grade rum :slight_smile:
Der Wert wird zumindest schon einmal in meine Variable geschrieben :slight_smile:

1 „Gefällt mir“