smartvisu - Kalender

Begonnen von redlav, 03 April 2015, 15:21:20

Vorheriges Thema - Nächstes Thema

redlav

Hallo,

da mein WiKi-Account noch nicht da ist, fasse ich hier nochmal alles zum Thema Kalenderwidget zusammen.

Um einen Kalender in SV mit dem Widget widget_ical einzubinden, ist folgendes zu tun:

1. Die Datei iCalcreator.class.php aus dem Paket http://kigkonsult.se/downloads/index.php#iCalcreator
    unter einem beliebigen Pfad abgelegt werden, der aber in der ical.php eingetragen werden muss.
    Dabei muss auf die Rechte der Datei geachtet werden. Es sollten die gleichen User/Group-Rechte verwendet werden,
    wie auch bei den Dateien im pages Ordner
   
2. Ablegen der Datei ical.php in das Verzeichnis /smartVISU/lib/calendar/service

3. Ablegen der Datei widget_ical.html in das Homeverzeichnis der eigenen Seite z.b. /smartVISU/pages/fhem

4. Definition der Kalender in den Settings statt. Die Kalender werden wie folgt definiert:
      - wie bisher nur die Url
            http://xxx:xxx@xxx.xxx.xxx.xxx/davical/caldav.php/norbert/calendar
      - die Url mit Parameter Farbe und Icon
            http://xxx:xxx@xxx.xxx.xxx.xxx/davical/caldav.php/norbert/calendar(Default Farbe,Default Icon)
      - die Url mit Parameter Farbe
            http://xxx:xxx@xxx.xxx.xxx.xxx/davical/caldav.php/norbert/calendar(Default Farbe)
      - die Url mit Parameter Icon
            http://xxx:xxx@xxx.xxx.xxx.xxx/davical/caldav.php/norbert/calendar(,Default Icon)
      - zwei Kalenderurls mit unterschiedlichen Parametern
           http://xxx:xxx@xxx.xxx.xxx.xxx/davical/caldav.php/norbert/calendar(,message_garbage);http://xxx:xxx@xxx.xxx.xxx.xxx/davical/caldav.php/norbert/Geburtstage(#ff69b4,scene_party)
              - eine lokale Url
           file:/tmp/calendar.ics
      - zwei Kalenderurls eine lokale und eine auf einem Caldav/Webserver
           file:/tmp/calendar.ics(,message_garbage);http://xxx:xxx@xxx.xxx.xxx.xxx/davical/caldav.php/norbert/Geburtstage(#ff69b4,scene_party)
      
      Wird eine lokale Datei verwendet, muss auf die Rechte der Datei geachtet werden. Es sollten die gleichen User/Group-Rechte verwendet werden,
      wie auch bei den Dateien im pages Ordner
      
      Die Icons sind die Namen der png-Dateien ohne .png. Wenn keine Parameter, für Farbe und Icon mitgegeben werden und auch keine in den Terminen hinterlegt sind,
      wird ein Standardicon und eine Standardfarbe gesetzt. Das setzen dieser Parameter pro Termin erfolgt im Beschreibungsfeld des jeweiligen Termin.
      
5.  Einbinden es Kalenders auf einer SV-Seite:
    {% import "widget_ical.html" as calendar %}
    {{ calendar.list('calendarlist', 'Termine', 6, 21) }}
    Die erste Zahl (6) ist die Anzahl der Termine die aufgelistet werden. Die zweite Zahl (21) ist die Anzahl der Tage, die
    im Kalender in die Zukunft geprüft wird, ob sich ein Termin wiederholt.

Ich hoffe, damit habe ich alles noch einmal Sinnvoll zusammengefasst.

Gruß Norbert

fidel

Ich würde es rein setzen...!?

Gruß Steven
Fhem 5.6 auf Cubietruck,CUL,CUL_TCM97001,FritzBox7390,HMLAN,CUL_HM_HM_OU-16LED,CUL_HM_HM_SEC_SC,CUL_HM_HM_LC_SW4,CUL_HM_HM_RT_DN,HUEBridge,HUEDevice,Panstick,Panstamp (binouts,rgddriver mit dht22),PHTV,Yamaha-AVR,Withings,ELV-IPS, etc...

bumbumb

Hallo,

danke für die Tipps ich habe es genau so gemacht, aber kalender bleibt leer. Hat jemand eine Idee was es noch sein könnte
Gruß
bumbumb

redlav

Hallo bumbumb,

da ich keine Glaskugel besitze, musst du schon ein wenig mehr an Informationen liefern.
Mach mal in deinem Browser die Konsole auf und klicke auf das +-Zeichen vor der Kalenderzeile und dann da auf Antwort klicken.

Die Zeile sollte ungefähr so aussehen:
http://xxx.xxx.xxx.xxx/smartvisu/lib/calendar/service/ical.php?url=Termine.ics%28%23ff69b4%2Cscene_party%29&count=20&days=7
Was steht dann in Antwort?

Gruß Norbert

redlav

Zitat von: fidel am 03 April 2015, 17:11:29
Ich würde es rein setzen...!?

Gruß Steven

Hallo Steven,

wäre toll, wenn du das machen würdest! Ich muss bei den WiKi-Admins nochmal nachhaken....

Gruß Norbert

bumbumb

hier die bilder aber es klappt nicht woran liegt es

bumbumb

hallo wie soll das gehen mit +- dort habe ich nichts

redlav

Mach in den Directories mal ein ls -l, damit man Benutzer und Gruppe sieht.
Welchen Browser benutzt du? Wenn es der Firefox ist drücke mal F12. Dann öffnet sich die Konsole, die ich meinte.
Dort suchst du mal die Kalenderzeile und klickst auf das + Zeichen davor. In dem Bereich, der sich da geöffnet hat,
klickst du auf Antwort. Was steht da?

bumbumb

diese antwort kommt bei firefox

<html class="ui-mobile">

    <head></head>
    <body class="ui-mobile-viewport ui-overlay-a">

    <script type="text/javascript"></script>
    <div id="config" class="base ui-page ui-body-a ui-page-header-fixed ui-page-active" data-theme="a" data-role="page" data-url="config" tabindex="0" style="padding-top: 64px; min-height: 665px;"></div>

<div class="ui-loader ui-corner-all ui-body-a ui-loader-default"></div>

    </body>

</html>

bumbumb


redlav

Ok, die Dateien gehören schon mal root. Das solltest du mit einem
sudo chgrp www-data ical.php
sudo chown www-data ical.php
sudo chgrp www-data kalender.ics
sudo chown www-data kalender.ics
im jeweiligen Directory ändern.

Im Firefox bist du noch nicht ganz richtig. Auf Konsole | Alle und dann wie im Screeshot zu sehen ist.


bumbumb

wie komme ich genau auf die konsole die rechte habe ich neu gesetzt ich bin auf der index.html und dann beschreibe es bitte mal kurz danke

dev0

Deine Datei heißt kalender.ics, in der Konfig steht aber kalendar.ics.

redlav

eine kleine Anleitung zum Firebug findest du hier:https://www.youtube.com/watch?v=1K7bcLjEfds

kalender != kalendar

Respekt, das muss man erst einmal sehen 8)

bumbumb

ja das ist mir auchaufgefallen aber er kommt nicht zur ansicht. was kann es noch sein

fidel

Hi redlav,

hier mal der Link zum Wiki.

http://www.fhemwiki.de/wiki/SmartVisu/ical

Ich habe es versucht ein wenig strukturiert unter http://www.fhemwiki.de/wiki/SmartVisu aufzubauen.

Kritik?  Vorschläge?
Sollte ich es vielleicht unter http://www.fhemwiki.de/wiki/SmartVisu/widgets/ical packen?
Fhem 5.6 auf Cubietruck,CUL,CUL_TCM97001,FritzBox7390,HMLAN,CUL_HM_HM_OU-16LED,CUL_HM_HM_SEC_SC,CUL_HM_HM_LC_SW4,CUL_HM_HM_RT_DN,HUEBridge,HUEDevice,Panstick,Panstamp (binouts,rgddriver mit dht22),PHTV,Yamaha-AVR,Withings,ELV-IPS, etc...

bumbumb

ich habe firebug installiert es scheint als ob die ical von dem kalender nicht aufgerufen werden.

redlav

Fehlermeldungen?
Las dir doch nicht alles aus der Nase ziehen!

bumbumb

so folgendes kommt raus. was könnte es sein

redlav

Zitat von: fidel am 03 April 2015, 20:34:49
Hi redlav,

hier mal der Link zum Wiki.

http://www.fhemwiki.de/wiki/SmartVisu/ical

Ich habe es versucht ein wenig strukturiert unter http://www.fhemwiki.de/wiki/SmartVisu aufzubauen.

Kritik?  Vorschläge?
Sollte ich es vielleicht unter http://www.fhemwiki.de/wiki/SmartVisu/widgets/ical packen?
Hallo fidel,

sehr schön! Der Ablageort ist erste einmal in Ordnung, wenn da vielleicht mal mehr steht, kann man die Seite ja immer noch auf eine widget-Seite verschieben.

Das einzige, was ich noch gerne anders formulieren würde, wäre der Punkt mit den Dateiberechtigungen. Kannst du die Sätze "Dabei muss auf die Rechte der Datei geachtet werden. Es sollten die gleichen User/Group-Rechte verwendet werden, wie auch bei den Dateien im pages Ordner." und "Wird eine lokale Datei verwendet, muss auf die Rechte der Datei geachtet werden. Es sollten die gleichen User/Group-Rechte verwendet werden, wie auch bei den Dateien im pages Ordner." aus den beiden Punkten herausnehmen und dafür vor dem Punkt "Eininden des Kalenders" den folgenden Satz einfügen:
"Bei allen abgelegten Dateien muss auf die Rechte geachtet werden. Es sollten die gleichen User/Group-Rechte verwendet werden, wie auch bei den Dateien im pages Ordner."

Danke für deine Unterstützung!

Gruß Norbert

bumbumb

hab ihr ne idee warum er nicht geladen wird das wiki ist super.

fidel

Mach ich bei Gelegenheit noch. ;)
Fhem 5.6 auf Cubietruck,CUL,CUL_TCM97001,FritzBox7390,HMLAN,CUL_HM_HM_OU-16LED,CUL_HM_HM_SEC_SC,CUL_HM_HM_LC_SW4,CUL_HM_HM_RT_DN,HUEBridge,HUEDevice,Panstick,Panstamp (binouts,rgddriver mit dht22),PHTV,Yamaha-AVR,Withings,ELV-IPS, etc...

bumbumb

als ob der die kalender.ics nicht finden kann oder

redlav

In deinem Kalender steht aber auch für die nächsten 21 Tage ein Termin, oder?
Im Anhang findest du eine neue ical.php, die ein paar Ausgaben in das eben von dir gepostete Fenster macht.
Kopier die mal auf deinen Server (Rechte beachten!) und mach von der Ausgabe einen neuen Screenshot.

bumbumb


redlav


bumbumb

ja Termine sind alle für ein Jahr vorhanden, der Anhang fehlt noch danke bumbumb

bumbumb

hallo,

so das kommt raus.

CalendarDefinition : file:/var/tmp/kalender.ics
Type = http
Type = http-Config

[]

redlav

Hallo,

probier mal die Datei aus dem Anhang.

Gruß Norbert

bumbumb

danke jetzt geht der Kalender kannst du mir sagen was es war??? Wie bekomme ich jetzt die schoenen icons für die Tonnen (gelbe blaue,schwarze bio etc.) etc zur anzeige vielen Dank bis super bumbumb

redlav

Hallo bumbump,

das Problem habe ich selbst verursacht. Bei meinen letzten Änderungen habe ich ein paar Debug-Zeile eingefügt.
Dabei habe ich den Fehler eingebaut :( Man sollte nach einer Änderung auch immer alles testen.....

Die Icons sind schon da. Ruf deinen Kalender mal so auf: file:/var/tmp/kalender.ics(,message_garbage)
Dann hast du schon mal das richtige Icon. Die Farben musst du dann in den einzelnen Terminen hinterlegen. Sie dir mal den ersten Post des Threads an. Da gibt es einen Screenshot Termin.png. Im Beschreibungsfeld ist eine Farbe hinterlegt. Den Hexcode kannst du dir hier generieren:http://html-color-codes.info/webfarben_hexcodes/

Gutes gelingen!


Gruß Norbert

bumbumb

mit welchen Tool bearbeites du die Kalender mit Outlook,
kann man mit suchen ersetzen arbeiten oder muss alles manuel angepasst werden wie hast du es gemacht. Danke für deine Hilfe

redlav

Ich habe mir Sunbird installiert. Fand ich recht simple in der Anwendung. Da erstelle ich mir dann wiederholende Termine
und trage die Farbe in das Beschreibungsfeld ein. Dann verschiebe ich noch die paar Termine, die auf einen Feiertag fallen,
oder sonstwie aus der Reihe tanzen. Fertig.
Du musst dann nur noch die ics-Datei auf deinen Server bringen.


redlav

Hallo,

ich habe die ical.php im ersten Post aktualisert. Jetzt funktioniert das Script auch, wenn in einem Kalender für die angegebene Anzahl von Tagen kein Termin gefunden wurde.

Gruß Norbert

what

Hallo,

wenn ich in smartVISU den absoluten pfad zu einer *.ics datei angebe, werden die Termine angezeigt. (http://user:pw@192.168.178.100:5005/web/kalender/kalender.ics)
Gebe ich allerdings nur den Paf auf den CalDav Kalender an (selber Pfad nur ohne Angabe einer ics Datei), bleibt der Kalender leer. (http://user:pw@192.168.178.100:5005/web/kalender/)

Irgendeine Idee an was das liegen koennte?

Vielen Dank schon mal im voraus.

redlav

Hallo,

hast du schon mal in der Konsole deines Browser nachgesehen? Poste mal was da als Antwort kommt. Was passiert, wenn du die Adresse direkt im Browser aufrust. Nomalerweise sollte dann die ics-Datei heruntergeladen werden.

Gruß Norbert

what

#36
Hallo Norbert,

danke für deine schnelle Antwort.

Wenn ich den Pfad zum Kalender im Browser aufrufe bekomme ich ein "permission denied".
Folgendes spuckt dann Firebug aus.


Gebe ich den Link zu einer ics datei in dem Kalender an wird mir selbiges zum download angeboten.
Besitzer des Kalenders ist der Benutzer mit dem ich mich auch anmelde. Der Kalender liegt bei mir zuhause auf einem synology NAS.
Aktuell sieht es mir nach einem Kalener/NAS Problem aus, kann hier aber nichts falsches entdecken, zumal ein mail client sich Problemlos verbinden kann.

Gruss Wolfram


redlav

Hallo Wolfram,

ich habe auch ein Synology-NAS und kann das Problem nachvollziehen. Das sieht fast so aus, als ob User/PW zweimal
verlangt werden. Wenn ich das im Sunbird einrichte, fragt er mich trotz User/PW in der Url nochmal nach dem Passwort.
Da bin ich jetz echt überfragt. Reicht es nicht, wenn der direkte Zugriff auf die ics-Datei gelingt ?
Ich habe auf meinem FHEM-Server einen eigenen CalDav-Server installiert und habe dadurch die Probleme nicht festgestellt. :-[
Ich kann da bei Gelegenheit nochmal forschen, sehe da aber wenig Chancen auf erfolg.

Gruß Norbert




what

Guten Abend Norbert,

das ist schon mal beruhigend zu wissen das es wohl am NAS liegt.Das erspart mir weitere Nachfroschungen.... somit danke vielmals für deine Bemühungen und die Bestätigung.
Ich schaue das ich mir nun einen anderen CalDav server installiere. Der Direkt Aufruf der ics Datei ist nicht möglich da bei mir jeder Kalendereintrag eine eigene ics datei auf dem caldav server ablegt..... :(

In diesem Sinne schönen Abend,
Grüsse,
Wolfram

niwa83

Hallo,

erst mal Danke für das Widget.

Ich hab das Problem, das die Visu permanent die URL des Kalenders verliert. Sprich die Beispiel URL wird in der Konfig angezeigt.

Woran kann das liegen?

Gruß
Niwa

dev0

Wenn Dein Client keine feste IP hat, dann kannst Du in der config.ini / config.php den Kalender unter [default] konfigurieren.

tboston

Servus,

wie könnte ich vorgehen wenn mein Kalenderuser ein Passwort mit Sonderzeichen hat und das ganze via https läuft? Das Sonderzeichen nimmt er nicht als Teil des Passworts, das sehe ich in Firebug. Ebenso denke ich, dass das SSL Zertifikat ja irgendwie bestätigt werden muss.

--
Proxmox Host -> Debian VM -> FHEM 5.9
CUL868 - CUL433
3x Max! Wand-Thermostat - 3x Max! Fenstersensoren - 3x Max! Heizthermostat - 3x Intertechno Funksteckdosen - 3x Brennenstuhl Funksteckdosen
Tradfri Zeugs

dev0

Wenn Sonderzeichen im Passwort wirklich stören, dann hast Du mMn zwei Möglichkeiten: die störenden Sonderzeichen nicht verweden oder den Code debuggen und einen Patch schreiben.
Wenn Du ein selbstsigniertes Zertifikat benutzt, dann hast Du mMn ebenfalls zwei Möglichkeiten: ersetze es durch ein Zertifikat, dass von einer offiziellen CA unterschrieben ist (kostenlos: letsencrypt.org, startssl.com) oder Dein Client muss dem selbstsig. Zertifikat vertrauen. Stichwort: Certificate Chain.

tboston

Das Zertifikat ist von CaCert.org, also auch so ein Dienst wie die von dir genannten. Zertifikate von letsencrypt oder startssl werden ja auch nicht automatisch akzeptiert. Weißt du wo ich die CA bestätigen kann vorher?

Ja Passwort ändern wäre natürlich eine Möglichkeit, dann müsste ich allerdings auf allen Geräten das Passwort wieder ändern, nervig.
Weißt du ob es vielleicht so funktioniert user:'passwort' ?
Ich finde leider keine Logs für SmartVisu, mit logs wäre das einfacher.

---
Tony
--
Proxmox Host -> Debian VM -> FHEM 5.9
CUL868 - CUL433
3x Max! Wand-Thermostat - 3x Max! Fenstersensoren - 3x Max! Heizthermostat - 3x Intertechno Funksteckdosen - 3x Brennenstuhl Funksteckdosen
Tradfri Zeugs

dev0

Zitat von: tboston am 31 Januar 2016, 08:12:43
Zertifikate von letsencrypt oder startssl werden ja auch nicht automatisch akzeptiert
Das sehe ich anders. Letsencrypt certificates sind beispielweise von IdenTrust "cross-signed". Alle aktuellen Browser oder Betriebssysteme sollten die Zertifikate als vertrauenswürdig einstufen.

Zitat von: tboston am 31 Januar 2016, 08:12:43
Weißt du wo ich die CA bestätigen kann vorher?
Ist mir kein Weg bekannt. Du kannst aber die root/intermediate Certificates der ausstellenden CA in dein System einbringen, wenn der CA nicht vertraut wird. Wieder das Stichwort: Cert Chain.

Zitat von: tboston am 31 Januar 2016, 08:12:43
Weißt du ob es vielleicht so funktioniert user:'passwort' ?
Unwahrscheinlich. Aber warum probierst Du es nicht einfach aus?

RoBra81

Guten Morgen,

ich teste für mich gerade Smartvisu, da ich mit der FTUI-Performance auf meinem alten Tablet sehr unzufrieden war. Der erste Eindruck ist sehr positiv. Nun wollte ich meinen Google-Kalender wie hier beschrieben einbinden, komme aber gerade nicht wirklich weiter. Ich habe die iCalcreator.class.php aus der Version 2.20.2 in /var/www/html/smartvisu/lib/iCalcreator kopiert, die ical.php angepasst und nach /var/www/html/smartvisu/lib/calendar/service kopiert. Bei beiden Dateien habe ich im Linux Rechte und Besitzer angepasst. Außerdem habe ich die widget_ical.html in meine Page kopiert.
In meiner Seite habe ich

  {% import "widget_ical.html" as calendar %}
  {{ calendar.list('calendarlist', 'Termine', 6, 21) }}


drin. Konfiguriert ist ical mit meinem privaten Google-Kalender-Link zur basic.ics. Wenn ich diesen Link im Browser eingebe, wird die ICS heruntergeladen. Leider zeigt die Smartvisu nix an...

GET http://xx.xx.xx.xx/smartvisu/lib/calendar/service/ical.php?url=https%3A%2...com%2Fprivate-xxxxxxxxxxxxxxxxx%2Fbasic.ics&count=6&days=21 500 (Internal Server Error)
Uncaught SyntaxError: Unexpected end of input


Woran kann das liegen, bzw. was kann ich zur Analyse noch liefern?

Vielen Dank
Ronny

Zeitisen

Hallo,

gibt es irgendwo einen screenshot von smartvisu?
Ein Bild sagt oft mehr als tausend Worte.

RoBra81


Zeitisen

Danke!

Ich dachte, dass im fhem-wiki und im Forum alles dazu zu finden sein müsste.
Dass ich gleich die ganze Welt brauche, hätte ich nicht erwartet.

Knurb

Ich habe mir den Kalender nun auch installiert.
Dank der guten Anleitung funktionierte das auch einwandfrei.

Die Termine aus meinem Google Kalender werden mir angezeigt, wenn ich die URL inkl. Farbe und Icon unter den Settings eintrage, wird mir auch dieses richtig angezeigt.
Wenn ich die nur die URL eintrage und die Farbe in der Terminbeschreibung im Format z.b. #8B5A2B angebe klappt das auch, was allerdings nicht funktioniert, ist die Definition eines Icons in der Beschreibung.

Egal ob

message_garbage.png
message_garbage
/sw/message_garbage.png
/var/www/html/smartvisu/icons/sw/message_garbage.png

in der Beschreibung steht, es erscheint immer das Standard Icon.

Hat jemand eine Idee woran das liegen könnte?

Danke,

Knurb

Gigafix

Hallo Knurb

Ich habe bei mir die Version 2.8 installiert. Dort benötigt man das .svg Format. Das sieht dann in der Terminbeschreibung so aus:
@icon        icons/ws/scene_party.svg
@color       #87CEFA

In der Version 2.7 sollte das aber auch mit .png genauso funktionieren, wenn der Dateipfad stimmt.

Gruß
Gigafix
VM Synology DS918 | CubieTruck |2x HMLAN | HMUSB | 3x HMWLAN | CCU2 | MAX-Cube | nanoCUL | ZWDongle |

dev0

Keine Fehlermeldung in der Browser Konsole oder Webserver Log?

Knurb

Ich habe jetzt euch erst einmal die SV Version 2.8 installiert. Leider brachte dies auch nicht den gewünschten Erfolg.

Stand ist immer noch der von gestern.

Ich kann einzig und allein die Farbe ändern, und auch nur dann, wenn ich nur den Farbcode eingebe.
Die Eingabe "@color       #87CEFA" bewirkt leider auch nichts. (siehe Bilder)

Die Browser Konsole liefert keinen Fehler. Im Apache Log taucht allerdings ein Eintrag auf, der mit der Sache zu tuen haben könnte.

Undefined index: content in /var/www/html/smartvisu/lib/calendar/calendar.php on line 58, referer: http://192.168.0.200/smartvisu/index.php

Eingerichtet habe ich es nach der Anleitung im Wiki, außer, dass die URL in der Konfig auf einen Google Kalender verweist (https://calendar.google.com/calendar/ical/................................................../basic.ics)


Hier noch die verwendete ical.php
<?php
/**
 * -----------------------------------------------------------------------------
 * @package     smartVISU
 * @author      Norbert Valder
 * @copyright   2014
 * @license     GPL [http://www.gnu.de]
 * @iCalcreator written by Kjell-Inge Gustafsson, http://kigkonsult.se/
 * -----------------------------------------------------------------------------
 */

require_once '../../../lib/includes.php';
require_once 
const_path_system.'calendar/calendar.php';
require_once 
"/var/www/html/smartvisu/lib/calendar/iCalcreator.class.php";  //Pfad anpassen
 
/**
 * This class reads a ical calendar
 */
class calendar_ical extends calendar{
/**
 * initialization of some parameters
 */
public function init($request)
{
parent::init($request);
$this->count = (int)$request['count'];
$this->days  = (int)$request['days'];
}
/**
* Parse and Expand the defined Calendar(s)
*/
public function run(){
$Debug false;
$Timestamptime();
$DateFrom = new DateTime("@$Timestamp");
$DateTo = new DateTime("@$Timestamp"); 
$DateTo->modify('+'.$this->days.'day');
$Calendar explode(';',$this->url);
foreach ($Calendar as $CalendarDefinition){
$ColorStd "";
$IconStd "";
$typ substr($CalendarDefinition,0,4);
if ($Debug == true){echo "CalendarDefinition : $CalendarDefinition\n";}
if ($Debug == true){echo "Typ : $typ\n";}
if ($typ == "file"){
if ($Debug == true){echo "Type = file\n";}
$http false;
$CalendarDefinition substr($CalendarDefinition,5);
if (strpos($CalendarDefinition,"(") > 0){
$CalendarDetails explode('(',$CalendarDefinition);
$Filename $CalendarDetails[0];
$CalendarParams explode(',',str_replace(")","",$CalendarDetails[1]));
$ColorStd $CalendarParams[0];
$IconStd $CalendarParams[1];
}else{
$Filename $CalendarDefinition;
}
$dir substr($Filename,0,strripos($Filename"/"));
$Filename substr($Filename,strripos($Filename"/") + 1);
}else{
$http true;
if ($Debug == true){echo "Type = http\n";}
if (strpos($CalendarDefinition,"(") > 0){
$CalendarDetails explode('(',$CalendarDefinition);
$CalendarUrl $CalendarDetails[0];
$CalendarParams explode(',',str_replace(")","",$CalendarDetails[1]));
$ColorStd $CalendarParams[0];
$IconStd $CalendarParams[1];
}else{
$CalendarUrl $CalendarDefinition;
}
}
if ($http != true){
if ($Debug == true){echo "Type = file-Config\n";echo "$dir\n";echo "$Filename\n";}
$Config = array("unique_id" => "Cale"
   "TZID"      => "Europe/Berlin",
"directory" => "$dir",
"filename"  => "$Filename");
}else{
if ($Debug == true){echo "Type = http-Config\n";echo "$Calenderurl\n";}
$Config = array("unique_id" => "Cale"
   "TZID"      => "Europe/Berlin",
"url"  => $CalendarUrl);
  
}  
$Vcalendar = new vcalendar$Config );
$Vcalendar->parse(); 
$Vcalendar->sort(); 
$EventArray $Vcalendar->selectComponents(intval($DateFrom->format('Y')),intval($DateFrom->format('m')),intval($DateFrom->format('d')),
 intval($DateTo->format('Y')),intval($DateTo->format('m')),intval($DateTo->format('d')),
 FALSEFALSETRUETRUE);
foreach( $EventArray as $Year => $YearArray) {
  foreach( $YearArray as $Month => $MonthArray ) {
   foreach( $MonthArray as $Day => $DailyEventsArray ) {
    foreach( $DailyEventsArray as $Vevent ) {
     $Start $Vevent->getProperty"x-current-dtstart" );
     $End $Vevent->getProperty"x-current-dtend" );
            $Summary $Vevent->getProperty"summary" );
            $Location $Vevent->getProperty"location" );
            $Description $Vevent->getProperty"description" );
            if (substr($Description,0,1) == "#" and substr($Description,7,1) == ":"){
             $Color substr($Description,0,7);
             $Icon substr($Description,8);
            }elseif (substr($Description,0,1) == "#" and substr($Description,7,1) != ":"){
             $Color substr($Description,0,7);
             if ($IconStd != ""){
             $Icon $IconStd;
             }else{
             $Icon "message_info";
             }
            }elseif (substr($Description,0,1) != "#") {
             if ($ColorStd != ""){
             $Color $ColorStd;
             }else{
             $Color "faebd7";
             }
             if ($IconStd != ""){
             $Icon $IconStd;
             }else{
             $Icon "message_info";
             }
            }else{
             if ($ColorStd != ""){
             $Color $ColorStd;
             }else{
             $Color "faebd7";
             }
             if ($IconStd != ""){
             $Icon $IconStd;
             }else{
             $Icon "message_info";
             }
            }     
        $temp[] = array($Start[1],$End[1],$Summary,$Location,'icons/ws/'.$Icon.'.svg',$Color);
      }
    }
  }
    }
}
  
$this->i=0;
sort($temp);
foreach ($temp as $Calendarline){
if ($this->== $this->count){
break;
}
  $this->data[] = array(
'pos' => $this->i++,
'start' => $Calendarline[0],
'end' => $Calendarline[1],
'title' => $Calendarline[2],
'where' => $Calendarline[3],
'icon' => $Calendarline[4],
'color' => $Calendarline[5]);
}
}
}


