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

Jeg har trial på BLGData plugin nå, den har en call som heter GetCalendarEvents(x), der man henter ut kalenderhendelser for de x nærmeste dagene og kan legge disse med dato og overskrift på en device som jeg deretter viser i HSTouch. Jeg har egentlig ikke behov for noe mer avansert en dette. Opprette og redigere kalenderhendelser kan jeg håndtere på telefonen.

 

Edit: Parametere er deviceID til virtuell device med kalendertekst, kalendernavn, antall dager som hentes. I tillegg har jeg en event som henter dagens events (parameter 0) og legger disse på en egen device.

 

3.thumb.jpg.2a2c92b9f20e168df6b22f281d5742f6.jpg

Endret av Nettopp
Lenke til kommentar
Del på andre sider

Jepp, jeg har testet etter den og jeg klarer ikke å få til at man får tilbake objekter hvor man har ev.StartDate, ev.StartTime, ev.Name. Og det irriterer meg grenseløst at jeg ikke får det til.

Jeg ser at kallet går korret inn i plugin,  det som ligger i kalender hentes ut korrekt og returneres tilbake til HS. Men så skjer det ett eller annet som gjør at det feiler/henger idet det skal tilbake til scriptet.

 

Mulig jeg kan lage en variant hvor du kan sende inn litt parametre for å spesifisere hvordan teksten skal komme ut siden jeg får det til å fungere når jeg returnerer en liste med strenger. Hvis det er bra nok så kan jeg sette igang med det etterhvert.

Lenke til kommentar
Del på andre sider

Hei,

 

Har omsider satt meg ned og sett på GCalseer og fått det installert og i drift uten noen feilmeldinger/problemer.

 

Men for en grønnskolling som meg, så er det noe som er litt uklart.

Hvor langt frem i tid ser plugin etter event i kalenderen?

 

Fruen jobber skift, og skiftplanen hennes blir automatisk oppdatert mot en kalender.

Har fått kalenderen inn i plugin, men sliter litt med hvordan jeg skal bruke plugin. :)

Skulle fått plugin til å oppdatere en device ut ifra om hun har fri/dag/kveld idag og imorgen.

Prøvde meg på 2 event, men skjønte fort at jeg nok er helt på bærtur.
image.png.bf129ea90cefa25370876903861a1057.png

 

Forslag til hvordan jeg kan gjøre det? :)
Må jo være 2 devicer, idag og imorgen.

Lenke til kommentar
Del på andre sider

@NettoppJeg skal få laget til noe som dokumenterer hvordan det settes opp.

 

@JohnMartinSlik det er nå så ser den kun på det neste døgnet. Og den trigger bare på kalenderhendelser som skjer eller med andre ord akkurat nå er innenfor start og slutt av kalenderhendelsen.

Det du trenger er å kunne spesifisere hvor langt fram i tid man skal hente ut data for/ hvilket tidsrom som skal gjelde for at det trigger. Jeg skal notere det ned og se om det finnes en grei løsning. 

Endret av Guahtdim
  • Like 1
Lenke til kommentar
Del på andre sider

8 timer siden, Guahtdim skrev:

spesifisere hvor langt fram i tid man skal hente ut data for/ hvilket tidsrom som skal gjelde for at det trigger. 

Dette er akkurat det samme som jeg ønsker meg, men også litt til. Jeg har kjøpt lisens på BLGData som gjør tilsvarende som din plug-in gjør, men utfordringen min er følgende: jeg ønsker å trigger events x antall minutter før og etter basert på "trigger words". BLGData har støtte for dette, problemet kommer så snart det er overlappende eller tilstøtende hendelser i kalenderen. Det kombinert med før og etter eventer som ikke trigges på start og slutt-tid gjør at det blir "krøll". Se forklaring på engelsk hvor jeg beskriver problemet https://forums.homeseer.com/forum/ultilities-plug-ins/utilities-discussion/blgdata-blade/1252934-support-for-overlapping-or-adjacent-events?p=1253659#post1253659 utvikler av BLGData sier han skal se på dette, men jeg lurer på om det er enkelt å få til dette i din plugin?

Lenke til kommentar
Del på andre sider

@toonwolfMen bør ikke du ha ett event for hver tennisbane? Slik som du nå har lagt det opp så blir det vanskelig for HomeSeer å skille på hva som skal skje. Mulig jeg misforstår.

Edit: Mulig du bør sende meg en pm på hvordan du har tenkt deg at det fungerer.  

Endret av Guahtdim
Lenke til kommentar
Del på andre sider

12 timer siden, Guahtdim skrev:

event for hver tennisbane

