FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Grinsekatze am 30 September 2016, 22:07:59

Titel: Einzelne Einträge im Calendar-Modul auslesen?
Beitrag von: Grinsekatze am 30 September 2016, 22:07:59
Hallo,

ich arbeite gerade an einer Darstellung meiner Calendar-Modul-Einträge. Dafür benötige ich jedoch eine Möglichkeit die einzelnen Einträge gezielt ansprechen zu können (z.B. Name, Datum und Begin vom Eintrag der als übernächstes ansteht). Das bekomme ich jedoch so nicht hin.

Ich kann zwar mit "get <Kalendarname> text next 5" mir die nächsten 5 Einträge anzeigen lassen. Jedoch kein expliziten Eintrag.
Hier habe ich bis jetzt nur die Möglichkeit inbetracht gezogen, das Ergebnis vom obigen Aufruf mit "get <Kalendarname> text next 4" zu vergleichen um so den Unterschied (Event 5) herausfiltern zu können. Das finde ich jedoch etwas umständlich und hoffe, dass hier Jemand ein anderen Tipp hat.
Titel: Antw:Einzelne Einträge im Calendar-Modul auslesen?
Beitrag von: KernSani am 30 September 2016, 22:18:36
Hi,

eine vielleicht etwas elegantere Methode wäre mit

get <Kalender> uid next 5 die UIDs zu holen und dann den entsprechenden Eintrag mit
get <Kalender> text <uid des 5. Eintrages> gezielt auszulesen.

Grüße,

Oli
Titel: Antw:Einzelne Einträge im Calendar-Modul auslesen?
Beitrag von: Grinsekatze am 30 September 2016, 22:31:19
Klingt gut.

Ich habe aber das Problem, dass ich es in einer PHP-Seite automatisiert einbinden möchte. Die UID muss ich ja zunächst händisch ermittteln.

Zunächst hatte ich gehofft, ich könnte zunächst mit die nächsten 5 Einträge auslesen und dann die Ausgabe an den Zeilenumbrüchen zerlegen. Im Anschluss dann einfach bei der jeweiligen Zeile an der entsprechenden Position den Inhalt auslesen um z.B. das Datum, Beginn oder Titel zu bekommen. Leider gibt es jedoch keine Zeilenumbrüche.

$content = "get <Kalendarname> text next 5";
$lines = explode('\r\n', $content);
$date1 = substr($lines[1],0 , 7); # gibt das Datum des 1. Termins aus
Titel: Antw:Einzelne Einträge im Calendar-Modul auslesen?
Beitrag von: KernSani am 30 September 2016, 22:58:17
hat mich jetzt doch interessiert

my $cal = fhem("get AbfallKal uid next 5");
my @lines = split /\s/,$cal;
my $entry = fhem("get AbfallKal text ".$lines[4])

gibt mir den 5. Eintrag aus...
Titel: Antw:Einzelne Einträge im Calendar-Modul auslesen?
Beitrag von: Hans Franz am 30 September 2016, 23:14:52
Zitat$lines = explode('\r\n', $content);
Ich glaube, als Zeilenende ist nur ein "\n" vorhanden.

Gruß
Hans
Titel: Antw:Einzelne Einträge im Calendar-Modul auslesen?
Beitrag von: ernst1024 am 30 September 2016, 23:33:43
ich habe es jetzt so:


<?php
$fcmd 
"get myCal text next\r\nQUIT\r\n";
$fsock fsockopen($fhemhost$fhemport$errno$errstr30);
fwrite($fsock$fcmd);
$result=fgets($fsock128);
echo 
"Kalender: $result";
?>



das holt mir immer den aktuellen (nächst aufkommenden) Eintrag. Aber du möchtest geziehlt den dritten oder so ansprechen?
Titel: Antw:Einzelne Einträge im Calendar-Modul auslesen?
Beitrag von: Grinsekatze am 01 Oktober 2016, 00:52:28
Jupp. Wie Ernst bemerkt hat, ist es für mein FHEM-Smart-Mirror-Projekt.

Hier möchte ich meine nächsten 6 Kalender-Einträge ausgeben. Jedoch etwas aufgepeppt und nicht nach dem Muster "<Titel> <Datum> <Uhrzeit>".
Es soll vielmehr in Abhängigkeiten erfolgen:
Wenn der Eintrag heute ist, dann soll auch stehen "<Titel> Heute um <Uhrzeit> Uhr".
Wenn der Eintrag binnen 6 Tagen ist, dann soll ausgegeben werden: "<Titel> am <Wochentag> um <Uhrzeit> Uhr".
Ist der Eintrag weiter als 6 Tage entfernt, dann soll ausgegeben werden: "<Titel> in <Anzahl der verbleibenden Tage> Tagen".

Das klappt nun auch (fast). Ich habe es nach etwas probieren doch durch ein Vergleich der 2 Kalender-Abfragen (X-Tage und X-Tage Plus 1) umgesetzt.

Lediglich einen Fehler habe ich offenbar noch in meinem Code (wohl in meiner IF-Schleife um das o.g. zu realisieren.
Er zeigt mir zzt. sowohl bei einem Termin am Montag (in 2 Tagen), als auch für ein Termin in 9 Monaten (an einem Montag) beides Mal an "am Montag um <Uhrzeit> Uhr".  :o
Titel: Antw:Einzelne Einträge im Calendar-Modul auslesen?
Beitrag von: KernSani am 01 Oktober 2016, 00:53:34
...und ich habe mir jetzt das hier gebastelt: https://forum.fhem.de/index.php/topic,58305.0.html
Titel: Antw:Einzelne Einträge im Calendar-Modul auslesen?
Beitrag von: knopf_piano am 08 Oktober 2016, 22:26:48
Meins: https://forum.fhem.de/index.php/topic,48562.msg497848.html#msg497848

Gesendet von meinem GT-I9301I mit Tapatalk