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

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

Inlägg av Holton »

Ett eventuellt användbart kommando kanske kan finnas i detta som är taget från handboken för rrdtool rrdgraph_rpn
NEWDAY,NEWWEEK,NEWMONTH,NEWYEAR
These three operators will return 1.0 whenever a step is the first of the given periode. The periodes are determined according to the local timezone AND the LC_TIME settings.
CDEF:mtotal=rate,STEPWIDTH,*,NEWMONTH,PREV,0,IF,ADDNAN
TIME
Eller så kanske man ska plocka ut det värde som genereras av scriptet efter värmepumpen stannat, sedan peta in detta i en liten tids-rrd-fil med ett värde per dygn, alltså en stepsize på 24 timmar, detta rra blir dygnsdata, nästa rra får bli en summering på veckonivå och en rra på månad och en på år. Detta borde kunna lösas med att köra scriptet ovan genom cron varje dag klockan 20:00 då pumpen inte går längre. Sedan tar man undan allt grafiskt i scriptet och låter ett annat script plocka data ur tids-rrd-filen för att skriva grafik.
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 »

Om jag förstår dig rätt så vill du alltså ha drifttiden summerad från start till nuvarande dygn fram till"nu"?

Jag skulle justera --start parametern till rrdtool graph kommandot så att beräkningen startar från 0:00 senaste dygn fram till --end NOW, men att räkna ut vad det blir i sekunder sedan 01011970 i bash är väl inte helt enkelt, du har ju sommartider och sånt att ta hänsyn till också. Ett riktigt programmeringsspråk med ett bibliotek för tidshantering är nog att föredra.

Rpn operatorn NEWDAY borde också gå att använda, du får köra med --start tillräckligt länge tillbaka och göra en CDEF där du nollar alla data fram till att NEWDAY returnerar 1.0. Det komplicerar förstås av att NEWDAY ger 1.0 bara under en enda step, det första på dygnet. Jag misstänker annars att NEWDAY kanske saknas i rrdtool versionen i raspbian, jag tror den är rätt ny.
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 »

Värmepumpen styrs av en timer och går igång kl 9:00 varje dag, och kan inte gå längre än till 20:00. Om mitt script körs kl 20:05 och innehåller -- start -12h så blir resultatet dagens körning av värmepumpen. Om jag låter värdet i sekunder, innan omräkning till timmar, skickas in i en ny rrd-bas så tänkte jag att man kan spara alla dagars driftstider på värmepumpen och sedan göra tabeller utifrån detta. Ett syfte med detta är att sedan kunna göra undersökningar mot t.ex. Nattempen, dagstemperaturen, luftfuktighet, täckning av poolen och sådant för att utröna vad som är bästa sättet att behålla värmen i vattnet, hur luftfuktighet påverkar avdunstningen och därmed temperatursänkning dagtid, ja lite sånt. Men, ja... Rrdtool kanske inte är hållbart i längden.
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 »

Det fungerar nog, men lite tårta på tårta blir det ju då den första databasen redan innehåller drifttiden för vilket intervall som helst. Svårigheten är bara att omvandla det tidsintervall du vill ha ut till en tid som rrdtool förstår sig på, dvs antal sekunder efter 1.1.1970, men en snabb googling ger att 'date' klarar biffen, tex:

Kod: Markera allt

date -d"2016-07-08 20:20:20" +%s
svarar:

Kod: Markera allt

1467998420
som du kan ge rrdtool som data till --start eller --end
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 »

Tanken var att om jag varje dag beräknar driftstiden och sparar detta värde så skulle det vara enklare att plocka fram värdet för en enskild dag, men... ja det är väl just där som rrdtool har sina begränsningar. Att all tid ska omvandlas till epoch-sekunder. Så det blir helt enkelt inte enklare med en till rrd-bas. Eller går det att göra stapeldiagram i rrdtool? Om man låter x-axeln ha datum och y-ha drifttider så... Men det är väl här som mysql och flot visar sig överlägset.
Kanske är det enklare då att ta dessa, av rrdtool beräknade värden, och spara dem i mysql.
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 »

Det går att rita fina stapeldiagram med rrdtool med lite övertalning, så här kan det se ut: https://s27.postimg.org/3lwpwhgvn/consumption.png

Nu har jag övergått till att rita stapeldiagrammen med flot i webbläsaren istället för med rrdtool på servern, men den gamla koden finns här: https://github.com/motoz/PellMon/blob/5 ... ion.py#L32

Jag kan nog rekommendera att använda flot istället för att övertala rrdtool att rita stapeldiagram enligt länken ovan, men jag förstår inte riktigt hur det skulle bli enklare att stoppa in data i mysql och sedan hämta ut dem igen innan du ger över dem till flot, du måste ju hursomhelst i något skede fixa till dina data i ett format som flot förstår sig på.
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 »

Som vanligt har du nog helt rätt. Problemet jag lär ta tag i är nog att göra rrd-basen begriplig för flot. Det verkar som att det dock är en skapligt lång väg att gå det med, men ja, troligen värt det då flot verkar vara bäst i slutänden. För raspbian Jessie verkar det inte finnas några dunderkurer för detta ännu. Men jag letar vidare, men det är rätt vanligt med diskussioner kring det så det kommer kanske en uppdatering på det området. Eller så låter man en annan dator sköta flot-grejen.

De här dagarn har jag trimmat mina rrd-baser och scripten så att de räknar samman drifttider på dag och veckobasis. En ny tanke jag hade var att låta göra en graf i veckan med drifttiden och sedan spara den filen med filnamnet "drifttid vecka 31.png" osv, då var det enkelt att plocka fram dessa utan att behöva vara inne i scripten och böka. Det verkar inte helt omöjligt, hittat massor av exempel, men som vanligt vill inget fungera direkt...

Gjorde en ny uppsättning med rrd-bas och script för drifttid, ville dels putsa lite, öka tiden som data sparas och rent repetera. Fick dock detta som följd, första grafen är den gamla uppsättningen och nästa graf den nya...
image.png
image.png
Hade ett himla bry kring vad fasen som orsakade den något hackiga bilden, datan är från samma sensorer sparade till två olika rrd-baser och ritade med likadana script. Båda körs från cron, exemplet på m.nu, där man kör var 5:e minut med en sleep-funktion på 150 sekunder. Men den nedersta... Missat filsökvägen i sleep-raden, tog en halvdag att upptäcka det felet :)
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 »

Inga dunderkurer för jessie? Lite orättvist då PellMon gör exakt precis det, både på wheezy och jessie och med öppen kod och fri licens. Jag skulle kunna klippa ur valda bitar till ett separat skript om du kan specificera vad du vill.ha gjort, annars sköter PellMon hela kedjan från owserver och rrd via egen webbserver till flot i webbläsaren. Du skulle ju kunna installera det och provköra för att få lite ideer om vad man kan göra, det är ju bara att ta bort sen.
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 »

Sorry... Ska erkänna att jag typ i maj försökte dra hem pellmon, men fick inte det att funka, gissade då att det inte var för raspberry utan för mer riktiga linuxmaskiner. Tittade igen nu... Det står ju skapligt tydligt hur man gör i din wiki... Ja, det där med läsförståelse kan vara svårt, trist bara att jag arbetar som mellanstadielärare och inte kan läsa innantill, får vara extra ödmjuk nu i höst när jag tar emot ett nytt gäng knattar :)
Kommer absolut att testa pellmon, men det blir en vecka utomlands nu så det sår bli till sista semesterveckan, det finns fortfarande några fördelar med mitt yrkesval :) men jag kommer försöka begripa hur rubbet fungerar, vill liksom lära mig lite kring programmering. Dels för egen del,men delvis även för att kursplanerna nu till hösten innehåller programmering redan från år 4. Visst, detta är extremt långt över huvudena på mellanstadiebarn, men ska man kunna lära ut bör man kunna bra mycket mer själv. Ska man kunna lägga upp undervisningen så den blir intressant så måste man ha rätt bred kunskap. Men det finns dom som kör raspberry med ungar i den åldern. Lite fränt ju att köpa in enkortsdatorer och köra programmeringen via ipads. Skulle tro att jag i så fall skulle ligga rätt långt fram i utvecklingen jämfört med övriga lärare i den åldern.
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 »

Nyss hemkommen och så kastar jag mig lite obetänkt in i projektet att lägga alla fördelarna med pellmon på min rpi. Valde kanske lite väl ogenomtänkt att installera rubbet. Kom i efterhand på att troligen har jag nu ett parallellt system som loggar temperaturer från icke existerande sensorer i nya rrd-baser, eller tänker jag fel?
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 »

Att installera det är väl enklaste sättet att ta reda på vad det gör, när du tröttnat så tar du bort det med

Kod: Markera allt

sudo apt-get remove pellmon
PellMon har sin egen databas ja, var den finns och vad den innehåller ser du om du tittar genom konfigurationsfilerna under /etc/pellmon. För snabbare överblick (det är många filer) så kan du använda webb-verktyget pellmonconf. Kör `sudo pellmonconf` och öppna http://dinIP:8083 så kan du bläddra och ändra i konffilerna med webbläsaren.

