Maalämpöfoorumi

Tekniset kysymykset => Tiedonkeruujärjestelmät ja etämonitorointi => Aiheen aloitti: olammi - 21.12.14 - klo:17:25

Otsikko: dialEye v1.0a julkaistu
Kirjoitti: olammi - 21.12.14 - klo:17:25
Muutaman vuoden omatarvesäätämisen jälkeen sain dialEye-projektin julkaisukuntoon. Julkaisin ensimmäisen julkisen version v1.0a. http://olammi.iki.fi/sw/dialEye/ (http://olammi.iki.fi/sw/dialEye/)

Ohjelman tarkoituksena on lukea kamerakuvan avulla vesimittarin, kaasumittarin tms. pyöriviä viisareita sisältävän mittarin naamakuvasta viisareiden osoittama lukema. Tätä lukemaa voidaan hyödyntää kulutuslaskennassa (esim.
vesimittarista saa desilitratarkkuuksisen reaaliaikaisen kulutusmittauksen). Täysin poikkeuksellisesti itselleni  ::) kirjoitin myös jäätävän tarkat käyttö- ja konfigurointiohjeet: http://olammi.iki.fi/sw/dialEye/howto.php (http://olammi.iki.fi/sw/dialEye/howto.php). Paljon kuvia ja esimerkki mm. taloLoggerin kanssa käyttämisestä.

Donationwarea. Vapaasti käytettävissä henkilökohtaisiin tarkoituksiin.

Palaute ja kysymykset dokumentaation lukemisen jälkeen allekirjoittaneelle.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Pali - 27.12.14 - klo:12:16
Hieno systeemi!

Mitä halpaa kameraa olet tuossa testannut? Ebay:stä löytyy tälläisia http://www.ebay.com/itm/5M-7mm-6LED-Waterproof-Borescope-USB-Endoscope-Inspection-Snake-Tube-Camera-Cam-/351161925251?pt=UK_BOI_Medical_Lab_Equipment_Medical_Equipment_Instruments_ET&hash=item51c2e1be83 (http://www.ebay.com/itm/5M-7mm-6LED-Waterproof-Borescope-USB-Endoscope-Inspection-Snake-Tube-Camera-Cam-/351161925251?pt=UK_BOI_Medical_Lab_Equipment_Medical_Equipment_Instruments_ET&hash=item51c2e1be83) jossa on myös integroitu ledi valot ja pitäisi toimia linuxissa. Riittäsköhän tuossa tarkkuus ja noiden integroitujen ledien valoteho? Youtubessa näyttäs olevan testi videoita noista kameroista ja yllättävän hyvää kuvaa tarjoaa.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: olammi - 27.12.14 - klo:18:10
Käytin jotain vastaavaa kuin http://www.ebay.co.uk/itm/TRIXES-USB-Webcam-Microphone-with-LEDs-for-PC-Laptop-Windows-Mac-Skype-/360585052171?pt=UK_Computing_ComputerComponents_Webcams&hash=item53f48b400b (http://www.ebay.co.uk/itm/TRIXES-USB-Webcam-Microphone-with-LEDs-for-PC-Laptop-Windows-Mac-Skype-/360585052171?pt=UK_Computing_ComputerComponents_Webcams&hash=item53f48b400b). Parikin mallia tilasin, jostain Hong Kongista tuli. Toista en saanut Linuxissa toimimaan millään (joku ajuri/hw-ongelma). Toinen toimi, kunnes yhden pidemmän saunaillan jälkeen oli tuolta iv-koneen kondenssipoistosta (vesimittarin päällä) lirittänyt kameran päälle vettä ja se oli entinen. Alunperin oli tarkoitus Raspberryllä hoitaa tuota kameraa, mutta en saanut taas sitä Linux-serverissä toimivaa webcamia toimimaan Raspberryn alkupään kerneleiden kanssa (silloin kun sen kanssa taistelin).

Siirryin verkkomalliseen, koska se ei ole hardis/ajuririippuvainen ja Raspberrykin saa kuvan haettua verkon yli sellaisesta. Näissä on myös pieni webserveri, josta snapshot-kuvan saa HTTP:lla URL:ista (ainakin kaikissa malleissa, joihin olen törmännyt).

Nyt on käytössä tuollainen: http://www.verkkokauppa.com/fi/product/8906/dddnh/D-Link-DCS-930L-IP-kamera (http://www.verkkokauppa.com/fi/product/8906/dddnh/D-Link-DCS-930L-IP-kamera) ja se on suojattu valuvilta vesiltä itsetehdyllä pellikatteella... Tuossa mallissa ei ole tarkoituksella omaa valaistusta, koska se noissa olisi vain IR-valaistus (joka ei oikein ole OK tuon minun kuvantunnistuksen kanssa) ja kun oli jo olemassa ulkoinen kohdevalaistus mittarille.

Edit: Vielä vastaus viimeiseen kysymykseen: En näe mitään periaatteellista syytä, miksi tuollainen linkittämäsi kamera ei toimisi. Tosin en ole kokeillut enkä aina noista Kiinanihmeistä ole varma, että toimivatko ne Linuksin kanssa, vaikka sivulla lukisi mitä. Ei tosin ole kalliskaan kokeilla.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Kokko74 - 01.01.15 - klo:23:32
Hei, tuli asenneltua ja conffattua dialeye melkein valmiiksi. Törmäsin seuraavanlaiseen ongelmaan. Kamerana minulla on Foscam FI9810w. Kamerasta saa seuraavalla rivillä snapshotin selaimella  joka mielestäni pitäisi olla kuvana ok.
Koodia: [Valitse]
http://192.168.0.80:8085/snapshot.cgi?user=vesi&pwd=mittari
(kuva liitteenä)

Tässä käyttäjätunnus ja salasana tulee linkin perään, ja nyt tuo & merkki aiheuttaa ongelmia mielestäni.
Seuraavalla käskyllä olen yrittänyt terminaalissa ajaa laihoin tuloksin.


Koodia: [Valitse]
sudo python /home/talo/dialEye/dialEye.py -f /home/talo/dialEye/dialEye.conf -s -u meter http://192.168.0.80:8085/snapshot.cgi?user=vesi&pwd=mittari

Mitä terminaali antaa ulos jos kaikki menee ok?
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: olammi - 01.01.15 - klo:23:37
Tässä käyttäjätunnus ja salasana tulee linkin perään, ja nyt tuo & merkki aiheuttaa ongelmia mielestäni.
Seuraavalla käskyllä olen yrittänyt terminaalissa ajaa laihoin tuloksin.

Koodia: [Valitse]
sudo python /home/talo/dialEye/dialEye.py -f /home/talo/dialEye/dialEye.conf -s -u meter http://192.168.0.80:8085/snapshot.cgi?user=vesi&pwd=mittari

Mitä terminaali antaa ulos jos kaikki menee ok?

-v -optiolla se kertoo, että mitä se on tekemässä. Laita tuo koko URL lainausmerkkeihin. Nuo ? ja & ovat unix shellin mielestä sille annettuja ohjausmerkkejä ja se kilahtaa niihin. Lainausmerkit parantavat.

Edit: Kuvasi on ainakin riittävän valoisa ja selkeä. Luulisin, että tuosta viisarit löytyvät varsin mallikkaasti.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Kokko74 - 02.01.15 - klo:22:43
Hei,

Seuraavalla rivillä lähti FOSCAM toimimaan.

Koodia: [Valitse]
DIALEYE1:PARAMETERS = /home/talo/dialEye/dialEye.py -f /home/talo/dialEye/dialEye.conf -s -u --username vesi --password mittari meter "http://192.168.0.80:8085/snapshot.cgi?user=vesi&pwd=mittari"
olammi, kotisivullasi on kait kielioppivirhe ohjeessa HOWTO, piti --username xxx --password yyy vaihtaa -u jälkeen, ei meter jälkeen.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: olammi - 03.01.15 - klo:00:07
olammi, kotisivullasi on kait kielioppivirhe ohjeessa HOWTO, piti --username xxx --password yyy vaihtaa -u jälkeen, ei meter jälkeen.

Fiksaan ohjetta.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Kokko74 - 03.01.15 - klo:18:32
Hei,

mikähän on mennyt pieleen sen jälkeen kun kamera siirtyi, olen tehnyt uuden kalibroinnin. Nyt lukemat jotka tallentuvat tietokantaan on mitä sattuu. Terminaalin käskyllä saan kyllä oikean arvon mutta talologger lukee puuta heinää. Tallennetaanko jonnekin tilapäisesti jotain sellaista johon tietokoneen uudelleen käynnistyskään ei auta?
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: olammi - 03.01.15 - klo:19:37
mikähän on mennyt pieleen sen jälkeen kun kamera siirtyi, olen tehnyt uuden kalibroinnin. Nyt lukemat jotka tallentuvat tietokantaan on mitä sattuu. Terminaalin käskyllä saan kyllä oikean arvon mutta talologger lukee puuta heinää. Tallennetaanko jonnekin tilapäisesti jotain sellaista johon tietokoneen uudelleen käynnistyskään ei auta?

dialEye:n "tilaan" vaikuttavat seuraavat tiedostot:

Jos komentoriviltä tulee ok-tavaraa ja taloLogger ajaa puutaheinää, niin voi olla, että sinulla on jostain syystä kaksi konfiguraatiota tai shake-konfiguraatiota ehkä eri hakemistoissa. Tähän auttaa ainakin, jos dialEye.conf:issa määrittelee koko polun kalibrointikuvalle ja shake-tiedostolle.

Jos kamera liikkuu, niin -s-vivulla (ja jos "shake" on konffattu dialEye.conf:ssa) dialEye:n pitäisi seurata kameraa. Default-konffissa kuva siirtyy max. 1 pikselin / ajokerta (SHAKE_RADIUS). Jos taas kamera heilahtaa isosti, niin tilannetta voi koittaa fiksata muuttavalla väliaikaisesti sen säteen isommaksi (vaikka 10) ja ajelemalla -s -option kanssa komentoriviltä. Tällöin ajo kestää kauemmin, koska oikeaa kohtaa etsitään kauempaa, mutta löytynyt kohta sitten tallettuu sinne shake-conffiin (oletuksena dialeye_shakes.conf). Kohdan löydyttyä säde takaisin ykköseksi ja homman pitäisi pysyä lokittaessa ok perässä. Kameran liikahtaessa ei siis välttämättä tarvita uutta kalibrointiprosessia kaikkine parametreineen, vaan vain sen oikean siirtymän (x-suunta, y-suunta ja kiertymä) löytymistä.

Jos kamera liikkuu sinulla paljon sen kameran asennuksesta johtuen, niin sädettä voi toki pitää isompana kuin 1. Itselläni oli ensin kamera pultattu seinään, niin joku lämpömuutos vettä käytettäessä luultavasti siirsi mittaria muutaman millin, jolloin tuollaista 5 pikselin liikehdintää oli koko ajan. Tuolloin säteen piti olla isompi. Myöhemmin kiinnitin kameran mittarin kiinnikkeeseen, jonka jälkeen tilanne on pysynyt hyvin hallinnassa.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Kokko74 - 03.01.15 - klo:22:30
Hei,

dialeye_shakes.conf tiedoston polku oli määrittelemättä, siitä johtui ongelmat.

Kiitos
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: noble - 28.12.15 - klo:12:37
Onnistuukohan dialEye:llä lukemien ottaminen mittarille, jossa pulssianturinpaikka vääristää neuloista otettua kuvaa...?
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: olammi - 28.12.15 - klo:13:40
Onnistuukohan dialEye:llä lukemien ottaminen mittarille, jossa pulssianturinpaikka vääristää neuloista otettua kuvaa...?

Ei tuohon osaa sanoa kuin, että yrittänyttä ei laiteta. Jos pakko olisi veikata jotain hevosta, niin sanoisin, että ei onnistu.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: fraatti - 28.12.15 - klo:23:21
Onnistuukohan dialEye:llä lukemien ottaminen mittarille, jossa pulssianturinpaikka vääristää neuloista otettua kuvaa...?

Tilaa tuohon sopiva anturi? Eikö se olisi helpompaa?
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: noble - 28.12.15 - klo:23:48
Vesilaitoksen kautta tilattuna perusmaksut nousee +15% ja en löytänyt mitä tuo tukkurilla erikseen kustantaisi, tuli vain kokonaisten mittareiden hintoja vastaan.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: fraatti - 29.12.15 - klo:00:45
Vesilaitoksen kautta tilattuna perusmaksut nousee +15% ja en löytänyt mitä tuo tukkurilla erikseen kustantaisi, tuli vain kokonaisten mittareiden hintoja vastaan.

Itse valikoin onnisen valikoimasta tuon mittarin itselle. Silloin  löysin tuolta kuvastosta mittarin ilman anturia ja anturilla sekä pelkästään paikalla. Muistelisin että myös pelkkä "karva" olisi löytynyt jostain. Eihän muuten ole mitään hyötyä tehdä mittari jos siihen ei saisi pelkkää johtoa paikoillee... kerropa mittarin malli niin mäkin voi koittaa etsiä...
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: noble - 29.12.15 - klo:09:33
Mittari on Zenner MNK-N (tai-I) sama anturi niihin pitäisi mennä. Ja Q3=4.

Olen komponenttilaatikosta ottanut reed-kytkimen tuohon testiin, sillä saan pulssit, mutta haamuvedoista ei sitten ole tietoa. Joten mieluiten oma anturi, jos edullinen olisi.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: noble - 29.12.15 - klo:17:40
Oikea anturi olisi Zennerin tuotekoodin mukaan 111512 ...
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: fraatti - 29.12.15 - klo:22:03
Oikea anturi olisi Zennerin tuotekoodin mukaan 111512 ...

Eikö tuon saisi tilattua jonkun puulaakin kautta tukusta? Usein rautakaupatkin suotuvat hoitamaan tilauksia esim onnisen kautta...
Itselle piti tulla mittari 1l/tarkkuudella mutta toimitusaika mittarissa olisi ollut monta kuukautta joten jouduin tyytymään 10l tarkkuudella olevaan. Meidän vesiosuuskunnassa on ollut tuo 1l tarkkuudella oleva ja tuo on näyttänyt kyntensä monessa asiassa vaikka kulutus saattaakin olla pitkälle toistasataa litraa minuutissa. Vuotojen yms paikantamiseen ollut loistava peli graafiseen etäluentaan yhdistettynä.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Pali - 22.04.16 - klo:21:32
Kaveri hommasi Leakomatic vuotovahdin ja siitä innostuneena vihdoin ja viimein sain itsellenikin kameran hommattua. Hienostihan tämä dialEye näyttäisi pelaavan, joten suuret kiitokset tästä.

Leokomatic tunnistaa myös tippavuodot hyvin nopeasti. Oletkos koskaan ajattellut, voisiko mustalle siipipyörälle tehdä jotain tunnistusta? Laitoin vesihanan tippumaan noin tippa sekunnissa.

(https://dl.dropboxusercontent.com/u/1481715/1.jpg)

Muutaman minuutin päästä siipipyörä oli hivenen liikahtanut

(https://dl.dropboxusercontent.com/u/1481715/4.jpg)

Tuosta jos saisi jonkun indikaation, niin tätä voisi käyttää myös hyvin pienien vesivuotojen tunnistamiseen  :)
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: olammi - 22.04.16 - klo:22:45
Oletkos koskaan ajattellut, voisiko mustalle siipipyörälle tehdä jotain tunnistusta? Laitoin vesihanan tippumaan noin tippa sekunnissa.

Muutaman minuutin päästä siipipyörä oli hivenen liikahtanut

Tuosta jos saisi jonkun indikaation, niin tätä voisi käyttää myös hyvin pienien vesivuotojen tunnistamiseen  :)

Pienet vesivuodot toki sitten liikuttavat esim. yön aikana tuota vähiten merkitsevää viisaria (resoluutio 1 desilitra). Oma havainto on, että se siipipyörä liikkuu myös ilman tippavuotoja edestakaisin verkoston paineenvaihtelun mukana esim. Saattaisi tulla virheellisiä tippahavaintoja välillä.

No, yhtäkaikki toki on mahdollista samaan tapaan tehdä analyysiä esim. siitä, että onko käyttäjän maalaamalla alueella (ympyrä, neliö, muu) enemmän mustaa vai valkoista jollain ajanhetkellä. Kulutusta siitä on vaikea kameralla havaita ilman, että otettaisiin todella reaaliaikaista kuvaa, joka taas vaatisi paljon prosessoritehoa. Jos otetaan vaikka 1 sek välein kuva ja verrataan edelliseen, niin tuo siipipyörä on edennyt jo aika paljon, jos hana on auki eikä siitä ole mitenkään pääteltävissä paljonko se on edennyt.

Jos olisi luotettava siipipyörän anturointi ja pulssilaskenta, niin sillä voisi toki laskea kulutustakin ja arvioida vuotoa. Tämä mielestäni olisi jotain muuta kuitenkin kuin Raspberry ja web-kamera.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Pali - 23.04.16 - klo:09:28
No, yhtäkaikki toki on mahdollista samaan tapaan tehdä analyysiä esim. siitä, että onko käyttäjän maalaamalla alueella (ympyrä, neliö, muu) enemmän mustaa vai valkoista jollain ajanhetkellä. Kulutusta siitä on vaikea kameralla havaita ilman, että otettaisiin todella reaaliaikaista kuvaa, joka taas vaatisi paljon prosessoritehoa. Jos otetaan vaikka 1 sek välein kuva ja verrataan edelliseen, niin tuo siipipyörä on edennyt jo aika paljon, jos hana on auki eikä siitä ole mitenkään pääteltävissä paljonko se on edennyt.

Tuolla mustan tai valkoisen määrällä varmaan saisi tunnistettua josko siipipyörä on liikahtanut. Esim 30 sekunnin välein ottaa kulutuksen ylös viisareista ja myös 30 sekunnin välein prosentuaalisen mustan tason siipipyörästä. Jos kulutus pysyy "paikallaan", niin ettei desilitra viisarikaan värähdä, mutta siipipyörä kuitenkin liikkuu jatkuvasti, niin mahdollinen tippavuoto voitaisiin saada kiinni. Kuten sanoit niin desilitran tai isommat vuodot saa kiinni yön aikana, mikäli muuta kulutusta ei ole ollut. Tämän muun kulutuksen tietäminen ohjelmallisesti onkin sitten kerta luokkaa haastavampaa. Tietysti jos mahdolliset paineenvaihtelut aiheuttaa myös siipipyörän muutoksia, niin sitten tämä ei toimi.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: jussip - 24.04.16 - klo:21:17
Onnistuukohan tähän mittariin dialEye?
Juuri vaihdettu mittari ja siinä taitaa olla paikka anturille mutta mistähän sellasen saisi?
En löytänyt netistä mittarin merkillä yhtään anturia. Onko joku viritelly mitään vastaavaan mittariin tai onko tietoa miten se anturi toimii?
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: olammi - 24.04.16 - klo:21:26
Saa siihen ainakin noiden 2 merkitsevimmän mittarin luvun (10 litran tarkkuus). Tuo litraviisari kun on peitossa, niin sitä ei taida saada luettua ja siitä syystä tuosta desiviisarista ei ole lukeman kannalta hyötyä.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: olammi - 05.03.17 - klo:22:00
Julkaistu 5.3.2017:

dialEye v1.0b:
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: koowee - 26.08.17 - klo:19:57
Aloin tekemään dialEye:lle uudelleen kohdistusta ja siinä törmäsin seuraavaan juttuun. Onko kyseessä bugi vai mittaako dialEye verbose moodissa tuloksen kahteen kertaan? DialEye:stä uusin versio ajossa.

Measured meter dial values pyöristysten jälkeen >   6719
Result antaa kuitenkin > 5719

Koodia: [Valitse]
pi@raspberrypi:/home/talo/dialEye $ python dialEye.py -v -f /home/talo/dialEye/dialEye.conf -s -u --username dial --password eye meter "http://192.168.1.219/image/jpeg.cgi"
Loading shake configuration from dialeye_shakes.conf

Preloaded shakes:
  dx = 0, dy = 0, rotation = 0.00 degrees

Shaking and metering...

Dial color (RGB): 240,240,240


Dial color (RGB): 234,234,234


Dial color (RGB): 232,232,232


Dial color (RGB): 234,234,234


Saved shake configuration to dialeye_shakes.conf

Times: shaking: 4.31 sec,  metering: 0.86 sec

Calculated shakes:
  dx = 0, dy = 0, rotation = 0.00 degrees

Measured meter dial values:
  6.19
  7.32
  1.64
  9.42

Result:
5719
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: olammi - 26.08.17 - klo:20:11
Kyseessä voi olla bugi. Tutkin asiaa. Sinänsä siellä on kyllä logiikkaa, joka pyöristää mielestään oikeelliseksi tuota dataa, joten aina ei tule ihan täsmälleen sama kuin mitä raaka-arvot viisareille. Tuossa tapauksessa sellaista ei kuitenkaan varmaan pitäisi tapahtua.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: koowee - 26.08.17 - klo:21:54
Kyseessä voi olla bugi. Tutkin asiaa. Sinänsä siellä on kyllä logiikkaa, joka pyöristää mielestään oikeelliseksi tuota dataa, joten aina ei tule ihan täsmälleen sama kuin mitä raaka-arvot viisareille. Tuossa tapauksessa sellaista ei kuitenkaan varmaan pitäisi tapahtua.

Kiitoksia! Ilmoittele jos tarvitset jotain lisätietoja
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Taikaviitta - 06.02.18 - klo:12:37
Moi,

törmäsin DialEyehin sattumalta jonkun blogin kautta ja koska olin jo aiemminkin suunnitellut vesimittarin lukemista vanhan webkameran avulla niin käyttöönoton kanssa ei tarvinnut paljon jahkailla. Suuret kiitokset kehittäjälle! :)

Homma lähti toimimaan hyvinkin jouhevasti, toki kalibrointiin meni aikansa ja yksi mittareista osoittautua muita kinkkisemmäksi (mittarin sisällä näyttää olevan jotain roskaa), mutta mittarikohtainen RGB-asetus näyttää tuoneen siihenkin ratkaisun. Backendinä toimii Domoticz jonne lisäsin sekä virtaus- että kulutusmittarit. Tuon kulutusmittarin suhteen aloin miettimään, että miten olette ratkaisseet "nollaantumisen" eli sen että suurimmankin resoluution mittari lähtee aina nollasta mentyään ympäri? Lähinnä mietin että laitan päivityscriptiin niin että se ottaisi mukaan "yksi yli" arvon vaikka tekstifilestä ja kun mittarilta luettuun lukemaan tulee seuraavan kerran nolla alkuun niin kasvattaa tuota tekstifilen arvoa yhdellä. Mutta mietinkö tätä nyt liian monimutkaisesti, oletteko ottaneet muunlaisia ratkaisuja käyttöön tämän haasteen taklaamiseksi?
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Taikaviitta - 02.03.18 - klo:01:34
Nyt on kuukauden verran seurailtu vedenkulutusta. Hoidin tuon yllä kysytyn niin, että viritin bash-scriptin joka päivityksen yhteydessä tsekkaa ensin erillisestä filestä kuutiolukeman ja "kuutiostatuksen" ja mikäli mittarilukema alkaa nollalla ja statuskin on nollattu, lisää se kuutiolukemaan +1 ja muuttaa statuksen (status resetoituu vasta kun mittarilukema alkaa 4, 5 tai 6, tämä siksi että lukema hyppii joskus edes takaisin, eritoten 0->9 tai 1->0). Lisäksi siellä on ehto että negatiivista kulutusta ei päivitetä Domoticziin (vertaa nykyistä ja edellistä lukemaa) ja sama homma jos kulutus yli 100l/min.

Alkuun homma toimi erityisen hyvin, mutta viimeisen viikon aikana näyttää että lukemat elää aika paljon (luvut hyppii eri numeroiden välillä edes takaisin) ja välillä yhden mittarin asentoa ei tunnisteta lainkaan, vaikka lisäsin kaikkiin varoiksi RGB-arvonkin. En oikein ymmärrä mistä tämä johtuu kun kamera ei näytä lainkaan liikkuneen ja valaistusolotkin ovat pysyneet vakaina ja alkuun vastaavia ongelmia ei mielestäni ollut. Toki scriptin tsekkaukset pitää aika hyvin huolen siitä että Domoticzissa lukemat ei pompi mitenkään villisti. Joka tapauksessa, kaikki vinkit tilanteen stabiloimiseksi otetaan ilolla vastaan.

Kiitokset kehittäjälle vielä kertaalleen tästä, loistava softa! :)
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: olammi - 02.03.18 - klo:10:46
Jos laitat näytille kameran nyt ottaman mittarikuvan sekä tämänhetkisen dialEye:n konfiguraatiotiedoston, niin voin koittaa katsoa olisiko konffiksessa jotain viilattavaa.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Taikaviitta - 02.03.18 - klo:23:50
Hienoa, kiitokset jo etukäteen. Tässä näitä olisi. Laitan varoiksi esimerkin yhdestä aikaisemmasta kuvasta, jossa reunimmainen lukema ei tunnistu sekä tämän hetken kuvan ja miten sen "tilanne" (-r optio) näkyy.

Koodia: [Valitse]
CALIBRATION_IMAGE = /home/pi/scripts/dialEye/calibration_image.jpg

@DIAL = 923:341:78:27:2.0:77.0:0:0:158:77:82
@DIAL = 838:514:78:27:2.0:77.0:0:0:156:57:57
@DIAL = 653:583:78:27:2.0:77.0:0:0:153:68:73
@DIAL = 446:481:78:27:2.0:77.0:0:0:150:62:65

@POSAREA = 345:300:445:355
@POSAREA = 770:125:828:173
@POSAREA = 655:355:680:390

