Een beetje aan het zoeken geweest, opensunny kan ik geen pincode meegeven, en de mijne is geen 0000.mcB schreef op donderdag 14 maart 2013 @ 16:39:
Hmm AC spanning, die waarde kan ik wel gokken. Dat is het uitlezen niet echt waard
Ik gebruik OpenSunny. Die tool schrijft de waarden echter alleen naar je console.
Na wat zoeken kwam ik sb_bt tegen welke csv files aanmaakt, waar ook diverse andere informatie in staat zoals de frequentie, DC spanning, DC stroom. Nu kan ik dus ook de efficientie in de grafiek plakken.
Ook meteen maar de AC spanning in de grafiek erbij zetten als ik bezig ben, deze fluctueert nogal hier. De UPS schakelt regelmatig bij met lage netspanning.
Het cron script dat smatool runt en de waarden in de database zet, daarna run ik het extra shell script die de rest van de waarden upload naar PVoutput.
code:
1
2
3
4
5
6
7
8
9
10
11
| #!/bin/bash cd /home/seth/sma-bluetooth ./extra.sh |logger -t smatool_extra -p local5.info sleep 10 starttime="$(date +%Y-%m-%d) 00:00:00" endtime="$(date +'%Y-%m-%d %T')" ./smatool -from "$starttime" -to "$endtime" -repost 2>&1 | logger -t smatool -p local5.info |
Het extra.sh script
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| #!/bin/bash PIN="0000" TIME=`date +%s` RISE=`perl sunrise.pl -x 4.75 -y 52.9 -f %s|head -n1` DUSK=`perl sunrise.pl -x 4.75 -y 52.9 -f %s|tail -n1` if [ "$TIME" -lt "$RISE" ]; then exit 0 fi if [ "$TIME" -gt "$DUSK" ]; then exit 0 fi OUTPUT=`~/sb_bt/sb_bt -a 00:80:25:26:2D:2A -p "$PIN" -v` DATE=`date +%Y%m%d` TIME=`date +%H:%M` SID="10380" APIKEY="supersecret" ACPOWER=`echo $OUTPUT|egrep -oe 'Current kW: ([0-9.]+)'|awk -F: '{gsub(/ */,"",$2)}{print $2}'` DCVOLTAGE=`echo $OUTPUT|egrep -oe 'PV Volt: ([0-9.]+)'|awk -F: '{gsub(/ */,"",$2)}{print $2}'` ACVOLTAGE=`echo $OUTPUT|egrep -oe 'Net Volt: ([0-9.]+)'|awk -F: '{gsub(/ */,"",$2)}{print $2}'` DCCURRENT=`echo $OUTPUT|egrep -oe 'PV Ampere: ([0-9.]+)'|awk -F: '{gsub(/ */,"",$2)}{print $2}'` FREQUENCY=`echo $OUTPUT|egrep -oe 'Net Freq: ([0-9.]+)'|awk -F: '{gsub(/ */,"",$2)}{print $2}'` DCPOWER=`calc -p "round($DCVOLTAGE * $DCCURRENT)"` if [ -z "$DCVOLTAGE" ]; then exit 0 fi if [ "$DCPOWER" -gt "0" ]; then EFFICIENCY=`calc -p "round( ((($ACPOWER * 1000)/ $DCPOWER) * 100), 2)"` EFFSTR="-d "v10=$EFFICIENCY"" fi curl -d "d="$DATE"" -d "t="$TIME"" -d "v1=0" -d "v2="$DCPOWER"" \ -d "v6="$DCVOLTAGE"" -d "v7="$DCCURRENT"" -d "v8="$FREQUENCY"" -d "v9="$ACVOLTAGE"" $EFFSTR \ -H "X-Pvoutput-Apikey: "$APIKEY"" -H "X-Pvoutput-SystemId: "$SID"" http://pvoutput.org/service/r2/addstatus.jsp |
Super elegant is het niet, ik stuur eerst de extra data met een energie waarde van 0, daarna upload de smatool de nieuwe waarden en corrigeert deze. Ik heb het sunrise.pl script van hier http://pastebin.com/dZ1GMFY1
Idealiter zou sma-bluetooth uitgebreid moeten worden met de DC waarden procedures van sb_bt en dit ook in de mysql tabellen opgeslagen moeten worden. Te weinig verstand van C en op dit moment nog even niet de tijd ervoor genomen, doch niet onmogelijk. Wellicht nog een poging waard.
Je kan met de gekleurde vierkantjes onder de grafiek de andere mogelijkheden zien. Helaas komt Efficientie nog niet door, dat zou zo ook moeten gaan werken.