// -----------------------------------------------------------------------------
// call the service
// -----------------------------------------------------------------------------

$service = new calendar_ical(array_merge($_GET$_POST));
echo 
$service->json();

?>


und die calendar.php
<?php
/**
 * -----------------------------------------------------------------------------
 * @package     smartVISU
 * @author      Martin Gleiß
 * @copyright   2012 - 2015
 * @license     GPL [http://www.gnu.de]
 * -----------------------------------------------------------------------------
 */


require_once const_path_system.'service.php';


/**
 * This class is the base class of all services
 */
class calendar extends service
{
var $count 1;

/**
 * initialization of some parameters
 */
public function init($request)
{
parent::init($request);

$this->count $request['count'];
}

/**
 * prepare the data
 */
public function prepare()
{
foreach ($this->data as $id => $ds)
{
$start strtotime($ds['start']);
$end strtotime($ds['end']);

$this->data[$id]['starttime'] = transdate('time'$start);
$this->data[$id]['endtime'] = transdate('time'$end);

if (date('Y-m-d'$start) == date('Y-m-d'$end))
$this->data[$id]['period'] = transdate('short'$start).' - '.date('H:i'$end);
else
$this->data[$id]['period'] = transdate('short'$start).' - '.transdate('short'$end);

$this->data[$id]['weekday'] = transdate('l'$start);

// content
$tags null;

if ($this->data[$id]['icon'] == '')
$this->data[$id]['icon'] = 'pages/base/pics/trans.png';

preg_match_all('#@(.+?)\W+(.*)#i'$this->data[$id]['content'], $tags);
foreach ($tags[0] as $nr => $hit)
{
$tag trim($tags[1][$nr]);
if ($tag == 'icon')
{
if (is_file(const_path.$tags[2][$nr]))
$this->data[$id][$tag] = $tags[2][$nr];
}
elseif ($tag == 'color')
$this->data[$id][$tag] = '#'.trim($tags[2][$nr]);
}
}
}

}

?>



Knurb

Gigafix

#53
Hallo Knurb

In meinem Kalender habe ich es folgendermaßen im Beschreibungsfeld stehen -> siehe Anhang

Gruß
Gigafix

***EDIT***
Ich habe bei mir gerade noch einmal nachgesehen - ich habe auch den GoogleV3 Kalender eingebunden. Dort werden alle Accountangaben in der php Datei eingetragen. Beschreibung/Eintragung Zeile 35-43. Eventuell hilft diese Info noch etwas weiter.....
VM Synology DS918 | CubieTruck |2x HMLAN | HMUSB | 3x HMWLAN | CCU2 | MAX-Cube | nanoCUL | ZWDongle |

Knurb

Hi Gigafix,

Ich komme erst nächste Woche dazu es zu testen.

Melde mich dann.

Danke euch,

Knurb


molli123

Hallo,

ich bekomme den Kalender einfach nicht zum Laufen!!! Ich lade bei google die URL:

https://calendar.google.com/calendar/ical/maxmuster%40googlemail.com/private-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/basic.ics

herunter und trage diese auf der SV Configseite unter Kalender ein. Den Rest habe ich versucht nache Seite 1 zu machen.
Kann mir irgendwer helfen, wäre sehr dankbar.

Grüße Molli

Sebastiaan

