Modul für Terminansicht CALVIEW

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

Vorheriges Thema - Nächstes Thema

kvo1

Hallo Christian,
danke für die schnelle Antwort,

Zitatwenn du dein calendar-device öffnest siehst du da readings wie "modeStarted", "modeUpcoming" mit jeweils termin-id's als wert
diese wertet calview aus. wenn der kalender aktualisert wurde muss dann auch calview aktualisiert werden da so die readings entfernt und neu vom kalender gelesen werden

"modeStarted"  ist leer

"modeUpcoming" hat den gleichen Inhalt wie das reading "all".

Der Kalender (hier owncloud) wird (derzeit) aller 5 Minuten aktualisiert

ical url http://user:password@oc-server/owncloud/index.php/apps/calendar/export.php?calid=10 300

calview bzw. die readingsgroup wird über ein at (wie im thread beschrieben) aller 2 Stunden aktualisiert !

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

Christian S.

Kann man die Termine auch über Text2Speech ansagen lassen?
FHEM auf NUC, CUL V3 868 MHz
DECT200 Steckdosen
MAX Heizungsthermostate, Wandthermostate, Fensterkontakte
Homematic
Netatmo

kvo1

Hallo Christian,
vermutlich stehe ich total auf der Leitung  ::)

Der (bzw. habe ich drei ) Kalender werden aktualisiert - kann man gut , wie hier beschrieben.
http://fhem.de/commandref_DE.html#Calendar

Das Problem ist , das sich die Readings im calview nicht ändern !

Zitatwenn der kalender aktualisert wurde muss dann auch calview aktualisiert werden

muss ich das explizit angeben ..? , Meine view sieht so aus

define vocalview2 CALVIEW Kal1,Kal2,Familie 2
attr vocalview2 icon Zoom-in
attr vocalview2 maxreadings 20
attr vocalview2 room Kalender


Gruss klaus


$Id: 57_CALVIEW.pm 7012 2015-04-019 11:30:00Z chris1284 $
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

chris1284

dann aktualisiert er default alle 43200 sec (also 12 h).
du kannst auch sofort updaten in dem du set ... update ausführst. wenn sich allerding am calendar nichts geändert hat wird sich auch im calview nichts ändern

chris1284

Zitat von: Christian S. am 27 Mai 2015, 18:18:20
Kann man die Termine auch über Text2Speech ansagen lassen?
wenn texttospeech readings vorlesen kann würde ich sagen ja.

kvo1

Zitat von: chris1284 am 27 Mai 2015, 21:56:35
dann aktualisiert er default alle 43200 sec (also 12 h).
du kannst auch sofort updaten in dem du set ... update ausführst. wenn sich allerding am calendar nichts geändert hat wird sich auch im calview nichts ändern

d.h. die 43200 sec (also 12 h) sind fest im Modul ?? und eine "ständige" Aktualisierung der Termine im Calendar-Modul (also z.B. stündlich) würde hier nichts bringen !?

Könnte man das nicht als Attribute in calview einbauen ?

Gibt es hier eine feste Zeit oder wovon hängen die 12 h ab ??

Letztlich müßte man ja versuchen die "Aktualisierung" über Calendar, CALVIEW bis zur readingsgroup irgendwie der Reihe nach durchzuführen !







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

chris1284

http://fhem.de/commandref.html#CALVIEW
define myView CALVIEW Googlecalendar,holiday 1 900
hier ist der intervall 900 sek. du kannst ihn in der def angeben.

du kannst aber auch in abhängigkeit von zb änderungen am kalender aktualisieren falls dieser ein event trigger, hab ich aber noch nie getestet
zb: kalender änderung -> notify aktualisiert calview -> notify aktualisert readingsgroup

du kannst auch beim kalender und calview einen utopischen intervall angeben und per 2 at's beide zu bestimmten zeiten nacheinander updaten

man muss sich natürlich auch die frage stellen ob es sinn macht dass du deinen kalender alle 5 minuten aktualisierst.

kvo1

Hallo Christian,

danke für Deine Hilfe / Geduld , manchmal kommt man auf die einfachsten Dinge nicht  ::)
ich hatte immer nur hier geschaut ....

http://www.fhemwiki.de/wiki/CALVIEW

Zitatdu kannst aber auch in abhängigkeit von zb änderungen am kalender aktualisieren falls dieser ein event trigger
ja , das werde ich ma testen


Zitatman muss sich natürlich auch die frage stellen ob es sinn macht dass du deinen kalender alle 5 minuten aktualisierst.

Natürlich nicht , das war nur zum testen so gedacht !

PS:
Änders Du das in Zeile 84 mit der doppelter Variablendeklaration ?

gruss klaus
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

chris1284

Zitat von: kvo1 am 28 Mai 2015, 07:41:03
...manchmal kommt man auf die einfachsten Dinge nicht  ::)
ich hatte immer nur hier geschaut ....
;D kenn ich

Zitat von: kvo1 am 28 Mai 2015, 07:41:03
Änders Du das in Zeile 84 mit der doppelter Variablendeklaration ?

ja, am we. da werd ich mir auch den modi-wunsch anschauen.

Risiko

Zitat von: Risiko am 25 Mai 2015, 11:09:00
Ich habe für die Definition einen neuen Typ (3) für modeAlarmOrStart;modeUpcoming einführt.
Wäre super, wenn du es übernehmen könntest.

