Temperaturvisning på hemsida (Raspberry-Pi)
-
- Inlägg: 789
- Blev medlem: 10 december 2007, 12:40:08
- Ort: Piteå
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Kan nämna min "setup" här.
Raspberry Pi med 1-wire nät som loggar (i nuläget) 6 tempsensorer + en räknare som loggar husets energiförbrukning.
Datan loggas till en MySql databas och därifrån visar jag datan i grafer och siffror med hjälp av Jpgraph.
Jag har kopplat en gammal mobiltelefon till RaspberryPin med hjälp av Gnokii som skickar ett sms till mig om tempen på golvet i garaget sjunker under 4 grader i mer än 20 minuter. (tidgränsen beror på att det ibland blir lägre än så när jag kör in bilen utan att nåt är "fel"). Telefonen har jag lite andra planer för också, inte bara detta "larm".
Jag har aldrig grejat med Linux innan men tycker att det är riktigt roligt. Jag gillar dock att läsa för att lära vilket har hjälpt en del. Sedan har jag fått hjälp endel från detta forum.
Raspberry Pi med 1-wire nät som loggar (i nuläget) 6 tempsensorer + en räknare som loggar husets energiförbrukning.
Datan loggas till en MySql databas och därifrån visar jag datan i grafer och siffror med hjälp av Jpgraph.
Jag har kopplat en gammal mobiltelefon till RaspberryPin med hjälp av Gnokii som skickar ett sms till mig om tempen på golvet i garaget sjunker under 4 grader i mer än 20 minuter. (tidgränsen beror på att det ibland blir lägre än så när jag kör in bilen utan att nåt är "fel"). Telefonen har jag lite andra planer för också, inte bara detta "larm".
Jag har aldrig grejat med Linux innan men tycker att det är riktigt roligt. Jag gillar dock att läsa för att lära vilket har hjälpt en del. Sedan har jag fått hjälp endel från detta forum.
-
- Inlägg: 789
- Blev medlem: 10 december 2007, 12:40:08
- Ort: Piteå
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Sodjan: Jo det gör den. Jag har haft samma typ av loggning på en gammal "fullstor" stationär PC tidigare men jag ville testa om jag lyckades med Raspberryn och det gick över förväntan. Förutom att det känns segt när den genererar grafer (Jpgraph) så känns det mycket bättre på Raspberryn än gammla PCn. Att köra SSH för att komma åt att köra command lines från soffan är jätte kul. =)
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Projektet fortsätter:
Idag har jag finslipat lite på koden i python programmet, framförallt lagt in felvärdeshantering. Av någon anledning dyker det ibland upp temperaturer som är exakt -0.062grader, dessa sorteras nu bort och ersätts med en kort information om att felvärde har uppstått. Samplingstiden är dessutom ökad till en mätning i minuten samt hemsidans automatiska uppdateringsfrekvens är satt till samma tid.
Följande ändring är gjort för felhanteringen
Nästa steg blir att sätta en fixerad X-axel som går ett visst antal timmar/dagar tillbaka i tiden. Detta verkar dock vara lite knepigt att åstakomma i Gnuplot. En möjlighet är att styra det genom ska loggfiler som är exakt så lång tid man vill ha, långa. fortsättning följer.
Idag har jag finslipat lite på koden i python programmet, framförallt lagt in felvärdeshantering. Av någon anledning dyker det ibland upp temperaturer som är exakt -0.062grader, dessa sorteras nu bort och ersätts med en kort information om att felvärde har uppstått. Samplingstiden är dessutom ökad till en mätning i minuten samt hemsidans automatiska uppdateringsfrekvens är satt till samma tid.
Följande ändring är gjort för felhanteringen
Kod: Markera allt
def logg():
errorref = -0.062
if abs(readtwo()-errorref)<0.00001 or abs(readone()-errorref)<0.00001:
file = open("logg.txt", "a")
file.write("#ERROR")
file.write("\n")
else:
file = open("logg.txt", "a")
file.write(str(getdate()))
file.write(" ")
file.write(str(readone()))
file.write(" ")
file.write(str(readtwo()))
file.write("\n")
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Sidospår
jens75:
Är ditt system uppbyggt så att din värmepump antingen ensam driver elementen eller matar in värme i ackumulatortanken? D.v.s. på sommaren genererar du varmvatten med den och på höst-vinter-vår värmer du elementen?
jens75:
Är ditt system uppbyggt så att din värmepump antingen ensam driver elementen eller matar in värme i ackumulatortanken? D.v.s. på sommaren genererar du varmvatten med den och på höst-vinter-vår värmer du elementen?
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Hej
Jag kan rekommendera http://openenergymonitor.org/emon/
Köpte sändare med givare (emonTX) och 3 st strömtrafo + mottagare till RaspberryPI (RFM12Pi). Kortet klarar f.ö. pulsgivare och temp sensorer.
Kör deras programvara (emoncms) på Raspberry'n för att logga och visa elförbrukningen.
Loggningen har gått 24*7 sen nyår.
Verner
Jag kan rekommendera http://openenergymonitor.org/emon/
Köpte sändare med givare (emonTX) och 3 st strömtrafo + mottagare till RaspberryPI (RFM12Pi). Kortet klarar f.ö. pulsgivare och temp sensorer.
Kör deras programvara (emoncms) på Raspberry'n för att logga och visa elförbrukningen.
Loggningen har gått 24*7 sen nyår.
Verner
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Med hjälp av kommandot "tail" har jag nu lyckats sortera ut enbart dom sista värdena i loggfilen för att kunna "skala" grafen. I exemplet tar jag fram en logg för dom senaste 3 timmarna(en mätning per minut loggas).
Med mina ytterst begränsade hemside-skapande kunnskaper har jag nu också fått ihop en väljarfunktion där man kan blädra bland skalorna.

