Ankündigung

Einklappen

Hinweis

Die Forenregeln wurden überarbeitet (Stand 7.11.22). Sie sind ab sofort verbindlich. Wir bitten um Beachtung.
Mehr anzeigen
Weniger anzeigen

item - nach Zeit x Wert schreiben

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

    item - nach Zeit x Wert schreiben

    Hallo,

    ich habe ein Item, welches zyklisch durch "jsonread" geändert wird. Wenn allerdings kein treffendes Json von der Schnittstelle mehr retourniert wird, bleibt das Item (Type Num) logischerweise auf dem letzten Wert.

    Ist es möglich über eval folgendes zu realisieren: Wenn das Item seit x Sekunden nicht mehr geändert wurde, setze es zurück auf leer oder null?

    Besten Dank.
    Zuletzt geändert von stoner1801; 21.11.2022, 13:17.

    #2
    Mir fallen zwei Ansätze ein (es gibt bestimmt noch mehr):

    1. Ansatz
    Eine Logik erstellen, die periodisch getriggert wird. in der Logik das alter des Itemwertes abfragen, und falls der Wert größer x Sekunden ist, das Item entleeren.

    Code:
        if sh.mytree.myitem.property.last_change_age > x
            sh.mytree.myitem("")
    FÜr x musst Du natürlich den Sekunden Wert einsetzen.


    2. Ansatz
    Nach der gleichen Idee kann man ein Hilfsitem erstellen, welches regelmäßig getriggert wird und dan per on_change Attribut das eigentliche Item bei überschreiten von x Sekunden entleert.
    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    Kommentar


      #3
      Zitat von stoner1801 Beitrag anzeigen
      Ist es möglich über eval folgendes zu realisieren: Wenn das Item seit x Sekunden nicht mehr geändert wurde, setze es zurück auf leer oder null?
      3. Ansatz:

      Du kannst das Item mit 'autotimer' nach einer Zeit (20 min im Beispiel unten) auf 0 setzen. Der autotimer beginnt immer wieder neu, wenn das Item getriggert wird.

      Code:
      item:
          type: num
          autotimer: 20m = 0
      Ist das Item also (im Beispiel) 20min nicht getriggert worden, wird es auf Null gesetzt.
      Zuletzt geändert von Msinn; 21.11.2022, 11:22. Grund: Fehlende eckige Klammer beim QUOTE ergänzt

      Kommentar


        #4
        Vielen Dank für die Infos.

        .h. der Autotimer beginnt bei jedem Change neu zu laufen?

        Kommentar


          #5
          Zitat von stoner1801 Beitrag anzeigen
          der Autotimer beginnt bei jedem Change neu zu laufen?
          So ist es.

          Siehe hier: https://www.smarthomeng.de/user/refe...autotimer.html

          Kommentar


            #6
            Ich kenne die Interna nicht gut genug, und auf "kleinen" Installationen dürfte das völlig problemlos sein.

            Bei den hier schon mehrfach thematisierten Problemen mit zu vielen Threads (Schedulern?) weiß ich nicht, ob autotimer das Problem nicht noch anheizen.

            Kommentar


              #7
              Wenn Du nicht zig solche Items (die auch noch gleichzeitig getriggert werden) hast, sollte das kein Problem sein. Falls Du hunderte solcher Items hast, kann eine Logik sinnvoll sein in der Du alle Items abarbeitest. Dann hast Du nur einen Schefuler Worker-Tread erzeugt/belegt.
              Viele Grüße
              Martin

              There is no cloud. It's only someone else's computer.

              Kommentar


                #8
                In meinem Fall betrifft das 6 Items, diese werden allerdings gleichzeitig getriggert. Wäre es schöner, dass über eine Logik zu abzubilden?

                Kommentar


                  #9
                  6 Items sind überhaupt kein Problem. Mach es so, wie es Dir am liebsten ist.

                  Falls Du an den Sttings ab und zu was anpassen musst, könnte eine Logik interessant sein, weil Du damit das Verhalten anpassen kannst ohne SmartHomeNG neu zu starten. Bei den beiden anderen Varianten (autotimer und on_change) musst Du dazu die Item Definition ändern, was nur wirksam wird, wenn Du SmartHomeNG neu startest.
                  Viele Grüße
                  Martin

                  There is no cloud. It's only someone else's computer.

                  Kommentar

                  Lädt...
                  X