Modul für Terminansicht CALVIEW

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

Vorheriges Thema - Nächstes Thema

chris1284

ZitatEdith:// ich habe erst einmal das Modul wieder über das Update eingespielt und nun werden wieder alle Termine angezeigt...!
nur so gibts die aktuelle version....

moonsorrox

#526
Zitat von: chris1284 am 05 Januar 2016, 06:27:23
nur so gibts die aktuelle version....
Bitte nicht missverstehen, ich hatte vorher alles aktuell...!
Ich wollte damit erreichen das ich die neuen Features bekomme was die Serientermine beinhaltet, da das aber nicht funktionierte, habe ich das Modul hier aus dem Thread genutzt...
Damit ging aber nichts wie von mir beschrieben.

Wenn ich heute am PC bin werde ich mal ein List reinstellen, evtl. kannst du dann mehr sagen.
Ich habe ja seit einiger Zeit dieses "ts" als letzte Anzeige wo immer eine 0 drin steht.

Hier mal das List:
Internals:
   CFGFN      ./FHEM/Kalender.cfg
   DEF        SchichtKalender 2 3600
   INTERVAL   3600
   KALENDER   SchichtKalender
   NAME       View_S
   NR         3638
   STATE      t: 10 td: 0 tm: 1 ts: 0
   TYPE       CALVIEW
   Readings:
     2016-01-05 12:10:19   c-started       0
     2016-01-05 12:10:19   c-term          10
     2016-01-05 12:10:19   c-today         0
     2016-01-05 12:10:19   c-tomorrow      1
     2016-01-05 12:10:19   state           t: 10 td: 0 tm: 1 ts: 0
     2016-01-05 12:10:19   t_001_bdate     06.01.2016
     2016-01-05 12:10:19   t_001_btime     22:00:00
     2016-01-05 12:10:19   t_001_edate     10.01.2016
     2016-01-05 12:10:19   t_001_etime     06:00:00
     2016-01-05 12:10:19   t_001_location 
     2016-01-05 12:10:19   t_001_mode      all
     2016-01-05 12:10:19   t_001_source    SchichtKalender
     2016-01-05 12:10:19   t_001_summary   Nachtschicht
     2016-01-05 12:10:19   t_002_bdate     11.01.2016
     2016-01-05 12:10:19   t_002_btime     14:00:00
     2016-01-05 12:10:19   t_002_edate     11.01.2016
     2016-01-05 12:10:19   t_002_etime     22:10:00
     2016-01-05 12:10:19   t_002_location   
     2016-01-05 12:10:19   t_002_mode      all
     2016-01-05 12:10:19   t_002_source    SchichtKalender
     2016-01-05 12:10:19   t_002_summary   Spätschicht
     2016-01-05 12:10:19   t_003_bdate     12.01.2016
     2016-01-05 12:10:19   t_003_btime     14:00:00
     2016-01-05 12:10:19   t_003_edate     12.01.2016
     2016-01-05 12:10:19   t_003_etime     22:10:00
     2016-01-05 12:10:19   t_003_location  Langenhagen
     2016-01-05 12:10:19   t_003_mode      all
     2016-01-05 12:10:19   t_003_source    SchichtKalender
     2016-01-05 12:10:19   t_003_summary   Spätschicht
     2016-01-05 12:10:19   t_004_bdate     13.01.2016
     2016-01-05 12:10:19   t_004_btime     14:00:00
     2016-01-05 12:10:19   t_004_edate     13.01.2016
     2016-01-05 12:10:19   t_004_etime     22:10:00
     2016-01-05 12:10:19   t_004_location   
     2016-01-05 12:10:19   t_004_mode      all
     2016-01-05 12:10:19   t_004_source    SchichtKalender
     2016-01-05 12:10:19   t_004_summary   Spätschicht
     2016-01-05 12:10:19   t_005_bdate     14.01.2016
     2016-01-05 12:10:19   t_005_btime     14:00:00
     2016-01-05 12:10:19   t_005_edate     14.01.2016
     2016-01-05 12:10:19   t_005_etime     22:10:00
     2016-01-05 12:10:19   t_005_location   
     2016-01-05 12:10:19   t_005_mode      all
     2016-01-05 12:10:19   t_005_source    SchichtKalender
     2016-01-05 12:10:19   t_005_summary   Spätschicht
     2016-01-05 12:10:19   t_006_bdate     15.01.2016
     2016-01-05 12:10:19   t_006_btime     14:00:00
     2016-01-05 12:10:19   t_006_edate     15.01.2016
     2016-01-05 12:10:19   t_006_etime     22:10:00
     2016-01-05 12:10:19   t_006_location   
     2016-01-05 12:10:19   t_006_mode      all
     2016-01-05 12:10:19   t_006_source    SchichtKalender
     2016-01-05 12:10:19   t_006_summary   Spätschicht
     2016-01-05 12:10:19   t_007_bdate     18.01.2016
     2016-01-05 12:10:19   t_007_btime     06:00:00
     2016-01-05 12:10:19   t_007_edate     18.01.2016
     2016-01-05 12:10:19   t_007_etime     14:00:00
     2016-01-05 12:10:19   t_007_location   
     2016-01-05 12:10:19   t_007_mode      all
     2016-01-05 12:10:19   t_007_source    SchichtKalender
     2016-01-05 12:10:19   t_007_summary   Frühschicht
     2016-01-05 12:10:19   t_008_bdate     19.01.2016
     2016-01-05 12:10:19   t_008_btime     06:00:00
     2016-01-05 12:10:19   t_008_edate     19.01.2016
     2016-01-05 12:10:19   t_008_etime     14:00:00
     2016-01-05 12:10:19   t_008_location   
     2016-01-05 12:10:19   t_008_mode      all
     2016-01-05 12:10:19   t_008_source    SchichtKalender
     2016-01-05 12:10:19   t_008_summary   Frühschicht
     2016-01-05 12:10:19   t_009_bdate     20.01.2016
     2016-01-05 12:10:19   t_009_btime     06:00:00
     2016-01-05 12:10:19   t_009_edate     20.01.2016
     2016-01-05 12:10:19   t_009_etime     14:00:00
     2016-01-05 12:10:19   t_009_location   
     2016-01-05 12:10:19   t_009_mode      all
     2016-01-05 12:10:19   t_009_source    SchichtKalender
     2016-01-05 12:10:19   t_009_summary   Frühschicht
     2016-01-05 12:10:19   t_010_bdate     21.01.2016
     2016-01-05 12:10:19   t_010_btime     06:00:00
     2016-01-05 12:10:19   t_010_edate     21.01.2016
     2016-01-05 12:10:19   t_010_etime     14:00:00
     2016-01-05 12:10:19   t_010_location 
     2016-01-05 12:10:19   t_010_mode      all
     2016-01-05 12:10:19   t_010_source    SchichtKalender
     2016-01-05 12:10:19   t_010_summary   Frühschicht
     2016-01-05 12:10:19   tomorrow_001_btime 22:00:00
     2016-01-05 12:10:19   tomorrow_001_edate 10.01.2016
     2016-01-05 12:10:19   tomorrow_001_etime 06:00:00
     2016-01-05 12:10:19   tomorrow_001_location 
     2016-01-05 12:10:19   tomorrow_001_mode all
     2016-01-05 12:10:19   tomorrow_001_source SchichtKalender
     2016-01-05 12:10:19   tomorrow_001_summary Nachtschicht
