Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Oha, so kryptisch sollte das nicht sein. Wie sieht denn deine plugin.yaml aus?
Wenn du dort einen Kalender definierst, zB mit calendars: ALIAS:https://abc.com/bla.ics, dann sollte der Dateiname ALIAS sein. Du kannst dann in der Logik jedenfalls auch den Alias verwenden.
mag die kalender url nicht posten, weil die auf meine location rückschlüsse zulässt ich denke es ist die url, da im plugin wohl irgendwie die url zerlegt wird zum dateinamen.. meine hat recht viele parameter..
den alias teste ich gleich mal.. ist mir irgendwie durchs raster gefallen
hmm irgendwie mag das nicht.. string sieht jetzt so aus
Zum einen könnten die Hochkommas stören, zum anderen darf wohl kein Abstand nach dem ersten Doppelpunkt sein. Das könnte man wohl noch verbessern. Aber teste dann bitte mal so. Kannst du die URL trotzdem mal posten mit anderen Parametern halt, also statt deiner PLZ eine andere o.ä.? Kann schon sein, dass beim Zerlegen was nicht passt.
die hochkommas wurden automatisch gesetzt, habs via admin if konfiguriert. ist ja ein yaml string.. das leerzeichen rauszunehmen hats jetzt gefixt.. muss mal die tage schauen, ob man das an der stelle nicht robuster machen kann
Ja, mit einem Strip sollte das meiste erledigt sein. Ich bau grad rum. Fange auch noch ab, falls man keinen String, sondern ein dict erstellt, also via
Code:
- alias: httpx:blabla
psilo Die Downloaddatei orientiert sich nun an der Domäne statt am Namen der "ics" Datei. Jetzt sollte das auch bei dir funzen, wenn du keine Alias nutzt. Siehe https://github.com/smarthomeNG/plugins/pull/239
Zuletzt geändert von Onkelandy; 04.06.2019, 10:03.
Hast du das eigentlich noch probiert, psilo ? Klappt nun alles?
Ich habe bei mir ein ganz sonderbares Phänomen. Und zwar kann alle 2 Stunden die ics Datei nicht heruntergeladen werden. Ich habe nicht die geringste Ahnung, woran das liegt. Ich habe va. letzte Nach mal parallel die Datei mit wget alle 10 Sekunden herunter geladen. Da gab es nicht einen Ausfall. Gerade auch zum "kritischen" Zeitpunkt, wo das Plugin versagt hat, konnte die Datei normal herunter geladen werden. Äußerst sonderbar... Irgendwer ne Idee?
Code:
2019-09-19 01:25:23 WARNING lib.network Error sending GET request to https://.. HTTPSConnectionPool(host='outlook.office365.com', port=443): Read timed out. (read timeout=60)
2019-09-19 01:25:23 WARNING lib.network Download error: https://..
2019-09-19 01:25:23 ERROR plugins.ical Could not download online ics file https://..
2019-09-19 03:25:23 WARNING lib.network Error sending GET request to https://.. HTTPSConnectionPool(host='outlook.office365.com', port=443): Read timed out. (read timeout=60)
2019-09-19 03:25:23 WARNING lib.network Download error: https://..
2019-09-19 03:25:23 ERROR plugins.ical Could not download online ics file https://..
Hab bei meinem ICS File das Phänomen, dass eine zu lange Zeile umgebrochen wird. z.B.:
Code:
DESCRIPTION:Feiertag im Sinne des Bundesgesetzes und somit ein arbeitsfreier Tag für gesamt Österreich.\nThe
following information couldn’t be added
UID:54c0af291e76
Es fällt auf, dass die Fortsetzung der Zeile mit einem Leerzeichen beginnt.
Ich denke, mit ical = ical.replace("\r ", "").replace("\n ", "") kann ich das Problem beheben. Frage ist, ob es irgendwas anderes zerschießen kann. Any ideas? Hat sonst jemand das Phänomen? Am besten zu testen, indem das ICS File direkt heruntergeladen und im Texteditor betrachtet wird.
ich habe ein Problem festgestellt, dass vom iCal-Plugin nicht robust behandelt, bzw. von Google falsch exportiert wird.
Ggf. ist es "nur" eine Google Calendar Einstellung, die ich bislang nicht gefunden habe. Auffälligkeit: Einzeltermin werden bzgl. ihrer Zeitzone nicht richtig in SmarthomeNG übernommen.
Mein Ziel:
- Einzeltermine und
- Serientermine
in SmarthoneNG mit iCal einlesen, um eine Wecker Logik durchzuführen.
Was habe ich gemacht
a) Einzeltermin angelegt 10:01 Uhr
b) Einzeltermin angelegt und anschließend die Zeitzone ausgewählt 10:02 Uhr
c) Serientermin angelegt : 10:00 Uhr
Was ist im Kalender .ics export enthalten, folgendes:
Habe einen Workaround für das iCal Plugin in die Funktion "_parse_date" geschrieben, der bei mir funktioniert.
Code:
[MARKIEREN]import pytc[/MARKIEREN]
def _parse_date(self, val, dtzinfo, par=''):
if 'T' in val: # ISO datetime
val, sep, off = val.partition('Z')
dt = datetime.datetime.strptime(val, "%Y%m%dT%H%M%S")
else: # date
y = int(val[0:4])
m = int(val[4:6])
d = int(val[6:8])
dt = datetime.datetime(y, m, d)
if par.startswith('TZID='):
tmp, par, [MARKIEREN]mytimezone [/MARKIEREN]= par.partition('=')
[MARKIEREN] local_tz = pytz.timezone(mytimezone)
dt = local_tz.localize(dt) [/MARKIEREN]
[MARKIEREN] else:
utc_tz = pytz.timezone('UTC')
dt = utc_tz.localize(dt)[/MARKIEREN]
#dt = dt.replace(tzinfo=dtzinfo) # removed and exchanged with astimezone
[MARKIEREN]dt = dt.astimezone(dtzinfo)[/MARKIEREN]
return dt
Der Workaround darf gerne ins Plugin integriert werden, wenn ihr den Fehler bei euch auch feststellt...
Ggf. wäre eine Implementierung ohne zusätzliche Lib "pytc" möglich.
Mal eine ggf. unbedarftere Frage: ich habe das Plugin konfiguriert, es liest lokale und Remote-Kalender von nextcloud.
Tatsächlich brauche ich vorrangig die Information, ob gerade Schulferien sind oder Feiertage oder ggf. im Kalender "Familie" ein Eintrag "Urlaub" aktiv.
Letzteres bekomme ich gem. Doku mit einer Logik hin, wenn ich den Kalender einbinde und abfrage, ob das Kalenderitem aktiv ist und falls ja, ob der aktive Termin "Urlaub" heißt bzw. mit "Urlaub" anfängt - richtig?
Habt ihr eine praktikable Lösung für die anderen Angaben?
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar