FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Kalendermodule => Thema gestartet von: DS_Starter am 03 Januar 2020, 09:54:09

Titel: 57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 03 Januar 2020, 09:54:09
Hallo miteinander,

da es mittlerweile eine von Synology zur Verfügung gestellte API für die Kalenderapplikation auf der DS gibt, dient dieses Modul zur Einbindung der Synology Kalender in FHEM.
Über die API ist es neben den normalen Lesefunktionalitäten auch möglich neue Einträge in den Kalendern zu erstellen bzw. Aufgaben zu erstellen. Diese Funktionalität ist allerdings zur Zeit noch nicht implementiert.
Die Kalendereinträge werden als Klartext zur Verfügung gestellt und werden dementsprechend in SSCal in sofort lesbaren Readings abgebildet.

Es werden sowohl Terminkalender als auch Aufgaben abgerufen/verarbeitet.

Der Wiki-Eintrag zu diesem Modul befindet sich hier: https://wiki.fhem.de/wiki/SSCal_-_Integration_des_Synology_Calendar_Servers

Das Modul ist im FHEM Repository enthalten und wird über den Standardkanal upgedated.

Aktuelle Entwicklungsversionen können aus meinem contrib-Verzeichnis bezogen werden.

Download:

"wget -qO ./FHEM/57_SSCal.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/57_SSCal.pm"

Danach Restart FHEM wie üblich.



Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: sliderffm am 04 Januar 2020, 11:56:23
Hallo Heiko,

also ich hätte auf jeden Fall Interesse an dem Modul!  :)


Gruß
Andreas
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: coolcat am 04 Januar 2020, 12:25:19
Hi,
Ja cool, weg vom Google Kalender
Viel Interesse 👍
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 04 Januar 2020, 12:37:26
Ok, ich sehe der Aufwand ist durchaus von Allgemeinen Interesse.  :)
Ich sehe zu den aktuellen Stand schonmal im Wiki zu dokumentieren. Es sind auf jeden Fall noch ein paar Hürden zu überwinden. Aber das ist nur eine Frage der Zeit ..

Ich melde mich hier wieder.

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 19 Januar 2020, 15:37:51
Hallo miteinander,

hat nun doch etwas länger gedauert als gedacht, aber nun steht die Beta-Version bereit.
Sie funktioniert bei mir einwandfrei und ich hoffe natürlich bei euch ebenfalls.

Im Wiki habe ich auf der Seite:
https://wiki.fhem.de/wiki/SSCal_-_Integration_des_Synology_Calendar_Servers

den gegewärtigen Stand inklusive Definition und allen wissenswerten Dingen beschrieben.

Zur Zeit sind die Terminkalender integriert, die Aufgaben kommen noch später. Aber erstmal das soweit.

Download aus meinem contrib:

"wget -qO ./FHEM/57_SSCal.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/57_SSCal.pm"

Danach Restart FHEM wie üblich.

Über Testergebnisse freue ich mich wie immer.

LG,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: sliderffm am 20 Januar 2020, 00:14:17
Hallo Heiko,

vielen dank für das Modul zum testen.  :)

Ich habe das Modul wie beschrieben runtergeladen und fhem neu gestartet.
Versuche ich die Definition eines Synology Kalenderdevices anzulegen, erhalte ich folgende Fehlermeldung und der fhem-Prozess wird beendet.

Undefined subroutine &main::SSChatBot_getclhash called at ./FHEM/57_SSCal.pm line 506.
Den Kalender habe ich dabei mit folgenden Befehl versucht anzulegen, mein https Port der Syno ist auf 15001 konfiguriert:

define SynCalSlider SSCal <IPAdresseDerSyno> 15001 https

Viele Grüße
Andreas
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: carlos am 20 Januar 2020, 02:06:10
Hallo
Bei mir das Gleiche, da ist wohl noch zu viel vom SSChatBot mit drin.
eine Änderung von SSChatBot_getclhash  in SSCal_getclhash hilft.
Dann funktionierts.

Gruß

Carlos
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 20 Januar 2020, 07:32:53
Guten Morgen,

ja sorry, da war noch ein Cut&Paste Fehler drin.  Denke es war die einzigste Stelle ;)
Habe es korrigiert und wieder ins contrib geladen.

Güße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: devo am 20 Januar 2020, 14:40:58
Hallo DS-Starter,

vielen Dank für dieses Modul. Ich habe es gerade installiert und getestet. Nachdem ich auf der Synology das Calendermodul installiert habe, die Zugangsdaten, wie beschrieben, eingerichtet habe ließ sich das Modul problemlos installieren. Mit set <name> calEventList lassen sich die Kalendereinträge abrufen. Bin sehr gespannt auf die weitere Entwicklung von SSCal.

Detlev
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: sliderffm am 20 Januar 2020, 19:13:10
Hallo  Heiko,

bei mir klappt leider die Authentifizierung nicht, entweder habe ich noch etwas auf der Syno falsch eingestellt ODER
es liegt an meinem Kennwort, welches Sonderzeichen beinhaltet wie Ausrufezeichen, Fragezeichen und ein Doppelpunkt.

Der Benutzer ist in der Gruppe administrators und ist auch für den Calendar zugelassen. Die Kalenderberechtigung ist auch
entsprechend gesetzt.

Im Logfile wird folgendes Protokolliert:
2020.01.20 19:02:11 4: SynCalSlider - --- Start Synology Calendar login ---
2020.01.20 19:02:11 4: SynCalSlider - credentials read from RAM: slider ********
2020.01.20 19:02:11 4: SynCalSlider - HTTP-Call login will be done with http timeout value: 60 s
2020.01.20 19:02:11 4: SynCalSlider - Call-Out now: https://192.168.10.3:15001/webapi/auth.cgi?api=SYNO.API.Auth&version=6&method=login&account=slider&passwd=*****&format=sid
2020.01.20 19:02:17 5: SynCalSlider - JSON decoded: {
  'error' => {
               'code' => 400
             },
  'success' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
}

2020.01.20 19:02:17 3: SynCalSlider - Login of User slider unsuccessful. Code: 400 - Invalid parameter of file operation - try again
2020.01.20 19:02:17 4: SynCalSlider - --- Start Synology Calendar login ---
2020.01.20 19:02:17 4: SynCalSlider - credentials read from RAM: slider ********
2020.01.20 19:02:17 2: SynCalSlider - ERROR - Login or privilege of user slider unsuccessful

Auf der Syno wird dabei folgendes Protokolliert:
User [slider] from [FHEM-IP-Adresse] failed to log in via [DSM] due to authorization failure

Mit den Sonderzeichen hatte ich auch schon einmal Probleme in diesem Thema hier:
https://forum.fhem.de/index.php/topic,106918.0.html


Gruß
Andreas
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 20 Januar 2020, 19:28:07
Hallo Andreas,

die Sonderzeichen werden es sein.
Ich passe das Modul an und melde mich wieder.

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 20 Januar 2020, 20:08:31
Hallo Andreas,

so, bitte nochmal aus dem contrib ziehen.
Klappt jetzt auch mit einem solchen Passwort in meinem Test:  OC%uI5:!

Das Problem war das ":" darin.

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: sliderffm am 21 Januar 2020, 00:24:03
Hallo Heiko,

viele Dank, das hast du ja ruckzuck gefixt :)

Die Authentifizierung funktioniert nun und auch die Kalender konnte ich dann entsprechend abrufen.

Allerdings erst nachdem ich die 2-Stufen Verifizierung ausgeschaltet hatte.
Ist diese eingeschaltet wird folgende Fehlermeldung protokolliert

Login of User <USERNAME> unsuccessful. Code: 406 - Cannot obtain user/group information from the account server - try again
ERROR - Login or privilege of user <USERNAME> unsuccessful

Wenn ich die API-Guide richtig verstehe, gibt es seit der DSM 4.2 die Möglichkeit folgendes bei dem API-Aufruf mitzugeben:
otp_code=123456&enable_device_token=yes
Ein Aufruf könnte eventl. dann so aussehen?!?
https://<SYNOIP>:<PORT>/webapi/auth.cgi?api=SYNO.API.Auth&version=6&method=login&account=<USERNAME>&passwd=<PASSWORT>&format=sid&otp_code=123456&enable_device_token=yes


Ohne der 2-Stufen Verifizierung kann man aber erstmal weiter testen.  ;)

Gruß
Andreas
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 21 Januar 2020, 00:38:17
Zitat
Wenn ich die API-Guide richtig verstehe, gibt es seit der DSM 4.2 die Möglichkeit folgendes bei dem API-Aufruf mitzugeben:
Ja, das hatte ich auch schon gesehen. Hatte nicht vermutet dass wir so schnell an diesen Punkt kommen.  :)

Dann werde ich diesen Teil mal als nächstes auf die Agenda von SSCal setzen ...

LG,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 21 Januar 2020, 15:44:46
Hallo Andreas,

habe mir die API bezüglich otp_code angeschaut. Syno sagt es ist ein reservierter Key. DSM supportet (natürlich) 2-step Verifikation. Aber

Zitat
However, WebAPI doesn't support it yet

Wahrscheinlich wird es erst später integriert. Da muss man sich wohl noch etwas gedulden.
Dann arbeite ich erstmal an den inhaltlichen Funktionalitäten weiter.

LG,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 31 Januar 2020, 16:41:59
Hallo zusammen,

ich habe weiter am Modul gearbeitet.
Nun ist auch die Verarbeitung der Aufgaben mit integriert.

Dazu gibt es den set-Befehl calToDoList und neue Attribute filterCompleteTask und filterDueTask.

Download aus dem contrib wie im ersten Beitrag angegeben.
Das Wiki ist um die neuen Möglichkeiten ergänzt.

Gibt es eurerseits bereits erste Testergebnisse ?

LG,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 01 Februar 2020, 14:52:48
Ich habe noch weitere Features eingebaut:

* set cleanCompleteTasks löscht alle als fertig gekennzeichneten Aufgaben der gewählten Aufgabenlisten
* set deleteEventId löscht die selektierte Event Id (Reading x_x_EventId) aus dem Kalender bzw. der Aufgabenliste. Eine Auswahl wird über eine Drop-Down Liste angeboten
* get apiInfo ruft die API-Infos neu vom Synology Calendar ab und zeigt diese Infos über ein Popup an.
* leere Readings werden vermieden

Das Wiki ist wieder entsprechend weitergeführt.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 02 Februar 2020, 21:04:13
Das Modul ist noch weiter gewachsen.
In der Detail- bzw. Raumansicht wird per default eine Kalenderübersicht mit den abgerufenen Terminen angezeigt.
Mit den Attributen calOverviewInRoom bzw. calOverviewInDetail kann man diese Sichten an/abschalten (0).

Außerdem gibt es den get-Befehl calAsHtml. Mit diesem Befehl öffnet sich ein Popup mit einer Termintabelle.
Habe zwei Bilder angehängt.

In eigenen Perl-Routinen (bzw. Einbindung in weblink) steht der Aufruf:

 { SSCal_calAsHtml ("<SSCal-Device>") }

zur Verfügung.

LG,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: sliderffm am 02 Februar 2020, 22:21:58
Hallo Heiko,

Das freut mich, das es gewachsen ist.  :D

Ich habe es die ganze zeit am laufen und neue Termine werden im fhem korrekt angezeigt,
ich konnte bis jetzt keine Probleme beobachten. Geänderte oder gelöschte Termine werden
ebenfalls nach dem eingestellten Interval-Wert korrekt synchronisiert.

Den letzten Stand habe ich heute Abend bei mir installiert und die Aufgaben werde ich morgen genauer anschauen.


Gruß
Andreas
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 02 Februar 2020, 22:28:01
Freut mich Andreas, dass bis dato alles klappt.  :)
Ich weiß nicht wann du aktualisiert hast. Habe vllt. vor einer halben Stunde nochmal aktualisiert wegen einer kleinen Unschönheit. Evtl. nochmal ziehen und restarten.

LG,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 03 Februar 2020, 17:42:12
Hallo miteinander,

ich habe ein Problem festgestellt, dass Aufgabenlisten nicht per Attribut interval aktualisiert werden konnten.
Das hängt mit unterschiedlichen API-Aufrufen zusammen, je nachdem ob man Terminkalender oder Aufgabenlisten automatisiert abrufen möchte.
Das Modul "weiß" ja nicht was man abrufen möchte.

Um das Problem zu beseitigen habe ich in der Definition einen zusätzlichen Parameter "Task" eingeführt, d.h. man definiert dadurch ein Aufgabenlisten-Device oder ein normales Terminkalenderdevice wenn man Task nicht hinzufügt wie bisher.

Hier ein paar Beispiele für Definitionen (stehen nun auch im Wiki):

define Appointments SSCal 192.168.2.10               # Terminkalender mit Adresse 192.168.2.10 und Standardport
define Calendar SSCal 192.168.2.10 5001 https        # Terminkalender mit HTTPS-Protokoll und entsprechendem Port
define Tasklist SSCAL ds.myds.org 5001 https Tasks   # Aufgabenliste mit HTTPS-Protokoll und entsprechendem Port


Der Devicetyp steht im Internal MODEL. Die verfügbaren Set werden entsprechend des MODEL abgeändert.

Weiterhin kann man nun mit dem Attribut calOverviewFields über eine Drop-Down Liste die in der generierten HTML-Tabelle (Raum/Detailansicht) anzuzeigenden Felder auswählen und diese sich dadurch so zusammenstellen wie man das möchte.

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 04 Februar 2020, 20:41:56
Update neue Version 1.6.1:

* Attribute calendarShowInDetail, calendarShowInRoom wurden zu calOverviewInDetail, calOverviewInRoom umbenannt
* sind GPS-Daten im Kalenderereignis gespeichert, werden sie jetzt als Reading ordentlich aufbereitet
* sofern GPS-Daten geliefert werden und die Auswahl "Map" aus der Drop-Down Liste in den Kalenderübersichten vorhanden, ist ein Kartenlink mit einem Klick auf das Globussymbol erreichbar

VG,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 04 Februar 2020, 20:53:41
Ich wollte natürlich auch mal dein neustes Werk testen , aber leider
2020.02.04 20:50:17 1: PERL WARNING: Use of uninitialized value $maxbnr in numeric le (<=) at ./FHEM/57_SSCal.pm line 3231.kommt ständig
und dann kommt der FHEM restart :/ bedingt durch :
Undefined subroutine &JSON::boolean called at ./FHEM/57_SSCal.pm line 3180
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 04 Februar 2020, 20:57:38
Nabend Wzut,

