Gå til innhold
  • Bli medlem

Anbefalte innlegg

Skrevet

Jeg har en virtual device i HS3 (Heat Pump Target Temperature) som jeg bruker til å sette måltemperaturen på varmepumpen via Sensibo.  Så hvis Heat Pump Target Temperature endres og vi er hjemme, videresendes temperaturen til varmepumpen direkte.  Hvis den endres når det er natt eller når vi er borte, så gjøres ingenting ettersom varmepumpen er satt ned på 16 grader for å spare strøm.  Men på morgenen igjen, vil verdien i Heat Pump Target Temperature bli satt i varmepumpen.

 

I HS3 fungerer dette fint, både ved å sette Heat Pump Target Temperature direkte, samt å bruke verdien i events i løpet av dagen.

 

Men hvordan kan jeg endre verdien på en virtual device fra HSTouch?  Jeg har to knapper som jeg ønsker å endre verdien i steg, enten opp eller ned.

 

Jeg har kommet så langt at jeg har laget en manuell event i HS3 som kjører et skript for å heve eller senke verdien på Heat Pump Target Temperature.  Og jeg kan trigge eventen fra HSTouch.  Men skriptet gjør ikke jobben sin.

 

Jeg har prøvd hs.SetDeviceString, som setter verdien i Status-feltet.  Men da følger ikke Control-feltet med.  Hva er riktige måten å gjøre dette på?  Og trenger jeg å ta høyde for ytre grenser på device'en, eller håndteres det av seg selv siden den bare kan settes til verdier 16-30 grader?

 

 

2019-07-04 12_47_16-Window.png

Skrevet
hs.SetDeviceValueByRef(dev_ref, hs.DeviceValue(dev_ref) + 1, True)

for å justere opp... og

hs.SetDeviceValueByRef(dev_ref, hs.DeviceValue(dev_ref) - 1, True)

for å justere ned. :) 

 

Alle "dev_ref" må endres til deviceIDen til "Heat Pump, Target Temperature"-IDen (den står øverst på Advanced-tab'en på device property siden)

  • Like 1
Skrevet

Takker og bukker! Skal teste det ut. 

 

Må fordype meg litt i det grensesnittet til HS. Er ikke helt klart for meg hvorfor en har SetDeviceValueByRef-metode og GetDeviceValue-metode som begge bruker RefID til device som input, men ikke kan bruke SetDeviceValue (som jeg prøvde før jeg postet spørsmålet, men ikke fikk til å fungere). ?

  • Like 1
Skrevet
  ØysteinHJ skrev (På 4.7.2019 den 16.44):

Er ikke helt klart for meg hvorfor en har SetDeviceValueByRef-metode og GetDeviceValue-metode som begge bruker RefID til device som input, men ikke kan bruke SetDeviceValue

Ekspander  

Og akkurat DER oppsummerte du det absolutt dummeste valget HomeSeer-folka gjorde i 2013. Ja, det er inkonsekvent og helt fjernt. Man kan ikke ødelegge APIens egen struktur slik.

 

... og nå er jeg redd det er for sent.

  • Like 1
Skrevet
  Moskus skrev (På 4.7.2019 den 19.18):

... og nå er jeg redd det er for sent.

Ekspander  

 

Hvor vanskelig er det for dem å legge til dette i koden sin da?

  Sitat

Function setDeviceValue(refid, value) {

return setDeviceValueByRef(refid, value)

}

Ekspander  

 

(Tatt på husken)

 

Er nok bare viljen det står på, det tar dem 2 minutter...!

Skrevet

Nei, fordi SetDeviceValue-funksjonen finnes allerede. Strengt tatt burde det være mulig å bruke overrides (altså flere funksjoner med forskjellig input), men HS er merkelig nok ikke glad i det. F.eks. har de hs.DeviceValue for å hente device-verdien i heltall og hs.DeviceValueEX for å hente device-verdien som desimaltall.

 

Det er ikke galt. Bare gammelt. :) 

Skrevet

Men det er jo allerede en SetDeviceValue-funksjon (tenkte .NET med "metode" i forrige innlegg). Vil endringen din ødelegge annen oppførsel?

 

Forhåpentligvis blir "rusk og rask" fra HS3 endret i HS4, med mulighet for "legacy" for å støtte gammel konfigurasjo.

Skrevet
  Moskus skrev (På 4.7.2019 den 19.37):

