Raspberry pi ja 1-wire

Karzan33

Jäsen
Vs: Raspberry pi ja 1-wire

Jos haluaisin tuohon grafiikkakuvaan myös ulkolämmön min ja max arvon niin millaiset rivit tuohon gonfiin oikein pitäisi lisätä.
Nykyisin on ainoastaan tällainen,enkä lukuisista yrityksistä huolimatta onnistunut saamaan aikaan kuin pelkkiä erroreita.

#############################################################################
# Image1 configuration
#############################################################################

*IMAGE*
BACKGROUND = ghp_process.png
TITLE = 235:295:black:GHP process

@LABEL = 0:50:black:Ulkol
@POSITION = NORMAL:eek:utdoor:50:50:VAL:1.0:blue:red:-20.0:20.0:C


Toinen asia on että mistä haette nuo teksin paikka-arvot kuvassa (esim. varaajan yläl. VAL, MAX, MIN) vai onko se pelkkää hakuammuntaa.

Tällaista tarkoitan:
 

Liitteet

  • Ulkolampo.jpg
    Ulkolampo.jpg
    16,5 KB · Katsottu: 565
O

olammi

Vieras
Vs: Raspberry pi ja 1-wire

Karzan33 sanoi:
Jos haluaisin tuohon grafiikkakuvaan myös ulkolämmön min ja max arvon niin millaiset rivit tuohon gonfiin oikein pitäisi lisätä.
Nykyisin on ainoastaan tällainen,enkä lukuisista yrityksistä huolimatta onnistunut saamaan aikaan kuin pelkkiä erroreita.
Kokeilepa tuota (pikselipaikka hakuammuttu):
Koodi:
@POSITION = NORMAL:outdoor:50:50:VAL:1.0:blue:red:-20.0:20.0:C
@POSITION = NORMAL:outdoor:50:65:MIN:1.0:blue:red:-20.0:20.0:C
@POSITION = NORMAL:outdoor:50:80:MAX:1.0:blue:red:-20.0:20.0:C
Karzan33 sanoi:
Toinen asia on että mistä haette nuo teksin paikka-arvot kuvassa (esim. varaajan yläl. VAL, MAX, MIN) vai onko se pelkkää hakuammuntaa.
Kai se hakuammuntaa on. Tosin x,y-pikselikoordinaatit voi katsoa esim. mistä vaan kuvankäsittelyohjelmasta, kun vie kohdistimen johonkin kuvapisteeseen, niin ohjelman alapalkissa yleensä näkyy kohdistimen x,y-sijainti.
 

noble

Aktiivinen jäsen
Vs: Raspberry pi ja 1-wire

Uusi raspberry käyttäjä ollaan ja nyt olen värkit saanut siihen vaiheeseen, että tietokanta on kasassa ja kWh-mittarin pulssit kasaantuvat tietokantaan.

Tuota Apophisin 2-sivun perl-kuvaaja käskyjä olen käyttänyt pohjana, mutta ei meinaa mennä kaaliin... Miten saan kWh-pylväät ja huomioitua 1000/kWh pulssit? Kuvan olen saanut jo viestin mukaisesti toimimaan, mutta ei ole järkevä, kun kulutus näkyy viivana ja kasvaa kokoajan pulssimäärän mukaan :)
 
A

apophis

Vieras
Vs: Raspberry pi ja 1-wire

Nykyinen skripti, millä kotiverkossa piirtelen graafia on kyllä ihan hirveä ;) Perliä ei kyllä voi suositella kenellekään jos meinaa jotain isompaa ohjelmoida...

Skripti tukee päivä, viikko ja kuukausikuvaajia kwh kulutuksen suhteen. Täytyy tunnustaa, että nyt kun luin taas pitkästä aikaa koodia, niin en edes ite tiedä miten tuo toimii...

Periaatteessa sinun pitää ensin hakea kannasta kwh countterin lukemat tietylle ajalle, esim. vuorokauden arvot. Sen jälkeen skriptissä pitää pyöräyttää deltat per tunti, että gnuplot osaa niistä piirtää esim. palkki diagrammin.

Laitoin skriptin tarjolle: http://koti.kainuu.com/kpomatt74/img.pl

Tuosta voinee modifioida eteenpäin... Se 1000 imp / kwh pitää vaihtaa sinne sun tänne, oma mittari on 10000 imp / kwh. Tuo osaa ottaa kaikenlaista parametria sisään selaimelta, kuten aikavälin, kuvan koon, kuvaajatyypin, ...
 
J

jets

Vieras
Vs: Raspberry pi ja 1-wire

En ole koko ketjua lukenut, mutta nyt kun sain oman 1-wire verkkoni toimimaan, niin tässä mun antimeni.

Mulla on Raspi ja siinä ComPi, joka on siis 1-wire+rs232-lisäkortti:
http://www.partco.biz/verkkokauppa/product_info.php?cPath=2153&products_id=3632

Ja ComPissa on kiinni RJ12 liittimellä tavallista puhelinjohtoa, kytkentä 18B20 ja 1820:n on:

1 (GND) -> GND, 2 (DATA) -> DATA/OW, Vcc -> +5V

Eikä muuta. Joku suositteli että se GND nasta 1820:ssa pitäisi kytkeä tuon ComPin RT-pinniin, mutta niin en siis tehnyt.

Ja yritin ensin käyttää pitkässä vedossa MMJ-kaapelia, mikä mykisti verkon. Vaihdoin Cat5:n ja hyvin toimii.

Asensin OWFS:n näitten ohjeitten mukaan:
http://www.abelectronics.co.uk/owfs-and-compi/info.aspx

Ja anturit ilmaantuvat mukavasti /mnt/1-wire-hakemistoon tällä komennolla:
/opt/owfs/bin/owfs --i2c=ALL:ALL --allow_other /mnt/1wire/

..Jonka ajan /etc/rc.local:ssa aina buutissa.

Ja anturit näkyvät:
root@xxxxxxxxxxx:/mnt/1wire# ls
10.B2A680020800 28.A66FF3040000 28.B388F2040000 alarm bus.0 settings simultaneous statistics structure system uncached

Ja esimerkiksi Saunan lämpötila-anturi:
root@xxxxx:/mnt/1wire# ls 10.B2A680020800/
address alias crc8 errata family id locator power r_address r_id r_locator scratchpad temperature temphigh templow type
root@xxxxx:/mnt/1wire# cat 10.B2A680020800/temperature
58.5

Mukavasti lämpiää siis..

Ja hetkelliset lämpötilat kertyy tämmöisellä skriptillä:
#!/bin/bash

echo "Outside-temperature is now `cat /mnt/1wire/28.A66FF3040000/temperature | sed 's/^ *//;s/ *$//'` Celsius. Time is `date`." > /home/jets/lampo/ulkonyt.log

echo "Saunamokki-temperature is now `cat /mnt/1wire/28.B388F2040000/temperature | sed 's/^ *//;s/ *$//'` Celsius. Time is `date`." > /home/jets/lampo/saunamokkinyt.log