#56
Hallo,

für alle die mit Owncloud 9.0 Arbeiten:

Den URL um ein ics datei zu exportieren hat sich geändert nach:

https://<username>:<passwd>@example.com/remote.php/caldav/calendars/username/calendarname?export

Siehe: https://forum.owncloud.org/viewtopic.php?t=24208

Hoffe dies hilft der ein oder andren...

Grüße,
Bas

sTaN

Hallo Zusammen,

hat den schon jemand den iCalcreator 2.22.1 zum Laufen bekommen? In der neusten Version sind sämtliche Klassen und Funktionen aufgesplittet worden...
ZitatThe iCalcreator 2.22 release requires PHP >= 5.3.0 due to major updates in the
selectComponents method.
The returnCalender/useCachedCalendar methods no longer stops PHP script (die),
  return TRUE on success!
iCalcreator.class.php is now split into class and function files and need a new
  PHP iCalcreator invoke.
Habe es noch nicht geschafft meinen Google Kalender in smartVisu einzubinden.

Gruß
sTaN
Raspberry Pi 3
2 x CUL CC1101-USB-Lite 868MHz
FS20 Komponenten, Philips HUE, Alexa-Fhem, MAX! Geräte, homebridge, harmony, Unifi, FirtzBox, MQTT, Aurora, Denon, Sonos, TabletUI, CALENDAR, EGPM2LAN, Pushover

littleswabi

Download link funktioniert nicht?!

Wenn ich auf die genannte Seite gehe und den Download starten will kommt nur

Zitat
SMTP Error: The following recipients failed: ical@kigkonsult.se Warning: Cannot modify header information - headers already sent by (output started at /customers/6/b/8/kigkonsult.se/httpd.www/includes/PHPMailer_5.2.0/class.phpmailer.php:640) in /customers/6/b/8/kigkonsult.se/httpd.www/downloads/dl2.php on line 635 Warning: Cannot modify header information - headers already sent by (output started at /customers/6/b/8/kigkonsult.se/httpd.www/includes/PHPMailer_5.2.0/class.phpmailer.php:640) in /customers/6/b/8/kigkonsult.se/httpd.www/downloads/dl2.php on line 636 Warning: Cannot modify header information - headers already sent by (output started at /customers/6/b/8/kigkonsult.se/httpd.www/includes/PHPMailer_5.2.0/class.phpmailer.php:640) in /customers/6/b/8/kigkonsult.se/httpd.www/downloads/dl2.php on line 637 Warning: Cannot modify header information - headers already sent by (output started at /customers/6/b/8/kigkonsult.se/httpd.www/includes/PHPMailer_5.2.0/class.phpmailer.php:640) in /customers/6/b/8/kigkonsult.se/httpd.www/downloads/dl2.php on line 638 Warning: Cannot modify header information - headers already sent by (output started at /customers/6/b/8/kigkonsult.se/httpd.www/includes/PHPMailer_5.2.0/class.phpmailer.php:640) in /customers/6/b/8/kigkonsult.se/httpd.www/downloads/dl2.php on line 639 Warning: Cannot modify header information - headers already sent by (output started at /customers/6/b/8/kigkonsult.se/httpd.www/includes/PHPMailer_5.2.0/class.phpmailer.php:640) in /customers/6/b/8/kigkonsult.se/httpd.www/downloads/dl2.php on line 640 Warning: Cannot modify header information - headers already sent by (output started at /customers/6/b/8/kigkonsult.se/httpd.www/includes/PHPMailer_5.2.0/class.phpmailer.php:640) in