sieht aus als wäre bei dir JSON nicht geladen. Kann ich mir aber kaum vorstellen.
Kannst du das mal checken ?

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 04 Februar 2020, 21:27:51
Die Warnung "Use of uninitialized value $maxbnr in numeric le (<=) at ./FHEM/57_SSCal.pm line 3231" habe ich gleich noch beseitigt, hat aber mit dem JSON-Fehler nichts zu tun.

Bei dem JSON-Fehler kann ich mir auch vorstellen, dass du vllt. eine alte Version des CPAN-Moduls im System hast ?

Bei mir kommt das als Version:

heiko@fhemtest:~$ dpkg -l |grep -i '\libjson-perl'
ii  libjson-perl                        4.02000-1                       all          module for manipulating JSON-formatted data
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 04 Februar 2020, 21:33:45
Heiko , du müsstest mich doch eigentlich gut genug kennen um zu wissen das ich immer mit alten Systemen arbeite ....
ii  libjson-perl                      2.90-1                             all          module for manipulating JSON-formatted data
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 04 Februar 2020, 21:39:47
Zitat
Heiko , du müsstest mich doch eigentlich gut genug kennen um zu wissen das ich immer mit alten Systemen arbeite ....
klar ... ist mir doch gerade wie Schuppen von den Augen gefallen  :D

Nur war ich mir nicht sicher ob du auch die CPAN-Module nicht aktualisierst. Das sollte doch problemlos möglich sein, oder ?
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 04 Februar 2020, 21:52:16
Habe es mal so umgebaut, dass man ohne diese Funktion aus JSON auskommt.
Vllt. klappt es jetzt auch bei dir.  ;)
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 04 Februar 2020, 21:53:44
na gut ich mach für dich wieder mal ne Ausnahme .... mit der 4.02 gibt es keine Restarts mehr und ich sehe jetzt sogar drei meiner Termine :)
[Klugscheisser on]
jetzt musst nur class= odd/even nachbessern und dann wird die Liste auch zum FHEM Zebra
[Klugscheisser off]
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 04 Februar 2020, 21:57:08
 :D ... und jetzt wollte ich dir was gutes tun. Aber so kommst du mal zu einer ktuellen JSON.  ;)

Ja, odd/even is klar ... ist das gut ? Ich war mir nicht so sicher ...
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 04 Februar 2020, 22:10:27
Habs zum Zebra gemacht.  :)
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 05 Februar 2020, 06:05:11
:D ... und jetzt wollte ich dir was gutes tun. Aber so kommst du mal zu einer ktuellen JSON.  ;)

Ja, odd/even is klar ... ist das gut ? Ich war mir nicht so sicher ...
naja war vllt doch nocht so schlecht die alte zu haben, ich könnte wetten damit sind noch mehr unterwegs.
ich denke es es keine Frage von gut oder schlecht sondern irgendwie FHEM Standart bei Listen (siehe Internals/Readings) immer den hell/dunkel Wechsel zu haben.
IMHO erhöht es die Lesbarkeit, aber das ist vermutlich auch Ansichtssache denn letztes Jahr beim SMA Thema habe ich gelernt das es FHEM Styles gibt die in beiden Klassen den gleichen Farbwert nutzen.

Edit : Stichwort Lesbarkeit
Ich tue mir immer etwas schwer mit den FHEM Datum/Zeit Strings , besonderes wenn auch noch zwei direkt hinter einander stehen wie bei Begin - End
kannst ja mal das testen ( vor der Ausgabe von $end )
$end = substr($end,11,8) if (substr($begin,0,10) eq substr($end,0,10));damit haben Termine die am gleichen Tag enden nur die Uhrzeit, Damit das auch hübsch wird muss man noch an das TD ran und align='right' dazupacken.
Ich war erst verwundert das es nicht griff  und habe da auf deine class='sscal' ganz verzichtet. Nur aus Neugier warum setzt du die überhaupt in der Table ?

Und noch so ne blöde Idee :  wenn das Datum heute oder morgen ist es nicht anzeigen und durch den String heute / morgen ersetzen, eventuell via Attribut ein/aus schalltbar

Edit 2 : Im SMAPortal hast du bei allen Text Ausgaben immer global language geprüft , wäre hier für vllt auch angebacht für die Überschrift ?
 
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 05 Februar 2020, 07:29:52
Morgen Wzut,

danke für deine guten Vorschläge. Die schaue ich mir heute Abend gleich mal mit an. Bin ja immer noch am schrauben an der Übersicht und habe da auch noch eine Idee. Den Style in der Table hatte ich mal bei rumprobieren gesetzt, hatte es dann auch rausgenommen weil sinnlos. Aktuell sind nur TD... definiert und in den <td> gesetzt.
Der Language check kommt auch noch  :)

LG,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 06 Februar 2020, 00:14:23
@Wzut, habe alle deine Vorschläge umgesetzt. Auch der language Support ist drin.

Schaut mal wie es euch gefällt ...  :)

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 06 Februar 2020, 11:44:17
na schaut doch super aus !
Ich habe das SSCAL auf meinen Testystem laufen und dort sind auch noch vom Sommer die ganzen FHEM Styles drauf als das SMA HTML Thema aktuell war.
Ich habe sie nun wieder durchprobiert und es ist das gleiche wie damals in grün. Je nach Style sieht die HTML Tabelle etwas anderes aus,
bzw. bei den bekannten Problemkindern sogar nicht schön. Wenn du möchtest teste ich wieder die Ausgabe und mache dir Vorschläge für Klassen die dafür sorgen immer ein nahezu einheitliche Desgin der Tabelle zu bekommen. 
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 06 Februar 2020, 12:41:01
Hallo Wzut,

Ja, kannst du gern machen, würde mich freuen.
Ich kümmere mich dann noch um ein paar inhaltliche Themen die mir noch fehlen.

Grüsse,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 07 Februar 2020, 09:21:23
here are the results of the german jury :
a. manche Styles sind echt zickig wenn auf eine rechtsbündige TD direkt eine linksbündige folgt. Die haben so wenig Abstand zwischen Text und Rand in ihren TD Klassen definiert das die Buchstaben beider Zellen wie ein Wort aneinander kleben. Abstand bekommt man dann entweder durch setzen von border=1 in TABLE
oder man verzichtet ab der dritten Spalte auf linksbündige Ausgabe und zentriert alle. ( finde ich gar nicht so schlecht )

b. deine beiden $out .= "<tr><td>  </td></tr> erzeugen entweder über der ersten Tabellenzeile zwei Streifen oder aber die erste Zeile ist höher als die nachfolgenden. Ich würde ganz auf beide verzichten oder wenn die erste Zeile wirklich höher sein soll als die anderen direkt deren Höhe beinflussen.

c. ich würde auch auf den Einsatz der Klasse calw150 ganz verzichten und den Styles (besonders denen für Small Screens ) keine Vorschriften über Spaltenbereite machen. Genau diese brechen schon um Platz zu sparen Datum & Zeit der ersten beiden Spalten Trenn Leerzeichen um.

d. Du hast in der Überschrift bei Completion und dem nachfolgendem % ein <br>  das führt dazu das diese Ausgabe horizontal etwas aus der Reihe tanzt.
Ich würde entweder das <BR> durch ein &nbsp; ersetzen oder wenn es bleiben soll für alle TDs der Überschrift valign=top einsetzen.

e. das Weltkugel Icon bei Map : Würde ich dem User zur Wahl stellen ob Icon oder Text bzw. via Attribut mapicon ihn ganz frei wählen lassen welches Icon

f. Stichwort Icon(s) : wäre es nicht schön auch bei  Completion einen horizontalen Fortschrittsbalken zu haben ?
Man könnte entweder tricksen wie beim SMAPortal und mit gefärbten TDs arbeiten oder einen Satz neuer Icons (4 oder 10) einsetzen die  analog zu den heutigen Tor / Rollo % Icons das abbilden. ( Ich kann dir ja mal 5 svgs  [0,25,50,75,100] "malen" )
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 07 Februar 2020, 16:21:30
Hallo Wzut, @all,

wieder mal danke für deine Analyse  :)  Habe so einiges umgesetzt:

a) die rechtsbündige Formatierung ist komplett raus.

b) Diese beiden zeilen habe ich entfernt

c) habe ich auch entfernt, damit Datum/Zeit nicht umbrechen, stelle ich sie in separaten Feldern dar. Funktioniert dann hoffentlich auch in den anderen Styles so wie gewünscht.

d) ist mit &nbsp; ersetzt -> passt

e) sehr  umfassend und passend auf weitere Funktionalitäten umgebaut -> erläuternder Text unten

f) so ein Fortschrittsbalken fände ich super und nehme dein "Malangebot" auch gerne an.  :) Schade ist allerdings, dass der Syno-Kalender bzw. die API zur Zeit nur 0 oder 100% kennt. Abstufungen gibt es dabei nicht. Ich weiß nicht on Syno da noch etwas vorhat. Vllt. kann ich auch einen Featererequest platzieren, aber zur Zeit sagt die API Doku nur 0 oder 100. (Zwischenstufen könnte natürlich einfach mal testen, vllt. haben wir ja Glück und es geht auch das).

Bezüglich der MapIcons ist jetzt folgendes implementiert.
Mit dem Attribut tableColumnMap legt man fest ob ma in der Tabellenspalte "Map" ein Icon (Standard), einen Text  oder mit "data" die gespeicherten Koordinaten sehen möchte.
Die Eigenschaften von Icon und Text wird in einem Hash via Attribut tableSpecs festgelegt:

{
  "columnMapIcon"     => "it_i-net",
  "columnMapText"     => "Hier gehts zur Karte",
  "columnMapProvider" => "GoogleMaps",                           # OpenStreetMap oder GoogleMaps
}

In columnMapIcon hinterlegt man den Namen des gewünschten Icons. Mit columnMapText kann man den Text eingeben den man sehen möchte wenn man mit Attribut tableColumnMap "Text" auswählt.
Und zu guter letzt kann mit columnMapProvider kann man entweder GoogleMaps (Sandard) oder  OpenStreetMap definieren.

Wer da Ähnlichkeiten mit readingsGroup erahnt, täuscht sich nicht.  :D
Das war auch einer meiner Gründe es so zu gestalten weil readingsGroup mit über 3000 Usern sehr verbreitet und die Syntax bekannt ist.

Außerdem ist es gut erweiterbar denn ich habe noch die Vision, die einzelnen Events mit Kontext/Inhaltsabhängigen Icons versehen zu können. Die Möglichkeiten kann man über diesen Hash noch einbauen ... hab schon einen Plan ...

Aber würde mich freuen wieder Meinungen zu hören ...

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 07 Februar 2020, 17:51:56
c.) damit umgehst du zwar das eine Problem gibst aber den Small Screen Styles jetzt keine Chance mehr in der Breite wertvollen Platz einzusparen.
(müsste sich mal jemand mit dem Smartphone und entsprechenden Style anschauen )

f.) das is ja doof das die nur 0 oder 100 liefern :( Als Abhilfe könnte man natürlich anhand Start, Ende & Jetzt selbst die Prozentzahl bestimmen.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 07 Februar 2020, 19:56:08
c) Bei dem Start/Ende Datum/Zeit war bzw. ist mir wichtig dass die nicht umbrechen. Das finde ich äußerst unschön bzw. störend beim Lesen der Tabelle.
Aber ich probiere das auch mal mit meinem Tel aus. Man kann natürlich immer die Felderanzahl mit dem Attr calOverviewFields reduzieren wenn nötig.

f) naja nicht nur liefern, sondern auch setzen. Man kann den Erfüllungsgrad auch nur bei den Tasks setzen/lesen, Terminkalender kennt dieses Eigenschaft nicht. Selbst durch Start/Ende bestimmen wird auch schwierig weil man bei den Tasks nicht zwingend Start/Ende angeben muss. Mehrheitlich werden diese Einträge wahrscheinlich sogar ohne Zeit stehen.

Wenn du zu c) vllt. noch Ideen hast ... gerne  :)

LG,
Heiko

Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 07 Februar 2020, 20:14:48
Einfall ... ich könnte eine Eigenschaft "smallScreen" einführen die man in tablSpecs setzen kann. Wenn gesetzt werden (umbrechbare) Datumfelder erstellt .
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 07 Februar 2020, 22:33:29
Ich habe jetzt eine Eigenschaft "smallScreen" hinzugefügt mit der man den Tabellenaufbau steuern kann.
via Attribut tableSpecs sieht das dann so aus:

{
  "columnMapIcon"     => "it_i-net",
  "columnMapText"     => "Hier gehts zur Karte",
  "columnMapProvider" => "GoogleMaps",                           # OpenStreetMap oder GoogleMaps
  "smallScreen"       => "1",
}

Denke damit kann jeder User seine bevorzugte Variante einstellen.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 08 Februar 2020, 08:49:39
klar das kann man so machen, allerdings legt man sich so direkt für alle Endgeräte einheitlich fest.
Mein Verständis ( alte Styles und mehere WEB Devices ) -> je nach Port unterschiedlicher Style möglich
Sonderrolle f18 mit nur noch einem WEB Port -> FHEM erkennt welches Endgerät zugreift und wechselt die Darstellung selbstständig
aber bevor ich jetzt da was falsches sage lieber nochmal Rudi fragen

Beim SMAPortal war ich auch mal an einem Punkt wo ich vorhatte auszulesen welcher Styletyp gerade angesprochen wird und damit die Ausgabe zu steuern
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 08 Februar 2020, 09:02:57
Ja, da hast du recht Wzut. Ich könnte ja direkt aus dem verwendeten FW-Device das stylesheetPrefix Attr auslesen und dann entsprechend zu steuern -> alles was small im Value trägt bekommt small ...
Nö einfacher ... in der Eigenschaft smallScreen kann der Nutzer die Styles eintragen, bei denen er die Smallscreen Tabelle haben möchte. Total flexibel ...

Die einzelnen Ports im FW sind ja meines Wissens auch nicht fest einem bestimmten Devicetyp zugeordnet, auch wenn es sich vermutlich ein quasi Standard etabliert hat ?

Ich glaube diese Steuerung stelle ich noch etwas zurück bis ich inhaltlich soweit durch bin.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 08 Februar 2020, 10:35:09
Habe die Attribute calOverviewFields, calOverviewInDetail, calOverviewInRoom umbenannt in  tableFields, tableInDetail, tableInRoom. Das Wiki ist aktualisiert.

