Ankündigung

Einklappen
Keine Ankündigung bisher.

Höchste bisher gemessene Temperatur des aktuellen Tages

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

  • kex
    antwortet
    OK, crontab war das richtige Stichwort. Ich dachte bisher immer, dass das nur für das Triggern von logiken funktioniert, aber jetzt hab ich gelernt, dass das wohl auch die Auswertung von Items triggert.

    Jetzt stehe ich vor dem nächsten Problem: Das Item wie ich es in meinem vorherigen Post beschrieben hatte funktioniert leider nicht.
    Anscheinend enthält value im eval Ausdruck den Wert von Wetterstation.Temperatur.Aktuell und nicht mehr den alten Wert von Wetterstation.Temperatur.Maximum_Heute

    deshalb hab ich das Item wie folgt angepasst (Zugriff auf den letzen Wert des Items Maximum_Heute über die Property last_value:

    Code:
    Wetterstation:
        Temperatur:
            Aktuell:
                type: num
                knx_dpt: 9
                visu_acl: ro
                knx_init: 1/2/3
                database: 'yes'
            Maximum_Heute:
                type: num
                visu_acl: ro
                # 99.9 wird als "Magic Number" für den Reset verwendet. Diese Temperatur sollte in der Praxis nie vorkommen.
                eval: sh...Aktuell() if value == 99.9 or float(sh..self.property.last_value()) < sh...Aktuell() else float(sh..self.property.last_value())
                eval_trigger: ..Aktuell
                crontab:
                 - 0 3 * * = 99.9
                 - init = 99.9
    Beim Starten von smarthome steht dann aber folgende Fehlermeldung im Log

    Code:
    2020-05-20  17:24:39 WARNING  lib.item            Item Wetterstation.Temperatur.Maximum_Heute: problem evaluating sh.Wetterstation.Temperatur.Aktuell() if value == 99.0 or float(sh.Wetterstation.Temperatur.Maximum_Heute.property.last_value()) < sh.Garten.Wetterstation.Temperatur.Aktuell() else float(sh..self.property.last_value()): 'int' object is not callable
    Ich hab gedacht es ist vielleicht ein cast problem, da ja laut Doku last_value vom Typ string ist. Deshalb hab ich mal den cast nach float drum rum gebaut. Aber das Ändert gar nichts.
    Eine Internetrecherche hat ergeben, dass Bei Fehlern der Art 'int' object is not callable in der Regel eine methode den selben Namen hat wie eine Variable. Aber leider reichen meine Python-Skills nicht aus, um dahinterzusteigen was ich falsch mache.
    Zuletzt geändert von kex; 20.05.2020, 17:08.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Check mal crontab in der Doku

    Einen Kommentar schreiben:


  • kex
    hat ein Thema erstellt Höchste bisher gemessene Temperatur des aktuellen Tages.

    Höchste bisher gemessene Temperatur des aktuellen Tages

    Hallo zusammen,

    ich versuchte gerade ein Item zu erstellen, dass die höchste gemessene Temperatur des akteullen Tages enthält. Immer zu einer bestimmten Uhrzeit (z.B. 3 Uhr Nachts) soll der Wert wieder auf die aktuelle Temperatur zurückgesetzt werden.

    Das geht sicher über eine Logik. Das würde ich vermutlich auch irgendwie hinbekommen. Aber ich kann mir vorstellen, dass das auch mit einem einfachen eval und mit Hilfe des database plugins einfacher gehen müsste.

    Mein Item sieht bisher in etwa so aus:
    Code:
    Wetterstation:
        Temperatur:
            Aktuell:
                type: num
                visu_acl: ro
                database: 'yes'
            Maximum_Heute:
                type: num
                visu_acl: ro
                eval_trigger: ..Aktuell
                eval: value if value > sh...Aktuell() else sh...Aktuell()
    Der Code ist bisher noch nicht getestet, da ich nicht weiss, wie ich das mit dem Zurücksetzen zu einer bestimmten Uhrzeit hinbkomme.
    Kann mir da jemand einen Tipp geben?

Lädt...
X