Script voor opdelen devicestring.

Forum over Homeseer scripts (DUTCH forum)

Moderators: TANE, Ruud

Post Reply
Zefram
Starting Member
Starting Member
Posts: 17
Joined: Mon Sep 24, 2012 10:10 pm

Script voor opdelen devicestring.

Post by Zefram »

Hoi,
Graag zou ik wat hulp willen hebben bij het volgende. Ik ben bezig met een script om waardes uit een string (Plugwise plug) in een virtual device te krijgen.
Mijn kennis is niet toereikend om de laatste stap te maken. Dit is de string (On -1.546,00W -4,25kWhT -29,31kWh)

Sub Main(Byval Parms As Object)

dim sVal as string = hs.deviceString("442")

dim splitVal() as string

splitVal = sVal.split(" ")

hs.writelog("data",splitVal(0))
hs.writelog("data",splitVal(1))
hs.writelog("data",splitVal(2))
hs.writelog("data",splitVal(3))

hs.setDeviceValue("451", splitVal(1))

End Sub


Het volgende verschijnt in mijn log:
jul-03 11:18:51 Error 1 Running script C:\Program Files (x86)\HomeSeer HS3\scripts\Kwh test.vb :Het doel van een aanroep heeft een uitzondering veroorzaakt.De conversie van tekenreeks -1.546,00W naar type Double is ongeldig.
jul-03 11:18:51 data -29,31kWh
jul-03 11:18:51 data -4,25kWhT
jul-03 11:18:51 data -1.546,00W
jul-03 11:18:51 data On
jul-03 11:18:51 Event Event Script KWH test triggered by the event page 'Run' button.


Het opsplitsen gaat goed alleen lukt het niet om de waarde in VD "451" te krijgen.
Ik hoop dat iemand mij kan helpen met deze laatste stap.

Mvgr Robert
AshaiRey
Senior Member
Senior Member
Posts: 1310
Joined: Mon Feb 02, 2009 5:27 pm
Location: Netherlands
Contact:

Re: Script voor opdelen devicestring.

Post by AshaiRey »

Je probeer een String in een Double te plaatsen en dat gaat niet.
Grofweg gezegt is een string text en een double een getal (niet geschreven)
Je moet dus een conversie doen van string naar Double en dat kan je dan in het value veld zetten.
Let er wel op dat je -150.0W als string niet kan omzetten naar Double. Die W moet eraf gehaald worden en dan gaat het wel
Bram
Zefram
Starting Member
Starting Member
Posts: 17
Joined: Mon Sep 24, 2012 10:10 pm

Re: Script voor opdelen devicestring.

Post by Zefram »

Bram bedankt voor je uitleg.
Ik heb nu onderstaande in mijn script maar krijg geen value in mij VD :cry:

Sub Main(Byval Parms As Object)

dim sVal as string = hs.deviceString("442")
dim dVal as string
dim value as Double
dim splitVal() as string

splitVal = sVal.split(" ")

hs.writelog("data",splitVal(2))

dVal = Replace (splitVal(2), "kWhT", "")
value = Convert.ToDouble(dVal)

hs.setDeviceValue("451", value)
hs.setdevicestring("451", "" & Math.Round(value / -1, 3) & "", True)

End Sub

Naamloos-1.jpg
Naamloos-1.jpg (43.44 KiB) Viewed 9042 times
Naamloos-2.jpg
Naamloos-2.jpg (27.54 KiB) Viewed 9042 times
Rutger
Member
Member
Posts: 339
Joined: Wed May 19, 2010 8:48 pm
Location: Netherlands

Re: Script voor opdelen devicestring.

Post by Rutger »

My home automation blog: https://rutg3r.com
AshaiRey
Senior Member
Senior Member
Posts: 1310
Joined: Mon Feb 02, 2009 5:27 pm
Location: Netherlands
Contact:

Re: Script voor opdelen devicestring.

Post by AshaiRey »

Rutger bedoelde eigenlijk deze link
http://homeseer.com/support/homeseer/HS ... ebyref.htm
Bram
Zefram
Starting Member
Starting Member
Posts: 17
Joined: Mon Sep 24, 2012 10:10 pm

Re: Script voor opdelen devicestring.

Post by Zefram »

Bram,

Bedankt voor je input script werkt nu wel goed.

Sub Main(Byval Parms As Object)

dim sVal as string = hs.deviceString("463")
dim dVal as string
dim value as Double
dim splitVal() as string

splitVal = sVal.split(" ")

hs.writelog("data",splitVal(2))

dVal = Replace (splitVal(2), "kWhT", "")
value = Convert.ToDouble(dVal)

hs.SetDeviceValueByRef("451", value, True)
hs.setdevicestring("451", "" & Math.Round(value / -1, 1) & "", True)

End Sub


Mvgr Robert
Post Reply

Return to “Homeseer Scripts Forum”