Det har dock visat sig svårt att ta bort de felvärden som kommer från tempgivarna med jämna mellanrum(de visar exakt -0.062c).
Diverse trixande med att logga dessa värden som "0" för att sedan sortera bort dom har inte fungerat.
Kod: Markera allt
plot "< tail -180 logg.txt" using 1:3 axes x1y1 lw 3 title "inomhus", "" using 1:4 axes x1y2 lw 3 title "utomhus"#

Det har dock visat sig svårt att ta bort de felvärden som kommer från tempgivarna med jämna mellanrum(de visar exakt -0.062c).
Diverse trixande med att logga dessa värden som "0" för att sedan sortera bort dom har inte fungerat.
Kod: Markera allt
import datetime;
import time;
import commands
def readone():
tfile = open("/sys/bus/w1/devices/28-0000040db5a9/w1_slave")
text = tfile.read()
tfile.close()
secondline = text.split("\n")[1]
temperaturedata = secondline.split(" ")[9]
if temperaturedata != -62:
print temperaturedata
temperature = float(temperaturedata[2:])
temperature = temperature / 1000
else:
temperature = 0
print "temperature is 0"
return(temperature)
def readtwo():
tfile = open("/sys/bus/w1/devices/28-0000040de8fc/w1_slave")
text = tfile.read()
tfile.close()
secondline = text.split("\n")[1]
temperaturedata = secondline.split(" ")[9]
if temperaturedata != -62:
print temperaturedata
temperature = float(temperaturedata[2:])
temperature = temperature / 1000
else:
temperature = 0
print "temperature is 0"
return(temperature)
def getdate():
date = datetime.datetime.now()
return(unicode(date.replace(microsecond=0)))
def logg():
if readtwo() == 0 or readone() == 0:
print "error!"
file = open("logg.txt", "a")
file.write("#ERROR")
file.write("\n")
else:
file = open("logg.txt", "a")
file.write(str(getdate()))
file.write(" ")
file.write(str(readone()))
file.write(" ")
file.write(str(readtwo()))
file.write("\n")
print str(getdate())
def copy():
commands.getstatusoutput('gnuplot logg.pg')
commands.getstatusoutput('gnuplot logg3d.pg')
commands.getstatusoutput('gnuplot logg3h.pg')
commands.getstatusoutput('gnuplot logg1d.pg')
commands.getstatusoutput('gnuplot logg7d.pg')
def main():
while 1 > 0:
time.sleep(55)
print readone(), " ", readtwo()
logg();
copy();
main();
Re: Temperaturvisning på hemsida (Raspberry-Pi)
MiaM - Sidospåret:
Jag har en Thermia Atec. Den är kopplad direkt till elementslingan utan acktank. Det finns en tank för varmvatten i den. Så svaret på frågan blir att den producerar värme och varmvatten "samtidigt".
Lagt en bild på min loggning här. Är fortfarande långt från klart. Vet inte riktigt ifall jag vill använda rrdtool eller inte.
http://img21.imageshack.us/img21/7749/rrdtool.jpg
Jag har en Thermia Atec. Den är kopplad direkt till elementslingan utan acktank. Det finns en tank för varmvatten i den. Så svaret på frågan blir att den producerar värme och varmvatten "samtidigt".
Lagt en bild på min loggning här. Är fortfarande långt från klart. Vet inte riktigt ifall jag vill använda rrdtool eller inte.
http://img21.imageshack.us/img21/7749/rrdtool.jpg
Re: Temperaturvisning på hemsida (Raspberry-Pi)
> Det har dock visat sig svårt att ta bort de felvärden som kommer från tempgivarna med jämna mellanrum(de visar exakt -0.062c).
Antingen inte logga dessa värden alls eller logga föregående värde en gång till (om man
måste ha en kontinuerlig tidslinje utan "hål").
Antingen inte logga dessa värden alls eller logga föregående värde en gång till (om man
måste ha en kontinuerlig tidslinje utan "hål").
Re: Temperaturvisning på hemsida (Raspberry-Pi)
... eller
plot "< tail -180 logg.txt | grep -v -0.062c" using 1:3 axes x1y1 lw 3 title "inomhus", "" using 1:4 axes x1y2 lw 3 title "utomhus"#
Den kommer då ge färre än 180 värden om det finns felaktiga mätvärden. Om man byter plats på grep och tail så får man exakt 180 värden men då kommer grep att tugga igenom hela filen. Det kan ta en stund om filen fått växa till sig.
Jag skulle nog övervägt att trycka in mätvärdena i en sql-databas, en sån är ju optimerad för att t.ex. plocka fram alla värden mellan två tidpunkter sorterade på tid o.s.v.
P.S. om du vill göra diverse akrobatiska konster med grafandet så verkar rrdtool kunna ordna grafer med extra allt inklusive gurka
plot "< tail -180 logg.txt | grep -v -0.062c" using 1:3 axes x1y1 lw 3 title "inomhus", "" using 1:4 axes x1y2 lw 3 title "utomhus"#
Den kommer då ge färre än 180 värden om det finns felaktiga mätvärden. Om man byter plats på grep och tail så får man exakt 180 värden men då kommer grep att tugga igenom hela filen. Det kan ta en stund om filen fått växa till sig.
Jag skulle nog övervägt att trycka in mätvärdena i en sql-databas, en sån är ju optimerad för att t.ex. plocka fram alla värden mellan två tidpunkter sorterade på tid o.s.v.
P.S. om du vill göra diverse akrobatiska konster med grafandet så verkar rrdtool kunna ordna grafer med extra allt inklusive gurka

