Gå til innhold
  • Bli medlem

Hvordan lage en device som viser max temperaturen til en annet device?


Anbefalte innlegg

Skrevet

Egentlig ønsker jeg å lage en device(x) som viser datoen og klokkeslette plus temperaturen fra en spesefik device(xx). Denne skal selvfølgelig kun oppdateres hvis temperaturen er høyere i device(xx) en temperaturen i device(x).

 

Er det noen som har en fin oppskrift på dette?

Skrevet (endret)
highTempRef = hs.GetDeviceRefByName(device(x))
currentTempRef = hs.GetDeviceRefByName(device(xx))
highTemp = hs.DeviceValueEx(highTemp)
currentTemp = hs.DeviceValueEx(currentTemp)

If currentTemp > highTemp Then
	hs.SetDeviceValueByRef(highTempRef, currentTemp,true)
End If

Om jeg forstår deg rett så vill noe slik fungere. 

Endret av Salvesen
  • Like 1
Skrevet

Ja.

Bare med linjeskit. ;) 

 

Personlig hadde jeg hoppet bukk over hs.GetDeviceRefByName fordi det stort sett er enklere å finne Device Ref selv.

Skrevet (endret)
  ZoRaC skrev (På 28.6.2018 den 21.43):

 

Må vel bli slik?

Ekspander  

 

Hehe oops en liiiiten bug der ja :P Ikke uvanlig for meg når jeg ikke tester for å være ærlig ? Skylder det på at jeg liker feilsøking ?

 

  Moskus skrev (På 29.6.2018 den 6.12):

Ja.

Bare med linjeskit. ;) 

 

Personlig hadde jeg hoppet bukk over hs.GetDeviceRefByName fordi det stort sett er enklere å finne Device Ref selv.

Ekspander  

 

Jeg hadde nok droppet en del av dette selv for å spare minne osv, men synes det ble oversiktlig slik for de som ikke er så vandt til å scripte/bruke hs script. Men jeg tar meg selv i å bruke denne funksjonen ofte. Usikker på hvorfor :P Henger gjerne igjen fra da jeg hadde HS på rasp.pi og alt gikk i sirup og jeg husket navnene i hodet og ikke ref nummer :P

 

EDIT: Når jeg tenker meg om må nok variablene innkapsles i "" da det er string som input om jeg ikke husker helt feil? Altså:

 

  Sitat
highTempRef = hs.GetDeviceRefByName("device(x)")
currentTempRef = hs.GetDeviceRefByName("device(xx)")
Ekspander  

 

EDIT2: Usikker på om en device kan ha parenteser i navnet, men regner med TS ikke hadde tenkt til dette i utgangspunktet :)

Endret av Salvesen
Skrevet

Alt mellom "..." er en streng, så du kan bruke hva du vil. :)

 

Synes imidlertid betegnelsen er litt rar, for det er ikke en funksjon av x. ;)

highTempRef = hs.GetDeviceRefByName("navn på device 1")

 

Skrevet
  Moskus skrev (På 29.6.2018 den 7.46):

Alt mellom "..." er en streng, så du kan bruke hva du vil. :)

 

Synes imidlertid betegnelsen er litt rar, for det er ikke en funksjon av x. ;)

highTempRef = hs.GetDeviceRefByName("navn på device 1")

 

Ekspander  

 

Ja jeg tenkte mer når en oppretter en device i HS, om en kan bruke parantes? aldri testet :)

 

Forøvrig enig, det trigger OCD'en min ??

Skrevet
  Moskus skrev (På 29.6.2018 den 6.12):

Personlig hadde jeg hoppet bukk over hs.GetDeviceRefByName fordi det stort sett er enklere å finne Device Ref selv.

Ekspander  

 

Ja men hvordan........ jeg er virkelig dårlig på scripting, jeg kan kun å kopiere ander :)

 

Sub Main(ByVal parm As Object)

highTempRef = hs.GetDeviceRefByName(626) 
currentTempRef = hs.GetDeviceRefByName(608)

highTemp = hs.DeviceValueEx(highTempRef)
currentTemp = hs.DeviceValueEx(currentTempRef)

If currentTemp > highTemp Then
    hs.SetDeviceValueByRef(highTempRef, currentTemp,true)
End If

 

Dette fungerer veldig dårlig hos meg!!!!!!!!

Skrevet (endret)

Prøv slik: 

Sub Main(ByVal parm As Object)

Dim highTemp As Float = hs.DeviceValueEx(626)
Dim currentTemp As Float = hs.DeviceValueEx(608)

If currentTemp > highTemp Then
    hs.SetDeviceValueByRef(626, currentTemp,true)
End If

End Sub

Endret av ZoRaC
Skrevet

Tusen takk ZoRaC,  Nå er jeg noen hak nærmere men dessverre ikke helt i mål. nå er det bare 3 feil i loggen, vet du hva jeg kan ha gjort feil?

 

jun-30 21.42.31   Error Compiling script C:\Program Files (x86)\HomeSeer HS3\scripts\max.vb: Typen Float er ikke definert.
jun-30 21.42.31   Error Compiling script C:\Program Files (x86)\HomeSeer HS3\scripts\max.vb: Typen Float er ikke definert.
jun-30 21.42.31   Error Compiling script C:\Program Files (x86)\HomeSeer HS3\scripts\max.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 jeg ha gjort noe feil når jeg opprettet device 626?

Skrevet

Jepp - nå kjører skriptet uten feilmeldinger.

På divice 626 ble "Last Change" oppdatert men,  det viser ingen temperatur på devicen??

 

Skjermbilde 2018-06-30 kl. 21.55.30.png

Skrevet
  Ruud skrev (På 30.6.2018 den 20.01):

Det har du helt sikker rett i, hvordan gjør jeg det?

Ekspander  

 

Gå inn på devicen, fanen status graphics. Slett de to on/off som er der og lag en statusrange fra -50 til 50. :) 

Skrevet
  ZoRaC skrev (På 30.6.2018 den 20.38):
Jeg ville forresten brukt EasyTrigger-plugin og droppet scriptet. Før eller siden trenger man ET uansett. [emoji14] 

Helt enig. ET har utrolig mange fine funksjoner og utvikles stadig. Billig er den og.
Skrevet

Ja. EasyTrigger er veldig bra.

 

Men det er praktisk å kunne scripte også, selv om det (heldigvis) ikke er nødvendig i mange tilfeller. ;) 

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.