Ankündigung

Einklappen
Keine Ankündigung bisher.

Laufzeitberechnung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Laufzeitberechnung

    Hallo Zusammen.
    Ich steh grad irgendwie aufn Schlauch und komme nicht weiter.

    Ich ermittle die Laufzeit (Jetzt - Inbetriebnahme) und berechne, unter Berücksichtigung der Ersparnis eine Amortisationszeit. Soweit so gut.

    Wie kann ich den template sensor zu einer tägliche Aktualisierung überreden? Derzeit gehts nur via Neustart oder manuellen ändern des Sensors inbetriebnahme.

    Screenshot 2025-05-16 082224.png

    Code:
        - name: "Laufzeit"
          state: "{{ (((as_timestamp(now())-states.input_datetime.inbetriebnahme.attributes.timestamp)) | int /60/1440) | round(0) }}"
          unit_of_measurement: "Tage"
          unique_id: "sensor.laufzeit"
        - name: "Amortisation"
          unit_of_measurement: "Tage"
          unique_id: "sensor.amortisation"
          state: >
            {% set vergangene_tage = states('sensor.laufzeit') | float %}
            {% set gesamtkosten = states('input_number.anschaffungskosten') | float %}
            {% set bereits_erspart = states('sensor.ersparnis') | float %}
            {% set noch_zu_tilgen = gesamtkosten - bereits_erspart %}
            {% set tägliche_rate = bereits_erspart / vergangene_tage if vergangene_tage > 0 else 0 %}
            {% if tägliche_rate > 0 %}
              {{ (noch_zu_tilgen / tägliche_rate) | round(0) }}
            {% else %}
              {{ 999999 }}
            {% endif %}​
    Besten Gruß
    norman

    #2
    Einfach sensor.date (tägliche Aktualisierung) oder sensor.time (minütliche Aktualisierung) am Anfang des Templates einer Dummy-Variablen zuweisen. Die Änderung des Inhalts von date bzw. time löst dann die Neuberechnung des Templates aus. Kann man auch gut im Template Checker in den Developer Tools nachvollziehen (da wird rechts unten angezeigt, was alles abonniert ist und das Template triggern würde):

    Code:
    {# minütlich aktualisieren #}
    {% set dummy_var = states('sensor.time') %}
    Code:
    {# täglich aktualisieren #}
    {% set dummy_var = states('sensor.date') %}


    /tom
    Zuletzt geändert von Tom Bombadil; 16.05.2025, 09:42.

    Kommentar


      #3
      Wie buchst du Reparaturen, Wartungen, usw nach?
      Dieser Beitrag enthält keine Spuren von Sarkasmus... ich bin einfach so?!

      Kommentar


        #4
        Hallo Tom.

        Vielen Dank für deine Antwort. Leider tue ich mich schwer das richtig umzusetzen.

        Ich habe nun den "Trigger" eingefügt aber auf dem Dashboard sind die Werte dann nicht verfügbar.

        Im Template-Editor scheint es aber zu gehen:

        Screenshot 2025-05-16 123351.jpg

        Screenshot 2025-05-16 123552.jpg
        Besten Gruß
        norman

        Kommentar


          #5
          Drei Dinge fallen mir auf Anhieb auf:
          • In den Template Editor fügst Du normalerweise nur die Zeilen des Templates ein (deshalb heißt er 'Template Editor'), nicht die komplette Sensordefinition,
          • Zeile 3: Da sind zwei Hochkommas am Zeilenende, was vermutlich dazu führt, dass diese Zeile bei der Abarbeitung einen Fehler schmeisst und nicht ausgeführt wird (und deshalb wird das Update auch nicht getriggert),
          • Die Hochkommas kannst Du im Template komplett weglassen, die bräuchtest Du nur, wenn das ein 'Einzeiler' wäre, der ohne '>' gleich auf 'state:' folgt.
          Code:
          - name: laufzeit
            state: "{{ 'hallo' }}"
          Code:
          - name: laufzeit
            state: >
               {% zeile 1 %}
               {% zeile 2 %}
               {{ 'hallo' }}

          Wenn's dann immer noch nicht geht, bitte mal prüfen, ob der Sensor überhaupt im richtigen Bereich angesiedelt ist:

          Code:
          template:
          
            - sensor:​
          
              -name: laufzeit
               state: >
               [...]
          
              -name: sensor2
               state: >
               [...]
          /tom
          Zuletzt geändert von Tom Bombadil; 16.05.2025, 12:05.

          Kommentar


            #6
            Es waren "nur" die Hochkommas. Besten Dank!
            Besten Gruß
            norman

            Kommentar


              #7
              So, leider hat die Aktualisierung nicht geklappt. Es gab kein sensor.time oder sensor.date in meiner HA Instanz aber eine Fehlermeldung kam beim Template dazu auch nicht. Jedenfalls hab ich nun "uhrzeit und datum" Integration installiert. https://www.home-assistant.io/integrations/time_date/
              Mal abwarten ob es jetzt klappt.

              Zitat von BadSmiley Beitrag anzeigen
              Wie buchst du Reparaturen, Wartungen, usw nach?
              Anfänglich wollte ich dies per Eingabe in ('input_number.anschaffungskosten') mit abbilden. Aber ich werde dazu noch einen weiteren input_number anlegen.


              Besten Gruß
              norman

              Kommentar


                #8
                Danke, ist eine interessante Idee, das in die Visu zu packen.
                Dieser Beitrag enthält keine Spuren von Sarkasmus... ich bin einfach so?!

                Kommentar


                  #9
                  Zitat von noize Beitrag anzeigen
                  Es gab kein sensor.time oder sensor.date in meiner HA Instanz
                  Oooops, mein Fehler - hatte nicht auf dem Schirm, dass die in HA eingebaute Time & Date Integration vielleicht gar nicht aktiviert ist.

                  Nur der Vollständigkeit halber: Das lässt sich ebenfalls schnell in den Developer Tools überprüfen - die folgenden zwei Zeilen sollten rechts ein Ergebnis liefern:
                  Code:
                  {{ states('sensor.time') }}
                  {{ states('sensor.date') }}​
                  /tom

                  Kommentar

                  Lädt...
                  X