Modul für Terminansicht CALVIEW

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

Vorheriges Thema - Nächstes Thema

Darkman

Ahoi,

ich hab eine Frage zu CALVIEW, wobei ich mir nicht sicher bin, ob das gewollt oder ein Bug ist:
Ich habe, aehnlich dem Beispiel im ersten Beitrag, einen Google Kalender (der typische Muell ;) eingebunden und ein CALVIEW drauf gelegt.
Damits huebsch ist, wie eben im Beispiel angegeben, eine ReadingsGroup angelegt und lasse die befuellen. Funktioniert soweit auch gut.
Heute hab ich dann gemerkt, das "morgen" eine Leerung dran ist. In dem Beispiel sind 2 zusaetzliche Schleifen um "Heute" und "Morgen"
besser darzustellen - was ich persoenlich sehr gut finde. Daher hab ich das auch uebernommen. Heute dann im Kalender:
Morgen: Biomuell
21.06.16: Biomuell.

Der Eintrag ist also "doppelt". Guckt man in den CALVIEW sieht man auch, das dort ebenfalls der Eintrag doppelt vor liegt:

     2016-01-20 16:19:24   tomorrow_001_btime 00:00:00
     2016-01-20 16:19:24   tomorrow_001_edate 22.01.2016
     2016-01-20 16:19:24   tomorrow_001_etime 00:00:00
     2016-01-20 16:19:24   tomorrow_001_source Abfallkalender
     2016-01-20 16:19:24   tomorrow_001_summary Biomüll

(wichtig IMHO, da fehlt z.B. das bdate, darauf koennte ich sonst matchen und andere mit dem selben bdate ignorieren).

Der normale Eintrag sieht dann so aus:

     2016-01-20 16:19:24   t_001_bdate     21.01.2016
     2016-01-20 16:19:24   t_001_btime     00:00:00
     2016-01-20 16:19:24   t_001_edate     22.01.2016
     2016-01-20 16:19:24   t_001_etime     00:00:00
     2016-01-20 16:19:24   t_001_source    Abfallkalender
     2016-01-20 16:19:24   t_001_summary   Biomüll

daher geht der Loop einmal durch "tomorrow" und dann durch die normalen verbliebenen Eintraege.

Ist das gewollt? also das der Termin als tomorrow UND normaler Termin gespeichert wird?
Gibts sonst noch ein identifier oder so den ich dazu missbrauchen kann um doppelte Eintraege zu minimieren?
Oder kann ich mich evtl. drauf verlassen das heute+morgen (da gibts ja c-today + c-tomorrow) zusammen immer die ersten Eintraege darstellen?
dann wuerde ich einfach die beiden Werte zusammenzaehlen und den Counter danach um den Wert hochsetzen, so das nur noch durch den
Rest geloopt wird.

Gruss + Danke!
Sven

chris1284

#541
das reading tomorrow_bdate mit Wert "morgen" für morgige Termiene fehlte wirklich, gerade gefixed und eingecheckt.

das die termine doppelt sind war / ist gewollt. so kann man sich nur today und tomorrow zeigen lassen oder nur den ganzen kalender (oder den mix aus allem )

Zitatkann ich mich evtl. drauf verlassen das heute+morgen (da gibts ja c-today + c-tomorrow) zusammen immer die ersten Eintraege darstellen?
ja, wenn du also 10 termine hats, einen heuute, 2 morgen sollte das bedeuten das du beu t_1 + 3 abfabgen müsstest (also bei t_4) um keine doppelten anzeigen zu haben

Darkman

Servus,

danke. Ich haette zwar den Wert "Datum" erwartet/genommen (der Konsistenz wegen, *_bdate enthaelt sonst immer ein Datumsstring), aber da ja das mit dem Zusammenzaehlen etc. auch wunderbar funktioniert, nehm ich einfach die Loesung (dann muss ich auch keine Datumsvergleiche machen :))

Danke fuer die schnelle Reaktion und den Fix!

Gruss,
Sven

Darkman

Ahoi, ich nochmal.

Vlt. ist es nur ein Verstaendnisproblem, aber irgendwie macht mein fhem bzw. calview nicht das, was ich erwarte.

