Popular Post Guahtdim Posted October 25, 2018 Popular Post Posted October 25, 2018 (edited) Dette er en trigger plugin basert på det som gjøres i tråden til @ZoRaC Triggeren brukes i eventer mot google kalender. Følgende må oppfylles: Man starter på/er inne i kalendermøtet/event/registreringen (fra nå av CalendarEvent) og kalender teksten (Summary text) er enten lik, starter med, inneholder en tekst som man setter opp. Eventuelt så bryr man seg ikke om teksten, men bare at det er en kalender event. (4 forskjellige valg som kan gjøres når man legger inn triggeren). Man kan søke i mer enn en kalender. Man kan også legge inn flere søkeord skilt med || (eller) eller && (og) slik at en trigger kan håndtere flere forskjellige ord. I noen av triggerne vil ikke det å skille med && (og) gi noen treff siden f.eks. matching exactly på ett søk hvor man har brukt && (og) ikke vil treffe noen gang. En trigger slår til minst en gang, som oftest mange ganger etter hverandre! Jeg anbefaler at man derfor setter opp f.eks en device å sjekke mot slik at man unngår å trigge f.eks hvert tiende sekund i løpet av en halvtime når det skjer en event. Jeg setter opp events slik at de i tillegg til å bli trigget av triggere også sjekker mot device som den skal styre. Eks: Her er det triggeren som starter det hele, men den vil kun slå til hvis device "Unknown Unknown Events" er av (off). Da vil device settes til på (on). OBS OBS OBS Dette er i Alfa(nivået før beta, som igjen er nivået før man faktisk sier man har en versjon man er fornøyd med) og ser ut deretter Testet ok i Windows. For nå er linken til siste versjon GCalSeer_V0050 Hvordan sette opp : VIKTIG!!! Stopp Homeseer og ta en kopi av hele katalogen til Homeseer (normalt "c:\program files (x86)\Homeseer HS3" for Windows) og legg kopien på ett trygt sted i tilfelle du trenger å gå tilbake. Pakk ut filen i din Homeseer katalog - pass på at du får følgende oppsett (katalogen "Homeseer HS3" skal inneholde 2 nye filer HSPI_GCalSeer.exe og HSPI_GCalSeer.exe.config, mens du i katalogen Homeseer HS3\bin skal ha fått en ny underkatalog - GCalSeer - med 30 filer) Restart Homeseer Gå inn på Homeseer->Plugins->Manage og trykk enable på GCalSeer Oppsett av Google kalender Spoiler Fra maskinen som kjører HomeSeer må du gå inn på linken https://developers.google.com/calendar/quickstart/dotnet Trykk på linken "Enable the Google Calendar API" Lag ett nytt eller velg ett eksisterende prosjekt Trykk på Download Client Configuration. Filen "credentials.json" må du legge inn i katalogen (normalt for windows) "c:\program files (x86)\Homeseer HS3\bin\GCalSeer" Konfigurasjon i HomeSeer Gå inn på Plugins=>GCalSeer=>General Config Hvis du ikke har klart å legge credentials riktig vil du få opp dette: Hvis du har lagt inn credentials.json korrekt kommer du til autentisering: Her er det rimelig rett fram å følge linken (Trykk på "Link to Google and allow opening...." Velg å godkjenne Kopier ut koden som kommer opp og lim den inn i feltet Authorization code. Trykk Authenticate. (OBS: Hvis det går over 60 minutter mellom at du gjør dette og f.eks. en event kjøres så må du autorisere på nytt. Skulle systemet ditt gå ned i over en time må du også autorisere på nytt siden en slik autorisasjon er god for kun 3600 sekunder=1 time. Den oppfriskes hver gang det blir gjort ett nytt kall mot Google som skjer innenfor de 3600 sekundene) Hvis alt går bra skal du da få en oversikt over alle kalenderene dine. Personlig så har jeg vistnok 5. Velg den eller de som du ønsker å søke i. Etter dette er på plass kan du Hvor ofte man skal gå igjennom triggere å utløse de hvis de er sanne. Jeg har valgt å gjøre dette utenom selv nedhentingen av kalender oppføringer Sette opp hvor lenge det skal gå mellom hver gang HomeSeer sjekker kalenderen (formatet minutter:sekunder, på bildet er det hvert minutt) Velge kalendere som man skal hente fra. I eksempelet har jeg kun haket av for en, men under testing har jeg brukt to. Velge nivå på logger. Debug fyller loggen din veldig fort! Oppsett av kobling mot Hotmail/Outlook live Spoiler Lage ny applikasjon ved hjelp av Azure Mesteparten av det som står her vil dere også finne i konfigurasjonen av MS kalender (Microsoft Calendar Authorizing) Gå til https://portal.azure.com og logg inn med din Microsoft bruker (den du bruker til Hotmail/Outlook Live) Når portalen har lastet velg "All services" Klikk "Identity" Klikk "App registration Klikk "New Registration" I "Register an application" lag ett navn (jeg har brukt HomeSeerConnection), velg “Accounts is any organizational directory(Any Azure AD directory - Multitenant) and personal Microsoft accounts …”, i "Redirect URI" lag en "Web" kobling med url http://localhost/myapp, klikk så på "Register" Kopier "Application (client) ID Legg inn den kopierte "Application (client) ID" i feltet"Application Id" i GCal Plugin Klikk "API permissions" og klikk på "Add a permission" Klikk på "Microsoft Graph" Klikk "Delegate permissions" Scroll ned og finn "Calendars", utvid og kryss av for "Calendars.Read" (mulig du også må krysse av for "Calendar.Read.Shared" hvis det er noen kalendere som er delt med deg som du vil lese fra) Klikk "Grant admin consent for Default Directory" (usikker på om denne er nødvendig) Klikk "Certificates & secrets" og så klikk på "New client secret" Legg inn en beskrivelse og sett når du vil at "hemmeligheten" skal utløpe (her er den satt til aldri). Klikk så på "Add". Kopier verdien av client secret Kopier inn dette i GCal Plugin i feltet "Application Secret (password)". Fyll også inn http://localhost/myapp i feltet "Redirect URL" Klikk “Generate Url” på konfig siden til plugin. Så klikker du linken “Link to Microsoft and Url for allowing opening of calendars(opens in new window)" Klikk “Yes” for å la plugin få tilgang til dine kalendere Den etterfølgende siden (som vil gi den en 404 feil) skal du kopiere url/adressefeltet Lim inn den kopierte url i feltet "Copied url" i GCal plugin Hvis alt fungerer som det skal så vil det nå komme en opplisting av dine MS kalendere. (Azure skal ikke være enkelt...) Gamle måten Mesteparten av det som står her vil dere også finne i konfigurasjonen av MS kalender (Microsoft Calendar Authorizing) Logg inn på Microsoft Developer https://account.live.com/developers/applications/index med epost og passord Lag en applikasjon ved å trykke på Add an app Gi den ett navn og trykk Create I Application Secrets lag ett nytt passord ved å trykke på Generate New Password. Dette vises kun en gang så husk å kopier det ned. Under Platforms lag en Web app ved å klikke på Add platform og velg Web Sett Redirect URLs til f.eks. http://localhost/myapp Trykk på Save på bunn av siden I HomeSeer GCalPlugin ->Microsoft Calendar Authorizing limer du inn følgende: 1. Application Id limes inn i Application Id feltet 2. Passordet limes inn i Application Secret 3. Redirect url limes inn i Redirect URL eksakt som du skrev det inn på utviklersiden til Microsoft 4. Trykk på knappen Generate URL Klikk på linken som er laget og i den nye siden som åpner seg skriv inn brukernavn og passord. Aksepter at applikasjonen skal kunne lese fra kalenderen(e) dine Du vil nå antageligvis komme til en side som ser ut som den feiler. Klipp ut linken i URL feltet og lim denne inn i Copied URL Hvis alt er riktig skal du nå få en liste over alle kalendere du har hos Outlook Live/Hotmail. Du er nå klar for å sette opp en trigger Spoiler Gå inn og lag en event som vanlig. I dropdown over forskjellige triggere skal du kunne finne GCalSeer Velger du denne finner du 4 forskjellige muligheter man kan trigge på (egentlig hvor i teksten man skal kikke) At teksten som man fyller inn er en del av kalender overskriften (contains) At teksten er eksakt som det man har fylt ut (matching exactly) At teksten begynner med et man fyller ut (starting with) At teksten ikke spiller noen rolle (Any calendar event - bare at det er en registrert kalender oppføring) Tekstsammenligningene bryr seg ikke om det er små eller store bokstaver. Med andre ord test er det samme som tEsT som igjen er det samme som TEST. Her er ett eksempel på en trigger som slår til når man er inne i en (eller flere) kalenderoppføringer hvor overskriften starter med teksten "test". Det blir søkt i kun en kalender (man skal kunne søke i flere hvis det er satt opp) Man har nå muligheten til å sette opp avanserte innstillinger: Occurs: Now - Dette sjekker på kalenderhendelser som skjer akkurat nå. Her har man også muligheten til å sette opp om det skal slå inn på en offset før eller etter hendelsen. Og hvis man velger "Do not trigger on overlapping events" så skal man ikke få trigging hvis det er en to hendelser som kommer etter hverandre og man befinner seg mellom disse to hendelsene. Ved bruk av offset så setter man kun for før eller etter. Hvis man skal ha noe som skjer både før og etter en kalender oppføring så er man nødt til å lage to eventer. During today - Sjekker om man har hendelser i løpet av dagen man er inne i. During tomorrow - Sjekker om man har hendelser i løpet av morgendagen. During day after tomorrow - Sjekker om man har hendelser i løpet av dagen etter imorgen. During next week - Sjekker om man har hendelser i løpet av neste uke (fra mandag til søndag). During - Her kan man selv sette opp hvor man skal sjekke (innenfor en dag, uke eller måned) gitt antall tidsenheter fra idag. Between - Her setter man i hvilket tidsintervall man skal se etter hendelse. F.eks. mellom 1dag og 3 timer fra idag til 1 dag og 4 timer. Disse tidene går ut ifra midnatt dagens dato. Eksempelet her vil da se etter hendelser mellom 0300 og 0400 dagen etter dagen vi er i. Ved hjelp av script: Mulighet til å lage en device som lister opp alle kalenderhendelser x dager framover : Spoiler Lag en standard device (i Home trykker du på det grønne pluss tegnet) og gå inn på fanen Advanced og skriv ned Reference ID. Gå inn på fanen Status Graphics og fjern alt av enheter og grafikk. Trykk så på knappen Add New Single Graphic og behold default her (evt. velg noe annet hvis du ikke vil ha en liten runding med pluss inni). Gå så inn i Events og lag en ny event. Denne kan f.eks. være av typen Recurring trigger som skjer hvert x minutt. Og den skal kjøre ett script (her er min test): * For bruk mot Google : GetItemsFromGoogleCalendar eller GetItemsForCalendar(kun for bakoverkompabilitet siden jeg angerer på navnet). * Mot Microsoft erstatt GetItemsFromGoogleCalendar med : GetItemsFromMsCalendar. * Mot både Microsoft og Google: GetItemsFromCalendar (se nederst for forklaring av de forskjellige variablene) Alle disse scriptene plukker ut fra Nå+antall hele 24 timers perioder (spesifiserer du 3 så sier du egentlig fra nå til 3x24 timer) Eksempelet under er mot Google Sub Main(ByVal Parms As Object) Dim msg as string = "" Try Dim ParmArray() as String ParmArray = Parms.tostring.split(",") Dim tDevice = ParmArray(0) Dim tCalendar = ParmArray(1) Dim tDays = cint(ParmArray(2)) Dim allEvents As Object() allEvents = hs.PluginFunction("GCalSeer", "", "GetItemsFromGoogleCalendar", new Object(){tCalendar ,tDays }) For Each ev As Object In allEvents msg = msg & "<br>" & ev & "</br>" Next hs.WriteLog("test","events found: " & msg) if msg="" then msg="No Events Scheduled" hs.SetDeviceString(tDevice , msg, true) Catch ex As Exception hs.WriteLog("", "Exception in script: " & ex.Message) End Try hs.WriteLog("test","---=== DONE ===---") End Sub På input parameters legger du inn i følgende rekkefølge: Reference Id til device som du laget, navnet på kalenderen du skal lese fra evt. "" hvis den er din hovedkalender, antall dager fram i tid den skal hente for. Etter det så får du forhåpentligvis en utlisting av kalender events. Begrensninger: Du kan kun hente fra EN kalender. Ved bruk av GetItemsFromCalendar Følgende "properties" finnes i hvert kalenderobjekt: string Subject = "Overskrift" på kalenderevent string Description = Description/Body til en kalenderevent DateTime StartDateTimeLocal = starttidspunkt i lokaltid (kun datoen dagen det varer hvis det er heldagshendelse) DateTime EndDateTimeLocal = sluttidspunkt i lokaltid (kun datoen dagen etter hvis det er heldagshendelse) bool AllDayEvent = om en kalender event er merket å vare hele dagenstring CalendarName = Navnet på kalenderen string CalendarId = maskin Id til kalender. Usikker på hva man skal bruke denne til string EventId = maskin Id til selve kalendereventet Ett par eksempler på hvordan du kan gjøre det med GetItemsFromCalendar Sub Main(ByVal Parms As Object) Dim msg as string = "" Try Dim ParmArray() as String ParmArray = Parms.tostring.split(",") Dim tDevice = ParmArray(0) Dim tCalendar = ParmArray(1) Dim tDays = cint(ParmArray(2)) Dim allEvents As Object() 'hs.WriteLog("test","starter script") allEvents = hs.PluginFunction("GCalSeer", "", "GetItemsFromCalendar", new Object(){tCalendar ,tDays }) For Each ev As Object In allEvents hs.WriteLog("test",ev.Subject) Dim calendarEventAsString as string="" If ev.AllDayEvent then calendarEventAsString = Format(ev.StartDateTimeLocal,"yyyy-MM-dd") & " (hele dagen) : " & ev.Subject Else calendarEventAsString= Format(ev.StartDateTimeLocal,"yyyy-MM-dd HH:mm") & " - " & Format(ev.EndDateTimeLocal,"HH:mm")& " : " & ev.Subject End If ' hs.WriteLog("test",calendarEventAsString) ' hs.WriteLog("test now",Now.Date) ' hs.WriteLog("test lokal",ev.StartDateTimeLocal.Date) If ev.StartDateTimeLocal.Date = Now.Date then calendarEventAsString= "<b>" & calendarEventAsString & "</b>" End If msg=msg & calendarEventAsString & "</br>" Next hs.WriteLog("test","events found: " & msg) If msg="" then msg="No Events Scheduled" End If hs.SetDeviceString(tDevice , msg, true) Catch ex As Exception hs.WriteLog("", "Exception in script: " & ex.Message) End Try hs.WriteLog("test","---=== DONE ===---") End Sub Sub Main(ByVal Parms As Object) Dim msg as string = "" Try Dim ParmArray() as String ParmArray = Parms.tostring.split(",") Dim tDevice = ParmArray(0) Dim tCalendar = ParmArray(1) Dim tDays = cint(ParmArray(2)) Dim allEvents As Object allEvents = hs.PluginFunction("GCalSeer", "", "GetItemsFromCalendar", new Object(){tCalendar ,tDays }) For Each ev As Object In allEvents Dim calendarEventAsString as string="" If ev.StartDateTimeLocal.Date=Now.Date Then If ev.AllDayEvent then calendarEventAsString ="Dagens " else calendarEventAsString ="Kl. " End If End If If ev.StartDateTimeLocal.Date=Now.Date.AddDays(1) then If ev.AllDayEvent then calendarEventAsString ="Imorgen " else calendarEventAsString ="Imorgen kl. " End If End If If ev.StartDateTimeLocal.Date < Now.Date.AddDays(2) then If ev.AllDayEvent then calendarEventAsString = calendarEventAsString & ev.Subject else calendarEventAsString= calendarEventAsString & Format(ev.StartDateTimeLocal,"HH:mm") & " - " & ev.Subject End If Else If ev.AllDayEvent then calendarEventAsString= calendarEventAsString & Format(ev.StartDateTimeLocal,"yyyy-MM-dd") & " (hele dagen) - " & ev.Subject else calendarEventAsString= calendarEventAsString & Format(ev.StartDateTimeLocal,"yyyy-MM-dd HH:mm") & " - " & ev.Subject End If End If If ev.StartDateTimeLocal.Date = Now.Date then calendarEventAsString= "<b>" & calendarEventAsString & "</b>" End If msg=msg & calendarEventAsString & "</br>" Next hs.WriteLog("test","events found: " & msg) If msg="" then msg="No Events Scheduled" End If hs.SetDeviceString(tDevice , msg, true) Catch ex As Exception hs.WriteLog("", "Exception in script: " & ex.Message) End Try hs.WriteLog("test","---=== DONE ===---") End Sub Den siste gir følgende resultat (gitt at dagens datotidspunkt er 2019-03-05 08:00) Og Moskus sitt bidrag Sub Main(ByVal Parms As Object) Dim msg As String = "" Try Dim ParmArray() As String ParmArray = Parms.ToString.Split(",") Dim deviceID = ParmArray(0) Dim calendarName = ParmArray(1) Dim numberOfDays = CInt(ParmArray(2)) Dim allEvents As Object allEvents = hs.PluginFunction("GCalSeer", "", "GetItemsFromCalendar", New Object() {calendarName, numberOfDays}) For Each ev As Object In allEvents Dim calendarEventAsString As String = "" If ev.StartDateTimeLocal.Date = Now.Date Then If ev.AllDayEvent Then calendarEventAsString = "Dagens " Else calendarEventAsString = "Kl. " End If End If If ev.StartDateTimeLocal.Date = Now.Date.AddDays(1) Then If ev.AllDayEvent Then calendarEventAsString = "I morgen " Else calendarEventAsString = "I morgen kl. " End If End If If ev.StartDateTimeLocal.Date < Now.Date.AddDays(2) Then If ev.AllDayEvent Then calendarEventAsString = calendarEventAsString & ev.Subject Else calendarEventAsString = calendarEventAsString & Format(ev.StartDateTimeLocal, "HH:mm") & " - " & ev.Subject End If Else If ev.AllDayEvent Then calendarEventAsString = calendarEventAsString & Format(ev.StartDateTimeLocal, "ddd dd.MM") & " (hele dagen) - " & ev.Subject Else calendarEventAsString = calendarEventAsString & Format(ev.StartDateTimeLocal, "ddd dd.MM HH:mm") & " - " & ev.Subject End If End If If ev.StartDateTimeLocal.Date = Now.Date Then calendarEventAsString = "<b>" & calendarEventAsString & "</b>" End If msg = calendarEventAsString & "</br>" & msg Next 'hs.WriteLog("test", "events found: " & msg) If msg = "" Then msg = "No Events Scheduled" End If hs.SetDeviceString(deviceID, msg, True) Catch ex As Exception hs.WriteLog("", "Exception in script: " & ex.Message) End Try 'hs.WriteLog("test", "---=== DONE ===---") End Sub Ansvarsfraskrivelse: Laste ned og bruke plugin gjøres på eget ansvar. Skulle jeg ødelegge Homeseer oppsettet ditt så kan jeg desverre ikke hjelpe deg. Planlagte utvidelser/ønskeliste Mulighet for å liste ut hendelser fra flere kalendere samtidig vha script. Mulighet til å legge inn device som viser X nærmeste hendelser fra utvalgte kalendere eller for en gitt tidsperiode fra tidspunktet man er i (planlagt utvidelse) Mulighet for Regex/Wildcards i søketekst (ønske) Bedre kontroll på kobling mot Google slik at refreshtoken blir prøvd brukt hvis man har passert utløp på accesstoken Egen device for å vise status med tanke på autorisasjon Mulighet til å sette opp en trigger til å slå til på offsets Mulighet for å trigge på hendelser innenfor en dag, uke, måned, frem i tid Mulighet for å hente inn kalender events fra MS Outlook (antageligvis kun for de som kjører HS i Windows OS) Eget scriptkall for å hente events fra en eller flere kalendere - ref https://forums.homeseer.com/forum/ultilities-plug-ins/utilities-discussion/blgdata-blade/87199-event-listing-in-a-hs-device Kjente feil: Mulig å sette tid mellom hver sjekk lenger enn hva en autorisering gjelder (3600 sekunder) For mye logging Autorisering mot google fungerer ikke i Linux - under arbeid. Endringer: 0.0.5.0 - GCalSeer trigger nå kun en gang (med mindre man ønsker at den skal trigge flere ganger - Advanced settings). Også fikset litt problemer rundt kobling mot MS/Google. Mindre oppkobling og også færre feil pga låsing av filer. 0.0.4.2 - Fikset bugs og lagt til muligheten for å hente ut eventer som ligger tilbake i tid. Takk til @toonwolf 0.0.3.9 - Fikset en bug ved at offset ble brukt i during-valg selv om det ikke var mulig å endre i eventet. Takk til @JohnMartin 0.0.3.7 - Fikset en bug i hvordan det blir hentet kalender events fra Google når man skal bruke scripmulighetene. Takk til @JohnMartin 0.0.3.6 - Fikset en bug i håndtering av all day events. All day events overskred dagen(e) de var lagt til og ble slik med en dag mer enn de skulle (en dag i etterkant). Takk til @JohnMartin 0.0.3.5 - Fikset en bug i offset after. Trigging av event skjedde ikke selv om alle eventer sluttet samtidig. Takk til @toonwolf 0.0.3.4 - Filtrerer nå bort kalenderhendelser som ligger i andre kalendere enn det man har satt til gyldig for trigger (enkelte av oss kjører med mer enn en kalendere og triggere som kun går på noen av disse). Takk til @toonwolf for bra bug rapport igjen. 0.0.3.3 - Håndterer nå at en kalenderhendelse er uten subject/summary/overskrift. Både Google og Microsoft leverer NULL tilbake når dette feltet er tomt. Det fungerte dårlig. Takk til @toonwolf for bug rapport. 0.0.3.2 - Fikset opp i hvordan kalender hendelser hentes fra Microsoft. Henter nå de 100 første innenfor gitt tidsrom. 0.0.3.1 - Fjernet 2 config sider som ikke fungerer. Lagt inn støtte for GetItemsFromMsCalendar siden den kun eksisterte som GetItemsForMsCalendar. Begge er nå støttet. 0.0.3.0 - Ms connection bedre dokumentert på konfigside med tanke på Azure. 0.0.2.9 - Det er skjedd mye, men det meste er i sammenheng med håndtering av å sette opp for toonwolf. Dokumentasjon kommer plutselig... 0.0.2.0 - Fikset opp slik at man kan få tilbake objekter fra script, ikke bare ferdige strenger 0.0.1.8 - Lagt til uthenting av kalenderinfo vha script for Microsoft kalendere. 0.0.1.1 - Fikset opp i visning når man har brukt avanserte settinger. Dette vil nå bli vist når man har "krympet/rullet opp" eventet. 0.0.1.0 - Fjernet noen småfeil i offset (takk til toonwolf for testing) og lagt til muligheten å kunne søke på flere ord ved hjelp av logiske operatorer - || (eller/OR) og && (og/AND) 0.0.0.7 - Forbedret kobling mot Google + fjernet noen småfeil i offset 0.0.0.6 - Microsoft kalenderfunksjonalitet lagt til (Hotmail/Outlook Live). 0.0.0.5 - Mye ekstra funksjonalitet lagt inn på triggerne. Egen device for å vise status på koblingen mot Google. 0.0.0.4 - Man kan ikke sette tid mellom ny info fra Google til mer enn 3599 sekunder. 0.0.0.3 - Fungerer mot Linux. Autorisasjon endret. 0.0.0.2 - Logging settes og slik sett får man mindre i HomeSeer loggen hvis det er ønskelig. Edited July 30, 2020 by Guahtdim Version 0050 7 3 Quote
Guahtdim Posted October 26, 2018 Author Posted October 26, 2018 Forslag, endringer og feil mottas med takk. Quote
Christoffer Posted October 26, 2018 Posted October 26, 2018 Fantastisk, har lenge tenkt på om det finnes noe slikt. Skal teste denne straks jeg er hjemme i Norge igjen 1 Quote
Guahtdim Posted October 26, 2018 Author Posted October 26, 2018 (edited) Hmm, har faktisk fått meg Linux og må desverre si at min plugin så langt ikke støtter Linux (testet på Ubuntu). 1. Jeg må få endret plugin slik at den søker etter andre filer i bin/GCalSeer og ikke bin\GCalSeer som det står idag. Jeg har testet en enkel konvertering og det funket fint. Med andre ord løsbart. 2. Problemet oppstår når serveren prøver å få kontakt med Google Calendar første gangen. I Windows så starter da OS opp default browser og gir meg en dialog om å tillate at det blir tilkoblet til Google. I Ubuntu som jeg kjører får jeg feilmelding om at Firefox ikke kan kjøre som rot eller noe. Her må jeg grave litt mer. Mulig det bare er min manglende kontroll i Linux. Edited October 26, 2018 by Guahtdim Grunner til at det ikke virker 1 Quote
ZoRaC Posted October 26, 2018 Posted October 26, 2018 44 minutter siden, Guahtdim skrev: Hmm, har faktisk fått meg Linux og må desverre si at min plugin så langt ikke støtter Linux (testet på Ubuntu). Jeg har dessverre ikke rukket å teste på ubuntu enda, men bra du «er på saken» og at det ser ut til å være bare noen småting som må endres. 44 minutter siden, Guahtdim skrev: 2. Problemet oppstår når serveren prøver å få kontakt med Google Calendar første gangen. I Windows så starter da OS opp default browser og gir meg en dialog om å tillate at det blir tilkoblet til Google. I Ubuntu som jeg kjører får jeg feilmelding om at Firefox ikke kan kjøre som rot eller noe. Her må jeg grave litt mer. Mulig det bare er min manglende kontroll i Linux. I stedet for/i tillegg til å åpne nettleseren, kan du printe URLen i loggen? I scriptet jeg bruker så printes URLen og så åpner jeg og godkjenner den bare på en annen PC. Quote
Guahtdim Posted October 26, 2018 Author Posted October 26, 2018 Jeg har prøvd å åpne den i andre browsere, men det ser ikke ut til å fungere (på server og eksternt). Det er nok noe mer som skal skje. Jeg får grave videre. Quote
ZoRaC Posted October 26, 2018 Posted October 26, 2018 4 minutter siden, Guahtdim skrev: Jeg har prøvd å åpne den i andre browsere, men det ser ikke ut til å fungere (på server og eksternt). Det er nok noe mer som skal skje. Jeg får grave videre. Set at scriptet jeg bruker ber om at jeg går på en URL og får en kode som jeg så skal taste inn til scriptet. Vet ikke om det hjelper deg på vei? https://developers.google.com/calendar/quickstart/php Quote
Guahtdim Posted October 26, 2018 Author Posted October 26, 2018 Jeg får sjekke det etterhvert. Ting er så mye enklere i windows verdenen...... Quote
Guahtdim Posted October 28, 2018 Author Posted October 28, 2018 (edited) Etter å ha brukt mange timer på å lete så ser det ikke ut til at måten man gjør det på i php (annen browser med en gitt url og så en kode tilbake) er implementert i Net utgaven av google api. Jeg får se om jeg orker å lage eget opplegg for dette. Edited October 29, 2018 by Guahtdim Fjernet quote jeg ikke fikk til å fjerne da jeg brukte telefonen Quote
Nettopp Posted October 29, 2018 Posted October 29, 2018 Ser lovende ut! Hadde vært knall om det var mulig å hente ut events med spørring, ref. https://forums.homeseer.com/forum/ultilities-plug-ins/utilities-discussion/blgdata-blade/87199-event-listing-in-a-hs-device 1 Quote
Guahtdim Posted October 29, 2018 Author Posted October 29, 2018 Hyggelig med positiv tilbakemelding. Hva ønsker du å oppnå? Liste ut events noe sted? Inntil videre så er hovedfokus for meg trigging, men jeg ser at det ikke er så vanskelig å legge til funksjonalitet hvis det er ønskelig. 1. pri er egentlig å få til at den også kan brukes under Linux. Sliter med å finne ut hvordan jeg skal klare det på samme måte som beskrevet i PHP eksempelet til Google API, men har funnet litt kode her og der som har virket lovende. Etter det er jeg åpen for ønsker gitt at de er noe jeg kan klare å implementere. Quote
ZoRaC Posted October 29, 2018 Posted October 29, 2018 7 minutter siden, Guahtdim skrev: 1. pri er egentlig å få til at den også kan brukes under Linux. Sliter med å finne ut hvordan jeg skal klare det på samme måte som beskrevet i PHP eksempelet til Google API, men har funnet litt kode her og der som har virket lovende. Både PHP og .Net lager en "credentials"-fil? I så fall kan jeg kanskje prøve og se om den som er generert av PHP-scrptet kan brukes i din plugin? Quote
Guahtdim Posted October 29, 2018 Author Posted October 29, 2018 1 minute ago, ZoRaC said: Både PHP og .Net lager en "credentials"-fil? I så fall kan jeg kanskje prøve og se om den som er generert av PHP-scrptet kan brukes i din plugin? Takker for tilbudet, men det er ikke der problemet har vært. Credentials-filen går greit. Det er idet man skal bruke credentials mot google for å få Token.json. Problemet er at i ferdig api-bibliotek fra Google så har de unnlatt å støtte den biten som gjør at man får tilbake login url for å senere kunne lime inn kode. Jeg har klart å spore det til at det faktisk blir kuttet ut hvis du kjører .Net rammeverk 4.5 eller høyere. Jeg har en POC som jeg nå har klart å få ut url, og gå inn vha en annen browser, lime på plass kode. Og det ser ut til å fungere. Så nå er det å få dette til i HomeSeer. Det er egentlig bare å få tid til å sette seg ned med problemet. Quote
Nettopp Posted October 29, 2018 Posted October 29, 2018 1 time siden, Guahtdim skrev: Hyggelig med positiv tilbakemelding. Hva ønsker du å oppnå? Liste ut events noe sted? Det jeg primært ønsker er å få en visning av kalenderaktiviteter den nærmeste tiden i HSTouch. Ser også nytte av funksjonaliteten i din plugin slik at man f.eks. kunne legge inn et flag "hjemme" e.l. de dagene det er planleggingsdag i barnehagen osv., og dermed kjørt huset i hjemmemodus. Men dette er ikke så viktig for meg personlig, da både Nest termostaten og location fra Blue Iris håndterer hjemme/borte problematikken godt i dag. Quote
ZF- Posted October 29, 2018 Posted October 29, 2018 Har testet den, og den ser ut til å fungere veldig bra. Men jeg får ikke endret Log level til Normal. Når jeg prøver å endre den stilles den automatisk tilbake til Debug, og da fylles HS-loggen opp av GCalSeer-meldinger. Quote
Guahtdim Posted October 29, 2018 Author Posted October 29, 2018 13 minutes ago, ZF- said: Har testet den, og den ser ut til å fungere veldig bra. Men jeg får ikke endret Log level til Normal. Når jeg prøver å endre den stilles den automatisk tilbake til Debug, og da fylles HS-loggen opp av GCalSeer-meldinger. Feilen er notert. Så fort jeg får løst problemet med Linux så skal jeg få fikset log level. 1 Quote
Guahtdim Posted October 30, 2018 Author Posted October 30, 2018 (edited) Logging fikset slik at man kan sette det til å logge litt mindre. Problemet mot Linux er desverre ikke fikset. Edited October 30, 2018 by Guahtdim Quote
ZF- Posted October 30, 2018 Posted October 30, 2018 Takk, da kan jeg bekrefte at jeg får endret Log level. 1 Quote
Guahtdim Posted November 5, 2018 Author Posted November 5, 2018 Det ser ut som om løsningen med tanke på Linux ikke er så langt unna. Jeg har testet at jeg faktisk får til å gå mot Google sine sider og generere kode. For så å ta uthentet kode inn i autorisasjonsprosessen. Nå er det bare å få laget Config-side for å få dette korrekt inn i plugin. 2 Quote
Guahtdim Posted November 6, 2018 Author Posted November 6, 2018 (edited) På vei til jobb idag fikk jeg testet første utkast i Linux(togpendling er tingen). Og det fungerer! Nå må jeg bare pynte litt på grisen før jeg slipper den ut i det fri. Edited November 6, 2018 by Guahtdim 2 1 Quote
Guahtdim Posted November 6, 2018 Author Posted November 6, 2018 (edited) Nå er siste versjon lagt ut. Denne ser ut til å fungere både i Windows og i Linux. Instruksjoner for oppsett vil bli endret i løpet av nærmeste fremtid. Edited November 6, 2018 by Guahtdim 1 1 Quote
ZoRaC Posted November 6, 2018 Posted November 6, 2018 19 minutter siden, Guahtdim skrev: Nå er siste versjon lagt ut. Denne ser ut til å fungere både i Windows og i Linux. Supert! Skal se om jeg får tid til å teste i løpet av uka... Quote
clio75 Posted November 6, 2018 Posted November 6, 2018 Skal si i fra når jeg har testet [emoji106]Sent from my SM-G930F using Tapatalk Quote
Guahtdim Posted November 6, 2018 Author Posted November 6, 2018 Beklager. Jeg hadde ikke oppdatert link til siste versjon. Skal fungere nå. 2 Quote
Guahtdim Posted November 9, 2018 Author Posted November 9, 2018 Etter å ha prøvd endel så setter jeg scriptcall litt på hold. Jeg klarer ikke overføre "komplekse" objekter (objekter som inneholder flere forskjellige variabler), kun simple variabler som tekst eller tall. Jeg kan lage noe som kanskje tar en formatering som sendes inn slik at man da får tilbake linjer med tekst formatert slik man vil. Litt usikker her. Mulig @Nettopp må komme på banen med ønsker. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.