echo "Parviaitta-ala-temperature is now `cat /mnt/1wire/28.5FE1D4040000/temperature | sed 's/^ *//;s/ *$//'` Celsius. Time is `date`." > /home/jets/lampo/parviaitta-alanyt.log

echo "Parviaitta-yla-temperature is now `cat /mnt/1wire/28.7FE5F3040000/temperature | sed 's/^ *//;s/ *$//'` Celsius. Time is `date`." > /home/jets/lampo/parviaitta-ylanyt.log

echo "Sauna-temperature is now `cat /mnt/1wire/10.B2A680020800/temperature | sed 's/^ *//;s/ *$//'` Celsius. Time is `date`." > /home/jets/lampo/saunanyt.log

Ja nuo .log tiedostot uppaan sitten kotiserverille mistä ne tuodaan julki sed-komennon avulla syöttämällä suoraan .html-tiedostoon riveiksi.

Lisäksi teen graafeja. Ensinnäkin tiedot kertyvät seuraavasti:

#!/bin/bash

#date >> /root/lampo/lampo1.log
echo "`date +"%H_%M_%d_%m_%Y"` `cat /mnt/1wire/28.A66FF3040000/temperature | sed 's/^ *//;s/ *$//'`" >> /home/jets/lampo/ulko.log

echo "`date +"%H_%M_%d_%m_%Y"` `cat /mnt/1wire/28.B388F2040000/temperature | sed 's/^ *//;s/ *$//'`" >> /home/jets/lampo/saunamokki.log

echo "`date +"%H_%M_%d_%m_%Y"` `cat /mnt/1wire/28.5FE1D4040000/temperature | sed 's/^ *//;s/ *$//'`" >> /home/jets/lampo/parviaitta-ala.log

echo "`date +"%H_%M_%d_%m_%Y"` `cat /mnt/1wire/28.7FE5F3040000/temperature | sed 's/^ *//;s/ *$//'`" >> /home/jets/lampo/parviaitta-yla.log

echo "`date +"%H_%M_%d_%m_%Y"` `cat /mnt/1wire/10.B2A680020800/temperature | sed 's/^ *//;s/ *$//'`" >> /home/jets/lampo/sauna.log

Ja tiedostoista tulee tämännäköisiä:
jets@xxxxxxx ~/lampo $ cat sauna.log
19_10_16_11_2013 6.375
19_20_16_11_2013 6.625
19_30_16_11_2013 7.9375
19_40_16_11_2013 12
19_50_16_11_2013 25.0625
20_00_16_11_2013 32.875
20_10_16_11_2013 40.75
20_20_16_11_2013 43.5625
20_30_16_11_2013 43.625
20_40_16_11_2013 48.1875
20_50_16_11_2013 52.1875
21_00_16_11_2013 55.5625
21_10_16_11_2013 58.0625
21_20_16_11_2013 60

Ja sitten generoidaan graaphit png-tiedostoiksi gnuplotilla, seuraavalla .gp:llä:
# gnuplot script file for plotting bandwidth over time
#!/usr/bin/gnuplot
reset
set terminal png

set xdata time
#set timefmt "%Y-%m-%dT%H:%M:%S"
set timefmt "%H_%M_%d_%m_%Y"
set format x "%H:%M"

set xlabel "Aika"
set ylabel "Lampotila1"

set title "Sauna Temperature"
set key below
set grid

plot "/home/jets/lampo/sauna.log" using 1:2 title "Astetta" with lines

Jotka ajetaan ajastetusti (crontab):
*/10 0-23 * * * /usr/bin/gnuplot /home/jets/lampo/sauna.gp > /home/jets/lampo/sauna.png


Ja taas sitten ajastetusti heitetään png:t kotiserverille ja sitä kautta www-sivulle.

Toivon mukaan tästä on iloa tai apua muillekin.

Itselläni on melkoisen pitkä Unix&Linux-tausta, joten Raspi sopii meikäläiselle oikein mainiosti. Ja joskus olen joutunut penskana kolviinkin tarttumaan!
 

Liitteet

  • sauna.png
    sauna.png
    5,7 KB · Katsottu: 595

VesA

In Memoriam
Vs: Raspberry pi ja 1-wire

Oma systeemini toimi melko samaan tapaan, mutta käytin lokitiedoston ja png:n välissä vielä RRD-puskureita ja tein siis png:t RRDgraphilla koska niillä saa zoomailtua dataansa ihan toisella näppäryydellä sitten kun dataa alkaa olla määrissä.. melan vilauksessa saa edellisen vuoden, kuukauden... minkä vaan aikavälin kuvaksi hitaassakin koneessa.
 
J

jets

Vieras
Vs: Raspberry pi ja 1-wire

VesA sanoi:
Oma systeemini toimi melko samaan tapaan, mutta käytin lokitiedoston ja png:n välissä vielä RRD-puskureita ja tein siis png:t RRDgraphilla koska niillä saa zoomailtua dataansa ihan toisella näppäryydellä sitten kun dataa alkaa olla määrissä.. melan vilauksessa saa edellisen vuoden, kuukauden... minkä vaan aikavälin kuvaksi hitaassakin koneessa.

Kah, tekeekö tuo jonkin oikean tietokannan? KVG tietysti, mutta saa valottaa. Mua ei niin tietokannat huvittais, ne kun tuppaa menemään yli hilseen. Mutta joo, kyllä nekin kai taipuu sitten..

Olet siis tyytyväinen RRDtooliin vai mikä se on nimeltään? Saa pointata johonkin howtohon tai vastaavaan.
 

VesA

In Memoriam
Vs: Raspberry pi ja 1-wire

jets sanoi:
Kah, tekeekö tuo jonkin oikean tietokannan? KVG tietysti, mutta saa valottaa. Mua ei niin tietokannat huvittais, ne kun tuppaa menemään yli hilseen. Mutta joo, kyllä nekin kai taipuu sitten..

Olet siis tyytyväinen RRDtooliin vai mikä se on nimeltään? Saa pointata johonkin howtohon tai vastaavaan.

No olen näitä kahta käyttänyt: RRD-toolia ja Graphitea. Jos joku verkonvalvonta tms piirtää kuvia RRDtool on sen takana lähes kaikissa tämäntyyppisissä piirtelyissä, jopa laitteiden web-liittymissä. Yksinkertaisempi saman herra Ötikerin tuotos samaan tarkoitukseen on mrtg.

RRDtool ei tee kantaa, sen voima ja heikkous on kehäpuskureissa. Sen datasäilö ei siis kasva. Keräystä varten voidaan määritellä yksi puskuri jossa on jokainen datapiste vaikkapa viikon ajalta minuutin välein. Ja sitten sen kanssa samaan tiedostoon voidaan tehdä lisää puskureita, vaikkapa niin että seuraavaan puskuriin mahtuu kuukauden data, mutta pisteet ovat enää 10 minuutin välein, ja sitten seuraava jossa on vaikka kahden vuoden data mutta pisteet ovat tunnin välein. Kun työnnät datapisteen keräyspuskuriin RRD laskee muut puskurit. Tähän kaikkeen on aivan liian monta hanikkaa jolla kaikkea voi hienosäätää.

