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

Trigging av script, beste måte?


Salvesen

Anbefalte innlegg

Holder på å bygge om eventene mine til scripts for større muligheter og for å enklere lage nye events. Planen er å ha større bolker av scripts med subs som trigges av de forskjellige eventene slik at jeg kun har ett par større scripts filer å forholde meg til med en god del "standard" subs. Men, jeg er litt usikker på hvordan det er tiltenkt å trigge scripts i HS, eller rettere sagt hvordan gjør dere det? Har dere en trigger og behandler andre conditions i script? Ser for meg at scriptet eller sub da kan bli kjørt veldig ofte i noen situasjoner? Helst vill jeg ha minst mulig å gjøre med event editoren til HS da det tar alt for mye tid å sette ting opp IMO. 

 

evt har HS selv definert noen retningslinjer på effektiv bruk av script? 

Lenke til kommentar
Del på andre sider

45 minutter siden, Salvesen skrev:

Holder på å bygge om eventene mine til scripts for større muligheter og for å enklere lage nye events.

Ok, selv som en ihuga scripter må jeg spørre: Hvorfor?

Noe av fordelen med HS3 over versjon 2 er at det ikke er like stort behov for å scripte lenger. HS2 var god på eventer, men HS3 er vesentlig bedre (enn ganske mye annet).

 

47 minutter siden, Salvesen skrev:

Men, jeg er litt usikker på hvordan det er tiltenkt å trigge scripts i HS, eller rettere sagt hvordan gjør dere det? Har dere en trigger og behandler andre conditions i script? 

Eneste måten å trigge scripts på er fra Events. Men derfra er det opp til deg. Vil du trigge på klokkeslett, så gjør det. Vil du trigge på Device value change, så gjør det. Du velger selv om du skal sjekke conditions i scriptet eller om Eventet skal gjøre det.

 

49 minutter siden, Salvesen skrev:

Ser for meg at scriptet eller sub da kan bli kjørt veldig ofte i noen situasjoner?

Ja, det kan jo fort skje. Men det er opp til deg å forhindre at det skjer.

 

49 minutter siden, Salvesen skrev:

Helst vill jeg ha minst mulig å gjøre med event editoren til HS da det tar alt for mye tid å sette ting opp IMO.

Vet ikke om jeg er enig i det, men OK.

 

Jeg bruker scripts kun hvis det er enklere å sette enn å sette opp et Event.

 

Eksempel: CloneDevice.vb er det teknisk sett mulig å sette opp som eventer, men det vil kreve 100 eventer (for verdier 0 Off til 100 On, alle med conditions og triggere, etc. I praksis forferdelig komplisert og unødvendig. Et script er mye enklere.

 

Jeg bruker fremdeles CloneDevice.vb selv om HomeSeer nå har fått "linked devices" innebygget. Fordi scriptet kan bruke conditions, noe "linked devices" ikke kan. Altså blir stue-devicene "linket" når vi ikke er på ferie, for da styrer jeg spesifikt enkelte lamper istedenfor.

 

 

Med en gang man skal bruke en løkke eller veldig avanserte conditions (hvis det, men ikke når det og det) er det fornuftig med scripts.

 

F.eks. tok det liten tid å sette opp events for alle lys styrt av bevegelse. Man lager et ferdig Event, og kopierer det. Så er det bare å bytte ut lys nedover. Ja, det er litt kjedelig arbeid, men når man er ferdig er det vesentlig lettere å finne frem i når man skal endre noe eller bytte ut en device, etc.

 

For events kan man filtrere ut kun bestemte devicer og det er VELDIG praktisk. Den muligheten mister man når man bruker scripts, for filteret leter ikke i script-filene...

 

 

 

Mitt råd er: Tenk deg godt om, og bestem deg for hva du faktisk vil oppnå. Å kode er utmerket, spesielt med TenScripting (som er obligatorisk for mer avanserte scripts enn hs.WriteLog("Hello", "World")), men det er ikke sikkert det er den mest "kostnadseffektive" løsningen.

 

"If all you have is a hammer, then everything looks like a nail" er nødvendigvis ikke best tilnærming... ;) 

 

 