DISABLE_IMAGE_SHAKE = false

SHAKE_RADIUS = 1

TURN_ANGLE = 0.5
TURN_ANGLE_STEP = 0.5

SHAKE_FILE = /home/pi/scripts/dialEye/dialeye_shakes.conf

DETECTION_TRESHOLD = 10

IMAGE_FILTER = NONE

DISABLE_ROUNDING = false
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: olammi - 03.03.18 - klo:12:57
Koitapa seuraavia arvoja (vain muuttuneet rivit alla):
Koodia: [Valitse]
@DIAL = 919:337:77:27:2.0:77.0:0.0:0:150:72:85
@DIAL = 833:513:77:26:2.0:77.0:1.0:0:157:57:57
@DIAL = 649:581:78:27:2.0:77.0:0.0:0:177:68:73
@DIAL = 441:479:78:27:2.0:77.0:3.0:0:155:59:61

DETECTION_TRESHOLD = 40

Pientä hienosäätöä myös noissa mittareiden arvoissa, mutta varmasti isoin ongelma oli tuo liian pieni DETECTION_TRESHOLD. Uskoisin, että noilla tilanne paranee paljon värähtelyn suhteen.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Taikaviitta - 03.03.18 - klo:14:56
Kiitos, laitan heti kokeiluun. Muistan testailleeni eri detection thresholdeja, olisiko ollut suurin piirtein välillä 5-50. Jostain syystä tuolloin jo 20 tuntui olevan liikaa, mutta tällä tiedolla uskoisin että syynä oli tuolloin jonkun muun settarin ”väärä” arvo mikä sotki kokonaisuutta.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Taikaviitta - 05.03.18 - klo:00:43
Reilun vuorokauden jälkeen voin sanoa että hyvältä näyttää, lokissa ei näy enää yhtään virheitä muutoksen jälkeen... 8)

edit: 4pv lisää seurantaa ja vain yksi virhe eli homma rokkaa, kiitokset vaivannäöstä @olammi! :)
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Ruohonjuuri - 24.10.18 - klo:20:16
Hoidin tuon yllä kysytyn niin, että viritin bash-scriptin joka päivityksen yhteydessä tsekkaa ensin erillisestä filestä kuutiolukeman ja "kuutiostatuksen" ja mikäli mittarilukema alkaa nollalla ja statuskin on nollattu, lisää se kuutiolukemaan +1 ja muuttaa statuksen

Et haluaisi tehdä yhteisöllistä tekoa ja jakaa tuota tekemääsi shell-skriptiä  :-\ :)
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Proxor - 15.12.18 - klo:20:36
Olen nyt yrittänyt saada taloLoggerii laitettua tuota dialEye hommaa. Mutta olen saanut otettua kameralla kuvia raspbiin ja tehtyä niinsanotun kalibroinnin. Mutta seuraavia ongelmia en ole saanut ratkaistua:


Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Proxor - 29.12.18 - klo:21:01
Onpas hiljaista tässä ketjussa kun kukaan ei vastaa mitään  :'(

No sain joihinkin kysymyksiin jo ratkaisun eli miten kääntää kuva

Koodia: [Valitse]
" fswebcam --rotate 270 --set brightness=50 --set contrast=50 --set gamma=100 --set exposure=499 /home/pi/dialEye/docs/%y%m%d-%H%M%S "
Kyseisellä komennolla saan otettua hyvän kuvan ja luettua sitä.

Toiseen ongelman ratkaisin niinkin yksinkertaisesti että otin GPIO pinneistä suoraa syötön ledille. Mutta ledin syttyminen kuvaustilanteessa vielä kiinnostaa.

Itselläni on vielä edelleen auki miten saan tuon datan TaloLoggeriin kun ei ole langatonta web kameraa.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: karis - 04.01.19 - klo:18:26
def on_message(self, client, userdata, msg):
Itselläni on vielä edelleen auki miten saan tuon datan TaloLoggeriin kun ei ole langatonta web kameraa.



Minä modasin dialeyey koodia  niin että se laittaa ledit päälle ennen kuvan ottoa ja sit sammuttaa. gpio ohjaukeen käytän pigpio mutta se onnistuu millä tahansa gpio kirjastolla. Tässä joku pätkä jonka löysin tähän hätään:

Koodia: [Valitse]
def CommandMeter(conf, meterfile):     
resimg = None
resdata = None
   
if conf.isTrue('ISURL'):
...
else:
#use fswebcam
#os.system('echo "w 12 1" > /dev/pigpio')
#os.system('fswebcam -r 640x480 --top-banner --save /var/tmp/dialEye.jpg -S 5 --jpeg 95') # uses Fswebcam to take picture
#os.system('echo "w 12 0" > /dev/pigpio')

#use rasb cam
os.system('echo "w 16 1" > /dev/pigpio')
camera = PiCamera()
camera.resolution = (1280, 720)
camera.start_preview()
# Camera warm-up time
sleep(2)
camera.capture('/var/tmp/dialEye.jpg')
camera.close()
os.system('echo "w 16 0" > /dev/pigpio')



Itselläni on vielä edelleen auki miten saan tuon datan TaloLoggeriin kun ei ole langatonta web kameraa.

Minä lähetän sähkömittarilta rasbilla mosquitto (http://www.steves-internet-guide.com/into-mqtt-python-client/) viestissä infon talologgerilla joka loggaa sen tietokantaan. Talologgerin tein uuden threadin jossa kuuntelen mqtt viestejä ja clientin on_message funkkarissa talletan viestin kantaan:
Koodia: [Valitse]
def on_message(self, client, userdata, msg):
    if len(self.storelist) > 0:
        for store in self.storelist:
            data = [['kwh_counter',unicode(msg.payload)]]
            store.insertData(time.time(), data)
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Proxor - 21.01.19 - klo:20:02
def on_message(self, client, userdata, msg):


Minä modasin dialeyey koodia  niin että se laittaa ledit päälle ennen kuvan ottoa ja sit sammuttaa. gpio ohjaukeen käytän pigpio mutta se onnistuu millä tahansa gpio kirjastolla. Tässä joku pätkä jonka löysin tähän hätään:

Koodia: [Valitse]
def CommandMeter(conf, meterfile):     
resimg = None
resdata = None
   
if conf.isTrue('ISURL'):
...
else:
#use fswebcam
#os.system('echo "w 12 1" > /dev/pigpio')
#os.system('fswebcam -r 640x480 --top-banner --save /var/tmp/dialEye.jpg -S 5 --jpeg 95') # uses Fswebcam to take picture
#os.system('echo "w 12 0" > /dev/pigpio')

#use rasb cam
os.system('echo "w 16 1" > /dev/pigpio')
camera = PiCamera()
camera.resolution = (1280, 720)
camera.start_preview()
# Camera warm-up time
sleep(2)
camera.capture('/var/tmp/dialEye.jpg')
camera.close()
os.system('echo "w 16 0" > /dev/pigpio')



Minä lähetän sähkömittarilta rasbilla mosquitto (http://www.steves-internet-guide.com/into-mqtt-python-client/) viestissä infon talologgerilla joka loggaa sen tietokantaan. Talologgerin tein uuden threadin jossa kuuntelen mqtt viestejä ja clientin on_message funkkarissa talletan viestin kantaan:
Koodia: [Valitse]
def on_message(self, client, userdata, msg):
    if len(self.storelist) > 0:
        for store in self.storelist:
            data = [['kwh_counter',unicode(msg.payload)]]
            store.insertData(time.time(), data)

Hei kiitos tällä pääsinki jo mukavasti eteenpäin. Toki en ajatellut käyttää moquittoa vaan tuolla valmiilla mitä taloLoggerissa.conf on jo valmiina.

Mutta tuosta taitaa olla apua kun rupean kesällä rakentamaan sähkömittarille pulssi lukua ja kaivon veden pinnan tarkkailua. Joudun varmaan kyselemään sitten lisää tuosta  :P
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Taikaviitta - 01.02.19 - klo:00:49
Et haluaisi tehdä yhteisöllistä tekoa ja jakaa tuota tekemääsi shell-skriptiä  :-\ :)

Toki, pahoittelut viivästyneestä vastauksesta, mutta tuli taas ajankohtaiseksi tämä asia kun vesimittari vaihdettiin ja homma ei enää ihan niin hyvin futaa kuin edellisessä. Ilmeisesti siksi, että mittari ns. "märkä" malli ja ilmakuplat lasin alla haittaa lukemista. Skripti on kaukana kauniista, mutta se on toiminut omassa käytössä. Nyt kun saisi lukemat vielä tarkaksi... :)

Koodia: [Valitse]
#!/bin/bash

#Take snapshot and read meter with Dialeye
/usr/bin/ffmpeg -rtsp_transport tcp -i 'rtsp://CAMURL' -f image2 -vframes 1 /home/pi/scripts/dialEye/meter_image.jpg
mittari=$(/usr/bin/python /home/pi/scripts/dialEye/dialEye.py -f /home/pi/scripts/dialEye/dialEye.conf meter /home/pi/scripts/dialEye/meter_image.jpg)

#check current m3 and meter status, FALSE = No leading zero(s), TRUE = leading zero so +1 to be added to m3
kuutiot=`cat /home/pi/scripts/dialEye/kuutiot.txt`
status=`cat /home/pi/scripts/dialEye/status.txt`
onmuuttunut=false

if [[ $mittari == 0* ]] && [[ $status == FALSE ]] ; then
   kuutiot=$((kuutiot+1))
   echo $kuutiot > /home/pi/scripts/dialEye/kuutiot.txt
   echo "TRUE" > /home/pi/scripts/dialEye/status.txt
   echo $(date +"%Y-%m-%d %H:%M:%S") $kuutiot " -> muutos +1" >> /home/pi/scripts/dialEye/dialeye_result.log
   sed -i -e 1,1d /home/pi/scripts/dialEye/dialeye_result.log
   onmuuttunut=true
elif [[ $mittari == 4* ]] && [[ $status == TRUE ]] ; then
   echo "FALSE" > /home/pi/scripts/dialEye/status.txt
elif [[ $mittari == 5* ]] && [[ $status == TRUE ]] ; then
   echo "FALSE" > /home/pi/scripts/dialEye/status.txt
elif [[ $mittari == 6* ]] && [[ $status == TRUE ]] ; then
   echo "FALSE" > /home/pi/scripts/dialEye/status.txt
fi

