[Modul] iCal Calender in IP Symcon lesen und verarbeiten

Hallo SvenDc,

hier etwas zum Üben und lernen :slight_smile:

   
$Tag = substr($calSingleData['FromS'] ,8,2);
$Monat = substr($calSingleData['FromS'] ,5,2);
$Jahr = substr($calSingleData['FromS'] ,0,4);
echo $Tag.".".$Monat .".".$Jahr."
";
echo  "FromS:".$calSingleData['FromS'] . "
";

if ($calSingleData['allDay'] == true) 
{ ........
   

https://www.php.net/manual/de/function.substr.php

Liebe Grüße
lueralba

Vielen Dank für die erneute Hilfestellung…
Werde mich damit gleich mal auseinandersetzen…
Mit der substr-funktion hatte ich mich gestern auch kurz beschäftigt… Bin damit meinem Ziel auch näher gekommen… Aber halt nur näher…

Werde mich da mal gleich ran machen

<?php
//family calendar

$text='';
$Tag ='';
$Monat='';
$Jahr ='';
$Start='';
$Ende='';


$calDATA = json_decode(ICCR_GetCachedCalendar(31231),true);  //12345 = ID der  iCal Calendar Reader Instance
//var_dump ($calDATA);

foreach ($calDATA as $calSingleData)
{
    //Tage zurück/Voraus anzeigen ( 0 = Heute)
    $Vergangenheit=2;
    $Zukunft=5;

    if  ((substr($calSingleData['FromS'] ,0,10) >= date("Y-m-d",mktime(0, 0, 0, date("m")  , date("d")-$Vergangenheit, date("Y"))))  
         and  
         (substr($calSingleData['FromS'] ,0,10) <= date("Y-m-d",mktime(0, 0, 0, date("m")  , date("d")+$Zukunft, date("Y")))))
    {
        // echo  "UID:".$calSingleData['UID']."
";
        // echo  "Name:".$calSingleData['Name'] . "
";
        // echo  "Location:".$calSingleData['Location'] . "
";
        // echo  "Description:".$calSingleData['Description'] . "
";
        // echo  "From:".$calSingleData['From'] . "
";
        // echo  "To:".$calSingleData['To'] . "
";
        // echo  "FromS:".$calSingleData['FromS'] . "
";
        // echo  "ToS:".$calSingleData['ToS'] . "
";
        // echo  "allDay:".$calSingleData['allDay'] . "

";

    // Datumsformat
    $Tag        = substr($calSingleData['FromS'] ,8,2);
    $Monat      = substr($calSingleData['FromS'] ,5,2);
    $Jahr       = substr($calSingleData['FromS'] ,0,4);

    // Terminzeitraum
    $Start   = substr($calSingleData['FromS'] ,11,-9);
    $Ende    = substr($calSingleData['ToS'] ,11,-9);
    

           echo  $Tag.".".$Monat.".".$Jahr."
";
           echo  "FromS:".$calSingleData['FromS']."
";
           echo  "ToS:".$calSingleData['ToS']."
";


        if ($calSingleData['allDay'] == true) 
        {
            $text= $text . " " . $Tag . "." . $Monat . "." . $Jahr . " <- Ganztägig " . " -> " .$calSingleData['Name']. "
";
           
        }else{
            $text= $text . " " . $Tag . "." . $Monat . "." . $Jahr . " " . $Start . " - " . $Ende . " -> " .$calSingleData['Name']."
";
            
        }    
    }    
}  
SetValue(35204, $text);

?> 

Ich habe das Skript jetzt überarbeitet.
Werde mal sehen wie das mit der Automatischen Aktualisierung läuft

gruß
Sven

https://www.symcon.de/service/dokumentation/modulreferenz/event-control/

Dies war die Lösung :slight_smile:

edit:

hat sich erledigt :slight_smile:

Guten Morgen in die Runde,
ich habe nochmal eine kleine Frage.

In meiner Darstellung werden jetzt alle Termine in eine Zeile gesetzt.

Wie bekomme ich es hin das Jeder termin in einer neuen Zeile sitzt?

Hi,
PHP_EOL an jeden Termin anfügen und vermutlich Profil Textbox dem String zuweisen. Jupp geht gerade getestet.

Ralf

Hallo!

Ich habe ein Problem … hab das Modul Installiert und alle Daten eingegeben … dürfte auch soweit funktionieren hab danach einen Testeintrag im Kalender gemacht und diesen auch in der Meldervariable aber leider bekomme ich immer dieser die Meldung kein Eintrag obwohl dieser vorhanden ist, auch die Variable ändert sich nicht …

was mach ich hier falsch?

danke
LG
Christian

Hallo!

hat sich erledigt … waren zu viele Termin im Kalender daher wurden keine Termine ausgegeben

lg
christian

Hallo habe die Kalenderanzeige mit Daten darin am laufen.
Wie müsste ich vorgehen wenn ich bestimmte Termine Farblich anders angezeigt bekommen möchte?
Also Fruh-, Spät-, Nachtschicht, blaue, gelbe Tonne und so weiter.

Verwende das html skript von kris aus #536.

Muss / Kann man in die Datei eintragen das man nach bestimmten Wörtern im Kalender filtert und diese andersfarbig darstellen will?
Oder muss ich für jeden dieser Einträge einen Unterkalender in google erzeugen. Diesen mit der passenden URL von einem neuen Calendar Reader auslesen lassen und diesen dann mit der ID und einer neuen Farbe dann in die calendar.html einbauen.

Gruß Marius

Hallo!

Hab jetzt eine Frage … gibt es die Möglichkeit von IPS Texte zukünftige Ereignisse in den GoogleKalender zu übertragen ?

LG
Christian

Meiner Meinung nach geht das nur über verschiedene Kalender.

Hi,
ich habe wieder den validity error. Ich habe von meinem Landkreis eine ICS-Datei (Abfallkalender) in meinen Kalender eingefügt und die ICS enthält

URL;VALUE=URI:http://www.landkreis-verden.de/

woraufhin iCal

04.02.2021, 10:32:04 |              LOG_ERR | parse: URL validity error #2, ';VALUE=URI:http://www.landkreis-verden.de/'

meldet und nichts mehr macht.

Was kann ich machen?

Edit: hat sich erledigt. Aktuelle Beta klappt wieder:-)

