57_SSCal - Modul für den Synology Kalender

Begonnen von DS_Starter, 03 Januar 2020, 09:54:09

Vorheriges Thema - Nächstes Thema

DS_Starter

Moin Wzut,

schön dass die Warnungen weg sind. Kann es auch nicht 100%ig nachvollziehen. Hatte bei mir nie solche Fehler, egal ob der Kalender leer war oder nicht. Aber egal, habe die Funktion an dieser Stelle umgebaut.

Also wenn normale ATS auch nicht zur Strukturänderung führen, stelle ich das um. Ich wollte zum Beispiel das comment noch aus Description füllen usw. Und den Raum per Default nach SSCal usw.
Dein Vorschlag ist gut ... ich switche heute Abend Mal um auf Description ...

Wenn du noch eine Idee für das Attr createATDevs ? Der Name gefällt mir nicht besonders gut, aber mir fällt nichts passenderes ein.

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wzut

ja normale einmalige at ist genau so gut, 2016 hat Rudi sich noch geweigert defmod dafür zu erweitern -> https://forum.fhem.de/index.php/topic,62188.msg536316.html#msg536316
ZitatWarum du "modify -temporary" brauchst, ist mir wiederum ein Raetsel: ein einmaliges at generiert kein rotes Fragezeichen

2018 hat er seine Meinung geändert und es getan  -> https://forum.fhem.de/index.php/topic,85545.msg798340.html#msg798340
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

DS_Starter

Jetzt habe ich die Geschichte nochmal mit der automatischen Erstellung von at-Devices überarbeitet und gleich im Wiki umfassend beschrieben:

https://wiki.fhem.de/wiki/SSCal_-_Integration_des_Synology_Calendar_Servers#at-Devices_f.C3.BCr_Steuerungen_automatisch_erstellen_und_verwalten_lassen

Terminänderungen (Zeit/Inhalt) im Kalender werden in die at übernommen und diese auch gelöscht wenn im Kalender die Referenzen gelöscht werden.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wzut

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Wzut

also das schaut soweit gut aus auch was Änderungen an den Terminen betrifft.
Aber eine Sache ist mir jetzt aufgefallen :
Wenn man einen Serientermin erstellt Bsp täglich wiederholend ( x 5 ) und dann einen der Wiederholtermine löscht ist er in der Synyo Webansicht weg
aber er belibt in deiner Liste. Ich vermute du berechnest die Termine anhand des ersten Eintrags.
Oder Beispiel Abfallkalender : Start im Januar bsp Dienstag , Wiederholung bis Dezember. Verschiebt man nun irgendwo in der Liste einen Tag von Dienstag auf Mittwoch (Planänderung wegen Feiertag) dann ändert sich im Modul auch hier der Tag nicht.   
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

DS_Starter

Moin Wzut,

die Berechnung erfolgt anhand der von der API geliefert Wiederholungsregeln. Du siehst es im Reading

0_70_repeatRule  FREQ=DAILY;COUNT=3

bzw. mit verbose 5 im Log:

'modify_time' => '2020-02-18 07:38:11.136041+00',
                                        'create_time' => '1582010590.7781',
                                        'priority' => undef,
                                        'evt_repeat_setting' => {
                                                                  'repeat_rule' => 'FREQ=DAILY;COUNT=3'

                                                                },
                                        'original_cal_id' => '/Heiko/igiwulwq/',


Grundsätzlich hast du aber recht. Ich sehe allerdings in den gelieferten Daten der API keinen Anhaltspunkt dass zum Beispiel ein Termin der Serie verschoben wurde.
Ich schaue nochmal genauer hin, aber wenn uns da nichts greifbares auffällt muß ich das erstmal in der Rubrik "Beschränkungen" im Wiki aufnehmen und mich mit Synology in Verbindung setzen.
Wenn du etwas sehen solltest, nehme ich gerne ...
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Wenn man einen Termin aus einer Serie löscht, dann wird dieser Termin im 'evt_ical' vermerkt:

'evt_ical' => 'BEGIN:VCALENDAR

PRODID:-//Synology//EN
VERSION:2.0
BEGIN:VEVENT
CREATED:20200218T091032
LAST-MODIFIED:20200218T091032
DTSTAMP:20200218T091032
UID:20200218T091032-8c6c4abc@172.17.0.1
SEQUENCE:4
SUMMARY:Test1
TRANSP:TRANSPARENT
DTSTART;TZID=Europe/Berlin:20200218T130000
DTEND;TZID=Europe/Berlin:20200218T140000
DESCRIPTION:
LOCATION:
RRULE:FREQ=DAILY;COUNT=4
EXDATE:20200219T120000Z
EXDATE:20200220T120000Z

END:VEVENT

Anhand dieser Info kann ich es prüfen und entsprechend im SSCal-Device excludieren. Aber eine Uhrzeitänderung oder Verschiebung eines Termins einer Serie wird von der API nicht signalisiert oder habe es noch nicht entdeckt.
Zumindest die Löschung baue ich erstmal mit ein. Den Rest müssen wir sehen.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wzut

