Ankündigung

Einklappen
Keine Ankündigung bisher.

Holiday Liste pflegen

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

    Holiday Liste pflegen

    Hallo,
    Ich nutze den ENERTEX Holidays - Projekt Makro. Klappt prima, dafür vielen Dank.
    Nun würde ich das gerne "änderbar" gestalten, da die Bundesländer verschiedene Ferien haben und die Geburtstage bei mir mit erfasst werden.
    Ich stelle mir dazu vor, irgendwo ein File abzulegen, in welchem die Daten enthalten sind.
    Dann könnte der Nutzer - auch ohne das EIB-Studio da Daten eintragen.
    Deshalb meine Frage, gibt es denn die Möglichkeit eine Textfile zu hinterlegen, die der EIBPC dann einliest?
    Wenn ja, wo oder hat da einer eine bessere Idee?
    z.B. Eingabe per Oberfläche?
    never fummel a running system...

    #2
    Eine Idee war, ical-Dateien in den EibPC zu laden, z.B. über die Visu, und diese dann auswerten zu können.

    Bisher haben wir das nicht umgesetzt, weil uns nicht ganz klar ist, wie das dem (End-)Anwender ab besten und einfachsten zu präsentieren ist. Einfach nur eine Anzeige bringt gegenüber einem Web-Kalender per iframe ja keinen Mehrwert, also müssten die Ereignisse schon per EibPC-Logik sinvoll verarbeitet werden können.

    Vorschläge nehmen wir gerne entgegen!

    Kommentar


      #3
      naja, mir geht es nicht darum, den Kalender neu zu erfinden, sondern den EIBPC zu steuern.

      Mit der Feiertagefunktion kann ich z.B. die Leuchtwerbung in der Company an Feiertagen später starten, zuhause den Wecker auslassen usw.
      Jetzt sind die Feiertage je Bundesland verschieden und die Geburtstagsliste ändert sich auch. Da stirbt mal einer oder kommt einer hinzu.

      Eigentlich möchte ich nur den CodeTeil eben für den Enduser ohne EIBSTudio änderbar machen.

      vmAddHoliday(uTodayDay,uTodayMonth,uTodayYear,bTod ayHoliday, zTodayHolidayName, HOLIDAY_CATEGORY_BIRTHDAY, $Tim und Jan XXX$, HOLIDAY_CATEGORY_BIRTHDAY,17,7, HOLIDAY_ANNUAL)
      vmAddHoliday(uTodayDay,uTodayMonth,uTodayYear,bTod ayHoliday, zTodayHolidayName, HOLIDAY_CATEGORY_BIRTHDAY, $Beate XXX$, HOLIDAY_CATEGORY_BIRTHDAY,6,4, HOLIDAY_ANNUAL)
      vmAddHoliday(uTodayDay,uTodayMonth,uTodayYear,bTod ayHoliday, zTodayHolidayName, HOLIDAY_CATEGORY_BIRTHDAY, $Karin XXX$, HOLIDAY_CATEGORY_BIRTHDAY,26,10, HOLIDAY_ANNUAL)

      //InfoTage ohne Pre
      vmAddHoliday(uTodayDay,uTodayMonth,uTodayYear,bTod ayHoliday, zTodayHolidayName, HOLIDAY_CATEGORY_INFO, $Ged.NS Opfer$ , HOLIDAY_CATEGORY_INFO,27,01, HOLIDAY_ANNUAL)
      vmAddHoliday(uTodayDay,uTodayMonth,uTodayYear,bTod ayHoliday, zTodayHolidayName, HOLIDAY_CATEGORY_INFO, $Darst Herrn$ , HOLIDAY_CATEGORY_INFO,2,2, HOLIDAY_ANNUAL)
      vmAddHoliday(uTodayDay,uTodayMonth,uTodayYear,bTod ayHoliday, zTodayHolidayName, HOLIDAY_CATEGORY_INFO, $Valentinstag$ , HOLIDAY_CATEGORY_INFO,14,2, HOLIDAY_ANNUAL)
      vmAddHoliday(uTodayDay,uTodayMonth,uTodayYear,bTod ayHoliday, zTodayHolidayName, HOLIDAY_CATEGORY_INFO, $Josefstag$ , HOLIDAY_CATEGORY_INFO,19,3, HOLIDAY_ANNUAL)​
      Wenn man da iCal reinschieben könnte, dann wäre es ein leichtes, in der Visu die Liste zur Kontrolle darzustellen.
      Wenn Du jetzt Deinen Geburtstag reinschieben möchtest, dann schickst eine ical-Datei rein, sozusagen als "add".


      Vorschlag OK?

      never fummel a running system...

      Kommentar


        #4
        man könnte eine csv oder reine Textdatei einlesen (lassen)
        das wäre sozusagen die Ergänzung der vorhandenen sendftp-Funktion durch eine readftp-Funktion

        den Aufbau kann sich dann jeder User frei gestalten, egal ob jsof,xml, ical oder csv - eben KISS

        als Alternative: httpdownload​ verwenden
        Zuletzt geändert von EPIX; 03.12.2024, 09:05.
        EPIX
        ...und möge der Saft mit euch sein...
        Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

        Kommentar


          #5
          Zitat von TRex Beitrag anzeigen
          Vorschlag OK
          Als grober Vorschlag schon, der Teufel liegt aber im Detail. Problematisch ist, dass bei Kalendern jeder bisschen sein eigenes Süppchen kocht, unabhängig vom iCal-Format.

          Beispiel:
          Es gibt im Format die Definition von CATEGORIES. Dieses verwendet der Google Calender (http://schemas.google.com/g/2005#event) aber anders als z.B. Thunderbird.
          Damit fällt die Möglichkeit weg, das Feld zu verwenden, um obige Kategorien abzubilden (HOLIDAY_CATEGORY_INFO, HOLIDAY_CATEGORY_BIRTHDAY, ...).
          Bleibt im Grunde nur noch die Lösung, verschiedene Eingabedateien für die einzelnen Typen zu verwenden und wirklich nur die Zeiten und Beschreibung zu extrahieren. Für einen Müllkalender mit passender Tonnenfarbe müsste man dann aber auch wieder selbst Hand anlegen.

          Kommentar


            #6
            die Idee mit "Textfile" einlesen wäre schon ok, setzt aber dann ein Netzlaufwerk oder ähnliches voraus, aus dem gelesen werden kann. Oder bin ich da falsch?
            Denn das hat auch nicht jeder "parat".
            Wäre denn denkbar, sowas in der Visu einzugeben?
            never fummel a running system...

            Kommentar


              #7
              mit webinput...
              EPIX
              ...und möge der Saft mit euch sein...
              Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

              Kommentar


                #8
                Ja, ein webinput für Dateien wäre schon möglich und der sinnvollste Weg, Daten zur Laufzeit zu laden.
                Ist aber nur die halbe Miete. Es möchte niemand mit find() eingaben parsen, bzw. wir wollen das dem Kunden nicht (mehr) aufbürden.
                Und wer es möchte, kann ja jetzt schon den Umweg über httprequests gehen, um Daten einzulesen - eine Datei ist schnell auf ner NAS bereitgestellt.

                Kommentar


                  #9
                  Ein Grundkonzept könnte so aussehen (die Funktionen sind aktuell rein fiktiv):
                  • über einen webinput oder das EibStudio lädt man eine Datei ns /upload-Verzeichnis der Visu
                  • uCalendarHandle = parsecalendar($Dateiname$)
                  • mit Funktionen wie eventtoday(optionaler Filter), nextevent(optionaler Filter), listevents(startzeitpunkt, endzeitpunkt), currentevent(optionaler Filter) macht man die Auswertung. Diese geben das Event mit seinen Eigenschaften wie Summary, Beschreibung, Ort, start, ende (oder ganzer Tag), Created zB als JSON (Array) zurück.
                  Um uB zu prüfen, ob heute Gelbe Tonne ist, sollte ein
                  Code:
                  if eventtoday(uCalendarHandle, $Gelbe Tonne$) then {...} endif
                  genügen.

                  Das ganze mit mehreren Kalendern zB unterschiedliche Zwecke wie Geburtstage, Urlaub, ... die alle für andere Steuerungsaufgaben da sind:

                  Code:
                  if eventtoday(uBirthdayCalendarHandle, $Hans$) then {
                      sendmail($hans@example.com$, $Alles Gute$, $...$);
                  } endif

                  Kommentar


                    #10
                    gut, danke, vielleicht kann mir noch einer auf die Sprünge helfen.
                    Ich habe den Code mal erstellt:
                    Code:
                    :begin vmAdd_PreViewHoliday(zName, uHolidayDay, uHolidayMonth, uHolidayYear, uCategory)
                    :var uDay@
                    :var uMonth@
                    :var uYear@
                    :var zDay@
                    :var u_previewDay@
                    :var u_previewMonth@
                    :var u_previewYear@
                    :var bIsHoliday@
                    :var bIsPreview@
                        if convert(uHolidayYear,0u16) == HOLIDAY_ANNUAL then {
                            u_previewYear@ = split(utcconvert(utctime()),0u16,4u16);
                        } else {
                            u_previewYear@ = convert(uHolidayYear,$$);
                        } endif;
                        zDay@ = stringformat(u_previewYear@,0,3,4,4) +$-$c1+ stringformat(uHolidayMonth, 0, 3, 2, 2) +$-$c1+ stringformat(uHolidayDay, 0, 3, 2, 2) + $ 00:00:00$c32
                        u_Preview_DATE@ = utc(zDay@)-(24u64*3600u64*1000u64)
                        //YYYY-MM-DD HH:MM:SS
                        u_previewDay@ = split(utcconvert(u_Preview_DATE@),8u16,9u16)
                        u_previewMonth@ = split(utcconvert(u_Preview_DATE@),6u16,7u16)
                        u_previewYear@ = split(utcconvert(u_Preview_DATE),0u16,4u16)    ​
                    bekomme allerdings mehrere Fehler, zunächst

                    Laufzeitfehler:
                    ! Variable nicht definiert: >__vmAdd_PreViewHoliday_361__u_previewYear< !
                    ID:11
                    EibParser wurde mit Fehler beendet.

                    Fällt jemand ad hoc auf, warum das nicht geht= STehe auf dem SChlauch
                    never fummel a running system...

                    Kommentar


                      #11
                      Du musst alle mit
                      :var deklarierten Variablen auch (im globalen Kontext) definieren:

                      :var u_previewYear@
                      u_previewYear@=0u16

                      usw

                      Kommentar

                      Lädt...
                      X