Das passt einfach besser in den Gesamtkontext mit tableSpecs und tableColumnMap.

Sorry wenn es Umstände beim Test bereitet, aber im Zuge des Modulaufbaus kommen immer mal wieder neue Erkenntnisse in die Umsetzung.

LG,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 08 Februar 2020, 12:55:13
Nun kann man in der Eigenschaft smallScreen eine Komma getrennte Liste von Styles angeben für die man die Tabelle "small screen geeignet" darstellen möchte.

{
  "columnMapIcon"     => "it_i-net",
  "columnMapText"     => "Hier gehts zur Karte",
  "columnMapProvider" => "GoogleMaps",                           # OpenStreetMap oder GoogleMaps
  "smallScreen"       => "darksmallscreen,dark",                 # Komma getrennte Liste von Styles für small Screen Optimierung
}
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 08 Februar 2020, 18:43:43
Ich habe gerade mit dem Kalender gespielt -> neuen erstellt und mal Abfall Termine als Tagesereigniss mit 2 Wochen Wiederholung
Das Webinterface meint das das Tagesereigniss von 0:00 bis 23:59 geht.
In deinen Readings steht allerdings Start 0:00 und Ende 0:00 aber das Enddatum +1 zum Startdatum, dadurch wird natürlich das Ende Datum nicht unterdrückt.
Der Weg wäre jetzt den Termin eben nicht als Tagestermin zu setzen sondern als Zeit 0:00 bis 23:45
Kannst ja mal schauen ob dir die API Abfrage wirklich etwas anderes zurück gibt als die Webseite anzeigt.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 08 Februar 2020, 20:50:44
Hallo Wzut,

das war mir auch schon aufgefallen. Die API liefert so wie die Readings es ausschreiben, siehst du mit verbose 5:
{
                                     'evt_color' => undef,
                                     'dtstart' => '20200213T000000',
                                     'create_time' => undef,
                                     'priority_order' => 565,
                                     'status' => undef,
                                     'modify_time2' => 1578525240,
                                     'is_all_day' => $VAR1->{'data'}{'/Heiko/qmrae/'}[0]{'is_all_day'},
                                     'is_repeat_evt' => $VAR1->{'data'}{'/Heiko/qmrae/'}[11]{'is_all_day'},
                                     'tz_id' => undef,
                                     'class' => 'PUBLIC',
                                     'dav_etag' => '62970b1ff2c0f9883589a980442db556',
                                     'ical_uid' => 'plastic-xxxxxxxxxxxxxxxxxxx',
                                     'original_cal_id' => '/Heiko/dplzv/',
                                     'owner' => 1025,
                                     'location' => "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
                                     'evt_id' => 1599,
                                     'evt_notify_setting' => [
                                                               {
                                                                 'recurrence-id' => '',
                                                                 'time_format' => 'DURATION',
                                                                 'time_value' => '-PT300M',
                                                                 'alarm_action' => 'DISPLAY',
                                                                 'alarm_ical' => 'BEGIN:VALARM
TRIGGER:-PT300M
ACTION:DISPLAY
DESCRIPTION:Erinnerung: Gelbe Tonne
END:VALARM
'
                                                               }
                                                             ],
                                     'summary' => 'Gelbe Tonne',
                                     'percent_complete' => undef,
                                     'gps' => undef,
                                     'transp' => 'TRANSPARENT',
                                     'from_syno_app_url' => undef,
                                     'description' => 'Entsorgung: Gelbe Tonne',
                                     'priority' => 1,
                                     'evt_repeat_setting' => {
                                                               'repeat_rule' => undef
                                                             },
                                     'dtend' => '20200214T000000'
                                   }

Ich werde mal schauen ob ich an geeigneter Stelle eine Korrektur bei ganztägigen Events vornehmen kann.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 09 Februar 2020, 11:24:05
Habe Endedatum / Endezeit bei ganztägigen Events in der Readingdarstellung korrigiert. Entsprechend stellt sich nun die tabellarische Übersicht noch aufgeräumter dar.

Bitte mal testen, liegt wieder im contrib upgedated vor.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: ComputerZOO am 09 Februar 2020, 12:49:05
Moin,
mal doof in die Runde gefragt, ich habe das selbe Problem das Wzut (hatte), also eine veraltete libjson-perl-Version (2.97001-1). Bei mir crasht FHEM nun mit der (letzten) Meldung (vor dem Neustart) :
Undefined subroutine &JSON::boolean called at ./FHEM/57_SSCal.pm line 3245.
Und nach einem Neustart steht folgendes im Log:
PERL WARNING: Subroutine SSCal_jboolmap redefined at ./FHEM/57_SSCal.pm line 3241, <$fh> line 20850.
Wie komme ich an eine aktuelle(re) Version? sudo apt-get install libjson-perl sagt mir, das es sich bereits um die aktuellste Version handelt.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 09 Februar 2020, 16:17:07
Da du jetzt nach Wzut schon der zweite User mit dem Problem bist, habe ich das Modul jetzt so umgestaltet dass auch ältere JSON module passend sind (sollte zumindest klappen).
@ComputerZOO, ziehe bitte nochmal aus dem contrib und teste ob es damit erledigt ist.

Ganz allgemein halte ich die Perl Module aus dem CPAN schon seit einiger Zeit mit Hilfe von Loredos Installer-Modul aktuell.
Das Modul ist gemeinhin vllt. noch nicht so bekannt:

 define fhemInstaller Installer

Installiert ein Device. Ich _glaube_ einmal pro Nacht prüft das Modul auf Aktualisierungen der Perl-Module und zeigt eine Info wenn Updates da sind. Ein "set ... updatePerl" updated die Perl-Module. Man kann auch neue Perl-Pakete installieren oder mit checkPrereqs auf fehlende prüfen.
Gibt ja wie immer verschiedene Wege, aber so mache ich es ... bis jetzt völlig stressfrei.

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 09 Februar 2020, 17:12:48
Ist jetzt OT : aber das mit dem Installer mag ok sein wenn wir von CPAN Paketen reden für die es mit apt-get keine Installations Lösung gibt.
Aber so werden an apt vorbei Pakete aktualsiert und für den "unbedarften" User muss dass nicht immer stressfrei und logisch sein.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 09 Februar 2020, 17:54:32
Das mit dem Installer sollte man mit Sicherheit im richtigen Forum: Unterstützende Dienste  nochmal vertiefen.

Jedenfalls sollte jetzt auch ein älteres JSON ausreichen.  ;)
@Wzut , hast du die neueste Version mal angeschaut ?
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 09 Februar 2020, 18:28:03
habe ich ...  ich trau mich fast es nicht zu sagen .... -> ja , aber
Wenn ich die Termine jetzt so zusammen mit anderen in einer Tabelle sehe ist die Endzeit wie im Webinterface 23:59:59, aber irgendwie wird er jetzt seiner Sonderrolle als Ganztags Termin nicht gerecht. Vllt doch das Enddatum als nächsten Tag anzeigen aber dafür komplett auf 00:00:00 und 23:59:59 verzichten ?
So nach dem Motto , Termine ganz ohne Uhrzeiten sind Tagestermine ?   

Achso Thema Sekunden , wofür ? Lassen sich doch bei der Eingabe gar nicht festlegen ?
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 09 Februar 2020, 19:11:50
Ein "ja, aber ... " wird es immer geben .... wir suchen nur den bestmöglichen Kompromiss  :)

Die Sekunden kann ich in der Anzeige noch wegschneiden. Sie wird halt von der API geliefert und geht in diverse Berechnungen mit ein. Aber in der Anzeige werfe ich sie noch raus, spart auch Platz.

Zitat
Vllt doch das Enddatum als nächsten Tag anzeigen aber dafür komplett auf 00:00:00 und 23:59:59 verzichten ?

Die Uhrzeiten wegzulassen würde ich befürworten. Aber das Anfangsdatum / Endedatum würde ich doch auf demselben Tag lassen. Das würde für mich als User sofort einen Ganztagstermin verdeutlichen. Ansonsten würde ich erstmal grübeln warum das Endedatum keine Uhrzeit hat und einen Fehler vermuten.

Ich probiers mal ...
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 09 Februar 2020, 19:16:25
wir suchen nur den bestmöglichen Kompromiss  :)
ganz starke Seite von mir : faule Kompromisse machen und Ideen haben die andere abarbeiten müssen ....
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 09 Februar 2020, 19:56:12
So, habe es umgesetzt. Schau(t) mal bitte ...
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: ComputerZOO am 09 Februar 2020, 20:42:38
Da du jetzt nach Wzut schon der zweite User mit dem Problem bist, habe ich das Modul jetzt so umgestaltet dass auch ältere JSON module passend sind (sollte zumindest klappen.

Funktioniert jetzt. Thx.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 11 Februar 2020, 18:34:40
Hallo miteinander,

ich habe inzwischen reichlich Möglichkeiten zur Gestaltung der tabellarischen Terminübersicht in das Modul eingebaut.
Die Möglichkeiten, die sich nunmehr bieten, habe ich im Wiki ergänzt->

https://wiki.fhem.de/wiki/SSCal_-_Integration_des_Synology_Calendar_Servers#Darstellung_der_.C3.9Cbersichtstabelle_in_Raum-_und_Detailsicht_beeinflussen

Das Update liegt wieder in meinem contrib zum Download bereit.
Bitte FHEM nach dem Download des Moduls restarten.

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 12 Februar 2020, 00:12:43
Nun sind noch der Wochentag des Startdatums als Reading verfügbar und ein paar mehr Felder für die Übersichtstabelle auswählbar.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 12 Februar 2020, 17:50:29
Ich habe die Tabellendarstellung noch um eine zuschaltbare Spalte "Symbol" erweitert. Damit kann man eine ganze Terminzeile grafisch kennzeichnen. Je nach Kalendermodel (Diary oder Task) wird ein anderes Standardicon angezeigt. Man kann das natürlich wieder seinen Wünschen entsprechend anpassen.

Wiki -> https://wiki.fhem.de/wiki/SSCal_-_Integration_des_Synology_Calendar_Servers#Gestaltung_der_Spalte_.22Symbol.22

Eine allgemeine Frage in die Runde ...

Bei der Beschäftigung mit dem Kalender ist mir eine Schwäche aufgefallen, die jetzt nicht SSCal-typisch ist, sondern sich vermutlich auch bei 57_Calendar findet.

Es geht dabei um die Events die ein Kalender erzeugt um darauf reagieren zu können. Einen Kalender updated man ja üblicherweise nicht so oft, also vielleicht nur stündlich oder jeden halben Tag usw.
Bei jedem Update werden selbstverständlich die Events generiert, d.h. z.B. ob ein Eintrag den Status upcoming, ended, started oder alarmed hat. Darauf kann man reagieren und andere Devices schalten. Aber in der Zeit zwischen den Updates können ja die Statuszustände wechseln ohne das ein Event generiert wird und somit z.B. die minutengenaue Steuerung von Devices über einen Kalender nicht funktioniert.

Vielleicht bin ich ja mittlerweile etwas betriebsblind geworden, aber wenn ich recht habe, würde ich SSCal eine Funktion spendieren die alle X Minuten (einstellbar) die Zeiten / Alarmzeiten der Kalendereinträge checkt und den Statuswechsel durch Readingaktualisierungen und Events signalisiert.

Dadurch könnte man recht leicht kalendergestützte Steuerungen aufbauen.

Habe ich bei dieser Betrachtung etwas übersehen oder ist es tatsächlich eine Lücke die es zu schließen gilt ?

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 12 Februar 2020, 19:11:14
Thema Events : finde ich gut ( geht ja in die Richtung die ich im Hinterkopf hatte mit Thermostate steuern)
Was mir nur unklar ist , wann genau willst du den Event erzeugen ? Direkt schon beim einlesen oder erst dann wenn dir Anfangsuhrzeit erreicht ist ? 
Die Anfangsuhrzeit hätte schon Charme weil man quasi Module wie weekdaytimer komplett damit ersetzen könnte, frei nach dem Motto ich trag einen beliebigen FHEM Befehl in den Kalender ein und wenn es soweit ist wird er blind ausgeführt , Syntaxprüfung und Fehlermeldung macht das Ziel Device

Ich bin eben mal durchs Wki gegangen, das wird langsam mit den Möglichkeiten der Darstellung echt komplex ....
und gleich mal ausprobiert (copy & paste) und FHEM abgeschossen :)
editier im Wiki dein Beispiel für columnSymbolIcon bei den Wochentagen und setze wie das Beispiel darüber den Block in geschweifte Klammern.
sonst gibt es Mecker im Log
Can't use string (""columnSymbolIcon" => [
        "...) as a HASH ref while "strict refs" in use at ./FHEM/57_SSCal.pm line 3262.

und was muß ich im Kalender eintragen um die Wochentage zu bekommen ? Die Spalte ist bei mir leer
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 12 Februar 2020, 19:26:49
Hi Wzut,

bin grad unterwegs und melde mich später nochmal.

Aber du musst das aktuelle Modul nochmal aus dem contrib ziehen und restarten.
Ich habe alle Beispiele aus dem Wiki bei mir durchgetestet.  :)

Wenn es dann immer noch Probleme geben sollte ... gucken wir später ...

LG
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 12 Februar 2020, 19:39:46
nein das Modul ist das Neuste , der Fehler ist im Wiki nur in dem einen Bespiel fehlen die {}
Wochentage habe ich jetzt auch , musste den Kalender neu abholen.
Und eins ist mir aufgefallen : Die Header Zeile für die Uhrzeit -> ----
a. brauchst du da keine language Unterscheidung da du immer die vier - ausgibst.
b. wäre schön wenn die auf '' gesetzt werden würden wenn die aktuelle Ausgabe nur Tagestermine enthält  und die beiden Spalten eh leer sind
(habs bei mir mal rausgworfen , sieht der Abfallkalender nun richtig schön aus)
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 12 Februar 2020, 20:05:24
ok, Uhrzeit lässt sich leicht entfernen wenn ich smalscreen definiere.
Aber ich hätte noch etwas : geh mal dein $out durch nach dem letzten möglichen header Feld <td>ID</td>
müsste noch ein
$out .='</tr>'da du später in der Schelife (odd/even) ja wieder neu mit <tr> beginnst ( die meisten Browser verzeihen aber diesen HTML Fehler )
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 12 Februar 2020, 22:39:21
Hi Wzut,

