57_CALENDAR und Kategorien

Begonnen von caldir65, 08 November 2017, 18:53:24

Vorheriges Thema - Nächstes Thema

caldir65

Hallo,

ich habe mehrere Kalender definiert, die von einem NextCloud-Server geliefert werden. In den Kalendern werden z.T. auch Kategorien eingesetzt, die dann auch in der entsprechenden ical-Datei  zu finden sind

BEGIN:VEVENT
DTSTAMP:20171108T173915Z
CREATED:20171108T173831Z
UID:libkcal-1293077445.855
SEQUENCE:4
LAST-MODIFIED:20171108T173915Z
SUMMARY:Überstunden frei Meike
LOCATION:Bakum
STATUS:CONFIRMED
CATEGORIES:Urlaub
DTSTART;VALUE=DATE:20171113
DTEND;VALUE=DATE:20171114
TRANSP:TRANSPARENT
END:VEVENT
END:VCALENDAR

(Ausschnitt aus einer von Nextcloud exportierten Kalenderdatei)

Ich würde die Kategorien gerne in fhem auswerten, z.B. für Heizungs- oder Rollosteuerung, aber offenbar werden die nicht vom Modul übernommen?
Ein get kalender full all ergibt
libkcal1293077445855  upcoming                     13.11.2017 00:00:00-14.11.2017 00:00:00 Überstunden frei Meike Bakum

Gibt es eine Möglichkeit, die Kats auch hier / im Modul mit einzubringen?

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

Dr. Boris Neubert

Hallo Christoph,

wenn Du selbst etwas Perl kannst, kannst Du mal bitte versuchen, Kategorien in der Funktion ab Zeile 1094 in 57_Calendar.pm als

  $event->{categories}= $self->valueOrDefault("CATEGORIES", "");

zu ergänzen. Ferner categories in Zeile 1753 aufführen und in der Litanei ab Zeile 1815 als $event->categories() ergänzenund dann noch eine sub categories ab 483 einbauen.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

caldir65



Zitat von: Dr. Boris Neubert am 09 November 2017, 21:39:28
Hallo Christoph,

wenn Du selbst etwas Perl kannst,

Hallo Boris,

das ist das Problem, ich kann nicht wirklich programmieren - das was ich mit fhem bisher realisiert habe, ist letztlich zusammen gesucht und etwas angepaßt ;) ... ich habe mal etwas Basic und Turbopascal gelernt - aber das war vor über 30 Jahren :D

Ich will mich wohl mal in der nächsten Zeit versuchen (am We bin ich allerdings nicht da), aber ob es wirklich klappt... - schauen wir mal ;)

Gruß Christoph

Gesendet von meinem SM-G930F mit Tapatalk

Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

Dr. Boris Neubert

Hallo,

ich schaue mal, wann ich die paar Zeilen eingebaut bekomme.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

nils_

viele Wege in FHEM es gibt!

caldir65

#5
Moin,

ich habe mir die obigen Modifikationen einmal angesehen und eingebaut - nach der Änderung von category in categories an verschiedenen Stellen scheint es zu klappen - zumindest erhalte ich bei
get <kalendar> categories all
für die geladenen Events die Kategorie ausgeworfen.

Bei
get <kalendar> full all
kommen zwar alle Events, aber die Kategorie wird nicht angezeigt, und auch in den Readings ist sie noch nicht dabei...

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

nils_

Zitat von: caldir65 am 13 November 2017, 11:18:08
ich habe mir die obigen Modifikationen einmal angesehen und eingebaut - nach der Änderung von category in categories an verschiedenen Stellen scheint es zu klappen - zumindest erhalte ich bei
get <kalendar> categories all
für die geladenen Events die Kategorie ausgeworfen.
oh, hab ich da noch was verbockt??

Zitat von: caldir65 am 13 November 2017, 11:18:08
Bei
get <kalendar> full all
kommen zwar alle Events, aber die Kategorie wird nicht angezeigt, und auch in den Readings ist sie noch nicht dabei...

für abfrage von "full", müsste wohl noch die sub asFull() angepasst werden.
(und um es vollständig zu machen, wohl auch asDebug() )

sub asFull {
  my ($self)= @_;
  return sprintf("%s %9s %s %s-%s %s %s %s",
    $self->uid(),
    $self->getMode(),
    $self->{alarm} ? $self->ts($self->{alarm}) : "                   ",
    $self->ts($self->{start}),
    $self->ts($self->{end}),
    $self->{summary},
    $self->{category},
    $self->{location}
  );
}

sub asDebug {
  my ($self)= @_;
  return sprintf("%s %s %9s %s %s-%s %s %s %s %s",
    $self->uid(),
    $self->modeChanged() ? "*" : " ",
    $self->getMode(),
    $self->{alarm} ? $self->ts($self->{alarm}) : "                   ",
    $self->ts($self->{start}),
    $self->ts($self->{end}),
    $self->{summary},
    $self->{category},
    $self->{location},
    $self->hasNote() ? $self->getNote() : ""
  );
}