Lenke til kommentar
Del på andre sider

Akkurat nå, Moskus skrev:

 

 

 

 

Sitat

Ok, selv som en ihuga scripter må jeg spørre: Hvorfor?

Noe av fordelen med HS3 over versjon 2 er at det ikke er like stort behov for å scripte lenger. HS2 var god på eventer, men HS3 er vesentlig bedre (enn ganske mye annet).

 

En av hovedgrunnene er at jeg synes det er tungvindt å jobbe i event editoren og vill helst slippe dette og heller ha klar kode i bakgrunn som jeg enkelt kan legge til i editoren med parameter. Mer generalisering som sikkert fint kan gjøres i editoren også, men ønsker helst å holde meg til script da det er dette jeg er vandt til fra jobb og ellers :) 

 

Sitat

Eneste måten å trigge scripts på er fra Events. Men derfra er det opp til deg. Vil du trigge på klokkeslett, så gjør det. Vil du trigge på Device value change, så gjør det. Du velger selv om du skal sjekke conditions i scriptet eller om Eventet skal gjøre det.

Sitat

Ja, det kan jo fort skje. Men det er opp til deg å forhindre at det skjer.

 

Ja her er noe av "problemet" mitt med hvordan jeg har lyst til å gjøre det ift hvordan det faktisk skjer i HS3. Som ett eksempel kan vi ta enkel av på styring av ovn på ett rom. For å trigge eventen ser jeg gjerne på en grense, si 23 grader. Er den under vill jeg kjøre en sub fra ett script hvor jeg har definert en god del parameter for å gjøre det veldig allsidig ift å konfigurere forskjellige rom eller situasjoner, men sjekker jeg kun trigging på temp mindre enn det jeg ønsker og tar andre sjekker som om varmen allerede er på osv i script så vill jo sub bli trigget en god del ganger før tempen går over grensen, og det er jo unødvendig. Fikses jo med å sjekke om varme allerede er på i event editoren men da mister jeg mye av det genrelle igjen. 

 

Ja, jeg er absolutt i tenkeboksen og prøver ut en del forskjellig for å finne den beste måten å gjøre dette på :)

Lenke til kommentar
Del på andre sider

50 minutter siden, Salvesen skrev:

For å trigge eventen ser jeg gjerne på en grense, si 23 grader.

Nei. Dette vil trigge hvert sekund temperaturen er under 23 grader. Helt unødvendig.

 

For å trigge eventet, så trigger du istedenfor på Device Value Change. Når temperaturen endrer seg, så kjører scriptet og gjør det den skal med rommets varmekilde basert på temperatur (og du sender begge deler inn i scriptet med parametre). Hvis du vil at dette skal trigge på andre hendelser også, så får du legge de inn spesifikt som ekstra triggere (et event kan ha mange triggere) i tillegg.

 

Se VirtualThermostat.vb :) 

Det settes riktignok opp med sjekk hvert X minutt, men det er anbefalt å endre manuelt (for det kan ikke settes opp programmatisk). ;)

MEN nå sies det att Callbacks også fungerer med scripts, så jeg må kanskje oppdatere scriptet snart.

Lenke til kommentar
Del på andre sider

Akkurat nå, Moskus skrev:

Nei. Dette vil trigge hvert sekund temperaturen er under 23 grader. Helt unødvendig.

 

For å trigge eventet, så trigger du istedenfor på Device Value Change. Når temperaturen endrer seg, så kjører scriptet og gjør det den skal med rommets varmekilde basert på temperatur (og du sender begge deler inn i scriptet med parametre).

 

Se VirtualThermostat.vb :) 

Det settes riktignok opp med sjekk hvert X minutt, men det er anbefalt å endre manuelt (for det kan ikke settes opp programmatisk). ;)

MEN nå sies det att Callbacks også fungerer med scripts, så jeg må kanskje oppdatere scriptet snart.

 

Joda, jeg forklarte meg bare dårlig der. Bruker alltid change. Men endringer vill skje etterpå også. Som igjen vill trigge mer enn "nødvendig". 

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.