Jo det er riktig. En event for hver bane. Jeg har flere "aktiviteter" i en kalender eller flere kalendere som skal trigger en event. Problemet er at jeg har ikke "kontroll" på disse. Litt forklaring på hvordan dette skal brukes: Noen bestiller en bane via bookingsystemet. Bookingsystemet har to-veissynk med GCal. De booker time på bane 1 fra kl 12-13 og Bane 1 kalenderen i Google kalenderen blir oppdatert og viser navn og referanser på booking. Start og slutt-tid er lik det som er i bookingsystemet. Lysene i tennishallen er koblet mot samme kalender og er satt til å skru lysene på og av 5 min før og etter. Her er det en kontroller fra Sensio som gjør jobben og som takler overlappende tidspunkt ved å "slå de sammen". Dette er det samme som jeg ønsker nå for låser. Når noen har booket en bane kan låsene til utstyrsboden også åpnes slik at man kan hente utstyr uten å måtte bruke kode. For å få til dette må plugin som brukes kunne ha mulighet til å sette en eller flere trigger-ord som skal starte eventen. Helst med støtte for "wildcards" men ikke noe must. Det viktigste er at det er mulig å sette "offset" for både start og sluttid og at om disse kolliderer med andre aktiviteter som det skal trigges på at disse ignoreres eller slås sammen slik at man ikke risikerer at en låser igjen når det egentlig skal være åpent. 

Endret av toonwolf
Ble ikke noen PM. Håper det er greit!
Lenke til kommentar
Del på andre sider

Flott beskrivelse. Så hvis jeg skjønner det rett så er det snakk om en bryter for lyset uavhengig av bane? Og det er dette som er problemet? Gitt at det er f.eks. 2 timer rett etter hverandre så ønsker man ikke at time2 skal miste lyset 15 minutter ut i timen?

Skrik ut om jeg har misforstått.

Jeg skal kikke litt på det og se om jeg føler at jeg kan komme opp med noe. Jeg er usikker på når jeg kommer med noe siden jeg for tiden har tatt på meg litt mer enn jeg har tid til rådighet.

På bakgrunn av din forklaring så skjønner jeg ikke helt hvorfor ikke BLGdata ikke fungerer.

Lenke til kommentar
Del på andre sider

46 minutter siden, Guahtdim skrev:

På bakgrunn av din forklaring så skjønner jeg ikke helt hvorfor ikke BLGdata ikke fungerer.

BLGData fungerer ikke fordi den ikke klarer å håndtere overlappende eller tilstøtende aktiviteter når du har valgt "offset" som er en funksjon som lar deg trigge eventer x antall minutter før og etter aktiviteten starter eller slutter. Det er enklere å forklare problemet med et eksempel. Her er 3 aktiviteter som starter rett etter hverandre fra kl 00:00 til 03:00

Event     Start   Slutt
TEST1   00:00-01:00
TEST2   01:00-02:00
TEST3   02:00-03:00

I BLGData har jeg satt opp følgende "handler" som er tilsvarende en Event bare at du setter det opp i selve plug-in'en

