Ankündigung

Einklappen
Keine Ankündigung bisher.

Logiken und Zyklische Ausführung

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

    [callidomus] Logiken und Zyklische Ausführung

    Hallo zusammen,

    wenn ich bei Logiken den Parameter "Zyklische Ausführung" nicht fülle bzw. leer lasse, dann wird die Logik auch nicht durchlaufen.

    Bei manchen Logiken wünsche ich keine Zyklische Ausführung.

    Habt ihr das gleiche Problem ? bzw. ist das so gewollt ?

    Danke & VG,

    Bull
    Zuletzt geändert von bullonix; 08.12.2016, 12:22.

    #2
    Hi,
    bei den meisten Logicken will man etwas machen wenn sich bei einem Item was ändert. Dann kann man sich auf diese Item Registrieren auf eine Logick registrieren. Immer wenn sich was an dem Item ändert wird dann diese Logick aufgerufen.
    VG
    Jürgen

    Kommentar


      #3
      Das Problem ist aber, das das Feld nicht als Pflichtfeld deklariert ist. Wenn man nichts eingibt, wird auch die Logik nicht durchlaufen.

      Das mach die Fehleranalyse schwierig, wenn man nicht weiß das dass Feld "Zyklische Ausführung" gefüllt sein muss, damit die Logik durchlaufen werden muss.

      VG,

      Bull

      Kommentar


        #4
        Hallo Bull,

        Logiken können folgendermaßen angestoßen werden:
        • zyklisch
        • Zeitpunkte (Timer)
        • Itemänderungen (Abhängigkeiten)
        • Visu
        • Logiken
        • Plugins
        Es gibt keine Verpflichtung sich für eine zu entscheiden.
        Wenn man die Logik nicht anstößt läuft sie auch nicht.

        Poste doch einmal ein Screenshot der Logic-Einstellungen und wann du die Logik ausgeführt haben möchtest.

        Bis bald

        Marcus

        Kommentar


          #5
          Hallo Marcus,

          ich habe ja immer noch das Problem mit dem Kalender, dass nach einer gewissen Zeit die Einträge am Frontend verschwinden.

          So habe ich mich erneut auf die Suche nach der Ursache gemacht.

          Hier ist mir aufgefallen: Wenn das Kalender Item die Logic "calender" ruft, werden auch alle Einträge im Kalender ausgegeben ( Die nächsten 7 Tage ).

          Sobald aber die "calender" Logic durch die Zyklische Ausführung noch einmal ausgeführt wird, habe ich das Problem, das nicht mehr alle oder keine Einträge angezeigt werden. ( Wenn für den heutigen Tag keine Termine vorhanden sind, ist der Kalender leer und wenn ich nur 1 Termin heute habe wird nur dieser im Kalender ausgegeben. Es sollten aber alle Termine für die nächsten 7 Tage ausgeben werden )

          Jetzt habe ich bei Zyklische Ausführung 55555m eigentragen, damit der Fehler nur alle 55555 Minuten vorkommt .
          Ohne einen Eintrag im Feld "Zyklische Ausführung" wird die Logic selbst durch das Item Kalender nicht angestossen, obwohl diese Verknüpft sind. Sobald das Feld gefüllt ist, wird die Logik beim start durchlaufen.

          Durch das Leere Feld "Zyklische Ausführung" wollte ich erreichen, das durch den aufruf des Items Kalender die Logic nur einmal durchlaufen wird. ( Der Nachteil daran ist, dass neue Kalendereinträge nur durch ein Refresh der Seite eingelesen werden )

          Screen Logic-Einstellung:



          Da kommt mir die Frage auf, warum erlaubt die Logic welche durch das Item aufgerufen wird mehrere aufrufe von cd.services.calendar() ( Also für jeden tag ein aufruf ) und bei einer Zyklische Ausführung wird nur ein aufruf von cd.services.calendar() berücksichtigt alle anderen werden ignoriert ?


          Oder verstehe ich etwas nicht ?

          Danke & VG,

          Bull



          You do not have permission to view this gallery.
          This gallery has 1 photos.

          Kommentar


            #6
            Hi,

            also Kalender ist doch eigentlich wirklich ein Fall wo man den update mal mindestens 1 mal am Tag oder mehrmals haben möchte. Von dem her ist die Zyklische aktualisierung schon das richtige.

            Das problem ist doch bestimmt die Logik und nicht die Zyklische Ausführung. Wie sieht den dein Logick aus?

            VG
            Jürgen

            Kommentar


              #7
              Hallo Bull,

              ich bin überzeugt es gibt generell kein Problem mit dem zyklischen Ausführen. Es ist ein individuelles Problem mit Deiner Logik.

              Morgen Abend habe ich eine Lösung für Dich und andere.

              Bis bald

              Marcus

              Kommentar


                #8
                Hallo Jürgen,

                wenn es die Logik wäre, dann dürfte diese ja beim ersten aufruf auch nicht Funktionieren. Der Fehler kommt erst beim Zyklischen Aufruf.

                Anbei die Logik.

                Code:
                offset = 14
                cntr = 0
                now = cd.now().date()
                parsing = cd.ical(logic.url,offset)
                caldata = []
                
                def createcalendar(caldate):
                    for event in parsing[caldate]:
                        event['Icon'] = 'cd/trash'
                        if 'Biomüll' in event['Summary']:
                            event['IconStyle'] = 'stroke:chocolate'
                            event['Class'] = 'trashbrown'
                        if 'Papiertonne' in  event['Summary']:
                            event['IconStyle'] = 'stroke:blue'
                            event['Class'] = 'trashblue'
                        if 'Gelbe Tonne' in  event['Summary']:
                            event['IconStyle'] = 'stroke:yellow'
                            event['Class'] = 'trashyellow'
                        if 'Hausmüll' in  event['Summary']:
                            event['IconStyle'] = 'stroke:white'
                            event['Class'] = 'trashwhite'
                    caldata.extend(parsing[caldate])
                    cd.services.calendar(caldata)
                
                while cntr <= 7:
                    showday = now + datetime.timedelta(days=cntr)
                    createcalendar(showday)
                    cntr += 1
                Danke & VG

                Bull

                Kommentar


                  #9
                  Hi Bull,

                  was ist denn
                  Code:
                   
                   cd.services.calendar(caldata)
                  das kenne ich nicht. Deine Schlussfolgerung, dass es am zyklischen Ausführen liegt, weil es sonst beim ersten mal auch nicht klappen würde, ist natürlich falsch. Beim ersten Mal ist alles nicht initialisiert, bei einer erneuten Ausführung (wodurch auch immer) steht ja schon was in Deinem Item. Da würde ich ansetzen. Ich würde irgendwie auf doppelte Einträge und damit verbunden unerwartete Auswirkungen tippen.

                  Aber Marcus ist ja da dran, dann sollte das Problem schnell der Vergangenheit angehören.

                  Gruß, Waldemar
                  OpenKNX www.openknx.de

                  Kommentar


                    #10
                    Hi Waldemar,

                    das ist das Kalender Item.

                    Dann warte ich mal auf Marcus lösung.

                    Danke & VG,

                    Bull

                    Kommentar


                      #11
                      Hallo,

                      Zitat von bullonix Beitrag anzeigen
                      Jetzt habe ich bei Zyklische Ausführung 55555m eigentragen, damit der Fehler nur alle 55555 Minuten vorkommt .
                      Ohne einen Eintrag im Feld "Zyklische Ausführung" wird die Logic selbst durch das Item Kalender nicht angestossen, obwohl diese Verknüpft sind. Sobald das Feld gefüllt ist, wird die Logik beim start durchlaufen.
                      kleine Information am Rande, die Logik ist nicht mit dem Items verbunden!
                      Bei dem geposteten Screenshot sind keine Abhängigkeiten eingetragen.

                      Bis bald

                      Marcus

                      Kommentar


                        #12
                        Hallo Marcus,

                        kannst du hierzu schon mehr sagen ?

                        Zitat von callidomus Beitrag anzeigen
                        Hallo Bull,

                        Morgen Abend habe ich eine Lösung für Dich und andere.

                        Marcus

                        Danke & VG,

                        Bull

                        Kommentar


                          #13
                          Hallo,

                          Zitat von bullonix Beitrag anzeigen
                          kannst du hierzu schon mehr sagen ?
                          ja, klar #7. Ist momentan in testing und wird demnächst unter stable veröffentlicht.

                          Langt das?

                          Bis bald

                          Marcus

                          Kommentar


                            #14
                            Hallo Marcus,

                            super Danke fürs Weihnachtsgeschenk .


                            Danke & VG,

                            Bull

                            Kommentar


                              #15
                              Hallo Marcus,

                              mir ist aufgefallen das man jetzt in jedem ITEM die ICAL und KNX Parameter pflegen kann. Auch wenn es sich um keinen Kalender handelt (im Testing)

                              2016-12-14 20_38_58-cd - Items.png


                              VG,

                              Bull

                              Kommentar

                              Lädt...
                              X