Hop til indhold

Microsoft .NET API/SDK


TGF Rules
 Share

Recommended Posts

  • 4 weeks later...

For et halvandet år siden spurgte jeg LK om ikke der var et officielt .NET interface, men jeg fik at vide at det var noget der var udviklet til B&O og at det krævede en patch til controlleren. Så i juleferien for godt et år siden blev jeg så irriteret over at have noget computerstyret som jeg ikke kunne computerstyre. Jeg ville kunne slukke og tænde juletræet fra mediecentret.Jeg skildte Java jar'en lidt ad og fandt URL'erne til WSDL filerne og endpoints. Så kommer man langt med Fiddler2 og ServiceView. Og bare ved at kigge på filnavnene i IHC Visual folderen. Jeg skrev hvad jeg havde fundet til LK og de sagde at jeg bare kunne bruge det til hvad jeg havde lyst til, men bad mig om ikke ud udbrede mine opdagelser da de ikke ønskede/kunne supportere interfacet.Jeg programmerer jævnlidt på arbejde, men det er med så mange forskellige ting at jeg ikke er ret skarp til noget af det. Og derfor nåede jeg ikke at komme ret langt med min .NET implementering. Men jeg ville kunne styre og logge input og outputs. Jeg har haft nogle tanker som ikke er blevet luftet i tråden (som jeg først opdagede i går!). Man kan godt lave inputs som ikke er hæftet til nogen fysisk kontakt, det er i hvert fald en lille smart ting når man som i iPhone applikationen ikke kan manipulere andet end inputs og outputs.Det ligger nogle .def filer inde i IHC Visual installationen som jeg overvejede om man ikke kunne udvide med "virtuelle" inputs og outputs. Så man med en egenskab direkte i Visual kunne forbinde en resource med med en .net håndtag af en eller anden slags. Det kræver selvfølgelig en altid aktiv server, men det var også de tanker jeg puslede med.Jeg ser sådan på det at man ikke skal til at flytte noget af det funktionalitet der eksisterer i controlleren ud i noget hjemmebrygget. Man bør holde sig for øje at det blot skal være funktionalitet som der ikke eksisterer i standardopsættet.Jeg vil snart prøve at kigge på det assembly der er lavet og se om ikke jeg skal se at komme igang igen. Fedt at det er open source, så kan jeg sende evt. opdateringer til Kristian og så kan vi alle på fornøjelse af det.Længe leve IHC!

Link til kommentar
Del på andre sites

  • 7 months later...

Jeg poppede lige ind for at sige tak for koden. Jeg har lige fået hul igennem til et ASP.NET MVC 3 interface på min mobil, og det spiller bare. Dog tager det lidt lang tid (2-3 sekunder) fra man trykker til lyset tænder/slukker. Er der nogen, der har nogle tip mht. til dette?Og endelig, af nysgerrighed.. Hvordan fandt i frem til webservicen? Har i noget dokumentation på denne, eller?

Link til kommentar
Del på andre sites

Jeg har også kigget lidt på projektet for at få inspiration til en lille Windows Phone 7 app. Har dog et enkelt spørgsmål' date=' som jeg håber nogen kan svare på:Hvordan læser jeg værdien for en temperatursensor (product_identifier = "_0x2124")?Det ser ikke ud til, at den har nogle DatalineInput/-Output værdier.[/quote']Det er da med i mit kode ikke?
Link til kommentar
Del på andre sites

  • 2 weeks later...
  • 1 month later...

Jeg har været med til at leve en løsning med MikkelS´s en kode der fint snakker sammen med SQL. Om det er en Homeseer server, en webside eller noget helt 3. der genere forespørgslerne - og dermed kommandoerne er underordnet. Søg lidt i forummet og du vil se der er flere der har sådanne løsninger oppe at køre.

Link til kommentar
Del på andre sites

lars-jacobsen > Jeg har også fået dette til at lykkes, har et spørgsmål til dig/jer - i snakkede noget omkring at der er lidt tid mellem værdien bliver sat i IHC'en til DB har den og kan bruge den ligger denne også stadig på ca. 2 sek. og kan svinge lidt?Og opdager i at IHC'en bliver noget mere tung i det mens i henter værdier fra denne?

Link til kommentar
Del på andre sites

Mener også vi havde responstider i nærheden af 2 sekunder, men serveren befandt sig også på en webhotel i kbh og controlleren i Viborg. Og det hele foregår via Internettet, så det er vel OK. Om det gå hurtigere hvis det hele foregår på lokal netværk med en monster SQL server ved jeg ikke .Mikkel roder og optimere lidt på koden en gang imellem. Prøv evt. med en PM til ham.Hvis man har lyst (og tør ;-) )kan man jo prøve hans lille testside:http://mail.pdaxrom.org/mss/ihctest/Efter du er logget ind (eller hvor langt den nu kommer) - så prøv det her link:http://mail.pdaxrom.org/mss/ihctest/test.phpSå vidt jeg er orienteret fungere den ved at den henter dit program fra controlleren, gemmer genkendelig resource ID´r i SQL og lader dig kontrollere dem via websiden/interfacet. Kommandoerne skulle blive genneret ud fra de gemte SQL data og derefter sendt til din controller.

Link til kommentar
Del på andre sites

lars-jacobsen > Og opdager i at IHC'en bliver noget mere tung i det mens i henter værdier fra denne?
Hvor meget data henter du af gangen?Der er jo ingen grund til at hente alt hver gang. Man kan jo abonnere på events fra controlleren og dermed reducere behovet for at hente store mængder data.
Link til kommentar
Del på andre sites

lars-jacobsen > Og opdager i at IHC'en bliver noget mere tung i det mens i henter værdier fra denne?
Hvor meget data henter du af gangen?Der er jo ingen grund til at hente alt hver gang. Man kan jo abonnere på events fra controlleren og dermed reducere behovet for at hente store mængder data.
Jeg vil tro at jeg henter omkring 20 værdier hver gang! - hvordan vil du abonnere på events fra controlleren? da den jo ikke kalder ud du bliver da nød til at hente de respektive værdier hver gang for at se om der er noget der skal opdateres!
Link til kommentar
Del på andre sites

Hej TMDKNu er det jo også blevet en rigtig lang tråd, så jeg forventer ikke at du har læst det hele, men på side 5 har jeg et indlæg hvor der bl.a. står:Umiddelbart kan man ikke bruge events via Web Services, men LK har alligevel lavet noget smart.Med metoden enableRuntimeValueNotifications sender man et array af resources som man gerne vil 'abonnere på'Herefter kalder man metoden waitForResourceValueChanges med ventetid i sekunder (typisk 10 sekunder) som parameter. Metoden lytter så på events fra controlleren, og hvis der sker noget returnerer den et svar. Hvis ikke så returneres et tomt svar når ventetiden udløber.

Link til kommentar
Del på andre sites

  • 3 months later...
HejEr der nogen der arbejder på et Homeseer plugin?
Jeg har haft kigge på det' date=' men jeg synes jeg løb panden mod en mur' date=' eller også har jeg helt misforstået noget.Sådan som jeg umiddelbart har tolket plugin strukturen i Homeseer, så er den rimelig statisk og egner den sig bedst til integration med udstyr der har en fast afgrænset mængde inputs og outputs og at disse har en fast funktionalitet. Derudover der nogle begrænsninger på 99 adresser, men det kan dog omgås, som det også er gjort i tidligere IHC integrationer.Sålænge man holder sig til trådet ind- og udgange, så har man en rimelig chance for at lave noget der kan fungere, men hvis det skal være godt, så vil det kræve at man skal matche ResourceID's fra IHC projektet med de respektive ind- og udgange i Homeseer. Jeg kan forestille mig at det kan være lidt omstændigt, og derfor vil det være formålstjenstligt først at kunne parse IHC projektfilen, i håb om at kunne gøre denne process nemmere for brugeren (det er her jeg er nået til pt)Ønsker man at logge værdier fra en Counter eller lign, og ønsker man integration til trådløse enheder, så begynder det at blive en smule tricky, for så kommer der flere typer i spil og antallet af trådløse funktioner afhænger af hvilken type enhed man tilslutter, og det fungerer ikke så godt med den relative statiske plugin model som Homeseer har.Helt konkret er det ikke noget problem at implementere 128 ind- og udgange der kan have værdien on/off, men hvad gør man fx når der så skal være en wireless dimmer der skal kunne tildeles en værdi mellem 0 og 100, og på forhånd kan jeg ikke vide om der er 64 wireless dimmere eller 64 wireless relæerEen måde at gøre det på er at reservere et fast antal adresser til trådet input, trådet output, wireless relæ, wireless dimmer, resourcecounters m.v. Det vil sikkert også fungere, men på et tidspunkt er der så en bruger der løber panden mod muren, fordi der ikke er allokeret adresser nok. Der kan jo fx være et ubegrænset antal counters i et IHC projekt.[/quote'']Hej.Jeg sidder selv og roder med Homeseer.Jeg har skabt forbindelse til IHC via PHP. Vil dog helst ikke forespørge via php hele tiden. Kort fortalt vil jeg gerne have en enkelt udgang i IHC til at trigge et script i Homeseer med det samme udgangen kommer. Er der nogen "nem/simpel" måde at gøre dette på...
Link til kommentar
Del på andre sites

  • 2 years later...

Jeg har faldet over Kristians IHCOutput projekt, og er ovenud begejstret, nu bliver det jo pludselig endnu sjovere at rode med IHC :)

 

Stort tak for alt det arbejde der er lagt i det.

 

Jeg er straks gået i gang med at hacke rundt i projektet og modificere det hist og her, ikke mindst for at prøve at lære hvordan det virker.

 

Jeg overvejer at prøve at få projektet op at køre på et af de der Arduino boards, og på denne måde lave en IR remote modtager, men der er rigtig meget jeg skal have sat mig ind i, inden det er muligt.

 

Indtil videre leger jeg blot med projektet på min PC med Visual Studio.

Jeg har fået lavet det, så jeg i stedet kan styre DatalineInput i stedet for DatalineOutput, dermed kan jeg lave lange og korte tryk på mine kontakter og på denne simple måde skrue op og ned for lyset osv, hvilken virker fint indtil nu.

 

Nu til spørgsmålet, når jeg trykker Login går der ca 11 sekunder inden den har indlæst projektet fra controlleren, loopet igennem diverse rum og fundet alle resourcerne.

Jeg kunne godt tænke mig at få speedet denne tid drastisk op, men ved ikke helt præcis hvad der tager så lang tid.

Jeg overvejer at lave det så den kun læser fra et enkelt rum eksempelvis stuen og kun læser alle DataLineInputs, så den ignorerer alle andre rum, DataLineOutputs, alle wireless resourcer osv.

 

Er der en behjælpelig sjæl der kan forklare hvor jeg skal lave et hack for at opnå dette.

Kan ikke helt gennemskue om det skal laves i Controller klassen eller i utcs_project klassen

 

På forhånd mange tak

Link til kommentar
Del på andre sites

Nu til spørgsmålet, når jeg trykker Login går der ca 11 sekunder inden den har indlæst projektet fra controlleren, loopet igennem diverse rum og fundet alle resourcerne.

Jeg kunne godt tænke mig at få speedet denne tid drastisk op, men ved ikke helt præcis hvad der tager så lang tid.

Jeg overvejer at lave det så den kun læser fra et enkelt rum eksempelvis stuen og kun læser alle DataLineInputs, så den ignorerer alle andre rum, DataLineOutputs, alle wireless resourcer osv.

 

Er der en behjælpelig sjæl der kan forklare hvor jeg skal lave et hack for at opnå dette.

Kan ikke helt gennemskue om det skal laves i Controller klassen eller i utcs_project klassen

 

På forhånd mange tak

 

Hej Kenth

 

Min oprindelige tanke med projektet var, at man skulle have et objekt i hukommelsen, som man kunne aggere med, og som kontinuert kommunikerer med controlleren. Set i det lys mener jeg ikke at de 11 sekunder er lang tid, da det jo kun skal gøres 1 gang. Det tager jo også noget tid at læse projektfiler ind i LK Visual program fra Controlleren.

 

Det er muligt at min tilgang er overkill, og Mikkel har jo også vist at det kan gøres mere simpelt. 

 

I stedet for at traversere hele projektet igennem, så kan man nok bruge XQuery til at hente de dele ud som man reelt har brug for.

 

Som nævnt i tråden, så er koden hverken helt eller halvt færdig. Jeg gik simpelthen kold i processen, så mit råd er at du bare skal tage det du kan bruge...

 

mvh

 

  Kristian

Link til kommentar
Del på andre sites

Min oprindelige tanke med projektet var, at man skulle have et objekt i hukommelsen, som man kunne aggere med, og som kontinuert kommunikerer med controlleren. Set i det lys mener jeg ikke at de 11 sekunder er lang tid, da det jo kun skal gøres 1 gang. Det tager jo også noget tid at læse projektfiler ind i LK Visual program fra Controlleren.

Det er jeg helt med på, jeg ville blot for sjov lave et helt simpelt program, som jeg kunne have liggende på min desktop, så hvis jeg af dovenskab ikke gad rejse mig fra sofaen for at tænde eller slukke for lyset, kunne jeg lynhurtigt starte dette program og styre lyset.

 

Da dette program ikke altid skal ligge og køre i baggrunden hele tiden, kunne det være lækkert hvis det kunne connecte osv super hurtigt.

Jeg må i gang med at prøve at fjerne noget af alt det indlæsnings funktionalitet som jeg ikke har brug for, efterhånden som jeg forhåbentlig begynder at forstå hvordan det virker.

 

Jeg tænker også lidt ud i fremtiden, hvis jeg skal have det til at køre på et Arduino board som ikke har så meget processor kraft, skal projektet måske også skrumpes væsentligt ned

Link til kommentar
Del på andre sites

  • 1 month later...
  • 2 years later...
På 12/8/2011 at 12:18 , Marcus1354922271 skrev:

lars-jacobsen > Jeg har også fået dette til at lykkes, har et spørgsmål til dig/jer - i snakkede noget omkring at der er lidt tid mellem værdien bliver sat i IHC'en til DB har den og kan bruge den ligger denne også stadig på ca. 2 sek. og kan svinge lidt?Og opdager i at IHC'en bliver noget mere tung i det mens i henter værdier fra denne?

Det virker af lang tid. Jeg prøvede lige med min egen løsning:

----------------------------------------------------
Resource changed: Spisebord: True
Time taken: 1451
----------------------------------------------------
Resource changed: Spisebord: False
Time taken: 238
----------------------------------------------------
Resource changed: Spisebord: True
Time taken: 197
----------------------------------------------------
Resource changed: Spisebord: False
Time taken: 959
----------------------------------------------------
Resource changed: Spisebord: True
Time taken: 204
----------------------------------------------------
Resource changed: Spisebord: False
Time taken: 198
----------------------------------------------------
Resource changed: Spisebord: True
Time taken: 195
----------------------------------------------------
Resource changed: Spisebord: False
Time taken: 209

Her toggler jeg et input og venter på svar på at det er skiftet. Altså en helt roundtrip. Første kald tage 1451ms (altså 1½ sekund). Derefter går det langt stærkere.

Det er selvfølgelig klart, at hvis der kommer databasekald mv. ind i billedet, bliver det kun langsommere. Selv sender jeg blot signalet videre via SignalR til alle forbundne browser, men det har jeg ikke timings på.

Link til kommentar
Del på andre sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gæst
Svar på dette emne...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loader...
 Share

×
×
  • Tilføj...

Important Information

Privatlivspolitik og We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

1200x630bb.png

ok