NEWS
neuer Adapter webCal
-
ich habe ein script geschrieben, welches eine webseite einliest und diese wird dann verwandelt und über den adapter hochgeladen - zuvor werden alle termine des tages gelöscht - so kommen dann veränderungen , die auf der webseite eingegeben worden sind, in den eigenen kgoogle calender
ja die grafische ansicht ist nur lesend - die daten kommen ja von der webseite und werden in den google kalender eingetragen - damit werden am händy die alarme erzeugt und somit ist man up-to-date. zusätzlich kann man über ical adapter den kalender in der vis anzeigen oder auf dem handy die google kalender app öffnen
-
Hallo zusammen,
ich sehe zwar im Protkoll "found 1 calendar objects" aber in der events-object-struktur ist kein eintrag.
mache ich da was falsch?
EDIT: anscheinend stimmt da was anderes nicht:
aber die debug ausgabe sieht ok aus
was kann ich da machen?
Ich möchte eigentlich eine Terminerinnerung bauen für bestimmte Kalender Einträge. Hat das evtl. schon mal jemand gemacht und kann mir einen Tipp geben, wie man das angeht?
Viele Grüße
Christoph -
@chris299 du hast doch gar keine events definiert?
Einfach ein event definieren und dann kannst du an den entsprechenden dp ein binding machen und dich benachrichtigen lassen
Die warnings kannst du erstmal ignorieren,die basteln da gerade an der json config. -
@dirkhe danke für den Hinweis, ich habe anscheinend noch nicht verstanden wie der Adapter funktioniert.
allerdings kann ich garkeine Events anlegen:
führt zu
die konsolenfehlermeldung muss ich noch rausfinden...
-
@chris299 habde gerade bei mir das gleiche. Das hat dann wahrscheinlich mit der neuesten js controller version zu tun, wie gesagt, die spielen da gerade mit der config rum.
Ich schaue mir das an -
Also das ist auf jeden Fall ein Bug im admin controller. Die Warnung konnte ich eliminiere und hat damit nichts zu tun, kannste also ignorieren.
Den bug versuche ich jetzt mal genauer zu lokalisieren und muß dann ein issue auf github aufmachen, damit die das Fixen können. Die Selectbox wird nicht mehr korrekt aufgebaut, zumindest, wenn der Inhalt dynamisch ist. -
@dirkhe So ganz kann ich zwar nicht nachvollziehen, was die da machen, aber ich konnte es fixen, indem ich den default wert von false auf "" geändert habe. Ich frage mich nur, warum die den dafault wert anziehen, wenn sie doch vom Adapter eine Antwort bekommen, auch wenn das Array leer ist...
Aber wenn du willst, kannst du die die Version direkt vom git ziehen, dann geht es wieder -
@dirkhe danke, jetzt geht es.
Jetzt muss ich nur noch raus finden, wie man zu einem Event eine Erinnerung erstellt, d.h. zu einer Zeit x vor dem Event ein Blockly getriggert bekommt
hättest du da evtl. einen Tipp, wie man das ansetzt? -
@chris299 Mit Blocky kann ich nicht dienen, ist mir zu kompliziert.
Aber du hast ja die ganzen Datenpunkte:
Da kannst dann auf Änderung hören und sobald die Gefüllt sind, kanst du dir eine Benachrichtigung schicken
In JS zb. so(function(){ const id_alexaBad= "alexa2.0.Echo-Devices.xxxxxxxxxxx."; const id_alexaKueche= "alexa2.0.Echo-Devices.xxxxxxxxxxx."; const id_cal= 'webcal.0.events.'; schedule({hour: 19, minute: 0}, function(){ ['Restabfall','Bioabfall', 'Papiertonne','GelbeTonne'].forEach(function(value){ if (getState(id_cal + value + '.1' ).val != "" ){ setState(id_alexaKueche + 'Commands.speak', '60;Morgen ist ' + value); setState(id_alexaBad + 'Commands.speak', '60;Morgen ist ' + value); } }) }); schedule({hour: 7, minute: 0}, function(){ ['Restabfall','Bioabfall', 'Papiertonne','GelbeTonne'].forEach(function(value){ if (getState(id_cal + value + '.0').val != "" ){ setState(id_alexaKueche + 'Commands.speak', '60;Heute ist ' + value); setState(id_alexaBad + 'Commands.speak', '60;Heute ist ' + value); } }) }); })();
Du kannst natürlich auch direkt auf.now schauen, das wird gefüllt, sobald das Ereignis eintritt. Das habe ich in meinem obigen Beispiel nicht gemacht, weil ich die Benachrichtigung zu einer bestimmten Zeit haben wollte.
Also setzte mal so ein Ereignis und schaue dir die Datenpunkte an
-
@dirkhe vielen Dank, ich hbe es dann mit einem blockly auch hinbekommen. Hat zuerst auch super funktioniert, aber heute sind die Einträge im Kalender fehlerhaft und seltsam: irgendwie doppelt und dreifach, obwohl heute eigentlich garkein termin sein sollte.
der Kalender:
und dann solche Ergebnisse im adapter datenpunkt (debug log):
Im Ergebnis habe ich dann im Datenpunkt "heute" einen bzw. sogar mehrere Einträge
von 08:00 bis um 12:30, von 08:00 bis um 12:30, von 08:00 bis um 12:30, von 08:00 bis um 12:30, von 08:00 bis um 12:30
die da aber nicht sein sollten....
Es hndelt sich um 5 Terminserien (mo-fr, jeweils eine mit wöchentlicher Wiederholung. Gestern und heute sind als Ausnahmen gelöscht worden.)Mache ich da was falsch?
sieht für mich allerdings eher nach einer fehlerhaften Interpretation von wiederkehrenden Terminen aus... -
@chris299 sieht merkwürdig aus. Ich habe letztens die ical version hochgehoben, vlt hat sich da was verändert. Ich kann mal versuchen, das bei mir nachzustellen.
-
@dirkhe Also es ist tatsächlich ein Bug in der ical library. Das muss ich mir genauer anschauen
-
@chris299 So, Bug sollte gefixt sein in der Version 1.3.6
-
@dirkhe sieht gut aus, d.h. das Problem scheint behoben zu sein, vielen Dank.
-
@dirkhe ich wollte nun einen zweiten Kalender nch genau dem gleichen Muster einrichten, aber der zweite geht irgendwie garnicht.
da verschwinden auch die credentials aus der Config....
Wie kann ich denn Teste, ob der Zugang zu dem Kalender als solche funktioniert? im Log sehe ich auch keinen Fehler....
-
@chris299 schaue ich mir morgen mal an. Das hat auf jeden fall mal funktioniert. Ich musste die config anpassen, weil da ständig Warnungen kamen. Vlt ist dabei was kaputt gegangen.
Testen geht nicht, weil im admin adapter noch ein bug drin ist -
@dirkhe vielen Dank. Evtl. würde es helfen, den Adapter im debug-loglevel etwas "gesprächiger" hinsichtlich der Connectivity zu machen, z.b. ausgeben, wenn er sich verbindet und ob das erfolgreich war....
EDIT: im Debug log sehe ich überhaupt nichts zu dem zweiten Kalender. sieht ganz so aus als würde der garnicht abgearbeitet....
-
@chris299 Das Problem war tatsächlich die Anpassung an der config. Die haben das Schema für password angepasst, Da habe ich das auch so angepasst, dass es keine Warnung mehr gab. Allerdings wurde das passwort dadurch nicht mehr gespeichert.
Die Diskussion habe ich mit den Admin Entwickler schon mal geführt. Die Idee ist, dass Passwörter encrypted gespeichert werden sollen. So gut so richtig, nur gibt es keine Lösung, wenn die Anzahl Passwörter dynamisch ist. Wenn es genau ein Passort gibt geht deren Lösung, aber nicht für eine dynamische Liste. Ich hatte da auch schon 2 Lösungsvorschläge gemacht, die wurden aber ignoriert.
Sollte in der 1.3.7 gefixt sein. Das Logging habe ich auch ein bisschen angepasst -
@dirkhe sieht sehr gut aus, vielen Dank
-
@dirkhe nachem ich nun die Termine im IOBroker sehe (nochmals vielen Dank für den Adapter und Deine Hilfe) kommt nun die Kür-Frage: wie baue ich eine Termin-erinnerung für einen Termin der sich zwar wiederholt, aber nicht immer zur gleichen Zeit?
Den Termin selber sehe ich unter "heute" und unter "next", aber wie bekomme ich ein Blockly/JS zu diesem Zeitpunkt, bzw. besser etwas davor getriggert?
aktulle habe ich nur eine täglichen trigger, aber schon beim Zeitversatz wird es knifflig, weil die Termine in UTC sind.... kann man irgendwie direkt einen Trigger auf einen Termin legen (z.B. bei Änderung von "next"?