Raspberry pi 3 som mätstation, en vision

Hur ser ditt mät- och/eller hemautomations-system ut? Dela med dig av hur just Ditt projekt ser ut och fungerar, eller hur dina planer ser ut för framtiden. Att läsa om andra är bästa inspirationen.
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Detta blir nog lite av en byggtråd, kan tänkas att sådana ska ligga någon annanstans, då får den gärna flyttas.
Jag tänker börja med att bygga ett system för att mäta en ute temperatur. Som hårdvara vill jag använda raspberry 3 och ds18b20 sensor. Till detta behövs naturligtvis ett operativsystem till raspberryn, owfs samt rrd-tool. Jag har hittills fått raspberryn att läsa temperatur, men då jag är extrem nybörjare på området tror jag att jag fipplat lite för mycket med systemet och den databas med temperaturer som skapas blev på 12 timmar 6mb stor, så någonstans har nog för många värden sparats. Ev kan jag ha valt fel operativsystem, Noobs kanske är en version som inte riktigt funkar med de guider jag hittat här på m.nu och andra ställen. Ska testa en ny vända men med ubuntu istället https://wiki.ubuntu.com/ARM/RaspberryPi Ett problem med Noobs var att användarrättigheterna strulade, efter flera försök att få rrddata att fungera, det som jäklades var behörigheterna att skapa mappar. Men jag hittade det lilla kommandot sudo su som gjorde att allt inskrivet efter detta skrevs som superuser och då skapades mappar, men jag fick likväl inte till grafgenereringen. Så därför tänkte jag följa denna guide till punkt och pricka denna gång: https://wiki.m.nu/index.php/OWFS_HowTo

Jag har dock lyckats få till fjärrskrivbord på min rpi för både windows-maskin och padda. Otroligt mycket smidigare.

När mitt system klarar att hantera en sensor kommer jag bygga ut det hela till att gälla fler temperatursensorer. Dels fler utetemperaturer, någon inne, pooltemp. Steget efter detta blir att tillverka en sensor som känner av drifttider på poolvärmepumpen. Borde gå enkelt då den vid drift genererar en rätt ordentlig luftström. Slutligen vill jag i framtiden ha en pulsmätare på elförbrukningen.
Parallellt med detta ska jag försöka skapa någon form av snygga grafer, helst bygga en egen temp-app för android. Det finns säkert superbra sådana redan, men lite av idén med det hela är att lära mig lite mer om programmering.

Så ni som har tips och varningar får mer än gärna skriva in här i tråden, ja alla andra med så klart.
hellgun
Tar hemautomation på allvar
Inlägg: 76
Blev medlem: 22 apr 2010, 12:16

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av hellgun »

Jag har för mig att RRDtool bygger upp hela databasen från start och sen blir den inte så mycket större när data stoppas in.

Skickat från min Nexus 5 via Tapatalk
Användarvisningsbild
motoz
Tar hemautomation på allvar
Inlägg: 100
Blev medlem: 02 feb 2015, 15:05
Ort: ostrobothnia

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av motoz »

Helt rätt, RRDtool skapar plats för alla framtida data på en gång då man skapar databasen, sedan har filen exakt samma storlek för all framtid. Man måste alltså bestämma sig för hur länge man vill att databasen ska hålla kvar data redan då man skapar den. Då den blir "full" så börjar den automatiskt skriva över de äldsta värdena.

Jag skulle rekommendera att du sätter lite tid på att läsa på om filrättigheter i linux så sparar du mycket bekymmer i framtiden och faller inte i fällan att "lägga sudo framför allting för annars brukar det krångla", vilket i sig skapar en hel del krångel. Tex här finns en del grundläggande på svenska: http://dsv.su.se/introdator/kommandotol ... attigheter

Skillnaden mellan Noobs och raspbian är att då man startar noobs första gången så kan man välja ett antal olika operativsystem att installera. Raspbian är rekommenderat och jag antar att det är det du har valt. De flesta guider på nätet är nog skrivna med tanke på raspbian och inte ubuntu eller något annat så raspbian är nog enklaste valet.

Och lycka till med bygget!
Open source pellet logger: https://github.com/motoz/PellMon
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

motoz skrev:Helt rätt, RRDtool skapar plats för alla framtida data på en gång då man skapar databasen, sedan har filen exakt samma storlek för all framtid. Man måste alltså bestämma sig för hur länge man vill att databasen ska hålla kvar data redan då man skapar den. Då den blir "full" så börjar den automatiskt skriva över de äldsta värdena.

Jag skulle rekommendera att du sätter lite tid på att läsa på om filrättigheter i linux så sparar du mycket bekymmer i framtiden och faller inte i fällan att "lägga sudo framför allting för annars brukar det krångla", vilket i sig skapar en hel del krångel. Tex här finns en del grundläggande på svenska: http://dsv.su.se/introdator/kommandotol ... attigheter