Re: Temperaturvisning på hemsida (Raspberry-Pi)
Jag var ute och letade efter en just låda att montera min server i, dom lådor jag hittade var dock lite plastiga och inte så tilltalande. Tittade lite på elinstallationslådor också men fattade inte riktigt tycke för dessa heller. Tillslut hittade jag ett nyckelskåp på biltema! Jag kom även på tanken att eftersom det finns gott om plats över så vore kanske en UPS på sin plats
Skåpet är praktiskt att sätta på väggen, så spar man plats på skrivbordet.
Batteriet är på 12v och 7,2ah så det borde räcka en bra stund eftersom enheten drar under 1A. Med en verkningsgrad på 70% och en ström på 0.8A borde det hela klara sig i runt 15timmar. En switchande spänningsregulator för att ta ner spänningen till 5v utan att bränna av en massa energi är beställd, liksom lite genomföringar och dioder för att ordna laddningen av batteriet. Någon form av ventilation behövs nog också ordnas.


Batteriet är på 12v och 7,2ah så det borde räcka en bra stund eftersom enheten drar under 1A. Med en verkningsgrad på 70% och en ström på 0.8A borde det hela klara sig i runt 15timmar. En switchande spänningsregulator för att ta ner spänningen till 5v utan att bränna av en massa energi är beställd, liksom lite genomföringar och dioder för att ordna laddningen av batteriet. Någon form av ventilation behövs nog också ordnas.

Re: Temperaturvisning på hemsida (Raspberry-Pi)
Biltema: Nyckelskåp med lås artnr: 86667 för 100 SEK ?
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Japp!, med mellanplattan borttagen och en bygel för att hålla batteriet fastsvetsad.
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Nu är batteriladdningen ordnat, en enklare krets som sätter 13v över batteriet med hjälp av en zener diod. Ett 39ohms effektmotstånd begränsar strömmen. Egenteligen ska batteriet ha en laddningsspänning på 13,5v vid underhållsladdning så förmodligen får jag en något lägre laddningsgrad på batteriet. Med hjälp av ett par dioder leder strömmen ut från batteriet på "huvudskenan" där den högre spänningsmatningen från strömadaptern normalt kommer. Kanske skulle det gå att hitta någon diod med spänningsfall på 0.5V och sätta i serei med Zenerdioden?
Spänningsregleringskretsen brann dessvärre upp, en ny modul är beställd tillsammans med en USB-anslutning för att kunna föra över spänningen till Raspberryn.

Spänningsregleringskretsen brann dessvärre upp, en ny modul är beställd tillsammans med en USB-anslutning för att kunna föra över spänningen till Raspberryn.

Re: Temperaturvisning på hemsida (Raspberry-Pi)
Inte dumt med nyckelskåpet!
En säkring direkt vid batteriet kan vara en bra idé, gärna på den pol som inte är kopplad till chassie/jord (oftast pluspolen). "Hängsäkring" är bra sökord på t.ex. Biltema.
Zenerdiod direkt på batteriet är kanske inte jättebra, om du skulle ladda batteriet med annan laddare och direkt flytta över det till din krets så kan zenerdioden i värsta fall kanske paja och då börjar den med att kortsluta batteriet, utan säkringar så kan det bli riktigt dåligt då...
En säkring direkt vid batteriet kan vara en bra idé, gärna på den pol som inte är kopplad till chassie/jord (oftast pluspolen). "Hängsäkring" är bra sökord på t.ex. Biltema.
Zenerdiod direkt på batteriet är kanske inte jättebra, om du skulle ladda batteriet med annan laddare och direkt flytta över det till din krets så kan zenerdioden i värsta fall kanske paja och då börjar den med att kortsluta batteriet, utan säkringar så kan det bli riktigt dåligt då...