Hulp gevraagd voor plugin K8061 USB interfacekaart

Homeseer Forum in het Nederlands (DUTCH forum)

Moderator: Ruud

maikelwijnen
Starting Member
Starting Member
Posts: 41
Joined: Tue Jun 16, 2009 9:15 pm
Location: Netherlands

Hulp gevraagd voor plugin K8061 USB interfacekaart

Post by maikelwijnen »

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
User avatar
Rene
Global Moderator
Global Moderator
Posts: 1689
Joined: Wed Oct 08, 2008 3:54 pm
Location: Netherlands

Re: Hulp gevraagd voor plugin K8061 USB interfacekaart

Post by Rene »

Visual Studio Express 8
Visual Basic
Voorbeeld, in de SDK zit een voorbeeld in VB dat moet genoeg zijn om te kunnen starten.
Rene.
maikelwijnen
Starting Member
Starting Member
Posts: 41
Joined: Tue Jun 16, 2009 9:15 pm
Location: Netherlands

Re: Hulp gevraagd voor plugin K8061 USB interfacekaart

Post by maikelwijnen »

Thnks,

Dat was het duwtje in de rug die ik bedoelde :wink:
maikelwijnen
Starting Member
Starting Member
Posts: 41
Joined: Tue Jun 16, 2009 9:15 pm
Location: Netherlands

Re: Hulp gevraagd voor plugin K8061 USB interfacekaart

Post by maikelwijnen »

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
User avatar
Rene
Global Moderator
Global Moderator
Posts: 1689
Joined: Wed Oct 08, 2008 3:54 pm
Location: Netherlands

Re: Hulp gevraagd voor plugin K8061 USB interfacekaart

Post by Rene »

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.
Digit
Global Moderator
Global Moderator
Posts: 3388
Joined: Sat Mar 25, 2006 10:23 am
Location: Netherlands
Contact:

Re: Hulp gevraagd voor plugin K8061 USB interfacekaart

Post by Digit »

alleen maar een Interface aanmaken met een stel in en outputs
Gevaarlijke opmerking :D
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 :)
User avatar
TANE
Forum Moderator
Forum Moderator
Posts: 4806
Joined: Fri Apr 06, 2007 9:46 pm
Location: Netherlands
Contact:

Re: Hulp gevraagd voor plugin K8061 USB interfacekaart

Post by TANE »

en derde heb je binnen een avond..:)
Enver Tanriverdi | http://blog.tane.nl
Digit
Global Moderator
Global Moderator
Posts: 3388
Joined: Sat Mar 25, 2006 10:23 am
Location: Netherlands
Contact:

Re: Hulp gevraagd voor plugin K8061 USB interfacekaart

Post by Digit »

Laten we het hopen, binnenkort zul je het weten :lol:
User avatar
TANE
Forum Moderator
Forum Moderator
Posts: 4806
Joined: Fri Apr 06, 2007 9:46 pm
Location: Netherlands
Contact:

Re: Hulp gevraagd voor plugin K8061 USB interfacekaart

Post by TANE »

ja zeker gaat heel mooi worden..mogelijk dat ik er bij ben as maandag.

ik heb nog 1000 andere wensen.. :D
Enver Tanriverdi | http://blog.tane.nl
maikelwijnen
Starting Member
Starting Member
Posts: 41
Joined: Tue Jun 16, 2009 9:15 pm
Location: Netherlands

Re: Hulp gevraagd voor plugin K8061 USB interfacekaart

Post by maikelwijnen »

Oke, T is duidelijk.
Niet zeuren, maar proberen. :wink:

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
maikelwijnen
Starting Member
Starting Member
Posts: 41
Joined: Tue Jun 16, 2009 9:15 pm
Location: Netherlands

Re: Hulp gevraagd voor plugin K8061 USB interfacekaart

Post by maikelwijnen »

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 :D
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 :wink:
Digit
Global Moderator
Global Moderator
Posts: 3388
Joined: Sat Mar 25, 2006 10:23 am
Location: Netherlands
Contact:

Re: Hulp gevraagd voor plugin K8061 USB interfacekaart

Post by Digit »

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:

Code: Select all

Friend WithEvents InputTimer As Timers.Timer
Een eindje verderop:

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
En zorg dat tijdens initialisatie van HS het volgende wordt aangeroepen:

Code: Select all

InputTimer = New Timers.Timer
InputTimer.Interval = 5000         ' om te voorkomen dat je schijf volloopt

InputTimer.Start()
En vergeet ook niet die timer weer stil te zetten tijdens shutdown:

Code: Select all

InputTimer.Stop()
Volgens mij moet je dan wel met een timertje kunnen werken.
maikelwijnen
Starting Member
Starting Member
Posts: 41
Joined: Tue Jun 16, 2009 9:15 pm
Location: Netherlands

Re: Hulp gevraagd voor plugin K8061 USB interfacekaart

Post by maikelwijnen »

Hoi,

Bedankt voor de hulp. (Zeker die van timer moet in MODULE1 :P )
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)
Zou het hier aan kunnen liggen dat een van de inputs spontaan omspringt?

Maikel
User avatar
Rene
Global Moderator
Global Moderator
Posts: 1689
Joined: Wed Oct 08, 2008 3:54 pm
Location: Netherlands

Re: Hulp gevraagd voor plugin K8061 USB interfacekaart

Post by Rene »

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.
maikelwijnen
Starting Member
Starting Member
Posts: 41
Joined: Tue Jun 16, 2009 9:15 pm
Location: Netherlands

Re: Hulp gevraagd voor plugin K8061 USB interfacekaart

Post by maikelwijnen »

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
Post Reply

Return to “Homeseer algemeen Forum”