Innan du ändrat nåt in konfen så försöker PellMon logga data från en dansk pelletbrännare via en usb-serial adapter, och det lär ju inte lyckas så bra. För att ha någon som helst nytta av det så kan du kolla genom filen /etc/pellmon/conf.d/enabled_plugins.conf, och där ta bort pluginet 'scottecom' och lägga till 'owfs'. Då kan PellMon kommunicera med en owserver och läsa av temperaturensorer därifrån, konfigurationen av owfs-pluginet sker i /etc/pellmon/conf.d/plugins/owfs.conf. Det betyder förstås att du måste köra owfs via en owserver, om du gör det eller inte redan beror förstås på hur du installerat owfs.

Nu menade jag ju inte att PellMon gör allt vad du vill direkt, (men det mest kan fixas, tex via 'calculate' pluginet som kör små egna skript för att göra sånt som PellMon inte redan gör, eller så kan man ju göra ett eget plugin), men det är så pass enkelt att installera och ta bort så jag tycker att det borde vara värt att prova för att knycka idéer av om inte annat.
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 »

Semestern tog slut och tiden för projektet blev lidande. Pellmonkommer jag att titta igenom mer noggrant, men att göra det via ipad blev tidsslukande, lär plugga in tv och tangentbord om det ska fungera smidigt.

Men jag sliter mitt hår över hur rrdtool skapar grafer. Y-axeln får en rätt galen gradering ibland. Alla mina script är i grunden samma som perlscriptet i rrdtool-guiden på m.nu. De övre raderna är ju alltid i princip de samma, man kan ha angett en annan tidsrymd, filnamn eller möjligen bredden på diagrammet, men i övrigt är de inledande raderna de samma. Men vissa script genererar korrekta y-axlar medan andra petar in dubletter av gradtalen ja, som i bilden
Bilagor
image.png
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 »

Vet att jag läst om detta någon stans, men ja, internet är ibland en rejäl höstack.

OWserver.... Ingen aning om jag gör det eller inte, men har följt guiden OWFS how to på m.nu. Har ett sådant litet onewire-kort från m.nu med. Ja, jag får studera det lite mer ingående
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 »

Den howto du har följt startar antagligen 'owfs' programmet ensamt direkt mot I2C kortet. Ett annat sätt är att låta programmet 'owserver' hantera hårdvaran och sedan låta programmet owfs (som visar onewiresonsorerna som en del av filsystemet) prata med owservern istället för att prata direkt med hårdvaran (I2C kortet i ditt fall). Det fina med att göra så är att andra program kan då använda sig av onewire bussen samtidigt via owservern, eftersom den är gjord för att kommunicera med många klienter samtidigt. Tex så finns owhttpd som visar alla sensorer i ett enkelt webbgränssnitt. Eller tex PellMon...

Själv har jag alltid gjort det enkelt för mig och installerat owfs med kommandot 'apt-get install owfs', så är allt klart på en gång. Nackdelen är att den debian-paketerade versionen av owfs man får då inte har stöd för ditt I2C-onewire kort, för det så måste man ladda källkoden till owfs, kompilera, installera och fixa uppstartskript själv. Jag brukar av den anledningen rekommendera usb-onewire adaptern istället, den fungerar direkt och dessutom inte bara på raspberry.

Så du har nog programmet 'owserver' installerat, men för att köra med det så måste du ändra startparametrarna som ges till owfs så det kommunicerar med owservern istälelt för I2Cbussen, och så måste du även starta owserver med ett lämpligt uppstartskript. Sista inlägget här verkar ju vara rätt: owfs/owfs-pa-raspberry-med-owserver-och ... t2818.html

Angående konstig y-axel, så du kan ju prova leka med lite olika options enligt: http://oss.oetiker.ch/rrdtool/doc/rrdgraph.en.html
Tex --alt-y-grid]
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 »

Efter ett större strömavbrott i ett ställverk i grannkommunen dog operativsystemet på min raspberry fullständigt. Försökte återuppliva, men kört. Trodde jag hade backup, men antingen är jag obegåvad eller så har jag klantat till det när jag skapade backupen, för det funkade verkligen inte. Nu har jag formaterat allt och startat om. Men denna gång så la jag in PellMon från början. Tänker dra nytta av de lösningar som finns där. Gäller nu bara att gå igenom katalogerna för att hitta vad som är vad och vad jag ska bygga vidare på. Kommer inte logga pellets, bara mina termometrar...

Ja, Det där elavbrottet, det drabbade många här i dalarna. Utredning pågår om vad som egentligen hände, men en mindre brand dödade strömmen för tusentals användare. I mitt område gav detta stora problem för fibernätet som nu, någon månad efter börjar fungera normalt igen. Detta gjorde att jag har prioriterat annat än temploggningen. Men nu när höstens tråkväder sätter in så finns tiden igen.
Skriv svar