viele Wege in FHEM es gibt!

caldir65

Moin,

jupp, jetzt kommt es auch im
get <kalendar> categories all

Nur in den Readings ist noch nix

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

nils_

#8
nur zur info:

bei
return sprintf("%s %9s %s %s-%s %s %s %s",
ist ein %s mehr drin! durch das hinzufügen einer weiteren variable (categories)



nur kurz, bin gleich unterwegs.

//edit
wie sehen denn mometan die readings aus? poste doch mal ein list (evtl. persönliche daten vorher entfernen!)
viele Wege in FHEM es gibt!

caldir65

Moin,

Internals:
   DEF        ical url https://NAME:PASSWORT@fSERVER/remote.php/dav/calendars/christoph/urlaubs-kalender/?export 86400
   NAME       fhem_Urlaub
   NOTIFYDEV  global
   NR         1497
   NTFY_ORDER 50-fhem_Urlaub
   STATE      triggered
   TYPE       Calendar
   READINGS:
     2017-11-13 21:37:16   calname         Urlaubs-Kalender
     2017-11-13 21:37:16   lastUpdate      2017-11-13 21:37:14
     2017-10-29 17:01:47   modeAlarm
     2017-11-14 00:00:00   modeAlarmOrStart
     2017-10-29 17:01:47   modeAlarmed
     2017-11-14 00:00:00   modeChanged     libkcal1293077445855
     2017-11-14 00:00:00   modeEnd         libkcal1293077445855;libkcal613483831795;libkcal19232735521006;libkcal20283278581014
     2017-11-14 00:00:00   modeEnded       libkcal1293077445855
     2017-11-14 00:00:00   modeStart
     2017-11-13 10:41:07   modeStarted
     2017-11-13 00:00:00   modeUpcoming
     2017-11-13 21:37:16   nextUpdate      2017-11-14 21:37:14
     2017-11-14 00:00:00   nextWakeup      2017-11-14 21:37:14
     2017-11-14 00:00:00   state           triggered
Attributes:
   alias      Urlaubskalender
   hideOlderThan 7d
   room       Kalender
   verbose    5


Ein
get <kalendar> categories all

bringt aktuell das Ergebnis im Anhang

Gruß, CHristoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

nils_

ist das nun richtig oder falsch?

viele Wege in FHEM es gibt!

caldir65

Moin,

was get all betrifft, sind meine Kategorien ja da, aber in den Readings noch nicht...
Ich weiß jetzt nicht, wie Calview letztlich abfragen würde - ob es da in den Readings sein müßte...

Mal sehen, wann ich wieder mehr Zeit habe ;) Im Moment komme ich nicht wirklich groß dazu ...

Gruß, CHristoph

PS: im Update von heute früh sind die Categories noch nicht enthalten ;) - also werde ich sie wieder einarbeiten ;)
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

nils_

Zitat von: caldir65 am 15 November 2017, 08:12:51
Ich weiß jetzt nicht, wie Calview letztlich abfragen würde - ob es da in den Readings sein müßte...
hab dort auch mal reingeschaut, da werden die Kategorien nicht abgefragt, d.h. dort müsste vmtl. auch etwas angepasst werden!

Zitat von: caldir65 am 15 November 2017, 08:12:51
PS: im Update von heute früh sind die Categories noch nicht enthalten ;) - also werde ich sie wieder einarbeiten ;)
es gibt ja kein offizielles update von Boris. wurde deine lokale anpassung überschrieben?
entweder musste die Änderungen immer wieder einbauen, oder exclude_from_update nutzen bis es eine neue version gibt. (und dann nicht vergessen, das auch wieder zu entfernen ;) )
viele Wege in FHEM es gibt!

caldir65

Zitat von: nils_ am 15 November 2017, 08:35:22
hab dort auch mal reingeschaut, da werden die Kategorien nicht abgefragt, d.h. dort müsste vmtl. auch etwas angepasst werden!
es gibt ja kein offizielles update von Boris. wurde deine lokale anpassung überschrieben?
entweder musste die Änderungen immer wieder einbauen, oder exclude_from_update nutzen bis es eine neue version gibt. (und dann nicht vergessen, das auch wieder zu entfernen ;) )
Ist ja kein Problem mit dem Update - ich habe auch noch meine Version gesichert ;)

Wenn ich die Zeit finde, werde ich mich noch mal damit auseinander setzen - mal sehen, was ich hin bekomme ;)

Gesendet von meinem SM-G930F mit Tapatalk

Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

Dr. Boris Neubert

Hi,

Danke für die Vorarbeiten und den Patch. Habe mir vorgenommen, ihn dieses Wochenende zu integrieren.

Was meinst Du mit Kategorien in Readings? Es gibt nichts Vergleichbares im Modul. Wie sollte das Deiner Meinung nach durch Dich benutzt werden können bzw. was willst Du damit erreichen?

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

nils_

Zitat von: Dr. Boris Neubert am 15 November 2017, 10:27:09
Danke für die Vorarbeiten und den Patch. Habe mir vorgenommen, ihn dieses Wochenende zu integrieren.
gerne.