rot-weiss4

Zitat von: littleswabi am 14 November 2016, 20:54:55
Download link funktioniert nicht?!

Wenn ich auf die genannte Seite gehe und den Download starten will kommt nur

Hab dasselbe Problem. Der Link im wiki führt leider auf dieselbe Seite. Einer eine Idee?

smai

Zur Info:
In smartVISU 2.8 ist bereits ein einfacher iCal-Client vorhanden, welcher mit einer einzelnen URL umgehen kann.

In der kommenden 2.9 wird man auch mehrere URLs angeben sowie die Standardfarbe je URL definieren können.
Nutzen kann man das dann mit dem normalen Widget calendar.list, welches ich für 2.9 ebenfalls noch weiter ausgebaut habe.

KOAL

Hi,

ich bekomm den Kalender auch nicht zum laufen bei smartvisu V2.8 :(
Ich hab jetzt schon den calender ordner von der Version 2.9 drüber gespielt,..bring auch nix.

Wo muss der Link zum Kalender den nun hin, und das der 1:1 genommen werden!??


danke LG
KOAL
1X DEBAIN 11 ESXI VM, Openvpn-Server, FHEM, DHCP, HM-LAN W, USB-Enocean, Smartvisu V3.X
1X UBUNU 20.X LTS ESXI VM, AUTO-SERVER, Openvpn-Backup Server
1X UBUNU 20.X LTS ESXI VM, MAILSERVER, CLOUD
1X Lockerstor 4, NAS + APC CS650
1X WIN-10 ESXI VM, BLUEIRIS CAM Server

smai

Zitat von: KOAL am 16 März 2017, 22:46:54
Ich hab jetzt schon den calender ordner von der Version 2.9 drüber gespielt,..bring auch nix.
Das ist definitiv keine gute Idee, die funktionieren nicht mit den Widgets in 2.8

Zitat von: KOAL am 16 März 2017, 22:46:54
Wo muss der Link zum Kalender den nun hin, und das der 1:1 genommen werden
Du wählst iCal als Service aus und gibst die URL im Feld URL ein - was ist daran nicht klar?  ;)

Banis

Hallo zusammen,

sorry wenn ich dieses alte Thema wieder hoch hole, aber ich bekomm das leider nicht hin wie es in der Anleitung beschrieben ist.
Das Problem fängt schon damit an, dass ich bei dem angegebenen Link die Datei iCalcreator.class.php nicht finden kann? Gibts die vielleichtnoch irgendwo anders oder heißt die jetzt iCalcreator.php?

Intel Nuc i8 mit Proxmox. FHEM läuft als LXC

h3llraider

Zitat von: smai am 17 März 2017, 20:39:31
Du wählst iCal als Service aus und gibst die URL im Feld URL ein - was ist daran nicht klar?  ;)

Funktioniert bei jemandem wirklich noch das Einbinden des Kalenders über den vorhandenen iCal-Client?
Ich habe sowohl GoogleV3 als auch ical probiert, die Termine der privaten ics-Datei werden aber nicht angezeigt.
Habe darüber hinaus auch probiert - eigentlich überflüssig - Benutzernamen und Passwort anzugeben, ebenfalls nichts.
In der config.php finde ich die eingetragenen Werte zwar, aber für mich sieht es so aus, als würde er überhaupt nicht versuchen, dort etwas anzuzeigen.
Weder in der Browser-Konsole noch im nginx-Log finde ich irgendwo einen Aufruf.

herrmannj

wenn Du die multiuser Erweiterung verwendest steht das in der config.ini

h3llraid3r

Nein, die nutze ich - zumindest nicht, dass ich wüsste - nicht. Lese ich jetzt das erste Mal.
Es gibt ja sowohl im Wiki als auch hier im Thread eine veraltete Anleitung, weil sich die Basis der dort verwendeten Dateien geändert hat (icalcreator). Aber in Version 2.8 gibt es ja die native Einbindung, dort werden die Daten über die GUI-settings gesetzt und mit calendar.list aufgerufen. Das mit der config.php hatte ich nur geprüft, damit sicher ist, dass die Daten aus der GUI auch wirklich gespeichert sind.

h3llraider

Ok, noch mal schnell nachgelesen, falls du damit das Verwalten der einzelnen Devices in fhem meinst - ja, das ist natürlich drin, per git clone geholt und die Dateien entsprechend kopiert. Da steht es natürlich auch in der .ini drin.

smai

Wenn du sehr viele Kalendereinträge hast, kann es zu deinem Timeout bei Abrufen des ICS kommen. Im ICS von Google lassen sich die Einträge nicht Filtern, deshalb werden immer alle Termine von Anbeginn der Zeit (bzw. deines Googlekalenders) abgerufen.
Leider kann ich dir dafür keine Lösung nennen.

In der kommenden Version gibt es eine Integration per Google API, da lassen sich die Termine gefiltert abrufen.

Aktuell läuft aber die Develop-Version nicht mit dem FHEM-Treiber, weil ich die Widgets umgebaut habe und der FHEM-Treiber nicht die Mechanismen vom smartVISU nutzt, sondern vieles doppelt implementiert hat.

dev0

Zitat von: smai am 18 November 2017, 12:56:18
Aktuell läuft aber die Develop-Version nicht mit dem FHEM-Treiber, weil ich die Widgets umgebaut habe und der FHEM-Treiber nicht die Mechanismen vom smartVISU nutzt
Was schlägst Du vor, damit FHEM auf Dauer sauber mit smartVISU genutzt werden kann?
- FHEM Treiber anpassen?
- Domotiga Treiber nutzen?

herrmannj

Was ist denn anders geworden ? Der original driver war so furchtbar unperformant. Wenn das was der fhem driver macht jetzt native geht kann /muss man das zurück drehen

smai

#71
@dev0:
Ich versuche mich aktuell an ersterem. Bzw. bin ich daran. FHEM aufzsaetzen um testen zu können.
Was kann eigentlich der FHEM-Treiber, was der Domotiga nicht kann?