Ich hab ein Kalender definiert mit einem Updateinterval >24h. Das ist damit ich ihn quasi nur "on demand" updaten kann (Resourcen sparen usw.). Einmal am Tag wird er dann via. at geupdated, was dann ein notify triggert (lastUpdate) um mein calview zu aktualisieren (hat ebenfalls ein Updateinterval >24h). Wird das calview aktualisiert gibts ein notify (auf t:.*) das dann meine ReadingsGroup aktualisiert (fuer den angezeigten Kalender). Grundsaetzlich tut das gut, bis auf die Tatsache, das irgendwas zusaetzlich das calview update immer mal wieder ausloest. "Vermutlich" sind es alte update jobs da ich am Wochenende damit rumgetestet habe. Dh. es koennte sein, das sich das Problem erstmal wieder legt in den naechsten Tagen, dennoch finde ich es komisch, das entweder die alten Updateintervalle nicht entfernt wurden oder irgendwas anderes zusaetzlich das update triggert. Kann man das irgendwie nachvollziehen obs da noch "Updateleichen" gibt? Hatte leider kein Eventmonitor offen ueber nacht, aber der zeigt ja auch nicht unbedingt was das update ausloest. Mein Kalendernotify wars jedenfalls nicht, das hat seine letzte Triggerzeit auf dem Run der den Kalender auch wirklich aktualisiert hat.

Der Code dazu:

define not.Abfallkalender2ZAW notify Abfallkalender:lastUpdate:.* set ZAW update

define not.ZAWupdate notify ZAW:t:.* {\
my $i;;\
...
}

define at.Abfallupdate at *00:01:00 set Abfallkalender update

(das ZAWupdate generiert die RG definition angelehnt an das Beispiel von Seite 1.)

Gruss + Danke,
Sven

Brockmann

Sind bei Calview irgendwelche Probleme durch die anscheinend recht weitreichenden Änderungen bei 57_Calendar.pm zu erwarten?
http://forum.fhem.de/index.php/topic,48315.0.html

chris1284

probleme trifft es nicht ganz sondern ehr eine komplette inkompatibilität. ich sehe es nicht das ich zeit finde bis zum 07.02. ein neues modul zu basteln und werde für mich erstmal das calendar aus dem update nehmen.

kvo1

Zitat von: chris1284 am 30 Januar 2016, 16:36:10
probleme trifft es nicht ganz sondern ehr eine komplette inkompatibilität. ich sehe es nicht das ich zeit finde bis zum 07.02. ein neues modul zu basteln und werde für mich erstmal das calendar aus dem update nehmen.
Mach Dir da keinen Stress, ich für meinen Teil werde auch erst einmal bei dem bisherigen Module bleiben,
Kann man ja beim Update ausschließen.
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

HoTi

Zitat von: chris1284 am 30 Januar 2016, 16:36:10
probleme trifft es nicht ganz sondern ehr eine komplette inkompatibilität. ich sehe es nicht das ich zeit finde bis zum 07.02. ein neues modul zu basteln und werde für mich erstmal das calendar aus dem update nehmen.

Gut das ich das gesehn habe...

Aber was anderes. Ich bekomme immer nur die nächsten 3 Termine angezeigt. Was mache ich den hier falsch?

