Modul für Terminansicht CALVIEW

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

Vorheriges Thema - Nächstes Thema

chris1284

 ;) bin auch noch am suchen ob man (ich) es abstellen kannn

Gizmoh

Zitat von: chris1284 am 08 März 2016, 17:44:01
startest du fhem täglich mehrmals neu oder aktualisierst deinen kalender häufiger als default?
habe 2 view mit je 4  und 1 kalender(n). die meldung habe ich genau 1x nach dem fhem neustart und dann nie wieder (und auch nur wenn ich invers seinen kalender eingebunden habe).
mit meinen eigenen Kalendern (alle von google) habe ich die meldung nicht
habe täglich ein neues logfile somit sehe ich die meldung nur am tag nach dem reboot, dann nie wieder bis zum nächsten reboot.

Ne, eigentlich starte ich es nur bei Updates neu, vieleicht 1 mal die Woche. Ich habe 4 Kalender eingebunden mit 4 Calviews, aktualisierungsinterval steht auf 14400.

Ich hatte für einen anderen Fehler stacktrace auf 1 gesetzt und da wird der CALVIEW Fehler dann bei jedem Aufruf (alle 4 Stunden bei Kalender Aktualisierung) zu fast 1200 Zeilen im Logfile. Ich lese die Logfiles nicht mit nem schönen Wein am Abend, aber wenn die dann doch langsam an die 20MB (Monats Log) werden fange ich doch an mir Sorgen zu machen ;-)

chris1284

ok, also ehr ein sonderfall mit stacktrace aktiv. die anzahl kommt dann denke ich aufgrund der erweiterten anzeige im log / je view zu stande...

DerKiLLa

Mein rg_myCalView will net funktionieren ... also ist immer leer.

Calendar ist angelegt:
define Geburtstage Calendar ical url https://calendar.google.com/calendar/ical/xx/basic.ics 21600
attr Geburtstage hideOlderThan 10


Danach myCalView:
define myCalView CALVIEW Geburtstage 1
attr myCalView maxreadings 10
attr myCalView modes next


Danach rg_myCalView:
define rg_myCalView readingsGroup <Zeile>,<Start>,<Start Zeit>,<Summary>,<Ende>,<End Zeit>
attr rg_myCalView nonames 1


Und am Ende ntf_ViewAll mit DEF:
View_All:t:.* {
my $i;
my $modtext = "<Datum>,<Zeit>,<Termin>,<Ort>,<Quelle> ";

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

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

for($i= 1;$i<= ReadingsVal("View_All","c-term", 0);$i++){
$modtext .= "View_All: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_View_All $modtext");
fhem("SAVE");
}


Was übersehe ich? in myCalView ist alles noch gut. Log zeigt auch an, wenn ich den Kalender aktualisiere:
2016.04.01 09:24:57 3: CALVIEW myCalView - CALENDAR:Geburtstage triggered, updating CALVIEW myCalView ...

ph1959de

Mach mal ein "list rg_myCalView" ... in Deiner gezeigten Definition sehen ich nur die Überschriftzeile, aber keinerlei Selektion, was denn in der readingsGroup angezeigt werden soll.

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

DerKiLLa

Internals:
   DEF        <Zeile>,<Start>,<Start Zeit>,<Summary>,<Ende>,<End Zeit>
   NAME       rg_myCalView
   NR         149
   NTFY_ORDER 50-rg_myCalView
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
   Content2:
   DEVICES:
     ARRAY(0xbdd7690)
   Fhem:
     lastDefChange 1
     last_update 1459429185.57661
   Helper:
     DEF
Attributes:
   nonames    1

Das was du sagst stimmt, aber ich dachte das wird für das notify gefüllt?

ph1959de

Zitat von: DerKiLLa am 01 April 2016, 09:43:16
Das was du sagst stimmt, aber ich dachte das wird für das notify gefüllt?
Das notify macht ein
fhem("modify rg_View_All $modtext");
Deine readingsGroup heisst aber nicht rg_View_All, sondern rg_myCalView.

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

DerKiLLa

Macht Sinn, ändert leider aber nichts, rg_myCalView weiterhin leer ;(

fhem("modify rg_myCalView $modtext");
fhem("SAVE");

chris1284

mach ein set  calview update / set calendar update dann sollte die kette ausgelöst werdne bishin zu deinem notify welches dann triggered und die rg füllt (vorrasugesetzt deine calview zeigt auch readings)

DerKiLLa

set Geburtstage update
set myCalView update

rg_myCalView weiterhin leer.

Nach dem ersten Befehl wird ja auch im Log angezeigt, dass aktualisiert wird.

2016.04.01 10:41:06 3: CALVIEW myCalView - CALENDAR:Geburtstage triggered, updating CALVIEW myCalView ...

myCalView ist gefüllt. list myCalView:
Internals:
   DEF        Geburtstage 1
   INTERVAL   43200
   KALENDER   Geburtstage
   NAME       myCalView
   NR         147
   NTFY_ORDER 50-myCalView
   STATE      t: 10 td: 2 tm: 1
   TYPE       CALVIEW
   Readings:
     2016-04-01 10:41:11   c-term          10
     2016-04-01 10:41:11   c-today         2
     2016-04-01 10:41:11   c-tomorrow      1
     2016-04-01 10:41:11   state           t: 10 td: 2 tm: 1
     2016-04-01 10:41:11   t_001_bdate     01.04.2016
     2016-04-01 10:41:11   t_001_btime     00:00:00
     2016-04-01 10:41:11   t_001_edate     02.04.2016
     2016-04-01 10:41:11   t_001_etime     00:00:00
     2016-04-01 10:41:11   t_001_mode      next
     2016-04-01 10:41:11   t_001_source    Geburtstage
     2016-04-01 10:41:11   t_001_summary   bla hat Geburtstag
[...]
Attributes:
   maxreadings 10
   modes      next

DerKiLLa

#655
Hab es hinbekommen. Es musste noch "View_All" an mein CALVIEW angepasst werden, das war leider so nicht ersichtlich aus dem Firstpost, daher hier mal der Part, den kannst du einfach so übernehmen und sollte klar werden:

ZitatBeispiel readingsGroup mit den Standard-Readings
1. Leere readingsGroup definieren:
define rg_View_All readingsGroup <Zeile>,<Start>,<Start Zeit>,<Summary>,<Ende>,<End Zeit>
1.a) Der rg das Attribut nonames 1 geben
attr rg_View_All nonames 1
2. Ein Notify definieren, welches die readingsGroup dynamisch mit Leben füllt wenn sich das CALVIEW aufgrund eines calendar-updates aktualisiert hat
define ntf_ViewAll notify View_All:t:.* {
my $i;
my $modtext = "<Datum>,<Zeit>,<Termin>,<Ort>,<Quelle> ";

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

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

for($i= 1;$i<= ReadingsVal("View_All","c-term", 0);$i++){
$modtext .= "View_All: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_View_All $modtext");
fhem("SAVE");
}


! Ihr müsst View_All mit eurem Namen des CALVIEW devices ersetzen !

Danach ein set <Kalender> update und sowohl das CALVIEW (View_All) als auch die readingsGroup (rg_View_All) sollten gefüllt sein mit den neuen Readings




Mir fällt noch einiges auf.

Im Firstpost wird die readingsGroup ja leer angelegt mit <Zeile>,<Start>,<Start Zeit>,<Summary>,<Ende>,<End Zeit>

Später wird aber sowieso <Datum>,<Zeit>,<Termin>,<Ort>,<Quelle> gespeichert. Daher kann man den Eintrag ja auch direkt richtig anlegen?

Nächster Punkt: _location gibt es in meinem CALVIEW nicht. Hab mir danach die angehängte Datei runtergeladen und in das Verzeichnis kopiert und danach ging leider gar nichts mehr. Also myCalView ist danach leer und lädt auch keine Daten mehr. Bin dann wieder auf die alte Version gegangen, dann ging wieder alles - aber hier gibt es halt _location nicht.

Ohne _location sieht es dann so aus:

(https://i.imgur.com/tuD63Ys.jpg)

chris1284

#656
ZitatEs musste noch "View_All" an mein CALVIEW angepasst werden, das war leider so nicht ersichtlich aus dem Firstpost,
wie kann dir das wenn du diese zeile im post 1 liest nicht klar werden ? :o
Zitat!Ihr müsst View_Abfall mit eurem Namen des CALVIEW devices ersetzen!
alle andern habens bisher so verstanden wie es da steht --> view_all durch euren/deinen calview-namen ersetzen


Zitat von: DerKiLLa am 01 April 2016, 14:14:00

Im Firstpost wird die readingsGroup ja leer angelegt mit <Zeile>,<Start>,<Start Zeit>,<Summary>,<Ende>,<End Zeit>
Später wird aber sowieso <Datum>,<Zeit>,<Termin>,<Ort>,<Quelle> gespeichert. Daher kann man den Eintrag ja auch direkt richtig anlegen?
da es eh überschrieben wird kannst du auch <blablub> reinschreiben. war halt nur damit was drin steht

Zitat von: DerKiLLa am 01 April 2016, 14:14:00
angehängte Datei runtergeladen und in das Verzeichnis kopiert und danach ging leider gar nichts mehr.
normal da es alter kram ist und calview nur über fhem update aktuell und kompatibel ist.

ZitatNächster Punkt: _location gibt es in meinem CALVIEW nicht.

stimmt. eigentlich sollte location dann leer sein -> schau ich mir an. workaround in der rg => einfach quelle weg lassen oder ort ans ende der zeile :-)

DerKiLLa

#657
Zitat von: chris1284 am 01 April 2016, 15:30:12
wie kann dir das wenn du diese zeile im post 1 liest nicht klar werden ? :oalle andern habens bisher so verstanden wie es da steht --> view_all durch euren/deinen calview-namen ersetzen
Naja, hab halt nach View_Abfall geschaut, es musste aber View_All geändert werden. Klar, hätte ich auch gleich drauf kommen können, aber die Namen sind durcheinander, deswegen hab ich versucht, es einheitlich für dich zu machen.

Zitateigentlich sollte location dann leer sein -> schau ich mir an. workaround in der rg => einfach quelle weg lassen oder ort ans ende der zeile :-)
Da es bei mir eh nur ein Geburtstagskalender ist, hab ich die ganze Funktion sowieso geändert ;)

(https://i.imgur.com/rdvseHt.jpg)

Falls sich jemand dafür interessiert:
define Geburtstage Calendar ical url https://calendar.google.com/calendar/ical/xxx/basic.ics 21600
attr Geburtstage hideLaterThan 1d
attr Geburtstage hideOlderThan 10

define myCalView CALVIEW Geburtstage 1

define rg_myCalView readingsGroup <Datum>,<Person>
attr rg_myCalView alias Geburtstage:
attr rg_myCalView nonames 1

define ntf_ViewAll notify myCalView:t:.* {
my $i;
my $modtext = "  ";

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

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

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


Kann ich im PERL-Code Symbolen einfärben? Wenn ich es direkt in der DEF vom rg änder, geht es. Wenn ich es aber in der DEF vom notify änder, bekomme ich einen Fehler.

define ntf_ViewAll notify myCalView:t:.* {\
my $i;; \
my $modtext = "  ";;\
\
for($i= 1;;$i<= ReadingsVal("myCalView","c-today", 0);;$i++){\
$modtext .= "myCalView:<%time_calendar@red>,<Heute>,today_".sprintf('%03d',$i)."_summary ";;}\
\
for($i= 1;;$i<= ReadingsVal("myCalView","c-tomorrow", 0);;$i++){\
$modtext .= "myCalView:<%time_calendar@yellow>,<Morgen>,tomorrow_".sprintf('%03d',$i)."_summary ";;}\
\
fhem("modify rg_myCalView $modtext");;\
fhem("SAVE");;\
}

Muss ich das @ escapen? Weil ohne Farbe geht es problemlos ...

Edit: Okay, einfach mit \ escapen.

chris1284

bitte nicht in der cfg arbeiten  ;) wäre ehr eine frage für das rg thema. da es text in perlcode ist würde ich sagen ja

uniqueck

Zitat von: chris1284 am 01 April 2016, 17:02:27
bitte nicht in der cfg arbeiten  ;) wäre ehr eine frage für das rg thema. da es text in perlcode ist würde ich sagen ja
Hi Chris,

Ich wolllte mal wieder nachfragen nach der Altersberechnung bei Geburtstagen wie da der Stand ist.

Gruß Constantin

Gesendet von meinem GT-N7100 mit Tapatalk