ØysteinHJ Skrevet 4. juli 2019 Skrevet 4. juli 2019 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? Siter
Moskus Skrevet 4. juli 2019 Skrevet 4. juli 2019 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) 1 Siter
ØysteinHJ Skrevet 4. juli 2019 Forfatter Skrevet 4. juli 2019 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). ? 1 Siter
Moskus Skrevet 4. juli 2019 Skrevet 4. juli 2019 2 timer siden, ØysteinHJ skrev: 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 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. 1 Siter
ZoRaC Skrevet 4. juli 2019 Skrevet 4. juli 2019 6 minutter siden, Moskus skrev: ... og nå er jeg redd det er for sent. Hvor vanskelig er det for dem å legge til dette i koden sin da? Sitat Function setDeviceValue(refid, value) { return setDeviceValueByRef(refid, value) } (Tatt på husken) Er nok bare viljen det står på, det tar dem 2 minutter...! Siter
Moskus Skrevet 4. juli 2019 Skrevet 4. juli 2019 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. Siter
ØysteinHJ Skrevet 4. juli 2019 Forfatter Skrevet 4. juli 2019 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. Siter
ØysteinHJ Skrevet 4. juli 2019 Forfatter Skrevet 4. juli 2019 3 minutter siden, Moskus skrev: Strengt tatt burde det være mulig å bruke overrides (altså flere funksjoner med forskjellig input) Overloading, er der ikke? I hvert fall i C#. Siter
ØysteinHJ Skrevet 4. juli 2019 Forfatter Skrevet 4. juli 2019 6 minutter siden, Moskus skrev: F.eks. har de hs.DeviceValue for å hente device-verdien i heltall og hs.DeviceValueEX for å hente device-verdien som desimaltall. 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. ? Siter
Moskus Skrevet 4. juli 2019 Skrevet 4. juli 2019 1 minutt siden, ØysteinHJ skrev: Overloading, er der ikke? I hvert fall i C#. 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. Akkurat nå, ØysteinHJ skrev: 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. 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. Siter
Moskus Skrevet 4. juli 2019 Skrevet 4. juli 2019 6 minutter siden, ØysteinHJ skrev: Merk at jeg prater C# her. Har ikke peiling på VB-skript, så aner ikke om det er overførbart. ? 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. Siter
ØysteinHJ Skrevet 4. juli 2019 Forfatter Skrevet 4. juli 2019 19 minutter siden, Moskus skrev: Kanskje verdt å ta kampen en gang til med HS4. Vet du hvor langt unna HS4 er? Tenker litt lisenskjøp også. ? 20 minutter siden, Moskus skrev: 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 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. ? Siter
ØysteinHJ Skrevet 4. juli 2019 Forfatter Skrevet 4. juli 2019 13 minutter siden, Moskus skrev: Jeg kan nå begge deler. Hehe.. En kosekvens av HomeSeer-hobby? 17 minutter siden, Moskus skrev: Men ellers er VB.net mye enklere å lese: Det er som å skrive pseudo-kode og leselig for alle. Ja, ser at skripting blir helt nødvendig for meg å sette meg inn i. Siter
Moskus Skrevet 5. juli 2019 Skrevet 5. juli 2019 10 timer siden, ØysteinHJ skrev: Vet du hvor langt unna HS4 er? Tenker litt lisenskjøp også. ? 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. 10 timer siden, ØysteinHJ skrev: Hehe.. En kosekvens av HomeSeer-hobby? 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#. Siter
Anbefalte innlegg
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.