so ... das Wiki-Beispiel habe ich korrigiert.  :o
Aber weil solche Fehlkonfigurationen immer vorkommen können, habe ich das Modul gleich noch "gehärtet" und in attrFn die Prüfung verschärft.

Das "$out .='</tr>'" ist auch ergänzt. 

Zitat
a. brauchst du da keine language Unterscheidung da du immer die vier - ausgibst.
Ja, habe ich extra so gelassen falls ich doch mal an dieser Stelle etwas anderes einfüge.

Danke dir für deine checks  :)

Thema Events ...

Zitat
Was mir nur unklar ist , wann genau willst du den Event erzeugen ? Direkt schon beim einlesen oder erst dann wenn dir Anfangsuhrzeit erreicht ist ?
Idee ist folgende. Jeder Termineintrag hat ja das Reading "x_17_Status". Dieses Reading wird initial beim Einlesen des Kalenders abhängig  von seinen Daten bezüglich Begin/Endzeit und auch eventuell vorhandenen Erinnerungsterminen (x_x_x_notifyDateTime) auf einen Status upcoming, ended, started oder alarmed gesetzt. Dabei wird auch ein Event generiert.

Im Hintergrund läuft ein internal Timer der z.B. alle 60 Sekunden die Readings x_05_Begin, x_10_End und evtl. vorhandene x_80_x_notifyDateTime mit der aktuellen Zeit vergleicht. Sollte sich entsprechend der Bedingungen der Status ändern, wird das Reading "x_17_Status" entsprechend angepasst und auch ein Event mit dem neuen Status erzeugt.
Den Aufbau des Events müsste ich mir noch genau überlegen, sodass man aus dem Event neben dem Status gleich den Inhalt (Summary) erkennt.

Zum Beispiel:

2020-02-12 22:30:21.305 SSCal 02_17_StatusLong: alarmed||AZ Licht on
2020-02-12 22:30:21.305 SSCal 02_17_StatusLong: started||AZ Licht on
2020-02-12 22:30:21.305 SSCal 02_17_StatusLong: ended||AZ Licht on


Alarmed heißt das bald etwas losgehen soll. Der "started" Event bedeutet das AZ Licht einschalten. Dementsprechend wäre bei "ended" der mit "AZ Licht on" gestartete Vorgang beendet. Wenn man diese Prüfung im SSCal jede Minute laufen lässt, ließe sich damit eine minutengenaue Steuerung realisieren.

So die Theorie  ;)

Edit: Geht etwas einfacher. Man erstellt sich zwei Termine, einen mit "on", den zweiten mit "off". Der interne Timer würde dann die Events beim Statuswechsel erzeugen:

2020-02-12 22:30:00 SSCal 02_17_StatusLong: alarmed||AZ Licht on    -> keine Reaktion, ggf. "Vorbereitungen"
2020-02-12 22:30:00 SSCal 02_17_StatusLong: started||AZ Licht on      -> darauf reagiert man und schaltet das D on
2020-02-12 23:30:00 SSCal 02_17_StatusLong: ended||AZ Licht on        -> keine Reaktion
2020-02-12 23:30:00 SSCal 02_17_StatusLong: started||AZ Licht off      -> darauf reagiert man und schaltet das D off
2020-02-12 23:40:00 SSCal 02_17_StatusLong: ended||AZ Licht off       -> keine Reaktion


Grüße,
Heiko


Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 13 Februar 2020, 09:38:06
ok, Thema Events :
Ich denke wenn ich das schreiben müsste würde ich nicht auf einen extra Internal Timer setzen.
Bsp : Das beliebte command.ref "set lamp on" , man erstellt einen Kalendereintrag mit folgender Zeile
{ set lamp on }erstes Zeichen { letzte Zeichen } bedeutet FHEM Befehl, nun würde ich beim Update wenn ich diese Bedienung finde ein temp at erstellen (room = hidden) mit der Anfangszeit und dem Befehl ohne die Klammern. Weiter tun must du dann gar nichts mehr , das at übernimmt ja den kompletten Rest.

Attribut tableSpecs
Ist nun sehr mächtig geworden und gut das du nun zusätzliche Prüfung eingebaut hast damit der User bei Fehleingaben nicht sein FHEM in den Keller zieht.
Aber : für dich elegant mit nur einem Attribut so viel erschlagen zu können, aber hoffentlich sind gerade mit der Syntax nicht die User überfordert 

HTML :
zum einen hätte ich einen Wunsch, entweder als Attribut oder als Schlüsselwort für tableSpecs  -> noHeader um die Header Zeile ganz zu unterdrücken.
Dann habe ich mal die HTML Ausgabe via Weblink vom Device abgekoppelt ( siehe Screenshot )
Ohne die äussere Device Table nimmt sich table gleich den ganzen Bildschirm statt sich mit dem Platz zufrieden zu geben der nötig ist.
Das war beim SMA Portal auch mal so , ich muß mal schauen mit welcher table class sich das unter Kontrolle halten lässt.
Desweiteren zeigt der Screenshot auch schön was passiert wenn im Header ein anderes align benutzt wird als in der TD darunter -> Status nach rechts verschoben in Bezug zum Datum 
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 13 Februar 2020, 09:58:10
Zitat
Bsp : Das beliebte command.ref "set lamp on" , man erstellt einen Kalendereintrag mit folgender Zeile
Code: [Auswählen]

{ set lamp on }

erstes Zeichen { letzte Zeichen } bedeutet FHEM Befehl, nun würde ich beim Update wenn ich diese Bedienung finde ein temp at erstellen (room = hidden) mit der Anfangszeit und dem Befehl ohne die Klammern. Weiter tun must du dann gar nichts mehr , das at übernimmt ja den kompletten Rest.
Ja stimmt, dann reicht ja eigentlich der eine Event beim Einlesen. Es bliebe nur noch die Sache mit den Event-Notifies. Damit meine ich die Terminerinnerungen die man im Kalender setzen kann. Also dass man sich 1 Tag + 2 Stunde + 1 Stunde + 5 Minuten vorher benachrichtigen lassen kann.  Vielleicht wäre dafür eine solche Routine hilfreich, mal überlegen ...

Zitat
aber hoffentlich sind gerade mit der Syntax nicht die User überfordert 
Ja, mal schauen was die User sagen. Aber ich hatte vermutet da diese Notation in readingsGroup schon sehr verbreitet/etabliert ist kommen die User gut mit zurecht.  :)

Zitat
zum einen hätte ich einen Wunsch, entweder als Attribut oder als Schlüsselwort für tableSpecs  -> noHeader um die Header Zeile ganz zu unterdrücken.
Sehe ich mit vor.

Zitat
Das war beim SMA Portal auch mal so , ich muß mal schauen mit welcher table class sich das unter Kontrolle halten lässt.
schau mal bitte gleich mit wie die Farbe im Header durch das Style gesteuert werden muss. Zur Zeit sind die Überschriften im default-Style schwarz, müssten m.M. nach aber im default-Style (fett) grün sein. Kann mich aber auch täuschen.

Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 13 Februar 2020, 10:06:42
Ich habe übrigens auch mal ein weblink angelegt mit

defmod SynCal.Abfall.WBL weblink htmlCode { SSCal_calAsHtml ("SynCal.Abfall",".*") }
attr SynCal.Abfall.WBL room Dienste->Kalender

... also ohne Gruppenzuordnung. Im default-Style sieht es noral aus, nur im dark-Style wird die Breite so ausgenutzt wie es bei dir zu sehen ist.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 13 Februar 2020, 13:03:38
Habe noch Einstellmöglichkeiten für noHeader und Align vorgenommen.

  "cellStyle"             => {
                               "noHeader"    => "1",                # 0 (default)  oder 1
                               "headerAlign" => "center",
                               "columnAlign" => "left",
                             },

siehe -> https://wiki.fhem.de/wiki/SSCal_-_Integration_des_Synology_Calendar_Servers#Allgemeine_Gestaltung_des_Tabellenheaders_und_der_Spalten
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 13 Februar 2020, 16:18:27
... also ohne Gruppenzuordnung. Im default-Style sieht es noral aus, nur im dark-Style wird die Breite so ausgenutzt wie es bei dir zu sehen ist.

Wirf mal einen Blick ins SMAPortal , ich hatte genau für den Fall sogar einen Kommentar hinterlassen :
Zitat
# Tabellen Ausgabe erzeugen
# Wenn Table class=block alleine steht, zieht es bei manchen Styles die Ausgabe auf 100% Seitenbreite
# lässt sich durch einbetten in eine zusätzliche Table roomoverview eindämmen



$out  .= "<table class='roomoverview'><tr><td style='text-align: center; padding-left:1px; padding-right:1px; margin:0px'><table class='block'>";
$out .= "</table></td></tr></table>";
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 13 Februar 2020, 18:49:26
Hi Wzut,

die Änderung ist jetzt auch drin. Danke dir ...

Sag mal ... kennst du eine Routine, die eine HTML-Augabe in ein Bild überführt ? Also ähnlich dem svg2png im SVG.
War der Meinung es hier schonmal gelesen zu haben.

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 13 Februar 2020, 19:05:01
ähh jetzt hast du mich auf dem linken Fuß erwischt, meine auch mal was hier im Forum gelesen zuhaben in irgend einem Zusammenhang mit RSS , als es noch kein TabletUI und Brüder gab ? oder ich verwechsele es jetzt auch mit svg2png
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 13 Februar 2020, 19:32:42
<OT>
Hier hab ich was gefunden:

https://forum.fhem.de/index.php/topic,53500.msg455075.html#msg455075

bzw.

https://www.perlmonks.org/?node_id=172531

</OT>
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 14 Februar 2020, 14:33:52
Um die Verwendung des Kalenders für den Anwender bezüglich der Ableitung von FHEM Aktivitäten aus Kalendereinträgen zu erleichtern, erstellt die Version 1.11.0 (contrib) nun zusätzlich sogenannte composite-Events, z.B.:

2020-02-14 13:19:11.742 SSCal SynCal2 composite: 1983 2020-02-14T13:15:00 started {set lampe on}         
2020-02-14 13:19:11.811 SSCal SynCal2 composite: 1984 2020-02-14T15:15:00 alarmed {set lampe off}         
2020-02-14 13:35:31.082 SSCal SynCal2 composite: 1985 2020-02-14T18:00:00 upcoming {{ <Perl-Routine> }}   

Daraus kann man nun sehr einfach mit notifies o.ä. Werkzeugen ein at-Device erstellen/modifizieren um in FHEM Schaltvorgänge auszulösen.

Das Verfahren und ein konkretes Beispiel habe ich im Wiki beschrieben:
https://wiki.fhem.de/wiki/SSCal_-_Integration_des_Synology_Calendar_Servers#Reagieren_auf_Events_und_eine_FHEM-Aktivit.C3.A4t_erstellen

Ein großer Vorteil der beschriebenen Arbeitsweise ist, dass man einen Kalendereintrag auch nachträglich ändern kann und sich diese Änderung direkt auf das bereits erstellte at-Device auswirkt.

Prinzipiell könnte ich sogar die gesamte Funktionalität direkt im SSCal-Device abbilden und dem Nutzer den Umweg über das notify abnehmen. Das hätte sogar noch den Charme das ich ein bereits erstelltes at-Device wieder löschen könnte wenn man den Kalendereintrag entfernt. Momentan muss der Nutzer selbst dafür Sorge tragen.

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 14 Februar 2020, 19:11:12
Das musste ich natürlich gleich mal ausprobieren, Serientermin erstellt jeden Tag gleiche Uhrzeit fünfmal wiederholend.
Das at ist da nur steht die Ausführungszeit auf dem letzten der fünf Termine, was auch logisch ist da sie alle die gleiche Event ID habe, d.h. beim einlesen sind die fünf Events vermutlich gerade mal so durchgerauscht. Das notify im Wiki ist ok für Einzeltermine. Was kann man tun um Serientermine genauso elegant zu behandeln ?
D.h. das at zeigt auf die nächste Zeit und schaltet erst weiter wenn es ausgeführt wurde, klingt schon fast so als wäre es ein Fall eventuell für DOIF ?   
Oder doch im Noitify auf die EventID keine Rücksicht nehmen und halt fünf ats anlegen lassen ?
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 14 Februar 2020, 19:50:30
Bis zu Serinterminen war ich noch nicht gekommen.  :)

Ich würde den composit-Event noch um die Eigenschaft aus dem Reading x_x_isRepeatEvt erweitern. Dann kann man darauf reagieren und bei Einzelterminen so arbeiten wie gezeigt und bei Serienterminen jeweils ein separates at anlegen lassen. Evtl. noch eine Extension im Namen damit man das sofort unterscheiden kann.
Ich erweitere das nachher mal ....
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 14 Februar 2020, 22:19:23
Habe den Event noch erweitert mit isRepeat. Diese Events sehen nun so aus:

2020-02-14 13:19:11.742 SSCal SynCal2 composite: 1983 0 2020-02-14T13:15:00 started {set lampe on} 
2020-02-14 13:19:11.811 SSCal SynCal2 composite: 1984 0 2020-02-14T15:15:00 alarmed {set lampe off}   
2020-02-14 13:35:31.082 SSCal SynCal2 composite: 1985 1 2020-02-14T18:00:00 upcoming {{ <Perl-Routine> }}   

Das Notify habe ich jetzt so getestet:

SynCal.*:.*composite.*
{
  my ($PART0, $PART1)               = split(": ", $EVENT,2);;
  my ($id,$repeat,$isot,$tate,$cmd) = split(" ",  $PART1,5);;
  if ($tate =~ /upcoming|alarmed/ && $cmd =~ /^\s*\{(.*)\}\s*$/) {
    $cmd    = $1;
    if(!$repeat) {
        Log3($NAME, 3, "$NAME - Command received. Create/modify \"SSCal.$id\" - Timestamp: $isot, Command: $cmd");;
        fhem("defmod SSCal.$id at $isot $cmd");;
    } else {
        my $ao = $isot;
        $ao    =~ s/[-:]//g;
        Log3($NAME, 3, "$NAME - Command received. Create/modify \"SSCal.$id.$ao\" - Timestamp: $isot, Command: $cmd");;
        fhem("defmod SSCal.$id.$ao at $isot $cmd");;    
    }
  }
}

