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
Script voor opdelen devicestring.
Re: Script voor opdelen devicestring.
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
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
Re: Script voor opdelen devicestring.
Bram bedankt voor je uitleg.
Ik heb nu onderstaande in mijn script maar krijg geen value in mij VD
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
Ik heb nu onderstaande in mijn script maar krijg geen value in mij VD

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
Re: Script voor opdelen devicestring.
My home automation blog: https://rutg3r.com
Re: Script voor opdelen devicestring.
Rutger bedoelde eigenlijk deze link
http://homeseer.com/support/homeseer/HS ... ebyref.htm
http://homeseer.com/support/homeseer/HS ... ebyref.htm
Bram
Re: Script voor opdelen devicestring.
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
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