RRD:llä on sitten tästä seuraavat rajoitukset, eli keräystarkkudella kuvia voi piirrellä vain ensimmäisen puskurin kattamaa historiaa jne, RRDgraph hakee datat kaukaisimman pisteen sisältävän pisteen tarkkuudella. Toimintatavasta seuraa myös se, että keräysaikainen IO ja laskenta on vastaavasti vähän raskaampaa, systeemi kun lukee puskurin, laskee sen uusiksi datapisteen perusteella ja kirjoittaa takaisin. Kotihommissa tästä ei yleensä ole haittaa, onewire on senverran hidas että datapisteiden välissä ehtii vaikka tekisi useita puskureita lennossa, mutta on RRDcache jonka on tarkoitus tähän auttaa, en ole kokeillut. RRD ei myöskään tue puskurin keskelle kirjoittamista, datan pitää tulla aikajärjestyksessä.

Järkevän RRD-kuvailutiedoston teko Ötikerin dokkareiden avulla on sankariteko, kannattaa sovinnolla etsiä aluksi esimerkkejä ( joissa niissäkin on tyhmyyksiä sitten kun homman oivaltaa ). RRD-puskuri on myös vähän herkkä koneen kaatumiselle jne.. mutta sen voi korjta koska puskuria voi muuttaa XML-muotoon ja takaisin.

Kun RRD:stä loppuu voima sen innoittamana on kehitetty Graphite. Graphite lisää RRD:hen hajautetun prosessoinnin, puskurin keskelle kirjoittamisen, lähes automaattisen kehäpuskurien teon sisääntulevan datastreamin tiedoista ja webiliittymän josta voi urliparametreilla pyytää halutun datan sopivalla tavalla käsiteltynä tyyliin 'anna 5 min keskiarvon maksimi väliltä 13:03 - 13.08.
Grahphiten asentaminen oli ainakin ennenvanhaan helvetillistä koska sillä ei ollut asennuspakettia vaan kilkkeet piti itse haalia ja konffailla hiukan epämääräisten vinkkien avulla, mutta sitten kun kaikki toimii se on mahtipeli.
 

HeTi

Aktiivinen jäsen
Vs: Raspberry pi ja 1-wire

Minusta "oikea" tietokanta jopa helpottaa asiaa.

Itse olen tehnyt phphMyAdminilla tietokannan ja siihen kirjotetaan muutaman rivin bash scriptillä:

Koodi:
lampo@pakki:~$ ls -la  | grep lrw
lrwxrwxrwx 1 lampo lampo    38 Apr  1  2013 Anturi1 -> /mnt/1wire/10.279172020800/temperature
lrwxrwxrwx 1 lampo lampo    38 Apr  1  2013 Anturi2 -> /mnt/1wire/10.397872020800/temperature
lrwxrwxrwx 1 lampo lampo    38 Apr  1  2013 Anturi3 -> /mnt/1wire/10.478C72020800/temperature
lrwxrwxrwx 1 lampo lampo    38 Apr  1  2013 Anturi4 -> /mnt/1wire/10.497D72020800/temperature
lrwxrwxrwx 1 lampo lampo    38 Apr  1  2013 Anturi5 -> /mnt/1wire/10.C49B72020800/temperature
lrwxrwxrwx 1 lampo lampo    38 Apr  1  2013 Anturi6 -> /mnt/1wire/28.B2B60D040000/temperature
lrwxrwxrwx 1 lampo lampo    38 Apr  1  2013 Anturi7 -> /mnt/1wire/28.DEF40D040000/temperature
lrwxrwxrwx 1 lampo lampo    38 Apr  1  2013 Anturi8 -> /mnt/1wire/28.F1F60D040000/temperature
lrwxrwxrwx 1 lampo lampo    37 May  4  2013 kvarlaskuri -> /mnt/1wire/1D.BAEE0F000000/counters.A
lrwxrwxrwx 1 lampo lampo    37 May  4  2013 kwhlaskuri -> /mnt/1wire/1D.BAEE0F000000/counters.B
lrwxrwxrwx 1 lampo lampo    33 Apr 16  2013 Lux -> /mnt/1wire/20.6BFA0B000000/volt.C
lrwxrwxrwx 1 lampo lampo    33 Apr  6  2013 ms -> /mnt/1wire/20.6BFA0B000000/volt.A
lrwxrwxrwx 1 lampo lampo    32 Apr  6  2013 power -> /mnt/1wire/20.6BFA0B000000/power
lrwxrwxrwx 1 lampo lampo    33 Apr 16  2013 Templux -> /mnt/1wire/20.6BFA0B000000/volt.D
lrwxrwxrwx 1 lampo lampo    33 Apr  6  2013 Tempms -> /mnt/1wire/20.6BFA0B000000/volt.B
lrwxrwxrwx 1 lampo lampo    38 Apr  9  2013 Ulko -> /mnt/1wire/28.F1F60D040000/temperature

Tämä tallentaa anturit mysql kantaan:

lampo@pakki:~$ cat lampokirjoitus 
echo 'USE Lampo;' > /home/lampo/talleta
echo 'INSERT INTO mittaus (paivays,Anturi1,Anturi2,Anturi3,Anturi4,Anturi5,Anturi6,Anturi7,Anturi8,ms,Tms,lux,Tlux) VALUES (now()',$(/home/lampo/siisti3)');' >> /home/lampo/talleta
mysql --database=Lampo --password=q1w2 < /home/lampo/talleta

Seuraava näyttää sekavalta, mutta tulostaa kaikki anturit samalla riville, poistaa välilyönnit ja laittaa pilkun väliin.

lampo@pakki:~$ cat siisti3
cat Anturi1 |tr -d ' ';echo -n ,;cat Anturi2 |tr -d ' ';echo -n ,;cat Anturi3 |tr -d ' ';echo -n ,;cat Anturi4 |tr -d ' ';echo -n ,;cat Anturi5 |tr -d ' ';echo -n ,;cat Anturi6 | tr -d ' ';echo -n ,;cat Anturi7 | tr -d ' ';echo -n ,;cat Anturi8 | tr -d ' ';echo -n ,;echo -n $(/home/lampo/tuulims);echo -n ,;echo -n $(/home/lampo/tuulitemp);echo -n ,;echo -n $(/home/lampo/lux);echo -n ,;echo -n $(/home/lampo/luxtemp)

Tietokannasta sitten voi piirrellä haluamiaan käppyröitä.

Itse olen käyttänyt php:ta ja jpgraphia. Joko lennosta tai ajastettuna crontabilla tiedostoon joka kopsataan nettiin.

Tietokannasta voi ottaa varmuuskopion mysqldump ohjelmalla.
Raspberryssä kannattaa varautua siihen että muistikortti korruptoituu jossain vaiheessa. (sähkökatko tms)
 
L

lorvi

Vieras
Vs: Raspberry pi ja 1-wire

VesA sanoi:
RRD ei myöskään tue puskurin keskelle kirjoittamista, datan pitää tulla aikajärjestyksessä.
RRD-puskuri on myös vähän herkkä koneen kaatumiselle jne.. mutta sen voi korjta koska puskuria voi muuttaa XML-muotoon ja takaisin.

Tässähän selvisi minun rrd propleema. Kun ei raspissa realiaikakelloa ja taloLoggerr virtakatkon seurauksena kirjoittaa vanhan aikaleiman, on rrd polvillaan. En ole viitsinyt, eikä taitokaan riitä rrd n editointiin ja kun vaivakin on niin mitätön ja aion jättää tuon rrd n sen robottimaisen ulkoasun takia paneutua asiaan sen enempi.
Nämä 'apophis' ja 'jets' 'HeTi' tyyppiset scriptit ovat enempi kun tervetulleita, niistä aloittelija saa hyvät vinkit projekteihinsa, kiitän omasta puolestani.

tuulee siihen malliin jotta rrd on kohta pois pelistä
 

VesA

In Memoriam
Vs: Raspberry pi ja 1-wire

HeTi sanoi:
Minusta "oikea" tietokanta jopa helpottaa asiaa.

Itse olen tehnyt phphMyAdminilla tietokannan ja siihen kirjotetaan muutaman rivin bash scriptillä:

Koodi:
lampo@pakki:~$ ls -la  | grep lrw
lrwxrwxrwx 1 lampo lampo    38 Apr  1  2013 Anturi1 -> /mnt/1wire/10.279172020800/temperature
lrwxrwxrwx 1 lampo lampo    38 Apr  1  2013 Anturi2 -> /mnt/1wire/10.397872020800/temperature
lrwxrwxrwx 1 lampo lampo    38 Apr  1  2013 Anturi3 -> /mnt/1wire/10.478C72020800/temperature
lrwxrwxrwx 1 lampo lampo    38 Apr  1  2013 Anturi4 -> /mnt/1wire/10.497D72020800/temperature
lrwxrwxrwx 1 lampo lampo    38 Apr  1  2013 Anturi5 -> /mnt/1wire/10.C49B72020800/temperature
lrwxrwxrwx 1 lampo lampo    38 Apr  1  2013 Anturi6 -> /mnt/1wire/28.B2B60D040000/temperature
lrwxrwxrwx 1 lampo lampo    38 Apr  1  2013 Anturi7 -> /mnt/1wire/28.DEF40D040000/temperature
lrwxrwxrwx 1 lampo lampo    38 Apr  1  2013 Anturi8 -> /mnt/1wire/28.F1F60D040000/temperature
lrwxrwxrwx 1 lampo lampo    37 May  4  2013 kvarlaskuri -> /mnt/1wire/1D.BAEE0F000000/counters.A
lrwxrwxrwx 1 lampo lampo    37 May  4  2013 kwhlaskuri -> /mnt/1wire/1D.BAEE0F000000/counters.B
lrwxrwxrwx 1 lampo lampo    33 Apr 16  2013 Lux -> /mnt/1wire/20.6BFA0B000000/volt.C
lrwxrwxrwx 1 lampo lampo    33 Apr  6  2013 ms -> /mnt/1wire/20.6BFA0B000000/volt.A
lrwxrwxrwx 1 lampo lampo    32 Apr  6  2013 power -> /mnt/1wire/20.6BFA0B000000/power
lrwxrwxrwx 1 lampo lampo    33 Apr 16  2013 Templux -> /mnt/1wire/20.6BFA0B000000/volt.D
lrwxrwxrwx 1 lampo lampo    33 Apr  6  2013 Tempms -> /mnt/1wire/20.6BFA0B000000/volt.B
lrwxrwxrwx 1 lampo lampo    38 Apr  9  2013 Ulko -> /mnt/1wire/28.F1F60D040000/temperature

Tämä tallentaa anturit mysql kantaan:

lampo@pakki:~$ cat lampokirjoitus 
echo 'USE Lampo;' > /home/lampo/talleta
echo 'INSERT INTO mittaus (paivays,Anturi1,Anturi2,Anturi3,Anturi4,Anturi5,Anturi6,Anturi7,Anturi8,ms,Tms,lux,Tlux) VALUES (now()',$(/home/lampo/siisti3)');' >> /home/lampo/talleta
mysql --database=Lampo --password=q1w2 < /home/lampo/talleta

Seuraava näyttää sekavalta, mutta tulostaa kaikki anturit samalla riville, poistaa välilyönnit ja laittaa pilkun väliin.

lampo@pakki:~$ cat siisti3
cat Anturi1 |tr -d ' ';echo -n ,;cat Anturi2 |tr -d ' ';echo -n ,;cat Anturi3 |tr -d ' ';echo -n ,;cat Anturi4 |tr -d ' ';echo -n ,;cat Anturi5 |tr -d ' ';echo -n ,;cat Anturi6 | tr -d ' ';echo -n ,;cat Anturi7 | tr -d ' ';echo -n ,;cat Anturi8 | tr -d ' ';echo -n ,;echo -n $(/home/lampo/tuulims);echo -n ,;echo -n $(/home/lampo/tuulitemp);echo -n ,;echo -n $(/home/lampo/lux);echo -n ,;echo -n $(/home/lampo/luxtemp)

Tietokannasta sitten voi piirrellä haluamiaan käppyröitä.

Itse olen käyttänyt php:ta ja jpgraphia. Joko lennosta tai ajastettuna crontabilla tiedostoon joka kopsataan nettiin.

Tietokannasta voi ottaa varmuuskopion mysqldump ohjelmalla.
Raspberryssä kannattaa varautua siihen että muistikortti korruptoituu jossain vaiheessa. (sähkökatko tms)

Tässä jäi se RRD:n käytön pointti huomaamatta, kuvien tarvitseman datan laskennan ovela siirto keräyksen rinnalle, siksi RRD:tä käytetään kaikenmaailman softissa joissa voit maalata kuvasta alueen ja kertoa että katsotaanpas tätä kohtaa tarkemmin:

Oli minullakin se data tallessa muualla kuin RRD:n puskureissa ja talletuskin näytti ihan samanlaiselta sen kanssa, mutta koska senaikainen mittakoneeni oli raspiakin hitaampi ei sillä pystynyt järkevässä ajassa tuottamaan haluamiaan kuvia, koska dataa oli paljon ja esmes kahden vuoden käppyrän teko monesta anturista vaatii jo vähän puuhaa.

Tähän kärsimättömyyteen käyränpiirron odottelussa oli toki syykin, rakensin systeemin veretseisauttavan sähkönkulutuksen hillintään + Argon toiminnan tutkimiseen ja pyöräyttelin sieltä kaikenlaista ad-hoc kippuraa vaikka oli minulla toisella koneella ne webisivutkin jonne png:tä säännöllisesti siirrettiin.
 

HeTi

Aktiivinen jäsen
Vs: Raspberry pi ja 1-wire

VesA sanoi:
Tässä jäi se RRD:n käytön pointti huomaamatta, kuvien tarvitseman datan laskennan ovela siirto keräyksen rinnalle, siksi RRD:tä käytetään kaikenmaailman softissa joissa voit maalata kuvasta alueen ja kertoa että katsotaanpas tätä kohtaa tarkemmin:

Joo, eihän nämä eri tekniikat toisiaan pois sulje.
Itselläkin on ollut mysql ja rrdtool käyttöä sekaisin kun toinen "niin mukavasti keskiarvottaa" lämpötiloja esim. vuoden ajalle ilman sen kummempaa laskentaa.

Osa mittauksista on mennyt sitten myös thinkspeak.com alle.

Nyt olen testaillut langatonta mittausta.
Kotona ei mitään koodia pyöri, on ainoastaan:

http://www.clasohlson.com/fi/TellStick-Net/Pr364860000?gclid=CIS__Mu967oCFY5Q3godFFkAzA

http://www.clasohlson.com/fi/L%C3%A4mp%C3%B6tila-anturi-kosteusmittari/36-1797

Koodi pyörii sitten palvelimella (FuTelldus) netissä.
Olisihan tähän ihan maksullinen palvelu olemassa: http://templight.se/

Tahtoo tuon langattomuuden kanssa olla aika avuton, joko toimii tai sitten ei. Voi ainoastaan yrittää
siirtää vehkeitä parempiin paikkoihin.Mittausvälikin on ennaltaarvaamaton, yleensä yli 10min joskus tunteja.
Taitaa olla kotona (tai naapurissa) liigaa elektroniikkaa häiritsemässä.

Saa nähdä mitä tämä "InternetThings" tuo tullessaan.

Edit:
Tietysti tuolla Tellstick Net-boksilla voi vielä myös valoja ohjata mihin sen alunperinkin hommasin :)
Nyt sitten markkinoille on tullut Z-wave laitteita, pysy tässä sitten kehityksen mukana...
 
A

apophis

Vieras
Vs: Raspberry pi ja 1-wire

Mysql - perl cgi - gnuplot graafien generoinnissa suurin ongelma on toivoton hitaus raspilla. Ei tuo kovin sähäkkä ole miniläppärilläkään, mutta raspilla se vasta hidas onkin.

Ongelman voi aika hyvin kiertää logitusskriptissä, joka voi tehdä 'cacheen' tietyt perusgraafit taustalla. Sitten kun selaimella menee katsomaan, on aina esim. tämän hetken tilanne valmiina. Mutta historioitten selaus on hidasta, sille en ole keksinyt vielä oikein mitään. Tavara kun haetaan 'on demand' kannasta tietyltä ajalta ja tehdään siitä graafi, niin kestäähän se ainakin perl skriptillä tehtynä...

Toinen miinus on insinöörimäisen näköiset graafit :D Kaipa tuota gnuplottiakin voisi viritellä, mutta deafulttina se tekee kyllä melko ankean näköistä jälkeä.
 

kotte

Hyperaktiivi
Vs: Raspberry pi ja 1-wire

HeTi sanoi:
Nyt olen testaillut langatonta mittausta.
Kotona ei mitään koodia pyöri, on ainoastaan:

http://www.clasohlson.com/fi/TellStick-Net/Pr364860000?gclid=CIS__Mu967oCFY5Q3godFFkAzA

http://www.clasohlson.com/fi/L%C3%A4mp%C3%B6tila-anturi-kosteusmittari/36-1797

Koodi pyörii sitten palvelimella (FuTelldus) netissä.
Olisihan tähän ihan maksullinen palvelu olemassa: http://templight.se/

Mikä lähetin sinulla olikaan mitta-anturina? Itsellä on ollut Motonetistä hankittu "sauna+ulkomittarisetti" (vihje yhteensopivuudesta saatu netistä) ja tuo oikeastaan on toistaiseksi yllättänyt positiivisesti (tiedä sitten, miten käy jatkossa, kun ollut käytössä vasta muutaman viikon). Olen logannut kumpaakin irtoanturia runsaan 5 m:n etäisyydellä portaikon ja betonitiiliseinän lävitse (välissä on muutakin kamaa) kerran minuutissa, enkä ole huomannut, että mittauksia jäisi väliin. Kerään mittaukset Teldusin open source -daemonin avulla linux-koneesta (vanha 686-kotisarjan kone). Laitoin tuon logituksen lähinnä tarkkailemaan ohjauksen perille menoa vastakkaiseen suuntaan (tuokin on toiminut ongelmitta), Nexan ulkopistorasiavastaanotin.
 
L

lorvi

Vieras
Vs: Raspberry pi ja 1-wire

Olen kokeillut usealla konstilla kuvia generoida, tällä hetkellä ainakin raspi jaksaa kun TaloLogger in csv tiedostosta seuraavalla koodilla
Koodi:
#!/bin/sh
/usr/local/bin/csvquery -q "SELECT csv.date, csv.outdoor, csv.kosteus, csv.sanih, csv.varaaja8now, csv.savukaasu, csv.palotila from csv ORDER BY rowid DESC LIMIT 145" /home/talo/log/data.csv > /home/talo/log/daytemp.csv
/usr/local/bin/csvquery -q "SELECT * from csv ORDER BY date ASC" /home/talo/log/daytemp.csv > /home/talo/log/day_od.csv
väännän tiedoston, minkä sitten ftp llä kotisivulle ja siellä seuraavalla koodilla sitten kuvaksi, minkä vääntää sitten katsojan kone.
Koodi:
<!DOCTYPE html>
<meta charset="utf-8">
<style>

body {
  font: 10px sans-serif;
}

.axis path,
.axis line {
  fill: none;
  stroke: #000;
  shape-rendering: crispEdges;
}

.x.axis path {
   stroke: #000;
}

.line {
  fill: none;
  stroke: steelblue;
  stroke-width: 1px;
}

.grid .tick {
    stroke: lightgrey;
 
}
.grid path {
      stroke-width: 0;
}
svg{
border-style:solid;
border-color:lightgrey;
border-width:1px;
}
.overlay {
  fill: none;
  pointer-events: all;
}

.focus circle {
  fill: none;
  stroke: steelblue;
}

</style>
<body>
<script src="http://d3js.org/d3.v3.js"></script>
<script>

var margin = {top: 20, right: 30, bottom: 30, left: 40},
    width = 483 - margin.left - margin.right,
    height = 291 - margin.top - margin.bottom;
var parseDate = d3.time.format("%d.%m.%Y %H:%M:%S").parse;
    bisectDate = d3.bisector(function(d) { return d.date; }).left,
    formatValue = d3.format(",.2f"),
    formatCurrency = function(d) { return formatValue(d) + " C°"; };

var x = d3.time.scale()
    .range([0, width]);

var y = d3.scale.linear()
    .range([height, 0]);

var xAxis = d3.svg.axis()
    .scale(x)
    .orient("bottom")
    .tickFormat(d3.time.format("%H"));

var yAxis = d3.svg.axis()
    .scale(y)
    .orient("left");

var line = d3.svg.line()
    .x(function(d) { return x(d.date); })
    .y(function(d) { return y(d.outdoor); });

var svg = d3.select("body").append("svg")
    .attr("width", width + margin.left + margin.right)
    .attr("height", height + margin.top + margin.bottom)
  .append("g")
    .attr("transform", "translate(" + margin.left + "," + margin.top + ")");

function make_x_axis() {        
    return d3.svg.axis()
        .scale(x)
         .orient("bottom")
         .ticks(5)
}

function make_y_axis() {        
    return d3.svg.axis()
        .scale(y)
        .orient("left")
        .ticks(5)
}
d3.csv("day_od.csv", function(error, data) {
  data.forEach(function(d) {
    d.date = parseDate(d.date);
    d.outdoor = +d.outdoor;
  });
data.sort(function(a, b) {
    return a.date - b.date;
  });

  x.domain(d3.extent(data, function(d) { return d.date; }));
  y.domain(d3.extent(data, function(d) { return d.outdoor; }));

svg.append("g")         
        .attr("class", "grid")
        .attr("transform", "translate(0," + height + ")")
        .call(make_x_axis()
            .tickSize(-height, 0, 0)
            .tickFormat("")
        )

    svg.append("g")         
        .attr("class", "grid")
        .call(make_y_axis()
            .tickSize(-width, 0, 0)
            .tickFormat("")
        )
  svg.append("g")
      .attr("class", "x axis")
      .attr("transform", "translate(0," + height + ")")
      .call(xAxis);

  svg.append("g")
      .attr("class", "y axis")
      .call(yAxis)
    .append("text")
      /*.attr("transform", "rotate(-90)")*/
      .attr("y", -7)
      .attr("x", 0)
      /*.style("text-anchor", "end")*/
      .text("Outside C°");

  svg.append("path")
      .datum(data)
      .attr("class", "line")
      .attr("d", line);
  var focus = svg.append("g")
      .attr("class", "focus")
      .style("display", "none");

  focus.append("circle")
      .attr("r", 4.5);

  focus.append("text")
      .attr("x", 9)
      .attr("dy", ".35em");

  svg.append("rect")
      .attr("class", "overlay")
      .attr("width", width)
      .attr("height", height)
      .on("mouseover", function() { focus.style("display", null); })
      .on("mouseout", function() { focus.style("display", "none"); })
      .on("mousemove", mousemove);

  function mousemove() {
    var x0 = x.invert(d3.mouse(this)[0]),
        i = bisectDate(data, x0, 1),
        d0 = data[i - 1],
        d1 = data[i],
        d = x0 - d0.date > d1.date - x0 ? d1 : d0;
    focus.attr("transform", "translate(" + x(d.date) + "," + y(d.outdoor) + ")");
    focus.select("text").text(formatCurrency(d.outdoor));
  }
});

</script>

Tuon kaiken tekisin python scripillä sql stä, mutta kun taito ei riitä muuntamaan sitä utc aikaa paikalliseksi, tuossa taloLoggerin tekemässä .csv ssä kun on aika kohillaan jo valmiiksi.
 

HeTi

Aktiivinen jäsen
Vs: Raspberry pi ja 1-wire

kotte sanoi:
Mikä lähetin sinulla olikaan mitta-anturina? Itsellä on ollut Motonetistä hankittu "sauna+ulkomittarisetti" (vihje yhteensopivuudesta saatu netistä) ja tuo oikeastaan on toistaiseksi yllättänyt positiivisesti (tiedä sitten, miten käy jatkossa, kun ollut käytössä vasta muutaman viikon). Olen logannut kumpaakin irtoanturia runsaan 5 m:n etäisyydellä portaikon ja betonitiiliseinän lävitse (välissä on muutakin kamaa) kerran minuutissa, enkä ole huomannut, että mittauksia jäisi väliin. Kerään mittaukset Teldusin open source -daemonin avulla linux-koneesta (vanha 686-kotisarjan kone). Laitoin tuon logituksen lähinnä tarkkailemaan ohjauksen perille menoa vastakkaiseen suuntaan (tuokin on toiminut ongelmitta), Nexan ulkopistorasiavastaanotin.

Mulla on myös olemassa tuo "sauna+ulkomittarisetti" mutta se ei alkanut jostain syystä mulla näkymään
Telldus-livessä. Nyt mulla on käytössä Clas Ohlsonin lämpö-/kosteusanturi Tuotenumero 36-1797 hinta 13.50€.
Tämä lähti toimimaan laakista, yhteensopivuus myös luvattiin tuossa kaupan sivulla. Olen ollut siinä käsityksessä
Telldus-Net kuuntelee antureita ja siirtää tuloksen nettiin, itse et voi vaikuttaa kuinka usein anturi tiedot lähettää.
Jos Net ei kuule lähetystä niin hutihan siitä tulee.

Nyt on yksi raspi nurin muistikorttin korruptoitumisen takia, pitää taas miettiä palauttaako kaiken ennalleen
vai keksiikö jotain uutta.

Tätä olen nykyisin käyttänyt raspin muistikortin varmistamiseen:

http://learn.adafruit.com/adafruit-raspberry-pi-lesson-1-preparing-and-sd-card-for-your-raspberry-pi/make-a-backup-image

Toimii raspilla itsellään, pitää olla muistikortti sovitin ja tietysti ekstra kortti.
Ekakerran jälkeen kopio vaan muuttuneet tiedot rsyncillä, eli suht vaivaton.
 

kotte

Hyperaktiivi
Vs: Raspberry pi ja 1-wire

HeTi sanoi:
Mulla on myös olemassa tuo "sauna+ulkomittarisetti" mutta se ei alkanut jostain syystä mulla näkymään
Telldus-livessä.
Itsellä tuo näkyy omassa palvelimessa näin:


computer:~$ tdtool --list
Number of devices: 1
1 Autotallin pumppu OFF


SENSORS:

PROTOCOL MODEL ID TEMP HUMIDITY LAST UPDATED
mandolyn temperaturehumidity 12 40.0° 0% 2013-11-18 17:13:54
fineoffset temperature 255 -204.7° 2013-11-18 17:14:28
mandolyn temperaturehumidity 11 29.3° 0% 2013-11-18 17:14:04
fineoffset temperaturehumidity 255 -153.6° 0% 2013-11-18 10:21:04
fineoffset temperaturehumidity 31 -102.4° 0% 2013-11-18 17:04:04
fineoffset temperaturehumidity 15 -102.4° 0% 2013-11-18 15:59:04

computer:~$

("saunamittari on tuo "mandolyn" -- ehkä tuo pilvipalvelu ei osaa moista protokollaa; tuo "fineoffset" on joku muu lähetin joko meiltä tai naapurista -- en tiedä tarkemmin, mikä on kyseessä).
 
L

lorvi

Vieras
K

Khyron

Vieras
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
Ohjeita on paljon, timestampit muuttuu jne ja javascriptilläkin saan >UTC aikaanpäin kolmella kirjaimella, mutta UTC>localtime ei taivu näillä olemattomilla taidoilla.
tuolla aiemmin jo pähkäilin http://lampopumput.info/foorumi/index.php?topic=16918.465
mutta eiköhän sekin ensi talven lumilla aukene

mysql> select convert_tz(utc_timestamp(),'+00:00','+02:00');
+-----------------------------------------------+
| convert_tz(utc_timestamp(),'+00:00','+02:00') |
+-----------------------------------------------+
| 2013-11-19 20:48:43 |
+-----------------------------------------------+
1 row in set (0.00 sec)

mysql>

Noin pikasesti testattuna.

Jos haluaa käyttää nimiä aikavyöhykkeillä pitää ajaa http://dev.mysql.com/doc/refman/5.1/en/mysql-tzinfo-to-sql.html tuolla kerrottu ohjelma, silloin pitäs tulla kesä-/talviaikakin oikein automaattisesti.
 
L

lorvi

Vieras
Vs: Raspberry pi ja 1-wire

joo, joo ja kyllä kyllä, mutta miten se istutetaan tähän kyselyyn jotta .csv tulosteessa on pikallinen aika
Koodi:
import sqlite3
import csv
import sys

conn = sqlite3.connect('/home/talo.db')
cur = conn.cursor()

data = cur.execute('select time, value from talo_data where position_id=1 AND DATETIME([time]) >= DATETIME("now","-1 day");')

with open('/home/log/my.csv', 'wb') as f:
  writer = csv.writer(f)
  writer.writerow(['date', 'value'])
  writer.writerows(data)
for row in data:
 print >> f, row
 
O

olammi

Vieras
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
joo, joo ja kyllä kyllä, mutta miten se istutetaan tähän kyselyyn jotta .csv tulosteessa on pikallinen aika

Tässä alla, miten minä tekisin. Tapoja on lukuisia, joten nämä toki vain yksi katsantokanta aiheeseen.

Tapa 1, Pythonilla, kyselyssä pyydetään aika unix timestampina, ei merkkijonoksi muutettuna päivämäärä-aikana, jotta sitä voidaan käsitellä helpommin Pythonin aikakirjastoilla:
Koodi:
import sqlite3
import csv
import sys
import time

conn = sqlite3.connect('/home/talo.db')
cur = conn.cursor()

cur.execute('select strftime(\'%s\', time) as unixaika, value from talo_data where position_id=1 AND DATETIME([time]) >= DATETIME("now","-1 day");')
data = []
for row in cur.fetchall():
  unixaika = float(row[0])
  paikallisaika = time.localtime(unixaika)
  aikastr = time.strftime('%Y-%m-%d %H:%M:%S', paikallisaika)
  data.append( aikastr, row[1]))

with open('/home/log/my.csv', 'wb') as f:
  writer = csv.writer(f)
  writer.writerow(['date', 'value'])
  writer.writerows(data)

Tapa 2, SQLitellä, kyselyssä pyydetään suoraan aika paikallisaikamerkkijonoksi muunnettuna:
Koodi:
import sqlite3
import csv
import sys

conn = sqlite3.connect('/home/talo.db')
cur = conn.cursor()

data = cur.execute('select DATETIME(time, \'localtime\') as paikallisaika, value from talo_data where position_id=1 AND DATETIME([time]) >= DATETIME("now","-1 day");')

with open('/home/log/my.csv', 'wb') as f:
  writer = csv.writer(f)
  writer.writerow(['date', 'value'])
  writer.writerows(data)
 
L

lorvi

Vieras
Vs: Raspberry pi ja 1-wire

Kiitän ja kumarran, toimii mainiosti. Tämä helpottaa elämää kummasti ja täytyy taas todeta että se on helppoa kun sen osaa.
Nyt pääsen kerralla eroon noista epämääräisistä 'mutkan kautta' viritelmistä.
 
L

lorvi

Vieras
Vs: Raspberry pi ja 1-wire

Ongelma ratkesi, mutta uusi tuli tilalle. Yhden anturin kysely on ok, mutta useamman tuo phytonscripti kirjoittaakin allekkain näin
Koodi:
position_id,date,value
1,2013-11-19 22:20:00,5.1875
2,2013-11-19 22:20:00,21.0625
12,2013-11-19 22:20:00,20.9375
14,2013-11-19 22:20:00,38.125
kun tavoitteena olisi seuraavanlainen
2013-11-19 22:20:00,5.1875,21.0625,20.9375,38.125

Se tietokantarakenteen muuttaminen on yksi vaihtoehto, mutta onko tuo muuten toteutettavissa?
 
O

olammi

Vieras
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
Se tietokantarakenteen muuttaminen on yksi vaihtoehto, mutta onko tuo muuten toteutettavissa?

Toki on toteutettavissa. Tietokantarakennetta en suosittele tuollaisen takia muuttelemaan - tai häntä alkaa heiluttaa koiraa. Edessäsi on ohjelmointiongelma, joka ratkeaa esimerkiksi ryhmittelemällä saadut rivit haluamansamakuiseen python-tietorakenteeseen ja tulostelemalla sieltä sitten CSV-muotoon. Mitään yhden rivin taikakoodia tähän ei taida kuitenkaan olla, vaan em. ryhmittely pitää tehdä koodissa erikseen.
 
D

dyyd

Vieras
Vs: Raspberry pi ja 1-wire

Hei!

Erittäin hienoa keskustelua tästä aiheesta. Erittäin mielenkiintoista myös nähdä eri toteutustapoja, mihin olette päätyneet. Sain tästä myös muutaman idean ja pitää varmaan testata myös omassa järjestelmäss. Itse päädyin aikanaan järjestelmään jossa data haetaan perlillä kantaan minuutin välein. Itse graafien piirtämisen olen ns ulkoistanut katsojan koneelle, eli graafit piirretään käyttäjän päässä lennossa googlen kirjastoin, jolloin vattu tyytyy tarjomaan pelkät datat. Pitää palata tähän myöhemmin kun testailen itsekin vielä vähän. :)
 
A

apophis

Vieras
Vs: Raspberry pi ja 1-wire

Mitenkäs tuo googlen graffakirjasto piirtelee esim. kwh countterin arvot nätiksi pylväsdiagrammiksi? Löytyykö suoraan vaihtoehtoa, joka osaa laskea 'deltat' tuntien välillä ja piirtää oikean kokoisen pylvään? Vai pitääkö javascriptissä pyöritellä datoja sopivaan muotoon ja sitten syöttää graafiin?

Tuo googlen kirjasto kiinnostaisi itselläkin kokeilla tässä kun ehtisi...
 
D

dyyd

Vieras
Vs: Raspberry pi ja 1-wire

Olen itse koittanut vasta tuota viivagrammia, mutta eiköhän se sieltä kaikki löydy jos vain haluaa. Esimerkiksi:

https://google-developers.appspot.com/chart/interactive/docs/gallery/combochart

Tietynlaista dataahan se vaatii sitten sisään. Mutta ei liene ongelma.
 
L

lorvi

Vieras
Vs: Raspberry pi ja 1-wire

