Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Problem: state.expire

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Problem: state.expire

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 last edited by paul53

      Habe einige Tests mit state.expire durchgeführt und festgestellt:

      • Bei Ablauf von "expire" (Zustand wird gelöscht) erfolgt kein Trigger, es kann also nicht darauf reagiert werden
      • Im Trigger liefert dp.state.expire immer undefined
      • getState(id).expire liefert true bei aktiviertem "expire". Zu erwarten wäre eine Zahl (s).
      • Mit setState(id, {val: false, ack: true, expire: 10}) kann "expire" gesetzt werden und 10 s später ist der Zustand nicht mehr vorhanden
      • Mit setState(id, false, true) wird "expire" gelöscht, der Zustand bleibt erhalten

      Ist das alles so gewollt ?

      apollon77 1 Reply Last reply Reply Quote 0
      • apollon77
        apollon77 @paul53 last edited by

        @paul53 Das der JavaScript Adapter kein "trigger" bei einem expire Ablauf macht ist nicht korrekt und dazu gibts schon ein Issue wenn ich recht erinnere. Ich hab aber den grund noch nicht gefunden 😞 An sich sollte der Code das nicht nicht tun 😞

        Das Expire gehört nicht wirklich zum State und daher ist da auch kein Wert mehr. Am Ende ist es ein Timer zum State-Ablauf der Startet sobald der State gesetzt wird.
        Die File DB "merkt" sich im State auch das expire Flag (bzw das es expired) und daher kannst Du es auslesen. Mit einer Redis DB läuft der expre Timer im Redis und du hast zB das "expire" Flag nicht.

        Ein neu gesetzter Wert ohne Expire beendet den Timer quasi und setzt den Wert ohne expire.

        theknut 1 Reply Last reply Reply Quote 0
        • theknut
          theknut @apollon77 last edited by

          @apollon77 Gibt es hier schon ein Update bzgl. kein Trigger bei expire?
          Ich habe zwei Probleme:

          • weiterhin kein Trigger
          • Wenn das Expire auf einen Aliasstate mit Write Converter geht, wird ihm scheinbar einfach hintenrum der State entzogen, ohne dass der Converter aufgerufen wird. Demnach ist dann der State null und nicht wie bei val ? "on" : "off" zu erwarten off.

          Meine Überlegung war nämlich diese: Ich habe ein Thermostat aus Temperatursensor und Shelly realisiert. Leider hapert die Verbindung zum Temperatursensor manchmal etwas. Dann bleibt die Heizung ewig an, weil die Zieltemperatur nicht erreicht ist. Daher wollte ich die Heizung mit Expire 15 Minuten setzen, das heißt, wenn bis dahin kein neuer Wert kam, dann geht die Heizung wieder aus. Normalerweise kommt eine neuer Wert nach 5 Minuten und sollte somit das Expire zurücksetzen. Das ist quasi eine Art Totmannschalter. Leider komme ich aber nicht in den Trigger, dass der Wert auf null gesetzt wurde. Das wäre mein Workaround für den fehlenden Converterdurchlauf gewesen.

          arteck apollon77 2 Replies Last reply Reply Quote 0
          • arteck
            arteck Developer Most Active @theknut last edited by

            @theknut das sind 3 Zeilen code ..

            theknut 1 Reply Last reply Reply Quote 0
            • theknut
              theknut @arteck last edited by

              @arteck Das ist schon klar, es geht nur das Problem nicht mit mehr Workarounds zu überdecken, sondern versuchen es zu fixen. Ich stelle mich gerne zur Verfügung, wenn mir jemand sagt wo der Code ist und wo ich schauen müsste. Schneller würde es sicherlich gehen, wenn es jemand macht der bereits mit dem Thema vertraut ist.

              1 Reply Last reply Reply Quote 0
              • apollon77
                apollon77 @theknut last edited by

                @theknut Die interessamnte frage ist für mich: Warum hat der state nen expire überhaupt? Wenn expire trigger bei alias nucht tun dann wäre das ein js-controller issue wert- Müsste man sich ansehen. An sich sollte das "null" annopunced werden .. aber halt das ... und ja das ist kein state value=null sondern "kein state".

                1 Reply Last reply Reply Quote 2
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate
                FAQ Cloud / IOT
                HowTo: Node.js-Update
                HowTo: Backup/Restore
                Downloads
                BLOG

                941
                Online

                32.0k
                Users

                80.5k
                Topics

                1.3m
                Posts

                expire
                4
                6
                572
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo