Søk i nettsamfunnet
Viser resultater for emneknaggene 'windows service'.
Fant 1 resultat
-
Jeg begynte på dette prosjektet fordi jeg hadde glemt å følge med på trykkmåleren for varmtvann til radiatorene i huset. Rørleggeren som så at det var nesten ikke vann i systemet lurte på om jeg hadde veldig god råd siden jeg risikerte å ødelegge hele systemet. Klok av skade så begynte jeg å drodle opp en løsning for å kunne automatisere overvåkningen siden tanken og måleren er i ett rom jeg ikke går ofte inn i (og selv når jeg er der så glemmer jeg å sjekke status). Tidligere har jeg laget overvåkning av elektrisitetsmåleren på loftet og jeg begynte med en lignende løsning. Foran måleren monterte jeg ett wifi webkamera med ir (jeg gikk for DLink DCS932L, men her er det sikkert mange som fungerer like bra). Dette kameraet kan man sette opp til å sende via ftp. Jeg sender ett bilde til en ftp-server som jeg har på en windowsserver (den magiske serveren som drar alt her i huset). Det tas ett nytt bilde ca hvert 5 minutt og det overskriver det eksisterende bildet siden jeg ikke trenger noe historikk. "Råbilde" På serveren har jeg en windows service som følger med på folderen som bildet legges inn i. Ved en ny eller endret jpg-fil begynner denne servicen å jobbe. Jeg bruker her ett gratis bibliotek som heter OpenCv til å undersøke bildet. Jeg har valgt veien via templates, mens en som kan bildebehandling sikkert ville brukt forskjellige andre funksjoner. I første omgang leter jeg igjennom bildet etter selve måleren ved hjelp av en mal og "klipper" ut den hvis jeg finner den. "Målermal" Etter litt bildebehandling sitter jeg igjen med. "Måleren" Etter dette bruker jeg en mal basert på måler nålen i ønsket posisjon og tester mot utklippet bilde. Jeg roterer malen slik at jeg tester for alle 360 grader. Det "treffet" som har høyest sannsynlighet tas vare på og lagres ned i en database. "Mal for målernål i ønsket posisjon (rotasjon 0 grader)" For å få dette over i Homeseer så har windows servicen en liten webserver basert på NancyFx som har kun en side som vises på localhost. Her kommer data som en semikolon separert streng hvor man har datanavn=data. Jeg prøvde å gjøre dette litt bedre med json i starten, men ble stående fast og gikk for en enkel løsning hvor data kommer som en tekststreng. Mulig jeg skal se på dette ved en senere anledning, men det er ingen hast siden dette er noe som kun brukes lokalt på min server. CS-scriptet kjøres hvert 20 minutt og henter ut data fra windows service. Veldig enkle greier som henter ut rotasjon i grader, sannsynlighet og bildets dato/tid og dette legges inn i hardkodede deviceId (virtuelle devicer). (Og man må jo lage seg 3 devicer i Homeseer som skal motta verdiene) Jeg har en event som sjekker om rotasjonen er over +/-10 grader. Hvis det skjer så får jeg en melding på sms. "Oversikt i Homeseer" Script for å hente tall fra windows service I tillegg er det en windows service som er veldig spesifikk for meg. Hvis det er interresse så kan jeg prøve å lage noe mer generelt som folk kan leke med. Link til kildekode: https://github.com/oesolberg/MeterReaderService Link til zip-fil med service ferdig kompilert (23 MB pakket, 65 MB utpakket). http://bit.ly/MeterReaderHjemmeAutomasjon Hvordan å installere: Pakk ut alle filene i en egnet katalog (f.eks. c:\program files\meterreader) bruk Powershell og skriv inn følgende kommando : new-service -Name MeterReaderService -DisplayName "MeterReaderService" -Description "MeterReaderService" -BinaryPathName "c:\program files\meterreader\MeterReaderService.exe" -StartupType Manual For å starte service kan du kjøre kommando (i powershell): start-service -name "MeterReaderService" For å endre litt på hva som skal overvåkes må du inn og editere i MeterReaderService.exe.config filen. Følgende er nå satt: <add key="folder" value="C:\temp\warmwater\" /> <!- Hvilken folder som overvåkes --> <add key="filter" value="*.jpg" /> <!- Hvilken filtype man skal trigge på (men her er jeg redd at det kun fungerer med jpg-filer) --> <add key="sleepinterval" value="2000"/> <!- Antall millisekunder man skal vente fra en fil har endret seg til man begynner å behandle den --> <add key="port" value="1234"/> <!- porten til Nancy webserver - url http://localhost:1234 --> <add key="MaalerMal" value="MeterMalWithGray.jpg" /> <!- filen som inneholder målermalen (må ligge i underkatalogen Templates) --> <add key="NaalMal" value="KorrektNaalMedGraatt.jpg" /> <!- filen som inneholder målernålen (må ligge i underkatalogen Templates) -->
- 12 svar
-
- 4
-
- windows service
- bildebehandling
-
(og 1 andre)
Merket med: