Page 1 of 1

Script voor opdelen devicestring.

Posted: Fri Jul 03, 2015 11:45 am
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

Re: Script voor opdelen devicestring.

Posted: Fri Jul 03, 2015 12:06 pm
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

Re: Script voor opdelen devicestring.

Posted: Mon Jul 06, 2015 12:47 pm
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 9260 times
Naamloos-2.jpg
Naamloos-2.jpg (27.54 KiB) Viewed 9260 times

Re: Script voor opdelen devicestring.

Posted: Mon Jul 06, 2015 5:15 pm
by Rutger

Re: Script voor opdelen devicestring.

Posted: Tue Jul 07, 2015 9:24 am
by AshaiRey
Rutger bedoelde eigenlijk deze link
http://homeseer.com/support/homeseer/HS ... ebyref.htm

Re: Script voor opdelen devicestring.

Posted: Tue Jul 07, 2015 4:46 pm
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