Modul für Terminansicht CALVIEW

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

Vorheriges Thema - Nächstes Thema

chris1284

#225
Zitat von: oti am 24 Februar 2015, 15:11:21
- Code von Zeile 108 bis 128 komplett mit meinem ersetzen
in der aktuellen über fhem verteielten version sind es zeile 88 bis 106... ich habe es ebend mal beim mir eingebaut und wenns bis zum we sauber läuft einchecken.

dein vorschlag für mehrere calendar ist genau das was mir auch durch den kopf ging



chris1284

vorab die version mit dem bugfix von oti und der unterstützung mehrere kalender in einer view.
ich habe des weiteren bei den modis 0 und 1 noch modeAlarm und modeStart mit reingenommen. joe42 stellte fest das termine die in didesn modis sind aber noch nicht vergangen sind nicht aufgeführt wurden.


oti

#227
Hallo Chris,

echt super, genau so habe ich es mir vorgestellt. Bislang läuft es super bei mir.

Hier mal mein Code für die fhem.cfg.
Zur Erklärung:
- Es wird auf 3 verschiedene Kalender zugegriffen
- 20 Termine sollen angezeigt werden
- Ich zeige nur Anfangsdatum, Anfangszeit und den Inhalt an, kein Endatum, Endzeit, heute oder morgen
- Der Kalender wird alle 2 Stunden aktualisiert


define KalenderHans Calendar ical url https://www.google.com/calendar/ical/Hans%40googlemail.com/private-000/basic.ics 7200
define KalenderRita Calendar ical url https://www.google.com/calendar/ical/Rita%40googlemail.com/private-111/basic.ics 7200
define KalenderLena Calendar ical url https://www.google.com/calendar/ical/Lena%40googlemail.com/private-222/basic.ics 7200

define AlleKalender CALVIEW KalenderHans,KalenderRita,KalenderLena 2
attr AlleKalender maxreadings 20

define rg_KalenderTermine readingsGroup <Datum>,<Uhrzeit>,<Text>
attr rg_KalenderTermine nonames 1
attr rg_KalenderTermine group Kalender
attr rg_KalenderTermine room Kalender

define at_KalenderTermine at +*02:00:00 {\
  my $i;;\
  my $modtext = "<Datum>,<Uhrzeit>,<Text> ";;\
  for($i= 1;;$i<=20;;$i++){\
  $modtext .= "AlleKalender:t_".sprintf('%03d',$i)."_bdate,t_".sprintf('%03d',$i)."_btime,t_".sprintf('%03d',$i)."_summary ";;}\
  fhem("modify rg_KalenderTermine $modtext");;\ 
}


Ich habe jetzt nur noch ein Problem, welches aber wohl nichts mit dem Modul zu tun hat. Einer der Kalender zeigt Termine aus dem Jahr 2009 an, also nicht ab heute. Hat jemand eine Idee?

Nachtrag: Falls jemand das gleiche Problem haben sollte. Termine mit 0 Minuten Dauer können nicht verarbeitet werden!
Fazit: Keine 0-Minutentermine im Google-Kalender!


Gruß
OTi

chris1284

#228
das modul zeigt ja nur die calendar inhalte somit würde ich da ansetzen. mit einigen serienterminen hat er meine ich noch probleme.

wenns bis zum we keine neg. rm's gibt zieh ich die version hoch, pass die cmdref an und check es ein

onkel-tobi

Super Arbeit, Chris.
Das macht meine bisherige config überflüssig.
Aber auch hier habe ich das Problem, wie kriege ich noch pro Termin angezeigt, zu welchem Kalender der Termin gehört?
Gibt es dafür eine Lösung?

Danke & Gruß,
Tobi

chris1284

ich könnte noch ein reading mit dem calender-device namen einbauen jetzt wo es mehrere kalender unterstützt

onkel-tobi

Das wäre super, wobei ich gerade auch gesehen habe, dass es ja das attr nonames gibt.
Insofern bekomme ich das in meiner voherigen Lösung nun hin.
Aber wenn es irgendwann im Calview drin ist, wäre das natürlich auch gut.