Internals:
   DEF        Kalender 2 900
   INTERVAL   900
   KALENDER   Kalender
   NAME       myView
   NR         372
   STATE      t: 3 td: 0 tm: 1 ts: 0
   TYPE       CALVIEW
   Readings:
     2016-02-04 06:58:58   c-started       0
     2016-02-04 06:58:58   c-term          3
     2016-02-04 06:58:58   c-today         0
     2016-02-04 06:58:58   c-tomorrow      1
     2016-02-04 06:58:58   state           t: 3 td: 0 tm: 1 ts: 0
     2016-02-04 06:58:58   t_001_bdate     05.02.2016
     2016-02-04 06:58:58   t_001_btime     06:00:00
     2016-02-04 06:58:58   t_001_edate     05.02.2016
     2016-02-04 06:58:58   t_001_etime     07:00:00
     2016-02-04 06:58:58   t_001_location
     2016-02-04 06:58:58   t_001_mode      all
     2016-02-04 06:58:58   t_001_source    Kalender
     2016-02-04 06:58:58   t_001_summary   Gelbetonne
     2016-02-04 06:58:58   t_002_bdate     09.02.2016
     2016-02-04 06:58:58   t_002_btime     06:00:00
     2016-02-04 06:58:58   t_002_edate     09.02.2016
     2016-02-04 06:58:58   t_002_etime     07:00:00
     2016-02-04 06:58:58   t_002_location
     2016-02-04 06:58:58   t_002_mode      all
     2016-02-04 06:58:58   t_002_source    Kalender
     2016-02-04 06:58:58   t_002_summary   Restmüll
     2016-02-04 06:58:58   t_003_bdate     01.03.2016
     2016-02-04 06:58:58   t_003_btime     06:00:00
     2016-02-04 06:58:58   t_003_edate     01.03.2016
     2016-02-04 06:58:58   t_003_etime     07:00:00
     2016-02-04 06:58:58   t_003_location
     2016-02-04 06:58:58   t_003_mode      all
     2016-02-04 06:58:58   t_003_source    Kalender
     2016-02-04 06:58:58   t_003_summary   Altpapier
     2016-02-04 06:58:58   tomorrow_001_bdate morgen
     2016-02-04 06:58:58   tomorrow_001_btime 06:00:00
     2016-02-04 06:58:58   tomorrow_001_edate 05.02.2016
     2016-02-04 06:58:58   tomorrow_001_etime 07:00:00
     2016-02-04 06:58:58   tomorrow_001_location
     2016-02-04 06:58:58   tomorrow_001_mode all
     2016-02-04 06:58:58   tomorrow_001_source Kalender
     2016-02-04 06:58:58   tomorrow_001_summary Gelbetonne
Attributes:
   maxreadings 10
   modes      all
   room       Kalender
   verbose    0
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

chris1284


HoTi

Was genau meinst du. Es werden nur die nächsten 3 Einträge gezeigt.


Viele Grüße aus  Oberbayern
Tim (RettungsTim)

chris1284

calview ist der aufbereitete inhalt deines calendar devices. wenn dort also nur 3 termine gezeigt werden, werden im calview auch nur 3 gezeigt

HoTi

Ja das ist mir schon klar, aber wie kann ich dem Modul sagen das er mehr als 3 laden soll?
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

hollyghost

Hi Tim,
Das sind vermutlich alles Serientermine - oder?
Jeder Serientermin wird mit dem aktuellen Calendar Modul nur einmal (der jeweils aktuelle/kommend) angezeigt.
Im neuen Calendar Modul wurde das geändert - aber Achtung, das ist noch nicht kompatible mit Calview.
Durch diese Änderung am Calendar Modul wird es bei einigen Usern sicher auch Worflowprobleme geben - und damit meine ich nicht die Calview Inkompatibilität.
Ich persönlich verstehe nicht ganz, warum eine solch massive Änderung am Modul durchgeführt wird anstatt ein 'Neues' Modul zu veröffentlichen.


Gesendet von iPhone mit Tapatalk

HoTi

Zitat von: hollyghost am 05 Februar 2016, 09:00:20
Hi Tim,
Das sind vermutlich alles Serientermine - oder?
Jeder Serientermin wird mit dem aktuellen Calendar Modul nur einmal (der jeweils aktuelle/kommend) angezeigt.
Im neuen Calendar Modul wurde das geändert - aber Achtung, das ist noch nicht kompatible mit Calview.
Durch diese Änderung am Calendar Modul wird es bei einigen Usern sicher auch Worflowprobleme geben - und damit meine ich nicht die Calview Inkompatibilität.
Ich persönlich verstehe nicht ganz, warum eine solch massive Änderung am Modul durchgeführt wird anstatt ein 'Neues' Modul zu veröffentlichen.


Gesendet von iPhone mit Tapatalk

Arrrg... Danke ja, das ist das Problem
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

knopf_piano

Genau hier bin ich grad reingelaufen.
57_Calendar.pm ist auf head-rev
# $Id: 57_Calendar.pm 10733 2016-02-06 09:02:02Z borisneubert $
und im Calview bekomme ich jetzt folgendes Verhalten:
Serientermine werden ab 01.01.yy angezeigt und im t_***_summary steht der Name des Events n Mal.

Ich schau mir gleich mal das angehängte modul an
zotac nano mit proxmox und ganz viel zeug drauf