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
Hallo Heiko,
also ich hätte auf jeden Fall Interesse an dem Modul! :)
Gruß
Andreas
Hi,
Ja cool, weg vom Google Kalender
Viel Interesse 👍
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
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
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
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
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
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
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
Hallo Andreas,
die Sonderzeichen werden es sein.
Ich passe das Modul an und melde mich wieder.
Grüße,
Heiko
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
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
ZitatWenn 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
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
ZitatHowever, 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
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
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.
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
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
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
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
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
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
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
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
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
ZitatHeiko , 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 ?
Habe es mal so umgebaut, dass man ohne diese Funktion aus JSON auskommt.
Vllt. klappt es jetzt auch bei dir. ;)
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]
: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 ...
Habs zum Zebra gemacht. :)
Zitat 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 ...
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 ?
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
@Wzut, habe alle deine Vorschläge umgesetzt. Auch der language Support ist drin.
Schaut mal wie es euch gefällt ... :)
Grüße,
Heiko
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.
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
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 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" )
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 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
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.
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
Einfall ... ich könnte eine Eigenschaft "smallScreen" einführen die man in tablSpecs setzen kann. Wenn gesetzt werden (umbrechbare) Datumfelder erstellt .
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.
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
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.
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
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
}
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.
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.
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.
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.
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
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.
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 ?
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 ?
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 ...
Zitat von: DS_Starter am 09 Februar 2020, 19:11:50
wir suchen nur den bestmöglichen Kompromiss :)
ganz starke Seite von mir : faule Kompromisse machen und Ideen haben die andere abarbeiten müssen ....
So, habe es umgesetzt. Schau(t) mal bitte ...
Zitat 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.
Funktioniert jetzt. Thx.
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
Nun sind noch der Wochentag des Startdatums als Reading verfügbar und ein paar mehr Felder für die Übersichtstabelle auswählbar.
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
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
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
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)
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 )
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.
Zitata. 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 ...
ZitatWas 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
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
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 ...
Zitataber 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. :)
Zitatzum 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.
ZitatDas 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.
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.
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
Zitat von: DS_Starter am 13 Februar 2020, 10:06:42
... 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>";
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
ä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
<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>
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
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 ?
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 ....
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.
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.
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 .....
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
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.
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)
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
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 ...
Bin noch unterwegs ... aber hab eine idee.
Steht bei dir etwas in listSendQueue ?
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.
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
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.
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
ja normale einmalige at ist genau so gut, 2016 hat Rudi sich noch geweigert defmod dafür zu erweitern -> https://forum.fhem.de/index.php/topic,62188.msg536316.html#msg536316
ZitatWarum du "modify -temporary" brauchst, ist mir wiederum ein Raetsel: ein einmaliges at generiert kein rotes Fragezeichen
2018 hat er seine Meinung geändert und es getan -> https://forum.fhem.de/index.php/topic,85545.msg798340.html#msg798340
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.
Wikl liest sich gut ! , Test morgen
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.
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 ...
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.
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.
ZitatAlso müsste der Fall eigentlich in der rfc5545 stehen
Ja, sehe ich genauso. Nur will ich ja nicht erst einen Kalender per ical exportieren und wieder importieren, dafür gib es ja 57_Calendar.
Dieses Modul stützt sich ja auf die API von Synology und die Informationen die diese Schnittstelle bringt.
Vielleicht haben die noch einen Bug oder aber ich sehe die Info nicht. Schau mal mit verbose 5 die Infos aus der Schnittstelle an. Wenn dir dort etwas dienliches auffällt ist es was für uns. Sonst muss ich wiklich mal an Syno ran.
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. ;)
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
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 ...
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
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
*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.
Oh, danke ... :)
ZitatHab 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" ;)
ZitatMit 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.
@Wzut, bist du denn schon mit den Anforderungen an eine Datenschnittstelle für deine MAX-Module weitergekommen ?
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.
Moin,
alles klar. Dann erstelle ich jetzt langsam die englische ComRef damit das Modul den Weg ins Repo finden kann.
Grüße,
Heiko
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
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
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
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.
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
Admingroup muss sein, ist auch Voraussetzung mit der API.
Bin Mal gespannt :)
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.
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
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
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
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 ...
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
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
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
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
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
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
alter Schwede, das Thema hat dich ja richtig gepackt ... und nun muß ich in meinem Alter schon wieder was dazulernen .... :) :) :)
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
Hallo Heiko,
Gibts was neues von Syno bezüglich:
Error
2-step verification code required
Möchte ungern meine Sicherheitsstufe herabsetzten!
VG denny
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
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 :-(
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
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
Zitat 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
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
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
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
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
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.
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
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
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 ?
Hallo,
Version: 2.3.4 - 0631
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.
Hallo,
'evt_repeat_setting' => {
'repeat_rule' => 'FREQ=MONTHLY;WKST=TU'
},
'gps' => undef,
'owner' => 1028
Wie
ZitatDie 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!
Freut mich :)
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
Die neue Version ist eingecheckt und ab morgen früh im Update enthalten. Bitte obigen Hinweis beachten !
Erst einmal vielen herzlichen Dank für diese gelungene Integration des Synology Kalender in fhem, großes Lob!
Ich nutze die Funktion der Urlaub/Abwesenheiten automatisiert in holiday Device Steuerdatei übernimmt.
Ich würde gerne die Signalwörter anpassen, bin aber in Perl nicht so fit.
Im Moment steht noch der Standard drin:
my @SigList = qw/Urlaub Abwesend/;
Wie kann ich die SigList erweitern, so dass auch allen Einträge die mit "ferien" enden (Sommerferien, Herbstferien, usw.), erkannt werden?
Vielen Dank
Fredi
Hallo Fredi,
du ergänzt die Liste einfach mit weiteren Suchwörtern getrennt durch ein Leerzeichen.
Also z.B.
my @SigList = qw/Urlaub Abwesend ferien/;
Die Ausdrücke sollten aber schon recht eindeutig sein. In dem Beispiel würde zum Beispiel auch der Term "Autohaus Betriebsferien beachten" gematcht. Besser ist es dann vllt. alles explizit einzutragen, also:
my @SigList = qw/Urlaub Abwesend Sommerferien Winterferien/;
Grüße,
Heiko
Hallo,
im Log von FHEM stehen folgende Infos:
2.15 16:33:57 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in numeric le (<=) at ./FHEM/57_SSCal.pm line 1813.
2020.12.15 16:33:57 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in subtraction (-) at ./FHEM/57_SSCal.pm line 1814.
2020.12.15 16:33:57 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in addition (+) at ./FHEM/57_SSCal.pm line 1817.
2020.12.15 16:53:57 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in numeric le (<=) at ./FHEM/57_SSCal.pm line 1813.
2020.12.15 16:53:57 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in subtraction (-) at ./FHEM/57_SSCal.pm line 1814.
2020.12.15 16:53:57 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in addition (+) at ./FHEM/57_SSCal.pm line 1817.
Kann mir da aber keinen reim raus machen!?
Das scheint ein Fehler im Modul zu sein. Wahrscheinlich handelt es sich um einen sich monatlich an einem X.Wochentag zu wiederholenden Event zu sein ?
LG,
Heiko
Hallo,
ZitatWahrscheinlich handelt es sich um einen sich monatlich an einem X.Wochentag zu wiederholenden Event zu sein ?
Wo/Wie kann ich das nachgucken?
Schaust du dir ein List vom Device an. Das ist interessant:
2020-12-15 17:30:02 0_01_Summary Testeintrag monatlich
2020-12-15 17:30:02 0_05_Begin 2020-12-20 18:30:00
2020-12-15 17:30:02 0_10_End 2020-12-20 19:30:00
2020-12-15 17:30:02 0_15_Timezone Europe/Berlin
2020-12-15 17:30:02 0_17_Status upcoming
2020-12-15 17:30:02 0_20_daysLeft 5
2020-12-15 17:30:02 0_25_daysLeftLong in 5 Tagen
2020-12-15 17:30:02 0_30_Weekday Sontag
2020-12-15 17:30:02 0_50_isAllday 0
2020-12-15 17:30:02 0_55_isRepeatEvt 1
2020-12-15 17:30:02 0_70_repeatRule FREQ=MONTHLY;COUNT=6;BYDAY=3TU
2020-12-15 17:30:02 0_80_0_notifyDateTime 2020-12-19 18:30:00
2020-12-15 17:30:02 0_90_calName Testkalender
2020-12-15 17:30:02 0_98_EventId 2129
2020-12-15 17:30:02 0_99_---------------------- --------------------------------------------------------------------
Ist natürlich nicht einfach wenn du viele Events in deinem selektierten Datumbereich hast. Man kann es temporär etwas eingrenzen mit den attr cutLaterDays, cutOlderDays.
Sieht bei mir so aus:
Zitat1_17_Status
ended
2020-12-15 17:40:39
1_20_daysLeft
0
2020-12-15 17:40:39
1_25_daysLeftLong
in 0 Tagen
2020-12-15 17:40:39
1_30_Weekday
Dienstag
2020-12-15 17:40:39
1_50_isAllday
0
2020-12-15 17:40:39
1_55_isRepeatEvt
1
2020-12-15 17:40:39
1_70_repeatRule
FREQ=WEEKLY;WKST=MO;BYDAY=TU
Habe diesen Serien Termin kpl. gelöscht, jetzt mal abwarten ob die Meldungen wieder auftreten!
Danke für die schnelle Hilfe!
Meldest dich einfach nochmal wenn es wiederkommt.
Aber ich schau mir die Stelle im Modul auch mal an.
LG
Hallo Heiko,
mein Kalender "Mülltermine" wird nicht angezeigt. Kann es an den Umlauten liegen?
usedCalendars Ferien_Feiertage,OfficeCal,FamCal,M�lltermine
list
Internals:
CREDENTIALS Set
DEF 192.168.123.62
FUUID 5e730d89-f33f-95bd-5100-ba4d19e331cabb6b
FVERSION 57_SSCal.pm:v2.4.6-s23113/2020-11-08
MODE Automatic
MODEL Diary
NAME Terminkalender
NR 434
OPMODE
PROTOCOL http
RESEND next planned SendQueue start: immediately by next entry
SERVERADDR 192.168.123.62
SERVERPORT 5000
STATE done
TYPE SSCal
HELPER:
CALFETCHED 1
CREDENTIALS \[WzdY5qY3ZYW4:ilIkohsYxdvp@
LOGINRETRIES 0
PACKAGE FHEM::SSCal
SID Pilcx3Sqo0VVFepJCStO5VFbJKtRLy10hRsQ_rEtEKMbD5ksxaIJrq3OJx8R5q1wbmZ_DtKAXnGmLacEhZNpLY
VERSION 2.4.6
VERSION_API 1.2.0
VERSION_ErrCodes 1.3.4
VERSION_SMUtils 1.20.6
cutLaterDays 10
cutOlderDays 1
event-on-update-reading .*Summary,state
interval 3600
room Kalender
tableFields Symbol,Begin,End,DaysLeft,Weekday,Summary,Status,Location,Calendar
usedCalendars Ferien_Feiertage,OfficeCal,FamCal,M�lltermine
CALENDARS:
FamCal:
description
id /admin/rrgtncvv/
privilege RW
publicshareid rKVp7V42w
type Event
Ferien_Feiertage:
description
id /admin/lvwrtg/
privilege RW
publicshareid 9A26Ds439
type Event
Inbox:
description
id /admin/home_todo/
privilege RW
publicshareid
type ToDo
My Calendar:
description
id /admin/home/
privilege RW
publicshareid
type Event
M�lltermine:
M�lltermine:
description
id /admin/ntsrji/
privilege RW
publicshareid F7clFhcz9
type Event
OfficeCal:
description
id /admin/magsgfma/
privilege RW
publicshareid TqQ1FAPCa
type Event
tableSpecs:
smallScreenStyles darksmallscreen,smallscreen
cellStyle:
columnAlign left
columnDaysLeftAlign center
columnLocationAlign left
columnSummaryAlign left
columnSymbolAlign center
headerAlign center
noHeader 0
columnStateIcon:
HASH(0x71de278)
HASH(0x71de2d8)
HASH(0x71ddb88)
OLDREADINGS:
READINGS:
2020-12-15 19:02:46 00_01_Summary TXXX"
2020-12-15 19:02:46 00_03_Description https://join.signal-iduna.de/lXXX9
Tel:
0231135XXX7,,2905938#
2020-12-15 19:02:46 00_05_Begin 2020-12-14 09:00:00
2020-12-15 19:02:46 00_10_End 2020-12-14 10:00:00
2020-12-15 19:02:46 00_15_Timezone Europe/Berlin
2020-12-15 19:02:46 00_17_Status ended
2020-12-15 19:02:46 00_30_Weekday Monday
2020-12-15 19:02:46 00_35_Location HXXXkonferenz
2020-12-15 19:02:46 00_50_isAllday 0
2020-12-15 19:02:46 00_55_isRepeatEvt 0
2020-12-15 19:02:46 00_80_0_notifyDateTime 2020-12-14 08:50:00
2020-12-15 19:02:46 00_90_calName OfficeCal
2020-12-15 19:02:46 00_95_IcalUID 9bd255ca-993d-42b2-b1ab-f00904154375
2020-12-15 19:02:46 00_98_EventId 3589
2020-12-15 19:02:46 00_99_---------------------- --------------------------------------------------------------------
2020-12-15 19:02:46 01_01_Summary TXXX"
2020-12-15 19:02:46 01_03_Description -zugesagt-
NXXX0
2020-12-15 19:02:46 01_05_Begin 2020-12-14 18:00:00
2020-12-15 19:02:46 01_10_End 2020-12-14 19:00:00
2020-12-15 19:02:46 01_15_Timezone Europe/Amsterdam
2020-12-15 19:02:46 01_17_Status ended
2020-12-15 19:02:46 01_30_Weekday Monday
2020-12-15 19:02:46 01_35_Location HXXXonferenz
2020-12-15 19:02:46 01_50_isAllday 0
2020-12-15 19:02:46 01_55_isRepeatEvt 0
2020-12-15 19:02:46 01_80_0_notifyDateTime 2020-12-14 17:50:00
2020-12-15 19:02:46 01_90_calName OfficeCal
2020-12-15 19:02:46 01_95_IcalUID 20201210T141929-351e2ae7@192.168.123.62
2020-12-15 19:02:46 01_98_EventId 3984
2020-12-15 19:02:46 01_99_---------------------- --------------------------------------------------------------------
2020-12-15 19:02:46 02_01_Summary SXXXi
2020-12-15 19:02:46 02_05_Begin 2020-12-15 00:00:00
2020-12-15 19:02:46 02_10_End 2020-12-15 23:59:59
2020-12-15 19:02:46 02_17_Status started
2020-12-15 19:02:46 02_20_daysLeft 0
2020-12-15 19:02:46 02_25_daysLeftLong in 0 Tagen
2020-12-15 19:02:46 02_30_Weekday Tuesday
2020-12-15 19:02:46 02_50_isAllday 1
2020-12-15 19:02:46 02_55_isRepeatEvt 0
2020-12-15 19:02:46 02_90_calName FamCal
2020-12-15 19:02:46 02_95_IcalUID c6238fd2-e5af-40d4-aead-c23d00f0a98d
2020-12-15 19:02:46 02_98_EventId 3987
2020-12-15 19:02:46 02_99_---------------------- --------------------------------------------------------------------
2020-12-15 19:02:46 03_01_Summary XXXe
2020-12-15 19:02:46 03_03_Description https://join.signal-iduna.de/miXXX3B
Tel:
0231135XXX7,,1208161#
2020-12-15 19:02:46 03_05_Begin 2020-12-15 10:45:00
2020-12-15 19:02:46 03_10_End 2020-12-15 12:00:00
2020-12-15 19:02:46 03_15_Timezone Europe/Amsterdam
2020-12-15 19:02:46 03_17_Status ended
2020-12-15 19:02:46 03_20_daysLeft 0
2020-12-15 19:02:46 03_25_daysLeftLong in 0 Tagen
2020-12-15 19:02:46 03_30_Weekday Tuesday
2020-12-15 19:02:46 03_35_Location HXXXonferenz
2020-12-15 19:02:46 03_50_isAllday 0
2020-12-15 19:02:46 03_55_isRepeatEvt 0
2020-12-15 19:02:46 03_80_0_notifyDateTime 2020-12-15 10:35:00
2020-12-15 19:02:46 03_90_calName OfficeCal
2020-12-15 19:02:46 03_95_IcalUID 20201214T080058-cbf9bd1a@192.168.123.62
2020-12-15 19:02:46 03_98_EventId 3988
2020-12-15 19:02:46 03_99_---------------------- --------------------------------------------------------------------
2020-12-15 19:02:46 04_01_Summary WXXXu"
2020-12-15 19:02:46 04_03_Description https://global.gotowebinar.com/join/511XXX4
UXXXd
2020-12-15 19:02:46 04_05_Begin 2020-12-15 19:00:00
2020-12-15 19:02:46 04_10_End 2020-12-15 20:00:00
2020-12-15 19:02:46 04_15_Timezone Europe/Berlin
2020-12-15 19:02:46 04_17_Status started
2020-12-15 19:02:46 04_20_daysLeft 0
2020-12-15 19:02:46 04_25_daysLeftLong in 0 Tagen
2020-12-15 19:02:46 04_30_Weekday Tuesday
2020-12-15 19:02:46 04_35_Location HXXXinar
2020-12-15 19:02:46 04_50_isAllday 0
2020-12-15 19:02:46 04_55_isRepeatEvt 0
2020-12-15 19:02:46 04_80_0_notifyDateTime 2020-12-15 18:40:00
2020-12-15 19:02:46 04_90_calName OfficeCal
2020-12-15 19:02:46 04_95_IcalUID 5c61beef-f79a-4b58-ae48-c8277594e368
2020-12-15 19:02:46 04_98_EventId 3985
2020-12-15 19:02:46 04_99_---------------------- --------------------------------------------------------------------
2020-12-15 19:02:46 05_01_Summary XXXI
2020-12-15 19:02:46 05_03_Description https://join.signal-iduna.de/mXXXD
Tel:
0231135XXX7,,7375849#
2020-12-15 19:02:46 05_05_Begin 2020-12-16 09:00:00
2020-12-15 19:02:46 05_10_End 2020-12-16 10:30:00
2020-12-15 19:02:46 05_15_Timezone Europe/Amsterdam
2020-12-15 19:02:46 05_17_Status upcoming
2020-12-15 19:02:46 05_20_daysLeft 1
2020-12-15 19:02:46 05_25_daysLeftLong in 1 Tagen
2020-12-15 19:02:46 05_30_Weekday Wednesday
2020-12-15 19:02:46 05_35_Location HXXXkonferenz
2020-12-15 19:02:46 05_50_isAllday 0
2020-12-15 19:02:46 05_55_isRepeatEvt 0
2020-12-15 19:02:46 05_80_0_notifyDateTime 2020-12-16 08:50:00
2020-12-15 19:02:46 05_90_calName OfficeCal
2020-12-15 19:02:46 05_95_IcalUID 20201214T080156-0101733c@192.168.123.62
2020-12-15 19:02:46 05_98_EventId 3989
2020-12-15 19:02:46 05_99_---------------------- --------------------------------------------------------------------
2020-12-15 19:02:46 06_01_Summary WXXX1"
2020-12-15 19:02:46 06_03_Description https://join.signal-iduna.de/miXXX28
Per Telefon teilnehmen
0404124XXX7,,68233705#
2020-12-15 19:02:46 06_05_Begin 2020-12-16 10:30:00
2020-12-15 19:02:46 06_10_End 2020-12-16 12:00:00
2020-12-15 19:02:46 06_15_Timezone Europe/Amsterdam
2020-12-15 19:02:46 06_17_Status upcoming
2020-12-15 19:02:46 06_20_daysLeft 1
2020-12-15 19:02:46 06_25_daysLeftLong in 1 Tagen
2020-12-15 19:02:46 06_30_Weekday Wednesday
2020-12-15 19:02:46 06_35_Location HomeOffice
2020-12-15 19:02:46 06_50_isAllday 0
2020-12-15 19:02:46 06_55_isRepeatEvt 0
2020-12-15 19:02:46 06_80_0_notifyDateTime 2020-12-16 10:20:00
2020-12-15 19:02:46 06_90_calName OfficeCal
2020-12-15 19:02:46 06_95_IcalUID 20201201T104919-1be4d443@192.168.123.62
2020-12-15 19:02:46 06_98_EventId 3914
2020-12-15 19:02:46 06_99_---------------------- --------------------------------------------------------------------
2020-12-15 19:02:46 07_01_Summary ABGESAGT: FXXXe)
2020-12-15 19:02:46 07_03_Description BC2-Status: Cancelled
2020-12-15 19:02:46 07_05_Begin 2020-12-17 10:00:00
2020-12-15 19:02:46 07_10_End 2020-12-18 17:00:00
2020-12-15 19:02:46 07_15_Timezone Europe/Berlin
2020-12-15 19:02:46 07_17_Status upcoming
2020-12-15 19:02:46 07_20_daysLeft 2
2020-12-15 19:02:46 07_25_daysLeftLong in 2 Tagen
2020-12-15 19:02:46 07_30_Weekday Thursday
2020-12-15 19:02:46 07_35_Location AXXXeke
2020-12-15 19:02:46 07_50_isAllday 0
2020-12-15 19:02:46 07_55_isRepeatEvt 0
2020-12-15 19:02:46 07_90_calName OfficeCal
2020-12-15 19:02:46 07_95_IcalUID 8c6d4494-f92b-4b80-8081-a0938d0386c2
2020-12-15 19:02:46 07_98_EventId 2859
2020-12-15 19:02:46 07_99_---------------------- --------------------------------------------------------------------
2020-12-15 19:02:46 08_01_Summary XXXBK
2020-12-15 19:02:46 08_03_Description https://join.signal-iduna.de/miXXX5K
Tel:
0231135XXX7,,9954949#
2020-12-15 19:02:46 08_05_Begin 2020-12-17 10:00:00
2020-12-15 19:02:46 08_10_End 2020-12-17 13:00:00
2020-12-15 19:02:46 08_15_Timezone Europe/Amsterdam
2020-12-15 19:02:46 08_17_Status upcoming
2020-12-15 19:02:46 08_20_daysLeft 2
2020-12-15 19:02:46 08_25_daysLeftLong in 2 Tagen
2020-12-15 19:02:46 08_30_Weekday Thursday
2020-12-15 19:02:46 08_35_Location HXXXkonferenz
2020-12-15 19:02:46 08_50_isAllday 0
2020-12-15 19:02:46 08_55_isRepeatEvt 0
2020-12-15 19:02:46 08_80_0_notifyDateTime 2020-12-17 09:50:00
2020-12-15 19:02:46 08_90_calName OfficeCal
2020-12-15 19:02:46 08_95_IcalUID 20201214T080326-7ab57313@192.168.123.62
2020-12-15 19:02:46 08_98_EventId 3990
2020-12-15 19:02:46 08_99_---------------------- --------------------------------------------------------------------
2020-12-15 19:02:46 09_01_Summary FXXXto
2020-12-15 19:02:46 09_05_Begin 2020-12-17 15:30:00
2020-12-15 19:02:46 09_10_End 2020-12-17 16:30:00
2020-12-15 19:02:46 09_15_Timezone Europe/Amsterdam
2020-12-15 19:02:46 09_17_Status upcoming
2020-12-15 19:02:46 09_20_daysLeft 2
2020-12-15 19:02:46 09_25_daysLeftLong in 2 Tagen
2020-12-15 19:02:46 09_30_Weekday Thursday
2020-12-15 19:02:46 09_35_Location RöXXXen
2020-12-15 19:02:46 09_50_isAllday 0
2020-12-15 19:02:46 09_55_isRepeatEvt 0
2020-12-15 19:02:46 09_80_0_notifyDateTime 2020-12-17 13:30:00
2020-12-15 19:02:46 09_90_calName OfficeCal
2020-12-15 19:02:46 09_95_IcalUID 20201214T175902-e9d1a8a2@192.168.123.62
2020-12-15 19:02:46 09_98_EventId 3992
2020-12-15 19:02:46 09_99_---------------------- --------------------------------------------------------------------
2020-12-15 19:02:46 10_01_Summary RXXX1
2020-12-15 19:02:46 10_03_Description https://join.signal-iduna.de/micXXX4B
Per Telefon teilnehmen
0231135XXX7,,5702599#
2020-12-15 19:02:46 10_05_Begin 2020-12-18 10:00:00
2020-12-15 19:02:46 10_10_End 2020-12-18 11:00:00
2020-12-15 19:02:46 10_15_Timezone Europe/Berlin
2020-12-15 19:02:46 10_17_Status upcoming
2020-12-15 19:02:46 10_20_daysLeft 3
2020-12-15 19:02:46 10_25_daysLeftLong in 3 Tagen
2020-12-15 19:02:46 10_30_Weekday Friday
2020-12-15 19:02:46 10_35_Location HXXXekonferenz
2020-12-15 19:02:46 10_50_isAllday 0
2020-12-15 19:02:46 10_55_isRepeatEvt 0
2020-12-15 19:02:46 10_80_0_notifyDateTime 2020-12-18 09:50:00
2020-12-15 19:02:46 10_90_calName OfficeCal
2020-12-15 19:02:46 10_95_IcalUID e6bf1118-a296-45d0-847f-d719d234b590
2020-12-15 19:02:46 10_98_EventId 3908
2020-12-15 19:02:46 10_99_---------------------- --------------------------------------------------------------------
2020-12-15 19:02:46 11_01_Summary UrXXXb
2020-12-15 19:02:46 11_05_Begin 2020-12-21 00:00:00
2020-12-15 19:02:46 11_10_End 2020-12-23 23:59:59
2020-12-15 19:02:46 11_17_Status upcoming
2020-12-15 19:02:46 11_20_daysLeft 6
2020-12-15 19:02:46 11_25_daysLeftLong in 6 Tagen
2020-12-15 19:02:46 11_30_Weekday Monday
2020-12-15 19:02:46 11_50_isAllday 1
2020-12-15 19:02:46 11_55_isRepeatEvt 0
2020-12-15 19:02:46 11_90_calName FamCal
2020-12-15 19:02:46 11_95_IcalUID 9a828b2b-c7ec-423a-953d-2b00ba33065d
2020-12-15 19:02:46 11_98_EventId 3366
2020-12-15 19:02:46 11_99_---------------------- --------------------------------------------------------------------
2020-12-15 19:02:46 12_01_Summary Weihnachtsferien
2020-12-15 19:02:46 12_03_Description Weihnachtsferien 2020 in Hessen - Importiert von Ferienwiki.de
2020-12-15 19:02:46 12_05_Begin 2020-12-21 00:00:00
2020-12-15 19:02:46 12_10_End 2021-01-09 23:59:59
2020-12-15 19:02:46 12_17_Status upcoming
2020-12-15 19:02:46 12_20_daysLeft 6
2020-12-15 19:02:46 12_25_daysLeftLong in 6 Tagen
2020-12-15 19:02:46 12_30_Weekday Monday
2020-12-15 19:02:46 12_50_isAllday 1
2020-12-15 19:02:46 12_55_isRepeatEvt 0
2020-12-15 19:02:46 12_90_calName Ferien_Feiertage
2020-12-15 19:02:46 12_95_IcalUID 2ad9f18c-3d67-448a-8b03-826d9acf241e
2020-12-15 19:02:46 12_98_EventId 2763
2020-12-15 19:02:46 12_99_---------------------- --------------------------------------------------------------------
2020-12-15 19:02:46 13_01_Summary ABGESAGT: TXXX"
2020-12-15 19:02:46 13_03_Description https://join.signal-iduna.de/alXXXpfs
Tel:
0231135XXX7,,3080172#BC2-Status: Cancelled
2020-12-15 19:02:46 13_05_Begin 2020-12-21 09:00:00
2020-12-15 19:02:46 13_10_End 2020-12-21 10:00:00
2020-12-15 19:02:46 13_15_Timezone Europe/Berlin
2020-12-15 19:02:46 13_17_Status upcoming
2020-12-15 19:02:46 13_20_daysLeft 6
2020-12-15 19:02:46 13_25_daysLeftLong in 6 Tagen
2020-12-15 19:02:46 13_30_Weekday Monday
2020-12-15 19:02:46 13_35_Location HXXXnkonferenz
2020-12-15 19:02:46 13_50_isAllday 0
2020-12-15 19:02:46 13_55_isRepeatEvt 0
2020-12-15 19:02:46 13_80_0_notifyDateTime 2020-12-21 08:50:00
2020-12-15 19:02:46 13_90_calName OfficeCal
2020-12-15 19:02:46 13_95_IcalUID 778fa06f-f72a-4532-862a-2ac0c087bd42
2020-12-15 19:02:46 13_98_EventId 3590
2020-12-15 19:02:46 13_99_---------------------- --------------------------------------------------------------------
2020-12-15 19:02:46 14_01_Summary 1. Weihnachtstag
2020-12-15 19:02:46 14_03_Description 1. Weihnachtstag - Importiert von Ferienwiki.de
2020-12-15 19:02:46 14_05_Begin 2020-12-25 00:00:00
2020-12-15 19:02:46 14_10_End 2020-12-25 23:59:59
2020-12-15 19:02:46 14_17_Status upcoming
2020-12-15 19:02:46 14_20_daysLeft 10
2020-12-15 19:02:46 14_25_daysLeftLong in 10 Tagen
2020-12-15 19:02:46 14_30_Weekday Friday
2020-12-15 19:02:46 14_50_isAllday 1
2020-12-15 19:02:46 14_55_isRepeatEvt 0
2020-12-15 19:02:46 14_90_calName Ferien_Feiertage
2020-12-15 19:02:46 14_95_IcalUID 363549f3-8b2b-46bc-8ae0-ec80f41884a2
2020-12-15 19:02:46 14_98_EventId 2778
2020-12-15 19:02:46 14_99_---------------------- --------------------------------------------------------------------
2020-12-11 09:02:48 Error none
2020-12-11 09:02:48 Errorcode none
2020-12-15 19:02:46 QueueLength 0
2020-12-15 19:02:46 lastUpdate 19:02:46
2020-12-15 19:02:45 nextUpdate Automatic - next polltime: 20:02:45
2020-12-15 19:02:46 state done
Attributes:
cutLaterDays 10
cutOlderDays 1
event-on-update-reading .*Summary,state
interval 3600
room Kalender
tableFields Symbol,Begin,End,DaysLeft,Weekday,Summary,Status,Location,Calendar
tableSpecs {
"cellStyle" => {
"noHeader" => "0",
"headerAlign" => "center",
"columnAlign" => "left",
"columnSymbolAlign" => "center",
"columnDaysLeftAlign" => "center",
"columnLocationAlign" => "left",
"columnSummaryAlign" => "left",
},
"columnStateIcon" => [
{
"Status" => "eq 'ended' ",
"icon" => "ios-off",
},
{
"Status" => "eq 'upcoming' ",
"icon" => "ios-on-for-timer-green",
},
{
"Status" => "eq 'upcoming' ",
"daysLeft" => ">= 4",
"icon" => "ios-on-for-timer-blue",
},
],
"smallScreenStyles" => "darksmallscreen,smallscreen",
}
usedCalendars Ferien_Feiertage,OfficeCal,FamCal,M�lltermine
LG Jörg
Zitatmein Kalender "Mülltermine" wird nicht angezeigt. Kann es an den Umlauten liegen?
Na klar, bin schockiert ;)
Muss ich richten ...
Ich habe das Problem mit Umlauten im Kalendernamen gefixt und ist morgen früh im Update enthalten.
Wenn du es jetzt schon haben/testen möchtest kannst du es aus meinem contrib nehmen.
Zum Download in der FHEMWEB Kommandozeile inklusive der Ausführungszeichen angeben und danach FHEM restarten:
"wget -qO ./FHEM/57_SSCal.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/57_SSCal.pm"
LG,
Heiko
Danke.
Ich habs gleich mal testen wollen. Sehe den Kalender bzw. den Eintrag des Kalenders aber noch nicht.
Vielleicht kann ich mir das morgen nochmal anschauen.
LG
Führe doch mal ein get <> getCalendars aus. In dem Popup sollte dein Kalender mit auftauchen.
Jetzt kann ich die Daten sehen. DANKE.
Hallo zusammen,
In habe einen Wiki-Beitrag (https://wiki.fhem.de/wiki/SSFile_-_Integration_der_Synology_File_Station#Backup_des_FHEM_Filesystems_.C3.BCber_Synology_Kalendereinplanunghttp://) erstellt, wie mit dem Synology Modulen SSCal und SSFile eine übersichtliche und Kalender gestützte Sicherungslösung für die Verzeichnisse des FHEM-Servers aufgebaut werden kann.
Schöne Feiertage,
Heiko
Ich habe heute folgende Meldungen im Log:
2021.01.04 09:16:05 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in numeric le (<=) at ./FHEM/57_SSCal.pm line 1815.
2021.01.04 09:16:05 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in addition (+) at ./FHEM/57_SSCal.pm line 1819.
2021.01.04 09:16:05 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in subtraction (-) at ./FHEM/57_SSCal.pm line 1816.
Kann mir da jemand helfen?
ZitatIch habe heute folgende Meldungen im Log:
Ist wahrscheinlich das gleiche wie hier:
https://forum.fhem.de/index.php/topic,106963.msg1110943.html#msg1110943
Vielleicht kannst du ein paar mehr Infos liefern mit einem List vom Device wo man die Kalendereinträge sieht wenn das nichts geheimes ist.
Hallo zusammen,
beim Aufruf von "get meinKalender getCalendars" bekomme ich folgende Fehlermeldung:
fhemweb.js line 1:
SyntaxError: missing ) after argument list
Was habe ich da falsch gemacht?
Gruß
Thomas
Hallo Thomas,
da kann man nichts falsch machen.
FHEM System aktuell ? Insbesondere die FHEMWEB Komponenten ?
Grüße,
Heiko
Zitat von: DS_Starter am 17 Februar 2021, 17:17:56
Hallo Thomas,
da kann man nichts falsch machen.
FHEM System aktuell ? Insbesondere die FHEMWEB Komponenten ?
Grüße,
Heiko
Gerade ein aktuelles update gemacht. Fehler bleibt :-(
Auszug aus dem Log:
2021.02.17 18:59:35 3: SynologyCal - no session ID found - get new one
2021.02.17 19:00:10 3: SynologyCal - no session ID found - get new one
2021.02.17 19:00:11 2: SynologyCal - Session of User "kalender" terminated - session ID "IgoR5zSahrrYK3jsC-LYkKFi5qFT3Vl_JWQ2Szf6PdY95FA5_w-ay-fgufSxOGHJ0A46PY33fzgAD9AO-6JI10" deleted
Den Browser Cache mal geleert ?
Welche FHEMWEB Style verwendest du ?
Browser (firefox) Cache ist geleert.
Ich verwende den Flex Style.
Hmm ... hab flex probiert. Klappt auch einwandfrei bei mir
Komisch .. ein List zeigt mir, dass alle Kalender erkannt werden. Und jetzt sehe ich, dass ich morgen früh raus muss, um die Bio Tonne an die Straße zu stellen :-)
Funktioniert also auch trotz der Fehlermeldung.
Danke für die Hilfe!
ZitatFunktioniert also auch trotz der Fehlermeldung.
Ja klar, die Logik funktioniert, nur die Anzeige in der GUI nicht. ;)
Aber trotzdem komisch...
Hey zusammen,
bin gestern auf das Modul aufmerksam geworden und hab mich mal damit befasst.
Zuerst einmal ein dickes Danke an dich Heiko, macht immer wieder eine riesen Freude durch deine Module mehr mit der Syno in Verbindung mit FHEM machen zu können.
Jetzt habe ich aber ein kurioses Problem und zwar wollte ich den Teil umsetze aus dem Wiki mit den Urlaubstagen.
Also extra Kalender angelegt und alles fein säuberlich nach Wiki abgearbeitet.
Ich erstelle einen ganztägigen Termin für meinen kommenden Urlaub vom 14.6-18.6.
Allerdings zeigt mir jetzt FHEM an dass mein Urlaub vom 14.6. 00:00 Uhr bis 19.6. 01:59 Uhr geht
Also irgendwie 2 Stunden verlängert und dadurch wird mir der 19.6. natürlich dann auch als Urlaub in FHEM dargestellt.
Wo könnte ich da den Fehler gemacht haben?
Hier das List:
Internals:
CFGFN
CREDENTIALS Set
DEF 192.168.178.10
FUUID 60a99f9c-f33f-38f1-d63e-c1338a5b44a16351
FVERSION 57_SSCal.pm:v2.4.8-s23365/2020-12-16
MODE Automatic
MODEL Diary
NAME SynCal2
NR 514
OPMODE
PROTOCOL http
RESEND next planned SendQueue start: immediately by next entry
SERVERADDR 192.168.178.10
SERVERPORT 5000
STATE <b>Status:</b> done - <b>Last Update</b>: 11:22:38 - <b>Next Update</b>: Automatic - next polltime: 11:29:17
TYPE SSCal
HELPER:
CALFETCHED 1
CREDENTIALS T6>ofoFqY3ZYW4:i^1kmi^QrcvW}g5TSVUpyLY:HXy>F
LOGINRETRIES 0
PACKAGE FHEM::SSCal
SID Dgv9Zgf0w63JYXxHPdo7O9jW-XQGkge5aj4MXsTV8y0mBsUr2s6iWNKBA52ZyXI1vTWbs_u1nfjw3nAboStmu4
VERSION 2.4.8
VERSION_API 1.2.0
VERSION_ErrCodes 1.3.4
VERSION_SMUtils 1.22.0
alias Synology Kalender Urlaubstage
asyncMode 1
createATDevs 1
cutLaterDays 90
cutOlderDays 1
event-on-update-reading .*Summary.*,state
group Haussteuerung
icon time_calendar
interval 400
room Dienste->Kalender
stateFormat <b>Status:</b> state - <b>Last Update</b>: lastUpdate - <b>Next Update</b>: nextUpdate
tableFields Begin,End,DaysLeft,Summary,Status,Calendar
usedCalendars Urlaubstage
CALENDARS:
Haussteuerung Prod:
description enthält produktive Termine mit FHEM-Kommandos die zeitgesteuert ausgeführt werden sollen
id /Cobra/usxokzc/
privilege RW
publicshareid 5KFXR5DKU
type Event
Inbox:
description
id /Cobra/home_todo/
privilege RW
publicshareid
type ToDo
My Calendar:
description
id /Cobra/home/
privilege RW
publicshareid
type Event
Urlaubstage:
description
id /Cobra/ptadnk/
privilege RW
publicshareid q8k313wUk
type Event
RUNNING_PID:
abortFn FHEM::SSCal::blockingTimeout
arg SynCal2
bc_pid 180
finishFn FHEM::SSCal::createReadings
fn FHEM::SSCal::extractEventlist
loglevel 5
pid 3336
telnet telnetForBlockingFn_1621723919_127.0.0.1_49038
terminated 1
timeout 200
abortArg:
tableSpecs:
columnMapProvider GoogleMaps
columnSymbolIcon time_manual_mode
cellStyle:
columnAlign center
columnSummaryAlign left
columnSymbolAlign center
headerAlign center
noHeader 0
columnMapIcon:
HASH(0x81a6dd8)
HASH(0x7fcbf78)
columnStateIcon:
HASH(0x17a4540)
HASH(0x7c8a638)
HASH(0x17a8b18)
HASH(0x8210a58)
OLDREADINGS:
READINGS:
2021-05-23 11:22:38 0_01_Summary Urlaub Juni
2021-05-23 11:22:38 0_05_Begin 2021-06-14 00:00:00
2021-05-23 11:22:38 0_10_End 2021-06-19 01:59:59
2021-05-23 11:22:38 0_17_Status upcoming
2021-05-23 11:22:38 0_20_daysLeft 22
2021-05-23 11:22:38 0_25_daysLeftLong in 22 Tagen
2021-05-23 11:22:38 0_30_Weekday Montag
2021-05-23 11:22:38 0_50_isAllday 1
2021-05-23 11:22:38 0_55_isRepeatEvt 0
2021-05-23 11:22:38 0_90_calName Urlaubstage
2021-05-23 11:22:38 0_95_IcalUID 20210523T110303-5b3495b7@172.17.0.1
2021-05-23 11:22:38 0_98_EventId 1027
2021-05-23 11:22:38 0_99_---------------------- --------------------------------------------------------------------
2021-05-23 02:22:56 Error none
2021-05-23 02:22:56 Errorcode none
2021-05-23 11:22:38 QueueLength 0
2021-05-23 11:22:38 lastUpdate 11:22:38
2021-05-23 11:22:37 nextUpdate Automatic - next polltime: 11:29:17
2021-05-23 11:22:38 state done
eventlist:
data:
/Cobra/ptadnk/:
HASH(0x768b680)
Attributes:
alias Synology Kalender Urlaubstage
asyncMode 1
createATDevs 1
cutLaterDays 90
cutOlderDays 1
event-on-update-reading .*Summary.*,state
group Haussteuerung
icon time_calendar
interval 400
room Dienste->Kalender
stateFormat <b>Status:</b> state - <b>Last Update</b>: lastUpdate - <b>Next Update</b>: nextUpdate
tableFields Begin,End,DaysLeft,Summary,Status,Calendar
tableSpecs {
"cellStyle" => {
"noHeader" => "0",
"headerAlign" => "center",
"columnAlign" => "center",
"columnSymbolAlign" => "center",
"columnSummaryAlign" => "left",
},
"columnMapIcon" => [{
"Status" => "eq 'ended' ",
"icon" => "rc_WEB@grey",
},
{
"daysLeft" => ">= 1 ",
"icon" => "rc_WEB",
}],
"columnMapProvider" => "GoogleMaps",
"columnStateIcon" => [
{
"Status" => "eq 'ended' ",
"icon" => "1px-spacer",
},
{
"Status" => "eq 'started' ",
"icon" => "10px-kreis-gruen",
},
{
"Status" => "eq 'upcoming' ",
"icon" => "10px-kreis-gelb",
},
{
"Status" => "eq 'alarmed' ",
"icon" => "10px-kreis-gruen",
},
],
"columnSymbolIcon" => "time_manual_mode",
}
usedCalendars Urlaubstage
So sieht es in der Synology aus:
Hallo Cobra,
ich habe demnächst auch Urlaub, der allerdings richtig angezeigt wird. ;)
Schalte im Device mal bitte verbose 5 ein und rufe deinen Kalender ab. Dann siehst du was von der API geliefert wird.
Mein Urlaub sieht im Log so aus:
{
'original_cal_id' => '/Heiko/qmrae/',
'priority_order' => 1302,
'is_repeat_evt' => $VAR1->{'data'}{'/Heiko/ailiq/'}[11]{'is_repeat_evt'},
'evt_color' => '',
'dav_etag' => '23d3bb2d7a63e3942646ba28d053f750',
'tz_id' => undef,
'percent_complete' => undef,
'class' => 'PUBLIC',
'from_syno_app_url' => undef,
'dtstart' => '20210607T000000',
'dtend' => '20210621T000000',
'gps' => undef,
'is_all_day' => $VAR1->{'success'},
'create_time' => '1611756645.29099',
'modify_time2' => 1621333577,
'status' => undef,
'ical_uid' => '20210127T151045-0fb6161d@172.17.0.1',
'evt_notify_setting' => [
{
'recurrence-id' => '',
'time_value' => '-PT3H',
'alarm_action' => 'DISPLAY',
'alarm_ical' => 'BEGIN:VALARM
TRIGGER:-PT3H
ACTION:DISPLAY
DESCRIPTION:Urlaub
END:VALARM
',
Du siehst die gelieferten Start/Endezeiten in dtstart/dtend.
Schau mal ob diese Lieferzeiten richtig sind.
LG,
Heiko
Hey Heiko,
nein, die Lieferzeiten passen da schon nicht.
Hier das Log:
021.05.23 12:15:58 5: SynCal2 - Calendar selection for add queue: Urlaubstage
2021.05.23 12:15:58 5: SynCal2 - Add Item to queue - Index 89:
{
'api' => 'EVENT',
'params' => '&cal_id_list=["/Cobra/ptadnk/"]&start=1621634400&end=1629583200&list_repeat=true',
'opmode' => 'eventlist',
'method' => 'list',
'retryCount' => 0
}
2021.05.23 12:15:58 4: SynCal2 - ####################################################
2021.05.23 12:15:58 4: SynCal2 - ### start Calendar operation eventlist
2021.05.23 12:15:58 4: SynCal2 - ####################################################
2021.05.23 12:15:58 4: SynCal2 - Time selection start: 2021-05-22 00:00:00
2021.05.23 12:15:58 4: SynCal2 - Time selection end: 2021-08-22 00:00:00
2021.05.23 12:15:58 4: SynCal2 - API hash values already set - ignore get apisites
2021.05.23 12:15:58 4: SynCal2 - start SendQueue entry index "89" (eventlist) for operation.
2021.05.23 12:15:58 5: SynCal2 - HTTP-Call will be done with timeout: 20 s
2021.05.23 12:15:58 4: SynCal2 - Call-Out: http://192.168.178.10:5000/webapi/entry.cgi?api=SYNO.Cal.Event&version=3&method=list&cal_id_list=["/Cobra/ptadnk/"]&start=1621634400&end=1629583200&list_repeat=true&_sid=<secret>
2021.05.23 12:15:58 5: SynCal2 - JSON returned: {
'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
'data' => {
'/Cobra/ptadnk/' => [
{
'transp' => 'OPAQUE',
'priority_order' => 8,
'summary' => 'Urlaub Juni',
'from_syno_app_url' => undef,
'class' => 'PUBLIC',
'owner_name' => 'Cobra',
'modify_time2' => '1621760615.6057',
'original_cal_id' => '/Cobra/ptadnk/',
'evt_repeat_setting' => {
'repeat_rule' => undef
},
'ical_uid' => '20210523T110303-5b3495b7@172.17.0.1',
'gps' => undef,
'is_all_day' => $VAR1->{'success'},
'create_time' => '1621760583.4569',
'dtend' => '20210619T020000',
'evt_id' => 1027,
'dtstart' => '20210614T000000',
'percent_complete' => undef,
'location' => '',
'description' => '',
'owner' => 1027,
'is_repeat_evt' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
'tz_id' => undef,
'status' => undef,
'priority' => undef,
'dav_etag' => 'ftcvbwdvttkibrbcixyreogbwfvomqpc',
'evt_color' => ''
}
]
}
}
2021.05.23 12:15:58 4: SynCal2 - Event parse mode: asynchronous
2021.05.23 12:15:58 5: SynCal2 - VCALENDAR extract of UID "20210523T110303-5b3495b7@172.17.0.1":
undef
2021.05.23 12:15:58 5: SynCal2 - Single event Begin: 2021-06-14, End: 2021-06-19
2021.05.23 12:15:58 4: SynCal2 - Argument list for SSCalWriteHoliday:
2021.05.23 12:15:58 4: SynCal2 - 4 06-14 06-19 Urlaub Juni
2021.05.23 12:15:58 4: SynCal2 - add line: 1 01-01 Neujahr
2021.05.23 12:15:58 4: SynCal2 - add line: 1 01-06 Heilige Drei Koenige
2021.05.23 12:15:58 4: SynCal2 - add line: 1 05-01 Tag der Arbeit
2021.05.23 12:15:58 4: SynCal2 - add line: 1 10-03 Tag der deutschen Einheit
2021.05.23 12:15:58 4: SynCal2 - add line: 1 11-01 Allerheiligen
2021.05.23 12:15:58 4: SynCal2 - add line: 1 12-25 1. Weihnachtstag
2021.05.23 12:15:58 4: SynCal2 - add line: 1 12-26 2. Weihnachtstag
2021.05.23 12:15:58 4: SynCal2 - add line:
2021.05.23 12:15:58 4: SynCal2 - add line: 2 -2 Karfreitag
2021.05.23 12:15:58 4: SynCal2 - add line: 2 1 Ostermontag
2021.05.23 12:15:58 4: SynCal2 - add line: 2 39 Christi Himmelfahrt
2021.05.23 12:15:58 4: SynCal2 - add line: 2 50 Pfingsten
2021.05.23 12:15:58 4: SynCal2 - add line: 2 60 Fronleichnam
2021.05.23 12:15:58 4: SynCal2 - add line:
2021.05.23 12:15:58 4: SynCal2 - add line: #####Urlaub#####
2021.05.23 12:15:58 4: SynCal2 - -> Start new list write into ./FHEM/FeiertageBW.holiday <-
2021.05.23 12:15:58 4: SynCal2 - 1 01-01 Neujahr
2021.05.23 12:15:58 4: SynCal2 - 1 01-06 Heilige Drei Koenige
2021.05.23 12:15:58 4: SynCal2 - 1 05-01 Tag der Arbeit
2021.05.23 12:15:58 4: SynCal2 - 1 10-03 Tag der deutschen Einheit
2021.05.23 12:15:58 4: SynCal2 - 1 11-01 Allerheiligen
2021.05.23 12:15:58 4: SynCal2 - 1 12-25 1. Weihnachtstag
2021.05.23 12:15:58 4: SynCal2 - 1 12-26 2. Weihnachtstag
2021.05.23 12:15:58 4: SynCal2 -
2021.05.23 12:15:58 4: SynCal2 - 2 -2 Karfreitag
2021.05.23 12:15:58 4: SynCal2 - 2 1 Ostermontag
2021.05.23 12:15:58 4: SynCal2 - 2 39 Christi Himmelfahrt
2021.05.23 12:15:58 4: SynCal2 - 2 50 Pfingsten
2021.05.23 12:15:58 4: SynCal2 - 2 60 Fronleichnam
2021.05.23 12:15:58 4: SynCal2 -
2021.05.23 12:15:58 4: SynCal2 - #####Urlaub#####
2021.05.23 12:15:58 4: SynCal2 - # Time of absence from Calendar SynCal2, updated: 2021-05-23 12:15:58
2021.05.23 12:15:58 4: SynCal2 - 4 06-14 06-19 Urlaub Juni
2021.05.23 12:15:58 4: SynCal2 - # End Time of absence from Calendar SynCal2
2021.05.23 12:15:58 4: SynCal2 - -> End new list <-
2021.05.23 12:15:58 4: SynCal2 - Opmode "eventlist" finished successfully, Sendqueue index "89" deleted.
Hm, dann scheint wohl irgend eine Einstellung in der Syno nicht zu passen?
Zeitzone hab ich schon geprüft aber an der kann es ja eigentlich auch nicht liegen denn sonst wäre ja auch am Start-Tag die Zeit versetzt? Und andere Kalendereinträge kommen mit den richtigen Uhrzeiten rüber.
Gruß Cobra
Das sieht mir nach einem Bug in der API aus.
Erstelle dir doch bitte einen beliebigen Dummy Eintrag im Kalender der terminlich vor deinem Urlaub liegt und rufe nochmal ab.
Mal schauen ob dann etwas anderes geliefert wird.
Hey Heiko,
auch wieder nen Ganztagestermin oder ein Eintrag über mehrere Tage oder nur nen Eintrag über 1-2 Stunden?
Nimm ein Ganztagsereignis zum Test
Den Testtermin liefert er richtig an, beim Urlaub sind es immer noch die 2 Stunden zu viel:
2021.05.23 12:35:58 5: SynCal2 - Calendar selection for add queue: Urlaubstage
2021.05.23 12:35:58 5: SynCal2 - Add Item to queue - Index 92:
{
'method' => 'list',
'retryCount' => 0,
'opmode' => 'eventlist',
'params' => '&cal_id_list=["/Cobra/ptadnk/"]&start=1621634400&end=1629583200&list_repeat=true',
'api' => 'EVENT'
}
2021.05.23 12:35:58 4: SynCal2 - ####################################################
2021.05.23 12:35:58 4: SynCal2 - ### start Calendar operation eventlist
2021.05.23 12:35:58 4: SynCal2 - ####################################################
2021.05.23 12:35:58 4: SynCal2 - Time selection start: 2021-05-22 00:00:00
2021.05.23 12:35:58 4: SynCal2 - Time selection end: 2021-08-22 00:00:00
2021.05.23 12:35:58 4: SynCal2 - API hash values already set - ignore get apisites
2021.05.23 12:35:58 4: SynCal2 - start SendQueue entry index "92" (eventlist) for operation.
2021.05.23 12:35:58 5: SynCal2 - HTTP-Call will be done with timeout: 20 s
2021.05.23 12:35:58 4: SynCal2 - Call-Out: http://192.168.178.10:5000/webapi/entry.cgi?api=SYNO.Cal.Event&version=3&method=list&cal_id_list=["/Cobra/ptadnk/"]&start=1621634400&end=1629583200&list_repeat=true&_sid=<secret>
2021.05.23 12:35:58 5: SynCal2 - JSON returned: {
'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
'data' => {
'/Cobra/ptadnk/' => [
{
'description' => '',
'owner' => 1027,
'is_repeat_evt' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
'percent_complete' => undef,
'location' => '',
'tz_id' => undef,
'status' => undef,
'priority' => undef,
'dav_etag' => 'ftcvbwdvttkibrbcixyreogbwfvomqpc',
'evt_color' => '',
'priority_order' => 8,
'transp' => 'OPAQUE',
'class' => 'PUBLIC',
'owner_name' => 'Cobra',
'modify_time2' => '1621760615.6057',
'summary' => 'Urlaub Juni',
'from_syno_app_url' => undef,
'original_cal_id' => '/Cobra/ptadnk/',
'evt_repeat_setting' => {
'repeat_rule' => undef
},
'ical_uid' => '20210523T110303-5b3495b7@172.17.0.1',
'dtstart' => '20210614T000000',
'gps' => undef,
'create_time' => '1621760583.4569',
'is_all_day' => $VAR1->{'success'},
'dtend' => '20210619T020000',
'evt_id' => 1027
},
{
'dav_etag' => 'kqngkdswmwbhooyjfutwhjnwxcopfpsz',
'status' => undef,
'priority' => undef,
'evt_color' => '',
'location' => '',
'percent_complete' => undef,
'owner' => 1027,
'is_repeat_evt' => $VAR1->{'data'}{'/Cobra/ptadnk/'}[0]{'is_repeat_evt'},
'description' => '',
'tz_id' => undef,
'evt_repeat_setting' => {
'repeat_rule' => undef
},
'ical_uid' => '20210523T123042-7497bbc1@169.254.181.151',
'original_cal_id' => '/Cobra/ptadnk/',
'dtend' => '20210611T000000',
'evt_id' => 1028,
'gps' => undef,
'is_all_day' => $VAR1->{'success'},
'create_time' => '1621765842.7592',
'dtstart' => '20210610T000000',
'transp' => 'OPAQUE',
'priority_order' => 9,
'from_syno_app_url' => undef,
'summary' => 'Testtermin',
'owner_name' => 'Cobra',
'modify_time2' => '1621766015.94967',
'class' => 'PUBLIC'
}
]
}
}
2021.05.23 12:35:58 4: SynCal2 - Event parse mode: asynchronous
2021.05.23 12:35:58 5: SynCal2 - VCALENDAR extract of UID "20210523T110303-5b3495b7@172.17.0.1":
undef
2021.05.23 12:35:58 5: SynCal2 - Single event Begin: 2021-06-14, End: 2021-06-19
2021.05.23 12:35:58 5: SynCal2 - VCALENDAR extract of UID "20210523T123042-7497bbc1@169.254.181.151":
undef
2021.05.23 12:35:58 5: SynCal2 - Single event Begin: 2021-06-10, End: 2021-06-10
2021.05.23 12:35:58 4: SynCal2 - Argument list for SSCalWriteHoliday:
2021.05.23 12:35:58 4: SynCal2 - 4 06-14 06-19 Urlaub Juni
2021.05.23 12:35:58 4: SynCal2 - add line: 1 01-01 Neujahr
2021.05.23 12:35:58 4: SynCal2 - add line: 1 01-06 Heilige Drei Koenige
2021.05.23 12:35:58 4: SynCal2 - add line: 1 05-01 Tag der Arbeit
2021.05.23 12:35:58 4: SynCal2 - add line: 1 10-03 Tag der deutschen Einheit
2021.05.23 12:35:58 4: SynCal2 - add line: 1 11-01 Allerheiligen
2021.05.23 12:35:58 4: SynCal2 - add line: 1 12-25 1. Weihnachtstag
2021.05.23 12:35:58 4: SynCal2 - add line: 1 12-26 2. Weihnachtstag
2021.05.23 12:35:58 4: SynCal2 - add line:
2021.05.23 12:35:58 4: SynCal2 - add line: 2 -2 Karfreitag
2021.05.23 12:35:58 4: SynCal2 - add line: 2 1 Ostermontag
2021.05.23 12:35:58 4: SynCal2 - add line: 2 39 Christi Himmelfahrt
2021.05.23 12:35:58 4: SynCal2 - add line: 2 50 Pfingsten
2021.05.23 12:35:58 4: SynCal2 - add line: 2 60 Fronleichnam
2021.05.23 12:35:58 4: SynCal2 - add line:
2021.05.23 12:35:58 4: SynCal2 - add line: #####Urlaub#####
2021.05.23 12:35:58 4: SynCal2 - -> Start new list write into ./FHEM/FeiertageBW.holiday <-
2021.05.23 12:35:58 4: SynCal2 - 1 01-01 Neujahr
2021.05.23 12:35:58 4: SynCal2 - 1 01-06 Heilige Drei Koenige
2021.05.23 12:35:58 4: SynCal2 - 1 05-01 Tag der Arbeit
2021.05.23 12:35:58 4: SynCal2 - 1 10-03 Tag der deutschen Einheit
2021.05.23 12:35:58 4: SynCal2 - 1 11-01 Allerheiligen
2021.05.23 12:35:58 4: SynCal2 - 1 12-25 1. Weihnachtstag
2021.05.23 12:35:58 4: SynCal2 - 1 12-26 2. Weihnachtstag
2021.05.23 12:35:58 4: SynCal2 -
2021.05.23 12:35:58 4: SynCal2 - 2 -2 Karfreitag
2021.05.23 12:35:58 4: SynCal2 - 2 1 Ostermontag
2021.05.23 12:35:58 4: SynCal2 - 2 39 Christi Himmelfahrt
2021.05.23 12:35:58 4: SynCal2 - 2 50 Pfingsten
2021.05.23 12:35:58 4: SynCal2 - 2 60 Fronleichnam
2021.05.23 12:35:58 4: SynCal2 -
2021.05.23 12:35:58 4: SynCal2 - #####Urlaub#####
2021.05.23 12:35:58 4: SynCal2 - # Time of absence from Calendar SynCal2, updated: 2021-05-23 12:35:58
2021.05.23 12:35:58 4: SynCal2 - 4 06-14 06-19 Urlaub Juni
2021.05.23 12:35:58 4: SynCal2 - # End Time of absence from Calendar SynCal2
2021.05.23 12:35:58 4: SynCal2 - -> End new list <-
2021.05.23 12:35:58 4: SynCal2 - Opmode "eventlist" finished successfully, Sendqueue index "92" deleted.
Ich habe die Vermutung, dass es nur den zuerst im zurück gelieferten Termin im JSON betrifft.
Lösche doch jetzt deinen Urlaub nochmal komplett im Kalender und lege ihn erneut an. Ich möchte damit erreichen, dass er nach dem Dummy geliefert wird um die These zu überprüfen.
Okay, so liefert er es jetzt richtig an für den Urlaub aber den ersten Termin verschiebt er wieder:
2021.05.23 12:45:06 5: SynCal2 - Calendar selection for add queue: Urlaubstage
2021.05.23 12:45:06 5: SynCal2 - Add Item to queue - Index 94:
{
'opmode' => 'eventlist',
'api' => 'EVENT',
'params' => '&cal_id_list=["/Cobra/ptadnk/"]&start=1621634400&end=1629583200&list_repeat=true',
'retryCount' => 0,
'method' => 'list'
}
2021.05.23 12:45:06 4: SynCal2 - ####################################################
2021.05.23 12:45:06 4: SynCal2 - ### start Calendar operation eventlist
2021.05.23 12:45:06 4: SynCal2 - ####################################################
2021.05.23 12:45:06 4: SynCal2 - Time selection start: 2021-05-22 00:00:00
2021.05.23 12:45:06 4: SynCal2 - Time selection end: 2021-08-22 00:00:00
2021.05.23 12:45:06 4: SynCal2 - API hash values already set - ignore get apisites
2021.05.23 12:45:06 4: SynCal2 - start SendQueue entry index "94" (eventlist) for operation.
2021.05.23 12:45:06 5: SynCal2 - HTTP-Call will be done with timeout: 20 s
2021.05.23 12:45:06 4: SynCal2 - Call-Out: http://192.168.178.10:5000/webapi/entry.cgi?api=SYNO.Cal.Event&version=3&method=list&cal_id_list=["/Cobra/ptadnk/"]&start=1621634400&end=1629583200&list_repeat=true&_sid=<secret>
2021.05.23 12:45:06 5: SynCal2 - JSON returned: {
'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
'data' => {
'/Cobra/ptadnk/' => [
{
'tz_id' => undef,
'owner' => 1027,
'is_repeat_evt' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
'description' => '',
'location' => '',
'percent_complete' => undef,
'evt_color' => '',
'dav_etag' => 'xfivnybjhhkkvjzmuvyloqwrgrxygwje',
'status' => undef,
'priority' => undef,
'owner_name' => 'Cobra',
'modify_time2' => '1621766659.1723',
'class' => 'PUBLIC',
'from_syno_app_url' => undef,
'summary' => 'Test',
'priority_order' => 10,
'transp' => 'OPAQUE',
'dtstart' => '20210610T000000',
'dtend' => '20210611T020000',
'evt_id' => 1029,
'gps' => undef,
'is_all_day' => $VAR1->{'success'},
'create_time' => '1621766329.01902',
'evt_repeat_setting' => {
'repeat_rule' => undef
},
'ical_uid' => '20210523T123849-1b98436f@169.254.181.151',
'original_cal_id' => '/Cobra/ptadnk/'
},
{
'dtstart' => '20210614T000000',
'evt_id' => 1031,
'dtend' => '20210619T000000',
'create_time' => '1621766670.63052',
'is_all_day' => $VAR1->{'success'},
'gps' => undef,
'ical_uid' => '20210523T124430-cafa1c1b@169.254.181.151',
'evt_repeat_setting' => {
'repeat_rule' => undef
},
'original_cal_id' => '/Cobra/ptadnk/',
'modify_time2' => '1621766684.25804',
'owner_name' => 'Cobra',
'class' => 'PUBLIC',
'from_syno_app_url' => undef,
'summary' => 'Urlaub Juni',
'priority_order' => 12,
'transp' => 'OPAQUE',
'evt_color' => '',
'dav_etag' => 'ftbdlynvwaywikosjdhuioyfwffjkvxu',
'status' => undef,
'priority' => undef,
'tz_id' => undef,
'is_repeat_evt' => $VAR1->{'data'}{'/Cobra/ptadnk/'}[0]{'is_repeat_evt'},
'owner' => 1027,
'description' => '',
'location' => '',
'percent_complete' => undef
}
]
}
}
2021.05.23 12:45:06 4: SynCal2 - Event parse mode: asynchronous
2021.05.23 12:45:06 5: SynCal2 - VCALENDAR extract of UID "20210523T123849-1b98436f@169.254.181.151":
undef
2021.05.23 12:45:06 5: SynCal2 - Single event Begin: 2021-06-10, End: 2021-06-11
2021.05.23 12:45:06 5: SynCal2 - VCALENDAR extract of UID "20210523T124430-cafa1c1b@169.254.181.151":
undef
2021.05.23 12:45:06 5: SynCal2 - Single event Begin: 2021-06-14, End: 2021-06-18
2021.05.23 12:45:06 4: SynCal2 - Argument list for SSCalWriteHoliday:
2021.05.23 12:45:06 4: SynCal2 - 4 06-14 06-18 Urlaub Juni
2021.05.23 12:45:06 4: SynCal2 - add line: 1 01-01 Neujahr
2021.05.23 12:45:06 4: SynCal2 - add line: 1 01-06 Heilige Drei Koenige
2021.05.23 12:45:06 4: SynCal2 - add line: 1 05-01 Tag der Arbeit
2021.05.23 12:45:06 4: SynCal2 - add line: 1 10-03 Tag der deutschen Einheit
2021.05.23 12:45:06 4: SynCal2 - add line: 1 11-01 Allerheiligen
2021.05.23 12:45:06 4: SynCal2 - add line: 1 12-25 1. Weihnachtstag
2021.05.23 12:45:06 4: SynCal2 - add line: 1 12-26 2. Weihnachtstag
2021.05.23 12:45:06 4: SynCal2 - add line:
2021.05.23 12:45:06 4: SynCal2 - add line: 2 -2 Karfreitag
2021.05.23 12:45:06 4: SynCal2 - add line: 2 1 Ostermontag
2021.05.23 12:45:06 4: SynCal2 - add line: 2 39 Christi Himmelfahrt
2021.05.23 12:45:06 4: SynCal2 - add line: 2 50 Pfingsten
2021.05.23 12:45:06 4: SynCal2 - add line: 2 60 Fronleichnam
2021.05.23 12:45:06 4: SynCal2 - add line:
2021.05.23 12:45:06 4: SynCal2 - add line: #####Urlaub#####
2021.05.23 12:45:06 4: SynCal2 - -> Start new list write into ./FHEM/FeiertageBW.holiday <-
2021.05.23 12:45:06 4: SynCal2 - 1 01-01 Neujahr
2021.05.23 12:45:06 4: SynCal2 - 1 01-06 Heilige Drei Koenige
2021.05.23 12:45:06 4: SynCal2 - 1 05-01 Tag der Arbeit
2021.05.23 12:45:06 4: SynCal2 - 1 10-03 Tag der deutschen Einheit
2021.05.23 12:45:06 4: SynCal2 - 1 11-01 Allerheiligen
2021.05.23 12:45:06 4: SynCal2 - 1 12-25 1. Weihnachtstag
2021.05.23 12:45:06 4: SynCal2 - 1 12-26 2. Weihnachtstag
2021.05.23 12:45:06 4: SynCal2 -
2021.05.23 12:45:06 4: SynCal2 - 2 -2 Karfreitag
2021.05.23 12:45:06 4: SynCal2 - 2 1 Ostermontag
2021.05.23 12:45:06 4: SynCal2 - 2 39 Christi Himmelfahrt
2021.05.23 12:45:06 4: SynCal2 - 2 50 Pfingsten
2021.05.23 12:45:06 4: SynCal2 - 2 60 Fronleichnam
2021.05.23 12:45:06 4: SynCal2 -
2021.05.23 12:45:06 4: SynCal2 - #####Urlaub#####
2021.05.23 12:45:06 4: SynCal2 - # Time of absence from Calendar SynCal2, updated: 2021-05-23 12:45:06
2021.05.23 12:45:06 4: SynCal2 - 4 06-14 06-18 Urlaub Juni
2021.05.23 12:45:06 4: SynCal2 - # End Time of absence from Calendar SynCal2
2021.05.23 12:45:06 4: SynCal2 - -> End new list <-
2021.05.23 12:45:06 4: SynCal2 - Opmode "eventlist" finished successfully, Sendqueue index "94" deleted.
Jo, ziemlich eindeutig ein Bug. Scheint mir dass beim ersten JSON Eintrag bei dtend die Zeitzone nicht richtig berücksichtigt wird.
Werde ich Syno mal melden.
Was ist wenn du den Dummy auf einen Nicht-Ganztagstermin umänderst ?
Da kommt die Zeit dann korrekt an, hab den Termin in der Syno von 8-9 Uhr eingetragen:
2021.05.23 12:54:14 5: SynCal2 - Calendar selection for add queue: Urlaubstage
2021.05.23 12:54:14 5: SynCal2 - Add Item to queue - Index 96:
{
'opmode' => 'eventlist',
'params' => '&cal_id_list=["/Cobra/ptadnk/"]&start=1621634400&end=1629583200&list_repeat=true',
'api' => 'EVENT',
'retryCount' => 0,
'method' => 'list'
}
2021.05.23 12:54:14 4: SynCal2 - ####################################################
2021.05.23 12:54:14 4: SynCal2 - ### start Calendar operation eventlist
2021.05.23 12:54:14 4: SynCal2 - ####################################################
2021.05.23 12:54:14 4: SynCal2 - Time selection start: 2021-05-22 00:00:00
2021.05.23 12:54:14 4: SynCal2 - Time selection end: 2021-08-22 00:00:00
2021.05.23 12:54:14 4: SynCal2 - API hash values already set - ignore get apisites
2021.05.23 12:54:14 4: SynCal2 - start SendQueue entry index "96" (eventlist) for operation.
2021.05.23 12:54:14 5: SynCal2 - HTTP-Call will be done with timeout: 20 s
2021.05.23 12:54:14 4: SynCal2 - Call-Out: http://192.168.178.10:5000/webapi/entry.cgi?api=SYNO.Cal.Event&version=3&method=list&cal_id_list=["/Cobra/ptadnk/"]&start=1621634400&end=1629583200&list_repeat=true&_sid=<secret>
2021.05.23 12:54:15 5: SynCal2 - JSON returned: {
'data' => {
'/Cobra/ptadnk/' => [
{
'tz_id' => 'Europe/Berlin',
'location' => '',
'percent_complete' => undef,
'owner' => 1027,
'is_repeat_evt' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
'description' => '',
'evt_color' => '',
'dav_etag' => 'bhxhzijpuokaaewwtlreokqnglxzmrza',
'status' => undef,
'priority' => undef,
'from_syno_app_url' => undef,
'summary' => 'Test',
'owner_name' => 'Cobra',
'modify_time2' => '1621767233.87235',
'class' => 'PUBLIC',
'transp' => 'OPAQUE',
'priority_order' => 10,
'dtend' => 'TZID=Europe/Berlin:20210610T090000',
'evt_id' => 1029,
'gps' => undef,
'create_time' => '1621766329.01902',
'is_all_day' => $VAR1->{'data'}{'/Cobra/ptadnk/'}[0]{'is_repeat_evt'},
'dtstart' => 'TZID=Europe/Berlin:20210610T080000',
'evt_repeat_setting' => {
'repeat_rule' => undef
},
'ical_uid' => '20210523T123849-1b98436f@169.254.181.151',
'original_cal_id' => '/Cobra/ptadnk/'
},
{
'percent_complete' => undef,
'location' => '',
'description' => '',
'owner' => 1027,
'is_repeat_evt' => $VAR1->{'data'}{'/Cobra/ptadnk/'}[0]{'is_repeat_evt'},
'tz_id' => undef,
'priority' => undef,
'status' => undef,
'dav_etag' => 'ftbdlynvwaywikosjdhuioyfwffjkvxu',
'evt_color' => '',
'transp' => 'OPAQUE',
'priority_order' => 12,
'summary' => 'Urlaub Juni',
'from_syno_app_url' => undef,
'class' => 'PUBLIC',
'owner_name' => 'Cobra',
'modify_time2' => '1621766684.25804',
'original_cal_id' => '/Cobra/ptadnk/',
'evt_repeat_setting' => {
'repeat_rule' => undef
},
'ical_uid' => '20210523T124430-cafa1c1b@169.254.181.151',
'gps' => undef,
'is_all_day' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
'create_time' => '1621766670.63052',
'dtend' => '20210619T000000',
'evt_id' => 1031,
'dtstart' => '20210614T000000'
}
]
},
'success' => $VAR1->{'data'}{'/Cobra/ptadnk/'}[1]{'is_all_day'}
}
2021.05.23 12:54:15 4: SynCal2 - Event parse mode: asynchronous
2021.05.23 12:54:15 5: SynCal2 - VCALENDAR extract of UID "20210523T123849-1b98436f@169.254.181.151":
undef
2021.05.23 12:54:15 5: SynCal2 - Single event Begin: 2021-06-10, End: 2021-06-10
2021.05.23 12:54:15 5: SynCal2 - VCALENDAR extract of UID "20210523T124430-cafa1c1b@169.254.181.151":
undef
2021.05.23 12:54:15 5: SynCal2 - Single event Begin: 2021-06-14, End: 2021-06-18
2021.05.23 12:54:15 4: SynCal2 - Argument list for SSCalWriteHoliday:
2021.05.23 12:54:15 4: SynCal2 - 4 06-14 06-18 Urlaub Juni
2021.05.23 12:54:15 4: SynCal2 - add line: 1 01-01 Neujahr
2021.05.23 12:54:15 4: SynCal2 - add line: 1 01-06 Heilige Drei Koenige
2021.05.23 12:54:15 4: SynCal2 - add line: 1 05-01 Tag der Arbeit
2021.05.23 12:54:15 4: SynCal2 - add line: 1 10-03 Tag der deutschen Einheit
2021.05.23 12:54:15 4: SynCal2 - add line: 1 11-01 Allerheiligen
2021.05.23 12:54:15 4: SynCal2 - add line: 1 12-25 1. Weihnachtstag
2021.05.23 12:54:15 4: SynCal2 - add line: 1 12-26 2. Weihnachtstag
2021.05.23 12:54:15 4: SynCal2 - add line:
2021.05.23 12:54:15 4: SynCal2 - add line: 2 -2 Karfreitag
2021.05.23 12:54:15 4: SynCal2 - add line: 2 1 Ostermontag
2021.05.23 12:54:15 4: SynCal2 - add line: 2 39 Christi Himmelfahrt
2021.05.23 12:54:15 4: SynCal2 - add line: 2 50 Pfingsten
2021.05.23 12:54:15 4: SynCal2 - add line: 2 60 Fronleichnam
2021.05.23 12:54:15 4: SynCal2 - add line:
2021.05.23 12:54:15 4: SynCal2 - add line: #####Urlaub#####
2021.05.23 12:54:15 4: SynCal2 - -> Start new list write into ./FHEM/FeiertageBW.holiday <-
2021.05.23 12:54:15 4: SynCal2 - 1 01-01 Neujahr
2021.05.23 12:54:15 4: SynCal2 - 1 01-06 Heilige Drei Koenige
2021.05.23 12:54:15 4: SynCal2 - 1 05-01 Tag der Arbeit
2021.05.23 12:54:15 4: SynCal2 - 1 10-03 Tag der deutschen Einheit
2021.05.23 12:54:15 4: SynCal2 - 1 11-01 Allerheiligen
2021.05.23 12:54:15 4: SynCal2 - 1 12-25 1. Weihnachtstag
2021.05.23 12:54:15 4: SynCal2 - 1 12-26 2. Weihnachtstag
2021.05.23 12:54:15 4: SynCal2 -
2021.05.23 12:54:15 4: SynCal2 - 2 -2 Karfreitag
2021.05.23 12:54:15 4: SynCal2 - 2 1 Ostermontag
2021.05.23 12:54:15 4: SynCal2 - 2 39 Christi Himmelfahrt
2021.05.23 12:54:15 4: SynCal2 - 2 50 Pfingsten
2021.05.23 12:54:15 4: SynCal2 - 2 60 Fronleichnam
2021.05.23 12:54:15 4: SynCal2 -
2021.05.23 12:54:15 4: SynCal2 - #####Urlaub#####
2021.05.23 12:54:15 4: SynCal2 - # Time of absence from Calendar SynCal2, updated: 2021-05-23 12:54:15
2021.05.23 12:54:15 4: SynCal2 - 4 06-14 06-18 Urlaub Juni
2021.05.23 12:54:15 4: SynCal2 - # End Time of absence from Calendar SynCal2
2021.05.23 12:54:15 4: SynCal2 - -> End new list <-
2021.05.23 12:54:15 4: SynCal2 - Opmode "eventlist" finished successfully, Sendqueue index "96" deleted.
Interessant, deswegen fällt sowas nur auf wenn der erste Termin in der JSON-Liste ein Ganztagstermin ist. :o
Na ob ich das den Synokollegen begreiflich rüber bringen kann :) .. mal schauen.
Danke dir auf jeden Fall für deine Mühe, schauen wir mal was die Kollegen rausfinden.
Wünsch dir noch schöne Pfingst-Feiertage.
Gruß
Cobra
Ebenso ! :D
LG
Habe eine Mitteilung an Synology erstellt. Jetzt heißt es warten ...
Hallo,
nachdem ich mich heute 2 stunden mit dem Modul rumgeärgert habe, musste ich feststellen, das die 2FA nicht unterstützt wird..Ich wollte von GOOgle Calendar zu diesem Modul wechseln. Kalender Sync etc. funktioniert einwandfrei. Nur der Zugriff aus FHEM nicht tolle Wurst...
Beste Grüße
Jürgen K.
2FA wird von der API zur Zeit nicht unterstützt. Vllt. baut Syno es später noch ein, wer weiß.
ZitatNur der Zugriff aus FHEM nicht tolle Wurst...
Was fehlt dir denn ?
Danke für die superschnelle Antwort.
Ich meinte, nachdem ich alles eingerichtet hatte, wollte ich das Modul in FHEM aktivieren..was ja leider mit 2FA nicht klappt. Der User muss ja in der Admin Gruppe sein. Somit kann ich das Modul nicht verwenden, da ich meine Sicherheitsstufe nicht ändern möchte .SCHADE!!
Beste Grüße
Jürgen K.
Hallo Jürgen,
ja das tut mir leid. Wenn Syno diese Möglichkeit bietet, baue ich sie mit ein.
Dass der User Mitglied der Admin-Gruppe sein muß, habe ich bei Synology auch schon moniert weil mir der Sinn dessen nicht aufgegangen war. Muß man sehen was sich da tut.
LG,
Heiko
Alles klar. Ich bleibe am Ball.. Vielen Dank!!
Hallo Cobra, @all,
die Synology Kollegen haben sich sehr zügig des Problems mit dem "dtend" angenommen. Sonntag Abend hatte ich die Meldung aufgegeben und die deutschen Kollegen haben die Sache auch sofort nach Taiwan ins Development Team gegeben.
Die Taiwanesischen Developer haben es sich auf meiner Syno angeschaut (ich hatte extra einen Testkalender erstellt) und bereits heute kam die Antwort:
Zitat
Dear User,
Thank you for waiting.
Our developer has confirmed the issue was due to 'dtned' got converted to local time, but 'dtstart' was converted UTC time.
Please convert 'dtend' back to UTC time before the issue is fixed.
Hope this helps and please let us know if further assistance is needed.
Yours Truly,
Technical Support
Wayne
Das Syno Team hat die Sache als Fehler aufgenommen und wird es sicherlich bald lösen. Mal schauen ob ich den vorgeschlagenen Workaround zwischenzeitlich einbaue oder ob wir einfach warten bis die Kollegen es gefixt haben.
Wenn die genauso schnell mit dem Fixen sind wie bei der Untersuchung kann ich mir den Workaround wohl sparen. ;)
Top Support insgesamt von Synology, ich bin wirklich begeistert. :)
Grüße,
Heiko
Hallo zusammen,
Syno hat vor einigen Tagen (zwei Wochen?) die neue Version 2.4.1-0817 veröffentlicht.
Nach meinen Tests besteht der Issue aber weiterhin.
Habe Syno darüber informiert.
Grüße,
Heiko
Hey Heiko,
zum Kalender bekomme ich leider auch kein Login mehr hin in DSM7.
Gibt es hier ein vergleichbares Attribut wie bei SSCam was man nehmen könnte?
Gruß Cobra
Ich hatte es befürchtet. :(
So ein Attr gibt es bisher nicht, aber ich werde es oder etwas vergleichbares kurzfristig einbauen.
Bisschen Geduld. ;)
LG
Hallo cobra,
im contrib liegt eine angepasste Version zum Test.
Ich habe die API fest adaptiert. Damit passt es auch bei zukünftigen API-Änderungen bis ich neue Features einbaue sofern Syno die Doku mal anpasst. Ist bisher noch die alte Doku verfügbar.
Brauchst also nichts setzen außer Restart nach dem Download.
Grüße,
Heiko
Hey Heiko,
konnte leider erst jetzt testen aber die neue Version funktiert bis jetzt problemlos.
Vielen Dank
Gruß Cobra
Danke für die Rückmeldung. Ich checke die V ein, dann wird sie morgen früh per Update verteilt.
LG
Hallo liebe SSCal - Nutzer Gemeinde,
ich nutze seit Jahren die alte Kalenderfunktion für verschiedenste Sachen. I.d.R. im Schema
Terminanfang: mach dies
Terminende: mach das
Das ganze wird mit einem get event ... auf das Kalenderdevice durchgeführt, gesplittet und auf Dummys getriggert.
Da ich auch ein großer Synofan bin und bereits sukzessive die SSXXX Module einatme, hatte ich mich bereits letztes Jahr am SSCAL versucht und dann an der gleichen Stelle wie dieses Jahr aufgegeben.
Unbestritten eigentlich ein "idiotensicheres" Wiki, aber ich kriege es nicht - einfach - hin.
Ziel:
Termin hat im Subjekt den Startbefehl und mach von mir aus auch nen Auto-at. Jetzt kommts, wie fange ich das Terminende ab und wo hinterlegt ich ggf. im Termin die Befehlsroutine?
Anderenfalls muss ich mir wohl wieder notifys basteln die die Eventtrigger vom SSCAL auseinander nehmen und dann wieder Routine basteln.
Danke für Feedback wenn ich etwas triviales überlesen habe.
Schönen Sonntag an alle
Hallo Seppi,
naja das ist relativ einfach. Wenn du ein automatisches AT zur Steuerung eines Devices (an/aus) nutzen willst, erstellst du zwei Kalendereinträge.
Einen Eintrag mit dem Startzeitpunkt der für "An" gelten soll mit dem dazugehörigen Startbefehl im Subjekt. Und einen weiteren Eintrag mit dem Startzeitpunkt der für "Aus" gelten soll mit dem dazugehörigen Stoppbefehl im Subjekt.
In beiden Fällen ist der Ende-Termin im Kalendereintrag nicht wichtig. Ich stelle den einfach ein paar Minuten später ein.
Im Anhang zwei Screenshots die das Vorgehen verdeutlichen. Du siehst das Einschalten und Ausschalten einer Umwälzpumpe.
Notify und andere Varianten gehen natürlich auch. Aber die automatische AT-Erstellung arbeitet komplett ohne Events was zur Entlastung des Systems beiträgt.
Grüße,
Heiko
Ich wollte nun die Tage auch mal ein Synolgy Kalender für Backups anlegen (dafür gibt es einen Wikieintrag) aber bei mir gibt es beim abholen des Kalenders wohl Probleme.
Ich nutze die DSM7.1
Was ich nicht verstehe ist warum er den default port der Syno 2x rein schreibt, dass könnte der Fehler wohl schon sein, oder.?
der User ist richtig und Status ist running
Das device holt nichts von der Synology ab, folgende Fehler sind im Log.
2022.06.16 23:43:02 3: SynControl - no session ID found - get new one
2022.06.16 23:41:52 2: SynControl - ERROR - Login or privilege of user moonsorrox unsuccessful
2022.06.16 23:41:52 2: SynControl - error while requesting http://10.0.0.33:5000:5000/webapi/entry.cgi?api=SYNO.API.Auth&version=6&method=Login&account=moonsorrox&passwd=xxxxxxxx&format="sid" - http://10.0.0.33:5000:5000/webapi/entry.cgi?api=SYNO.API.Auth&version=6&method=Login&account=moonsorrox&passwd=xxxxxxxx&format="sid": malformed or unsupported URL
hier mal ein List vom device
Internals:
CFGFN
CREDENTIALS Set
DEF 10.0.0.33:5000
FUUID 62a9f53c-f33f-b063-0df5-c0b91ee459b321a4
FVERSION 57_SSCal.pm:v2.4.9-s24736/2021-07-12
MODE Automatic
MODEL Diary
NAME SynControl
NR 1917
OPIDX 1
OPMODE listcal
PROTOCOL http
RESEND next planned SendQueue start: immediately by next entry
SERVERADDR 10.0.0.33:5000
SERVERPORT 5000
STATE <b>Status:</b> running - <b>Last Update</b>: lastUpdate - <b>Next Update</b>: Automatic - next polltime: 00:07:01
TYPE SSCal
eventCount 179
HELPER:
CALFETCHED 0
CREDENTIALS e[>|epOkFHg[WQH]3RIKmO{V6RWRC
LOGINRETRIES 3
PACKAGE FHEM::SSCal
VERSION 2.4.9
VERSION_API 1.3.0
VERSION_ErrCodes 1.3.5
VERSION_SMUtils 1.23.2
alias Synology Kalender FHEM52
asyncMode 1
createATDevs 1
cutLaterDays 2
cutOlderDays 1
event-on-update-reading .*Summary,state
group Synology-Backup
icon time_calendar
interval 400
room SSCal,Software Geräte->HWR
stateFormat <b>Status:</b> state - <b>Last Update</b>: lastUpdate - <b>Next Update</b>: nextUpdate
tableFields Begin,End,DaysLeft,Weekday,Summary,Status,Calendar
usedCalendars FHEM52-Backup
CL:
1:
Authenticated 1
AuthenticatedBy allowedWEB
AuthenticatedUser fhem
BUF
FW_ID 10062
LASTACCESS 1655415787.57192
NAME WEB_10.0.0.11_2241
NR 10062
PEER 10.0.0.11
PORT 2241
SNAME WEB
SSL
STATE Connected
TEMPORARY 1
TYPE FHEMWEB
canAsyncOutput 1
encoding UTF-8
stacktrace TcpServer_Close:325 FW_Undef:3480 FW_closeInactiveClients:3476 HandleTimeout:702
READINGS:
2022-06-16 23:42:21 state Connected
tableSpecs:
columnMapProvider GoogleMaps
columnSymbolIcon time_manual_mode
cellStyle:
columnAlign center
columnSummaryAlign left
columnSymbolAlign center
headerAlign center
noHeader 0
columnMapIcon:
HASH(0x5569d2206038)
HASH(0x5569d23ac108)
columnStateIcon:
HASH(0x5569d165e630)
HASH(0x5569d16dfe20)
HASH(0x5569d26e8498)
HASH(0x5569d1d1a6d0)
OLDREADINGS:
READINGS:
2022-06-16 23:41:37 Errorcode none
2022-06-16 23:41:37 QueueLength 17
2022-06-17 00:00:21 nextUpdate Automatic - next polltime: 00:07:01
2022-06-16 23:43:02 state running
Attributes:
alias Synology Kalender FHEM52
asyncMode 1
createATDevs 1
cutLaterDays 2
cutOlderDays 1
event-on-update-reading .*Summary,state
group Synology-Backup
icon time_calendar
interval 400
room SSCal,Software Geräte->HWR
stateFormat <b>Status:</b> state - <b>Last Update</b>: lastUpdate - <b>Next Update</b>: nextUpdate
tableFields Begin,End,DaysLeft,Weekday,Summary,Status,Calendar
tableSpecs {
"cellStyle" => {
"noHeader" => "0",
"headerAlign" => "center",
"columnAlign" => "center",
"columnSymbolAlign" => "center",
"columnSummaryAlign" => "left",
},
"columnMapIcon" => [{
"Status" => "eq 'ended' ",
"icon" => "rc_WEB@grey",
},
{
"daysLeft" => ">= 1 ",
"icon" => "rc_WEB",
}],
"columnMapProvider" => "GoogleMaps",
"columnStateIcon" => [
{
"Status" => "eq 'ended' ",
"icon" => "1px-spacer",
},
{
"Status" => "eq 'started' ",
"icon" => "10px-kreis-gruen",
},
{
"Status" => "eq 'upcoming' ",
"icon" => "10px-kreis-gelb",
},
{
"Status" => "eq 'alarmed' ",
"icon" => "10px-kreis-gruen",
},
],
"columnSymbolIcon" => "time_manual_mode",
}
usedCalendars FHEM52-Backup
Moin,
Zitat
Was ich nicht verstehe ist warum er den default port der Syno 2x rein schreibt, dass könnte der Fehler wohl schon sein, oder.?
Deine Definition ist nicht richtig. Du gibst IP und Port nur durch Leerzeichen getrennt an (Commandref), also so:
define Appointments SSCal 192.168.2.10 5001 https
Im deinem Fall der Verwendung von http und dem Standardport reicht einfach:
define SynControl SSCal 10.0.0.33
Grüße,
Heiko
Genau das hatte ich schon und dann bekomme ich den Login Error.
Habe die Anmelde Prozedur nochmal s gemacht mit
set SynControl credentials
aber es bleibt beim Login Error.
Kann er evtl. mit dem Passwort Probleme haben weil ich dort Sonderzeichen drin habe.??
Zitat
Kann er evtl. mit dem Passwort Probleme haben weil ich dort Sonderzeichen drin habe.??
Ich meine mögliche Sonderzeichen berücksichtigt zu haben. Aber nobody ist perfekt.
Wenn du das Attr showPassInLog setzt. siehst du das Passwort was an die Syno übermittelt wird im Log.
Falls da etwas nicht passt bitte Bescheid geben. Du kannst auch eine Auszug aus dem Log posten und das PW durch *** ersetzen.
Das müssen wir ja nicht sehen.
Danke für dein Unterstützung..!
Ja egal was ich einstelle bei showPassInLog ob nun "1" oder "0" es wird im log gar kein Passwort übermittelt.
Die Fehler im log sehen so aus.
2022.06.17 12:43:49 2: SynControl - ERROR - Login or privilege of user moonsorrox unsuccessful
2022.06.17 12:43:49 3: SynControl - Login of User moonsorrox unsuccessful. Code: 400 - No such account or the password is incorrect - try again
2022.06.17 12:43:47 2: SynControl - ERROR - Login or privilege of user moonsorrox unsuccessful
2022.06.17 12:43:47 3: SynControl - Login of User moonsorrox unsuccessful. Code: 400 - No such account or the password is incorrect - try again
Sorry, du musst auch verbose 4 oder 5 im Device einschalten, sonst sind die Meldungen nicht so ausführlich.
Alles klar sieht schon besser aus, dass übertragene Passwort ist richtig
2022.06.17 12:49:27 4: SynControl - Call-Out now: http://10.0.0.33:5000/webapi/entry.cgi?api=SYNO.API.Auth&version=6&method=Login&account=moonsorrox&passwd=xxxxxxxxxxx&format="sid"
2022.06.17 12:49:27 4: SynControl - HTTP-Call login will be done with httptimeout-Value: 60 s
2022.06.17 12:49:27 4: SynControl - Credentials read from RAM: moonsorrox xxxxxxxxxx
2022.06.17 12:49:27 4: SynControl - --- Begin Function login ---
2022.06.17 12:49:27 3: SynControl - Login of User moonsorrox unsuccessful. Code: 400 - No such account or the password is incorrect - try again
};
'success' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
},
'code' => 400
'error' => {
2022.06.17 12:49:27 5: SynControl - JSON decoded: $VAR1 = {
Mir wäre zwar jetzt neu dass die API bestimmte Sonderzeichen nicht "verträgt". Aber testen kannst du es ja mal ohne.
Welche verwendest du denn ?
ich verwende die '#'
Hmm, ist jetzt m.M. nach nichts besonderes. Zumal sie ja richtig der API übergeben werden.
Kannst du nur mal ohne dieses Zeichen testen.
warte ich mache mal kurz ein neues einfaches Passwort in die Synology
OK ich habe jetzt das Passwort geändert und es funktioniert, er holt erst mal Kalender ab und auch kein Login Fehler mehr
Er hat also unter DSM7.1 mit dem Login und der Raute '#' ein Problem.
Ja Mist das konnte ich nicht wissen..!
Ja, ich auch nicht. ;)
Ich versuche es mal übers WE bei mir nachzustellen und wenn ich zum gleichen Ergebnis komme erstelle ich einen Hinweis in Commandref / Wiki bzw. schreibe mal an Syno.
LG
Ich werde mal mit einem anderen Account auf der Synology den Benutzer moonsorrox komplett löschen und nochmal neu erstellen und vergebe ein Passwort mit der # und melde mich hier ob das dann evtl. funktioniert.
Ich habe jetzt nochmal komplett einem neuen Benutzer auf der Synology erstellt und das passwort mit Sonderzeichen '#' aber es funktioniert dann der Login nicht mehr.!
Bekomme also weiterhin einen login Fehler
2022.06.17 18:03:31 2: SynControl - ERROR - Login or privilege of user moonsorrox unsuccessful
2022.06.17 18:03:31 4: SynControl - Credentials read from RAM: moonsorrox xxxxxx#xxxxxx#
2022.06.17 18:03:31 4: SynControl - --- Begin Function login ---
2022.06.17 18:03:31 3: SynControl - Login of User moonsorrox unsuccessful. Code: 400 - No such account or the password is incorrect - try again
Ich konnte das von dir gemeldete Problem bei mir nachstellen bzw. bestätigen und habe bei Synology ein Ticket aufgemacht.
Mal schauen was die Kollegen antworten.
LG,
Heiko
Vielen Dank für die Unterstützung, mal schauen wie lange das wohl dauert ;)
Bin auch gespannt. ;)
Das betrifft übrigens auch Zeichen wie "&", also reservierte Zeichen im URL-Umfeld. Mit URL-Encoding habe ich es schon versucht, was aber nicht funktioniert hat. Zeichen wie "{}" funktionieren problemlos.
Ich vermute die Problemzeichen müssen irgendwie escaped werden was aber nicht beschrieben ist. Wir werden sehen ...
Synology hat sehr zügig auf mein Ticket geantwortet und hat auch die Lösung mitgeteilt. Es müssen im Passwort die Zeichen
+ / ? % # & =
kodiert werden.
Ich bin jetzt erst dazu gekommen es zu implementieren und zu testen.
Im Prinzip trifft es für alle Sysnology Module zu. Deswegen gibt es morgen früh eine neue Version SMUtils im Update.
Damit sollte das Problem dann beseitigt sein und du/ihr könnt diese Zeichen im PW verwenden.
Grüße,
Heiko
vielen Dank
ich habe mal das Update heute gemacht und mein Login Error ist erstmal weg.
Nun kann ich mal weiter konfigurieren ob das nun auch alles funktioniert.
Hallo DS_Starter,
ich habe das selbe Problem wie THZ_Haus im Dezember 2020:
Zitat von: THZ_Haus am 15 Dezember 2020, 17:08:57
Hallo,
im Log von FHEM stehen folgende Infos:
2.15 16:33:57 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in numeric le (<=) at ./FHEM/57_SSCal.pm line 1813.
2020.12.15 16:33:57 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in subtraction (-) at ./FHEM/57_SSCal.pm line 1814.
2020.12.15 16:33:57 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in addition (+) at ./FHEM/57_SSCal.pm line 1817.
2020.12.15 16:53:57 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in numeric le (<=) at ./FHEM/57_SSCal.pm line 1813.
2020.12.15 16:53:57 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in subtraction (-) at ./FHEM/57_SSCal.pm line 1814.
2020.12.15 16:53:57 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in addition (+) at ./FHEM/57_SSCal.pm line 1817.
Kann mir da aber keinen reim raus machen!?
Ich habe täglich nach jeder Aktualisierung des Kalenders folgendes im Log stehen:
2022.07.15 11:35:14 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in numeric le (<=) at ./FHEM/57_SSCal.pm line 1822.
2022.07.15 11:35:14 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in addition (+) at ./FHEM/57_SSCal.pm line 1826.
2022.07.15 11:35:14 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in subtraction (-) at ./FHEM/57_SSCal.pm line 1823
Ich habe einige wiederkehrende Termine die auch auf verschiedenen Wochentagen liegen. Habe diese aber auch schon gelöscht und neu angelegt und auch mit cutOlderDays und cutLaterDays versucht einzugrenzen. Aber der Fehler kommt sogar, wenn ich auf einen Tag eingrenze an dem gar keine Termine liegen, also auch keine abgerufen werden. Hast du irgendeine Idee an was das liegen könnte?
Das Modul funktioniert einwandfrei, auch mit der Fehlermeldung. Die ist nur etwas lästig, weil sie halt jeden Tag auftaucht und mir das Log vollspammt ;-) Und unterdrücken kann ich die ja nicht...
Vielen Dank schonmal.
Hallo,
ich habe dir eine Testversion in meinem contrib bereitgestellt.
Zum Download in der FHEMWEB Kommandozeile inklusive der Anführungszeichen angeben und danach FHEM restarten:
"wget -qO ./FHEM/57_SSCal.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/57_SSCal.pm"
Mit verbose 1 gibt es dann eine Logausgabe:
<name> - TEST - rByDay: ....
Poste dann bitte die Logausgabe. Damit sehe ich hoffentlich mehr.
Es hilft auch wenn du die Definition eines Beispieltermins aus deinem Kalender postest.
Der Inhalt kann anonym sein, den muss ich nicht wissen.
Grüße,
Heiko
Hallo,
habe mir die Testversion geladen. Das Log gibt jetzt folgendes aus:
2022.07.15 21:37:19 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in concatenation (.) or string at ./FHEM/57_SSCal.pm line 1810.
2022.07.15 21:37:19 1: Cal_Syno - TEST - rByDay: 1SU, numOfAppointmentDay:
2022.07.15 21:37:19 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in numeric le (<=) at ./FHEM/57_SSCal.pm line 1822.
2022.07.15 21:37:19 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in addition (+) at ./FHEM/57_SSCal.pm line 1826.
2022.07.15 21:37:19 1: PERL WARNING: Use of uninitialized value $numOfAppointmentDay in subtraction (-) at ./FHEM/57_SSCal.pm line 1823.
2022.07.15 21:37:19 1: Cal_Syno - TEST - rByDay: 1SA, numOfAppointmentDay:
2022.07.15 21:37:19 1: Cal_Syno - TEST - rByDay: 1MO, numOfAppointmentDay:
2022.07.15 21:37:19 1: Cal_Syno - TEST - rByDay: 2SA, numOfAppointmentDay:
Zum Beispiel ein 2-wöchentlicher Termin:
2022-07-15 21:37:19 7_01_Summary <TITLE>
2022-07-15 21:37:19 7_05_Begin 2022-07-18 09:00:00
2022-07-15 21:37:19 7_10_End 2022-07-18 10:00:00
2022-07-15 21:37:19 7_15_Timezone Europe/Paris
2022-07-15 21:37:19 7_17_Status upcoming
2022-07-15 21:37:19 7_20_daysLeft 3
2022-07-15 21:37:19 7_25_daysLeftLong in 3 Tagen
2022-07-15 21:37:19 7_30_Weekday Montag
2022-07-15 21:37:19 7_50_isAllday 0
2022-07-15 21:37:19 7_55_isRepeatEvt 1
2022-07-15 21:37:19 7_70_repeatRule FREQ=WEEKLY;WKST=MO;INTERVAL=2;BYDAY=MO
2022-07-15 21:37:19 7_80_0_notifyDateTime 2022-07-18 09:00:00
2022-07-15 21:37:19 7_90_calName My Calendar
2022-07-15 21:37:19 7_95_IcalUID XXXXXXX
2022-07-15 21:37:19 7_98_EventId 6365
2022-07-15 21:37:19 7_99_---------------------- --------------------------------------------------------------------
Ein wöchentlicher Termin:
2022-07-15 21:42:07 1_01_Summary <TITLE>
2022-07-15 21:42:07 1_05_Begin 2022-07-15 13:00:00
2022-07-15 21:42:07 1_10_End 2022-07-15 14:00:00
2022-07-15 21:42:07 1_15_Timezone Europe/Berlin
2022-07-15 21:42:07 1_17_Status ended
2022-07-15 21:42:07 1_20_daysLeft 0
2022-07-15 21:42:07 1_25_daysLeftLong in 0 Tagen
2022-07-15 21:42:07 1_30_Weekday Freitag
2022-07-15 21:42:07 1_50_isAllday 0
2022-07-15 21:42:07 1_55_isRepeatEvt 1
2022-07-15 21:42:07 1_70_repeatRule FREQ=WEEKLY;WKST=MO;BYDAY=FR
2022-07-15 21:42:07 1_80_0_notifyDateTime 2022-07-15 12:45:00
2022-07-15 21:42:07 1_90_calName Gemeinsam
2022-07-15 21:42:07 1_95_IcalUID XXXXXX
2022-07-15 21:42:07 1_98_EventId 6093
2022-07-15 21:42:07 1_99_---------------------- --------------------------------------------------------------------
Vielen Dank.
Ja, danke. Schaue ich mir an.
Schönen Abend
Guten Morgen,
es gelingt mir nicht das Problem nachzustellen.
Die Probetermine habe ich bei mir angelegt und es funktioniert tadellos.
Mir ist aufgefallen, dass der relevante Parameter BYDAY=MO so gesetzt wird wie es vorgesehen ist, was auch bei dir der Fall ist.
Allerdings sind bei dir auch Einträge vorhanden, die z.B. rByDay: 1MO (d.h. wäre BYDAY=1MO) enthalten. Diese Einträge verursachen die Fehlermitteilung durch die Ziffer vor dem Wochentagskürzel. Im einfachsten Fall könnte ich Ziffern eleminieren, würde aber gern verstehen woher sie kommen.
Kann es sein, dass es alte Einträge sind, die nicht mit dem Synology Kalender angelegt wurden ?
Kannst du bitte einen Screenshot des Kalendereintrags machen wie ich ihn beispielhaft hier angehängt habe ?
Ich konnte jetzt das Problem identifizieren und beheben.
Es kam bei einem monatlich wiederholenden Termin mit Wiederholungsintervall "Tag der Woche" vor. (Screenshot)
Eine korrigierte Version zum Test liegt wieder im Contrib.
Guten Morgen,
super, das ging ja schnell. Habe jetzt keine Fehlermeldung mehr.
Ich lege meine Termine in der Regel am Handy an (Android, App: Business Calender 2). Und ich habe tatsächlich auch monatliche Termine, die an bestimmten Wochentagen kommen. Die waren jetzt aber eigentlich nicht in der Auswahl, die ich mit CutOlder/YoungerDays eingeschränkt hatte... :o
Funktioniert (auch ohne CutXxxDays, also mit Standard-Intervall und inklusive mindestens einem monatlichen Termin mit Wochentag im Intervall), werde es noch beobachten und mich melden, falls doch noch etwas auffällig ist.
Dir erstmal vielen Dank und ein schönes Wochenende!
Danke für die Rückmeldung. Ich checke die neue Version im Laufe des Tages ein sodass der Fix morgen früh im Update enthalten ist.
Zitat
...
Die waren jetzt aber eigentlich nicht in der Auswahl, die ich mit CutOlder/YoungerDays eingeschränkt hatte...
Ja, nur intern werden die Daten die der Kalender liefert zunächst bewertet und führten zu der Fehlermeldung.
Falls noch etwas auffallen sollte sagst einfach Bescheid.
Die auch ein schönes WE.
LG
Ich hatte heute mal ein Fhem Update gemacht und habe seitdem jede Menge Meldungen im Log, ich habe auch gesehen das beim Update das SSL Modul dabei war.
Diese Einträge hatte ich bisher so nie dabei, was muss ich hier machen, damit die Einträge nicht mehr kommen.?
Die Logeinräge sehen so aus
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-05 18:00:00, end: 2022-07-05 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-06 18:00:00, end: 2022-07-06 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-07 18:00:00, end: 2022-07-07 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-08 18:00:00, end: 2022-07-08 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-09 18:00:00, end: 2022-07-09 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-10 18:00:00, end: 2022-07-10 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-12 18:00:00, end: 2022-07-12 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-13 18:00:00, end: 2022-07-13 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-14 18:00:00, end: 2022-07-14 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-15 18:00:00, end: 2022-07-15 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-16 18:00:00, end: 2022-07-16 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-17 18:00:00, end: 2022-07-17 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-19 18:00:00, end: 2022-07-19 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-20 18:00:00, end: 2022-07-20 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-21 18:00:00, end: 2022-07-21 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-22 18:00:00, end: 2022-07-22 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-23 18:00:00, end: 2022-07-23 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-24 18:00:00, end: 2022-07-24 18:15:00)
2022.07.26 18:14:35 4: SynControl - Ignore WEEKLY event - out of selected time LIMITS (Backup FHEM IP10.0.0.52 (inkrementelle Sicherung) , start: 2022-07-29 18:00:00, end: 2022-07-29 18:15:00)
2022.07.26 18:14:35 4: SynControl - Recurring params - FREQ: MONTHLY, COUNT: 9999999, INTERVAL: 1, BYMONTHDAY: 17, BYDAY: , UNTIL:
2022.07.26 18:14:35 4: SynControl - Ignore MONTHLY event - out of selected time LIMITS (Backups FHEM IP10.0.0.52 Vormonat löschen , start: 2022-06-17 10:15:00, end: 2022-06-17 10:30:00)
2022.07.26 18:14:35 4: SynControl - Ignore MONTHLY event - out of selected time LIMITS (Backups FHEM IP10.0.0.52 Vormonat löschen , start: 2022-07-17 10:15:00, end: 2022-07-17 10:30:00)
2022.07.26 18:14:35 4: SynControl - Ignore MONTHLY event - out of selected time LIMITS (Backups FHEM IP10.0.0.52 Vormonat löschen , start: 2022-08-17 10:15:00, end: 2022-08-17 10:30:00)
2022.07.26 18:14:35 4: SynControl - Opmode "eventlist" finished successfully, Sendqueue index "25" deleted.
2022.07.26 18:14:35 4: SynControl - delete device: SSCal.SynControl.1036.20220727T180000
2022.07.26 18:14:35 4: SynControl - delete device: SSCal.SynControl.1036.20220728T180000
2022.07.26 18:14:35 4: SynControl - Command detected. Create device "SSCal.SynControl.1036.20220727T180000" with type "at".
2022.07.26 18:14:35 4: SynControl - Command detected. Create device "SSCal.SynControl.1036.20220728T180000" with type "at".
2022.07.26 18:14:44 3: resource, /lights/bridge_HUESensor28, not available
Das ist eine normale Ausgabe mit verbose 4 sofern wie ausgeschrieben die time LIMITS in den Attr cutLaterDays bzw. cutOlderDays überschritten werden.
verbose 3 oder kleiner im Device setzen.
LG
Ich möchte ich erst einmal für die Synology Module recht herzlich bedanken, gerne nutze ich schon lange die Integration.
Ich nutze auch die Urlaub/Abwesenheiten automatisiert in holiday Device Steuerdatei übernehmen Funktion aus dem Wiki.
Wie kann ich die Funktion dahingehend einschränken, nur auf einen bestimmten Kalender zuzugreifen und nicht alle Kalender auszuwerten?
Danke
Fredi69
Hallo Fredi,
freut mich wenn dir die Module hilfreich sind. :)
Zitat
Wie kann ich die Funktion dahingehend einschränken, nur auf einen bestimmten Kalender zuzugreifen und nicht alle Kalender auszuwerten?
Einfach den/die relevanten Kalender der Syno über das Attr usedCalendars auswählen.
LG
Heiko
Zitat von: DS_Starter am 11 August 2022, 09:59:04
Einfach den/die relevanten Kalender der Syno über das Attr usedCalendars auswählen.
Danke, aber ich will ja nur bei der Urlaubserkennung (Routine SSCalToHoliday) auf einen Kalender einschränken oder stehe ich auf dem Schlauch?
Na eher stehe ich auf dem Schlauch ;)
Hatte es falsch verstanden.
Nein, zur Zeit geht das nicht, aber ich werde mir es kurzfristig anschauen damit man das machen kann.
LG
Zitat von: DS_Starter am 11 August 2022, 09:59:04
Einfach den/die relevanten Kalender der Syno über das Attr usedCalendars auswählen.
Ich habe mir erstmal so beholfen, in dem ich eine zweite Instanz von SSCal aufgesetzt habe und über das Attr usedCalendars nur den einen gewünschte Kalender ausgewählt habe.
Das ist schon der richtige Weg um einen bestimmten Kalender auf der Syno auszuwählen mit dem man arbeiten will.
Man kann mehrere/viele SSCal-Devices anlegen je nach Bedarf.
Ich war der Meinung du hast verschiedene Holiday-Devices und wolltest eines davon als Ziel für Einträge auswählen oder hatte ich das falsch interpretiert ?
Nein, ich wollte in der Routine SSCalToHoliday nur einen Kalender auswerten, nicht alle Kalender.
Ja dann passt es so wie du es gemacht hast. Genau dazu ist das Attr usedCalendars gedacht.
Works as designed.
LG
Guten Abend,
ich suche jetzt schon länger einen Hinweis, wie ich ein SSCAL-Kalender in ftui einbinde. Die Subroutine SSCal_calAsHtml versteh ich nicht zu nutzen. Vielleicht ist es so einfach, dass bisher niemand ein Wort darüber verloren hat, aber ich stehe zu dem Thema total auf dem Schlauch. Alle Suchen sowohl im Forum, Wiki als auch Google brachten mir keinen Hinweis. Mag vielleicht jemand einem Anfänger wie mir da einen Tipp geben. Ich würde mich sehr freuen und danke schon mal ganz herzlich!!!
Grüße
Holger
Guten Morgen,
ich persönlich nutze FTUI nicht (nehme Dashboard) und kann dir nicht sagen ob mein Hinweis 100%ig funktioniert.
Aber ein Weg wäre zunächst ein Weblink Device anzulegen.
Dafür bietet SSCal die Funktion an, siehe Hilfe zu "get ... calAsHtml", zum Beispiel:
Zitatdefine SynCal.Abfall.WBL weblink htmlCode { FHEM::SSCal::calAsHtml ("SynCal.Abfall") }
Die weblink Erstellung habe ich auch im Wiki beschrieben: https://wiki.fhem.de/wiki/SSCal_-_Integration_des_Synology_Calendar_Servers#Termintabelle_als_Weblink_einf.C3.BCgen
Dieses Weblink Device kannst du dann in FTUI einbinden.
Ich habe dafür diesen Beitrag https://forum.fhem.de/index.php?topic=111803.0 bzw. diese Seite: https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/iframe gefunden. Vllt. hilft das.
Sicherlich gibt es dafür noch weitere Wege.
LG,
Heiko
Guten Abend Heiko,
ich komme erst jetzt dazu, mich für Deine Antwort zu bedanken. Leider klappt es bei mir nicht:
define SynCalFamWBL weblink htmlCode { SSCal_calAsHtml ("FamCal") }
# CFGFN
# DEF htmlCode { SSCal_calAsHtml ("FamCal") }
# FUUID 639b7bac-f33f-3b3e-6413-8d346ddee943e72c
# LINK { SSCal_calAsHtml ("FamCal") }
# NAME SynCalFamWBL
# NR 459
# STATE initialized
# TYPE weblink
# WLTYPE htmlCode
#
setstate SynCalFamWBL initialized
Bringt nur einen Fehler "Undefined subroutine &main::SSCal_calAsHtml called at (eval 43389134) line 1."
Hättest Du vielleicht noch einen Tipp für mich zur Definition?
Danke vielmals
Holger
Du musst es so schreiben
FHEM::SSCal::calAsHtml
Das Wiki muss ich ändern sehe ich gerade ...
Grüsse,
Heiko
Lieben Dank Heiko, so weit hat es geklappt.
Jetzt stecke ich an der gleichen Stelle wie macfly mit Antwort 5 https://forum.fhem.de/index.php/topic,111803.msg1060705.html#msg1060705. Ich sehen nichts, was mit http beginnt. Außerdem komme ich nach einem Aufruf eines anderen FHEM-Raumes nicht mehr an die Definition des Weblinks. Außer in fhem.cfg zu löschen und neu zu definieren, habe ich da keine Idee.
Antwort 6 habe ich versucht, Fehlermeldung im FTUI: File not found ./www/tablet/undefined Wahrscheinich verstehe ich die Antwort nicht, bzw. kann sie nicht umsetzen:
<div data-type="iframe" data-device="SynCalFamWBL" data-url="http://fhem.de"></div>
Grüße
Holger
Hallo Holger,
wie gesagt verwende ich FTUI nicht und kann dir da leider nicht weiterhelfen.
Wahrscheinlich müsstest du Fragen zur Einbindung eines Weblink Devices in einem FTUI Forum platzieren.
Zitat
Außerdem komme ich nach einem Aufruf eines anderen FHEM-Raumes nicht mehr an die Definition des Weblinks. Außer in fhem.cfg zu löschen und neu zu definieren, habe ich da keine Idee.
Die Aussage verstehe ich nicht. Löschen und neu definieren ist nicht zielführend und mit Sicherheit nicht nötig.
Wenn man den Namen des Devices kennt, kann man mit "list <Name>" jederzeit die Definition des Dev aufrufen und über einen Link zur Detailseite des Dev verzweigen.
LG