Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS-19000158 ics/CalDAV Kalender Client

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

    wintermute Ich kann die LBS ID auch Winni übertragen, wenn Winni den LBS pflegen will, da brauchen wir keinen 2.
    Mfg Micha
    Ich sage ja nicht, das wir alle dummen Menschen loswerden müssen, aber könnten wir nicht einfach alle Warnhinweise entfernen und den Dingen ihren Lauf lassen?

    Kommentar


      Zitat von Winni Beitrag anzeigen
      Ist ja nicht mein "eigener" Baustein, hab' nur einige Teile überarbeitet.
      Ich habe hier eine 0.7 auf meiner EDOMI Installation. Stell ich gerne zur Verfügung. Bitte eMail per PM mitteilen, dann sende ich den LBS zu.
      Hallo Winni und Michael,

      vielleicht könnt Ihr das jetzigen LBS (0.65) noch einmal so ergänzen, dass dieser auch mehrere CalDAV-Kalender verarbeiten kann, da der LBS nach der Ergänzung durch Mike (Glozukowsli) nur einen CalDAV-Kalender "versteht".
      Die bei *.ics-Kalendern funktionierende und bewährte Möglichkeit mehrere Kalender durch "|" getrnnt abzufragen ist leider noch nicht implementiert.

      Danke Euch
      Andreas

      Kommentar


        Zitat von ak68 Beitrag anzeigen
        dass dieser auch mehrere CalDAV-Kalender verarbeiten kann
        Ich hatte Dir doch per E-Mail ne 0.66 geschickt, funktioniert die nicht bzgl. mehrerer CALDAV Kalender?!

        Kommentar


          Zitat von Glotzkowski Beitrag anzeigen
          Ich hatte Dir doch per E-Mail ne 0.66 geschickt, funktioniert die nicht bzgl. mehrerer CALDAV Kalender?!
          Sorry, ist im Spam-Filter gelandet, werde gleich testen und heute Abend Bescheid geben

          Danke
          Andreas

          Kommentar


            Winni : hast Du den Baustein mit einem CALDAV-Server (nicht Nextcloud) im Einsatz?
            Mein Problem ist, dass ich keinen anderen als Nextcloud zur Verfügung habe, um das zu testen.
            Ich weiß daher leider nicht, wie dass Array ($events) aussieht, welches die "alte" CALDAV-Library in diesem Bereich zurückliefert und konnte aufgrund des Quelltextes bisher nur spekulieren:

            PHP-Code:
            if (strtolower($calType)=="caldav") {
                            # fetch data from a CalDAV resource
                            $cal=new CalDAVClient($url,$user,$pass,$calName);
                            $options=$cal->DoOptionsRequest();
                            $DEBUG && debug('Options: '.print_r($options,TRUE));
                            if (isset($options["PROPFIND"])) {
                                $cal->SetDepth(1);
                                $folder_xml=$cal->DoXMLRequest("PROPFIND", '<?xml version="1.0" encoding="utf-8" ?><propfind xmlns="DAV:"><prop><getcontentlength/><getcontenttype/><resourcetype/><getetag/></prop></propfind>');
                            }
                            $events=$cal->GetEvents();
                            foreach ($events as $event) {
                                $r.=$event['data']."\n";
                            }

                    }

            nach dem Einbau der neuen CALDAV-Library sieht das Script an der Stelle nun so aus:

            PHP-Code:
            if (strtolower($calType)=="caldav") {
                            require_once(
            '/usr/local/edomi/main/include/php/simpleCalDAV/SimpleCalDAVClient.php');

                            
            # fetch data from a CalDAV resource
                            
            $client = new SimpleCalDAVClient();

                            
            $client->connect($url,$user,$pass);
                            
            $arrayOfCalendars $client->findCalendars();
                            
            $client->setCalendar($arrayOfCalendars[$calName]);

                            
            $events_caldavobjects=$client->getEvents();

                            
            # Events werden als Objekt vom Typ CalDAVObject zurückgeliefert und die Attribute sind privat, daher müssen die Daten in ein assoziatives Array übertragen werden
                            
            foreach ($events_caldavobjects as $event_caldavobject) {
                                
            $events[] = array(    'href' => $event_caldavobject->getHref(),
                                                    
            'etag' => $event_caldavobject->getEtag(),
                                                    
            'data' => $event_caldavobject->getData()

                                                );
                            }

                            foreach (
            $events as $event) {
                                
            $r.=$event['data']."\n";
                            } 

            Kommentar


              Zitat von Glotzkowski Beitrag anzeigen
              [USER="939"]
              nach dem Einbau der neuen CALDAV-Library sieht das Script an der Stelle nun so aus:
              [/PHP]
              Für Winni als Hilfe:

              Bei Abfrage von 2 Kalendern (hauptkalender/ mullkalender) von owncloud/ nextcloud mit LBS V. 0.66 bringt Edomi folgende Fehlermeldungen:

              aocpnkfpnninmjlb.png

              Korrekt angezeigt werden die Termine des ERSTEN Kalenders, die Termine des Zweiten werden gar nicht gezeigt !

              Kommentar


                Sorry, ich bin da aktuell raus. Hab' mich damals reingekniet damit es für meine ICS Files funktioniert.
                Teste zur Zeit Tasmota, nebenher geht das im Moment nicht.

                Kommentar


                  Also ich habe jetzt netterweise eine Version 0.66 bekommen und gerade installiert.
                  Das Ganze klappt aber auch nicht.
                  Kann es sein, dass mein Kalender einen weg hat?

                  EDIT: Nein, gerade mit einem leeren Kalender versucht.... selbes Ergebnis...

                  Ich bekomme:
                  Code:
                   
                  2018-06-14 11:23:21 362977 ? 2275 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000158.php | Fehlercode: 2 | Zeile: 180 | array_multisort(): Array sizes are inconsistent ERROR
                  2018-06-14 11:23:21 363624 ? 2275 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000158.php | Fehlercode: 8 | Zeile: 240 | Undefined index: start ERROR
                  2018-06-14 11:23:21 363750 ? 2275 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000158.php | Fehlercode: 8 | Zeile: 247 | Undefined index: wholeday ERROR
                  2018-06-14 11:23:21 363883 ? 2275 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000158.php | Fehlercode: 8 | Zeile: 251 | Undefined index: moredays ERROR
                  2018-06-14 11:23:21 363955 ? 2275 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000158.php | Fehlercode: 8 | Zeile: 258 | Undefined index: reminder ERROR
                  2018-06-14 11:23:21 364026 ? 2275 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000158.php | Fehlercode: 8 | Zeile: 264 | Undefined index: start ERROR
                  2018-06-14 11:23:21 364139 ? 2275 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000158.php | Fehlercode: 8 | Zeile: 240 | Undefined index: end ERROR
                  2018-06-14 11:23:21 364264 ? 2275 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000158.php | Fehlercode: 8 | Zeile: 242 | Undefined index: start ERROR
                  2018-06-14 11:23:21 364336 ? 2275 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000158.php | Fehlercode: 8 | Zeile: 242 | Undefined index: start ERROR
                  2018-06-14 11:23:21 364409 ? 2275 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000158.php | Fehlercode: 8 | Zeile: 247 | Undefined index: wholeday ERROR
                  2018-06-14 11:23:21 364474 ? 2275 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000158.php | Fehlercode: 8 | Zeile: 251 | Undefined index: moredays ERROR
                  2018-06-14 11:23:21 364540 ? 2275 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000158.php | Fehlercode: 8 | Zeile: 258 | Undefined index: reminder ERROR
                  2018-06-14 11:23:21 364608 ? 2275 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000158.php | Fehlercode: 8 | Zeile: 264 | Undefined index: start ERROR
                  2018-06-14 11:23:21 364687 ? 2275 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000158.php | Fehlercode: 8 | Zeile: 334 | Undefined index: start ERROR
                  2018-06-14 11:23:21 364840 ? 2275 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000158.php | Fehlercode: 8 | Zeile: 358 | Undefined index: start ERROR

                  Kommentar


                    Ok, war mein Fehler. Der Kalender hatte automatisch bei der Anlage die Freigabe eines bestehenden Kalenders erhalten. Somit war beiden Kalendern (dem eigentlichen und dem neuen) ein zweiter freigegeben. Das führte dann wohl zu dem Fehler.
                    Freigabe gekillt und siehe da... Der Baustein wirft am Ende sinnvolle Daten raus...

                    Vielen Dank für all eure Mühen....

                    Kommentar


                      Zitat von Glotzkowski Beitrag anzeigen
                      Ich weiß daher leider nicht, wie dass Array ($events) aussieht, welches die "alte" CALDAV-Library in diesem Bereich zurückliefert und konnte aufgrund des Quelltextes bisher nur spekulieren:
                      Genau dieser Array müsste die Probleme machen:

                      Edomi-Fehlermeldung: array_multisort(): Array sizes are inconsistent

                      jonofe:
                      Einzige Vermutung ist, dass das array_multisort so nicht funktioniert, da das erste ein Werte-Array und das zweite ein Array von Arrays ist.
                      Und wenn das Sortieren schief geht, dann weiss ich nicht was das danach für Konsequenzen hat.

                      Ich befürchte, da kann nur wintermute als ursprünglicher Entwickler des LBS helfen.


                      Kommentar


                        Also bei mir funktioniert die Version 0.66 seite Tagen fehlerfrei und testweise mit einem 2. Kalender auch, werde das aber nochmal mit einem 2. Testen.
                        Syon hatte sich zuletzt auch positiv zu dem Ergebnis geäußter, wie sieht es da aktuell aus?

                        Kommentar


                          Das lief ganz gut am Anfang. Zuletzt hatte ich aber Fehler. Da das zur Zeit nicht unbedingt Priorität bei mir hat, habe ich den erstmal aus geschaltet. Wenn du das aber brauchst kann ich morgen nochmal versuchen und die Fehlermeldung Posten.

                          Kommentar


                            Zitat von Glotzkowski Beitrag anzeigen
                            Winni : hast Du den Baustein mit einem CALDAV-Server (nicht Nextcloud) im Einsatz?
                            Mein Problem ist, dass ich keinen anderen als Nextcloud zur Verfügung habe, um das zu testen.
                            Ich weiß daher leider nicht, wie dass Array ($events) aussieht, welches die "alte" CALDAV-Library in diesem Bereich zurückliefert und konnte aufgrund des Quelltextes bisher nur spekulieren:

                            nach dem Einbau der neuen CALDAV-Library sieht das Script an der Stelle nun so aus:

                            PHP-Code:
                            if (strtolower($calType)=="caldav") {
                            require_once(
                            '/usr/local/edomi/main/include/php/simpleCalDAV/SimpleCalDAVClient.php');

                            # fetch data from a CalDAV resource
                            $client = new SimpleCalDAVClient();

                            $client->connect($url,$user,$pass);
                            $arrayOfCalendars $client->findCalendars();
                            $client->setCalendar($arrayOfCalendars[$calName]);

                            $events_caldavobjects=$client->getEvents();

                            # Events werden als Objekt vom Typ CalDAVObject zurückgeliefert und die Attribute sind privat, daher müssen die Daten in ein assoziatives Array übertragen werden
                            foreach ($events_caldavobjects as $event_caldavobject) {
                            $events[] = array( 'href' => $event_caldavobject->getHref(),
                            'etag' => $event_caldavobject->getEtag(),
                            'data' => $event_caldavobject->getData()

                            );
                            }

                            foreach (
                            $events as $event) {
                            $r.=$event['data']."\n";

                            Nachdem leider Keiner hier helfen kann, den "Multisort-Fehler" zu finden habe ich mich daran versucht, als ersten Schritt zumindest ein Debugging einzubauen, leider ohne Erfolg:

                            neu:

                            2018_07_06_21_11_17_Z_Edomi_Logikbausteine_19000158_lbs.php_Notepad_.png
                            neu:
                            2018_07_06_21_10_13_Z_Edomi_Logikbausteine_19000158_lbs.php_Notepad_.png

                            Aufruf:

                            2018_07_06_21_13_23_Z_Edomi_Logikbausteine_19000158_lbs.php_Notepad_.png

                            Sandbox ohne Fehler, jedoch bricht das Hochladen ab:

                            2018_07_06_21_24_23_EDOMI_Administration_Opera.png

                            was mache ich falsch ?

                            Danke Andreas
                            Angehängte Dateien

                            Kommentar


                              Mach doch mal aus dem letzten Statement eine IF Anweisung:

                              PHP-Code:
                              if ($l $DEBUGwriteToCustomLog(...); 

                              Kommentar


                                Ich verstehe ja nicht wirklich, warum und wie Ihr diesen Esel unaufhoerlich pruegelt

                                Kommentar

                                Lädt...
                                X