Timestamp für Tibber "min_price" erzeugen

Hallo Zusammen,

ich möchte Simons HomeConnect Spühlmaschinen Automation nachbauen allerdings möchte ich die Startzeit auf die Zeit des günstigsten Strompreis des Tages setzten.
Ich kann mit der Tibber integration zwar den "min_Price des Tages Anzeigen lassen, jedoch bekomm ich es nicht hin mir einen Timestamp mitgeben zu lassen.
Ich hab z.B. folgenden Graphen mit Strompreis und Datum + Uhrzeit. Da muss ich doch irgendwie an das Datum + Uhrzeit des min_Price kommen können?

image
image

Nachtrag:
Ich bin derweil ein wenig weiter gekommen, allerdings komme ich nicht an die Werte sonder bekomme immer ein Unbekannt. Bin noch Anfänger beim selber Coden und hab mit ChatGPT etwas “gebaut” :smiley: daher weis ich nicht genau wo der Fehler liegt.
Hier mein Template:

    # Tibber Datum mit niedrigstem Preis
      - name: "Niedrigster Strompreiszeitpunkt Heute"
        state: >
          {% set prices = state_attr('sensor.tibber_prices', 'today') %}
          {% set lowest_price = None %}
          {% set lowest_price_time = None %}
          {% for price_info in prices %}
            {% if lowest_price is none or price_info.total < lowest_price %}
              {% set lowest_price = price_info.total %}
              {% set lowest_price_time = price_info.startsAt %}
            {% endif %}
          {% endfor %}
          {{ lowest_price_time if lowest_price_time is not none else 'unbekannt' }}
        unit_of_measurement: 'Time'

Und hier wie die tibber_prices aussieht:

Kann das damit zusammenhängen, das immer erst um ca. 13 Uhr die Preise aktualisiert werden und “tibber_prices” nur zustandsänderungen Abfragt?

image

:crayon:by HarryP: Zusammenführung Mehrfachpost

Hallo !

Ich habe mir folgenden sensor gebaut:

  - sensor:
    # tdminprice
      - name: tdminprice
        unique_id: "tdminprice"
        unit_of_measurement: 'EUR'
        state: >-
            {{ ((float(states('sensor.electricity_price_maushaus'))) - (float(state_attr('sensor.electricity_price_maushaus' , 'min_price')))) | round(3) }}+

Ist aktueller Preis - min. Preis
Wenn der gegen 0 geht ist der min.Preis gerade erreicht und Du kannst das als Trigger nehmen

Gruß
Speedy

:crayon:by HarryP: Codezeilen formatiert

1 „Gefällt mir“

Ja gut, das ist natürlich einfacher mit “Spühmaschine an” als Bedingung mit deinem trigger. :thinking:
Dann läuft halt jeden Tag der Trigger und schaut ob die Spühlmaschine auf “an” steht :smiley:

Ich lass mein template mal bis zum nächsten Strompreisupdate drin, vllt bekomm ich ja dann mein TimeStamp :smiley:
Ansonsten wird es deine Lösung

Und hier die Lösung. Sucht in der Liste des Tibber Preis Sensors nach dem günstigstens Strompreis in der Zukunft :grin::

{% set aktuelles_datum = now() %}
{% set today_prices = state_attr('sensor.tibber_prices', 'today') %}
{% set tomorrow_prices = state_attr('sensor.tibber_prices', 'tomorrow') %}
{% set all_prices = today_prices + tomorrow_prices %}
{% set kleinste_total = namespace(wert=None, datum=None) %}

{% for eintrag in all_prices %}
  {% if as_timestamp(eintrag.startsAt) > aktuelles_datum.timestamp() %}
    {% if kleinste_total.wert is none or eintrag.total < kleinste_total.wert %}
      {% set kleinste_total.wert = eintrag.total %}
      {% set kleinste_total.datum = eintrag.startsAt %}
    {% endif %}
  {% endif %}
{% endfor %}
{{ (kleinste_total.datum, kleinste_total.wert) }}