Ankündigung

Einklappen
Keine Ankündigung bisher.

Feature Request - Item Methode ".update()"

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

    Feature Request - Item Methode ".update()"

    Hi,

    Als langjähriger Smarthome und später SamrthomNG Nutzer und passiver Forum Leser möchte ich erst mal danke sagen. Das Programm arbeitet immer zuverlässig und damit "rumzuspielen" macht echt Spaß .

    Zum Feature Request:
    In eval oder verwandten Statements hatte ich öfter das Problem, dass ich auf ein Item zurüggreifen möchte welches vorher neu berechnet werden müßte. Wenn die Items eine Standartmethode ".update()" hätten, welche den neuen Wert liefert, könnte man das "on th fly" erledigen.
    Das lässt sich sicher durch geschickten Einsatz der Trigger auch anders lösen aber ich glaube dieser Ansatz wäre oft intuitiver und auch leichter lesbar.

    Trivialbeispiel 1:
    Code:
    m_heute: # Superkomplizierte oder unübersichtliche Zwischenrechnung
        type: num
        eval: shtime.time_since(shtime.today(), 'im')
    
    verbrauch:
        type: num
        database: init
        tag:
            type: num
            database: init
            eval: sh.verbrauch.db('max', '2d', str(sh.m_heute.update()+24*60) + 'i') - sh.verbrauch.db('max', '1d', str(sh.m_heute()) + 'i')
            crontab: 0 0 * * = 1
    Was meint ihr?

    Gruß
    Sascha
    Zuletzt geändert von SaschaG; 06.01.2022, 13:26.

    #2
    Das hier macht so ziemlich genau was du brauchst - mit dem Vorteil, dass du den "eval Ausdruck" auch noch wie Logiken jederzeit ändern und neu laden kannst..
    https://www.smarthomeng.de/user/refe...functions.html

    Dein finales eval würde dann so aussehen:

    Code:
    eval: sh.verbrauch.db('max', '2d', str(uf.komplizertesZeug.superkomplizierteZwischenrechnung()+24*60) + 'i') - sh.verbrauch.db('max', '1d', str(sh.m_heute()) + 'i')

    Kommentar


      #3
      Hi,

      Feine Sache. Kannte ich noch gar nicht.

      Danke und Gruß
      Sascha

      Kommentar

      Lädt...
      X