Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

GCalSeer - En plugin for kobling mot Google og Microsoft kalendere - 0.0.5.0


Guahtdim

Anbefalte innlegg

Holder omsider på å sette opp kalenderintegrasjon i Homeseer nå, etter at dette ble lagt på is for en stund siden.

Chat GPT 4 har hjulpet med å lage et script som setter string på 7 devicer dersom det er kalenderhendelser. Dette er for å få turnusen min inn i Homeseer. Kode med GetItemsFromCalendar klarte ikke GPT4 å få til å fungere, så da får jeg dessverre bare hentet ut startdato/-tid og subject. Verdiene kom ut i GMT-tidssone, så dette måtte korrigeres.

Dersom noen vil se på en måte å få ut mer informasjon fra eventene (feks med GetItemsFromCalendar) er det bare å komme med tips eller redigere scriptet.

Screenshot2023-07-22052839.jpg.3913502a9365ddc81958ca6b34ba0e99.jpg
 

Imports System.Globalization

Sub Main(ByVal Parms As Object)
    Try
        Dim tDeviceToday As Integer = 1461
        Dim tDeviceTomorrow As Integer = 1462
        Dim tDevice2Days As Integer = 1463
        Dim tDevice3Days As Integer = 1464
        Dim tDevice4Days As Integer = 1465
        Dim tDevice5Days As Integer = 1466
        Dim tDevice6Days As Integer = 1467

        Dim tCalendar = "Turnuskalender"
        Dim tDays = 7 ' This is the number of days the script will get events from

        Dim allEvents As Object()
        allEvents = hs.PluginFunction("GCalSeer", "", "GetItemsFromMsCalendar", New Object() {tCalendar, tDays})

        Dim today As Date = Date.Today
        Dim deviceList As Integer() = {tDeviceToday, tDeviceTomorrow, tDevice2Days, tDevice3Days, tDevice4Days, tDevice5Days, tDevice6Days}

        Dim timeZone As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Central Europe Standard Time")
        
        For i As Integer = 0 To tDays - 1
            Dim thisDay = today.AddDays(i).ToString("yyyy-MM-dd")
            Dim eventsForThisDay = ""

            For Each ev As Object In allEvents
                Dim eventString As String = ev.ToString()
                If eventString.StartsWith(thisDay) Then
                    Dim dateTimeString As String = eventString.Substring(0, 16) ' get the date and time part of the event string
                    Dim eventDateTime As DateTime = DateTime.ParseExact(dateTimeString, "yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture)

                    Dim offset As TimeSpan = timeZone.GetUtcOffset(eventDateTime)
                    Dim correctedDateTimeString As String = eventDateTime.Add(offset).ToString("yyyy-MM-dd HH:mm") ' correct the time

                    eventsForThisDay &= "<br>" & correctedDateTimeString & eventString.Substring(16) & "</br>" ' append the rest of the event string
                End If
            Next

            If eventsForThisDay = "" Then
                eventsForThisDay = "No Events Scheduled"
            End If

            hs.SetDeviceString(deviceList(i), eventsForThisDay, True)
            hs.WriteLog("test", "events for " & thisDay & ": " & eventsForThisDay)
        Next

        hs.WriteLog("test", "---=== DONE ===---")
    Catch ex As Exception
        hs.WriteLog("", "Exception in script: " & ex.Message)
    End Try
End Sub

 

Endret av Im_IB
Lenke til kommentar
Del på andre sider

  • 3 uker senere...
WHEN
GCalSeer: A google calendar event occurs...
 GCalSeer: Any calendar event:
in calendar  
  empty.png Turnuskalender
Advanced options
Occurs:  
Trigger when event occurs now  
Offset:  

empty.pngTrigger before event with offset  0 Hours 55 Minutes    Edit Time

 

Span

empty.pngDo not trigger if adjacent events
Regexp handling:            
empty.pngNo regexp handling
Trigger more than once :            
empty.pngTrigger more than once during calendar event



ERROR: The trigger for GCalSeer cannot be displayed due to this exception: Object reference not set to an instance of an object.
 

Er det noe jeg har gjort feil her, som trigger denne feilmeldingen?

Endret av Im_IB
Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.