Mahlzeit erstmal,
danke für den tip mit der Falschen Doku.
Jetzt habe ich mir die Neue Version installiert und weiter fleissig hier gelesen.
Ich habe jetzt 2 Scripte mal ausprobiert um mir damit eine Textbox, wie in Post #205 und #206 auf seite 21, zu „bauen“
Leider ohne erfolg.
Das andere script habe ich von hier #430
https://www.symcon.de/forum/threads/35728-Modul-iCal-Calender-in-IP-Symcon-lesen-und-verarbeiten?p=436203#post436203
Hier bekomme ich zumindest mal den Testtermin im Webfront Angezeigt. Wenn auch noch nicht so wie ich mir das Vorstelle (#205)
Dieses habe ich über eine String-Variable gemacht.
Der gleiche weg, über setvalue, klappt mit dem Code Post #206 aber nicht…hier wird kein Text in die Variable geschrieben…
Dabei finde ich diese art der Darstellung für mich eigentlich recht passend.
wenn das ganze auch mit dem code aus dem zweiten post auch so abzubilden wäre, solls mir auch recht sein.
hänge den code mal hier an
<?php
ICCR_UpdateCalendar(31231); // 14290 Instanz vom Terminkalender */
$calendar = ICCR_GetCachedCalendar(31231);
$calendar_array = json_decode($calendar, true);
//var_dump($calendar_array).PHP_EOL.PHP_EOL;
$heute = mktime(0, 0, 0, date("m") , date("d") + 0, date("Y"));
$heute_flag = true;
$morgen = mktime(0, 0, 0, date("m") , date("d") + 1, date("Y"));
$morgen_flag = true;
$uebermorgen = mktime(0, 0, 0, date("m") , date("d") + 2, date("Y"));
$uebermorgen_flag = true;
$ende = $uebermorgen + 86400;
$text = "";
SetValue(10677, false); /* Bool Variable die IPS sagt ob ich Urlaub habe wird gesetzt wenn ein Termin Urlaub heißt */
foreach ($calendar_array as $entry) {
if ($entry["Status"] == 'CANCELLED') continue;
if ($entry["allDay"] == false){
$stunde = date('G', $entry["From"]);
$minute = date('i', $entry["From"]);
if ($minute < 10) $minute = "";
$zeit = $stunde." Uhr ".$minute;
}
else{
$entry["From"] = mktime(0, 0, 0, date("m", $entry["From"]) , date("d", $entry["From"]), date("Y", $entry["From"]));
$entry["To"] = mktime(0, 0, 0, date("m", $entry["To"]) , date("d", $entry["To"]), date("Y", $entry["To"]));
}
if (($entry["From"] >= $heute) && ($entry["To"] <= $morgen)){
if (($entry["allDay"]) && (date('G', time()) < 13)){
if ($heute_flag){
$text .= "Heute ".PHP_EOL;
$heute_flag = false;
}
$text .= $entry["Name"]." ".PHP_EOL;
}
else if (($entry["allDay"] == false) && (time() < $entry["To"])){
if ($heute_flag){
$text .= "Heute ".PHP_EOL;
$heute_flag = false;
}
$text .= "um ".$zeit;
$text .= $entry["Name"]." ".PHP_EOL;
}
if (strpos($entry["Name"], "Urlaub") >= 0) SetValue(10677, true);
}
else if (($entry["From"] <= $heute) && ($entry["To"] >= $morgen)){
if ($heute_flag){
$text .= "Heute ".PHP_EOL;
$heute_flag = false;
}
$text .= $entry["Name"]." ".PHP_EOL;
}
if ($entry["From"] > $ende){
break;
}
}
foreach ($calendar_array as $entry) {
if ($entry["Status"] == 'CANCELLED') continue;
if ($entry["allDay"] == false){
$stunde = date('G', $entry["From"]);
$minute = date('i', $entry["From"]);
if ($minute < 10) $minute = "";
$zeit = $stunde." Uhr ".$minute;
}
else{
$entry["From"] = mktime(0, 0, 0, date("m", $entry["From"]) , date("d", $entry["From"]), date("Y", $entry["From"]));
$entry["To"] = mktime(0, 0, 0, date("m", $entry["To"]) , date("d", $entry["To"]), date("Y", $entry["To"]));
}
if (($entry["From"] >= $morgen) && ($entry["To"] <= $uebermorgen)){
if ($entry["allDay"]){
if ($morgen_flag){
$text .= "Morgen ".PHP_EOL;
$morgen_flag = false;
}
$text .= $entry["Name"]." ".PHP_EOL;
}
else if (($entry["allDay"] == false) && (time() < $entry["To"])){
if ($morgen_flag){
$text .= "Morgen ".PHP_EOL;
$morgen_flag = false;
}
$text .= "um ".$zeit;
$text .= $entry["Name"]." ".PHP_EOL;
}
}
else if (($entry["From"] <= $morgen) && ($entry["To"] >= $uebermorgen)){
if ($morgen_flag){
$text .= "Morgen ".PHP_EOL;
$morgen_flag = false;
}
$text .= $entry["Name"]." ".PHP_EOL;
}
if ($entry["From"] > $ende){
break;
}
}
foreach ($calendar_array as $entry) {
if ($entry["Status"] == 'CANCELLED') continue;
if ($entry["allDay"] == false){
$stunde = date('G', $entry["From"]);
$minute = date('i', $entry["From"]);
if ($minute < 10) $minute = "";
$zeit = $stunde." Uhr ".$minute;
}
else{
$entry["From"] = mktime(0, 0, 0, date("m", $entry["From"]) , date("d", $entry["From"]), date("Y", $entry["From"]));
$entry["To"] = mktime(0, 0, 0, date("m", $entry["To"]) , date("d", $entry["To"]), date("Y", $entry["To"]));
}
if (($entry["From"] >= $uebermorgen) && ($entry["To"] <= $ende)){
if ($entry["allDay"]){
if ($uebermorgen_flag){
$text .= "Übermorgen ".PHP_EOL;
$uebermorgen_flag = false;
}
$text .= $entry["Name"]." ".PHP_EOL;
}
else if (($entry["allDay"] == false) && (time() < $entry["To"])){
if ($uebermorgen_flag){
$text .= "Übermorgen ".PHP_EOL;
$uebermorgen_flag = false;
}
$text .= "um ".$zeit;
$text .= $entry["Name"]." ".PHP_EOL;
}
}
else if (($entry["From"] <= $uebermorgen) && ($entry["To"] >= $ende)){
if ($uebermorgen_flag){
$text .= "Übermorgen ".PHP_EOL;
$uebermorgen_flag = false;
}
$text .= $entry["Name"]." ".PHP_EOL;
}
if ($entry["From"] > $ende){
break;
}
}
//if (strlen($text) < 2) $text = "Sven Du hast Heute zum Glück keine Termine";
//print PHP_EOL.PHP_EOL.PHP_EOL.$text;
SetValue(35204, $text); /* 27911 Instanz einer Stringvariablen die den Text für alle Termine der nächsten 3 Tage enthält z.B. für Alexa */
?>