Skillnaden mellan Noobs och raspbian är att då man startar noobs första gången så kan man välja ett antal olika operativsystem att installera. Raspbian är rekommenderat och jag antar att det är det du har valt. De flesta guider på nätet är nog skrivna med tanke på raspbian och inte ubuntu eller något annat så raspbian är nog enklaste valet.

Och lycka till med bygget!
hellgun skrev:Jag har för mig att RRDtool bygger upp hela databasen från start och sen blir den inte så mycket större när data stoppas in.
Databasen var nog rätt tom ändå... =) Så det var nog som ni säger, ett ordentligt utrymme för framtida lagring.
Rättigheter har jag snubblat runt i rätt ordentligt, länken du skickade var klart matnyttig!
Min grundidé var att följa den här guiden https://wiki.m.nu/index.php/OWFS_HowTo
Där verkar tanken vara att ha ubuntu på raspberry och sedan installera ubuntu server ovanpå detta. Det verkar inte vara riktigt görligt längre, ubuntu server verkar vara ett helt eget operativsystem.
Jag gissar att han har använt ubuntu server för att göra mätvärdena lättare tillgängliga, men jag kan sannolikt ha ganska fel.

Jag körde med raspian först och lyckades då aldrig riktigt få ordning på rrd-tool. Testade sedan Ubuntu Mate, men det var ett alldeles för tungt OS. rpi blev otroligt seg så jag är tillbaka i raspian nu. Gissar att det där med en ubuntu-server på min rpi inte riktigt är en framkomlig väg.
flyvert
Hemautomation - det är mer än en hobby
Inlägg: 393
Blev medlem: 22 aug 2013, 00:48
Ort: Västerås

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av flyvert »

Det finns många varianter...

... själv kör jag en hemmasnickrad Raspberry PI-baserad lösning med MySQL som databas i botten kombinerat med Mosquitto/MQTT (en slags central databas/meddelandeserver som förekommer i Internet of Things-lösningar).

- ett Python-skript scannar 1-wire katalogens alla sensorfiler varje minut och skjuter in värden i MySQL och MQTT
- två 1-wire bussar mäter en mängd temperaturer, lufttryck, luftfuktighet, regn, vind, vindriktning, elförbrukning, mm
- Domoticz-skript (Lua) skjuter in diverse temperaturer från trådlösa sensorer bl.a. från kyl/frys
- vattenmätaren avläses mha den lösning som finns publicerad av "Gol" här på forumet
- fjärrvärmen avläses via optiskt serieinterface (jag har publicerat den lösningen här baserad på en Arduino o komponenter för en tjuga)
- ett Python-skript övervakar GPIO ingångar dit jag kopplat magnetkontakter för dörrar, brevlåda, mm o skjuter in värden
- en webbserver (Apache) publicerar värden och trender (mha Flot JavaScript)
- cronjob körs varje timme/dygn/vecka/månad och beräknar min/max/avg-värden i databasen
- ett alarmklient (ansluten via MQTT) är under framtagande son skall analysera värden o larmar om temp i kyl/frys avviker, garageportar står öppna, fjärrvärmen strular, mm. Meddelanden pushas till iPhone med Prowl
- har även ett antal övervakningskameror kopplade till ZoneMinder (videoinspelning och rörelsedektektion) som skjuter in info i MySQL/MQTT när en kamera registrerat rörelse

Så här ser "hemsidan" ut:
Hemsida
Hemsida
Har en del att fixa; tex formeln för vindkyleffekten ger "positiv" effekt när det blåser för lite o är varmt, vattenförbrukningen finns ännu inte med, mm...

Det mesta av datat presenteras även på en 1-wire styrd LCD infälld i en vägg i köket.
LCD
LCD
Vänster halva är ständigt presenterad. Den högra halvan är händelse- o timerstyrd.
P=brevlådan innehåller post. Denna rad på displayen uppdateras omedelbart med diverse bokstäver om någon dörr låses upp, vattenmätaren indikerar förbrukning, kameror detekterar rörelse, etc
Inkommande fjärrvärmetemperatur är 56 grader och flödet är blyga 5 liter i timman (det var värre i Januari...). Denna del av displayen är egentligen ett bildspel som skiftar innehåll var 10:e sekund och innehållet styrs av omständigheter; tex ingen regnmängd presenteras om det inte regnat det senaste dygnet, ingen fjärrvärmeinfo om anläggningen slagit ifrån, etc.

