Modul für Terminansicht CALVIEW

Begonnen von chris1284, 08 Februar 2014, 13:18:31

Vorheriges Thema - Nächstes Thema

HenrikAachen

Unter dem Motto: Jeder fängt mal klein an.
Vielen Dank. War natürlich die Klammer die zu viel war.

Danke.

PicNic

Hallo zusammen,

für alle, die wie ich das "Problem" haben mit der doppelten Anzeige der Termine bei Heute, Morgen und den folgenden Terminen nach Datum habe ich für mich eine Lösung gefunden die Funktioniert. Das möchte ich euch (als mein erstes Postiung hier in diesem Forum, denn ich beschäftige mich erst seit einigen Tagen mit FHEM) nich vorenthalten ...


Kalenderansicht:t:.* {
my $i;
my $ix = 1;
my $modtext = "<Datum>,<Zeit>,<Termin>,<Ort>,<Quelle> ";

for($i= 1;$i<= ReadingsVal("Kalenderansicht","c-today", 0);$i++){
$modtext .= "Kalenderansicht:<Heute>,today_".sprintf('%03d',$i)."_btime,today_".sprintf('%03d',$i)."_summary,today_".sprintf('%03d',$i)."_location,today_".sprintf('%03d',$i)."_source ";$ix++}

for($i= 1;$i<= ReadingsVal("Kalenderansicht","c-tomorrow", 0);$i++){
$modtext .= "Kalenderansicht:<Morgen>,tomorrow_".sprintf('%03d',$i)."_btime,tomorrow_".sprintf('%03d',$i)."_summary,tomorrow_".sprintf('%03d',$i)."_location,tomorrow_".sprintf('%03d',$i)."_source ";$ix++}

for($i= $ix;$i<= ReadingsVal("Kalenderansicht","c-term", 0);$i++){
$modtext .= "Kalenderansicht:t_".sprintf('%03d',$i)."_bdate,t_".sprintf('%03d',$i)."_btime,t_".sprintf('%03d',$i)."_summary,t_".sprintf('%03d',$i)."_location,t_".sprintf('%03d',$i)."_source ";}

fhem("modify RG_Kalenderansicht $modtext");
fhem("SAVE");
}


Ich habe hier die Variable $ix hinzugefügt. In dieser werden die Anzahl der Termine für heute und morgen gezählt und für c-term wird dann $i =$ix gesetzt. c-term fängt also erst nach dieser Anzahl von Terminen an zu listen. Ich hoffe, dass es der ein oder andere gebrauchen kann.

Viele Grüße
PicNic

cf

Super, danke, habs eingebaut - funktioniert. Genau das hatte ich gesucht.

hartenthaler

Bin ich eigentlich der einzige bei dem seit einiger Zeit die Termine nicht mehr nach Datum sortiert dargestellt werden?
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

chris1284

ja. wo werden sie nicht sortiert? im calview, der rg ?

hartenthaler

#725
Im calview sind die Termine bereits nicht mehr richtig sortiert.

defmod cv_KalenderGabiHermann CALVIEW KalenderGabiHermann
attr cv_KalenderGabiHermann group Termin
attr cv_KalenderGabiHermann maxreadings 10
attr cv_KalenderGabiHermann modes next
attr cv_KalenderGabiHermann room Termin
attr cv_KalenderGabiHermann stateFormat Anzahl Termine: c-term (heute: c-today, morgen: c-tomorrow)
attr cv_KalenderGabiHermann userReadings sprache_heute,sprache_morgen

Diese Definition ist seit langem unverändert. Ich habe noch eine alte fhem-Version auf einem anderen Raspi. Dort ist - so weit ich es sehen kann - alles identisch definiert und die Sortierung stimmt (die Termine an sich sind alle exakt identisch). Auf dem Produktionssystem sind die ersten drei Termine noch richtig sortiert, aber dann kommen Termine, die nicht korrekt einsortiert sind, denn der 5. und 6. Termin liegen im Dezember und müssten nach dem 7. Termin kommen. Hier der Auszug aus der raw-Definition mit 7 Terminen:

setstate cv_KalenderGabiHermann Anzahl Termine: 7 (heute: 0, morgen: 1)
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 c-term 7
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 c-today 0
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 c-tomorrow 1
setstate cv_KalenderGabiHermann 2016-11-26 22:40:00 sprache_heute Für heute stehen keine Termine im Kalender.
setstate cv_KalenderGabiHermann 2016-11-26 22:40:00 sprache_morgen Für morgen steht ein Termin im Kalender: um 00:00:00 Uhr für Gabi: x
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 state t: 7 td: 0 tm: 1
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_001_bdate 27.11.2016
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_001_btime 00:00:00
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_001_edate 08.12.2016
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_001_etime 00:00:00
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_001_location x
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_001_mode next
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_001_source KalenderGabiHermann
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_001_summary G: x
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_002_bdate 28.11.2016
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_002_btime 08:30:00
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_002_edate 28.11.2016
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_002_etime 09:30:00
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_002_location x
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_002_mode next
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_002_source KalenderGabiHermann
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_002_summary H: x
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_003_bdate 28.11.2016
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_003_btime 09:30:00
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_003_edate 28.11.2016
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_003_etime 17:30:00
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_003_location x
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_003_mode next
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_003_source KalenderGabiHermann
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_003_summary H: x
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_004_bdate 29.11.2016
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_004_btime 08:00:00
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_004_edate 29.11.2016
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_004_etime 08:15:00
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_004_mode next
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_004_source KalenderGabiHermann
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_004_summary x
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_005_bdate 13.12.2016
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_005_btime 08:00:00
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_005_edate 13.12.2016
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_005_etime 08:15:00
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_005_mode next
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_005_source KalenderGabiHermann
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_005_summary x
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_006_bdate 20.12.2016
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_006_btime 08:00:00
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_006_edate 20.12.2016
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_006_etime 08:15:00
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_006_mode next
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_006_source KalenderGabiHermann
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_006_summary x
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_007_bdate 29.11.2016
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_007_btime 12:00:00
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_007_edate 29.11.2016
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_007_etime 15:00:00
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_007_location zu Hause
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_007_mode next
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_007_source KalenderGabiHermann
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 t_007_summary HG: x
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 tomorrow_001_bdate morgen
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 tomorrow_001_btime 00:00:00
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 tomorrow_001_edate 08.12.2016
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 tomorrow_001_etime 00:00:00
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 tomorrow_001_location x
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 tomorrow_001_mode next
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 tomorrow_001_source KalenderGabiHermann
setstate cv_KalenderGabiHermann 2016-11-26 22:39:59 tomorrow_001_summary G: x

(habe nur location und Betreff durch x ersetzt).

Sehr eigenartig. Ist mir vor etwa zwei Wochen das erste Mal aufgefallen.

Hier die Versionen aus dem funktionierenden System

Latest Revision: 12634

File                        Rev   Last Change

fhem.pl                     12596 2016-11-17 16:27:57Z rudolfkoenig
################################## # $Id: 99_myUtilsEMONITOR.pm 2014-8 by Elektrolurch $
96_allowed.pm               11984 2016-08-19 12:47:50Z rudolfkoenig
90_at.pm                    12028 2016-08-21 12:08:28Z rudolfkoenig
98_autocreate.pm            11984 2016-08-19 12:47:50Z rudolfkoenig
57_Calendar.pm              11136 2016-03-28 14:02:04Z borisneubert
57_CALVIEW.pm               12054 2016-08-22 17:14:30Z chris1284
...


und hier aus dem nicht funktionierenden Produktivsystem
Latest Revision: 12656

File                    Rev   Last Change

fhem.pl                 12596 2016-11-17 16:27:57Z rudolfkoenig
60_allergy.pm           12020 2016-08-20 21:13:52Z markus-m
96_allowed.pm           11984 2016-08-19 12:47:50Z rudolfkoenig
90_at.pm                12028 2016-08-21 12:08:28Z rudolfkoenig
98_autocreate.pm        11984 2016-08-19 12:47:50Z rudolfkoenig
98_average.pm           12580 2016-11-15 06:31:47Z rudolfkoenig
57_Calendar.pm          11136 2016-03-28 14:02:04Z borisneubert
57_CALVIEW.pm           12054 2016-08-22 17:14:30Z chris1284
...
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

chris1284

Zur info/ als aublick auf eine Bald neue version

ich habe die calview erweiter:
- calview um description reading erweitert (Beschreibung eines Termins)
- es gibt ein attribut "isbirthday": wird dieses gesetzt wird in description nach inhalt gesucht und dieser vom aktuellen jahr abgezogne
- das ergebniss steh im reagding t_xxx_age / tomorrow_xxx_age /  today_xxx_age

bedingt eine view für geburtstage

todo:
- jareszahlenfeld variabel gestalten (description / location /...)
- prüfung ob jahreszahlenfeld eine (4stellige) zahl enthält die kleiner als das aktuelle jahr ist