Trigger: TEST (her setter du opp trigger-ord, kan være flere separert med pipetegnet |)
Calendar selected: "TESTINGS" (her har jeg valgt kun en kalender, om du ikke velger vil den sjekke alle)
Regular expression: No (regex, ikke brukt for akkurat dette, men veldig kjekt å ha om du har behov for det, kan f.eks brukes for å hente ut tekst for å gjenbruke det i variabler)
Offset before: 15 minutes (kjernet til problemet, her skal handler/event trigges 15 minutter før aktiviteten starter)
Offset after: 15 minutes (handler/events skal trigges 15 minutter etter aktiviten starter)
Calendars selected: Yes (en eller flere kalendre er valgt
Use End time: Yes (valg for å bruke aktivitetens slutt-tid for å trigge event)
Execute Commands at Start Time: No (ekstra valg om det skal trigges ved aktivitetens start-tid, ikke valgt her)

Siden jeg har aktiviteter som er tilstøtende (starter rett etter hverandre) og bruker offset med 15 minutter blir det kollisjon med noen aktiviteter:

23:45 Event start TEST1 - OK - ingen kollisjon fordi det ikke er noen avtaler før
00:44 Event start TEST2 - IKKE OK - kollisjon ford den trigges når TEST 1 (00:00-01:00) er aktiv
01:15 Event end TEST1 - IKKE OK - kollisjon ford den trigges når TEST 2 (01:00-02:00) er aktiv
01:45 Event start TEST3 - IKKE OK - kollisjon ford den trigges når TEST 2 (01:00-02:00) er aktiv
02:15 Event end TEST2 - IKKE OK - kollisjon ford den trigges når TEST 3 (02:00-03:00) er aktiv
03:15 Event end TEST3 - OK - ingen kollisjon fordi det ikke kommer noen avtaler etter

 

1 time siden, Guahtdim skrev:

Jeg skal kikke litt på det og se om jeg føler at jeg kan komme opp med noe. Jeg er usikker på når jeg kommer med noe siden jeg for tiden har tatt på meg litt mer enn jeg har tid til rådighet.

Ikke noe problem, dette er noe som må være på plass før sommersesongen starter, altså mai 2019. Lysstyring for innebaner håndteres av en kontroller fra Sensio og dette skal brukes for lås til utebaner. Utvikler av BLGData har sagt han skal se på dette, men når jeg kom over din plug-in tenkte jeg at dette var noe som kanskje kunne brukes istedet for BLGData til dette med noen justeringer. Din plug-in er også bedre enn BLGData IMHO siden den lar deg sette opp eventer direkte i Event-builderen i HS og ikke har sitt eget grensesnitt slik det er gjort i BLGData.

Lenke til kommentar
Del på andre sider

Jeg mistenker at BLGdata henter inn events fra Nå-tidspunkt og fremover(noe jeg også gjør). Da vil man ikke ha noen historikk på hva som har skjedd og vil få kollisjoner/feil reaksjoner. For å kunne håndtere noe slikt så bør man hente for hele inneværende døgn (og kanskje forrige for å unngå feil rett etter midnatt). Kult. Jeg tror jeg ser problemet. Nå er det bare å lage en løsning.

 

  • Like 1
Lenke til kommentar
Del på andre sider

2 minutter siden, Guahtdim skrev:

For å kunne håndtere noe slikt så bør man hente for hele inneværende døgn

Helst bør det sjekkes minimum hvert 10. min. slik at man får med seg nye oppdaterte aktiviteter

4 minutter siden, Guahtdim skrev:

Kult. Jeg tror jeg ser problemet. Nå er det bare å lage en løsning.

?

Lenke til kommentar
Del på andre sider

2 hours ago, toonwolf said:

Helst bør det sjekkes minimum hvert 10. min. slik at man får med seg nye oppdaterte aktiviteter

?

Slik min plugin er så velger du det selv. Personlig så har jeg satt det til hvert minutt. Etter å ha sjekket med Google så er det fortsatt langt under grensene (max 50 000 requests per døgn per google-prosjekt eller max 10 requests i sekundet per ip-adresse)

Endret av Guahtdim
  • Like 1
Lenke til kommentar
Del på andre sider

Har prøvd pluginen nå og den virker slik den skal :) Kjører Win 10 virtualisert på Unraid

 

Slik jeg ser for meg å bruke den mest er i forbindelse med reise og da varmejustering.

Slik jeg har det nå så har jeg en event som senker temperaturen på varmepumpen når GCal finner "Ferie" i kalenderen. Er det mulig å få en event til å starte når "Ferie" er ferdig? Eller aller helst X antall timer før :)

Lenke til kommentar
Del på andre sider

12 minutter siden, Christoffer skrev:

X antall timer før

Så vidt jeg vet er det ikke støtte for dette i GCALSeer nå og dette må utvikles av @Guahtdim . Jeg har ikke testet denne plug-in'en enda da jeg normalt bruker BLGData som har støtte for "offset" tid (x antall min. før og etter). Problemet med BLGData er at den ikke takler sammenstøtende eller overlappende hendelser slik at det blir kluss om du bruker "offset". Se info om dette litt tidligere i denne tråden.

Lenke til kommentar
Del på andre sider

36 minutes ago, Christoffer said:

Har prøvd pluginen nå og den virker slik den skal :) Kjører Win 10 virtualisert på Unraid

 

Slik jeg ser for meg å bruke den mest er i forbindelse med reise og da varmejustering.

Slik jeg har det nå så har jeg en event som senker temperaturen på varmepumpen når GCal finner "Ferie" i kalenderen. Er det mulig å få en event til å starte når "Ferie" er ferdig? Eller aller helst X antall timer før :)

 

Jeg bruker 2 event. Ett for å slå av varmen og ett for å slå på varmen. I tillegg har jeg en device som tar vare på om varmen er på eller av. Jeg må ærlig innrømme at jeg ikke har kommet så langt at jeg har begynt å tenke på hvordan f.eks. ferie skal håndteres. For nå så er det mest for å enkelt kunne slå på varmen når jeg(og/eller kona) er hjemme og det ikke er ferie/fridager i forhold til scriptet fra @Moskus

Mulig jeg implementerer noe med offset på sikt. Akkurat nå har jeg litt for mye å gjøre med tanke på at jeg kun har 24 timer i døgnet.

 

Endret av Guahtdim
  • Like 1
Lenke til kommentar
Del på andre sider

On 11/11/2018 at 00:59, Guahtdim said:

Det du trenger er å kunne spesifisere hvor langt fram i tid man skal hente ut data for/ hvilket tidsrom som skal gjelde for at det trigger. Jeg skal notere det ned og se om det finnes en grei løsning. 

 

Ja, hadde det vært mulig å sette opp slik at plugin sjekker kalender f.eks rett over midnatt, og hvis  det er en "D" eller "A" aktivitet i løpet av dagen, så endres en device.

Blir vel likt noe som Moskus har i Fridag scriptet. Bare at det sjekkes mot en kalender isteden for data i scriptet.

Kanskje tungvindt forklart ?

 

Tidkrevende å oppdatere et script med en turnus som ofte endrer seg. Veldig kjekt å kunne brukt en kalender som automatisk blir oppdatert når avdelingsleder gjør justeringer.

 

Lenke til kommentar
Del på andre sider

8 hours ago, JohnMartin said:

 

Ja, hadde det vært mulig å sette opp slik at plugin sjekker kalender f.eks rett over midnatt, og hvis  det er en "D" eller "A" aktivitet i løpet av dagen, så endres en device.

Blir vel likt noe som Moskus har i Fridag scriptet. Bare at det sjekkes mot en kalender isteden for data i scriptet.

Kanskje tungvindt forklart ?

 

Tidkrevende å oppdatere et script med en turnus som ofte endrer seg. Veldig kjekt å kunne brukt en kalender som automatisk blir oppdatert når avdelingsleder gjør justeringer.

 

 

Jeg har drodlet litt rundt med ideen og ser for meg at det du trenger en trigger som kan "se inn i framtiden". Man har en device man setter hvis man finner ett søkeord innenfor en dag som er x antall dager fra nå. Eventuelt har man flere devicer med hver sin trigger som ser ett forskjellig antall dager inn i framtiden. 

Kunne det være noe?

 

@Nettopp Beklager at jeg ikke har fått tid til å lage noe dokumentasjon, men løsningen er egentlig klar i versjonen som har ligget ut en stund. Jeg skal få oppdatert så fort jeg finner tid til å dokumentere.

 

@toonwolf du er heller ikke glemt. Hvis jeg fikser JohnMartins behov bør jeg klare å fikse ditt også. Jeg må bare snuse litt mer på dokumentasjonen til Blade for å se hva man setter. Det er en stor sjanse for at det jeg lager blir litt anderledes (det sier jeg uten å ha sett så mye på det han har laget).

Endret av Guahtdim
Lenke til kommentar
Del på andre sider

6 hours ago, Guahtdim said:

Jeg har drodlet litt rundt med ideen og ser for meg at det du trenger en trigger som kan "se inn i framtiden". Man har en device man setter hvis man finner ett søkeord innenfor en dag som er x antall dager fra nå. Eventuelt har man flere devicer med hver sin trigger som ser ett forskjellig antall dager inn i framtiden. 

Kunne det være noe?

 

Er ikke så god på å visualisere meg eventer, men tror det skal løse problemet.

Da kan jeg endre en device til gitt verdi, om plugin finner en kalender oppføring innen de neste 24 timene. :)

Lenke til kommentar
Del på andre sider

Etter å ha testet min egen kode(jeg trodde faktisk jeg kjørte den) så ser jeg at endringen jeg gjorde for å få linux til å fungere gjør at koblingen mot google bare virker i 60 minutter. Og jeg skjønner ikke helt hvordan jeg skal få rettet dette.

 

Jeg kommer til å endre tilbake slik at de som bruker windows får en fullt funksjonell plugin, mens linux-brukere må avvente inntil videre til jeg klarer å skjønne hvordan man egentlig skal få dette til.

 

Endret av Guahtdim
Lenke til kommentar
Del på andre sider

Eller lager jeg storm i ett vannglass? Jeg trenger litt tilbakemeldinger her. Etter å ha sjekket selv via Myhs nå så ser jeg at min plugin fortsatt reagerer som den skal til tross for at det er over 60 min siden jeg måtte autorisere på nytt.

 

Skrik ut de som har kjørt versjon 0.0.0.4 og gi meg litt erfaringer hvis det skulle være slik at den stopper opp.

Lenke til kommentar
Del på andre sider

Jeg testet raskt (har 0.0.0.4 installert, men har ikke tatt den i bruk til noe enda) og det er ut til at det ikke fungerer hos meg. Får bare     GCalSeer-Error    Can not connect to Google due to missing authorization for hver kalender den prøver å sjekke. Det jeg gjorde var å autorisere, vente en stund (90 minutter ca), lage en event i HS og legge inn en matchende event i kalenderen. Jeg var innom GCalseer config et par ganger etter at autorisasjonen gikk ut, så det er jo mulig at det var det som ødela for meg.

 

Uten at jeg vet veldig mye om hvordan disse apiene fungerer så høres for meg ut som om at refresh-token ikke blir brukt for å hente et nytt access-token når det går ut etter 60 min. 

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.