Attributes:
   alias      Anstehende Termine - Schichten
   maxreadings 10
   modes      all
   room       Kalender
   sortby     01


Auf dem Bild ist ganz hinten "ts" zu sehen da weiß ich gar nicht was das ist.
Mir fehlen praktisch diese "started_" Readings
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Pr3mut05

Ich bin auch am verzweifeln mit diesen Kalender


define Google Calendar ical url https://calendar.google.com/calendar/ical/xxxx%40googlemail.com/private-................................/basic.ics 1200
attr Google room Kalender

define mycalview CALVIEW Google 1
attr mycalview maxreadings 20
attr mycalview room Kalender

define Kalender readingsGroup <%time_calendar> mycalview
attr Kalender alias Termine
attr Kalender group Kalender
attr Kalender valueFormat { substr($READING,6,2).".".substr($READING,3,2).".".substr($READING,0,2)." - ".substr($READING,9,5)." "."$VALUE" }
attr Kalender nonames 1
attr Kalender notime 1
attr Kalender room Kalender



und das kommt dabei raus (Anhang)


chris1284

#528
ts steht für termin start. das ist die anzahl der gestateten termine
morgen, am 6. um ca 22:01 uhr sollten ts 1 sein wenn du ein calview update um 22:00 uhr machst.
dann ist dein temrin Nachtschicht  im modeStart im calendar
ZitatIch wollte damit erreichen das ich die neuen Features bekomme was die Serientermine beinhaltet

