Sida 5 av 7
Re: Mäta elförbrukning via 1wire och rrdtool.
Postat: 13 nov 2010, 21:06
av elf98
Hur loggar du datat?
Skall ge output i stil med:
Kod: Markera allt
energi
1289673960: 8,8910915187e-01
1289674020: 6,9721466225e-01
1289674080: 4,4480624745e-01
1289674140: 4,0351116792e-01
1289674200: 4,1220722856e-01
1289674260: 3,8663956067e-01
1289674320: 4,0213675128e-01
1289674380: 7,5212285680e-01
1289674440: 8,6897709039e-01
1289674500: 8,9033902202e-01
1289674560: 4,6740064952e-01
1289674620: 4,0380276073e-01
1289674680: 3,9599609384e-01
1289674740: 3,8616644108e-01
1289674800: 3,9569691457e-01
1289674860: 7,9105189668e-01
1289674920: 8,8664217021e-01
1289674980: 6,8099215491e-01
1289675040: 4,2757926938e-01
1289675100: 4,0291553924e-01
1289675160: -nan
Re: Mäta elförbrukning via 1wire och rrdtool.
Postat: 13 nov 2010, 21:38
av Loranga
jag får nan värden rakt av
Re: Mäta elförbrukning via 1wire och rrdtool.
Postat: 13 nov 2010, 21:50
av elf98
Samma fråga igen:
Hur loggar du datat?
Re: Mäta elförbrukning via 1wire och rrdtool.
Postat: 14 nov 2010, 11:49
av Loranga
Hmm jag hade tydligen tappat värderna på tempsensorerna också... men det löste sig efter att jag drog ur strömmen i min dockstar och staratde om den
Re: Mäta elförbrukning via 1wire och rrdtool.
Postat: 14 nov 2010, 12:09
av Loranga
Japp du har rätt det blir något fel när jag försöker att uppdatera energi.rrd
Kod: Markera allt
root@OpenWrt:/mnt/1wire# ls
10.B27484010800 81.AFDF2D000000 settings structure
10.CC8184010800 alarm simultaneous system
1D.90C50D000000 bus.0 statistics uncached
root@OpenWrt:/mnt/1wire#
Kod: Markera allt
root@OpenWrt:~/martin/rrddata# ls
create_energi_rrd.sh dump.xml outdoor_temp.rrd
create_indoor_rrd.sh energi.rrd outside_temp.rrd
create_outdoor_rrd.sh indoor_temp.rrd update_energi.sh
root@OpenWrt:~/martin/rrddata# ./update_energi.sh
./update_energi.sh: line 7: unexpected EOF while looking for matching `''
./update_energi.sh: line 10: syntax error: unexpected end of file
root@OpenWrt:~/martin/rrddata#
update_energi.sh
Kod: Markera allt
#!/bin/bash
#Exempel för en elmätare med 10000 blink per kWh. OBS . i stället för ,
OMRAKNINGSFAKTOR=0.1
COUNT=`cat /mnt/1wire/uncached/1D.90C50D000000/counters.A|sed -e s/" "//g`
#Lite magi för att räkna med flyttal i BASH
VALUE=`echo "$OMRAKNINGSFAKTOR $COUNT" |awk '{printf "%.2f", ($1 * $2)}'`
/usr/bin/rrdtool update energi.rrd N:$VALUE'
EDIT:
Jag tog bort ` från sista raden så att resultatet blev:
Kod: Markera allt
/usr/bin/rrdtool update energi.rrd N:$VALUE
Då får jag ett annat fel istället när jag kör update_energi.sh
Kod: Markera allt
[root@OpenWrt:~/martin/rrddata# ./update_energi.sh
ERROR: not a simple integer: '2384.10'
root@OpenWrt:~/martin/rrddata# ./update_energi.sh
ERROR: not a simple integer: '2394.20'
root@OpenWrt:~/martin/rrddata# rrdtool fetch energi.rrd AVERAGE -s -20min
timestamp energi
1289728560: nan
1289728620: nan
1289728680: nan
1289728740: nan
1289728800: nan
1289728860: nan
1289728920: nan
1289728980: nan
1289729040: nan
1289729100: nan
1289729160: nan
1289729220: nan
1289729280: nan
1289729340: nan
1289729400: nan
1289729460: nan
1289729520: nan
1289729580: nan
1289729640: nan
1289729700: nan
1289729760: nan
1289729820: nan
Re: Mäta elförbrukning via 1wire och rrdtool.
Postat: 14 nov 2010, 16:42
av elf98
Ops igen!
Ändra raden
Kod: Markera allt
VALUE=`echo "$OMRAKNINGSFAKTOR $COUNT" |awk '{printf "%.2f", ($1 * $2)}'`
till
Kod: Markera allt
VALUE=`echo "$OMRAKNINGSFAKTOR $COUNT" |awk '{printf "%.0f", ($1 * $2)}'`
Re: Mäta elförbrukning via 1wire och rrdtool.
Postat: 14 nov 2010, 17:05
av Loranga
Nu fungerar det ju! Ja eller iallafall betydligt bättre än förut grafen visar 139,25W just nu vilket verkar lite lågt...
EDIT: Ursäkta mig jag trodde att "Exempel för en elmätare med 10000" var en felskrivning och stod för 1000 blink. Eftersom jag har 1000 blink/sekund antar jag att jag ska ändra till omräkningsfaktorn till 1
Tror du att det finns någon lösning att komma förbi problemet som jag har med VDEF?
Re: Mäta elförbrukning via 1wire och rrdtool.
Postat: 14 nov 2010, 17:28
av elf98
Helt korrekt, omräkningsfaktorn är 1 för 1000 blink.
Gällande VDEF, den här:
http://www.temperatur.nu/forum/post11506.html#p11506 lösningen fungerar inte ?
Re: Mäta elförbrukning via 1wire och rrdtool.
Postat: 14 nov 2010, 17:37
av Loranga
Problemet som jag hade när jag körde rrdtool 1.2.30 är den att jag får felet "rrdtool: can't resolve symbol 'posix_fadvise'" genom att nergradera till en tidigare version så "löste" det sig. Jag vet inte riktigt vad det beror på, om det är openwrt eller det faktum att jag kör på en dockstar som ställer till det.
Jag är lite sugen på att skaffa en till dockstar och prova installera debian på den och se om det hjälper.
Re: Mäta elförbrukning via 1wire och rrdtool.
Postat: 14 nov 2010, 19:12
av Loranga
hmm min uppdatering via crontab verkar strula. Om jag uppdaterar och skapar grafen via scriptet så fungerar det
Kod: Markera allt
root@OpenWrt:~/martin/bin# ls /root/martin/rrddata
create_energi_rrd.sh dump.xml outdoor_temp.rrd
create_indoor_rrd.sh energi.rrd outside_temp.rrd
create_outdoor_rrd.sh indoor_temp.rrd update_energi.sh
root@OpenWrt:~/martin/bin# ls /root/martin/bin
create_energi_graph.sh create_outdoor_graph.sh get_outdoor_temp.sh
create_indoor_graph.sh get_indoor_temp.sh run_shell.sh
root@OpenWrt:~/martin/bin#
crontab
Kod: Markera allt
0 * * * * /etc/init.d/luci_fixtime > /dev/null 2> /dev/null
0 * * * * /bin/sh /etc/hotplug.d/iface/20-ntpclient > /dev/null 2> /dev/
*/5 * * * * /root/martin/bin/get_outdoor_temp.sh
*/5 * * * * /root/martin/bin/get_indoor_temp.sh
*/5 * * * * /root/martin/rrddata/update_energi.sh
*/5 * * * * /root/martin/bin/create_energi_graph.sh
*/5 * * * * /root/martin/bin/create_outdoor_graph.sh
*/5 * * * * /root/martin/bin/create_indoor_graph.sh
Re: Mäta elförbrukning via 1wire och rrdtool.
Postat: 14 nov 2010, 19:14
av elf98
Sökvägarna i scripten stämmer antagligen inte.
Re: Mäta elförbrukning via 1wire och rrdtool.
Postat: 15 nov 2010, 19:38
av Loranga
Det knepiga är att scripten fungerar var för sig.
Om jag kör fetch så har jag bara nan värden men om jag kör update_energi.sh så får jag in värden och om jag sedan kör create_energi_graph.sh så kommer det en graf. Men det fungerar inte per automatik.
Kod: Markera allt
0 * * * * /etc/init.d/luci_fixtime > /dev/null 2> /dev/null
0 * * * * /bin/sh /etc/hotplug.d/iface/20-ntpclient > /dev/null 2> /dev/
*/5 * * * * /mnt/usb/get_outdoor_temp.sh
*/5 * * * * /mnt/usb/get_indoor_temp.sh
*/5 * * * * /mnt/usb/update_energi.sh
*/5 * * * * /mnt/usb/create_energi_graph.sh
*/5 * * * * /mnt/usb/create_outdoor_graph.sh
*/5 * * * * /mnt/usb/create_indoor_graph.sh
Re: Mäta elförbrukning via 1wire och rrdtool.
Postat: 15 nov 2010, 20:16
av daromer
Hur har du kört dem?
Om du kollar din mail på burken så borde du få ett mail vad som ev säger är fel. Alternativt kolla i loggarna på burken. Gissar också på sökvägar som är fel. Crontab har inte samma sökvägar som när du kör som t ex root användaren så se till att alla binärer du exekverar i dina script har fullständiga sökvägar!
Re: Mäta elförbrukning via 1wire och rrdtool.
Postat: 15 nov 2010, 20:27
av Loranga
daromer skrev:Hur har du kört dem?
Om du kollar din mail på burken så borde du få ett mail vad som ev säger är fel. Alternativt kolla i loggarna på burken. Gissar också på sökvägar som är fel. Crontab har inte samma sökvägar som när du kör som t ex root användaren så se till att alla binärer du exekverar i dina script har fullständiga sökvägar!
Jag har kört dem genom att skriva ./update_energi.sh och ./create_energi_graph.sh
Mail har jag inte och den enda felloggen som jag känner till är logread
Kod: Markera allt
Nov 15 19:15:01 OpenWrt cron.info crond[1558]: crond: USER root pid 11595 cmd /mnt/usb/get_outdoor_temp.sh
Nov 15 19:15:01 OpenWrt cron.info crond[1558]: crond: USER root pid 11601 cmd /mnt/usb/get_indoor_temp.sh
Nov 15 19:15:01 OpenWrt cron.info crond[1558]: crond: USER root pid 11603 cmd /mnt/usb/update_energi.sh
Nov 15 19:15:01 OpenWrt cron.info crond[1558]: crond: USER root pid 11605 cmd /mnt/usb/create_energi_graph.sh
Nov 15 19:15:01 OpenWrt cron.info crond[1558]: crond: USER root pid 11608 cmd /mnt/usb/create_outdoor_graph.sh
Nov 15 19:15:01 OpenWrt cron.info crond[1558]: crond: USER root pid 11613 cmd /mnt/usb/create_indoor_graph.sh
Crontab har inte samma sökvägar som när du kör som t ex root användaren så se till att alla binärer du exekverar i dina script har fullständiga sökvägar!
Ok det förklarar en del, kan det vara att sista raden i update_energi.sh som ställer till det? (rrdtool ligger i /usr/bin det har jag kollat)
Kod: Markera allt
#!/bin/bash
#Exempel för en elmätare med 1000 blink per kWh. OBS . i stället för ,
OMRAKNINGSFAKTOR=1
COUNT=`cat /mnt/1wire/uncached/1D.90C50D000000/counters.A|sed -e s/" "//g`
#Lite magi för att räkna med flyttal i BASH
VALUE=`echo "$OMRAKNINGSFAKTOR $COUNT" |awk '{printf "%.0f", ($1 * $2)}'`
/usr/bin/rrdtool update energi.rrd N:$VALUE
Re: Mäta elförbrukning via 1wire och rrdtool.
Postat: 15 nov 2010, 20:57
av daromer
Testa även den raden du har i crontab. Dvs stå i t ec / och kör sedan hela raden från crontab (Utan alla *or)