NEWS
neuer Adapter webCal
-
@homeuser was für einen kalender hast du denn, google oder webcal?
Im prinzip wrappe ich das nur auf die vorhandenen funktion. stell doch mal auf debug, vlt steht da dann auch mehr. -
@dirkhe Ich nutze den Kalender von Nextcloud.
Mit debug habe ich probiert die relevanten Abschnitte aus dem Log zu extrahieren:
2025-02-10 19:21:51.857 - silly: webcal.0 (275635) States system redis pmessage io.messagebox.system.adapter.webcal.0/io.messagebox.system.adapter.webcal.0:{"command":"deleteEvents","message":{"calendar":"SmartHome","events":[{"id":"d08b79c9-7c46-402f-86d1-cd96ddbca800"},{"id":"failed test"}]},"from":"system.adapter.javascript.0","callback":{"message":{"calendar":"SmartHome","events":[{"id":"d08b79c9-7c46-402f-86d1-cd96ddbca800"},{"id":"failed test"}]},"id":2077,"ack":false,"time":1739211711853},"_id":8937513} 2025-02-10 19:21:51.858 - debug: webcal.0 (275635) {"command":"deleteEvents","message":{"calendar":"SmartHome","events":[{"id":"d08b79c9-7c46-402f-86d1-cd96ddbca800"},{"id":"failed test"}]},"from":"system.adapter.javascript.0","callback":{"message":{"calendar":"SmartHome","events":[{"id":"d08b79c9-7c46-402f-86d1-cd96ddbca800"},{"id":"failed test"}]},"id":2077,"ack":false,"time":1739211711853},"_id":8937513} 2025-02-10 19:21:51.858 - debug: webcal.0 (275635) delete Events from SmartHome 2025-02-10 19:21:54.309 - debug: webcal.0 (275635) fetching Calendar SmartHome 2025-02-10 19:21:54.309 - silly: webcal.0 (275635) sendTo "deleteEvents" to system.adapter.javascript.0 from system.adapter.webcal.0 2025-02-10 19:21:54.315 - info: javascript.0 (3266) script.js.common.Wallbox_Planner_V4: [ { id: 'd08b79c9-7c46-402f-86d1-cd96ddbca800', error: 'Not Found' }, { id: 'failed test', error: 'Not Found' } ] 2025-02-10 19:21:56.779 - info: webcal.0 (275635) found 8 calendar objects 2025-02-10 19:21:56.781 - debug: webcal.0 (275635) parse calendar data: .... 2025-02-10 19:21:56.788 - debug: webcal.0 (275635) parse calendar data: BEGIN:VCALENDAR CALSCALE:GREGORIAN VERSION:2.0 PRODID:-//IDN nextcloud.com//Calendar app 5.0.9//EN BEGIN:VEVENT CREATED:20250209T162558Z DTSTAMP:20250210T182012Z LAST-MODIFIED:20250210T182012Z SEQUENCE:7 UID:d08b79c9-7c46-402f-86d1-cd96ddbca800 DTSTART;TZID=Europe/Berlin:20250210T210000 DTEND;TZID=Europe/Berlin:20250210T220000 STATUS:CONFIRMED SUMMARY:Auto END:VEVENT BEGIN:VTIMEZONE TZID:Europe/Berlin BEGIN:DAYLIGHT TZOFFSETFROM:+0100 TZOFFSETTO:+0200 TZNAME:CEST DTSTART:19700329T020000 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:+0200 TZOFFSETTO:+0100 TZNAME:CET DTSTART:19701025T030000 RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU END:STANDARD END:VTIMEZONE END:VCALENDAR
-
@homeuser ich hätte jetzt vermutet, dass die uuid korrekt ist, steht den im log keine antwort vom löschen? Ich müsste es jetzt auch mal testen, ich meine auch , dass mit nextcloud getestet zu haben, allerdings kein wiederkehrendes event
-
@dirkhe Wie müsste die Antwort vom Löschen im Log aussehen? Dann suche ich nochmal danach. Ich dachte, dass ich alle relevanten Meldungen im Ausschnitt drin gelassen habe. Vielleicht habe ich aber doch etwas übersehen.
-
@homeuser hmmm aus meiner Sicht müsste das eigentlich funktionieren, nimmdoch mal den dummy eintrag weg
-
@homeuser also ich habe es jetzt noch mal getestet, bei mir mit nextcloud klappt das Löschen.aber immer nur alles, einen einzelnen Termin einer serie habe ich nicht hinbekommen
-
@dirkhe
Endlich komme ich mal wieder dazu weiter zu testen.Ich habe einen neuen Termin "test0815" angelegt und probiert die relevanten Ausschnitte aus dem Logfile zu selektieren:
2025-03-08 17:17:38.946 - debug: webcal.0 (353157) days for calendar-event({"start":"2025-03-08T19:00:00.000Z","end":"2025-03-08T20:00:00.000Z"}): {"0":{"id":"18f1009b-8657-4384-a10d-57c2bcec46da","date":"2025-03-08T19:00:00.000Z","startTime":"20:00","endTime":"21:00","calendarName":"SmartHome","summary":"test0815"}} 2025-03-08 17:17:38.947 - silly: webcal.0 (353157) days for event 'test': {"0":[{"id":"18f1009b-8657-4384-a10d-57c2bcec46da","date":"2025-03-08T19:00:00.000Z","startTime":"20:00","endTime":"21:00","calendarName":"SmartHome","summary":"test0815"}]} 2025-03-08 17:17:57.067 - silly: webcal.0 (353157) States system redis pmessage io.messagebox.system.adapter.webcal.0/io.messagebox.system.adapter.webcal.0:{"command":"deleteEvents","message":{"calendar":"SmartHome","events":[{"id":"18f1009b-8657-4384-a10d-57c2bcec46da"}]},"from":"system.adapter.javascript.0","callback":{"message":{"calendar":"SmartHome","events":[{"id":"18f1009b-8657-4384-a10d-57c2bcec46da"}]},"id":9782,"ack":false,"time":1741450677063},"_id":99600086} 2025-03-08 17:17:57.072 - debug: webcal.0 (353157) {"command":"deleteEvents","message":{"calendar":"SmartHome","events":[{"id":"18f1009b-8657-4384-a10d-57c2bcec46da"}]},"from":"system.adapter.javascript.0","callback":{"message":{"calendar":"SmartHome","events":[{"id":"18f1009b-8657-4384-a10d-57c2bcec46da"}]},"id":9782,"ack":false,"time":1741450677063},"_id":99600086} 2025-03-08 17:17:58.406 - info: javascript.0 (158033) script.js.common.Wallbox_Planner_V4: [ { id: '18f1009b-8657-4384-a10d-57c2bcec46da', error: 'Not Found' } ] 2025-03-08 17:18:01.155 - debug: webcal.0 (353157) days for calendar-event({"start":"2025-03-08T19:00:00.000Z","end":"2025-03-08T20:00:00.000Z"}): {"0":{"id":"18f1009b-8657-4384-a10d-57c2bcec46da","date":"2025-03-08T19:00:00.000Z","startTime":"20:00","endTime":"21:00","calendarName":"SmartHome","summary":"test0815"}} 2025-03-08 17:18:01.156 - silly: webcal.0 (353157) days for event 'test': {"0":[{"id":"18f1009b-8657-4384-a10d-57c2bcec46da","date":"2025-03-08T19:00:00.000Z","startTime":"20:00","endTime":"21:00","calendarName":"SmartHome","summary":"test0815"}]}
Nehme ich irgendwie die falsche ID?
Gibt es bei dem Einstellungen des Adapters etwas zu beachten?
Oder bei den Einstellungen des Kalenders? -
@homeuser das wird irgendwie an deiner calender software liegen, bei mir mit nextcloud klappt das einwandfrei. vlt musst du Mal in dein Kalender log schauen?
Ich nutze da ja standard komponenten, die den caldav standard bedienen -
Ich hab jetzt auch deinen Adapter erfolgreich zum laufen gebracht, auch das erstellen und senden eines Testtermins mit dem Script aus dem war erfolgreich.
Da ich aber in JS nich so bewandert bin, wie müsste den ein Script ausehen, welches mir täglich um 09:00 einen Eintrag in meinem Google Kalender generiert aus den folgenden Daten (liegen alle als DP vor)
Ich würde gern folgendes im Kalender eintragen:
0_userdata.0.Eigene_Variablen.WP.Set.WWStartTime
DP(string)
0_userdata.0.Eigene_Variablen.WP.Set.Betriebsart
DP(string)
0_userdata.0.Eigene_Variablen.WP.Set.WW_Soll_Temp
DP(number)
Termindauer soll immer auf 1(eine) Stunde eingestellt werden.
Event im Adapter heißt DHW Time
Wie müsste jetzt so ein Script aussehen?
-
@nic-f said in neuer Adapter webCal:
nur eine Frage zu dem "add.Events"-Block - wie ist "color" zu verwenden? Ich habe schon einiges getestet, aber er ignoriert es. Im Google Kalender werden die Termine nur in Standardfarbe erstellt.
Hier sind übrigens die Color-ID's von Google:
-
@icebear was genau willst du denn eintragen?
Also um 9 uhr willst du den eintrag erstellen, mit der zeit aus start? Und wo kommt die temperatur rein?
Also im prinzip gibt es schedule, der dir das jeden tag um 9 uhr ausführt u d dann den code, der hier auf der Seite schon steht -
Genau ich möchte per Schedule (täglich um 09:00 Uhr) die Startzeit aus dem DP der festlegt wann WW gemacht werden soll mit der Dauer von 1h eintragen. Mit dem Titel DHW Time.
Also Startzeit z.B. aus dem DP 12:30, dann Endzeit vom Termin 13:30.
Und dann, ich weiß ja nicht ob das geht als Subjekt (also als Termin Beschreibung/Inhalt) vom Termin, die Betriebsart (ausDP) und die WW-Temp (aus DP).
Bei den Beispielen hab ich immer nur rausgelesen wie man die Startzeit vom Termin setzt, aber nicht wie ich die Dauer, oder die Endzeit mitgeben. Und wie geb ich die Color-ID mit ?
Hier mal zwei Screenshots wo ich den Termin händisch erstellt habe, wie ich mir vorstelle wie das aussehen soll:
Und noch eine Sache ist mir eingefallen, wie ändere ich einen Termin, z.B. die Startzeit?
-
@icebear Die update funktion habe ich ganz neu eingebaut, allerdings noch nicht für google, müsste ich dann noch machen.
Also ohne, dass ich das jetzt getestet habe
schedule({hour: 9, minute: 0}, function(){ let starttime = new Date( getState("0_userdata.0.Eigene_Variablen.WP.Set.WWStartTime").val); let endtime = new Date(starttime.getTime() + 60 * 60000) sendTo("webcal.0", "addEvents", { calendar: "deinkalender", events: [ { summary: "DHW Time", description: getState("0_userdata.0.Eigene_Variablen.WP.Betriebsart").val, color: "2", start: starttime.toLocaleString(), end: endtime.toLocaleString() } ] },function(events){ /* callback function object events will be repeat from input, with additional status or error field, also startDate and endDate are provided as Object data */ log(events); }) }
Ich weißnicht, was in deinem dp startzeit steht, das musst du natürlich in ein datum wandeln