Damit lassen sich die at-Devices ebenfalls für Repeat-Events automatisch erstellen. Nur kann man diese erzeugten Devices nicht automatisch aktualisieren wenn man im Kalender Datum/Uhrzeit dieser Termine ändert. Das kriege ich vermutlich nur hin wenn ich das Management im Modul selbst vornehme.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 14 Februar 2020, 23:25:23
Ich denke, ich spendiere dem Modul noch ein Attribut womit der User ein autocreate von at-Devices bei der Erkennung von Terminen, die einen FHEM oder Perl-Befehl enthalten, einschalten kann.
In diesem Fall könnte man ebenfalls Serientermine automatisch anpassen bzw. löschen und erneut erstellen. Der User könnte sich mit dieser Funktionalität das eigene Management über notify o.ä. sparen.

Es wird aber eine zuschaltbare Funktion sein. Der User soll mit Hilfe composite Events die Möglichkeit haben. eigene Logiken aufzubauen.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 15 Februar 2020, 08:06:13
Moin,
das klingt alles gut. Ja dem User diese Freiheit zu lassen finde ich sehr wichtig.
Stichwort User : Schade ist an der ganzen Sache jetzt nur noch das man eine Synologie haben muß, d.h. wer andere Kalender nutzt dem entgeht echt etwas ..... 
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 15 Februar 2020, 08:18:26
Moin Wzut,

 :)

ja leider geht das nur mit der Synology API. Bei mir habe ich bereits alles was ich bisher mit Kalender gemacht habe, auf das Modul umgestellt.
Das WE ist erstmal Ruhe von meiner Seite, fahre eine Runde in den Spreewald.

Danach gehts wieder weiter. Vielleicht gibt es übers WE noch ein paar Erleuchtungen und Testergebnisse anderer User.
Danke dir und bis später ...

LG,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 15 Februar 2020, 09:10:46
Dann mal schönes WE. Mir ist beim neu anordnen der Kalender gerade etwas aufgefallen,
das Thema der zusätlichen roomoverview Table um table  block :
Steht die HTML Ausgabe im Device nimmt sich die Tabelle nicht den Platz den sie sollte, d.h. das zusätzliche roomoverview verhindert das.
Es müsste unterschieden werden ob die Anzeige direkt im Device erfolgt (keine umgebende Table) oder ob es sich um einen Weblink handelt (mit zusätzlicher Table )
Beim SMAPortal hatten wir das Problem in der Form nicht da die Ausgabe immer via weblink lief.   
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 15 Februar 2020, 20:02:58
habe gerade meinSSCal deaktiviert weil es das Log zumüllt :
2020.02.15 19:56:18 1: PERL WARNING: Character in 'C' format wrapped in pack at ./FHEM/57_SSCal.pm line 2786.
2020.02.15 19:56:18 1: stacktrace:
2020.02.15 19:56:18 1:     main::__ANON__                      called by ./FHEM/57_SSCal.pm (2786)
2020.02.15 19:56:18 1:     main::SSCal_sortVersion             called by ./FHEM/57_SSCal.pm (416)
2020.02.15 19:56:18 1:     main::SSCal_Set                     called by fhem.pl (3757)
2020.02.15 19:56:18 1:     main::CallFn                        called by fhem.pl (1886)
2020.02.15 19:56:18 1:     main::DoSet                         called by fhem.pl (1928)
2020.02.15 19:56:18 1:     main::CommandSet                    called by fhem.pl (2739)
2020.02.15 19:56:18 1:     main::getAllSets                    called by ./FHEM/01_FHEMWEB.pm (3179)
2020.02.15 19:56:18 1:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (3077)
2020.02.15 19:56:18 1:     main::FW_Notify                     called by fhem.pl (3757)
2020.02.15 19:56:18 1:     main::CallFn                        called by fhem.pl (3677)
2020.02.15 19:56:18 1:     main::DoTrigger                     called by fhem.pl (3136)
2020.02.15 19:56:18 1:     main::CommandTrigger                called by ./FHEM/57_SSCal.pm (2199)
2020.02.15 19:56:18 1:     main::SSCal_doCompositeEvents       called by ./FHEM/57_SSCal.pm (2152)
2020.02.15 19:56:18 1:     main::SSCal_createReadings          called by ./FHEM/57_SSCal.pm (2009)
2020.02.15 19:56:18 1:     main::SSCal_extractEventlist        called by ./FHEM/57_SSCal.pm (1444)
2020.02.15 19:56:18 1:     main::SSCal_calop_parse             called by FHEM/HttpUtils.pm (634)
2020.02.15 19:56:18 1:     main::__ANON__                      called by fhem.pl (751)
2020.02.15 19:56:18 1: PERL WARNING: Character in 'C' format wrapped in pack at ./FHEM/57_SSCal.pm line 2790.
2020.02.15 19:56:18 1: stacktrace:
2020.02.15 19:56:18 1:     main::__ANON__                      called by ./FHEM/57_SSCal.pm (2790)
2020.02.15 19:56:18 1:     main::SSCal_sortVersion             called by ./FHEM/57_SSCal.pm (416)
2020.02.15 19:56:18 1:     main::SSCal_Set                     called by fhem.pl (3757)
2020.02.15 19:56:18 1:     main::CallFn                        called by fhem.pl (1886)
2020.02.15 19:56:18 1:     main::DoSet                         called by fhem.pl (1928)
2020.02.15 19:56:18 1:     main::CommandSet                    called by fhem.pl (2739)
2020.02.15 19:56:18 1:     main::getAllSets                    called by ./FHEM/01_FHEMWEB.pm (3179)
2020.02.15 19:56:18 1:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (3077)
2020.02.15 19:56:18 1:     main::FW_Notify                     called by fhem.pl (3757)
2020.02.15 19:56:18 1:     main::CallFn                        called by fhem.pl (3677)
2020.02.15 19:56:18 1:     main::DoTrigger                     called by fhem.pl (3136)
2020.02.15 19:56:18 1:     main::CommandTrigger                called by ./FHEM/57_SSCal.pm (2199)
2020.02.15 19:56:18 1:     main::SSCal_doCompositeEvents       called by ./FHEM/57_SSCal.pm (2152)
2020.02.15 19:56:18 1:     main::SSCal_createReadings          called by ./FHEM/57_SSCal.pm (2009)
2020.02.15 19:56:18 1:     main::SSCal_extractEventlist        called by ./FHEM/57_SSCal.pm (1444)
2020.02.15 19:56:18 1:     main::SSCal_calop_parse             called by FHEM/HttpUtils.pm (634)
2020.02.15 19:56:18 1:     main::__ANON__                      called by fhem.pl (751)
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 16 Februar 2020, 07:53:16
Moin Wzut,
Wie hast du das denn geschafft ?  ;)

Habe mal remote geschaut. Meine Installationen laufen alle sauber nach wie vor.
Heute Abend bin ich wieder daheim und dann kann ich genauer schauen eas das sein könnte.

