Ankündigung

Einklappen
Keine Ankündigung bisher.

4. Advent berechnen....

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

    4. Advent berechnen....

    guten Tag,
    habe nach langem Hin- und Her einen EIBPC gekauft, schöne Maschine.
    Zur Auswertung meiner Feiertage möchte ich gerne den 4. Advent berechnen. Im Kern ist das ja einfach,
    Auf der bisherigen Smarthome-Maschine habe ich das einfachst realisiert:

    Code:
     def advent(self,JAHR): #wird benötigt um bei der Initialisierung den 4. Advent vorzugeben
    ttulp=time.localtime(time.mktime((JAHR, 12, 25, 0, 0, 0, 0, 0, 0)))
    ADV4TH=ttulp[7]-ttulp[6]-1
    return ADV4TH #gibt timtulple integer zurück
    einfach den Wochentag abgezogen vom laufenden....
    Aber wie bekomme ich das in den EIBPC rein, Time und localtim habe ich nirgends gefunden....
    Danke
    Peter
    never fummel a running system...

    #2
    schau mal hier:

    https://knx-user-forum.de/forum/supp...579#post644579

    Ergänzung:
    Den Ostersonntag gibt es die Funktionen easterday() und eastermonth().
    Zuletzt geändert von foobar0815; 01.06.2021, 15:49.

    Kommentar


      #3
      EibStudio 4.109 wird eine MakroLib mit den wichtigsten Feiertagen und entsprechender Berechnung beinhalten, und in einer der nächsten Versionen einen Logikknoten. Hier vorab zum Importieren, testen und diskutieren.

      Das zip entpacken und die darin enthaltene .lib als MakroLib importieren, die .txt als Programm.
      Angehängte Dateien

      Kommentar


        #4
        Hmm, ist dei ZIP verschwunden und die MakroLIB in der aktuellen Version habe ich nicht gefunden
        please help.....

        never fummel a running system...

        Kommentar


          #5
          Die Zip oben ist doch noch drin im Thread oder was meinst Du ?
          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
          Enertex Produkte kaufen

          Kommentar


            #6
            ... wer unter dem Reiter Beiträge sucht wird fündig und findet den Link auch
            so sorry....
            Danke!
            never fummel a running system...

            Kommentar


              #7
              jetzt nochmal, bin vermutlich als blutiger Anfänger noch zu doof.
              Wie bekomme ich die beiden Dateien dann in den EIBPC?
              ENERTEX_Holidays_Feiertage ist vermutlich ein "normales" makro, aber die LIB?
              never fummel a running system...

              Kommentar


                #8
                Hi,

                du musst die Dateien aus dem Zip in dein Projekt im EibStudio importieren. Dazu die Schaltflächen wie im Screenshot benutzen.
                Bildschirmfoto_2021-08-25_15-03-32.png

                Kommentar


                  #9
                  so, hat geklappt, herzlichen Dank.
                  Ich habe noch einige Feiertage dazugefügt. Bitte nicht dran stören, habe die Syntax der Feiertagsbestimmung geändert, war mir zu kompliziert.
                  Anbei meine Feiertagsliste, vielleicht kann die einer gebrauchen:
                  Was mir noch fehlt:

                  Bestimmung folgender Tage....

                  //({Zeitumstellung}) ;Samstag<31.10.
                  //({Zeitumstellung}) ;Samstag<31.03.
                  //(Erntedank) ;Sonntag>29.9.
                  //(Muttertag) ;Sonntag>7.5.

                  ....

                  ideen und Kritik - gerne....


                  Code:
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Neujahr$,HOLIDAY_ CATEGORY_NO_WORK,1,1,HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Hl. Drei Könige$,HOLIDAY_CATEGORY_NO_WORK,6,1,HOLIDAY_ANNUA L)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Gedenktag NS Opfer$,HOLIDAY_CATEGORY_INFO,27,1,HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Darstellung des Herrn$,HOLIDAY_CATEGORY_INFO,2,2,HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Valentinstag$,HOL IDAY_CATEGORY_INFO,14,2,HOLIDAY_ANNUAL)
                  
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Josefstag$,HOLIDA Y_CATEGORY_INFO,19,3,HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Frühlingsanfang$, HOLIDAY_CATEGORY_INFO,20,3,HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Verklärung des Herrn$,HOLIDAY_CATEGORY_INFO,25,3,HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Europatag$,HOLIDA Y_CATEGORY_INFO,9,5,HOLIDAY_ANNUAL)
                  
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Eisheilige Mamertus$,HOLIDAY_CATEGORY_INFO,11,5,HOLIDAY_ANNUA L)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Eisheilige Pankratiuss$,HOLIDAY_CATEGORY_INFO,12,5,HOLIDAY_AN NUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Eisheilige Servatius$,HOLIDAY_CATEGORY_INFO,13,5,HOLIDAY_ANNU AL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Eisheilige kalte Sophie$,HOLIDAY_CATEGORY_INFO,15,5,HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Sommeranfange$,HO LIDAY_CATEGORY_INFO,21,6,HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Joh. der Täufer$,HOLIDAY_CATEGORY_INFO,24,6,HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Siebenschläfer$,H OLIDAY_CATEGORY_INFO,27,6,HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Peter und Paul$,HOLIDAY_CATEGORY_INFO,29,6,HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Maria Heimsuchung$,HOLIDAY_CATEGORY_INFO,2,7,HOLIDAY_ANN UAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Verklärug des Herrn$,HOLIDAY_CATEGORY_INFO,7,8,HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Kreuzerhörung$,HO LIDAY_CATEGORY_INFO,14,9,HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Fest der Erzengel Michael, Gabriel und Raphael$,HOLIDAY_CATEGORY_INFO,29,9,HOLIDAY_ANNUAL )
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Herbstanfangng$,H OLIDAY_CATEGORY_INFO,23,9,HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Österr. Nationalfeiertag$,HOLIDAY_CATEGORY_INFO,26,10,HOLI DAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Allerseelen$,HOLI DAY_CATEGORY_INFO,2,11,HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Winteranfangn$,HO LIDAY_CATEGORY_INFO,21,12,HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Nikolausn$,HOLIDA Y_CATEGORY_INFO,6,12,HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$unbefleckte Empfängnis$,HOLIDAY_CATEGORY_INFO,8,12,HOLIDAY_ANN UAL)
                  
                  //ostern abhängige
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Altweiberfasnet$ ,HOLIDAY_CATEGORY_NO_WORK, easterday(-52s16), eastermonth(-52s16) , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Rosenmontag$, ,HOLIDAY_CATEGORY_NO_WORK, easterday(-48s16), eastermonth(-48s16) , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Aschermittwoch$, ,HOLIDAY_CATEGORY_NO_WORK, easterday(-46s16), eastermonth(-46s16) , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Palmsonntagg$ ,HOLIDAY_CATEGORY_NO_WORK, easterday(-7s16), eastermonth(-7s16) , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Gründonnerstag$ ,HOLIDAY_CATEGORY_INFO, easterday(-3s16), eastermonth(-3s16) , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Karfreitag$ ,HOLIDAY_CATEGORY_NO_WORK, easterday(-2s16), eastermonth(-2s16) , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Karsamstag$ ,HOLIDAY_CATEGORY_NO_WORK, easterday(-1s16), eastermonth(-1s16) , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Ostersonntag$ ,HOLIDAY_CATEGORY_NO_WORK, easterday(0s16) , eastermonth(0s16) , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Ostermontag$ ,HOLIDAY_CATEGORY_NO_WORK, easterday(1s16) , eastermonth(1s16) , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Ostermontag$ ,HOLIDAY_CATEGORY_NO_WORK, easterday(7s16) , eastermonth(7s16) , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$weisser Sonntagt$,HOLIDAY_CATEGORY_NO_WORK, easterday(39s16), eastermonth(39s16) , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Pfingstsonntag$ ,HOLIDAY_CATEGORY_NO_WORK, easterday(49s16), eastermonth(49s16) , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Pfingstmontag$ ,HOLIDAY_CATEGORY_NO_WORK, easterday(50s16), eastermonth(50s16) , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Fronleichnam$ ,HOLIDAY_CATEGORY_NO_WORK, easterday(60s16), eastermonth(60s16) , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Herz-Jesu-Tag$ ,HOLIDAY_CATEGORY_INFO, easterday(68s16), eastermonth(68s16) , uTodayYear)
                  
                  //Feste Termine
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Tag der dt. Einheit$ ,HOLIDAY_CATEGORY_NO_WORK, 3, 10 , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Tag der Arbeitg$ ,HOLIDAY_CATEGORY_NO_WORK, 1,5 , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Muttertag$ ,HOLIDAY_CATEGORY_NO_WORK, vmMothersDay(uTodayYear),5 , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Augsburger hohes Friedensfest$,HOLIDAY_CATEGORY_INFO, 8,8, HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Maria Himmelfahrt$ ,HOLIDAY_CATEGORY_INFO, 15,8, HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Weltkindertagt$ ,HOLIDAY_CATEGORY_INFO, 20,9, HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Reformationsagt$ ,HOLIDAY_CATEGORY_INFO, 31,10, HOLIDAY_ANNUAL)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Fronleichnam$ ,HOLIDAY_CATEGORY_NO_WORK, 1, 11 , uTodayYear)
                  
                  
                  //Abhängige vom 4. Advent
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Volkstrauertag$ ,HOLIDAY_CATEGORY_INFO, uBussUndBettag - 4s16,11,uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Buss und Bettagt$ ,HOLIDAY_CATEGORY_INFO, uBussUndBettag,11,uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$1.Advent$ ,HOLIDAY_CATEGORY_NO_WORK, uFirstInAdventDay, uFirstInAdventMonth , uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$2.Advent$ ,HOLIDAY_CATEGORY_NO_WORK, vmDayOfSecondSundayInAdvent(uTodayYear), 12, uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$3.Advent$ ,HOLIDAY_CATEGORY_NO_WORK, vmDayOfThirdSundayInAdvent(uTodayYear), 12, uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$4.Advent$ ,HOLIDAY_CATEGORY_NO_WORK, vmDayOfFourthSundayInAdvent(uTodayYear), 12, uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Hl.Abend$ ,HOLIDAY_CATEGORY_NO_WORK, 24, 12, uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$l.Weihnachtstag$ ,HOLIDAY_CATEGORY_NO_WORK, 25, 12, uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$2.Weihnachtstag$ ,HOLIDAY_CATEGORY_NO_WORK, 26, 12, uTodayYear)
                  vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bTodayHoliday,zTodayHolidayName,$Sylvester$ ,HOLIDAY_CATEGORY_NO_WORK, 31, 12, uTodayYear)


                  Mein code für das Schalten ist dann wie folgt:

                  :begin vmHoliday(bTomorrowHoliday, zTomorrowHolidayName, bIsHoliday, zHolidayName, zName, uCategory, uHolidayDay, uHolidayMonth, uHolidayYear)


                  if uCategory == HOLIDAY_CATEGORY_NO_WORK then {
                  if uTomorrowDay == uHolidayDay and uTomorrowMonth == uHolidayMonth and ( uTomorrowYear == uHolidayYear or uHolidayYear == 0u16 ) then {
                  bTomorrowHoliday = 1b01;
                  zTomorrowHolidayName = $VA - $ + zName;
                  } endif;
                  if uTodayDay == uHolidayDay and uTodayMonth == uHolidayMonth and ( uTodayYear == uHolidayYear or uHolidayYear == 0u16 ) then {
                  bIsHoliday = 1b01;
                  zTodayHolidayName = zName;
                  } endif;
                  } endif;


                  if uCategory == HOLIDAY_CATEGORY_INFO then {
                  if uTodayDay == uHolidayDay and uTodayMonth == uHolidayMonth and ( uTodayYear == uHolidayYear or uHolidayYear == 0u16 ) then {
                  bIsHoliday = 0b01;
                  zTodayHolidayName = zName;
                  } endif;
                  } endif;


                  :end
                  never fummel a running system...

                  Kommentar

                  Lädt...
                  X