@herrmannj:
Die Performance sollte kein Problem mehr sein. ich hatte diese mit 2.8 ja bereits deutlich verbessert und nun für 2.9 nochmal um 75% (also auf einen Viertel der Zeit) beschleunigt.

Anders geworden ist übrigens, dass der Event fürs update nicht mehr in einer Iteration für jedes Widget einzeln getriggert wird, sondern es ein einziges Trigger auf alle Widgets gibt.

dev0

@smai, herrmannj: Ich würde mich gerne raushalten, da js nicht meins ist. Ich wollte eher die Diskussion ankurbeln bzw. Probleme erfragen...

smai

@herrmannj
Das Ganze hier greift etwas vor. Wie erwähnt muss ich erst FHEM einrichten. Danach würde ich das gerne mit dir besprechen.
Vielleicht magst du dich ja im Gitter-Kanal melden, da lässt es sich etwas mehr Real-Time diskutieren.

h3llraid3r

Also das mit der Kalendergröße mag sein, der ist schon etwas älter... Ich probier das später mal mit einem neuen Kalender, dann müsste es ja gehen...

Bis zur 2.9 muss ich mir dann doch was basteln, über die CALVIEW in fhem könnte ich es ja - wenn auch nicht sonderlich elegant - per Value anzeigen lassen.

Dann freu ich mich mal auf die neue Version  :)

herrmannj

Zitat von: smai am 18 November 2017, 14:01:26
@herrmannj
Das Ganze hier greift etwas vor. Wie erwähnt muss ich erst FHEM einrichten. Danach würde ich das gerne mit dir besprechen.
Vielleicht magst du dich ja im Gitter-Kanal melden, da lässt es sich etwas mehr Real-Time diskutieren.
Ok

h3llraider

#76
Habe mir jetzt gerade noch einen jungfräulichen google-Kalender zugelegt, aber auch hier bekomme ich keine Termine angezeigt (habe mal 2 angelegt, das reicht ja zum Testen...).
Zusätzlich dazu nochmal komplett neu aufgesetztes smartvisu inkl der github-Version von herrmannj. Räume danach aus der alten Konfiguration kopiert und nginx inkl Pfadänderung neu gestartet.
Verhalten ist aber immer noch gleich, alles andere funktioniert, nur der Kalender bleibt leer.

Im nginx-error-log bekomme ich auch nur folgenden Fehler, der aber auch schon in der alten Version da war:
PHP message: PHP Notice:  Undefined index: d.m.Y in /var/www/smartvisu/lib/functions.php on line 126" while reading response header from upstream, client: 192.168.2.106, server: _, request: "GET /smartvisu/index.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "192.168.2.111:9090", referrer: "http://192.168.2.111:9090/smartvisu/index.php?page=config"

Bei strg+f5 der Kalender-Seite wird auch nichts ins error-log geschrieben.
Im Access-Log sieht man, dass der Aufruf zumindest mit 200er-Code richtig beantwortet wird:
192.168.2.106 - - [18/Nov/2017:17:10:46 +0100] "GET /smartvisu/index.php?page=termine HTTP/1.1" 200 2072 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0"

Lässt sich das irgendwie anders eingrenzen? Funktioniert das evtl mit Apache und php5 besser? Habe "natürlich" php7 und nginx laufen, sollte das das Auschlusskriterium sein, kann ich natürlich auch umswitchen...

EDIT:
Habe es jetzt mal mit apache probiert - bei php7 ist es geblieben, da müsste ich sonst die veralteten Pakete aktivieren - und es funktioniert ebenfalls nicht.
Also entweder mache ich hier einen groben Fehler, den ich einfach nicht sehe, oder es funktioniert so einfach nicht...

smai

Bei PHP 7 habe ich einen Verdacht: Das mbstring Modul muss altiviert sein. In PHP 5 war es das standardmässig, in PHP 7 nicht.

h3llraid3r

Habe ich jetzt mal installiert, ändert leider auch nichts.
Will aber auch niemanden übermäßig damit beanspruchen, wenn es da zukünftig ohnehin eine Lösung gibt. Man kann ja nicht immer alles sofort haben  :)

MarvinLu

#79
Schönen guten Abend zusammen,

ich würde dieses Thema gerne noch einmal aufgreifen, da ich vor dem gleichen Problem steht und es nicht gelöst bekomme..

Meine Kalender habe ich in der Config folgendermaßen eingebunden:
...
calendar_name = "Kal_MaPrivat,Kal_Abfall,Kal_MaArbeiten"
calendar_password = ""
calendar_service = "iCal_(e.g._Google)"
calendar_url = "https://calendar.google.com/calendar/ical/m.lutterbuese%40gmail.com/private-1234/basic.ics https://calendar.google.com/calendar/ical/l45mdklgovf1vl6r27ia74hrqs%40group.calendar.google.com/private-12345/basic.ics https://calendar.google.com/calendar/ical/f37golfhmul1bs4js33dfo8ub0%40group.calendar.google.com/private-123456/basic.ics"
calendar_username = ""
...


In der index.html sieht der Code folgendermaßen aus:
{% block content %}
   
<div style="float: left; width: 35%; margin-right: 2%; padding-right: 2%;">
{{ calendar.list('', 'Termine Privat', '5', '', '', 'Kal_MaPrivat') }}
{{ calendar.list('', 'Termine Arbeiten', '5', '', '', 'Kal_MaArbeiten') }}
{{ calendar.list('', 'Termine Privat & Arbeiten', 10, ['#724933','#0000CD'], '', ['Kal_MaPrivat','Kal_MaArbeiten']) }}
{{ calendar.list('', 'Test', 3) }}
        {{ calendar.waste('', 'Abfallkalender', 'Kal_Abfall') }}
    </div>
....


Das Ergebnis dessen ist im Anhang 1 zu sehen.. Nichtmal der Test-Kalender mit 3 Einträgen wird angezeigt..

Ich verwende SV2.9 und hoffe es kann mir jemand helfen..

Liebe Grüße und einen schönen Abend,
Marvin