das hat aber absolut nichts mit calview zu tun. serientermine händelt allein das calendar modul (und da halt noch nicht alle korekt).
die version die das kann gibts hier zum testen http://forum.fhem.de/index.php/topic,46608.0.html
damit kann aber calview noch nicht. wenn du einwandfrei funktionieren serientermine im normalen calendar willst müssen die meine ich (nagel mich aber nicht fest):
- ein ende haben
- dürfen nicht ganztägig sein
- nicht um 0 uhr staten

@Pr3mut05:
Zitatattr Kalender valueFormat { substr($READING,6,2).".".substr($READING,3,2).".".substr($READING,0,2)." - ".substr($READING,9,5)." "."$VALUE" }
kein wunder das die rg nur mist zeigt. mach es doch einfach genau so wie im post #1, dann klappt es auch.

du verzweifelst nicht am kalender, der tut denke ich genau was er soll, calview auch.

Pr3mut05

#529
Bin noch ganz frisch in diesen Thema und die genutzte Beschreibung erschien mir einfacher - aber was wohl käse ist :/

Beim Post #1 verstehe ich jedoch das

Zitat3. das erstelle at mit Code füllen

Wo genau muss jetzt dieser Code rein?

EDIT:
OK
Lösung gefunden
Für alle die genau so Blind/Doof sind wie ich
http://forum.fhem.de/index.php/topic,19922.msg283969.html#msg283969

hollyghost

Hallo Chris,
ich fange gerade an mich mit dem CALVIEW Modul zu beschäftigen - das Beispiel aus deinem ersten Post konnte ich soweit umsetzen.
Was mir nun auffällt: jedes mal, wenn das at-getriggert wurde, bietet mir FHEM an, die Konfiguration zu speichern (rotes Fragezeichen neben Save config). Ich vermute mal, das hängt mit dem letzten Befehl im at zusammen 'fhem("modify....)";
Wenn ich dann auf das Fragezeichen klicke, meldet mir ein PopUp 'Last 10 structural changes: modify readinggroup.....'
Ist das normal bzw. kann ich das 'Abstellen'?

Danke schon mal für deine Antwort
Grüße
Holger

moonsorrox

Zitat von: chris1284 am 05 Januar 2016, 20:12:49
ts steht für termin start. das ist die anzahl der gestateten termine
morgen, am 6. um ca 22:01 uhr sollten ts 1 sein wenn du ein calview update um 22:00 uhr machst.
dann ist dein temrin Nachtschicht  im modeStart im calendar
Ok da weiß ich wenigstens was "ts" ist..
wie lange beliebt das dort stehen, ich hatte gegen 00.20 Uhr geschaut da steht da nichts mehr drin, sicher weil es schon der nächste Tag ist..!?

Zitat von: chris1284 am 05 Januar 2016, 20:12:49
das hat aber absolut nichts mit calview zu tun. serientermine händelt allein das calendar modul (und da halt noch nicht alle korekt).

Ok das war mir so nicht klar und ich dachte immer du wolltest soetwas einbauen mit laufenden Terminen was ja mit Serienterminen gleich zu setzen ist. Ich schaue mir das mal in dem Beitrag an.

Solange werde ich dann doch wieder meine Termine täglich eintragen müssen, denn sonst geht das ja nicht, ich schalte darüber Morgens meine Beleuchtung und wenn er nur den 1.Tag erkennt funktioniert das am 2. und den folgenden nicht mehr
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

chris1284

Zitat von: hollyghost am 05 Januar 2016, 23:46:08
Ist das normal bzw. kann ich das 'Abstellen'?
ist normal da die config geändert wird. wenn in dem at ein

fhem("SAVE"); einfügst speichert es automatisch

chris1284