Zitat von: chris1284 am 28 Mai 2015, 07:43:25
am we. da werd ich mir auch den modi-wunsch anschauen.

Wollte hiermit noch mal an die Geschichte erinnern.
Anbei der Patch zur aktuellen Version.

Risiko

chris1284

danke für den patch. ein lösung über attribut (eins mit komma getrennten werten), ähnlich dem room-menue, wäre schöner (daher habe iuch es noch nicht umgesetzt). so könnte sich jeder alles genau so zusammenklicken wie er es benötigt.
wenn man es weiter so wie jetzt steuert müsste man sehr viele kombinationen anbieten um alle möglichkeiten zu bedienen

AitschPi

Moin moin,

leider haben alle vom lokalen Versorger in meinen Google-Kalender importierten Daten keine Endzeitpunkte, so dass auch die alten Abholtermine aus den letzten Jahren meinen persönlichen Kalender als gestartete und unbeendete Ereignisse überschatten. Diese hunderte Termine zu löschen, ist extrem aufwendig. Schöner wäre es, wenn man das einfacher filtern könnte. Und vielleicht haben andere auch diese oder vergleichbare Probleme. Daher die erste Anregung:

if($modes == 1) {$hash->{MODES} = "modeAlarm;modeStart;modeStarted;modeUpcoming"; }
elsif($modes == 0){$hash->{MODES} = "modeAlarm;modeStart;modeStarted";}
elsif($modes == 2){$hash->{MODES} = "all"; }
elsif($modes == 3){$hash->{MODES} = "modeAlarmOrStart;modeUpcoming"; }
else {return "invalid mode \"$modes\", use 0,1 or 2!"}
InternalTimer(gettimeofday()+2, "CALVIEW_GetUpdate", $hash, 0);
return undef;


ergänzen um einen neuen Modus allein für upcoming:

elsif($modes == 4){$hash->{MODES} = "modeUpcoming"; }


Das wäre schon mal schön. Als Denkanstoß vielleicht noch 2 Anregungen/Ansätze, die in diesem Zusammenhang stehen:

  • Ignorieren über Attribute:
    über ein Attribut könnten bestimmte Ereignisse gleich rausgefiltert werden. Beispielsweise mit einem "ignoreUID xxxxx" alle UID, die mit xxxxx beginnen
  • Modus als Bitfeld:
    Jeder brauch gegebenenfalls eigene Zusammenstellungen. Wenn die Start/End(Upcoming jeweils mit 1,2,4,8,...,128 versehen sind, kann man diese beliebig kombinieren und braucht keine zig neuen Modi einführen.
Ja, man kann das auch durch eigene Funktionen lösen. Aber nicht jeder schreibt sowas gut und gern. Zudem wäre durch die Filter der aufbereitete Kalender schon direkt durch CALVIEW verkleinert und nicht erst ein großer nur in der Ausgabe später reduziert. Oder?!
Echte Männer essen keinen Honig, sie kauen Bienen.

chris1284

ZitatIgnorieren über Attribute:
über ein Attribut könnten bestimmte Ereignisse gleich rausgefiltert werden. Beispielsweise mit einem "ignoreUID xxxxx" alle UID, die mit xxxxx beginnen
das sehe ich er im calendar-modul.
termine ohne endzeitpunkt könnte man dort ggf gleich verwursten (wenn termin-start vor heute und keine ende dann weg lassen/oder auf beendet setzen). da greift man eh die termine an und sollte das auch dort gleich regeln da calview eigentlich nur die daten die von calendar kommen anzeigen soll

ZitatModus als Bitfeld:
ja, das wäre auch eine gute idee. der wunsch nach modeAlarmOrStart;modeUpcoming ist ja auch noch offen

AitschPi

Zitat von: chris1284 am 01 Juli 2015, 06:15:59
ja, das wäre auch eine gute idee. der wunsch nach modeAlarmOrStart;modeUpcoming ist ja auch noch offen

Deine Worte schmeicheln. ;o)

Das mit dem Kalender selbst hätte ich auch lieber, da das die Last für den kleinen Pi noch mehr reduzieren würde. Aber dort sind noch weniger Sachen vorgesehen, soweit ich das aus der commandref schließe. Hier im calview gibt es ja schon viele Optionen und so sehr flexible (Wiederverwendungs-) Möglichkeiten... Aber dann schaue ich mir den Kalenderimport nochmal genauer an.
Echte Männer essen keinen Honig, sie kauen Bienen.

Risiko

#329
Zitat von: chris1284 am 01 Juli 2015, 06:15:59
ja, das wäre auch eine gute idee. der wunsch nach modeAlarmOrStart;modeUpcoming ist ja auch noch offen
Hallo chris1284,

das mit den Modes habe ich jetzt mal eingebaut.
Das Defaultverhalten hat sich nicht geändert. Man kann nun allerdings über das Attribut "modes" die Modi frei anpassen.
Die Liste ist jetzt intern per Komma getrennt. Somit kann man auch die Mehrfachauswahl von FHEMWEB nutzen.
Anbei die Version komplett und als Patch.
Es wäre super, wenn du es so oder so ähnlich übernehmen könntest.

Risiko