Ankündigung

Einklappen
Keine Ankündigung bisher.

Stateengine Plugin Support

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

    Ja! Das ist Gebäudeteil "Garage" und dann Raum "Garage" ...

    Kommentar


      mike Fixt das das Problem? https://github.com/smarthomeNG/plugi...601444f4b34b5c

      Kommentar


        Ja das fixt das Problem. Vielen Dank!

        Kommentar


          Zitat von Onkelandy Beitrag anzeigen
          gama Schon getestet? Hast du Ideen für den Code..? Ich hab mir überlegt, manche Infos in die States als Properties auszulagern, aber richtig was bringt das auch nicht.

          Was vermutlich vernünftig wäre.. beim ersten Start dafür zu sorgen, dass der Suspend nicht gleich aufgelöst werden kann, falls der auflösende Zustand eingenommen werden könnte. Sondern erst beim nächsten Mal..?
          Hi,
          am Wochenende habe ich (endlich) angefangen das die StateEngine umzubauen. Dabei wollte ich gleich die state_suspend_dynamic nutzen, komme aber nicht richtig weiter. Hast Du ein Beispiel welches das Zusammenspiel an der Praxis erläutert?

          Exemplarisch wäre eine kleine StateEngine mit einem Nacht Modus cool:
          * Ist ein normaler Suspend aktiv, jedoch der Zustand "Nacht" als gültig evaluiert, so wird der aktuelle Suspend aufgelöst.
          * Wird während der Nacht ein Suspend aktiviert, läuft dieser mit einer geänderten Zeit.
          * Ist Nacht Suspend aktiv, aber Nacht nicht mehr als gültig bestimmt, so wird der Nacht Suspend vorzeitig beendet.

          Vielen Dank und Grüße
          Markus

          Kommentar


            Hi!
            Ich würds mal simpel halten und das se_releasedby ausprobieren. Du hast den suspend ganz oben in der Hierarchie, über der Nacht und definierst dort eben, dass Nacht den Status "auflösen" darf. Das wegen der kürzeren Zeit kannst du dann mit se_suspend_time: eval:x if state1 else y lösen, wobei du da wohl Hilfsitems brauchst, die auf true oder false gesetzt werden, je nachdem, welcher Status grad aktiv ist.

            Kommentar


              Hallo Zusammen,

              ich (blutiger Anfänger im Bereich KNX und Python 😟) versuche mich gerade in die Funktionsweise des SmartHomeNG allgemein, und im speziellen der StateEngine, einzuarbeiten. Ich habe nun versucht dieses Beispiel aus der Anwender Doku nachzubauen, aber leider will es nicht funktionieren.

              Ich habe die drei Items wie im Beispiel beschrieben angelegt (1x Prüf-Item Wetterstation, 1x Trigger, 1x Raffstore Automatik) und das Item "Raffstore Automatik" mit meinen KNX-Adressen ergänzt. Unter Struct dann das "stateengine_default_raffstore:" angelegt (darin hab ich nichts verändert).

              Wenn ich jetzt SmartHomeNG neu starte, bekomme ich im Log folgende Fehlermeldungen:

              Code:
              2021-04-04 18:57:59 WARNING lib.item.item item 'beispiel.raffstore1.automatik.rules': trigger item 'beispiel.raffstore1.automatik.anwesenheit' not found for function 'True'
              2021-04-04 18:58:00 WARNING plugins.stateengine.beispiel.raffstore1.automatik. rules Item 'Behanghöhe des Raffstores' not found!
              2021-04-04 18:58:00 WARNING plugins.stateengine.beispiel.raffstore1.automatik. rules Item 'Lamellenwinkel des Raffstores' not found!
              2021-04-04 18:58:00 WARNING plugins.stateengine.beispiel.raffstore1.automatik. rules Determined item 'beispiel.raffstore1.automatik.Nachfuehren_Osten' does not exist.
              2021-04-04 18:58:00 WARNING plugins.stateengine.beispiel.raffstore1.automatik. rules se_use is set up in a wrong way - ignoring None
              2021-04-04 18:58:00 WARNING plugins.stateengine.beispiel.raffstore1.automatik. rules Item 'Behanghöhe des Raffstores' not found!
              2021-04-04 18:58:00 WARNING plugins.stateengine.beispiel.raffstore1.automatik. rules Item 'Lamellenwinkel des Raffstores' not found!
              2021-04-04 18:58:00 WARNING plugins.stateengine.beispiel.raffstore1.automatik. rules Item 'Behanghöhe des Raffstores' not found!
              2021-04-04 18:58:00 WARNING plugins.stateengine.beispiel.raffstore1.automatik. rules Item 'Behanghöhe des Raffstores' not found!
              Die erste Warnung kann ich mir noch damit erklären, dass ich keine "Anwesenheit" "programmiert/konfiguriert" habe. Aber warum findet er die anderen Items nicht bzw. was sagt mir die Fehlermeldung zu "se_use"?

              Leider blicke ich bei einigen grundlegenden Dingen noch nicht ganz durch, was es nicht gerade leichter macht. Z. B. verstehe ich das mit den Punkten vor einem Item noch nicht wirklich. Als Beispiel hier mal "...hoehe", "...lamelle" und "..settings.himmelsrichtung" aus dem Doku-Beispiel:
              Code:
              rules:
                      # Item für Behanghöhe
                      se_item_hoehe: ...hoehe
                      
                      # Item für Lamellenwinkel
                      se_item_lamelle: ...lamelle
                      
                      # Keine Änderung des Lamellenwinkels wenn Abweichung kleiner 5
                      se_item_himmelsrichtung: ..settings.himmelsrichtung
              Ich denke mal, dass das mit den Einrückungen zu tun hat. Stimmt das und kann mir das vielleicht jemand noch etwas genauer erklären? Vielleicht einfach anhand dem vorgenannten Beispiel. Warum sind vor "hoehe" und "lamelle" drei Punkte und vor "settings" nur zwei?

              Ich hoffe ich quäle euch nicht mit solchen Anfänger-Fragen, aber irgendwie konnte ich mir meine Fragen durch lesen der sehr umfangreichen Doku nicht selbst beantworten.

              LG Maku

              Kommentar


                Hi!
                Die Punkte refernzieren auf relative Items. Wenn du auf Nummer sicher gehen willst, kannst du auch einfach die absoluten Pfade angeben, also z.b. raffstore.hoehe oder so. Beim SE Plugin werden die Referenzen immer von dem Item aus gesucht, in dem das se_plugin: active steht, also normalerweise "rules". Das rules Item wiederum ist ein Unteritem (eine Einrückung mehr) von "automatik". Und im automatik sind die settings Items. Daher dort nur zwei Punkte. Die drei Punkte, weil dann hoehe, etc. außerhalb von automatik sind. Hoffe, das war verständlich.

                Das se_use Beispiel in der Doku hat leider einen kleinen Fehler. Da darf nur EIN Punkt hin, in der Doku sind aber zwei bei "Nachfuehren.Osten".
                Probier das so nochmals aus, dann sollte es klappen. Die Doku wird aber definitiv nochmals überarbeitet, da noch nicht alles optimal ist. Vielleicht ist es auch leichter, mit dem Blogbeitrag zu starten: https://www.smarthomeng.de/starting-...toblind-plugin

                Kommentar


                  Hi Onkelandy,

                  danke für die schnelle und umfangreiche Antwort! Ich hab mich heute morgen noch mal dran gesetzt und versucht deine Info's und Tipps umzusetzen. Leider mit mäßigem Erfolg...

                  Zitat von Onkelandy Beitrag anzeigen
                  Die Punkte refernzieren auf relative Items. Wenn du auf Nummer sicher gehen willst, kannst du auch einfach die absoluten Pfade angeben, also z.b. raffstore.hoehe oder so.
                  Ah ok, dann lag ich ja nicht komplett falsch

                  Jetzt habe ich die Pfade absolut angegeben, aber die Fehlermeldungen bleiben. Hab es auch mit einer unterschiedlichen Anzahl an Punkten davor versucht, ohne Erfolg. Also irgendwas hab ich offensichtlich noch falsch weil nicht verstanden 🤔
                  Ich seh es doch richtig, dass die Fehlermeldung aus der struct "stateengine_default_raffstore" kommt, weil dort auf das Item "se_item_hoehe" referenziert wird, welches er offensichtlich nicht findet. Unter dem angegebenen absoluten Pfad "beispiel.raffstore1.hoehe" ist das Item aber doch da. Oder hab ich da noch einen Denkfehler? So wie ich es verstehe, habe ich wohl im Code für die Raffstore Steuerung noch einen Fehler. Vielleicht hat da noch jemand einen Tipp für mich?!
                  Code:
                  beispiel:
                      raffstore1:    
                          name: Raffstore Beispiel 1
                          hoehe:
                              type: num
                              name: Behanghöhe des Raffstores
                              knx_dpt: 5001
                              knx_send: 8/1/0
                              cache: 'on'
                                  
                          lamelle:
                              type: num
                              name: Lamellenwinkel des Raffstores
                              knx_dpt: 5001
                              knx_send: 8/2/0
                              cache: 'on'
                  Fehlermeldungen aus dem Log:
                  Code:
                  2021-04-05  11:52:16 WARNING  plugins.stateengine.beispiel.raffstore1.automatik.rules Item 'Behanghöhe des Raffstores' not found!
                  2021-04-05  11:52:16 WARNING  plugins.stateengine.beispiel.raffstore1.automatik.rules Item 'Lamellenwinkel des Raffstores' not found!
                  2021-04-05  11:52:16 WARNING  plugins.stateengine.beispiel.raffstore1.automatik.rules Item 'Behanghöhe des Raffstores' not found!
                  2021-04-05  11:52:16 WARNING  plugins.stateengine.beispiel.raffstore1.automatik.rules Item 'Lamellenwinkel des Raffstores' not found!
                  2021-04-05  11:52:16 WARNING  plugins.stateengine.beispiel.raffstore1.automatik.rules Item 'Behanghöhe des Raffstores' not found!
                  2021-04-05  11:52:16 WARNING  plugins.stateengine.beispiel.raffstore1.automatik.rules Item 'Lamellenwinkel des Raffstores' not found!
                  2021-04-05  11:52:16 WARNING  plugins.stateengine.beispiel.raffstore1.automatik.rules Item 'Behanghöhe des Raffstores' not found!
                  2021-04-05  11:52:16 WARNING  plugins.stateengine.beispiel.raffstore1.automatik.rules Item 'Behanghöhe des Raffstores' not found!

                  Zitat von Onkelandy Beitrag anzeigen
                  Beim SE Plugin werden die Referenzen immer von dem Item aus gesucht, in dem das se_plugin: active steht, also normalerweise "rules". Das rules Item wiederum ist ein Unteritem (eine Einrückung mehr) von "automatik". Und im automatik sind die settings Items. Daher dort nur zwei Punkte. Die drei Punkte, weil dann hoehe, etc. außerhalb von automatik sind. Hoffe, das war verständlich.
                  Teils teils. Aber ich denke, dass es mir zunehmend klarer wird, je mehr ich mich damit auseinandersetze. Mir fehlt einfach die Erfahrung. Es fühlt sich vieles für mich noch wie Swahili an 😅

                  Zitat von Onkelandy Beitrag anzeigen
                  Das se_use Beispiel in der Doku hat leider einen kleinen Fehler. Da darf nur EIN Punkt hin, in der Doku sind aber zwei bei "Nachfuehren.Osten".
                  Probier das so nochmals aus, dann sollte es klappen.
                  Bingo! Die Fehlermeldung bezüglich "se_use" ist weg. 👍

                  Zitat von Onkelandy Beitrag anzeigen
                  Vielleicht ist es auch leichter, mit dem Blogbeitrag zu starten: https://www.smarthomeng.de/starting-...toblind-plugin
                  Tatsächlich hatte ich ursprünglich mit genau diesem Beispiel angefangen. Das hat aber leider auch nicht komplett funktioniert. Da ist der Raffstore beim Neustart in die aktuell richtige Position gefahren, aber er hat sich nicht mehr aktualisiert.
                  Angehängte Dateien

                  Kommentar


                    Es gab ein Problem bei items mit Namen, das erst im develop gefixt ist. Zieh dir bitte mal die develop Version oder lösch die Name Attribute

                    Kommentar


                      Ich hab seit dem kürzlichen Update auf SH 1.9 ein paar WARNING's (4. Zeile) im Log:

                      Code:
                      2021-12-30 18:56:55.382324 Check if state 'Dg.Bad.Jalousie.Fenster_gross.AutoBlind.rules.Suspend' ('Pause bis 20:56:55') can be entered:
                      ...
                      2021-12-30 18:56:55.383006   Check condition set 'enter_stay'
                      ...
                      2021-12-30 18:56:55.383661     Condition 'manuell': Checking all relevant stuff
                      2021-12-30 18:56:55.383725         WARNING: Neither value nor min/max given. This might result in unexpected evalutions. Min None, max None, value None
                      2021-12-30 18:56:55.387518         Checking variable 'item.suspend_time', value 7200 from list ['var:item.suspend_time']
                      2021-12-30 18:56:55.387584         Variable result: 7200
                      2021-12-30 18:56:55.387646         Age of 'manuell': min=[None] max=[7200] negate=None current=0.036812
                      2021-12-30 18:56:55.387705         Testing valuepair min None and max 7200
                      2021-12-30 18:56:55.387755         given limits ok -> matching
                      Code:
                             Suspend:
                                  type: foo
                                  name: Automatik ausgesetzt bis ...
                                  enforce_updates: 'True'
                                  enter_stay:
                                      type: foo
                                      se_value_beschattenFuerZeit: 'False'
                                      se_value_laststate: var:current.state_id
                                      se_agemax_manuell: var:item.suspend_time
                                      se_value_suspend: 'True'
                                  se_name: "eval: se_eval.insert_suspend_time('..suspend', suspend_text='Pause bis %X')"
                      Zuletzt geändert von ivande; 30.12.2021, 19:42.

                      Kommentar


                        Du solltest fürs Suspend unbedingt die structs nutzen, die mitgeliefert werden.
                        Generell weist der Fehler darauf hin, dass du zwar ein agemax drin hast, aber keine Angabe, welchen Wert das manuell Item haben soll. Ein se_value_manuell: True sollte die Warnung beheben.

                        Kommentar


                          Zitat von Onkelandy Beitrag anzeigen
                          Du solltest fürs Suspend unbedingt die structs nutzen, die mitgeliefert werden.
                          das ist nicht so ganz ohne größeren Aufwand möglich, da ich noch vom alten Autoblind "umgezogen" bin - bei Gelegenheit müsste ich alles mal neu + sauber machen.

                          Zitat von Onkelandy Beitrag anzeigen
                          Generell weist der Fehler darauf hin, dass du zwar ein agemax drin hast, aber keine Angabe, welchen Wert das manuell Item haben soll. Ein se_value_manuell: True sollte die Warnung beheben.
                          hab die Zeile geändert:
                          Code:
                          se_agemax_manuell: var:item.suspend_time 
                          se_value_suspend: 'True'
                          in
                          Code:
                          se_agemax_suspend: var:item.suspend_time
                          se_value_suspend: 'True'
                          Danke - ohne Deinen Hinweis wäre ich nicht (so schnell) drauf gekommen.

                          Kommentar


                            Ich habe für einen Storen eine State-Engine aufgebaut. Diese ist aktuell noch nicht mit dem KNX verbunden, sondern ich teste nur mit SmartVisu.

                            Die Items in "blinds.yaml":

                            Code:
                            Storen:
                            
                                Trigger:
                                    type: bool
                                    name: Gemeinsamer Trigger für alle Storen
                                    enforce_updates: yes
                                    cycle: 60 = 1
                            
                                EG:
                                
                                    Anbau_Links:
                                    
                                        AufAb:
                                            type: bool
                                            name: Raffstore auf/ab fahren
                                            enforce_updates: on
                                            visu_acl: rw
                                            value: false
                                            cache: true
                                
                                        Step:
                                            type: bool
                                            name: Raffstore Schritt fahren/stoppen
                                            enforce_updates: on
                                            visu_acl: rw
                                            value: false
                                            cache: true
                            
                                        Lock:
                                            type: bool
                                            visu_acl: rw
                                            cache: true
                                            value: false
                            
                                        Position:
                                            type: num
                                            visu_acl: rw
                                            database@mysqldb: init
                                            
                                        Automatik:
                                            struct:
                                              - stateengine.general
                                              - stateengine.state_lock
                                              - stateengine.state_suspend
                                              - stateengine.state_release
                                              - stateengine_default_blind
                                            manuell:
                                                type: bool
                                                eval_trigger:
                                                  - Storen.EG.Anbau_Links.AufAb
                                                  - Storen.EG.Anbau_Links.Step
                                                se_manual_include:
                                                  - Visu:*
                                                se_manual_exclude:
                            #                      - 'KNX:1.1.12' # Hier die physikalische Adresse des Schalt/Jalousieaktors angeben!
                                                  - Init:*
                                            rules:
                                                se_plugin: active
                                                se_startup_delay: 5
                                                eval_trigger:
                                                 - Storen.Trigger
                                                 - Meteo.*
                                                se_log_level: 2
                            Das Struct "stateengine_default_blind" in struct.yaml:

                            Code:
                            stateengine_default_blind:
                                settings:
                                    mindestdauer_helligkeit:
                                        type: num
                                        cache: True
                                        initial_value: 300 # [Sekunden]
                            
                                    pos_soll:  # Hoehe Storen, eingestellt in der Visu
                                        type: num
                                        visu_acl: rw
                                        cache: true
                                        initial_value: 0
                                    
                                rules:
                                    se_item_brightness: Meteo.Solar          # Item für Helligkeit aussen
                                    se_item_temperature: Meteo.Temp_Outside  # Item für Temperatur aussen
                                    se_item_solar200: Meteo.Solar.sol200     # Item das anzeigt, ob der Solarwert aussen mehr als 200 W/qm beträgt
                                    se_item_solar400: Meteo.Solar.sol400     # Item das anzeigt, ob der Solarwert aussen mehr als 400 W/qm beträgt
                                    se_item_position: ...Position            # Item für Behanghöhe
                                    se_mindelta_hoehe: 10                    # Keine Änderung der Behanghöhe wenn Abweichung kleiner 10
                                    se_item_lock: ...Lock                    # ueberschreibt 'se_item_lock' in 'stateengine.state_lock' mit eigenem Item
                            
                                    eval_trigger:
                                     - ...Lock
                                     - ..pos_soll
                                     - ..suspend
                                     - ..release
                                     - ..manuell
                                                
                                    Storen_Unten:
                                        name: Sonnenschutz
                                        se_action_position:
                                         - 'function: set'
                                         - "to: eval:se_eval.get_relative_itemvalue('..settings.pos_soll'.format(se_eval.get_relative_itemvalue('..state_name').lower()))"
                                        
                                        enter:  # Einstieg in "Sonnenschutz": Wenn
                                            # - das Flag Solarwert > 400 W/qm seit mindestens 30 Sekunden gesetzt ist
                                            se_value_solar400: true
                                            se_agemin_solar400: item:..settings.mindestdauer_helligkeit
                                            se_min_sun_altitude: 10
                                            se_min_sun_azimut: 85
                                            se_max_sun_azimut: 207
                                            se_min_temperature: 0
                            
                                        enter_hysterese:  # Hysterese für Helligkeit: Wenn
                                            # ... wir bereits in "Sonnenschutz" sind
                                            se_value_laststate: var:current.state_id
                                            # .... das Flag Solarwert > 200 W/qm gesetzt ist
                                            se_value_solar200: true
                                            se_min_sun_altitude: 10
                                            se_min_sun_azimut: 85
                                            se_max_sun_azimut: 207
                                            # Anmerkung: Hier keine erneute Prüfung der Temperatur, damit Temperaturschwankungen nicht
                                            # zum Auf-/Abfahren der Raffstores führen
                            
                                        enter_delay:  # Verzögerter Ausstieg nach Unterschreitung der Mindesthelligkeit: Wenn
                                            # ... wir bereits in "Sonnenschutz" sind
                                            se_value_laststate: var:current.state_id
                                            # .... das Flag Solarwert > 200 W/qm nicht (!) gesetzt ist, aber diese Änderung nicht mehr als 1 Minute her ist
                                            se_value_solar200: false
                                            se_agemax_solar200: 60
                                            se_min_sun_altitude: 10
                                            se_min_sun_azimut: 85
                                            se_max_sun_azimut: 207
                                            # Anmerkung: Auch hier keine erneute Prüfung der Temperatur, damit Temperaturschwankungen nicht
                                            # zum Auf-/Abfahren der Raffstores führen
                            
                                    # Zustand "Tag"
                                    Default:
                                        type: foo
                                        name: Tag (statisch)
                                        # Aktionen:
                                        # - Behang ganz hochfahren
                                        se_action_position:
                                         - 'function: set'
                                         - 'to: 0'
                            
                                        enter:
                                            type: foo
                            Die State-Engine funktioniert soweit mit der Helligkeit und mit dem Sonnenwinkel. Auch das Sperren klappt.

                            Ich habe die beiden Items "Storen.EG.Anbau_Links.AufAb" und "Storen.EG.Anbau_Links.Step" in SmartVisu eingerichtet. Wenn ich eines dieser Items betätige, geht die State-Engine leider nicht in den Suspend-Modus. Im Detail-Log finde ich keinen Eintrag, der durch diese Items aus der Visu getriggert worden ist. In "smarthome-details.log" finde ich diesen Eintrag:

                            Code:
                            2022-06-04  15:59:20 INFO     plugins.stateengine manual_item_update_eval
                            2022-06-04  15:59:20 INFO     plugins.stateengine manual_item_update_eval
                            2022-06-04  15:59:20 INFO     plugins.stateengine running for item 'Storen.EG.Anbau_Links.Automatik.manuell' source 'Eval' caller 'Storen.EG.Anbau_Links.AufAb'
                            2022-06-04  15:59:20 INFO     plugins.stateengine running for item 'Storen.EG.Anbau_Links.Automatik.manuell' source 'Eval' caller 'Storen.EG.Anbau_Links.AufAb'
                            2022-06-04  15:59:20 INFO     plugins.stateengine Current value of item Storen.EG.Anbau_Links.Automatik.manuell is False
                            2022-06-04  15:59:20 INFO     plugins.stateengine Current value of item Storen.EG.Anbau_Links.Automatik.manuell is False
                            2022-06-04  15:59:20 INFO     plugins.stateengine get_caller(Eval, Storen.EG.Anbau_Links.AufAb): original trigger by smartVISU:192.168.10.51
                            2022-06-04  15:59:20 INFO     plugins.stateengine get_caller(Eval, Storen.EG.Anbau_Links.AufAb): original trigger by smartVISU:192.168.10.51
                            2022-06-04  15:59:20 INFO     plugins.stateengine checking exclude values: ['Init:*']
                            2022-06-04  15:59:20 INFO     plugins.stateengine checking exclude values: ['Init:*']
                            2022-06-04  15:59:20 INFO     plugins.stateengine Checking regex result None
                            2022-06-04  15:59:20 INFO     plugins.stateengine Checking regex result None
                            2022-06-04  15:59:20 INFO     plugins.stateengine re.compile('Init:*', re.IGNORECASE): not matching
                            2022-06-04  15:59:20 INFO     plugins.stateengine re.compile('Init:*', re.IGNORECASE): not matching
                            2022-06-04  15:59:20 INFO     plugins.stateengine checking include values: ['Visu:*']
                            2022-06-04  15:59:20 INFO     plugins.stateengine checking include values: ['Visu:*']
                            2022-06-04  15:59:20 INFO     plugins.stateengine Checking regex result None
                            2022-06-04  15:59:20 INFO     plugins.stateengine Checking regex result None
                            2022-06-04  15:59:20 INFO     plugins.stateengine re.compile('Visu:*', re.IGNORECASE): not matching
                            2022-06-04  15:59:20 INFO     plugins.stateengine re.compile('Visu:*', re.IGNORECASE): not matching
                            2022-06-04  15:59:20 INFO     plugins.stateengine No include values matching. Writing value False
                            2022-06-04  15:59:20 INFO     plugins.stateengine No include values matching. Writing value False
                            Warum da alle Zeilen doppelt drin sind, verstehe ich auch nicht. Die übrigen Einträge in diesem Log sind normal.

                            Was mache ich falsch, dass das Auslösen der Items in der Visu keine Trigger in der State-Engine auslösen ?

                            Kommentar


                              Das Problem liegt vermutlich in der logging.yaml
                              Viele Grüße
                              Martin

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

                              Kommentar


                                In der logging.yaml habe ich diesen Eintrag drin:

                                Code:
                                loggers:
                                    plugins.stateengine:
                                        handlers: [shng_details_file]
                                        level: INFO
                                Sobald ich diese Zeilen aktiviere, habe ich diese doppelten Einträge im Log.

                                Das ist aber nicht mein Problem, sondern warum die Items die State-Engine nicht triggern.

                                Kommentar

                                Lädt...
                                X