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

Generelt om scripting


Moskus

Anbefalte innlegg

Hva er scripting?
De fleste litt større systemer støtter scripting i en eller annen form. Ettersom det er så mye de forskjellige systemene kan gjøre, så er det ikke sikkert at utviklerne har tenkt på alle muligheter som er mulig å få til og legger muligheter for det inn i Event-motorene sine. Det er der scripting kommer inn. Det er en enkel måte å utvide mulighetene i hjemmeautomasjonssystemet sitt.
 
Noen bruker python, ande LUA. HomeSeer er skrevet i .NET og bruker VB.net (og C#) som scriptspråk, og det er en stor del av grunnen til at jeg valgte HomeSeer som styringssystem. Jeg har programmert mye i VB og VB.net (og mer og mer C#), så å kunne bruke samme språk i HomeSeer er jo en enorm fordel. Når det er sagt så er jo ikke LUA så langt borte fra VB.
 
Pr. default er ikke hele .NET biblioteket tilgjengelig som scripting, men de mest brukte funksjonene er der (og det er ikke lite bare det). Man har imidlertid mulighet til å legge til referanser selv hvis man ønsker det.
 
 
Hva trenger jeg?
I utgangspunktet trenger du ingenting, utenom litt kunnskap om VB, .NET og HomeSeer. Hvis du ikke har noe av dette, men likevel kan tenke deg å scripte litt så er det her en liten liste:

 


Men... plugins?
"Hvis scripting er så genialt, hvorfor lages det plugins?"
Fordi å lage plugins gir enda større frihet, selv om det er mer arbeid. I en plugin kan man bruke hele .NET biblioteket av funksjoner uten å tenke på om det er støttet ut av esken eller ei. Så hvis man skal lage et system for å lese og skrive til en server (som Fitbit-plugin'en) eller til en kaffetrakter, så er det mye lettere med en plugin der man uten videre kan opprette nye tråder, bruke LiNQ, og lage en enda tettere integrering i HS3.
 
HST har gjort mye smart i SDKet sitt, men personlig synes jeg de utgangspunktene de hadde laget i beste fall var vanskelige å forstå. De som ønsker å se på plugins, kan istedenfor se på mitt eget pluginsample. Det finner du her: http://board.homeseer.com/showthread.php?t=177339
 
 

  • Like 2
Lenke til kommentar
Del på andre sider

  • 10 måneder senere...
  • 6 måneder senere...

Hva kan denne feilmeldingen komme av?

 

Compiling script C:\Program Files (x86)\HomeSeer HS3\scripts\sms.vb: Navneområdet eller typen som er angitt i importene System.Core, inneholder ikke noe felles medlem eller finnes ikke. Kontroller at navneområdet eller typen er definert og inneholder minst ett felles medlem. Kontroller at det importerte elementnavnet ikke bruker noen aliaser.

 

 

Lenke til kommentar
Del på andre sider

5 timer siden, Andreas skrev:

Hva kan denne feilmeldingen komme av?

Compiling script C:\Program Files (x86)\HomeSeer HS3\scripts\sms.vb: Navneområdet eller typen som er angitt i importene System.Core, inneholder ikke noe felles medlem eller finnes ikke. Kontroller at navneområdet eller typen er definert og inneholder minst ett felles medlem. Kontroller at det importerte elementnavnet ikke bruker noen aliaser.

 

Kan du dele scriptet?

Lenke til kommentar
Del på andre sider

  • 9 måneder senere...
  • 1 måned senere...

Jeg holder på å rediger et script og "Now.ToLongTimeString" gir meg klokkeslett akkurat nå. Jeg skulle gjerne hatt klokkeslettet fra "Last Change" på en spesifikk divice. noen som vet koden for det eller kan peke meg i retning av riktig lesestoff?

Endret av Ruud
Løst
Lenke til kommentar
Del på andre sider

  • 1 måned senere...

Takk Moskus. Det fungerte glimrende. Nå er jeg i en ny setting der jeg kun ønsker klokkeslettet og ikke både dato og klokkeslett?

 

eks: 

Now.ToString("ddd") & " " & hs.DeviceLastChangeRef(649) & " - " & hs.DeviceValueEx(649) & "°C"

gir meg dette: søn. 16.09.2018 07.09.37 - 4,4°C

Jeg ønsker dette: søn 07.09.37 - 4,4°C

Lenke til kommentar
Del på andre sider

Spørsmål. Hvorfor henter du dagen fra Now? Det er det jo strengt tatt ingen garanti for. ;)

 

"Now" og "hs.DeviceLastChangeRef" returnerer begge et "Date" objekt. Dermed kan du formatere dem som du ønsker. :)

