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?

Kod: Markera allt

rrdtool fetch energi.rrd AVERAGE -s -20min  
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)