Kalender Termin auf Datum filtern

Begonnen von pcjogi, 07 Juli 2017, 08:08:25

Vorheriges Thema - Nächstes Thema

pcjogi

Hallo zusammen,

ich finde keine richtigen Ansatz und meine regex Kenntnisse sind auch etwas mager.

Ich habe einen Google Kalender erfolgreich eingebunden und möchte im FTUI die Termine anzeigen. Dafür brauche ich eine Liste von Terminen für Heute, Morgen in 2 Tagen und in 3 Tagen. Im Bild habe ich das gewünschte Ergebnis mit Termin 1 und Termin 2 mal gefaked.

Idee war mehrere Calviews zu erzeugen, aber hier bekomme  ich noch nicht mal ein Ergebnis.

Kann mir bitte jemand einen Tipp geben wie ich am Besten ansetze.

Danke
Zentral-Fhem , Mehrere Sub-Fhem (433Mhz und 833Mhz; Alexa-Steuerung; Heizungssteuerung; Sicherheitsfunktionen; Energiesteuerung); IoBroker zur Darstellung (alles als Container auf Proxmox), untereinander verbunden über einen MQTT Broker, insgesamt über 200 Sensoren/Aktoren.

JensS

Mit dem "attr Kalender hideOlderThan 0d" und "attr Kalender hideLaterThan 1d" kannst du deine Suche z.B. auf den heutigen Tag eingrenzen und dir die Termine mit "get Kalender full all" ausgeben lassen. (sh. commandref)

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

Zook

Nutz doch das Calview Modul. Du musst nur 2 (Google) Kalender (z.B. Familien- und Abfallkalender) bei Calview eintragen


Gesendet von iPhone mit Tapatalk
Intel NUC mit Proxmox; Busware CUL 868 v3; Signalduino; Synology DS 420, DS 215j + APC USV; Amazon Alexa + HA Bridge; FritzBox 7490; Fritz Dect 200; Fritz Dect 210; Brennenstuhl RCS 1000; Philips HUE; HM-SEC-WDS-2, HM-SEC-SCo; VU+ SOLO 4K und diverse Module

pcjogi

Hallo  dirigent,

das hilf schon mal, bedeutet aber, dass ich für jeden Tag die Attribute ändern muss und je ein get ausführen muss. Mein Wunsch / Anspruch ist es hier ggf. ein hideLaterThan 4d zu machen und ein geschicktes regex zu fabrizieren welches mir bei einem get den jeweiligen Tag rausfiltert. Hier bin ich aber im Moment restlos überfragt wie ich das in regex umsetzen kann. Ich denk da nochmal drauf rum, nehme aber auch noch gerne Hilfe an.

Danke

Zentral-Fhem , Mehrere Sub-Fhem (433Mhz und 833Mhz; Alexa-Steuerung; Heizungssteuerung; Sicherheitsfunktionen; Energiesteuerung); IoBroker zur Darstellung (alles als Container auf Proxmox), untereinander verbunden über einen MQTT Broker, insgesamt über 200 Sensoren/Aktoren.

pcjogi

Bin ein bisschen weiter aber noch nicht am Ziel.

wenn ich ein Userreading mit get meinkalender text all erstelle stehen dort alle Termine drin. Wenn ich das Ergebnis mit folgendem Regex bearbeite ^((?!07.07.17).)*$ erhalte ich nur die Einträge vom 07.07.2017.

Wie kann ich jetzt ein userreading in der form

attr meinkalender userreadings  day0 { fhem ("get meinkalender text all"}

so "mit dem regex bearbeiten", dass dann nur die Einträge vom z.B. 07.07.17 drinstehen.


Um den nächsten Punkt, das Datum dann als Variable in den Regex zu bekommen kann ich mich später kümmern. Wer hier auch einen Tipp für mich hat gerne.


Danke
Zentral-Fhem , Mehrere Sub-Fhem (433Mhz und 833Mhz; Alexa-Steuerung; Heizungssteuerung; Sicherheitsfunktionen; Energiesteuerung); IoBroker zur Darstellung (alles als Container auf Proxmox), untereinander verbunden über einen MQTT Broker, insgesamt über 200 Sensoren/Aktoren.

pcjogi

So auf Shellebene bekomme ich das hin was ich brauche. Vielleicht kann mir jemand helfen das in ein userreading zu bekommen.

:~$ /opt/fhem/fhem.pl 7072 "get Kalender_csws text all" | grep 07.07.17 | perl -ane 'print "$F[2] $F[3]\n"'
Frau Schmidt
Arzt


Den 07.07.17 muss noch variabel werden und ich brauche nicht nur den 3. und 4. Teil der Zeile, sondern ab dem 3. Teil den Rest.

Danke
Zentral-Fhem , Mehrere Sub-Fhem (433Mhz und 833Mhz; Alexa-Steuerung; Heizungssteuerung; Sicherheitsfunktionen; Energiesteuerung); IoBroker zur Darstellung (alles als Container auf Proxmox), untereinander verbunden über einen MQTT Broker, insgesamt über 200 Sensoren/Aktoren.

JensS

Hier mal ein Einzeiler ;) :
{  my $heute = strftime "%d.%m.%y", localtime(time);;my @termine=grep /$heute/,split(/\n/,fhem("get Kalender_csws text all"));;for(my $i;;$i<@termine;;$i++){my $ergebnis=substr(@termine[$i],15,);;return "$ergebnis"} }
Für morgen addierst du einfach 86400:
{  my $heute = strftime "%d.%m.%y", localtime(time+86400);;my @termine=grep /$heute/,split(/\n/,fhem("get Kalender_csws text all"));;for(my $i;;$i<@termine;;$i++){my $ergebnis=substr(@termine[$i],15,);;return "$ergebnis"} }

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

pcjogi

Danke für die Antwort. Leider bekomme ich noch eine Fehlermeldung :

day0 Error evaluating Kalender_csws userReading day0: syntax error at (eval 492) line 1, at EOF
Ich finde den Fehler aber leider nicht.

day0 {  my $heute = strftime "%d.%m.%y", localtime(time);;my @termine=grep /$heute/,split(/\n/,fhem("get Kalender_csws text all"));;for(my $i;;$i<@termine;;$i++){my $ergebnis=substr(@termine[$i],15,);;return "$ergebnis"} }


Vielleich kannst du nochmal helfen

Danke
Zentral-Fhem , Mehrere Sub-Fhem (433Mhz und 833Mhz; Alexa-Steuerung; Heizungssteuerung; Sicherheitsfunktionen; Energiesteuerung); IoBroker zur Darstellung (alles als Container auf Proxmox), untereinander verbunden über einen MQTT Broker, insgesamt über 200 Sensoren/Aktoren.

JensS

Machst du so:
{ my $x;;my $heute = strftime "%d.%m.%y", localtime(time);;my @termine=grep /$heute/,split(/\n/,fhem("get Kalender_csws text all"));;for(my $i=0;;$i<@termine;;$i++){if($i!=0){$x=$x.","};;$x=$x.substr(@termine[$i],15,);;};;fhem("setreading Kalender_csws day0 $x") }

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.