Hoi,
Ik heb een tijdje geleden een plugin geschreven om via Homeseer de Velleman K8061 aan te sturen. Nu blijkt er toch nog een bug in te zitten.
Als ik de Analoge Outputs aanstuur via de Device-List of via Control werkt hij goed.
Echter als ik een script schrijf om die uitgang aan te sturen middels hs.SetDeviceValue "[32", 100 verander de waarde in de pagina Device-List wel, maar de uitgang van mijn IO-kaart niet.
Het lijkt er op dat als een script.txt uitgevoerd wordt dit niet via PUBLIC SUB SETIOEX in HSPI.vb gaat waar dus de verwerking van mijn interface zit.
Welke sub wordt aangesproken als in een script een output gewijzigd wordt?
mvg Maikel
Plugin reageert niet als ik hem aanstuur via script.txt
Moderator: Ruud
-
- Starting Member
- Posts: 41
- Joined: Tue Jun 16, 2009 9:15 pm
- Location: Netherlands
Re: Plugin reageert niet als ik hem aanstuur via script.txt
Dit handel je normaliter af in de SetIO of SetIOEx sub routines af.
Rene.
-
- Starting Member
- Posts: 41
- Joined: Tue Jun 16, 2009 9:15 pm
- Location: Netherlands
Re: Plugin reageert niet als ik hem aanstuur via script.txt
De verwerking van de IOcard zit bij mijn plugin ook in de SetIOEx.
ik heb voor de test in het begin van SetIOEx een regel hs.WriteLog(PLUGIN_NAME, "SETIOEx wordt verwerkt") geplaatst. Al ik de handmatig een output aanstuur komt de regel wel in de log, maar als ik een script run zoals hieronder:
test.txt
veranderd de status in homeseer wel, maar in de log staat mijn regel er niet in.
Hier is mijn SetIOEx script uit de HSPI.VB
Heeft iemand een idee of het probleem in de plugin of het script zit?
ik heb voor de test in het begin van SetIOEx een regel hs.WriteLog(PLUGIN_NAME, "SETIOEx wordt verwerkt") geplaatst. Al ik de handmatig een output aanstuur komt de regel wel in de log, maar als ik een script run zoals hieronder:
test.txt
Code: Select all
Sub Main()
hs.SetDeviceValue "[32",100
End Sub
Hier is mijn SetIOEx script uit de HSPI.VB
Code: Select all
Public Sub SetIOEx(ByVal dv As Object, ByVal housecode As String, ByVal devicecode As String, ByVal command As Short, _
ByVal brightness As Short, ByVal data1 As Short, ByVal data2 As Short, ByVal voice_command As String, ByVal host As String)
Dim bOurs As Boolean = False
hs.WriteLog(PLUGIN_NAME, "SETIOEx wordt verwerkt")
If Not dv Is Nothing Then
If dv.interface.trim = PLUGIN_NAME Then
bOurs = True
Else
Exit Sub ' Not ours.
End If
End If
If Not bOurs Then
If gBaseCode.ToUpper <> housecode.Trim.ToUpper Then
Exit Sub ' Not ours
End If
End If
hs.WriteLog(PLUGIN_NAME, "SetIOEx for " & housecode & devicecode & _
", Cmd=" & command.ToString & _
", Brt=" & brightness.ToString & _
", D1/D2=" & data1.ToString & "/" & data2.ToString & _
", Vcmd=" & voice_command & _
", Host=" & host)
Dim ref As Integer
Dim ArrayCount As Integer
Dim DeviceCodeSplit() As String = Split(devicecode, "+")
Dim i As Integer
ArrayCount = UBound(DeviceCodeSplit)
For i = 0 To ArrayCount
ref = hs.GetDeviceRef(housecode & DeviceCodeSplit(i))
dv = hs.GetDeviceByRef(ref)
' Nu is dv. gevult met de gegevens van de output die we willen aansturen.
Dim SetOutput() As String = Split(dv.dev_type_string)
Dim IOCard As Integer = SetOutput(2)
Dim IOType As String = SetOutput(4)
Dim IOChannel As Integer = SetOutput(5)
Dim Max As Integer
Dim Min As Integer
Select Case IOType
Case "DO"
OutputChange(IOCard, 1) = 1
Case "AO"
Max = IOCardValMax(IOCard, 2, IOChannel)
Min = IOCardValMin(IOCard, 2, IOChannel)
If command.ToString = 2 Then
hs.SetDeviceValue(housecode & DeviceCodeSplit(i), Max)
ElseIf command.ToString = 3 Then
hs.SetDeviceValue(housecode & DeviceCodeSplit(i), Min)
End If
OutputChange(IOCard, 2) = 1
Case "PWM"
Max = IOCardValMax(IOCard, 3, IOChannel)
Min = IOCardValMin(IOCard, 3, IOChannel)
If command.ToString = 2 Then
hs.SetDeviceValue(housecode & DeviceCodeSplit(i), Max)
ElseIf command.ToString = 3 Then
hs.SetDeviceValue(housecode & DeviceCodeSplit(i), Min)
End If
OutputChange(IOCard, 3) = 1
End Select
Next
End Sub
Re: Plugin reageert niet als ik hem aanstuur via script.txt
En je hebt ook de volgende code in je source staan?
Code: Select all
Public ReadOnly Property SupportsHS2() As Boolean
Get
Return True
End Get
End Property
Rene.
-
- Starting Member
- Posts: 41
- Joined: Tue Jun 16, 2009 9:15 pm
- Location: Netherlands
Re: Plugin reageert niet als ik hem aanstuur via script.txt
Ja,hij stond er al in. Deze code staat in HSPI.VB onder het script van Accesslevel.
Misschien een ander idee?
Misschien een ander idee?
-
- Starting Member
- Posts: 41
- Joined: Tue Jun 16, 2009 9:15 pm
- Location: Netherlands
Re: Plugin reageert niet als ik hem aanstuur via script.txt
Even een kleine update,
Als ik de hspi_NETSample_2.0 download, en hier alleen een Log in de SetIOEx zet zoals ik hierboven beschrijf, werkt het ook niet. Dus met de demoplugin van homeseer kun je ook niet met een script SetIOEx aanroepen
? Is er iemand die een simpele plugin source beschikbaar wil stellen (Waar het wel werkt) zodat ik kan testen en vergelijken?
Als ik de hspi_NETSample_2.0 download, en hier alleen een Log in de SetIOEx zet zoals ik hierboven beschrijf, werkt het ook niet. Dus met de demoplugin van homeseer kun je ook niet met een script SetIOEx aanroepen

Re: Plugin reageert niet als ik hem aanstuur via script.txt
Ik was effe het verkeerde pad op gestuurd. hs.setdevicestatus of hs.setdevicevalue kunnen niet worden gebruikt om de status of waarde van een device daadwerkelijk te wijzigen, je kan er alleen de status of waarde binnen Homeseer mee wijzigen. Om een commando naar een device te sturen moet je hs.transmit gebruiken, b.v. hs.transmit "^25", "on".
Rene.
-
- Starting Member
- Posts: 41
- Joined: Tue Jun 16, 2009 9:15 pm
- Location: Netherlands
Re: Plugin reageert niet als ik hem aanstuur via script.txt
Helemaal goed! Zo doet hij het wel. Effe het script aangepassen omdat je niet een Value kunt doorsturen, maar alleen een Datawaarde of Brightness.
Thanks
Thanks