Du machst das schon da bin ich zuversichtlich :)
BTW : Ich habe bisher den Abfallkalender jeden Januar von Hand in holiday eingepflegt (scheiss Arbeit da mein Entsorger keine ical zur Verfügung stellt sondern nur eine pdf)
Nun habe ich gedacht mach es simpel  drei Serientermine ab Januar definiert und die paar Ausnahmen angeklickt und um ein,zwei Tage verschoben, ratz fatz erledigt. Nun kommt es aber :
Ich habe den geändert Abfallkalender jetzt exportiert und in Outlook eingebunden -> die geänderten Tage stimmen !
Und noch besser, klicke ich einen geänderten Tag an um ihn wieder zu ändern sagt Outlook dieser Termin sei Teil einer Serie.
Du bist mit ical  Syntax sicher besser vertraut als ich aber wenn man mit einen Texteditor sich die exportierte ical Datei anschaut dann steht zuerst die Definition der Serie, danach folgt aber quasi als Ausnahme der erste verschobene Tag . Also müsste der Fall eigentlich in der rfc5545 stehen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

DS_Starter

ZitatAlso müsste der Fall eigentlich in der rfc5545 stehen
Ja, sehe ich genauso. Nur will ich ja nicht erst einen Kalender per ical exportieren und wieder importieren, dafür gib es ja 57_Calendar.
Dieses Modul stützt sich ja auf die API von Synology und die Informationen die diese Schnittstelle bringt.
Vielleicht haben die noch einen Bug oder aber ich sehe die Info nicht. Schau mal mit verbose 5 die Infos aus der Schnittstelle an. Wenn dir dort etwas dienliches auffällt ist es was für uns. Sonst muss ich wiklich mal an Syno ran.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Ha, ich habs  :)

da hat sich der nicht gelöschte, aber veränderte Termin ganz unten versteckt.
.....
BEGIN:VEVENT
CREATED:20200218T091032
LAST-MODIFIED:20200218T091032
DTSTAMP:20200218T091032
UID:20200218T091032-8c6c4abc@172.17.0.1
SEQUENCE:5
SUMMARY:Test1
TRANSP:TRANSPARENT
DTSTART;TZID=Europe/Berlin:20200221T150000
DTEND;TZID=Europe/Berlin:20200221T160000

DESCRIPTION:
LOCATION:
RECURRENCE-ID;TZID=Europe/Berlin:20200221T130000
END:VEVENT
END:VCALENDAR',

Nun muss ich das Ganze "nur" noch sauber einbauen.  ;)
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Hallo Wzut, @all,

geänderte oder gelöschte Serientermine werden nun auch durch das Modul registriert und entsprechend bei der Generierung von at-Befehlen berücksichtigt.

contrib Version 1.13.0.

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Ich habe noch einiges an Bugfixing betrieben. Zum Beispiel die Erinnerungstermine korrigiert wenn Termine in einer Serie verändert wurden oder wenn ein Termin einer Serie, die eigentlich nur Ganztagestermine enthält, ausnahmsweise nicht den ganzen Tag einnimmt.
Im letzteren  Fall wird die Struktur dieses Termins in der Übersichtstabelle angepasst.

Ist im contrib ...
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Guten Morgen,

habe die Version 1.14.0 ins contrib gestellt.

Es gibt für beide Kalendertypen einheitlich ein set calUpdate um Einträge abzurufen.

Die jeweils für die Models Diary bzw. Tasks unterschiedlich vorhandenen setter calEventList bzw. calToDoList sind obsolete und entfernt !

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Habe noch Korrekturen bei sich wiederholenden Terminen mit den Eigenschaften WEEKLY by DAY und MONTHLY by MONTHDAY
vorgenommen.
Grad mal ein bisschen Monolog hier  :D
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wzut

*Heiko mal zart über den Kopf streichen*
Ich lese immer mit auch wenn nicht immer alles verstehe :)
Hab ich das jetzt richtig verstanden : Ich kann meinen Abfallkalender so primitiv anlegen und dann die Sondertermine verschieben, d.h. das Problem ist erledigt oder muß ich dazu den Kalender nochmal neu anlegen ?
Mit der Funktion FHEM Befehle in {} einbetten bin ich extrem glücklich und mir fallen da immer neue Sachen ein die ich bisher recht umständlich händeln musste
( Bsp weekday Timer mit zig Ausnahmen ) Ich denke unsere Schichtarbeiter mit unregelmäßigen Schichtzeiten wären begeistert wenn sie das endecken würden.
BTW: Gib doch mal den anderen Kalender Autoren einen dezent Wink mit dem Zaunpfahl, ich kann mir echt nicht vorstellen der Einzige zu sein (obwohl kein Schichtarbeiter)  der sich das schon immer gewünscht hat.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher