Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Timeout Logikfehler?

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    Timeout Logikfehler?

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

      Hallo. Ich komme nicht weiter.
      Ich habe folgendes Script: wenn bestimmte Luftfeuchtigkeit herscht, soll die Lüftung reduziert werden, was durch den Aktor auf "wahr" geschieht. Wenn die Bedingungen nicht mehr erfüllt werden, soll als Hysterese eine Stunde Nachlaufzeit (hier testweise 10min) zählen, nach dem dann wieder auf falsch gestellt werden soll.

      Das habe ich ursprünglich gemacht mit wenn Bedingung stimmt dann mache Aktor auf Wahr und setze direkt den Timer. Problem hierbei: Sollte während der Timeout läuft iobroker z.B. abstürzen beendet auch der Timer. Wenn währenddessen auch noch die Dann Bedingungen wegfallen, geht der Aktor niemals auf falsch, sondern erst wenn wieder die Dann Bedingung eintrifft.

      blockly.jpg

      Nun habe ich es versucht zu umgehen, aber ich bekomme es einfach nicht hin. Es soll verhindert werden, dass sich ständige Timeouts aufschaukeln, es soll aber dafür gesorgt werden, dass der Aktor auf jeden falsch auf Falsch springen kann, und eine Hysterese. Könnt ihr mir einen Wink mit dem Zaunpfahl geben, wie ich verfahren soll? Ich verzweifel 😕
      Screenshot 2022-03-07 211121.jpg

      Vielen Vielen Dank

      P.S. Wie ist dass wenn Bedingung = wahr dann mache aktor auf wahr ansonsten auf falsch mit Verzögerung.

      Wenn danach wieder auf Wahr gestellt wird, wird dann die vorherige Verzögerung beendet oder ist z.B. Verzögerung auf 10min, nach 2 min wird auf wahr gestellt und bleibt theoretisch noch 50min auf wahr. Da der Timer aber noch 8min hat, setzt er dann nach 8 min auf falsch vom vorherigen 10min Timer?

      Cinimod 1 Reply Last reply Reply Quote 0
      • Cinimod
        Cinimod Most Active @maduuto last edited by Cinimod

        @maduuto

        Du hast viele Temeperaturfühler, und zwei Geräte die darauf reagieren soll, wenn ich das richtig verstanden habe.

        Kann denn aber nicht auch einer eine zu hohe Luftfeuchtigkeit melden während ein anderer eine zu niedrige meldet ? Was soll der Aktor dann tun ?

        Der untere Bereich deines oberen Skript ist auch ziemlich unverständlich, ist die Luftfeuchtigkeit nun zu niedrig unter 32 oder unter 45 ?

        Vorschlag:

        Bildschirmfoto 2022-03-09 um 11.19.48.png

        paul53 maduuto 2 Replies Last reply Reply Quote 0
        • paul53
          paul53 @Cinimod last edited by paul53

          @cinimod sagte: Vorschlag:

          Funktioniert leider nicht, da bei Feuchtigkeit unter 60 mehrere Timer gestartet werden, die sich nicht mehr stoppen lassen.

          Gegenvorschlag:

          Bild_2022-03-09_125615.png

          Das ließe sich analog um minHum erweitern.

          Bild_2022-03-09_130903.png

          unten:

          Bild_2022-03-09_131426.png

          EDIT: Welche Funktion haben die Datenpunkte "Ventilation_2" und "Ventilation_4"?

          Cinimod maduuto 2 Replies Last reply Reply Quote 0
          • Cinimod
            Cinimod Most Active @paul53 last edited by Cinimod

            @paul53 sagte in Timeout Logikfehler?:

            @cinimod sagte: Vorschlag:

            Funktioniert leider nicht, da bei Feuchtigkeit unter 60 mehrere Timer gestartet werden, die sich nicht mehr stoppen lassen.

            Oh ja stimmt, ziehe meinen Vorschlag zurück 😂 So einfach war es dann wohl doch nicht

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

              @paul53 sorry dass ich mich so spät melde, viel um die Ohren. Danke für eure Beiträge. Ventilation_2 sorgt dafür dass die Lüftung per externem Eingang reduziert wird, Ventilation_4 sorgt dafür dass die Lüftung sich auf Intensivlüftung stellt.

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

                @cinimod genau so war es in meiner Logik. Die Lüftung soll reduziert werden, aber nur wenn mindestens ein Raum, egal welcher, unter 32 % ist, jedoch nicht reduzieren, wenn irgendein Raum über 45 ist (im meisten Fall das Bad nach dem Duschen).

                maduuto paul53 2 Replies Last reply Reply Quote 0
                • maduuto
                  maduuto @maduuto last edited by

                  Lässt sich das nicht einfach Lösen? Im Grunde geht es mir nur um das Problem, dass bei einem Neustart, wenn der Timeout gerade läuft, der Aktor nie ausgeschaltet wird, wenn nach dem Neustart die Aktivierungsbedingungen nicht mehr passen. Aber ich schau mir gleich mal deinen Vorschlag an . Danke dafür 🙂

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

                    @maduuto sagte: Ventilation_2 sorgt dafür dass die Lüftung per externem Eingang reduziert wird, Ventilation_4 sorgt dafür dass die Lüftung sich auf Intensivlüftung stellt.

                    Was passiert, wenn beide auf false oder beide auf true sind?

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

                      @paul53 wenn beide auf falsch sind dann macht die Lüftung ihre Standardlüftung.
                      Wenn beide auf wahr sind nimmt die Lüftung meine ich nur das erste Signal an, sprich was zuerst eingeschaltet worden ist.

                      Allgemein habe ich mein Problem aber bei mehreren Skripten. Mit Timeout = 15min wird z.B. bei einer Dann Bedingung eine Heizung eingeschaltet. Wenn währenddessen ich aber ein Neustart mache und die Einschaltbedingung nicht erfüllt wird, bleibt die Heizung ein, da bei "sonst" ja nichts ist. Wie kann man das allgemein umgehen?

                      Kann ich nicht einfach wenn X = ja dann schalte aktor ein, wenn x= nein dann schalte aktor aus mit Verzögerung? Was wäre, wenn die Bedingung innerhalb der Verzögerung wieder erfüllt ist? Löscht sich dann der Ausschalttimer im Aktor oder schaltet das Gerät nach der REstzeit einmal kurz aus und wieder ein?

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

                        @maduuto sagte: wenn X = ja dann schalte aktor ein, wenn x= nein dann schalte aktor aus mit Verzögerung? Was wäre, wenn die Bedingung innerhalb der Verzögerung wieder erfüllt ist? Löscht sich dann der Ausschalttimer im Aktor

                        Der Auschalt-Timer wird nur gelöscht, wenn der Haken bei "löschen falls läuft" gesetzt ist. Ich bevorzuge die Variante mit "Ausführen timeout" und "stop timeout":

                        Bild_2022-04-03_164508.png

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

                          @paul53 würde hier in dem Fall leider nicht gut funktionieren, da wenn die werte nicht mehr passen, der Sonst bereich aktiviert wird. Wenn das jedes mal passiert, startet ständig ein Timeout, oder?

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

                            @maduuto sagte: Wenn das jedes mal passiert, startet ständig ein Timeout, oder?

                            Ja, deshalb habe ich hier eine UND-Verknüpfung mit "nicht timeout" eingebaut.

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

                              @maduuto sagte: Die Lüftung soll reduziert werden, aber nur wenn mindestens ein Raum, egal welcher, unter 32 % ist, jedoch nicht reduzieren, wenn irgendein Raum über 45 ist

                              Vorschlag:

                              Bild_2022-04-03_171922.png

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              735
                              Online

                              32.1k
                              Users

                              80.6k
                              Topics

                              1.3m
                              Posts

                              3
                              13
                              606
                              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