Zitat von: Dr. Boris Neubert am 15 November 2017, 10:27:09
Was meinst Du mit Kategorien in Readings? Es gibt nichts Vergleichbares im Modul. Wie sollte das Deiner Meinung nach durch Dich benutzt werden können bzw. was willst Du damit erreichen?
ich habe auch erst gerätselt, aber bin dann zu dem entschluß gekommen, das er die readings von 57_CALVIEW meint.
dort werden (logischerweise) die Kategorien nicht benutzt, nur weil sie nun in CALENDAR eingebaut wurden.

dazu siehe noch den Anhang.
wobei ich mir da nicht sicher bin bzgl. ein- / mehrzahl.
Nutzung ohne Gewähr! :)
viele Wege in FHEM es gibt!

caldir65

Hallo,

letztlich stelle ich mir so vor, daß ein Familienmitglied bei uns den Kalender mit seinen Urlaubs- oder nicht-arbeiten-müssen-Zeiten füttert, dabei als Kategorie z.B. Urlaub eingibt, was sich dann wieder in fhem über das Calendar- und/oder Calview-Modul wiederfindet, um so dann verwertet zu werden, z.B. um die Rollos zu einer "Wochenend- und Urlaubstauglichen Zeit" hoch zu fahren - was ja letztlich wohl am ehesten durch Auswerten von Readings bzw. der entsprechenden Kategorie (in der ical-Datei als "categories") in den Readings realisiert wird.

Dabei wäre vlt. Calview interessanter, da dort ja alle ausgelesenen Kalenderdateien quasi zusammen geführt werden in einer Ansicht, was dann auch die Ergänzung um einen weiteren Kalender vereinfacht, vor allem in der Auswertung

Btw. schon einmal vielen Dank an alle, die sich bereits bis hierher Gedanken gemacht haben ...

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

nils_

ok, problem bzw. zielsetzung verstanden ;)


hast du die angehängten dateien für CALVIEW mal ausprobiert??
viele Wege in FHEM es gibt!

caldir65

Moin,
nein, keine Zeit gehabt... Hoffe, ich komme vorm WE noch einmal dazu

Gruß Christoph

Gesendet von meinem SM-G930F mit Tapatalk

Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

caldir65

Moin,

ja, sieht gut aus in dieser Calview-Version mit den Änderungen in Calendar :)

Damit ist dann auch nicht mehr notwendig, das in 57_Calendar.pm Anpassungen für die Readings gemacht werden, da man ja die Categories via Calview geliefert bekommt...
Im Prinzip könnten von meiner Seite diese Änderungen so in die eigentlichen Module einfließen ;)
Danke

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

Dr. Boris Neubert

Ist der Patch im Post vom 15 November 2017, 11:02:08 der vollständige, letzte?
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

caldir65

#21
Moin Boris,

der Post, auf den Du Dich beziehst, ist aber das 57_Calview ;) - die von Nils_ erstellte und von mir angepasste Version in meinem Post vom  13 November 2017, 11:39:46 müßte die aktuelle Version sein, zumindest läufte die zusammen mit der modifizierten 57_Calview bei mir mit gewünschtem Ergebnis. Ich hänge  die bei mir aktuell Module noch einmal an...

In dieser Variante ist keine Ergänzung der Readings notwendig - die habe ich ja dann im Calview ;)

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

Dr. Boris Neubert

Mit einer Änderung bei full/debug eingecheckt.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

caldir65

Moin,

sieht super aus!
Danke

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

nils_

#24
Zitat von: nils_ am 15 November 2017, 11:02:08
wobei ich mir da nicht sicher bin bzgl. ein- / mehrzahl.

darüber sollte auch nochmal jemand gucken bzw. was dazu sagen....
was passiert bei mehr als einer Kategorie?
sollte das Reading "categories" oder "category" heißen?


ansonsten viel Spaß :)

//edit
Zitat von: Dr. Boris Neubert am 17 November 2017, 22:35:12
Mit einer Änderung bei full/debug eingecheckt.
bei mir war das drin, Christoph hatte es "unterschlagen" :) :)  ;)
viele Wege in FHEM es gibt!

caldir65

Moin,

Das Reading kann gerne Category heißen, jedoch ist die offizielle Schreibweise in der ical-Datei categories, muß also auch schon so bei der Verarbeitung berücksichtigt werden... abgesehen davon kann das Feld tatsächlich auch tatsächlich mit mehreren Kategorien belegt werden ;) - da wäre die Mehrzahl dann ja wieder korrekt ;)

Das wäre tatsächlich noch ein Punkt, den ich mal testen muß, wie sich die Module verhalten, wenn mehr als eine Kategorie eingetragen ist

Gruß Christoph

Gesendet von meinem SM-G930F mit Tapatalk

Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

caldir65

Moin,

ich habe jetzt mal einen Termin mit zwei Kategorien angelegt - die werden dann einfach durch Komma getrennt angezeigt ... ;)

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.