Gå til innhold

Hjemmeautomasjon - Hva er det og hvorfor skulle jeg bry meg? (Automasjonskaféen)


Anbefalte innlegg

OI, en (Homeseer) server restart fikset det :confused:

 

Vel vel, videre til et annet lite spørsmål da:

Termostat timer scriptet har en Main rutine, når og fra hvor skal den kalles?

På Device change fra DevMaster?

 

Og hva skjer med timeren når serveren restarter? Holder Homeseer track på det og starter den igjen om den gikk?

Legg til dette i startup.txt i Main-sub'en:

	hs.run "Heating_Timer.vb"

.... og ved start/stopp av devMaster, som her:

 

j0J4c.jpg

 

 

 

... med "Min_termostat.vb" har du muligheter som dette:

174vY.jpg

 

 

:)

 

 

 

 

Hm. Prøver å lage en event som sender en epost når strømforbruket (OWL instant power) overstiger en gitt verdi, la oss si 3000 watt. Så da setter jeg inn Device OwlInstPower greater than 3000. Enkelt.

 

Men likevel trigges eventen på laverer verdier, her er emnefeltet i mailen, tatt med verdien av OwlInstPower v.h.a. variabelen $$DS:<deviceid>:

 

Høyt strømforbruk, 2.744

 

Eh?

 

Har også prøvd å la være å rekalkulere verdien slik at jeg ender opp med heltall, men det har ingen betydning.

Kan det være en "puls" (kan typisk hende når en ovn skrur seg på), og når scriptet kjøres så har verdien falt?

Lenke til kommentar
Videoannonse
Annonse

Legg til dette i startup.txt i Main-sub'en:

	hs.run "Heating_Timer.vb"

.... og ved start/stopp av devMaster, som her:

 

j0J4c.jpg

 

 

 

... med "Min_termostat.vb" har du muligheter som dette:

174vY.jpg

 

 

:)

 

 

 

 

Kan det være en "puls" (kan typisk hende når en ovn skrur seg på), og når scriptet kjøres så har verdien falt?

Nei, har prøvd med høye verdier også, samme resultat. :(

Lenke til kommentar

... MEN: $$DS er DeviceSTATUS. Det du er interessert i er DeviceVALUE, altså $$DV:whatever. Hva får du da?

Doh! Selvfølgelig, da virket det! :)

 

Hadde bare kopiert noe jeg hadde fra før - en tempsensor i z-wavenettet, der måtte jeg hente ut status for å få tallverdien, mens her var det tydeligvis omvendt. Najs, takk!

Lenke til kommentar

Lagre dette som "ScriptOn.vb" i Script-folderen:

Sub Main()
    hs.Transmit("A4+E2+F3", "On")
    hs.Transmit("A6", "Ddim", 60)
    hs.Transmit("F8", "Ddim", 75)
End Sub

... og lagre dette som "ScriptOff.vb":

Sub Main()
    hs.Transmit("A3+E1+A9", "Off")
End Sub

 

Når har jeg testet dette Moskus, 2 ting som ikke fungerer hos meg:

 

1. + tegnene

Kun den første blir kjørt, dokumentasjonen var noe vag men slik jeg skjønte måtte de være innenfor samme bokstav, men A4+3+6 fungerte heller ikke.

 

Pussig, aner du hva det kan være?

 

Jeg bruker bare 1 linje pr. device, ok med en ´beskrivelse på slutten. Siden vi kun har 40+ enheter er det håndterbart men ble irritert...

 

2. () parentesene

Kjører jeg:

 

moskus1.vb

Sub Main()
    hs.Transmit("I8", "Ddim", 60)
End Sub
Får jeg denne feilmeldingen:
06.10.2013 19:04:39 - Error - Scripting runtime error: System.Reflection.TargetParameterCountException: Antall parametere stemmer ikke overens. ved System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) ved System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) ved System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) ved Scheduler.VsaScriptHost.Invoke(String ModuleName, String MethodName, Object[] Arguments)

 

 

Kjører jeg den redigerte:

moskus2.txt

Sub Main()
    hs.Transmit "I8", "Ddim", 60
End Sub
Funker alt.

 

Slet med det samme tidligere med et annet script fra deg. Da ordnet jeg selv med fjerning av parenteser og .txt. Skulle vært greit og ryddet opp hvis jeg mangler et tillegg eller noe.

 

Takk for tålmodigheten.

Lenke til kommentar

 

Når har jeg testet dette Moskus, 2 ting som ikke fungerer hos meg:

 

1. + tegnene

Kun den første blir kjørt, dokumentasjonen var noe vag men slik jeg skjønte måtte de være innenfor samme bokstav, men A4+3+6 fungerte heller ikke.

 

Pussig, aner du hva det kan være?

 

Jeg bruker bare 1 linje pr. device, ok med en ´beskrivelse på slutten. Siden vi kun har 40+ enheter er det håndterbart men ble irritert...

 

2. () parentesene

Kjører jeg:

 

moskus1.vb

Sub Main()
    hs.Transmit("I8", "Ddim", 60)
End Sub
Får jeg denne feilmeldingen:

 

Kjører jeg den redigerte:

moskus2.txt

Sub Main()
    hs.Transmit "I8", "Ddim", 60
End Sub
Funker alt.

 

Slet med det samme tidligere med et annet script fra deg. Da ordnet jeg selv med fjerning av parenteser og .txt. Skulle vært greit og ryddet opp hvis jeg mangler et tillegg eller noe.

 

Takk for tålmodigheten.

 

 

1) + skal fungere, mener jeg nå, men du kan splitte dem opp i like statements, som dette:

Sub Main(Byval param as Object)
    hs.Transmit("A4", "On")
    hs.Transmit("E2", "On")
    hs.Transmit("F3", "On")
    hs.Transmit("A6", "Ddim", 60)
    hs.Transmit("F8", "Ddim", 75)
End Sub 

... er det Z-wave, så merker du egentlig ikke noe forskjell.

 

 

2) Paranteser. Det viktigste først: Glem VBscript (altså script i txt-filer), det er det liten vits å lære seg nå, og det er heller ikke støttet i HS3.

 

Det er mulig du MÅ sende parameter-variabelen, første linje er endret, se her:

Sub Main(Byval param as Object)
    hs.Transmit("I8", "Ddim", 60)
End Sub

Du trenger ikke bruke "input" til noe, men det kan være at .vb-script krever det. Jeg husker ikke, for å være ærlig... ;)

  • Liker 1
Lenke til kommentar

Igjen takk Moskus.

 

 

1) + skal fungere, mener jeg nå, men du kan splitte dem opp i like statements, som dette:

Sub Main(Byval param as Object)
    hs.Transmit("A4", "On")
    hs.Transmit("E2", "On")
    hs.Transmit("F3", "On")
    hs.Transmit("A6", "Ddim", 60)
    hs.Transmit("F8", "Ddim", 75)
End Sub 

... er det Z-wave, så merker du egentlig ikke noe forskjell.

 

 

OK, jeg fortsetter med 1 device pr. linje og ´kommentarer til slutt.

 

Er det forskjell fra Nexa til Z-Wave? Har kjøpt ny PC til Homeseer siden USB-stick i virtuell maskin ikke var en suksess. PC kommer i morgen, elektrikeren kommer i neste uke og da blir det veldig bra.

Sub Main(Byval param as Object)
    hs.Transmit("I8", "Ddim", 60)
End Sub

moskus3.vb funket bedre...

 

Følger ditt råd og bruker .vb fremover. Lite i tråden om HS3, jeg bestilte upgrade og leste litt om 3ern før ferien men beta-versjoner er ikke noe for meg.

 

Noe nytt om når den er final?

Endret av Morgens
Lenke til kommentar

Vi har hatt en Acer B1 på badet til HStouch og Netflix (Lille Prinsesse og Sauen Shaun mens elsdte datter sitter på potte om kvelden). Den har nå tatt kvelden antakeligvis pga fukt, iallfall er det litt av og på, og WiFi er i beste fall ustabil.

 

 

Trenger da et nettbrett som er sånn noenlunde vanntett. Noen tips? :)

 

En kompis bruker noen i nordsjøen, tunge og dyre men jeg kan sjekke. De har Panasonic laptops som tåler "alt" utenom ondsinnet kode. :confused:

Lenke til kommentar

EDIT:

Jeg tror jeg har tenkt ut en passende logikk.

 

BINGO, da er både "gjester" og "bortreist" funksjonen på plass.

 

Hele kvelden gikk med siden eventene ikke brydde seg om "condition". Google fant etterhvert frem til:

 

http://board.homeseer.com/showpost.php?p=1040793&postcount=15

 

Kjøring på tid fungerte mye bedre, håper buggen blir endret i 3ern.

 

Igjen 1000-takk til professor Moskus for bistand til manualfobimannen. Er glad at dette ble løst selv om kona freser og snakket nedsettende om "det xxxxx systemet DITT". :omg:

Lenke til kommentar

OK, jeg fortsetter med 1 device pr. linje og ´kommentarer til slutt.

 

Er det forskjell fra Nexa til Z-Wave? Har kjøpt ny PC til Homeseer siden USB-stick i virtuell maskin ikke var en suksess. PC kommer i morgen, elektrikeren kommer i neste uke og da blir det veldig bra.

Sub Main(Byval param as Object)
    hs.Transmit("I8", "Ddim", 60)
End Sub

moskus3.vb funket bedre...

 

Følger ditt råd og bruker .vb fremover. Lite i tråden om HS3, jeg bestilte upgrade og leste litt om 3ern før ferien men beta-versjoner er ikke noe for meg.

 

Noe nytt om når den er final?

Z-wave er vesentlig raskere enn Nexa (og har tilbakemelding, og mesh-nettverk). Men det er i hovedsak hastigheten man merker. Det er imidlertid ingenting som hindrer bruk av begge deler samtidig. :)

 

 

Hele kvelden gikk med siden eventene ikke brydde seg om "condition". Google fant etterhvert frem til:

 

http://board.homeseer.com/showpost.php?p=1040793&postcount=15

Når man manuelt trykker på "Run" så kjøres Actions i Eventet, helt uavhengig av hvordan det trigges eller tilhørende Conditions. Tror ikke det er en bug, men faktisk per design.

 

Når det er sagt så kan du velge "Manual with conditions" for Eventer som blir trigget av andre eventer.

Lenke til kommentar

 

... med "Min_termostat.vb" har du muligheter som dette:

 

Ble veldig inspirert av Termostat skriptet ditt og har bygget på mitt eget i mesteparten av ledig tid i helga.

(Er veldig uvant å programmere i notepad og debugge med hs.writelog men det er litt nostalgisk også :))

 

Prøver å lage noe generellt som både kan brukes til Aircondition (som skal ha IR og ikke vanlige ON/OFF kommandoer) og med masse dill-dall som natt og dag senking og ferie senking ;)

 

Tok også tipset fra deg tidligere om å la skriptet generere devicene. Så nå genererer "Ny_Termostat|]17" 14 devicer og 6-7 Actions :D

 

Egentlig ser jeg at jeg helst ville ha laget en plugin for dette men det får bli litt senere.

 

Tar gjerne feedback på koden når den blir presentabel...

Endret av Fermate
Lenke til kommentar

 

Ble veldig inspirert av Termostat skriptet ditt og har bygget på mitt eget i mesteparten av ledig tid i helga.

(Er veldig uvant å programmere i notepad og debugge med hs.writelog men det er litt nostalgisk også :))

 

Prøver å lage noe generellt som både kan brukes til Aircondition (som skal ha IR og ikke vanlige ON/OFF kommandoer) og med masse dill-dall som natt og dag senking og ferie senking ;)

 

Tok også tipset fra deg tidligere om å la skriptet generere devicene. Så nå genererer "Ny_Termostat|]17" 14 devicer og 6-7 Actions :D

 

Egentlig ser jeg at jeg helst ville ha laget en plugin for dette men det får bli litt senere.

 

Tar gjerne feedback på koden når den blir presentabel...

Jeg kikker gjerne på det! :)

 

Men 14 devicer? Høres veldig "overkill" ut. Kikk heller litt på devicevalues (tenk på det som en Enum). ;)

 

 

Man behøver absolutt ikke kun bruke Notepad, selv om du gjerne kan gjøre det. Jeg anbefaler å bruke tenScripting i Visual Studio (Express eller 2010/2012). Det kobler seg opp mot HS så man kan debugge før man lagrer scriptet i \Script-folderen, og man får IntelliSense. :)

Lenke til kommentar

Glemte en liten detalj:

 

Har kjøpt ny PC til Homeseer siden USB-stick i virtuell maskin ikke var en suksess.

Jeg kjører både Z-stick og RFXtrx via en Belkin Network USB Hub mot virtuelle maskiner. Fungerer utmerket.

http://www.ebay.com/itm/Belkin-USB-Network-Hub-Share-printers-Scanner-HD-USB-devices-over-network-/251306739526?pt=UK_Computing_NetworkingHubs_RL&hash=item3a830c8746

Lenke til kommentar

Man behøver absolutt ikke kun bruke Notepad, selv om du gjerne kan gjøre det. Jeg anbefaler å bruke tenScripting i Visual Studio (Express eller 2010/2012). Det kobler seg opp mot HS så man kan debugge før man lagrer scriptet i \Script-folderen, og man får IntelliSense. :)

 

Oh takk og lov! Herlig. Dette er AKKURAT det jeg ønsket meg. :):) :)

Jeg kjører Visual Studio 2008 på jobb. Er det bedre med 2010/2012?

 

Men 14 devicer? Høres veldig "overkill" ut. Kikk heller litt på devicevalues (tenk på det som en Enum). ;)

 

Joda jeg kjenner den Devicevalues. Har eksprimentert med å bruke den på selve temp settingen også. Fordelen er at en får veldig enkel og fin "bla liste" i HSTouch.

 