hs.DeviceLastChangeRef(649).ToString("ddd dd.MM.yy") & " - " & hs.DeviceValueEx(649) & "°C"

 

  • Like 1
Lenke til kommentar
Del på andre sider

Jeg trenger ikke datoen men klokkeslettet, dermed endret jeg "ddd dd.MM.yy" til "ddd hh:mm" men det fungerte ikke. 

 

Her kan du se hele codelinja: Dim newText As String =  hs.DeviceLastChangeRef(649).ToString("ddd hh:mm") & " - " & hs.DeviceValueEx(649) & "°C"

 

fikk dette i logen: Running script C:\Program Files (x86)\HomeSeer HS3\scripts\Lekestue-MAX-historisk-Uke.vb :Målet forårsaket et unntak under aktivering.Konvertering fra strengen ddd hh:mm til typen Integer er ikke gyldig.

 

Endret av Ruud
Lenke til kommentar
Del på andre sider

  • 1 måned senere...

Usikker på om dette er rett sted å spørre, men prøver å stake kursen fremover når det kommer til HA.

Bruker i dag Fibaro HC2, hvor jeg er avhenging av å lære LUA coding, for å få laget det oppsettet jeg trenger.

Ved å kjøpe en lærebok i LUA vil man likevell ikke være i mål, da det er et tilpasset LUA språk som er benyttet i HC2 (er jeg blitt fortalt).

 

Har tidligere ønsket å lære C, da dette kan bli brukt i elektronikk prosjekter, f.eks med PIC.

Kjøpte boken C Programming Absolute Beginner's Guide (3rd Edition) tidligere men kom ikke i gang med denne da jeg hadde andre prosjekter.

 

Sitter nå og tenker at når jeg først må lære et språk, burde det kunne brukes til mest mulig av det jeg kan komme bort i.

 

Så spørsmålene (etter mye svada) er hvor mye forskjell er det på C og C#?

Kan jeg bruke læreboken jeg allerede har for å lære å programmere C# i Homeseer?

Hvis jeg lærer C#, vil den programmeringen kunne brukes på programmering av microkontrollere som PIC?

 

Sikkert noen dobble facepalms nå, eller skrivebord med pannemerker i. men er helt grønn på dette området.

 

 

Lenke til kommentar
Del på andre sider

Takker, har vært innom noen nettsider, men forstår ikke mye av faguttrykkene.

Har dog fått inntrykket av at det å lære C er omtrent like relevant for å kunne programmere C#, som det å lære LUA.

 

Får fortsette å tenke en stund til.

Det kommer kanskje tilbud på Homeseer neste mnd, så vurderer hvorvidt jeg skal knote meg fremover med et tilpasset LUA eller prøve en annen vei.

 

Lenke til kommentar
Del på andre sider

  • 2 måneder senere...
On 20/10/2018 at 22:44, Teza said:

...

Så spørsmålene (etter mye svada) er hvor mye forskjell er det på C og C#?

Kan jeg bruke læreboken jeg allerede har for å lære å programmere C# i Homeseer?

Hvis jeg lærer C#, vil den programmeringen kunne brukes på programmering av microkontrollere som PIC?

...

 

 

 

Lærer du deg C er det veldig mye enklere å lære seg C# etterpå. Lærer du deg C# først kan fortsatt C være en nøtt å knekke. 

 

C# er ett mer høynivåspråk som gjør veldig mye i bakgrunnen som man slipper å tenke på. C derimot er vel noe av det mer komplekse språket man har før man er helt nede på maskinkode.

 

Men etter å ha lest opp og ned i mente om HS så er nok språket man bør bruke VB.net. VisualBasic.net har en syntaks som er grusom spør du meg ;) Føles som jeg er tilbake på 90-tallet før internet var allemannseie.

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.