Nyt ei ensimmäisen kerran lähtenyt sähkökatkon/piikin jälkeen raspi/taloLogger tulille itseksiään. Ei siinä kyllä mitään isompia kun tein IVO resetin, niin taas toimii. Ilmeisesti sattunut juuri mittauksen aikana.
Ja sqlite korruptoitunut taasen - onneksi on eilinen kopio tallella. Korruptoituminen tapahtuu minun mielestä siitä, että sinne tulee samalla id llä kaksi vientiä.
 

jussip

Jäsen
Vs: Raspberry pi ja 1-wire

Mun raspi ei löydä verkkoa sähkökatkon jälkeen vaikka pysyy akuilla pystyssä. Modeemi/reititin boottaa ja raspi ei jostain syystä sen jälkeen muodosta yhteyttä...
 
D

dyyd

Vieras
Vs: Raspberry pi ja 1-wire

jussip sanoi:
Mun raspi ei löydä verkkoa sähkökatkon jälkeen vaikka pysyy akuilla pystyssä. Modeemi/reititin boottaa ja raspi ei jostain syystä sen jälkeen muodosta yhteyttä...

Hei,

kannattaa tarkistaa onko tiedostossa /etc/network/interfaces tuo hot-plugi päällä, eli:

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

Tuon pitäisi tarkastella jos verkkokaapelikytkentä menee pois ja takas, esim routterin buutatessa, että osaa nostaa yhteyden takas ylös. Otettu täältä: https://wiki.debian.org/NetworkConfiguration
 
L

lorvi

Vieras
Vs: Raspberry pi ja 1-wire

minä olen käyttänyt kiinteää ip tä, eipähän vaihdu huomaamatta ja minusta on varmemmin toiminutkin.
 
D

dyyd

Vieras
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
minä olen käyttänyt kiinteää ip tä, eipähän vaihdu huomaamatta ja minusta on varmemmin toiminutkin.

Sama vika. Muuten ei edes oma seurantajärjestelmäni toimisi ulkomaailmaan, mutta voihan sitä jakaa aina saman iipeenkin dhcp:llä sidottuna macciin jos haluaa. :)
 

VesA

In Memoriam
Vs: Raspberry pi ja 1-wire

DyyD sanoi:
Sama vika. Muuten ei edes oma seurantajärjestelmäni toimisi ulkomaailmaan, mutta voihan sitä jakaa aina saman iipeenkin dhcp:llä sidottuna macciin jos haluaa. :)

hmm.. voi sen käsinkin sitoa, mutta normaali DHCP koittaa muutenkin pitää osoite-mac parin muuttumattomana.. eli clientti kysyy 'mulla oli viimeks tää, saanks saman' ja toisaalta serverikin pitää listaa pareista ja antaa sen vanhan mielellään.
 
D

dyyd

Vieras
Vs: Raspberry pi ja 1-wire

VesA sanoi:
hmm.. voi sen käsinkin sitoa, mutta normaali DHCP koittaa muutenkin pitää osoite-mac parin muuttumattomana.. eli clientti kysyy 'mulla oli viimeks tää, saanks saman' ja toisaalta serverikin pitää listaa pareista ja antaa sen vanhan mielellään.

Joo ehkä serverit, mut mitä tässä nyt työn puolesta on satoja noita perusrouttereita joutuny konffimaan niin harvoin noin toimivat.
 

jussip

Jäsen
Vs: Raspberry pi ja 1-wire

DyyD sanoi:
Hei,

kannattaa tarkistaa onko tiedostossa /etc/network/interfaces tuo hot-plugi päällä, eli:

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

Tuon pitäisi tarkastella jos verkkokaapelikytkentä menee pois ja takas, esim routterin buutatessa, että osaa nostaa yhteyden takas ylös. Otettu täältä: https://wiki.debian.org/NetworkConfiguration

Tänään oli router bootannut ja raspi taas ilman verkkoa. Muut koneet osaa kyllä takaisin verkkoon mutta raspi ei...
 
D

Deleted member 1344

Vieras
Vs: Raspberry pi ja 1-wire

Tuo kiinteän IP-osoitteen pitäminen oli aikoinaan syy sille miksi laitoin DD-WRT -imagen Linksys WRT-54GL tukiasemaan/palomuuriin. Siinä saa määriteltyä 'staattisen DHCP-osoitteen', eli sille voi antaa MAC-IP parin, jolloin esim. Raspin voisi konffata käyttämään DHCP:tä (yleensä vähemmän vaivaa noin), mutta sen IP on silti aina sama, mikä taas helpottaa esim. palomuurireikien tekemistä, vaikkapa SSH:n salliminen internetistä päin.

Joku hotplug-juttu tuossa on pakko olla, kun tuo huomaa että verkko on alhaalla ja vapauttaa verkkointerfacen, mutta ei toisaalta osaa enää uudestaan nostaa sitä takaisin ylös. Testasin tässä just että esim. DHCP:tä käyttävää Arduinoa ei yhtään häiritse se, että vetää verkkokaapelin hetkeksi irti. Mutta DHCP-serverin päässä sillä saisi olla staattisesti määritelty IP-osoite, kun se ei sitten ilmeisestikään uudista sitä jos esim. DHCP-serveri boottaa.

EDIT: Jaa, kappas, ehkä Ardullakin olisi syytä välillä kutsua tätä että osoite pysyy voimassa: http://arduino.cc/en/Reference/EthernetMaintain
 

kotte

Hyperaktiivi
Vs: Raspberry pi ja 1-wire

jussip sanoi:
Tänään oli router bootannut ja raspi taas ilman verkkoa. Muut koneet osaa kyllä takaisin verkkoon mutta raspi ei...
Oletko muokannut verkon pystyynsaattamista raspilla jotenkin? Ei kai johonkin skriptiin ole asetettu sillä hetkellä voimassa olleita IP-osoitteita tms.? Lähtevätkö nimipalvelut tms. tarkoitetulla tavalla käyntiin, jos niitä käytetään (tuossa voi moni asia mennä mönkään pienestä fibasta)? Voisiko joku aikavakio tehdä tenän (eli reitittimen käynnistyminen kestää kauemmin kuin raspi odottaa)?

Kannattaa yrittää simuloida virhetilanne, eli pääte (== monitori mieluummin kuin etäyhteys) kiinni raspiin ja reititimestä virrat hetkeksi pois (raspi koko ajan päällä): Katsottava, mitä tapahtuu (ip-osoite, reitit, nimipalvelu alias dns vs. resolv.conf jne.) ...
 
D

Deleted member 1344

Vieras
Vs: Raspberry pi ja 1-wire

Kun nyt mainitsin tuon Arduinon, niin lisätään tähän vielä että Ethernet shieldin käyttämä Wiznet-piirisarja ei anna mitään keinoa lukea tietoa siitä onko Ethernet-kaapeli kiinni vaiko ei. Eli Arduino ei voi tietää onko esim. kytkin bootannut ja IP-osoite vaatisi uusimista. Ellei sitten tee jotain ajastettua koodinpätkää joka tekee esim. pingin ICMP-protokollalla riittävän usein jotta huomataan onko DHCP-serveri käynyt alhaalla.
 
Back
Ylös Bottom