Grüsse,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 16 Februar 2020, 09:17:03
gute Frage .... ich hatte zwei Kalender am Start , den default My Calendar und Abfall
Abfall macht keine Probleme , Logeinträge nur beim aktualisieren von My Calendar. Da das der für die Events Tests ist habe ich nach und nach alle Termine gelöscht bis er leer war, ohne Erfolg. Die Einträge bleiben sind abergefühlt weniger geworden bei Abruf. Ich habe jetzt einen leeren Kalender erstellt und diesen angebunden :
Und wieder die Einträge im Log beim Abruf -> d.h. der obige Block vier mal.
verbose 5 Log des Abrufs
2020.02.16 09:15:34 5: Scal - Calendar selection for add queue: Eddy
2020.02.16 09:15:34 5: Scal - Add sendItem to queue - Idx: 376, Opmode: eventlist, API: CALEVENT, Method: list, Params: &cal_id_list=["/admin/qomuqv/"]&start=1581807600&end=1583103600&list_repeat=true
2020.02.16 09:15:34 4: Scal - ####################################################
2020.02.16 09:15:34 4: Scal - ###      start Synology Calendar operation         
2020.02.16 09:15:34 4: Scal - ####################################################
2020.02.16 09:15:34 4: Scal - Time selection start: 2020-02-16 00:00:00
2020.02.16 09:15:34 4: Scal - Time selection end: 2020-03-02 00:00:00
2020.02.16 09:15:34 4: Scal - API hash values already set - ignore get apisites
2020.02.16 09:15:34 4: Scal - start SendQueue entry index "376" (eventlist) for operation.
2020.02.16 09:15:34 5: Scal - HTTP-Call will be done with timeout: 20 s
2020.02.16 09:15:34 4: Scal - Call-Out: http://192.168.0.2:5000/webapi/entry.cgi?api=SYNO.Cal.Event&version=3&method=list&cal_id_list=["/admin/qomuqv/"]&start=1581807600&end=1583103600&list_repeat=true&_sid=<secret>
2020.02.16 09:15:34 1: PERL WARNING: Character in 'C' format wrapped in pack at ./FHEM/57_SSCal.pm line 2786.
2020.02.16 09:15:34 1: stacktrace:
2020.02.16 09:15:34 1:     main::__ANON__                      called by ./FHEM/57_SSCal.pm (2786)
2020.02.16 09:15:34 1:     main::SSCal_sortVersion             called by ./FHEM/57_SSCal.pm (416)
2020.02.16 09:15:34 1:     main::SSCal_Set                     called by fhem.pl (3757)
2020.02.16 09:15:34 1:     main::CallFn                        called by fhem.pl (1886)
2020.02.16 09:15:34 1:     main::DoSet                         called by fhem.pl (1928)
2020.02.16 09:15:34 1:     main::CommandSet                    called by fhem.pl (2739)
2020.02.16 09:15:34 1:     main::getAllSets                    called by ./FHEM/01_FHEMWEB.pm (3179)
2020.02.16 09:15:34 1:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (1802)
2020.02.16 09:15:34 1:     main::FW_makeDeviceLine             called by ./FHEM/01_FHEMWEB.pm (1482)
2020.02.16 09:15:34 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1133)
2020.02.16 09:15:34 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (582)
2020.02.16 09:15:34 1:     main::FW_Read                       called by fhem.pl (3757)
2020.02.16 09:15:34 1:     main::CallFn                        called by fhem.pl (754)
2020.02.16 09:15:34 1: PERL WARNING: Character in 'C' format wrapped in pack at ./FHEM/57_SSCal.pm line 2790.
2020.02.16 09:15:34 1: stacktrace:
2020.02.16 09:15:34 1:     main::__ANON__                      called by ./FHEM/57_SSCal.pm (2790)
2020.02.16 09:15:34 1:     main::SSCal_sortVersion             called by ./FHEM/57_SSCal.pm (416)
2020.02.16 09:15:34 1:     main::SSCal_Set                     called by fhem.pl (3757)
2020.02.16 09:15:34 1:     main::CallFn                        called by fhem.pl (1886)
2020.02.16 09:15:34 1:     main::DoSet                         called by fhem.pl (1928)
2020.02.16 09:15:34 1:     main::CommandSet                    called by fhem.pl (2739)
2020.02.16 09:15:34 1:     main::getAllSets                    called by ./FHEM/01_FHEMWEB.pm (3179)
2020.02.16 09:15:34 1:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (1802)
2020.02.16 09:15:34 1:     main::FW_makeDeviceLine             called by ./FHEM/01_FHEMWEB.pm (1482)
2020.02.16 09:15:34 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1133)
2020.02.16 09:15:34 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (582)
2020.02.16 09:15:34 1:     main::FW_Read                       called by fhem.pl (3757)
2020.02.16 09:15:34 1:     main::CallFn                        called by fhem.pl (754)
2020.02.16 09:15:34 1: PERL WARNING: Character in 'C' format wrapped in pack at ./FHEM/57_SSCal.pm line 2786.
2020.02.16 09:15:34 1: stacktrace:
2020.02.16 09:15:34 1:     main::__ANON__                      called by ./FHEM/57_SSCal.pm (2786)
2020.02.16 09:15:34 1:     main::SSCal_sortVersion             called by ./FHEM/57_SSCal.pm (416)
2020.02.16 09:15:34 1:     main::SSCal_Set                     called by fhem.pl (3757)
2020.02.16 09:15:34 1:     main::CallFn                        called by fhem.pl (1886)
2020.02.16 09:15:34 1:     main::DoSet                         called by fhem.pl (1928)
2020.02.16 09:15:34 1:     main::CommandSet                    called by fhem.pl (2739)
2020.02.16 09:15:34 1:     main::getAllSets                    called by ./FHEM/01_FHEMWEB.pm (1495)
2020.02.16 09:15:34 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1133)
2020.02.16 09:15:34 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (582)
2020.02.16 09:15:34 1:     main::FW_Read                       called by fhem.pl (3757)
2020.02.16 09:15:34 1:     main::CallFn                        called by fhem.pl (754)
2020.02.16 09:15:34 1: PERL WARNING: Character in 'C' format wrapped in pack at ./FHEM/57_SSCal.pm line 2790.
2020.02.16 09:15:34 1: stacktrace:
2020.02.16 09:15:34 1:     main::__ANON__                      called by ./FHEM/57_SSCal.pm (2790)
2020.02.16 09:15:34 1:     main::SSCal_sortVersion             called by ./FHEM/57_SSCal.pm (416)
2020.02.16 09:15:34 1:     main::SSCal_Set                     called by fhem.pl (3757)
2020.02.16 09:15:34 1:     main::CallFn                        called by fhem.pl (1886)
2020.02.16 09:15:34 1:     main::DoSet                         called by fhem.pl (1928)
2020.02.16 09:15:34 1:     main::CommandSet                    called by fhem.pl (2739)
2020.02.16 09:15:34 1:     main::getAllSets                    called by ./FHEM/01_FHEMWEB.pm (1495)
2020.02.16 09:15:34 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1133)
2020.02.16 09:15:34 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (582)
2020.02.16 09:15:34 1:     main::FW_Read                       called by fhem.pl (3757)
2020.02.16 09:15:34 1:     main::CallFn                        called by fhem.pl (754)
2020.02.16 09:15:34 1: PERL WARNING: Character in 'C' format wrapped in pack at ./FHEM/57_SSCal.pm line 2786.
2020.02.16 09:15:34 1: stacktrace:
2020.02.16 09:15:34 1:     main::__ANON__                      called by ./FHEM/57_SSCal.pm (2786)
2020.02.16 09:15:34 1:     main::SSCal_sortVersion             called by ./FHEM/57_SSCal.pm (416)
2020.02.16 09:15:34 1:     main::SSCal_Set                     called by fhem.pl (3757)
2020.02.16 09:15:34 1:     main::CallFn                        called by fhem.pl (1886)
2020.02.16 09:15:34 1:     main::DoSet                         called by fhem.pl (1928)
2020.02.16 09:15:34 1:     main::CommandSet                    called by fhem.pl (2739)
2020.02.16 09:15:34 1:     main::getAllSets                    called by ./FHEM/98_JsonList2.pm (102)
2020.02.16 09:15:34 1:     main::CommandJsonList2              called by fhem.pl (1242)
2020.02.16 09:15:34 1:     main::AnalyzeCommand                called by fhem.pl (1095)
2020.02.16 09:15:34 1:     main::AnalyzeCommandChain           called by ./FHEM/01_FHEMWEB.pm (2687)
2020.02.16 09:15:34 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (913)
2020.02.16 09:15:34 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (582)
2020.02.16 09:15:34 1:     main::FW_Read                       called by fhem.pl (3757)
2020.02.16 09:15:34 1:     main::CallFn                        called by fhem.pl (754)
2020.02.16 09:15:34 1: PERL WARNING: Character in 'C' format wrapped in pack at ./FHEM/57_SSCal.pm line 2790.
2020.02.16 09:15:34 1: stacktrace:
2020.02.16 09:15:34 1:     main::__ANON__                      called by ./FHEM/57_SSCal.pm (2790)
2020.02.16 09:15:34 1:     main::SSCal_sortVersion             called by ./FHEM/57_SSCal.pm (416)
2020.02.16 09:15:34 1:     main::SSCal_Set                     called by fhem.pl (3757)
2020.02.16 09:15:34 1:     main::CallFn                        called by fhem.pl (1886)
2020.02.16 09:15:34 1:     main::DoSet                         called by fhem.pl (1928)
2020.02.16 09:15:34 1:     main::CommandSet                    called by fhem.pl (2739)
2020.02.16 09:15:34 1:     main::getAllSets                    called by ./FHEM/98_JsonList2.pm (102)
2020.02.16 09:15:34 1:     main::CommandJsonList2              called by fhem.pl (1242)
2020.02.16 09:15:34 1:     main::AnalyzeCommand                called by fhem.pl (1095)
2020.02.16 09:15:34 1:     main::AnalyzeCommandChain           called by ./FHEM/01_FHEMWEB.pm (2687)
2020.02.16 09:15:34 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (913)
2020.02.16 09:15:34 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (582)
2020.02.16 09:15:34 1:     main::FW_Read                       called by fhem.pl (3757)
2020.02.16 09:15:34 1:     main::CallFn                        called by fhem.pl (754)
2020.02.16 09:15:34 1: PERL WARNING: Character in 'C' format wrapped in pack at ./FHEM/57_SSCal.pm line 2786.
2020.02.16 09:15:34 1: stacktrace:
2020.02.16 09:15:34 1:     main::__ANON__                      called by ./FHEM/57_SSCal.pm (2786)
2020.02.16 09:15:34 1:     main::SSCal_sortVersion             called by ./FHEM/57_SSCal.pm (416)
2020.02.16 09:15:34 1:     main::SSCal_Set                     called by fhem.pl (3757)
2020.02.16 09:15:34 1:     main::CallFn                        called by fhem.pl (1886)
2020.02.16 09:15:34 1:     main::DoSet                         called by fhem.pl (1928)
2020.02.16 09:15:34 1:     main::CommandSet                    called by fhem.pl (2739)
2020.02.16 09:15:34 1:     main::getAllSets                    called by ./FHEM/01_FHEMWEB.pm (3179)
2020.02.16 09:15:34 1:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (2987)
2020.02.16 09:15:34 1:     main::FW_roomStatesForInform        called by ./FHEM/01_FHEMWEB.pm (669)
2020.02.16 09:15:34 1:     main::FW_initInform                 called by ./FHEM/01_FHEMWEB.pm (901)
2020.02.16 09:15:34 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (582)
2020.02.16 09:15:34 1:     main::FW_Read                       called by fhem.pl (3757)
2020.02.16 09:15:34 1:     main::CallFn                        called by fhem.pl (754)
2020.02.16 09:15:34 1: PERL WARNING: Character in 'C' format wrapped in pack at ./FHEM/57_SSCal.pm line 2790.
2020.02.16 09:15:34 1: stacktrace:
2020.02.16 09:15:34 1:     main::__ANON__                      called by ./FHEM/57_SSCal.pm (2790)
2020.02.16 09:15:34 1:     main::SSCal_sortVersion             called by ./FHEM/57_SSCal.pm (416)
2020.02.16 09:15:34 1:     main::SSCal_Set                     called by fhem.pl (3757)
2020.02.16 09:15:34 1:     main::CallFn                        called by fhem.pl (1886)
2020.02.16 09:15:34 1:     main::DoSet                         called by fhem.pl (1928)
2020.02.16 09:15:34 1:     main::CommandSet                    called by fhem.pl (2739)
2020.02.16 09:15:34 1:     main::getAllSets                    called by ./FHEM/01_FHEMWEB.pm (3179)
2020.02.16 09:15:34 1:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (2987)
2020.02.16 09:15:34 1:     main::FW_roomStatesForInform        called by ./FHEM/01_FHEMWEB.pm (669)
2020.02.16 09:15:34 1:     main::FW_initInform                 called by ./FHEM/01_FHEMWEB.pm (901)
2020.02.16 09:15:34 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (582)
2020.02.16 09:15:34 1:     main::FW_Read                       called by fhem.pl (3757)
2020.02.16 09:15:34 1:     main::CallFn                        called by fhem.pl (754)
2020.02.16 09:15:34 5: Scal - JSON returned: $VAR1 = {
          'data' => {},
          'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        };

2020.02.16 09:15:34 4: Scal - Event parse mode: synchronous
2020.02.16 09:15:34 4: Scal - Opmode "eventlist" finished successfully, Sendqueue index "376" deleted.
2020.02.16 09:15:34 4: Scal - ####################################################
2020.02.16 09:15:34 4: Scal - ###      start Synology Calendar operation         
2020.02.16 09:15:34 4: Scal - ####################################################
2020.02.16 09:15:34 4: Scal - Sendqueue is empty. Nothing to do ...
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 16 Februar 2020, 18:28:36
Bin noch unterwegs ... aber hab eine idee.
Steht bei dir etwas in listSendQueue ?
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 16 Februar 2020, 18:49:09
Zitat
SendQueue is empty.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 16 Februar 2020, 18:57:16
Hmm, blöd
 Passt nicht zu meiner theorie.  Hab gefunden

Character in 'C' format wrapped in pack

    (W pack) You said

        pack("C", $x)

    where $x is either less than 0 or more than 255; the "C" format is only for encoding native operating system characters (ASCII, EBCDIC, and so on) and not for Unicode characters, so Perl behaved as if you meant

        pack("C", $x & 255)

    If you actually want to pack Unicode codepoints, use the "U" format instead.


In der besagtrn Zeile des moduls kannst du mal das C gegen U tauschen. Hätte jetzt gedacht i der Queue wären statt schlüsselnummern irgendwelche non ascii zeichen enthalten.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 16 Februar 2020, 22:55:59
Ich gehe davon aus, dass ich das Problem gefixt habe. Es konnte m.M. nach nur vorkommen wenn keinerlei Terminreadings erstellt wurden.

Außerdem kann man jetzt mit dem Attribut createATDevs automatisch temporäre At-Devices erstellen lassen wenn Kommandos in Summary erkannt werden. Die erstellten at werden nicht in der cfg-Datei gespeichert und demzufolge gibt es auch kein rotes Fragezeichen als Kennzeichen einer Strukturänderung.

Das Wiki muss ich aber noch anpassen ....

Version 1.12.0 im contrib.

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 17 Februar 2020, 09:57:20
also die Fehler sind weg, verstehen tue ich es aber nicht denn der My Calendar hatte ja Termine (also nicht leer) als es los ging.
Anyway, was gut ist kommt wieder ... (hoffentlich nicht)

Ich habe das mit dem createATDevs  probiert - klappt.
Allerdings bin ich mir z.Z. noch unsicher ob ich es in der Form nutzen werde oder doch lieber auf ein eigens Notify setze.
Grund : ich tue mich mit den ats und -temporary immer etwas schwer weil ich die Dinger nicht direkt greifen kann da sie ein gesetztes attr room ignorieren und das ist für mich wichtig. Ein ganz normales einmaliges at erzeugt auch kein rotes Fragezeichen lässt sich aber mit room an einen Raum binden.
( Ich habe mal zum Spaß deinen Code geändert so das im Kalender Eintrag Location ausgewertet und der Raum mit gesetzt wird.
leer = unsorted , ansonst der Raum Name in FHEM )
Man muß hier dem Anwender aber klar machen was er da tut, denn man sollte nicht auf die Idee kommen tägliche Serientermine für das ganze Jahr zu setzen und sich dann wundern das man 365 neue ats hat :) 

Achso vllt. noch eine Frage der Optik/Übersicht :
Z.z. muss der FHEM Befehl im Titel stehen, ich fände es übersichtlicher wenn es die Beschreibung wäre. Zumal man ja ganze Code Blöcke setzen kann und der Syno Kalender Editor da auch gleich ein viel größeres Eingabefeld bietet als der Einzeiler bei Titel.
 
 
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 17 Februar 2020, 10:12:04
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
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 17 Februar 2020, 11:56:02
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
Zitat
Warum 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
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 17 Februar 2020, 20:09:34
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.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 17 Februar 2020, 20:12:44
Wikl liest sich gut ! , Test morgen
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 18 Februar 2020, 07:20:40
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.   
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 18 Februar 2020, 08:50:21
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 ...
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 18 Februar 2020, 09:20:06
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.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 18 Februar 2020, 10:00:07
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.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 18 Februar 2020, 10:11:14
Zitat
Also 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.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 18 Februar 2020, 10:17:57
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.  ;)
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 19 Februar 2020, 21:29:15
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
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 22 Februar 2020, 12:54:35
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 ...
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 23 Februar 2020, 09:39:48
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
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 24 Februar 2020, 19:16:58
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
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 24 Februar 2020, 19:37:45
*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.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 24 Februar 2020, 19:46:18
Oh, danke ... :)

Zitat
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 ?
Primitiv anlegen sollte nun reichen. Du musst nichts neu anlegen, nein.

Zitat
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.
Ich hoffe die Mundpropaganda funktioniert ...  :D , sonst mache das gerne ...

Irgenwann muss ich die Commandref aufbauen und einchecken. Das macht wieder ganz viel "Spass"  ;)

Zitat
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
Ich habe noch eingebaut, dass die erstellten at als probabaly associated with angezeigt werden.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 25 Februar 2020, 23:55:43
@Wzut, bist du denn schon mit den Anforderungen an eine Datenschnittstelle für deine MAX-Module weitergekommen ?
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 26 Februar 2020, 06:59:26
Eine extra Schnittstelle ist nicht mehr nötig. Ich dachte damals an Schlüsselwörter aber du mit deiner {} Umsetzung bist da einen Schritt weiter gegangen.
D.h. der User muß jetzt keine neue MAX Kalender Syntax lernen/beachten sondern trägt das was er kennt in geschweifte Klammern halt direkt ein.
Bsp mal die Soll Temperatur in einem Raum anheben. Einen kompletten Heizplan wird sich niemand in den Kalender schreiben, das macht weekprofile viel besser. Das umschalten zwischen den verschiedenen Plänen kann er dann ja wieder mittels Kalendereintrag machen. 
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 26 Februar 2020, 08:01:42
Moin,

alles klar. Dann erstelle ich jetzt langsam die englische ComRef damit das Modul den Weg ins Repo finden kann.

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: romakrau am 26 Februar 2020, 13:49:49
Hallo zusammen,

ich habe auf meinem NAS DS212+ drei Kalender die ich gerne in FHEM berücksichtigen würde. Allerdings konnte ich keine Calendar APp von Synology installieren. Gibt's wohl nicht für mein Modell. SSCal habe ich in der Version 1.15.0 laufen. Die Fehlermeldung lautet:

  READINGS:
     2020-02-26 13:43:07   Error           malformed JSON string received from Synology Calendar Server
     2020-02-26 13:43:07   Errorcode       900
     2020-02-26 13:43:07   QueueLength     3
     2020-02-26 10:26:56   modeAlarm       
     2020-02-26 10:26:56   modeAlarmOrStart
     2020-02-26 10:26:56   modeAlarmed     
     2020-02-26 10:26:56   modeChanged     
     2020-02-26 10:26:56   modeEnd         
     2020-02-26 10:26:56   modeEnded       
     2020-02-26 10:26:56   modeStart       
     2020-02-26 10:26:56   modeStarted     
     2020-02-26 10:26:56   modeUpcoming   
     2020-02-26 13:42:59   nextUpdate      Manual
     2020-02-26 11:28:17   nextWakeup      2020-02-26 12:28:17
     2020-02-26 13:43:07   state           Error

Das Logfile gibt folgendes aus:

2020.02.26 13:43:07 3: FHEMWEB WEB CSRF error: csrf_187673566890253 ne csrf_284899267770936 for client WEB_192.168.187.5_52097 / command shutdown restart. For details see the csrfToken FHEMWEB attribute.
2020.02.26 13:43:07 2: Kalender - ERROR - "listcal" SendQueue index "1" not executed. It seems to be a permanent error. Exclude it from new send attempt !
2020.02.26 13:43:07 2: Kalender - ERROR - "listcal" SendQueue index "2" not executed. It seems to be a permanent error. Exclude it from new send attempt !
2020.02.26 13:43:07 1: PERL WARNING: Use of uninitialized value $idx in hash element at ./FHEM/57_SSCal.pm line 941.
2020.02.26 13:43:07 1: PERL WARNING: Use of uninitialized value $idx in hash element at ./FHEM/57_SSCal.pm line 942.
2020.02.26 13:43:07 1: PERL WARNING: Use of uninitialized value $idx in hash element at ./FHEM/57_SSCal.pm line 950.
2020.02.26 13:43:07 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/57_SSCal.pm line 952.
2020.02.26 13:43:07 1: PERL WARNING: Use of uninitialized value $idx in concatenation (.) or string at ./FHEM/57_SSCal.pm line 952.
2020.02.26 13:43:07 2: Kalender - ERROR - "" SendQueue index "" not executed. It seems to be a permanent error. Exclude it from new send attempt !
2020.02.26 13:43:07 1: PERL WARNING: Argument "" isn't numeric in sort at ./FHEM/57_SSCal.pm line 1020.

