Page 2 of 2

Re: P1 poort uitlezen

Posted: Sat Feb 28, 2015 6:21 pm
by stefxx
Iets beter lezen:

Ik stel voor dat je alle regels tussen "If left(data,1) = "!" then" en "End If" even inactief maakt door er een ' voor te zetten

End Sub staat niet tussen de genoemde regels toch?

Re: P1 poort uitlezen

Posted: Sat Feb 28, 2015 6:45 pm
by labtec
Sorry, zo dan?

If left(data,1) = "!" then
' P1_Teller=P1_Teller+1
' ElseIf left(data,1) = "(" then
' hs.SetDeviceString "V85",CSng(right(data,9))
' hs.setDeviceLastChange "V85",now
' ElseIf left(data,10) = "1-0:1.7.0(" then
' hs.SetDeviceString "V84",CSng(left(right(data,7),4))*1000
' hs.setDeviceLastChange "V84",now
' ElseIf left(data,10) = "1-0:1.8.2(" then
' V82=CSng(left(right(data,13),9))
' hs.SetDeviceString "V82",V82
' hs.setDeviceLastChange "V82",now''
' ElseIf left(data,10) = "1-0:1.8.1(" then
' V81=CSng(left(right(data,13),9))
' hs.SetDeviceString "V81",V81
' hs.setDeviceLastChange "V81",now
' hs.SetDeviceString "V83",CSng(hs.DeviceString("V82"))+CSng(hs.DeviceString("V81"))
' hs.setDeviceLastChange "V83",now
' ElseIf left(data,9) = "0-0:96.14" then
' hs.SetDeviceString "V80",Cint(right(data,4))
' hs.setDeviceLastChange "V80",now

End If

End sub

Re: P1 poort uitlezen

Posted: Sat Feb 28, 2015 6:47 pm
by labtec
28-2-2015 17:47:04 Error Running script, script run or compile error in file: P1.txt1024:Expected statement in line 25 More info: Expected statement
28-2-2015 17:47:04 Error Running script, script run or compile error in file: P1.txt1024:Expected statement in line 25 More info: Expected statement
28-2-2015 17:47:04 Error Running script, script run or compile error in file: P1.txt1024:Expected statement in line 25 More info: Expected statement
28-2-2015 17:47:04 Error Running script, script run or compile error in file: P1.txt1024:Expected statement in line 25 More info: Expected statement

Re: P1 poort uitlezen

Posted: Sun Mar 01, 2015 12:17 am
by stefxx
Volgens mij mist het P1.txt bestand een regel zie ik nu. Zet eens helemaal bovenaan het volgende:

Sub P1_event(data)

Laat maar weten of dat helpt.

Re: P1 poort uitlezen

Posted: Mon Mar 02, 2015 12:21 pm
by labtec
Heb p1 script aangepast, zie onderstaand:

Sub P1_event(data)

If left(data,1) = "!" then
P1_Teller=P1_Teller+1
ElseIf left(data,1) = "(" then
hs.SetDeviceString "V85",CSng(right(data,9))
hs.setDeviceLastChange "V85",now
ElseIf left(data,10) = "1-0:1.7.0(" then
hs.SetDeviceString "V84",CSng(left(right(data,7),4))*1000
hs.setDeviceLastChange "V84",now
ElseIf left(data,10) = "1-0:1.8.2(" then
V82=CSng(left(right(data,13),9))
hs.SetDeviceString "V82",V82
hs.setDeviceLastChange "V82",now''
ElseIf left(data,10) = "1-0:1.8.1(" then
V81=CSng(left(right(data,13),9))
hs.SetDeviceString "V81",V81
hs.setDeviceLastChange "V81",now
hs.SetDeviceString "V83",CSng(hs.DeviceString("V82"))+CSng(hs.DeviceString("V81"))
hs.setDeviceLastChange "V83",now
ElseIf left(data,9) = "0-0:96.14" then
hs.SetDeviceString "V80",Cint(right(data,4))
hs.setDeviceLastChange "V80",now

End If

End Sub

Krijg nu de volgende meldingen in log.file
2-3-2015 11:16:13 Error Running script, script run or compile error in file: P1.txt13:Type mismatch: 'CSng' in line 16 More info: Type mismatch: 'CSng'
2-3-2015 11:16:13 Error Running script, script run or compile error in file: P1.txt13:Type mismatch: 'CSng' in line 12 More info: Type mismatch: 'CSng'
2-3-2015 11:16:13 Error Running script, script run or compile error in file: P1.txt13:Type mismatch: 'Cint' in line 22 More info: Type mismatch: 'Cint'
2-3-2015 11:16:13 Error Running script, script run or compile error in file: P1.txt13:Type mismatch: 'CSng' in line 9 More info: Type mismatch: 'CSng'
2-3-2015 11:16:23 Error Running script, script run or compile error in file: P1.txt13:Type mismatch: 'CSng' in line 16 More info: Type mismatch: 'CSng'
2-3-2015 11:16:23 Error Running script, script run or compile error in file: P1.txt13:Type mismatch: 'CSng' in line 12 More info: Type mismatch: 'CSng'