Tack vare att allt data finns i MySQL kan man lätt göra beräkningar, tex hur många gånger har garageportarna öppnats, när är brevbäraren här, påverkar vindhastigheten eller fjolårets byte av fönster till 3-glas med bra isolerklass konsumtionen av fjärrvärme? etc.
Dygnsmedeltemperatur över året
Dygnsmedeltemperatur över året
Fjärrvärmen senaste kvartalet
Fjärrvärmen senaste kvartalet
Brevlådestatus sedan midnatt
Brevlådestatus sedan midnatt
image.jpeg (17.83 KiB) Visad 14078 gånger
Dörrstatus sedan midnatt
Dörrstatus sedan midnatt
image.jpeg (32.29 KiB) Visad 14078 gånger
Upplösningen i databasen är ett mätvärde per minut i en månad, därefter sparas bara tim/dygn/vecko och månadsmedelvärden. Tillväxten på disk är minimal och databasen ryms lätt på ett mindre SD-kort i Raspberry, men jag har valt att låta permanent data ligga på en USB-disk som jag anslutit till Raspberryn (lyckades att försörja en liten extern 60 GB SSD på den minimala strömbudget Rasperryns USB portar medger). Innan dess lyckades jag skriva sönder två SD-kort med mycket bekymmer o extrajobb som följd. Datat backas upp till en NAS disk varje månad.

Mycket finns beskrivet i artiklar från min första tid här på forumet, sök på mitt alias om du vill veta mer. Annars svarar jag på frågor efter förmåga o tillgänglig tid.
Om traktorn stjälper; håll i ratten, hoppa ej!
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Ja,det här var ju ett system som hette duga! Galet snyggt och otroligt fränt. Jag har nog flera år av pill innan jag är i närheten, men det är just detta som är drivkraften, att få inspiration och sedan se om man klarar av det! Jag är som sagt vansinnigt imponerad!
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Jag har haft en del motgångar i mitt projekt, men nu börjar det räta upp sig. Följde guiden igen, men nu som super user med hjälp av kommandot sudo su. Nu får man temperaturer ur sensorn igen :)
Dock en del kvar innan jag får till en graf.
Jag tror att scriptet skriver in temp i databasen. Vet dock ej hur man kollar detta, kanske inte går att göra via ssh och padda som jag gjort hittills. Får testa med rpi direkt in i skärm och fysiskt tangentbord.

Tror att ett script hämtar data från databas, men att när scriptet ska sammanställa en graf så går något snett. Ja, så ser det ut hittills.

Har även läst massor om rrd-tool och om jag fattat rätt så kan min idé om en brytare för att känna av driftstiderna på värmepump till poolen vara en sådan datasamling som inte ska vara av typen GAUGE, som temperaturer är utan troligare av typen COUNTER. Alltid lär man sig något...
Användarvisningsbild
motoz
Tar hemautomation på allvar
Inlägg: 100
Blev medlem: 02 feb 2015, 15:05
Ort: ostrobothnia

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av motoz »

Ett tips, du kan använda 'rrdtool lastupdate' för att kolla om data skrivs till datatabasen.

Tex så har jag en databas som heter rrd.db, följande kommando:

Kod: Markera allt

rrdtool lastupdate rrd.db
ger svaret:

Kod: Markera allt

 data1 data2 data3 data4 data5 data6 data7 data8 data9 data10 data11 data12 data13 data14 data15 feedertime feedercapacity logtick

1465198487: 24.9 22.1 22.2 100.0 U U 100.0 999.9 999.9 U U U U U U 311 3002.0 1465149164
Senaste uppdatering har skett unixtid 1465198487s efter 1.1.1970 och 'data1' skrevs med 24.9, 'data2' med 22.1 osv.
Open source pellet logger: https://github.com/motoz/PellMon
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

motoz skrev:Ett tips, du kan använda 'rrdtool lastupdate' för att kolla om data skrivs till datatabasen.

Tex så har jag en databas som heter rrd.db, följande kommando:

Kod: Markera allt

rrdtool lastupdate rrd.db
ger svaret:

Kod: Markera allt

 data1 data2 data3 data4 data5 data6 data7 data8 data9 data10 data11 data12 data13 data14 data15 feedertime feedercapacity logtick

1465198487: 24.9 22.1 22.2 100.0 U U 100.0 999.9 999.9 U U U U U U 311 3002.0 1465149164
Senaste uppdatering har skett unixtid 1465198487s efter 1.1.1970 och 'data1' skrevs med 24.9, 'data2' med 22.1 osv.
Perfekt! Precis kommandot jag behövde :)
Japp, databasen uppdateras var 150 sekund, då är det något i hanteringen efter detta.
Jag har följt guiderna här på m.nu, där ska ett Perl-script hämta värden från databasen, ser ut så här:
#!/usr/bin/perl

use RRDs;