Vielleicht kann mir jemand helfen.

Gruß Roman
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 26 Februar 2020, 13:55:12
Wenn es das Paket für deine Syno nicht gibt sieht es vermutlich nicht so gut aus.  :'(
Möglicherweise ist in dem Fall die API nicht vorhanden. Die Fehlermeldung oben riecht danach.
Sehr schade ....

Sicherheitshalber mach Mal ein Set ... listSendqueue und Zeig uns was da erscheint.

Edit: die gezeigten Readings kann ich nicht richtig deuten. Die gehören nicht alle zu SSCal per default.

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: romakrau am 26 Februar 2020, 14:09:58
Das wäre aber schade. Ewig dieser Zwang zum Neukauf  >:(

Hier nun der Output of listSendqueue:

 => retryCount=>1, forbidSend=>malformed JSON string received from Synology Calendar Server
1 => retryCount=>1, params=>&is_todo=true&is_evt=true, opmode=>listcal, method=>list, forbidSend=>malformed JSON string received from Synology Calendar Server, api=>CALCAL
2 => retryCount=>1, params=>&is_todo=true&is_evt=true, opmode=>listcal, method=>list, forbidSend=>malformed JSON string received from Synology Calendar Server, api=>CALCAL
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 26 Februar 2020, 14:14:34
Hmm, hatte ich vermutet. Wenn du verbose 5 einschaltest und calUpdate ausführst, wirst du vermutlich als Antwort von der Syno bekommen dass die angeforderte Seite nicht existiert 404 mit einem ellenlangen Text (sinngemäß).

Manchmal kann man Pakete von Hand installieren wenn es die per Download für die CPU Architektur gibt. Kann ich aber erst heute Abend schauen, weiß den Link nicht aus dem Kopf.

Edit: diese Fehlereinträge kannst du mit purgeSendqueue entfernen.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: romakrau am 26 Februar 2020, 14:34:00
Hi ,
ich habe Hoffnung, siehe log. Muss vieleicht noch en User in die Gruppe Admin packen:
2020.02.26 14:28:11 4: https://192.168.187.200:5006/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.API.Auth,SYNO.Cal.Cal,SYNO.Cal.Event,SYNO.Cal.Sharing,SYNO.Cal.Todo,SYNO.API.Info: HTTP response code 401
2020.02.26 14:28:11 5: HttpUtils https://192.168.187.200:5006/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.API.Auth,SYNO.Cal.Cal,SYNO.Cal.Event,SYNO.Cal.Sharing,SYNO.Cal.Todo,SYNO.API.Info: Got data, length: 401
2020.02.26 14:28:11 5: HttpUtils response header:
HTTP/1.1 401 Authorization Required
Date: Wed, 26 Feb 2020 13:28:11 GMT
Server: Apache
WWW-Authenticate: Basic realm="SYNO_WebDAV Storage"
Content-Length: 401
Connection: close
Content-Type: text/html; charset=iso-8859-1
2020.02.26 14:28:11 5: Starting notify loop for Kalender, 1 event(s), first is Error
2020.02.26 14:28:11 5: End notify loop for Kalender
2020.02.26 14:28:11 4: Kalender - Data returned: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Authorization Required</title>
</head><body>
<h1>Authorization Required</h1>
<p>This server could not verify that you
are authorized to access the document
requested.  Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
</body></html>
Gruß
Roman
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 26 Februar 2020, 14:37:55
Admingroup muss sein, ist auch Voraussetzung mit der API. 
Bin Mal gespannt  :)
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 26 Februar 2020, 14:43:01
Aber das sieht nach WebDAV aus. Passt auch zum 5006 Port. Und die Abfrage der APIs funktioniert normalerweise vor dem Login. Der kommt später.
Wenn es mit der API klappen sollte, dann mit Port 5000 bzw. 5001 für HTTPS.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: romakrau am 26 Februar 2020, 16:58:21
Hallo Heiko,

habe din Port auf 5001 geändert und bekomme folgenden Output:

2020.02.26 16:55:35 3: Kalender - no session ID found - get new one
2020.02.26 16:55:35 3: Kalender - no session ID found - get new one
2020.02.26 16:55:36 2: Kalender - ERROR - "listcal" SendQueue index "1" not executed. It seems to be a permanent error. Exclude it from new send attempt !
2020.02.26 16:55:36 2: Kalender - ERROR - "listcal" SendQueue index "2" not executed. It seems to be a permanent error. Exclude it from new send attempt !
2020.02.26 16:55:36 2: Kalender - ERROR - "" SendQueue index "" not executed. It seems to be a permanent error. Exclude it from new send attempt !

Allerdings läuft die Datenübernahme bis zu einem bestimmten Punkt und bricht dann ab:

Readings
Error

malformed JSON string received from Synology Calendar Server

2020-02-26 16:55:36
Errorcode

900

2020-02-26 16:55:36
QueueLength

3

2020-02-26 16:55:36
lastUpdate

2020-02-26 16:42:05

2020-02-26 16:42:06
modeAlarm


2020-02-26 15:36:10
modeAlarmOrStart


2020-02-26 15:36:10
modeAlarmed


2020-02-26 15:36:10
modeChanged


2020-02-26 15:36:10
modeEnd


2020-02-26 15:36:10
modeEnded


2020-02-26 15:36:10
modeStart


2020-02-26 15:36:10
modeStarted


2020-02-26 15:36:10
modeUpcoming

158270647599muellmaxde;158270647584muellmaxde;1582706475108muellmaxde;158270647543muellmaxde;158270647566muellmaxde;1582706475101muellmaxde;158270647553muellmaxde;15827064756muellmaxde;158270647592muellmaxde;158270647533muellmaxde;1582706475111muellmaxde;158270647523muellmaxde;158270647561muellmaxde;158270647573muellmaxde;158270647597muellmaxde;158270647588muellmaxde;158270647513muellmaxde;158270647585muellmaxde;158270647560muellmaxde;15827064758muellmaxde;158270647522muellmaxde;158270647519muellmaxde;158270647572muellmaxde;158270647537muellmaxde;1582706475105muellmaxde;158270647579muellmaxde;158270647586muellmaxde;158270647512muellmaxde;1582706475103muellmaxde;158270647557muellmaxde;158270647529muellmaxde;158270647564muellmaxde;158270647547muellmaxde;1582706475102muellmaxde;158270647539muellmaxde;158270647517muellmaxde;158270647580muellmaxde;158270647542muellmaxde;158270647568muellmaxde;158270647565muellmaxde;1582706475106muellmaxde;158270647552muellmaxde;158270647581muellmaxde;158270647527muellmaxde;158270647549muellmaxde;158270647559muellmaxde;1582706475112muellmaxde;158270647593muellmaxde;158270647532muellmaxde;158270647577muellmaxde;158270647534muellmaxde;158270647590muellmaxde;158270647578muellmaxde;158270647575muellmaxde;158270647525muellmaxde;158270647528muellmaxde;158270647544muellmaxde;158270647567muellmaxde;158270647591muellmaxde;1582706475104muellmaxde;158270647554muellmaxde;158270647583muellmaxde;158270647515muellmaxde;158270647518muellmaxde;158270647555muellmaxde;158270647558muellmaxde;158270647562muellmaxde;15827064759muellmaxde;158270647548muellmaxde;158270647545muellmaxde;1582706475109muellmaxde;158270647514muellmaxde;158270647574muellmaxde;158270647535muellmaxde;158270647596muellmaxde;158270647538muellmaxde;158270647524muellmaxde;158270647569muellmaxde;158270647556muellmaxde;158270647571muellmaxde;158270647563muellmaxde;158270647546muellmaxde;15827064753muellmaxde;1582706475110muellmaxde;158270647510muellmaxde;158270647587muellmaxde;158270647521muellmaxde;1582706475100muellmaxde;158270647570muellmaxde;15827064755muellmaxde;15827064754muellmaxde;158270647536muellmaxde;158270647598muellmaxde;158270647595muellmaxde;158270647520muellmaxde;158270647511muellmaxde;158270647530muellmaxde;158270647594muellmaxde;158270647551muellmaxde;158270647541muellmaxde;158270647589muellmaxde;158270647576muellmaxde;158270647526muellmaxde;15827064751muellmaxde;158270647540muellmaxde;158270647550muellmaxde;15827064757muellmaxde;158270647531muellmaxde;15827064752muellmaxde;158270647582muellmaxde;158270647516muellmaxde;1582706475107muellmaxde

2020-02-26 16:42:06
nextUpdate

Manual

2020-02-26 16:55:30
nextWakeup

2020-02-26 17:42:05

2020-02-26 16:42:06
state

Error

2020-02-26 16:55:36

Gruß Roman
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: romakrau am 26 Februar 2020, 17:02:02
Vielleicht hilft das weiter:
https://192.168.187.200:5000/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.API.Auth,SYNO.Cal.Cal,SYNO.Cal.Event,SYNO.Cal.Sharing,SYNO.Cal.Todo,SYNO.API.Info: Can't connect(2) to https://192.168.187.200:5000: SSL connect attempt failed error:1408F10B:SSL routines:ssl3_get_record:wrong version number
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: romakrau am 26 Februar 2020, 17:05:11
n. Versuch auf Port 5000:
Readings
Error

none

2020-02-26 17:03:01
Errorcode

none

2020-02-26 17:03:01
QueueLength

2

2020-02-26 17:03:05
lastUpdate

2020-02-26 16:42:05

2020-02-26 16:42:06
modeAlarm


2020-02-26 15:36:10
modeAlarmOrStart


2020-02-26 15:36:10
modeAlarmed


2020-02-26 15:36:10
modeChanged


2020-02-26 15:36:10
modeEnd


2020-02-26 15:36:10
modeEnded


2020-02-26 15:36:10
modeStart


2020-02-26 15:36:10
modeStarted


2020-02-26 15:36:10
modeUpcoming

158270647599muellmaxde;158270647584muellmaxde;1582706475108muellmaxde;158270647543muellmaxde;158270647566muellmaxde;1582706475101muellmaxde;158270647553muellmaxde;15827064756muellmaxde;158270647592muellmaxde;158270647533muellmaxde;1582706475111muellmaxde;158270647523muellmaxde;158270647561muellmaxde;158270647573muellmaxde;158270647597muellmaxde;158270647588muellmaxde;158270647513muellmaxde;158270647585muellmaxde;158270647560muellmaxde;15827064758muellmaxde;158270647522muellmaxde;158270647519muellmaxde;158270647572muellmaxde;158270647537muellmaxde;1582706475105muellmaxde;158270647579muellmaxde;158270647586muellmaxde;158270647512muellmaxde;1582706475103muellmaxde;158270647557muellmaxde;158270647529muellmaxde;158270647564muellmaxde;158270647547muellmaxde;1582706475102muellmaxde;158270647539muellmaxde;158270647517muellmaxde;158270647580muellmaxde;158270647542muellmaxde;158270647568muellmaxde;158270647565muellmaxde;1582706475106muellmaxde;158270647552muellmaxde;158270647581muellmaxde;158270647527muellmaxde;158270647549muellmaxde;158270647559muellmaxde;1582706475112muellmaxde;158270647593muellmaxde;158270647532muellmaxde;158270647577muellmaxde;158270647534muellmaxde;158270647590muellmaxde;158270647578muellmaxde;158270647575muellmaxde;158270647525muellmaxde;158270647528muellmaxde;158270647544muellmaxde;158270647567muellmaxde;158270647591muellmaxde;1582706475104muellmaxde;158270647554muellmaxde;158270647583muellmaxde;158270647515muellmaxde;158270647518muellmaxde;158270647555muellmaxde;158270647558muellmaxde;158270647562muellmaxde;15827064759muellmaxde;158270647548muellmaxde;158270647545muellmaxde;1582706475109muellmaxde;158270647514muellmaxde;158270647574muellmaxde;158270647535muellmaxde;158270647596muellmaxde;158270647538muellmaxde;158270647524muellmaxde;158270647569muellmaxde;158270647556muellmaxde;158270647571muellmaxde;158270647563muellmaxde;158270647546muellmaxde;15827064753muellmaxde;1582706475110muellmaxde;158270647510muellmaxde;158270647587muellmaxde;158270647521muellmaxde;1582706475100muellmaxde;158270647570muellmaxde;15827064755muellmaxde;15827064754muellmaxde;158270647536muellmaxde;158270647598muellmaxde;158270647595muellmaxde;158270647520muellmaxde;158270647511muellmaxde;158270647530muellmaxde;158270647594muellmaxde;158270647551muellmaxde;158270647541muellmaxde;158270647589muellmaxde;158270647576muellmaxde;158270647526muellmaxde;15827064751muellmaxde;158270647540muellmaxde;158270647550muellmaxde;15827064757muellmaxde;158270647531muellmaxde;15827064752muellmaxde;158270647582muellmaxde;158270647516muellmaxde;1582706475107muellmaxde

2020-02-26 16:42:06
nextUpdate

Manual

2020-02-26 17:03:01
nextWakeup

2020-02-26 17:42:05

2020-02-26 16:42:06
state

Error

2020-02-26 17:03:07

Jetzt lass ich es erstmal gut sein. SOnst wird der Thread zu lang.
Gruß
Roman
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 26 Februar 2020, 17:09:16
Du hast HTTPS angegeben und Port 5000. Das passt im Synology Standard nicht zusammen. 5000 ist http.

So nebenbei, du hast komische Readings die es teilweise per Standard im Modul garnicht gibt. Was hast du denn definiert ?

Ein list Kalender gibt Auskunft.

Aber ich bin generell skeptisch ob es ohne das Calendar Package überhaupt funktioniert ...
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 27 Februar 2020, 22:28:22
Hallo zusammen,

das Modul habe ich finalisiert, die Commandref erstellt und noch ein paar kleinere Fixes vorgenommen.
Ist im contrib.