Ik zie overigens de virtuele devices zoals aangemaakt in geen data krijgen.

Re: P1 poort uitlezen

Posted: Mon Mar 02, 2015 12:32 pm
by stefxx
Ik stel voor dat je alle regels tussen "If left(data,1) = "!" then" en "End If" even inactief maakt door er een ' voor te zetten. Als je dan geen fouten meer krijgt (en dat verwacht ik) kun je daarna 1 voor 1 het ' weer weghalen totdat de fout terugkomt. Dan weten we precies welke regel de mist in gaat en vinden we vast ook wel een oplossing. Ik zie straks graag welke regel de boosdoener is!

Re: P1 poort uitlezen

Posted: Mon Mar 02, 2015 12:52 pm
by labtec
Krijg nu inderdaad geen fouten meer, nu 1 voor 1 ' weghalen, regels hebben geen relatie met elkaar? van boven af starten met ' weghalen?

Re: P1 poort uitlezen

Posted: Mon Mar 02, 2015 12:53 pm
by stefxx
Van boven naar beneden weghalen is inderdaad het handigst ja :-)

Re: P1 poort uitlezen

Posted: Mon Mar 02, 2015 1:00 pm
by labtec
Sub P1_event(data)

If left(data,1) = "!" then
P1_Teller=P1_Teller+1
ElseIf left(data,1) = "(" then
hs.SetDeviceString "V85",CSng(right(data,9))
hs.setDeviceLastChange "V85",now
ElseIf left(data,10) = "1-0:1.7.0(" then
hs.SetDeviceString "V84",CSng(left(right(data,7),4))*1000
'hs.setDeviceLastChange "V84",now
'ElseIf left(data,10) = "1-0:1.8.2(" then
'V82=CSng(left(right(data,13),9))
'hs.SetDeviceString "V82",V82
'hs.setDeviceLastChange "V82",now''
'ElseIf left(data,10) = "1-0:1.8.1(" then
'V81=CSng(left(right(data,13),9))
'hs.SetDeviceString "V81",V81
'hs.setDeviceLastChange "V81",now
'hs.SetDeviceString "V83",CSng(hs.DeviceString("V82"))+CSng(hs.DeviceString("V81"))
'hs.setDeviceLastChange "V83",now
'ElseIf left(data,9) = "0-0:96.14" then
'hs.SetDeviceString "V80",Cint(right(data,4))
'hs.setDeviceLastChange "V80",now

End If

End Sub

Vanaf hier start foutmelding:
2-3-2015 11:57:04 - Error - Running script, script run or compile error in file: P1.txt13:Type mismatch: 'CSng' in line 9 More info: Type mismatch: 'CSng'

Re: P1 poort uitlezen

Posted: Mon Mar 02, 2015 1:34 pm
by stefxx
Dus het faalt op:
hs.SetDeviceString "V84",CSng(left(right(data,7),4))*1000

En daar hoort deze dataregel bij (zie de "elseif" de regel daarboven):
1-0:1.7.0(0001.91*kW)

De 7 karakters van rechts:
.91*kW)
En daarvan de linker 4:
.91*

Dat gaat dus niet goed. Zorg dat je het juiste deel pakt van de string (0001.91 is wat je wilt hebben), even mee spelen dus.

En misschien heb je ook nog een punt/komma probleem. Desnoods pak je alleen het deel voor de punt, dan is het wel afgerond maar heb je dat probleem niet.

Re: P1 poort uitlezen

Posted: Mon Mar 02, 2015 1:55 pm
by labtec
Bedankt alvast voor al je hulp, ik ga nog even verder zoeken.

Zit met griep thuis dus kan zijn dat ik niet zo snel reageer, voel mij niet zo lekker :(

Re: P1 poort uitlezen

Posted: Mon Mar 02, 2015 1:56 pm
by stefxx
Succes en beterschap!

Re: P1 poort uitlezen

Posted: Mon Mar 02, 2015 7:56 pm
by labtec
Hoi toch weer even verder gaan kijken ;-) alles werkt nu, is inderdaad spelen met de settings.

Nu nog even de juiste verhoudingen zoeken zodat het ook in de goede waarde wordt weergegeven (Watt of KW) etc.

Hartelijk dank voor je hulp!