my $cur_time = time();
my $start_time = $cur_time - 86400; # set end time to 24 hours ago

RRDs::graph "/var/www/graph_temp.png",
"--start= $start_time",
"--end= $cur_time",
"--title= Temp ute",
"--height= 300",
"--width= 500",
"--vertical-label= °C",
"DEF:OutsideTemp=/home/pi/rrddata/outside_temp.rrd:outsidetemp:AVERAGE",
"COMMENT:\t\t\t\tNu Medel Max Min\\n",
"HRULE:0#0000FF",
"LINE2:OutsideTemp#0000FF:Ute\t\t\t",
"GPRINT:OutsideTemp:LAST:%6.1lf",
"GPRINT:OutsideTemp:AVERAGE:%6.1lf",
"GPRINT:OutsideTemp:MAX:%6.1lf",
"GPRINT:OutsideTemp:MIN:%6.1lf\\n";

my $err=RRDs::error;
if ($err) {print "problem generating the graph: $err\n";}

print "Done!\n"

Men i mappen /var/www/ skapas ingen .png-fil gissningsvis ligger problemet i att perl-scriptet inte har skrivrättigheter där, får kanske mecka lite med skrivrättigheter för den mappen...
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Testat detta med skriv och körrättigheter, men fortfarande ingen .png-fil. Troligen körs inte pearl-scriptet, då lär man kolla att det körs vid startup och att crontab gör detta. Crontab-filen ser ut så här:
*/5 * * * * /home/pi/bin/get_temp.sh
*/5 * * * * sleep 150; /home/pi/bin/get_temp.sh
*/5 * * * * export LANG=sv_SE.utf8 && /home/pi/bin/graph_temp.pl
*/5 * * * * sleep 150; export LANG=sv_SE.utf8 && /home/pi/bin/graph_temp.pl
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

JAAAA! Nu skapas en png-fil :)
Det varrimligtvis körrättigheter på perl-scriptet, men kanske även skrivrättigheter i mappen var/www/

Nu vidtar steg 2... Att läsa 2sensorer samtidigt. Rimligtvis kommer sensorerna att visa olika temperaturer, för den jag har i nu visar 30° inne i vardagsrummet, inte helt rimligt... Men det är ju billiga saker det där så viss variation kan nog finnas. Jag har tillgång till en gammal labbtermometer med kvicksilver som kan få tjäna som referens. Det borde sedan vara rätt enkelt att lägga in en subtraktion av mätvärden.
larky
Moderator
Inlägg: 1166
Blev medlem: 01 feb 2008, 12:21
Ort: Skellefteå
Kontakt:

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av larky »

En 1ds8b20 visar inte fel, inte mer än tiondels grader i alla fall. Är du säker på att då läser den rätt?
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

larky skrev:En 1ds8b20 visar inte fel, inte mer än tiondels grader i alla fall. Är du säker på att då läser den rätt?
Nja, egentligen inte säker alls. Den är inkopplad precis som bilden i denna trådstart:
support-m-nu/raspberry-pi-1wire-expansi ... t2849.html

Jag ska senare koppla in kort sladd med sensor på, ja även extra sensor. Kanske ska man inte köra parasitkoppling (om det är vad jag tror att jag gör)
Läst att i2c-kortet ska bryggas/byglas,vet dock ej riktigt vad det är, och har troligen inte gjort det heller...
Holton
Tar hemautomation på allvar
Inlägg: 128
Blev medlem: 26 apr 2016, 21:45
Ort: Djurmo

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av Holton »

Kan inte låta bli att dela min första screen shot på grafen! =)

Nu brottas jag med att komma åt denna .png från andra enheter. Jag kan göra det via paddan och appen SimplePi, men den är allt annat än Simple... kräver alltid tre omgångar lösenord. Vore praktiskt att kunna ansluta via webläsare istället. kanske kan man låta appache göra en sida där png-filen ingår...
Fil 000.png
Användarvisningsbild
motoz
Tar hemautomation på allvar
Inlägg: 100
Blev medlem: 02 feb 2015, 15:05
Ort: ostrobothnia

Re: Raspberry pi 3 som mätstation, en vision

Inlägg av motoz »

Javisst kan du använda apache, eller nginx eller någon annan 'riktig' webserver. Om du vill ha något mycket enklare att testa med så kan jag tipsa om pythons inbyggda webserver SimpleHTTPServer.

Som exempel, skapa en fil 'index.html' i samma mapp som din bildfil med innehållet:

Kod: Markera allt

<img src=test.png>
sen kör du kommandot:

Kod: Markera allt

python -m SimpleHTTPServer
så har du bilden uppe på http://localhost:8000 (eller via ip:n från annan dator).
Open source pellet logger: https://github.com/motoz/PellMon
Skriv svar