Zitat von: moonsorrox am 06 Januar 2016, 01:18:59
laufenden Terminen was ja mit Serienterminen gleich zu setzen ist.
eine serie läuft ja nicht als termin durch. ein serie ist hat zwar ein anfang und ein ende und dazwischen sich wiederholdene elemente aber sie ist kein termin als solches.
ein laufender termin in dem sinne ist wenn du einen einzeltermin der serie spätschicht hast der um x uhr startet und es gerade x uhr ist. quasi die zeit wenn du zb. dann auf arbeit bist

uniqueck

Zitat von: chris1284 am 23 Dezember 2015, 13:33:43
heute habe ich folgende Änderungen eingebracht:
- neue Termingruppe für laufende Termine started_*
- counter für laufende Termine c-started
- jede Termingruppe hat nun zusätzlich *_mode als Reading

Die widget-Anpassung erfolg auch noch für laufende Termine


ich habe noch ein paar offene fragen wie man das gestalten könnte.
man könnte auf ein sticjwort im Termin reagiere:
-> attribute calAge oder sowas auf 1
-> wenn attribut gesetzt und zb summary mit "Geburtstag " startet dann schaue in location nach einem Jahr (oder termin im richtigen format aus dem man dann das jahr extrahiert und vom heutigen datum subtrahiert). so hat man das alter. aber wo das alter nun hinschreiben? ein extra reading fände ich doof da sehr wahrscheinlich 90% der Termine dann ein leeres reading hätten. evtl in summary in klammern mit rein?

sprich aus Geburtstag Marta wird Geburtstag Marta (55)?
Warum nicht einfach direkt so machen wie ich es vorgeschlagen habe. Ich denke ja das Kalender wie Geburtstag,  Abfall separat gehandelt werden. Simit dachte ich mir, sobald das Attribute calAge auf 1 sitzt, dann einfach in Location schauen und sofern Jahreszahl drin vorkommt die Berechnung durch führen.  Andernfall halt nicht oder halt in das reading ??? setzen. Stichworte wie Geburtstag im Betreff des Termins finde ich nicht so gut das macht den Betreff ja nur noch länger.  Vorallem wenn man so oder so einen extra Kalender für Geburtstage hat.

Gruß

Gesendet von meinem GT-N7100 mit Tapatalk


Augschburger

Hallo Chris,

Du hast im Modul einen dicken Fehler drinnen:
elsif ($date eq $termin->{bdate} && $termin->{mode} eq "modeStart"){
readingsBulkUpdate($hash, "started_".sprintf ('%03d', $todaycounter)."_bdate", "heute");
readingsBulkUpdate($hash, "started_".sprintf ('%03d', $todaycounter)."_btime", $termin->{btime});
readingsBulkUpdate($hash, "started_".sprintf ('%03d', $todaycounter)."_summary", $termin->{summary});
readingsBulkUpdate($hash, "started_".sprintf ('%03d', $todaycounter)."_source", $termin->{source});
readingsBulkUpdate($hash, "started_".sprintf ('%03d', $todaycounter)."_location", $termin->{location});
readingsBulkUpdate($hash, "started_".sprintf ('%03d', $todaycounter)."_edate", $termin->{edate});
readingsBulkUpdate($hash, "started_".sprintf ('%03d', $todaycounter)."_etime", $termin->{etime});
readingsBulkUpdate($hash, "started_".sprintf ('%03d', $todaycounter)."_mode", $termin->{mode});
$runningcounter ++;}


An der Stelle verwendest Du den falschen Counter, dadurch kann es keinen started_002 oder höher geben.
Wenn man (nur in diesem started_ Block, nicht davor!) $todaycounter durch $runningcounter ersetzt, funktioniert's.

Viele Grüße,
  Hans-Jörg

chris1284


Augschburger


zurli

Ich habe eine Frage zum Format der Termine.
Ich habe im ganzen Thema nichts darüber gefunden.

Kann man die Termine auch ohne Sekunden anzeigen?
Meine Termine sind nicht sekundengenau :-)

chris1284

wenn du google oder das calendar-modul dazu bewegen kannst ein anderes format zu leifern geht das ;-)

also aktuell geht das im calview selbst nicht, da wird die zeit gezeigt wie sie aus den quellen kommt.
eine funktion die zeit zu trimmen wäre sicher machbar.