Ralf

Funktionserweiterung zur Auswahl von einem Medienobjekt gewünscht

Ich habe mich mit dem Modul noch nicht im Detail beschäftigt, ich würde das aber einfach gerne nutzten um eine ical File, das in einem Medienobjekt in IP-Symcon liegt einzubinden.
Das geht wohl zur Zeit über den Umweg, dass man selber einen Webhook anlegt.

Könnte in dem Modul einfach ein Auswahlfeld vom Typ SelectMedia ergänzt werden? Dann könnte ich mir den Umweg über einen separaten Webhook sparen.

Ich habe da eine Frage:
Ich möchte nur den Kalender von Google darstellen. Also so in etwa:

Was muss ich da machen? Brauche ich dieses Modul dafür, wenn JA wie mache ich das?

Danke und lg

Hi,
wo darstellen? Im Web-Front? Am einfachsten wäre vielleicht es als externe Web-Seite einzubinden. Siehe:
https://www.symcon.de/service/dokumentation/komponenten/visualisierungen/webfront/editor/externe-seite/

Ralf

Ja, genau Danke Ralf.
Der Sinn von diesem Modul ist, die Termin auszuwerten, verstehe ich das richtig?

lg

Hi,
ja. Du kannst so einfach die Termine filtern und IPS drauf reagieren lassen. Ich lasse mir z.B. die Termine der nächsten 3 Tage wie z.B. Müll raus suchen und von Alexa vorlesen. Nur zur Anzeige wäre das Modul zu schade und zu viel.

Ralf

Morgen Leute,
ich habe jetzt das Modul installiert und bekomme folgende Fehlermeldung wenn ich auf Kalender laden klicke:

Den Thread habe ich bis 2019 durchforstet, aber keinen Anhaltspunkt gefunden :frowning:

Symcon Aktuell:

IP-Symcon 5.5, Raspberry Pi, 06.01.2021, 15f964b68d15

Modul iCal aktuell:

Version 2.0 #53

Bitte Danke
lg
Christian

Hi,
was für Zeiten hast Du denn eingestellt? Ich habe 14 Tage Vergangenheit und 60 Tage Zukunft. Die Meldung deutet drauf hin das Du zu viele Daten lesen willst und das kann man mit den Tagen steuern.

Ralf