F.eks. har de hs.DeviceValue for å hente device-verdien i heltall og hs.DeviceValueEX for å hente device-verdien som desimaltall.

Ekspander  

Det tror jeg forresten ikke du slipper unna. Hvis metode-navnet er det samme, tror jeg returverdien også må være det samme. Men det går jo an å bruke "out" parameter da.

 

Merk at jeg prater C# her. Har ikke peiling på VB-skript, så aner ikke om det er overførbart. ?

Skrevet
  ØysteinHJ skrev (På 4.7.2019 den 19.41):

Overloading, er der ikke? I hvert fall i C#.

Ekspander  

Jo, wops! :) 

 

Jeg har sagt det mange ganger at det er fint mulig å overloade funksjoner og rutiner i .NET, men har ikke vunnet fram så langt. Det var strengt tatt ikke mulig i VB5.0 så vidt jeg husker, men DET begynner å bli lenge siden. ;) 

 

Kanskje verdt å ta kampen en gang til med HS4. :) 

 

  ØysteinHJ skrev (På 4.7.2019 den 19.46):

Det tror jeg forresten ikke du slipper unna. Hvis metode-navnet er det samme, tror jeg returverdien også må være det samme. Men det går jo an å bruke "out" parameter da.

Ekspander  

Jo, men hvorfor trenger man to funksjoner? 24 og 24,0 er det samme tallet. Hvis man lagrer et heltall i devicen, så får man et heltall ut, desimaltall hvis ikke.

 

Det ble gjort for å "lette overgangen" fra HS2, men siden overgangen var såpass stor uansett kunne man bare tatt 10 minutter ekstra for å gi en fornuftig struktur.

Skrevet
  ØysteinHJ skrev (På 4.7.2019 den 19.46):

Merk at jeg prater C# her. Har ikke peiling på VB-skript, så aner ikke om det er overførbart. ?

Ekspander  

Jeg kan nå begge deler. Nesten alt man kan i C# kan man i VB.net også, forskjellene er omtrent ikke-eksisterende nå. Men synes C# har noen fordeler med forenkling av syntax, spesielt når det gjelder lambda-funksjoner.

 

Men ellers er VB.net mye enklere å lese: Det er som å skrive pseudo-kode og leselig for alle. :) 

Skrevet
  Moskus skrev (På 4.7.2019 den 19.52):

Kanskje verdt å ta kampen en gang til med HS4. :)

Ekspander  

Vet du hvor langt unna HS4 er? Tenker litt lisenskjøp også. ?

 

  Moskus skrev (På 4.7.2019 den 19.52):

Jo, men hvorfor trenger man to funksjoner? 24 og 24,0 er det samme tallet. Hvis man lagrer et heltall i devicen, så får man et heltall ut, desimaltall hvis ikke.

Ekspander  

Det har med datatypen på returverdien å gjøre. Er ganske sikker på at det ikke går an å overloade metoder med forskjellig retur-datatype. Men det finnes jo masse måter å snike det til. ?

Skrevet
  Moskus skrev (På 4.7.2019 den 20.01):

 Jeg kan nå begge deler.

Ekspander  

Hehe.. En kosekvens av HomeSeer-hobby?

 

  Moskus skrev (På 4.7.2019 den 20.01):

Men ellers er VB.net mye enklere å lese: Det er som å skrive pseudo-kode og leselig for alle. :) 

Ekspander  

Ja, ser at skripting blir helt nødvendig for meg å sette meg inn i. 

Skrevet
  ØysteinHJ skrev (På 4.7.2019 den 20.14):

Vet du hvor langt unna HS4 er? Tenker litt lisenskjøp også. ?

Ekspander  

Det er vel sagt "i løpet av 2020". Men hvis vi skal trekke erfaringer fra HS2->HS3, så ble vel HS3 annonsert i 2010/2011, og sluppet i 2013...

 

Jeg hadde håpet at de gikk over på .NET Core, men jeg er redd at Core ikke har alle biblioteker. Det er ikke bare-bare å konvertere et såpass komplisert prosjekt.

 

  ØysteinHJ skrev (På 4.7.2019 den 20.19):

Hehe.. En kosekvens av HomeSeer-hobby?

Ekspander  

Haha, nei faktisk ikke. Det er en konsekvens at at hvis jeg skulle trenge hjelp av proffer når jeg koder i jobb-sammenheng, så er det mye lettere hvis prosjektet er i C#. ;) 

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.