oti

#232
Zitatich könnte noch ein reading mit dem calender-device namen einbauen jetzt wo es mehrere kalender unterstützt

Das wäre Klasse (Große Begeisterung.  :) :) :) ).

Gruß
OTi

chris1284

in der Version fürs we ist nun auch die source als reading

Cybers

Wäre es möglich den Ort auch noch abzufragen, bzw. aufzunehmen?

Gruß, Sascha
FHEM 6.3 auf Raspberry PI 4 / Smartvisu
Eltako Serie 14: FAM14, FGW14-USB, FSB14, FSR14-4x, FSR14-2x, FDG14, FTS14-EM in Kombination mit Jung F50 24V Tastern
1-Wire Temperatursensoren
aus alter Zeit:
Gott sei Dank nur noch 3 Homematic Jalousie- & Schaltaktoren! Wer sich mit Funk auskennt, legt Kabel

onkel-tobi

Zitat von: chris1284 am 25 Februar 2015, 17:50:32
in der Version fürs we ist nun auch die source als reading
Hi Chris,

super & besten Dank. Funktioniert bei mir bisher auch einwandfrei.
Mal eine andere Frage, ich versuche mir ein Notify für die Müllabfuhr zu erstellen:

sub AbfallNotify {
if (ReadingsVal("Abfall","c-tomorrow", "> 0")) {DebianMail('meine@mail.de','Muell rausstellen',"Abfall:tomorrow_001_summary");}
}

Abfall:tomorrow_001_summary hat die summary als reading drinstehen, in der mail steht im Text aber:

<Datum>,<Uhrzeit>,<Text>,<Endet am>,<End um> Abfall:<Morgen>,tomorrow_001_btime,tomorrow_001_summary,tomorrow_001_edate,tomorrow_001_etime
Vielleicht habe ich ja noch irgendwo eine Leiche oder einen Denkfehler drin, aber eigtl. sollte es doch so gehen oder?

Danke & Gruß,
Tobi

chris1284

Probier in der mail statt
Abfall:tomorrow_001_summary mal ReadingsVal("Abfall","c-tomorrow","")
ich würde ggf auch noch prüfen wieviele termine tomorrow sind (wenn wie bei uns alle 14 tage papier und gelber sack geholt werden)
und dann in einer zählschleife ähnlich dem at für calview rg alle summary's per mail senden.

chris1284

Zitat von: Cybers am 25 Februar 2015, 19:37:22
Wäre es möglich den Ort auch noch abzufragen, bzw. aufzunehmen?
wenn das calendar modul die möglichkeit bietet ja.

onkel-tobi

Zitat von: chris1284 am 26 Februar 2015, 06:20:00
ReadingsVal("Abfall","c-tomorrow","")
Danach bekomme ich noch:
<Datum>,<Uhrzeit>,<Text>,<Endet am>,<End um>

Die for Schleife hatte ich vorher probiert, mit selbem Ergebnis, daher hatte ich das erst mal vereinfacht.
Die for Schleife (hab ich mal auf today geändert, damit noch ein Termin drin ist):
sub AbfallNotify {
my $i;
my $modtext;
for($i= 1;$i<= ReadingsVal("Abfall","c-today", 0);$i++){
$modtext .= "Abfall:<Heute>,today_".sprintf('%03d',$i)."_btime,today_".sprintf('%03d',$i)."_summary,today_".sprintf('%03d',$i)."_edate,today_".sprintf('%03d',$i)."_etime ";}
fhem("modify AbfallTermine $modtext");
if (ReadingsVal("Abfall","c-tomorrow", "> 0")) {DebianMail('meine@mail.de','Muell rausstellen',$modtext);}
}

bringt das selbe Ergebnis wie die if Abfrage.

Gruß,
Tobi

chris1284

ist abfall evtl der name deiner readingsgroup  :o denn
Zitat<Datum>,<Uhrzeit>,<Text>,<Endet am>,<End um>
wird nicht vom calview erstellt.
wenn dann muss dein notify auf das calview device gehen