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

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 (endret)
9 timer siden, Salvesen skrev:

highTemp = hs.DeviceValueEx(highTempRef)

currentTemp = hs.DeviceValueEx(currentTempRef)

 

Må vel bli slik?

Endret av ZoRaC
Moskus ville ha linjeskift...
Skrevet

Ja.

Bare med linjeskit. ;) 

 

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

Skrevet
6 minutter siden, Moskus skrev:

Ja.

Bare med linjeskit. ;) 

 

Ikke min feil at du har så bred skjerm! :P 1FEEA3EC-1872-40F3-A8E1-706A91FB2558.jpeg.9feb68a1bface36491717d4c0ac0f3dc.jpeg

 

7 minutter siden, Moskus skrev:

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

 

Enig!

Skrevet (endret)
9 timer siden, ZoRaC skrev:

 

Må vel bli slik?

 

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 ?

 

1 time siden, Moskus skrev:

Ja.

Bare med linjeskit. ;) 

 

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

 

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)")

 

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
12 minutter siden, Moskus skrev:

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")

 

 

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
36 minutter siden, Salvesen skrev:

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

Ja, det går utmerket. :) 

  • Like 1
Skrevet
På 29.6.2018 den 8.12, Moskus skrev:

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

 

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
Akkurat nå, ZoRaC skrev:

Tipper du ikke har lagt inn en gyldig status range på devicen du opprettet?

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

Skrevet
2 minutter siden, Ruud skrev:

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

 

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

Skrevet
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.