#Consumption
kulutus="${kuutiot}${mittari}"

#Count average water consumption l/min
edellinenkulutus=`cat /home/pi/scripts/dialEye/dialeye_result_previous.txt`
viimeisinkulutus=$((kulutus - edellinenkulutus))
viimeisinkulutus=$(echo "scale=2 ; $viimeisinkulutus / 10" | bc)

#Exit if speed is too high or less than zero
if (( $(echo "$viimeisinkulutus > 1000" | bc -l) )) || (( $(echo "$kulutus < $edellinenkulutus" | bc -l) )) ; then
    curl -s -m 10 --connect-timeout 10 "http://DOMOURL10"
    if [[ $onmuuttunut = true ]] ; then
        kuutiot=$((kuutiot-1))
        echo $kuutiot > /home/pi/scripts/dialEye/kuutiot.txt
        echo $(date +"%Y-%m-%d %H:%M:%S") $kuutiot " -> muutos -1" >> /home/pi/scripts/dialEye/dialeye_result.log
        sed -i -e 1,1d /home/pi/scripts/dialEye/dialeye_result.log
    fi
    echo $(date +"%Y-%m-%d %H:%M:%S") $kulutus "VIRHE" >> /home/pi/scripts/dialEye/dialeye_result.log
    sed -i -e 1,1d /home/pi/scripts/dialEye/dialeye_result.log
else

#Post speed
curl -s -m 10 --connect-timeout 10 "http://DOMOURL1$viimeisinkulutus"

#Post consumption
curl -s -m 10 --connect-timeout 10 "http://DOMOURL2$kulutus"
echo $kulutus > /home/pi/scripts/dialEye/dialeye_result_previous.txt

echo $(date +"%Y-%m-%d %H:%M:%S") $kulutus >> /home/pi/scripts/dialEye/dialeye_result.log
sed -i -e 1,1d /home/pi/scripts/dialEye/dialeye_result.log

fi
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Taikaviitta - 01.02.19 - klo:00:59
Koitapa seuraavia arvoja (vain muuttuneet rivit alla):
Koodia: [Valitse]
@DIAL = 919:337:77:27:2.0:77.0:0.0:0:150:72:85
@DIAL = 833:513:77:26:2.0:77.0:1.0:0:157:57:57
@DIAL = 649:581:78:27:2.0:77.0:0.0:0:177:68:73
@DIAL = 441:479:78:27:2.0:77.0:3.0:0:155:59:61

DETECTION_TRESHOLD = 40

Pientä hienosäätöä myös noissa mittareiden arvoissa, mutta varmasti isoin ongelma oli tuo liian pieni DETECTION_TRESHOLD. Uskoisin, että noilla tilanne paranee paljon värähtelyn suhteen.

Pahoittelut, että palaan taas samojen kysymysten ääreen, mutta vesimittarin vaihdon jälkeen en ole onnistunut laittamaan konffiin tarpeeksi tarkkoja arvoja - tai niin luulen. Toki ilmakuplistakin on haittaa, mutta ehkä ne siitä lähtevät jollain aikavälillä itsekseen pois ja sekin saattaa tilannetta parantaa. Olisin joka tapauksessa erittäin kiitollinen, jos olisi mahdollista saada samantyylistä konsultointia tähän uuteen mittarikuvaan, konffin arvot ovat nyt:
Koodia: [Valitse]
@DIAL = 887:411:67:21:2.0:77.0:0.0:0
@DIAL = 797:515:67:21:2.0:77.0:0.0:0
@DIAL = 661:552:67:21:2.0:77.0:0.0:0
@DIAL = 495:471:67:21:2.0:77.0:0.0:0
(detection treshold edelleen 40)
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Kokko74 - 12.02.19 - klo:18:06
Minulle on tullut hieman ongelmaksi tuo värähtely. Se ei juurikaan vaikuta kokonaislukemaan mutta ajattelin tehdä vuotohälytyksen perustuen tietokannan lukemaan. Nyt jos lukema syystä tai toisesta pienenee , on se ongelma.
Olisiko jotenkin mahdollista tehdä niin että jos uusi lukema on pienempi kuin edellinen, käytettäisiin edellistä lukemaa. Se että lukemamaan tulee virhettä ei ole ongelma, mutta se että se pienenee on.
Otsikko: Vs: dialEye v1.0a julkaistu
Kirjoitti: Taikaviitta - 14.02.19 - klo:11:35
Minulle on tullut hieman ongelmaksi tuo värähtely. Se ei juurikaan vaikuta kokonaislukemaan mutta ajattelin tehdä vuotohälytyksen perustuen tietokannan lukemaan. Nyt jos lukema syystä tai toisesta pienenee , on se ongelma.
Olisiko jotenkin mahdollista tehdä niin että jos uusi lukema on pienempi kuin edellinen, käytettäisiin edellistä lukemaa. Se että lukemamaan tulee virhettä ei ole ongelma, mutta se että se pienenee on.

Tuossa omassa bash-scriptissä (edellisellä sivulla) ratkaisin asian niin, että validi lukema laitetaan talteen tiedostoon ja jos uusi lukema on sitä pienempi, ei päivitetä mitään (myös ko. tiedostoon jää tällöin edellinen validi lukema). Suurempi lukema (muttei liian suuri  ;)) puolestaan päivitetään.