Hulp gevraagd voor plugin K8061 USB interfacekaart
Moderator: Ruud
-
- Starting Member
- Posts: 41
- Joined: Tue Jun 16, 2009 9:15 pm
- Location: Netherlands
Hulp gevraagd voor plugin K8061 USB interfacekaart
Velleman heeft een Interfacekaart, de K8061.
Deze heeft:
• 8 analoge ingangen met een resolutie van 10 bit: 0…5 of 10VDC / 20k ohm
• 8 analoge uitgangen met een resolutie van 8 bit: 0…5V of 10VDC / 47 ohm
• 8 digitale ingangen: open collector compatibel (aansluiting met GND=0) met on-board indicatie-led
• 8 digitale opencollectoruitgangen (max. 50V/100mA) met on-board indicatie-led
• een PWM-uitgang van 10 bit: 0 tot 100% opencollectoruitgang (max 100mA / 40V) met on-board indicatie-led
• maximale ondersteuning van 8 interfacekaarten tegelijk.
Er is al een plugin voor de K8055, maar die heeft veel minder I/O's en de plugin ondersteund maar 1 kaart.
Ik zou graag een plugin willen schrijven voor de K8061, maar met de Developer kit van homeseer kom ik er niet uit.
Kan iemand mij een duwtje in de goede richting geven met bijvoorbeeld:
- Welk programma (Delphi / Visual Studio / ?? )
- Welke taal
- evt een voorbeeld script
alvast bedankt, Maikel
Deze heeft:
• 8 analoge ingangen met een resolutie van 10 bit: 0…5 of 10VDC / 20k ohm
• 8 analoge uitgangen met een resolutie van 8 bit: 0…5V of 10VDC / 47 ohm
• 8 digitale ingangen: open collector compatibel (aansluiting met GND=0) met on-board indicatie-led
• 8 digitale opencollectoruitgangen (max. 50V/100mA) met on-board indicatie-led
• een PWM-uitgang van 10 bit: 0 tot 100% opencollectoruitgang (max 100mA / 40V) met on-board indicatie-led
• maximale ondersteuning van 8 interfacekaarten tegelijk.
Er is al een plugin voor de K8055, maar die heeft veel minder I/O's en de plugin ondersteund maar 1 kaart.
Ik zou graag een plugin willen schrijven voor de K8061, maar met de Developer kit van homeseer kom ik er niet uit.
Kan iemand mij een duwtje in de goede richting geven met bijvoorbeeld:
- Welk programma (Delphi / Visual Studio / ?? )
- Welke taal
- evt een voorbeeld script
alvast bedankt, Maikel
Re: Hulp gevraagd voor plugin K8061 USB interfacekaart
Visual Studio Express 8
Visual Basic
Voorbeeld, in de SDK zit een voorbeeld in VB dat moet genoeg zijn om te kunnen starten.
Visual Basic
Voorbeeld, in de SDK zit een voorbeeld in VB dat moet genoeg zijn om te kunnen starten.
Rene.
-
- Starting Member
- Posts: 41
- Joined: Tue Jun 16, 2009 9:15 pm
- Location: Netherlands
Re: Hulp gevraagd voor plugin K8061 USB interfacekaart
Thnks,
Dat was het duwtje in de rug die ik bedoelde
Dat was het duwtje in de rug die ik bedoelde
-
- Starting Member
- Posts: 41
- Joined: Tue Jun 16, 2009 9:15 pm
- Location: Netherlands
Re: Hulp gevraagd voor plugin K8061 USB interfacekaart
Ik wil niet ontdankbaar zijn, maar de sample van homeseer is te uitgbreid.
Ik wil alleen maar een Interface aanmaken met een stel in en outputs.
De sample is van een beveiligings plugin waardoor je ook met zones werkt, en webui enz...
Dit heb ik allemaal niet nodig, en om die scripts er tussen uit te halen is ook onbegonnen werk.
Heeft misschien iemand een tip hoe hier mee om te gaan, of evt een uitgkledere script liggen?
Maikel
Ik wil alleen maar een Interface aanmaken met een stel in en outputs.
De sample is van een beveiligings plugin waardoor je ook met zones werkt, en webui enz...
Dit heb ik allemaal niet nodig, en om die scripts er tussen uit te halen is ook onbegonnen werk.
Heeft misschien iemand een tip hoe hier mee om te gaan, of evt een uitgkledere script liggen?
Maikel
Re: Hulp gevraagd voor plugin K8061 USB interfacekaart
Waarom is het onbegonnen werk om eruit te halen wat je niet nodig hebt? Het voorbeeld geeft een overzicht van het raamwerk van een plugin. Voor je eigen plugin vul je alleen die delen in die je nodig hebt. Het gaat erom dat je begrijpt hoe een plugin is opgebouwd en daar biedt het voorbeeld een prima startpunt. Het voorbeeld is een plugin met zeer beperkte functionaliteit, je eigen plugin zal een stuk uitgebreider worden (geloof mij maar;-) ). Dus een uitgekledere versie zal je niet tegenkomen, als de plugin ook nog wat nuttigs moet doen.
Rene.
Re: Hulp gevraagd voor plugin K8061 USB interfacekaart
Gevaarlijke opmerkingalleen maar een Interface aanmaken met een stel in en outputs
Een Plugin maken betekent erin duiken, inderdaad kijken wat je wel en niet nodig hebt, wanneer wordt wat aangeroepen vanuit HS en hoe kun je HS aanspreken, en dan moet je ook nog ergens je eigen functionaliteit erin bakken en wel op de juiste plek. Geloof me maar, het is niet iets wat je even op een regenachtige(/sneeuwende) zondagmiddag doet. 1 pleister op de wonde: de tweede gaat sneller
Re: Hulp gevraagd voor plugin K8061 USB interfacekaart
en derde heb je binnen een avond..
Enver Tanriverdi | http://blog.tane.nl
Re: Hulp gevraagd voor plugin K8061 USB interfacekaart
Laten we het hopen, binnenkort zul je het weten
Re: Hulp gevraagd voor plugin K8061 USB interfacekaart
ja zeker gaat heel mooi worden..mogelijk dat ik er bij ben as maandag.
ik heb nog 1000 andere wensen..
ik heb nog 1000 andere wensen..
Enver Tanriverdi | http://blog.tane.nl
-
- Starting Member
- Posts: 41
- Joined: Tue Jun 16, 2009 9:15 pm
- Location: Netherlands
Re: Hulp gevraagd voor plugin K8061 USB interfacekaart
Oke, T is duidelijk.
Niet zeuren, maar proberen.
Nu heb ik de plugin zover dat de device correct aangemaakt worden.
Nu moet ik de hardware aan de software koppelen.
Ik heb de plugin al zover dat als hij geopend wordt (Homeseer opstarten) dat de Outputs een bepaalde waarde krijgen.
Maar nu moet dit nog bij een bepaalde Homeseer waarde.
dus als ik device [1 aan zet, moet mijn script aanspreken.
Welk class moet ik daarvoor aanroepen en hoe?
if hs.device.status("[1") = "on" Then
(Mijn script)
if end
Niet zeuren, maar proberen.
Nu heb ik de plugin zover dat de device correct aangemaakt worden.
Nu moet ik de hardware aan de software koppelen.
Ik heb de plugin al zover dat als hij geopend wordt (Homeseer opstarten) dat de Outputs een bepaalde waarde krijgen.
Maar nu moet dit nog bij een bepaalde Homeseer waarde.
dus als ik device [1 aan zet, moet mijn script aanspreken.
Welk class moet ik daarvoor aanroepen en hoe?
if hs.device.status("[1") = "on" Then
(Mijn script)
if end
-
- Starting Member
- Posts: 41
- Joined: Tue Jun 16, 2009 9:15 pm
- Location: Netherlands
Re: Hulp gevraagd voor plugin K8061 USB interfacekaart
Ik vind het jammer er niet meer (nuttige) reacties komen.
Ik heb nu de plugin werken tot op hoogte van de outputs. Ik kan analoog en digitaal uitsturen met homeseer
De inputs is een ander verhaal. De plaats waarin homeseer een loop heeft zitten in de hspi_SAMPLE krijg ik niet gevonden.
Ik krijg de inputs wel uitgelezen, maar eenmalig en tijdens het inladen van homeseer.
Toen heb ik een timer geprogrameerd die om de 100 ms loopt en daar mijn script in geplaats om de digitale en analoge ingangen te meten en indien er veranderingen zijn deze door te geven aan homeseer.
Het lijkt er op dat mijn timer de plugin instabiel maakt waardoor de gegevens niet goed worden ingelezen.
Kan iemand mij helpen om de juiste plaats voor de input script (in hspi_SAMPLE) te vinden?
Natuurlijk zal ik zodra de plugin werkt deze online beschikbaar maken
Ik heb nu de plugin werken tot op hoogte van de outputs. Ik kan analoog en digitaal uitsturen met homeseer
De inputs is een ander verhaal. De plaats waarin homeseer een loop heeft zitten in de hspi_SAMPLE krijg ik niet gevonden.
Ik krijg de inputs wel uitgelezen, maar eenmalig en tijdens het inladen van homeseer.
Toen heb ik een timer geprogrameerd die om de 100 ms loopt en daar mijn script in geplaats om de digitale en analoge ingangen te meten en indien er veranderingen zijn deze door te geven aan homeseer.
Het lijkt er op dat mijn timer de plugin instabiel maakt waardoor de gegevens niet goed worden ingelezen.
Kan iemand mij helpen om de juiste plaats voor de input script (in hspi_SAMPLE) te vinden?
Natuurlijk zal ik zodra de plugin werkt deze online beschikbaar maken
Re: Hulp gevraagd voor plugin K8061 USB interfacekaart
Maikel,
Een timertje moet op zich geen probleem zijn hoor.
Kun je wat meer vertellen over de instabiliteit die je ervaart? Wanneer treedt het op, wat precies, etc.
De juiste plaats voor de input script; niet in 1 van de routines die in de sample zitten iig.
Zet dit in Module1:
Een eindje verderop:
En zorg dat tijdens initialisatie van HS het volgende wordt aangeroepen:
En vergeet ook niet die timer weer stil te zetten tijdens shutdown:
Volgens mij moet je dan wel met een timertje kunnen werken.
Een timertje moet op zich geen probleem zijn hoor.
Kun je wat meer vertellen over de instabiliteit die je ervaart? Wanneer treedt het op, wat precies, etc.
De juiste plaats voor de input script; niet in 1 van de routines die in de sample zitten iig.
Zet dit in Module1:
Code: Select all
Friend WithEvents InputTimer As Timers.Timer
Code: Select all
Private Sub InputTimer_Elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Handles InputTimer.Elapsed
hs.WriteLog(IFACE_NAME, "Hello World") '' m.a.w. "doe je input ding"
End Sub
Code: Select all
InputTimer = New Timers.Timer
InputTimer.Interval = 5000 ' om te voorkomen dat je schijf volloopt
InputTimer.Start()
Code: Select all
InputTimer.Stop()
-
- Starting Member
- Posts: 41
- Joined: Tue Jun 16, 2009 9:15 pm
- Location: Netherlands
Re: Hulp gevraagd voor plugin K8061 USB interfacekaart
Hoi,
Bedankt voor de hulp. (Zeker die van timer moet in MODULE1 )
Hij leest de inputs netjes uit, alleen staat in het voorbeeld script een loop van 5 seconden. Hier heb ik 100ms van gemaakt zoda hij acceptabel reageerd.
Ik heb nu voor de test het printje op mijn bureau liggen zonder iets aangesloten te hebben. En tot mijn verbazing is er wel af en toe een activiteit als ik de log van HS mag geloven.
Velleman heeft een VB script meegeleverd om het printje te testen, en als ik daar een script plaats die text weergeeft als een van de ingangen een waarde verandering heeft, Werkt het prima (zonder veranderde waarde). Hierdoor lijkt me het probleem in de hardware uitgesloten.
Mijn script is alsvolgt:
Zou het hier aan kunnen liggen dat een van de inputs spontaan omspringt?
Maikel
Bedankt voor de hulp. (Zeker die van timer moet in MODULE1 )
Hij leest de inputs netjes uit, alleen staat in het voorbeeld script een loop van 5 seconden. Hier heb ik 100ms van gemaakt zoda hij acceptabel reageerd.
Ik heb nu voor de test het printje op mijn bureau liggen zonder iets aangesloten te hebben. En tot mijn verbazing is er wel af en toe een activiteit als ik de log van HS mag geloven.
Velleman heeft een VB script meegeleverd om het printje te testen, en als ik daar een script plaats die text weergeeft als een van de ingangen een waarde verandering heeft, Werkt het prima (zonder veranderde waarde). Hierdoor lijkt me het probleem in de hardware uitgesloten.
Mijn script is alsvolgt:
Code: Select all
Private Sub InputTimer_Elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Handles InputTimer.Elapsed
'*@* Input read script
' Digital input
' Expand Decimale waarde naar 8 binaire waarde
DIGITALINPUT_new = ReadAllDigital(IOCARD)
DIGITALINPUTBIT(1) = (DIGITALINPUT_new And 1)
DIGITALINPUTBIT(2) = CShort(DIGITALINPUT_new And 2) / 2
DIGITALINPUTBIT(3) = CShort(DIGITALINPUT_new And 4) / 4
DIGITALINPUTBIT(4) = CShort(DIGITALINPUT_new And 8) / 8
DIGITALINPUTBIT(5) = CShort(DIGITALINPUT_new And 16) / 16
DIGITALINPUTBIT(6) = CShort(DIGITALINPUT_new And 32) / 32
DIGITALINPUTBIT(7) = CShort(DIGITALINPUT_new And 64) / 64
DIGITALINPUTBIT(8) = CShort(DIGITALINPUT_new And 128) / 128
' Controleer of de Decimale waarde is veranderd
If Not DIGITALINPUT_old = DIGITALINPUT_new Then
' Ja hij is veranderd, dus geef veranderingen door aan HS
For i = 1 To 8
If hs.DeviceStatus(LETTERCODE & i) = 2 And DIGITALINPUTBIT(i) = 0 Then ' HS denkt aan, Input is uit
hs.SetDeviceStatus(LETTERCODE & i, 3)
hs.WriteLog(IFACE_NAME, "Digitalinput [" & LETTERCODE & i & "] is low (0)")
ElseIf hs.DeviceStatus(LETTERCODE & i) = 3 And DIGITALINPUTBIT(i) = 1 Then ' HS denkt uit, input is aan
hs.SetDeviceStatus(LETTERCODE & i, 2)
hs.WriteLog(IFACE_NAME, "Digitalinput [" & LETTERCODE & i & "] is high (1)")
End If
Next
DIGITALINPUT_old = DIGITALINPUT_new 'Schrijf nieuwe decimale waarde weg
End If
'Analog input
For i = 1 To 8
Analoginputvalue = ReadAnalogChannel(IOCARD, i) / 10.24
If Analoginputvalue = 100 And Not hs.DeviceStatus(LETTERCODE & i + 16) = 2 Then
hs.SetDeviceStatus(LETTERCODE & i + 16, 2) 'Aan
hs.WriteLog(IFACE_NAME, "Analoginput [" & LETTERCODE & i + 16 & "] is set to On. Value " & Analoginputvalue & "%")
ElseIf Analoginputvalue = 0 And Not hs.DeviceStatus(LETTERCODE & i + 16) = 3 Then
hs.SetDeviceStatus(LETTERCODE & i + 16, 3) 'Uit
hs.WriteLog(IFACE_NAME, "Analoginput [" & LETTERCODE & i + 16 & "] is set to Off. Value " & Analoginputvalue & "%")
ElseIf hs.DeviceValue(LETTERCODE & i + 16) <= Analoginputvalue - 2 Or hs.DeviceValue(LETTERCODE & i + 16) >= Analoginputvalue + 2 Then
hs.SetDeviceValue(LETTERCODE & i + 16, Analoginputvalue) 'Dim
hs.WriteLog(IFACE_NAME, "Analoginput [" & LETTERCODE & i + 16 & "] is set to Dim. Value " & Analoginputvalue & "%")
End If
Next
End Sub
Code: Select all
LOG
6-1-2010 21:10:33 ~!~K8061 ADR 0~!~Digitalinput [S5] is low (0)
6-1-2010 21:10:33 ~!~K8061 ADR 0~!~Digitalinput [S6] is low (0)
6-1-2010 21:10:33 ~!~K8061 ADR 0~!~Digitalinput [S7] is low (0)
6-1-2010 21:10:33 ~!~K8061 ADR 0~!~Digitalinput [S8] is low (0)
6-1-2010 21:10:34 ~!~K8061 ADR 0~!~Digitalinput [S5] is high (1)
6-1-2010 21:10:34 ~!~K8061 ADR 0~!~Digitalinput [S6] is high (1)
6-1-2010 21:10:34 ~!~K8061 ADR 0~!~Digitalinput [S7] is high (1)
6-1-2010 21:10:34 ~!~K8061 ADR 0~!~Digitalinput [S8] is high (1)
6-1-2010 21:10:35 ~!~K8061 ADR 0~!~Digitalinput [S5] is low (0)
6-1-2010 21:10:35 ~!~K8061 ADR 0~!~Digitalinput [S6] is low (0)
6-1-2010 21:10:35 ~!~K8061 ADR 0~!~Digitalinput [S7] is low (0)
6-1-2010 21:10:35 ~!~K8061 ADR 0~!~Digitalinput [S8] is low (0)
6-1-2010 21:10:35 ~!~K8061 ADR 0~!~Digitalinput [S5] is high (1)
6-1-2010 21:10:35 ~!~K8061 ADR 0~!~Digitalinput [S6] is high (1)
6-1-2010 21:10:35 ~!~K8061 ADR 0~!~Digitalinput [S7] is high (1)
6-1-2010 21:10:35 ~!~K8061 ADR 0~!~Digitalinput [S8] is high (1)
6-1-2010 21:11:21 ~!~K8061 ADR 0~!~Digitalinput [S5] is low (0)
6-1-2010 21:11:21 ~!~K8061 ADR 0~!~Digitalinput [S6] is low (0)
6-1-2010 21:11:21 ~!~K8061 ADR 0~!~Digitalinput [S7] is low (0)
6-1-2010 21:11:21 ~!~K8061 ADR 0~!~Digitalinput [S8] is low (0)
6-1-2010 21:11:21 ~!~K8061 ADR 0~!~Digitalinput [S5] is high (1)
6-1-2010 21:11:21 ~!~K8061 ADR 0~!~Digitalinput [S6] is high (1)
6-1-2010 21:11:21 ~!~K8061 ADR 0~!~Digitalinput [S7] is high (1)
6-1-2010 21:11:21 ~!~K8061 ADR 0~!~Digitalinput [S8] is high (1)
6-1-2010 21:12:46 ~!~K8061 ADR 0~!~Digitalinput [S5] is low (0)
6-1-2010 21:12:46 ~!~K8061 ADR 0~!~Digitalinput [S6] is low (0)
6-1-2010 21:12:46 ~!~K8061 ADR 0~!~Digitalinput [S7] is low (0)
6-1-2010 21:12:46 ~!~K8061 ADR 0~!~Digitalinput [S8] is low (0)
6-1-2010 21:12:46 ~!~K8061 ADR 0~!~Digitalinput [S2] is low (0)
6-1-2010 21:12:46 ~!~K8061 ADR 0~!~Digitalinput [S3] is low (0)
6-1-2010 21:12:46 ~!~K8061 ADR 0~!~Digitalinput [S4] is low (0)
6-1-2010 21:12:46 ~!~K8061 ADR 0~!~Digitalinput [S1] is high (1)
6-1-2010 21:12:46 ~!~K8061 ADR 0~!~Digitalinput [S3] is high (1)
6-1-2010 21:12:46 ~!~K8061 ADR 0~!~Digitalinput [S4] is high (1)
6-1-2010 21:12:46 ~!~K8061 ADR 0~!~Digitalinput [S4] is low (0)
6-1-2010 21:12:46 ~!~K8061 ADR 0~!~Digitalinput [S4] is high (1)
6-1-2010 21:12:47 ~!~K8061 ADR 0~!~Digitalinput [S5] is high (1)
6-1-2010 21:12:47 ~!~K8061 ADR 0~!~Digitalinput [S7] is high (1)
6-1-2010 21:12:47 ~!~K8061 ADR 0~!~Digitalinput [S8] is high (1)
6-1-2010 21:12:47 ~!~K8061 ADR 0~!~Digitalinput [S1] is high (1)
Maikel
Re: Hulp gevraagd voor plugin K8061 USB interfacekaart
Wat gebeurd er als je de poll frequentie verlaagd (dus 1s, 5s, 10s)? Indien hiermee het probleem zich niet meer voordoet heeft Homeseer problemen om de functie af te werken voordat de timer deze weer triggerd. Je zou dan b.v. een flag op kunnen nemen om te controleren of de functie al klaar is voordat deze opnieuw wordt aangeroepen.
Rene.
-
- Starting Member
- Posts: 41
- Joined: Tue Jun 16, 2009 9:15 pm
- Location: Netherlands
Re: Hulp gevraagd voor plugin K8061 USB interfacekaart
Omdat ik veel veranderd en geprobeerd heb om de plugin werkend te krijgen kon ik niet garanderen dat er nergens een vergeten scriptje stond. Ik heb opnieuw de hspi_SAMPLE gedownload en het interfacescript er ingezet.
Helaas veranderde dit niets aan mijn probleem.
Ik heb hem nu op een pollfrequentie van 200ms staan, en het lijkt (2 uur) goed te gaan. Bij de 100ms gaat het wel fout. Het script van Velleman werkt met een pollfrequentie van 50ms, dus dat zou de hardware en hun DLL wel aan moeten kunnen.
Is het eigelijk niet verstandig om altijd die Flag er in te plaatsen, of geeft dit problemen op andere vlakken?
En is een Flag van VB of van Homeseer, want ik krijg niet gevonden wat dat doet of hoe je hem kunt benaderen.
m.v.g. Maikel
Helaas veranderde dit niets aan mijn probleem.
Ik heb hem nu op een pollfrequentie van 200ms staan, en het lijkt (2 uur) goed te gaan. Bij de 100ms gaat het wel fout. Het script van Velleman werkt met een pollfrequentie van 50ms, dus dat zou de hardware en hun DLL wel aan moeten kunnen.
Is het eigelijk niet verstandig om altijd die Flag er in te plaatsen, of geeft dit problemen op andere vlakken?
En is een Flag van VB of van Homeseer, want ik krijg niet gevonden wat dat doet of hoe je hem kunt benaderen.
m.v.g. Maikel