Ja klart det er Overkill ;) Droppet foresten "WorkDay senking", det er ingen grunn til å senke temparaturen på dagtid når det er varmere ute.

 

Men det blir en del devicer for å holde på alt vet du:

Main Control (On/OFF/AUTO)

Max Temp (med + - knapper fra ditt script)

Min Temp (Fordi Aircontition ikke kan ha samme 0,5 grader hysterese som El-ovnene)

Natt Senking (On/Off)

Natt Senking (Ant grader, og + - knapper)

Natt Kl Start (+ - 1 Time og 10 Min knapper)

Natt Kl Slutt (+ - 1 Time og 10 Min knapper)

Ferie senking (On/Off)

Ferie Senking Ant grader

Ferie dato Slutt (Med + 1 Dag og + 1 uke knapper)

 

Kunne kanskje slått Main Control og Ferie On/Off sammen..

 

Jeg har prøvd meg på en litt motsatt filosofi i denne versjonen:

Jeg bruker selve Homeseer så mye som mulig med Events, men skaper alt sammen fra kode med en eneste makro "Ny_termostat"

 

Pollingen av termostatene skjer med en "Check_all_termostats" Event som kjører hvert 10 min.

Slå av og på varmen skjer med Eventer der en kan legge inn hva en vil (som IR)

Eventer som sørger for å kjøre "Check_all_termostats" hver gang Control eller temp knapper brukes

osv

 

Alt jeg sitter igjen med i skript er selve "Check en termostat" fordi den er full av tester.

 

På en måte er det litt fint at alt blir så synlig, på en annen måte synes jeg at Web interfacet i Homeseer er rotete og uoversiktlig og at kode er raskere å lese...

Endret av Fermate
Lenke til kommentar

 

Oh takk og lov! Herlig. Dette er AKKURAT det jeg ønsket meg. :) :) :)

Jeg kjører Visual Studio 2008 på jobb. Er det bedre med 2010/2012?

Tja... 2010/2012 er bedre enn 2008 mener nå jeg, og for HS3 vil du måtte bruke 2012 (fordi det er .NET 4).

 

Ja klart det er Overkill ;) Droppet foresten "WorkDay senking", det er ingen grunn til å senke temparaturen på dagtid når det er varmere ute.

 

Men det blir en del devicer for å holde på alt vet du:

Main Control (On/OFF/AUTO)

Max Temp (med + - knapper fra ditt script)

Min Temp (Fordi Aircontition ikke kan ha samme 0,5 grader hysterese som El-ovnene)

Natt Senking (On/Off)

Natt Senking (Ant grader, og + - knapper)

Natt Kl Start (+ - 1 Time og 10 Min knapper)

Natt Kl Slutt (+ - 1 Time og 10 Min knapper)

Ferie senking (On/Off)

Ferie Senking Ant grader

Ferie dato Slutt (Med + 1 Dag og + 1 uke knapper)

 

Kunne kanskje slått Main Control og Ferie On/Off sammen..

 

Jeg har prøvd meg på en litt motsatt filosofi i denne versjonen:

Jeg bruker selve Homeseer så mye som mulig med Events, men skaper alt sammen fra kode med en eneste makro "Ny_termostat"

 

Pollingen av termostatene skjer med en "Check_all_termostats" Event som kjører hvert 10 min.

Slå av og på varmen skjer med Eventer der en kan legge inn hva en vil (som IR)

Eventer som sørger for å kjøre "Check_all_termostats" hver gang Control eller temp knapper brukes

osv

 

Alt jeg sitter igjen med i skript er selve "Check en termostat" fordi den er full av tester.

 

På en måte er det litt fint at alt blir så synlig, på en annen måte synes jeg at Web interfacet i Homeseer er rotete og uoversiktlig og at kode er raskere å lese...

Ganske ambisiøst! :) Jeg tror at med såpass mye arbeid ville jeg prøvd å implementere APIene for HVAC (se dokumentasjon). Men det er ikke sikkert det lar seg gjøre fra scripts, og da hadde jeg heller begynt på HS3-plugins nå. ;)

 

Ang. trigging er det jo kun valg av filosofi, Det er greit med konfigureringsmuligheter direkte fra HStouch, men min erfaring er at f.eks. tidspunkt og temperatur for nattsenking ikke er noe man har behov for å justere så ofte. Og da må jeg likevel lage egne eventer for det.

 

Her er mine eventer for temperatur. Det kan være forskjell på ukedager og helger, og "spesielle dager" som høytidsdager (romjul, påske, etc).

post-13975-0-00816800-1381217667_thumb.jpg

 

 

 

Jeg kan renskrive scriptet mitt for varmepumpe, og dele det med meg. Det er litt smartere, og tar bl.a. høyde for om temperaturen er på vei opp eller ned.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...