Wenn ich/ihr kein Problem mehr feststellen sollte, checke ich das Modul zeitnah ins SVN ein.

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 28 Februar 2020, 16:16:11
Die initiale Version 2.0.0 ist nun eingecheckt und morgen früh im Regelupdate.
Falls man automatisch at-Devices erstellen lässt um Befehlsausführungen zu planen, wird der Inhalt von Summary aus dem Termin als alias im generierten at verwendet. Damit sieht man am Namen des at gleich wozu es erstellt wurde.

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: romakrau am 29 Februar 2020, 16:25:35
Der Zugriff auf die neue Version ist nicht möglich:

2020.02.29 16:19:37 UPD FHEM/57_SSCal.pm
2020.02.29 16:19:37 1 : open ./FHEM/57_SSCal.pm failed: Permission denied, trying to restore the previous version and aborting the update

Gruß
Roman
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 29 Februar 2020, 16:32:08
Hallo Roman,

lösche die alte Version einfach aus /opt/fhem/FHEM oder setze die Rechte auf die Datei als root (oder sudo):

chmod 775 57_SSCal.pm

Danach update .. fertig.

LG,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: romakrau am 01 März 2020, 09:55:21
Danke Heiko,
zu meinem Problem mit dem Kalender aus der WebDAV von meinem DS212+ habe ich herausgefunden das der Zugriff soweit funktioniert das zumindest die UID der ICS-Daten gelesen werden. Werden im Beitrag 118 als 123456nnnnmuellmaxde angezeigt.
Ist aber egal ich werde die Termine als ICS Datei exportieren.  Bei statischen Daten ist das ein gangbarer Weg. Eine neue DS218+ kommt mir erstmal nicht ins Haus.
Danke und Gruß Roman
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 05 März 2020, 22:12:59
Hallo zusammen,

mit dem aktuellen Update sind die Möglichkeiten für eigene Steuerungen über SSCal noch erweitert worden. Nun gibt es zum Beipiel die Möglichkeit, automatisiert Urlaube/Abwesenheiten in eine holiday  Steuerdatei updaten zu lassen und somit via  holiday2we bzw. $we die Haussteuerung zu beeinflussen.

Im Wiki:
https://wiki.fhem.de/wiki/SSCal_-_Integration_des_Synology_Calendar_Servers#Urlaub.2FAbwesenheiten_automatisiert_in_holiday_Device_Steuerdatei_.C3.BCbernehmen

habe ich beschrieben wie man das machen kann. Das Beispiel kann eine Grundlage für eigene Erweiterungen sein.

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Wzut am 06 März 2020, 07:27:52
alter Schwede, das Thema hat dich ja richtig gepackt ... und nun muß ich in meinem Alter schon wieder was dazulernen .... :) :) :)
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 06 März 2020, 09:20:47
Moin Wzut,

hatte grad so einen Flow  :D
Ja, in unserem Alter hat man es nicht leicht  ;) .... aber so bleiben wir (hoffentlich) noch eine Weile fit im Hirn  ;D  8)

LG,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: rohlande am 12 März 2020, 19:26:54
Hallo Heiko,

Gibts was neues von Syno bezüglich:

Error

2-step verification code required

Möchte ungern meine Sicherheitsstufe herabsetzten!

VG denny
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 12 März 2020, 19:39:52
Hallo Denny,

nein gibt noch nichts Neues. Aber ich habe eine Anfrage an Syno laufen. Mal sehen was die Devs antworten.
Das DSM 7 ist ja in der Ankündigung. Vielleicht tut sich in diesem Rahmen etwas.

LG,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Gidiano am 19 März 2020, 07:05:13
Hallihallo,

super Modul!
Leider werden meine credentials mit Fehler 407 nicht akzeptiert, ich tippe mal, dass es an der 2FA für die Gruppe admin liegt :-(
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 19 März 2020, 08:18:53
Moin,

ja, die API unterstützt momentan keine 2FA. Vorbereitet ist sie allerdings dafür wie ich der Doku gesehen habe.
Ich habe eine diesbzügliche Anfrage an Syno laufen was mit 2FA Unterstützung geplant ist. Abhängig davon werde ich auch nochmal nachhaken ob man die Notwendigkeit der admin-Mitgliedschaft des verwendeten Users nicht seitens Syno umbauen kann. Mir pesönlich ist dieser Zusammnhang nicht klar bzw. müsste m.M. nach nicht sein, ist aber momentan gegeben. Wenn ihr versucht ein nicht admin-Gruppenmitglied zu verwenden, klappt das nicht.

Tut mir leid nichts postiveres dazu mitteilen zu können, aber wir bleiben dran  :)

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: Gidiano am 19 März 2020, 08:35:10
Danke für Deine umfangreiche Info!
Wenn Syno da was täte, wäre das natürlich fein. Sie raten ja dringend selbst zur 2FA für die Admin Accounts.
Harren wir also der Dingen.
Danke für Deinen enormen Einsatz!

Viele Grüße
Christian
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: rohlande am 19 März 2020, 08:41:26
Danke für Deine umfangreiche Info!
Wenn Syno da was täte, wäre das natürlich fein. Sie raten ja dringend selbst zur 2FA für die Admin Accounts.
Harren wir also der Dingen.
Danke für Deinen enormen Einsatz!

Viele Grüße
Christian

Diesem Lob schließe ich mich 100% an!
Nur durch solche User hier ist es möglich solche Module zu erhalten und der Allgemeinheit zugäglich zu machen.
Besonders außergewöhnlich ist die WIKI Doku dazu.
Vielen Dank für Deinen Einsatz Heiko.
VG Denny
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 19 März 2020, 08:49:40
Vielen herzlichen Dank !  :D
Es freut mich wirklich sehr was ihr schreibt, zumal ich auch "nur" ein Hobbyprogrammierer bin und es mir auch nicht so as dem Ärmel rutscht.
Aber es macht Spaß wenn es anderen hilft die (Automatisierungs)Welt ein bisschen bunter, leichter und angenehmer zu machen.

Dank euch !

LG,
Heiko 
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 24 April 2020, 23:39:39
Hallo zusammen,

Synology hat eine neue Calendar Version 2.3.4-0631 herausgebracht.
Die Version ist NICHT mit dem Modul kompatibel.

Ich arbeite an der Anpassung.
Bis dahin bitte das Paket auf Synology nicht updaten.

Grüße,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 25 April 2020, 19:56:48
Hallo zusammen,

habe nun die mit Calendar Version 2.3.4-0631 kompatible Version in mein contrib geladen.
Ich werde die V noch einchecken, aber vorab könnt ihr zum Download in der FHEMWEB Kommandozeile inklusive der Ausführungszeichen angeben:

"wget -qO ./FHEM/57_SSCal.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/57_SSCal.pm"

Danach restarten.

LG,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: THZ_Haus am 26 April 2020, 16:53:25
Hallo,
bei regelmäßigen Terminen werden leider Falsche Start/End Daten angezeigt.
Im Reading: 70_repeatRule

FREQ=MONTHLY;WKST=TU
wird dieses als Serientermin erkannt, das Datum aber nicht angepasst.

Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 26 April 2020, 17:30:09
Hallo THZ_Haus,

könnte sein dass ich diesen Serientyp noch nicht implementiert habe.
Bei meinem Synology Kalender gibt es nur monatliche Wiederholungen mit Wiederholungen nach

"Tag des Monats"  (FREQ=MONTHLY;COUNT=10;BYMONTHDAY=26)

bzw. nach

"Tag der Woche" (FREQ=MONTHLY;COUNT=10;BYDAY=4SU)

Gibt es in deinem Syno Kalender noch weitere Möglichkeiten bzw. womit hast du diese Termine erstellt ?
Nur damit ich es nachvollziehen kann. Im (meinem) Syno Kalender kann keine Termine mit Wiederholungstyp WKST erstellen.
Wahrscheinlich muss ich es noch nachimplementieren.


LG,
Heiko

Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: THZ_Haus am 26 April 2020, 17:52:09
Hallo DS_Starter, habe den Termin mit "Calendar" von Synology erstellt.
Es wurde aber auch kein Enddatum angegeben.
Im Anhang habe ich meine Einstellungen angefügt.
MfG
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 26 April 2020, 18:17:14
Das ist drollig, habe es genauso nachgestellt (siehe Anhang) und bekomme trotzdem Recurring Termine des Typs:

 0_70_repeatRule  FREQ=MONTHLY;BYMONTHDAY=26

Klappt dann natürlich.
Muss ich irgendwie versuchen nachzuvollziehen.
Hilft mir jetzt zwar nicht, aber aus Interesse ... welche Synology / Calendar Version nutzt du ?
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: THZ_Haus am 26 April 2020, 18:46:58
Hallo,
Version: 2.3.4 - 0631
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 26 April 2020, 20:06:05
Also irgendwie komme ich mit deiner Angabe nicht klar.
Habe nochmal in der RFC nachgelesen, die Angabe WKST sagt lediglich wann die Woche beginnt, bei dir also WKST=TU = Dienstag. Dienstag ? Really ?

Die Wiederholungsangabe, also BYMONTHDAY oder BYDAY, fehlt bei dir.

Stelle in deinem SSCal bitte verbose 5 ein und mache ein calUpdate. Im Log siehst du dann was die Syno liefert:

Zitat
2020.04.26 20:02:34.128 4: SynCal3 - ####################################################
2020.04.26 20:02:34.128 4: SynCal3 - ###      start Synology Calendar operation         
2020.04.26 20:02:34.129 4: SynCal3 - ####################################################
2020.04.26 20:02:34.141 4: SynCal3 - Time selection start: 2020-04-23 00:00:00
2020.04.26 20:02:34.142 4: SynCal3 - Time selection end: 2020-10-24 00:00:00
2020.04.26 20:02:34.142 4: SynCal3 - API hash values already set - ignore get apisites
2020.04.26 20:02:34.143 4: SynCal3 - start SendQueue entry index "28" (eventlist) for operation.
2020.04.26 20:02:34.143 5: SynCal3 - HTTP-Call will be done with timeout: 20 s
2020.04.26 20:02:34.144 4: SynCal3 - Call-Out: https://192.168.2.10:5001/webapi/entry.cgi?api=SYNO.Cal.Event&version=3&method=list&cal_id_list=["/Heiko/igiwulwq/"]&start=1587592800&end=1603490400&list_repeat=true&_sid=aSFVS1y6VTPfk14A0MIN235902
2020.04.26 20:02:34.334 5: SynCal3 - JSON returned: {
  'data' => {
              '/Heiko/igiwulwq/' => [
                                      {
                                        'is_repeat_evt' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
                                        'dtend' => '20200427',
                                        'summary' => 'Test Monthly',
                                        'evt_id' => 2069,
                                        'is_all_day' => $VAR1->{'data'}{'/Heiko/igiwulwq/'}[0]{'is_repeat_evt'},
                                        'owner' => 1025,
                                        'gps' => undef,
                                        'from_syno_app_url' => undef,
                                        'logged_user' => 1025,
                                        'description' => '',
                                        'caldav_type' => 'VEVENT',
                                        'dtstart' => '20200426',
                                        'class' => 'PUBLIC',
                                        'evt_color' => '',
                                        'dav_etag' => 'bfwjfapttzwuvtraqzgpsmohghzeqcni',
                                        'location' => '',
                                        'evt_notify_setting' => [
                                                                  {
                                                                    'alarm_ical' => 'BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:This is an event reminder
TRIGGER;VALUE=DURATION:-PT3H
END:VALARM',
                                                                    'time_format' => 'DURATION',
                                                                    'recurrence-id' => '',
                                                                    'alarm_action' => 'DISPLAY',
                                                                    'time_value' => '-PT3H'
                                                                  }
                                                                ],
                                        'percent_complete' => undef,
                                        'modify_time' => '2020-04-26 18:01:46.719937+00',
                                        'priority_order' => 1032,
                                        'ical_uid' => '20200426T200131-ad288c94@172.17.0.1',
                                        'evt_repeat_setting' => {
                                                                  'repeat_rule' => 'FREQ=MONTHLY;BYMONTHDAY=26'
                                                                },
                                        'priority' => undef,
                                        'tz_id' => undef,
                                        'status' => undef,
                                        'owner_name' => 'Heiko',
                                        'evt_ical' => 'BEGIN:VCALENDAR
........

Wichtig ist der rote Teil, der die Wiederholung des Events liefert.
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: THZ_Haus am 26 April 2020, 20:20:08
Hallo,
'evt_repeat_setting' => {
                                                                       'repeat_rule' => 'FREQ=MONTHLY;WKST=TU'
                                                                     },
                                             'gps' => undef,
                                             'owner' => 1028
Wie
Zitat
Die Wiederholungsangabe, also BYMONTHDAY oder BYDAY, fehlt bei dir.
fehlen diese Daten.

Habe den Serientermin kpl. neu erstellt.
Jetzt klappts..
Evtl. wurde der Serientermin noch mit einer "älteren Kalender" version angelegt, und daher fehlten ihm jetzt die Wiederholungsangaben.
Danke trotzdem für die Mühen!


Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 26 April 2020, 21:14:24
Freut mich  :)
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 16 Mai 2020, 17:46:05
Hallo zusammen,

ich habe eine neue Version 2.4.0 ins contrib geladen.
Unter der Haube hat sich programmtechnisch so einiges geändert. Zum Beispiel ist das Modul auf Perl Packages umgestellt.
Für den User ändert sich nichts, außer eine Sache.

Falls ihr euch einen Weblink mit der Kalendergrafik angelegt haben solltet, also etwa so etwas:

     define SynCal.Abfall.WBL weblink htmlCode { SSCal_calAsHtml ("SynCal1","WEB.BLACK") }

Dann müsst ihr bitte nach download des neuen Moduls vor dem Restart diesen Weblink so abändern:

     define SynCal.Abfall.WBL weblink htmlCode { FHEM::SSCal::calAsHtml ("SynCal1","WEB.BLACK") }

Sonst wird dieser Weblink nach dem Restart nicht mehr funktionieren.
Für eigene Kreationen gilt das gleiche.

Ich warte mit dem Check-In noch etwas. Wer will kann in Ruhe testen und diese eventuelle Umstellung vornehmen.
Dann gibt es nach dem Rollout keinen Stress.

Download über die Kommandozeile:

"wget -qO ./FHEM/57_SSCal.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/57_SSCal.pm"
Und dann restart wie üblich.

LG,
Heiko
Titel: Antw:57_SSCal - Modul für den Synology Kalender
Beitrag von: DS_Starter am 24 Mai 2020, 09:00:50
Die neue Version ist eingecheckt und ab morgen früh im Update enthalten. Bitte obigen Hinweis beachten !