Ankündigung

Einklappen
Keine Ankündigung bisher.

Zustandsautomat wird sekündlich getriggert von cycle

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

    [callidomus] Zustandsautomat wird sekündlich getriggert von cycle

    Hi,
    mein Zustandautomat (bin auf STABLE) für die WP wird von cycle sekündlich getriggert obwohl ich gar keinen cycle eingetragen habe.
    jemand eine Idee was das sein kann?
    VG
    Jürgen

    Code:
    2016-12-11 22:46:58,536 [INIT] #########################################################
    2016-12-11 22:46:58,537 [INIT] Zustandsautomat: Waermepumpe
    2016-12-11 22:46:58,538 [INIT] Loglevel: Debug
    2016-12-11 22:46:58,538 [INIT] Kühlt: creating state
    2016-12-11 22:46:58,539 [INIT] Kühlt/enter: condition objects WP.kuehlen => WP.kuehlen
    2016-12-11 22:46:58,540 [INIT] Warmwasserbereitung: creating state
    2016-12-11 22:46:58,541 [INIT] Warmwasserbereitung/enter: condition objects WP.verdichter => WP.verdichter
    2016-12-11 22:46:58,542 [INIT] Warmwasserbereitung/enter: condition objects WP.WW => WP.WW
    2016-12-11 22:46:58,543 [INIT] Heizt: creating state
    2016-12-11 22:46:58,544 [INIT] Heizt/enter: condition objects WP.verdichter => WP.verdichter
    2016-12-11 22:46:58,545 [INIT] Heizt/enter: condition objects WP.WW => WP.WW
    2016-12-11 22:46:58,546 [INIT] Stillstand: creating state
    2016-12-11 22:46:58,547 [INIT] Stillstand/enter-WW: condition objects state => WP.Zustand
    2016-12-11 22:46:58,548 [INIT] Stillstand/enter-WW: condition objects WP.verdichter => WP.verdichter
    2016-12-11 22:46:58,549 [INIT] Stillstand/enter-Heizt: condition objects state => WP.Zustand
    2016-12-11 22:46:58,551 [INIT] Stillstand/enter-Heizt: condition objects WP.verdichter => WP.verdichter
    2016-12-11 22:46:58,552 [INIT] Stillstand/exit: condition objects machine => age
    2016-12-11 22:46:58,554 [INIT] Bereitschaft: creating state
    2016-12-11 22:46:58,555 [INIT] Bereitschaft/enter: condition objects WP.verdichter => WP.verdichter
    2016-12-11 22:46:58,556 [INIT] Using triggers: WP.WW, WP.kuehlen, WP.verdichter
    2016-12-11 22:47:29,014 [INIT] ---------------------------------------------------------
    2016-12-11 22:47:29,015 [INIT] evaluation triggered by init
    2016-12-11 22:47:29,016 [INIT] testing enter conditions of state Kühlt:
        WP.kuehlen:False == 1 => Fail
    2016-12-11 22:47:29,016 [INIT] testing enter conditions of state Warmwasserbereitung:
        WP.verdichter:True == 0 => Fail
    2016-12-11 22:47:29,017 [INIT] testing enter conditions of state Heizt:
        WP.verdichter:True == 0 => Fail
    2016-12-11 22:47:29,018 [INIT] testing enter-WW conditions of state Stillstand:
        WP.Zustand:INIT == Warmwasser => Fail
    2016-12-11 22:47:29,019 [INIT] testing enter-Heizt conditions of state Stillstand:
        WP.Zustand:INIT == Heizt => Fail
    2016-12-11 22:47:29,019 [INIT] testing enter conditions of state Bereitschaft:
        WP.verdichter:True == 1 => Pass
    2016-12-11 22:47:29,022 [Bereitschaft] entering state: Bereitschaft caller: state source: enter
    2016-12-11 22:47:30,021 [Bereitschaft] ---------------------------------------------------------
    2016-12-11 22:47:30,022 [Bereitschaft] evaluation triggered by cycle
    2016-12-11 22:47:30,023 [Bereitschaft] testing enter conditions of state Kühlt:
        WP.kuehlen:False == 1 => Fail
    2016-12-11 22:47:30,023 [Bereitschaft] testing enter conditions of state Warmwasserbereitung:
        WP.verdichter:True == 0 => Fail
    2016-12-11 22:47:30,024 [Bereitschaft] testing enter conditions of state Heizt:
        WP.verdichter:True == 0 => Fail
    2016-12-11 22:47:30,025 [Bereitschaft] testing enter-WW conditions of state Stillstand:
        WP.Zustand:Bereitschaft == Warmwasser => Fail
    2016-12-11 22:47:30,026 [Bereitschaft] testing enter-Heizt conditions of state Stillstand:
        WP.Zustand:Bereitschaft == Heizt => Fail
    2016-12-11 22:47:30,026 [Bereitschaft] testing enter conditions of state Bereitschaft:
        WP.verdichter:True == 1 => Pass
    2016-12-11 22:47:31,006 [Bereitschaft] ---------------------------------------------------------
    2016-12-11 22:47:31,007 [Bereitschaft] evaluation triggered by cycle
    2016-12-11 22:47:31,008 [Bereitschaft] testing enter conditions of state Kühlt:
        WP.kuehlen:False == 1 => Fail
    2016-12-11 22:47:31,008 [Bereitschaft] testing enter conditions of state Warmwasserbereitung:
        WP.verdichter:True == 0 => Fail
    2016-12-11 22:47:31,009 [Bereitschaft] testing enter conditions of state Heizt:
        WP.verdichter:True == 0 => Fail
    2016-12-11 22:47:31,010 [Bereitschaft] testing enter-WW conditions of state Stillstand:
        WP.Zustand:Bereitschaft == Warmwasser => Fail
    2016-12-11 22:47:31,011 [Bereitschaft] testing enter-Heizt conditions of state Stillstand:
        WP.Zustand:Bereitschaft == Heizt => Fail
    2016-12-11 22:47:31,011 [Bereitschaft] testing enter conditions of state Bereitschaft:
        WP.verdichter:True == 1 => Pass
    2016-12-11 22:47:32,051 [Bereitschaft] ---------------------------------------------------------
    2016-12-11 22:47:32,052 [Bereitschaft] evaluation triggered by cycle
    2016-12-11 22:47:32,053 [Bereitschaft] testing enter conditions of state Kühlt:
        WP.kuehlen:False == 1 => Fail
    2016-12-11 22:47:32,053 [Bereitschaft] testing enter conditions of state Warmwasserbereitung:
        WP.verdichter:True == 0 => Fail
    2016-12-11 22:47:32,054 [Bereitschaft] testing enter conditions of state Heizt:
        WP.verdichter:True == 0 => Fail
    2016-12-11 22:47:32,055 [Bereitschaft] testing enter-WW conditions of state Stillstand:
        WP.Zustand:Bereitschaft == Warmwasser => Fail
    2016-12-11 22:47:32,056 [Bereitschaft] testing enter-Heizt conditions of state Stillstand:
        WP.Zustand:Bereitschaft == Heizt => Fail
    2016-12-11 22:47:32,056 [Bereitschaft] testing enter conditions of state Bereitschaft:
        WP.verdichter:True == 1 => Pass
    2016-12-11 22:47:33,016 [Bereitschaft] ---------------------------------------------------------
    2016-12-11 22:47:33,017 [Bereitschaft] evaluation triggered by cycle
    2016-12-11 22:47:33,018 [Bereitschaft] testing enter conditions of state Kühlt:
    Angehängte Dateien
    Zuletzt geändert von heckmannju; 11.12.2016, 23:04.

    #2
    Hallo Jürgen,

    ja, Du vergleichst wahrscheinlich bei irgendeiner Bedingung das Alter von einem Item oder Zustand. Dann muss er sekündlich überprüfen ob das Alter erreicht ist.

    Wenn Du das vermeiden möchtest, dann musst Du der SM sagen wann die Evaluation stattfinden soll (Abhängigkeiten, Timer, Zyklische Evaluierung)

    Bis bald

    Marcus

    Kommentar


      #3
      Hi,
      ja aber das macht der doch nur in einem Zustand Stillstand. Wo ich einfach nach Heizt oder Warmwasser für genau 20min bleiben will.

      Wie sage ich das das er ganau 20 min nach betreten des Zustands raus soll ohne diese polling?

      Stillstand.JPG




      Kommentar


        #4
        Hi Jürgen,

        das hatten wir schon beim Ventilator... Du machst bei Während einen action mit evaluate und wählst als Zeitraum z.B. 300 Sekunden, dann hättest Du max. 5 Minuten Abweichung. Bei kleinerem Zeitraum weniger. Aber falls Du genau 20 Minuten haben willst, musst Du natürlich sekündlich prüfen.

        Andere Alternative: Du startest bei Betreten des Zustandes ein Item mit autotimer, das nach 20 Minuten abläuft und seinerseits die SM triggert.

        Gruß, Waldemar
        OpenKNX www.openknx.de

        Kommentar


          #5
          Zitat von mumpf Beitrag anzeigen
          Andere Alternative: Du startest bei Betreten des Zustandes ein Item mit autotimer, das nach 20 Minuten abläuft und seinerseits die SM triggert.

          Hi,

          in dem Zustand Stillstand ist jetzt diese Zeitgruppe und evaluate drin. Das scheint aber nix zu bringen die Sekündliche Prüfung kann ich ihm nicht abgewöhnen. Nicht mal durch ein setzen der Zyklischen prüfung von aussen. Muss ich das jetzt in jeden Zustand reinschreiben?

          Ich verstehe gerade nicht den unterschied zum Ventilator da hab ich das ja auch nur einmal reingeschreiben und da wird auch nicht sekündlich geprüft wenn ich in einem anderen Zustand drin bin.


          Ich überblicke das zwar noch nicht 100% aber rein Gefühlsmässig halte ich das automatische sekündliche Prüfen für eine Fehler. Wenn sie so global über die SM verläuft. Wäre es nicht besser es mir selber zu überlassen?

          Viele Grüsse
          Jürgen



          Kommentar


            #6
            Hi,

            ich habe auch gerade mal probiert den Zustand Stillstand zu Deaktivieren. Das scheint auch nicht zu gehen. Wenn der Hacken Active nicht gesetzt ist wird der zustand weiter angelegt. Das sollte nicht sein richtig?

            Viele Grüsse
            Jürgen

            Kommentar


              #7
              Guten Morgen Jürgen,

              durch welche Trigger ein Zustandsautomat getriggert wird, gibst Du bei der Automatendefinition an, nicht beim Zustand. Du kannst mit
              • Trigger: die Triggeritems
              • Timer: Bestimmte Zeitpunkte
              • Cycle: wiederholte Aufrufe
              angeben. Wenn Du nichts angibst, bestimmt Marcus selber, wann getriggert wird. Und in Deinem Fall, bei der Abfrage nach dem Alter, kann er nur sekündlich triggern.
              Insofern: Es ist Dir überlassen, wann getriggert wird, Du musst es aber nutzen, sonst wird automatisch getriggert.

              Und zu Deiner 2. Frage: Man kann Zustände deaktivieren, dann werde diese nicht mehr automatisch betreten, da sie nicht evaluiert werden. Da Zustände aber von Außen gesetzt werden können (z.B. über Szenen), werden diese Zustände trotzdem noch angelegt und (im Falle eines Setzen von Außen) auch betreten.
              Ein deaktivieren eines Zustandes verhindert nur das "automatische" Betreten eines Zustandes.

              Gruß, Waldemar
              OpenKNX www.openknx.de

              Kommentar


                #8
                Hi,

                aber in meinem Fall hab ich das schon probiert. Wenn ich die Cycle Zeit auf 30 bzw 60sekunden setzte wird immer noch Sekündlich gepüft wegen der Prüfung auf alter?

                zu 2)
                Dann finde ich das, aktivert oder wenn der hacken nicht gesetzt ist deaktiviert, das Falsche Wort dafür. Wenn ich eine SM deaktiviere kann ich sie doch auch nicht von aussen betreten. Wenn die bedeutung Automatisches Betreten verhinden ist sollte man das so auch nennen.

                Viele Grüsse
                Jürgen
                Zuletzt geändert von heckmannju; 12.12.2016, 08:19.

                Kommentar


                  #9
                  Hi Jürgen,

                  ich hatte das manuelle Eintragen von Triggern nie mit nur cycle ausprobiert, ich hatte immer auch Trigger-Items dabei, und in dem Fall wurden meine SM nie "Fremd-Getriggert". Es gibt ja die Log-Zeile:
                  Code:
                   
                   Using triggers: WP.WW, WP.kuehlen, WP.verdichter
                  Hast Du die auch als Trigger-Item eingetragen? Oder wurden die automatisch ermittelt?

                  callidomus: Sollte das automatische Triggern auch aufhören, wenn man nur cycle als Trigger angibt?

                  Gruß, Waldemar

                  OpenKNX www.openknx.de

                  Kommentar


                    #10
                    Hi Waldemar,

                    ich habe nur cycle eingetragen ich probiere es heute abend mal mit Trigger Items. Kann man von der Zustandengine aus auch einen Timer setzten der sie nach 20min ein mal anwirft?

                    Viele Grüsse
                    Jürgen

                    Kommentar


                      #11
                      Zitat von heckmannju Beitrag anzeigen
                      Kann man von der Zustandengine aus auch einen Timer setzten der sie nach 20min ein mal anwirft?
                      Indirekt: Du hast einen Zustand, der "during;1200;evaluate" macht. Indirekt deswegen, weil das nur passiert, wenn nicht irgendein anderer (davorliegender) Zustand zwischendurch angenommen wird. Aber das ist in den Abläufen, die ich kenne, auch das erwartete Verhalten.

                      Gruß, Waldemar
                      OpenKNX www.openknx.de

                      Kommentar


                        #12
                        Hi,
                        das kann fast nicht sein. Kühlen wird nicht anspringen im Winter. Und die WP ist aus für 20min. Ausser die Uhr in der WP ist ungenau und sie fängt schon nach 19m 50s an wieder zu heizen. Oder ich machen den Strom weg bei der Steuerung.
                        Viele Grüsse
                        Jürgen

                        Kommentar


                          #13
                          Hi,

                          dann würde das ja bei Dir passen. Versuch es doch einfach mal so.

                          Gruß, Waldemar
                          OpenKNX www.openknx.de

                          Kommentar


                            #14
                            Ja so ist es viel besser! vielleicht sollte man mal eine FAQ zum Zustandsautomaten machen. Ich denke solche Internas über die automatismen sind sehr wichtig zu wissen.

                            Hier noch die Lösung

                            in dem Zustand wird jetzt alle 20 Minuten die SM angeworfen. Da dann das Item mindestens 20 Minuten alt sein muss kann der Codeblock verlassen werden. Und der neue Zustand angenommen werden.

                            settings.JPG


                            Viele Grüsse & Danke Jürgen
                            Zuletzt geändert von heckmannju; 12.12.2016, 22:06.

                            Kommentar

                            Lädt...
                            X