Ankündigung

Einklappen
Keine Ankündigung bisher.

Szenenumschalter tut nicht mehr.

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

    [callidomus] Szenenumschalter tut nicht mehr.

    Hi,
    ich habe einen Zustandsautomat der zwischen Zenen hin und her schaltet. Er reagiert auf eine Taste Szene.weiter immer wenn diese event kommt soll gepüft werden ob umgeschaltet werden soll.

    Jetzt scheint es so das diese Event mehrfach ausgewertet wird. Und mehrfach zwischen den Szenen hin und her geschaltet wird. zum glück tritt nach 3-4 umschaltungen ruhe ein. An den Statemachine und den beteiligten Items habe ich garantiert nix geändert.

    Hat sich den in den letzten Updates irgentwas geändert was dies erklären könnte?

    Viele Grüsse
    Jürgen

    Code:
    2017-04-22 17:47:54,110 [INIT] #########################################################
    2017-04-22 17:47:54,113 [INIT] Zustandsautomat: Szenen-Henry
    2017-04-22 17:47:54,114 [INIT] Loglevel: Debug
    2017-04-22 17:47:54,116 [INIT] Alle: creating state
    2017-04-22 17:47:54,120 [INIT] Alle/enter-GRUPPE: condition objects => Szenen.Henry
    2017-04-22 17:47:54,122 [INIT] Alle/enter-GRUPPE: condition objects => trigger
    2017-04-22 17:47:54,124 [INIT] Deckenlicht2: creating state
    2017-04-22 17:47:54,126 [INIT] Deckenlicht1: creating state
    2017-04-22 17:47:54,129 [INIT] Lesen: creating state
    2017-04-22 17:47:54,131 [INIT] Aus: creating state
    2017-04-22 17:47:54,134 [INIT] Aus/enter-Weiterschalten: condition objects => Szenen.Henry
    2017-04-22 17:47:54,136 [INIT] Aus/enter-Weiterschalten: condition objects => trigger
    2017-04-22 17:47:54,138 [INIT] Using triggers: Szenen.Henry_weiter
    2017-04-22 17:47:54,139 [INIT] Restoring state Aus
    2017-04-22 17:48:25,022 [Aus] entering state: Aus Node: Szenen.Henry
    2017-04-22 21:12:26,625 [Aus] ---------------------------------------------------------
    2017-04-22 21:12:26,626 [Aus] evaluation triggered by Szenen.Henry_weiter
    2017-04-22 21:12:26,626 [Aus] testing enter-GRUPPE conditions of state Alle:
        Szenen.Henry:'Aus' == 'Aus' => Pass
        trigger:'Szenen.Henry_weiter' == 'Szenen.Henry_weiter' => Pass
    2017-04-22 21:12:26,629 [Alle] entering state: Alle Condition: enter-GRUPPE
    2017-04-22 21:12:26,668 [Alle] ---------------------------------------------------------
    2017-04-22 21:12:26,668 [Alle] evaluation triggered by Szenen.Henry_weiter
    2017-04-22 21:12:26,669 [Alle] testing enter-GRUPPE conditions of state Alle:
        Szenen.Henry:'Alle' == 'Aus' => Fail
    2017-04-22 21:12:26,670 [Alle] testing enter-Weiterschalten conditions of state Aus:
        Szenen.Henry:'Alle' == 'Alle' => Pass
        trigger:'Szenen.Henry_weiter' == 'Szenen.Henry_weiter' => Pass
    2017-04-22 21:12:26,673 [Aus] entering state: Aus Condition: enter-Weiterschalten
    2017-04-22 21:12:26,721 [Alle] entering state: Alle Node: Szenen.Henry
    2017-04-22 21:12:26,766 [Alle] ---------------------------------------------------------
    2017-04-22 21:12:26,767 [Alle] evaluation triggered by Szenen.Henry_weiter
    2017-04-22 21:12:26,768 [Alle] testing enter-GRUPPE conditions of state Alle:
        Szenen.Henry:'Alle' == 'Aus' => Fail
    2017-04-22 21:12:26,768 [Alle] testing enter-Weiterschalten conditions of state Aus:
        Szenen.Henry:'Alle' == 'Alle' => Pass
        trigger:'Szenen.Henry_weiter' == 'Szenen.Henry_weiter' => Pass
    2017-04-22 21:12:26,771 [Aus] entering state: Aus Condition: enter-Weiterschalten
    2017-04-22 21:12:26,810 [Alle] entering state: Alle Node: Szenen.Henry
    2017-04-22 21:12:26,909 [Aus] entering state: Aus Node: Szenen.Henry
    2017-04-22 21:12:27,132 [Alle] entering state: Alle Node: Szenen.Henry
    2017-04-22 21:12:27,643 [Aus] entering state: Aus Node: Szenen.Henry
    2017-04-22 21:12:29,976 [Aus] ---------------------------------------------------------
    2017-04-22 21:12:29,977 [Aus] evaluation triggered by Szenen.Henry_weiter
    2017-04-22 21:12:29,977 [Aus] testing enter-GRUPPE conditions of state Alle:
        Szenen.Henry:'Aus' == 'Aus' => Pass
        trigger:'Szenen.Henry_weiter' == 'Szenen.Henry_weiter' => Pass
    2017-04-22 21:12:29,980 [Alle] entering state: Alle Condition: enter-GRUPPE
    2017-04-22 21:12:30,030 [Alle] ---------------------------------------------------------
    2017-04-22 21:12:30,031 [Alle] evaluation triggered by Szenen.Henry_weiter
    2017-04-22 21:12:30,032 [Alle] testing enter-GRUPPE conditions of state Alle:
        Szenen.Henry:'Alle' == 'Aus' => Fail
    2017-04-22 21:12:30,032 [Alle] testing enter-Weiterschalten conditions of state Aus:
        Szenen.Henry:'Alle' == 'Alle' => Pass
        trigger:'Szenen.Henry_weiter' == 'Szenen.Henry_weiter' => Pass

    #2
    Hallo Jürgen,

    an der Stelle hat sich nichts geändert.
    Die SM setzt nicht zufällig den Wert von Szenen.Henry_weiter?

    Bis bald

    Marcus

    Kommentar


      #3
      Zitat von callidomus Beitrag anzeigen
      an der Stelle hat sich nichts geändert.
      Die SM setzt nicht zufällig den Wert von Szenen.Henry_weiter?
      Hi Marcus,

      die Statemaschine sieht so aus.

      Code:
      "State";"Context";"Group";"Type";"Selector";"Property";"Aggregator";"Comparator";"Value"
      "#Active";"1";"";"";"";"";"";"";""
      "#Date";"2017-04-24 22:19:58+02:00";"";"";"";"";"";"";""
      "#Delay";"30";"";"";"";"";"";"";""
      "#Init";"Aus";"";"";"";"";"";"";""
      "#Loglevel";"Debug";"";"";"";"";"";"";""
      "#Name";"Szenen-Henry";"";"";"";"";"";"";""
      "#Selector";"Szenen.Henry";"";"";"";"";"";"";""
      "#Trigger";"Szenen.Henry_weiter";"";"";"";"";"";"";""
      "#Type";"Machine";"";"";"";"";"";"";""
      "#Version";"2";"";"";"";"";"";"";""
      "Alle";"state";"";"active";"";"";"";"";"1"
      "Alle";"state";"";"value";"";"";"";"";"18"
      "Alle";"enter";"GRUPPE";"condition";"state";"";"";"==";"Aus"
      "Alle";"enter";"GRUPPE";"condition";"trigger";"";"";"==";"Szenen.Henry_weiter"
      "Deckenlicht2";"state";"";"active";"";"";"";"";"1"
      "Deckenlicht2";"state";"";"value";"";"";"";"";"17"
      "Deckenlicht1";"state";"";"active";"";"";"";"";"1"
      "Deckenlicht1";"state";"";"value";"";"";"";"";"16"
      "Lesen";"state";"";"active";"";"";"";"";"1"
      "Lesen";"state";"";"value";"";"";"";"";"15"
      "Aus";"state";"";"active";"";"";"";"";"1"
      "Aus";"state";"";"value";"";"";"";"";"14"
      "Aus";"enter";"Weiterschalten";"condition";"state";"";"";"==";"Alle"
      "Aus";"enter";"Weiterschalten";"condition";"trigger";"";"";"==";"Szenen.Henry_weiter"
      Szene.Henry
      Code:
      "path";"type";"knx_dpt";"knx_listen";"knx_send";"name"
      "#Date";"2017-04-24 22:32:55+02:00";"";"";"";""
      "#Type";"Nodes";"";"";"";""
      "#Version";"3";"";"";"";""
      "Szenen.Henry";"num";"18";"5/3/4";"5/3/4";"Henry"
      Henry Weiter
      Code:
      "path";"type";"enforce_updates";"ical_cert";"knx_dpt";"knx_listen";"name"
      "#Date";"2017-04-24 22:35:04+02:00";"";"";"";"";""
      "#Type";"Nodes";"";"";"";"";""
      "#Version";"3";"";"";"";"";""
      "Szenen.Henry_weiter";"bool";"1";"0";"1";"5/3/5";"Szene weiterschalten"
      An der wurde von mir definitv nix geändert.

      Viele Grüsse
      Jürgen
      Zuletzt geändert von heckmannju; 24.04.2017, 21:35.

      Kommentar


        #4
        Hi,
        für diese verhalten habe ich jetzt die ursache gefunden. Der eibd von Wiregate hat jedes telegram merfach wiederholt. Nach dem restart vom eibd ist ruhe.Und die statemaschine tut wieder.
        vg
        Jürgen

        Kommentar


          #5
          Hi Jürgen,

          ich weiß nicht, wie schnell Du die Szenen weiterschalten willst, aber wenn es nicht beliebig schnell sein muss, könntest Du eine Art "Entprellung" einbauen: Immer nach einem erfolgreichen "weiter" springst Du in einen Zustand, in dem die SM z.B. für 1 Sekunde verbleibt, bevor das nächste "weiter" ausgewertet wird. Dann wirken sich doppelte Telegramme nicht mehr aus.

          Gruß, Waldemar
          OpenKNX www.openknx.de

          Kommentar


            #6
            Hi,

            das sollte schon relative fix weiterschaltbar sein. Eine Sekunde wäre mir da viel zu lange. Das problem vom eibd ist zum glück nicht mehr aufgetreten. Allerdings tut seit einem Update das ganze nicht mehr.

            Vor dem Update sah das log so aus.

            2017-04-30 17:25:57,556 [Aus] entering state: Aus Condition: enter-Weiterschalten
            2017-04-30 17:36:58,825 [Aus] ---------------------------------------------------------
            2017-04-30 17:36:58,826 [Aus] evaluation triggered by Szenen.Henry_weiter
            2017-04-30 17:36:58,827 [Aus] testing enter-GRUPPE conditions of state Alle:
            Szenen.Henry:'Aus' == 'Aus' => Pass
            trigger:'Szenen.Henry_weiter' == 'Szenen.Henry_weiter' => Pass
            2017-04-30 17:36:58,830 [Alle] entering state: Alle Condition: enter-GRUPPE
            2017-04-30 17:53:58,380 [Alle] ---------------------------------------------------------
            2017-04-30 17:53:58,381 [Alle] evaluation triggered by Szenen.Henry_weiter
            2017-04-30 17:53:58,382 [Alle] testing enter-GRUPPE conditions of state Alle:
            Szenen.Henry:'Alle' == 'Aus' => Fail
            2017-04-30 17:53:58,382 [Alle] testing enter-Weiterschalten conditions of state Aus:
            Szenen.Henry:'Alle' == 'Alle' => Pass
            trigger:'Szenen.Henry_weiter' == 'Szenen.Henry_weiter' => Pass
            2017-04-30 17:53:58,385 [Aus] entering state: Aus Condition: enter-Weiterschalten
            2017-04-30 21:09:05,457 [Aus] ---------------------------------------------------------

            jetzt sieht das log so aus da ist ein cd drin...was da warscheinlich nicht hingehört auf

            2017-05-03 19:42:08,041 [Aus] ---------------------------------------------------------
            2017-05-03 19:42:08,042 [Aus] evaluation triggered by Szenen.Henry_weiter
            2017-05-03 19:42:08,043 [Aus] testing enter-GRUPPE conditions of state Alle:
            Szenen.Henry:'Aus' == 'Aus' => Pass
            trigger:'Szenen.Henry_weiter' == cd.Szenen.Henry_weiter:Node: Szenen.Henry_weiter => Fail
            2017-05-03 19:42:08,044 [Aus] testing enter-Weiterschalten conditions of state Aus:
            Szenen.Henry:'Aus' == 'Alle' => Fail
            2017-05-03 19:42:09,238 [Aus] ---------------------------------------------------------
            2017-05-03 19:42:09,239 [Aus] evaluation triggered by Szenen.Henry_weiter
            2017-05-03 19:42:09,239 [Aus] testing enter-GRUPPE conditions of state Alle:
            Szenen.Henry:'Aus' == 'Aus' => Pass
            trigger:'Szenen.Henry_weiter' == cd.Szenen.Henry_weiter:Node: Szenen.Henry_weiter => Fail
            2017-05-03 19:42:09,240 [Aus] testing enter-Weiterschalten conditions of state Aus:
            Szenen.Henry:'Aus' == 'Alle' => Fail

            da sich Markus dazu noch nicht geäussert hatt muss ich das irgentwie umbauen.

            Viele Grüsse
            Jürgen

            Kommentar


              #7
              Hi Jürgen,

              statt umbauen, kannst Du auch ein callidomus.core rollback machen. Dann hast Du den Zustand vor dem update. Und dann wartest Du, bis Marcus das gefixt hat.

              Gruß, Waldemar
              OpenKNX www.openknx.de

              Kommentar


                #8
                Hi Waldemar,
                das geht leider auch nicht. Da ich diesen Fix brauche weil mein Callidomus mit dem alten stand nicht gestartet hat.
                VG
                Jürgen

                Kommentar


                  #9
                  Hi Jürgen,
                  Ich habe noch eine Idee. Kannst du den entsprechenden Taster mit 1 beim Drücken und 0 beim loslassen Parametrieren?
                  Wenn ja ,schreibe ich mehr dazu .
                  Gruß Waldemar
                  OpenKNX www.openknx.de

                  Kommentar


                    #10
                    Hi Waldemar,

                    so langsam gebe ich die Hoffnung auf das Marcus das problem beheben kann oder will. Die Taster die ich habe können das.

                    Viele Grüsse
                    Jürgen

                    Kommentar


                      #11
                      Hi Jürgen,

                      bei den SM ist derzeit die "trigger" condition kaputt. Ich warte da auch noch auf einen Fix. Wenn der Trigger aber von einem Taster kommt (Dein "Weiter"-Taster sendet wahrscheinlich immer eine 1), kann man das immer mit senden von 0/1 und normalen Item-Abfragen simulieren:

                      Code:
                      "Alle";"state";"";"active";"";"";"";"";"1"
                      "Alle";"state";"";"value";"";"";"";"";"18"
                      "Alle";"enter";"start";"condition";"state";"";"";"==";"Aus"
                      "Alle";"enter";"start";"condition";"Szenen.Henry_weiter";"";"";"==";"1"
                      "Alle";"enter";"stay";"condition";"state";"";"";"==";"Alle"
                      "Alle";"enter";"stay";"condition";"Szenen.Henry_weiter";"";"";"==";"0"
                      Mit einer 1 beim drücken springt er von "Aus" auf "Alle" (enter-start), mit der folgenden 0 beim loslassen bleibt er noch bei "Alle" (enter-stay). Das entsprechende musst Du dann bei "Aus" machen.

                      Gruß, Waldemar
                      OpenKNX www.openknx.de

                      Kommentar


                        #12
                        Da ist es wieder, das Warten darauf, dass überhaupt irgendetwas passiert. Inzwischen sind erneute 2 Wochen vergangen, macht insgesamt bereits 1 1/2 Monate.

                        Kommentar

                        Lädt...
                        X