Skip to content

Commit 32ef22f

Browse files
committed
Add extra scripts
1 parent c04cbd6 commit 32ef22f

File tree

16 files changed

+298
-6
lines changed

16 files changed

+298
-6
lines changed

BetterLinky/extra/linky.plot

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,30 @@
1+
if (!exists("filename")) quit
2+
13
set style line 1 lc rgb '#A0A0A0' pt 1 ps 0.5 lt 1 lw 0.2
24
set style line 2 lc rgb '#FF0000' pt 1 ps 0.5 lt 1 lw 1
35
set style line 3 lc rgb '#0000FF' pt 1 ps 0.5 lt 1 lw 1
46
set style line 11 lc rgb '#808080' lt 0 lw 1
5-
set border 3 back ls 11
7+
set border back ls 11
68
set tics nomirror
79

810
set autoscale xfix
9-
set ytics 100
10-
set xtics 7200
11+
set ytics 100 format "% gW"
12+
set y2tics 100 format "% gW"
13+
set xtics 3600
1114

1215
set datafile separator " "
13-
set terminal png size 2200,800
16+
set terminal png size 33000,800
1417
set title "Watts over time"
1518
set ylabel "Watts"
1619
set xlabel "Date"
1720
set xdata time
1821
set timefmt "%s"
1922
set format x "(%d) %Hh"
20-
set key left top
23+
set key right top
2124
set grid
2225

2326
plot \
24-
"< awk -v date=`date +'%s'` '{if ($1 > date - 86400) print $0; }' log | go run go/thing.go" \
27+
filename \
2528
using 1:3 w linespoints ls 1 notitle, \
2629
'' using 1:4 w lines ls 2 title "5m average", \
2730
'' using 1:5 w lines ls 3 title "30m average" \

BetterLinky/extra/nc.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/sh
2+
3+
nc -l -k -w 5 4200 | tee -a log

BetterLinky/extra/separate.zsh

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#!/usr/bin/env zsh
2+
3+
set -e
4+
5+
if [ $# -eq 0 ]; then
6+
echo "We need an argument mate"
7+
return 1
8+
fi
9+
10+
i=$((0))
11+
beginning="$(date -r $(head -n 1 $1 | cut -d " " -f 1) "+%Y-%m-%d")T00:00:00"
12+
end=$(tail -n 1 $1 | cut -d " " -f 1)
13+
rm -rf "$1"-output
14+
mkdir "$1"-output
15+
16+
while true; do
17+
outfile="$1"-output/$(date -v +"$i"d -jf "%Y-%m-%dT%H:%M:%S" $beginning "+%Y-%m-%dT%H:%M:%S").txt
18+
awk -v date=$(date -v +"$i"d -jf "%Y-%m-%dT%H:%M:%S" $beginning "+%s") '{if ($1 >= date && $1 < date + 86400) print $0;}' $1 > $outfile
19+
if [ ! -s ${outfile} ]; then
20+
rm $outfile
21+
fi
22+
i=$((i = i+1))
23+
if [[ $(date -v +"$i"d -jf "%Y-%m-%dT%H:%M:%S" $beginning "+%s") -gt $end ]]; then
24+
break
25+
fi
26+
done

BetterLinky/extra/solar.plot

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
if (!exists("filename")) quit
2+
3+
set style line 1 lc rgb '#FF0000' pt 5 ps 1 lt 1 lw 1
4+
set style line 2 lc rgb '#00FF00' pt 5 ps 1 lt 1 lw 1
5+
set style line 11 lc rgb '#808080' lt 1
6+
set border back ls 11
7+
set tics nomirror
8+
9+
set style line 11 lc rgb '#808080' lt 0 lw 1
10+
set grid back ls 12
11+
12+
set auto fix
13+
set ytics format "% gV"
14+
set y2tics format "% gW"
15+
set xtics 3600
16+
17+
set datafile separator " "
18+
set terminal png size 10240,800
19+
set title "Production solaire"
20+
set ylabel "Voltage"
21+
set y2label "Watts"
22+
set xlabel "Date"
23+
set xdata time
24+
set timefmt "%s"
25+
set format x "(%d) %Hh"
26+
set key right top
27+
set grid
28+
29+
previous=1
30+
current=1
31+
shift(x) = (previous=current, current=x)
32+
yornothing(x,y) = (shift(x), abs(x-previous)<600?y:sqrt(0/0))
33+
34+
plot \
35+
filename \
36+
using 1:(yornothing($1,$2)) w dots ls 1 title "Volts",\
37+
'' using 1:(yornothing($1,$4)) w dots ls 2 axes x1y2 title "Watts" \

BetterLinky/extra/solar.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/sh
2+
3+
go run solarmeter.go | tee -a solarlog

BetterLinky/extra/solarmeter.go

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package main
2+
3+
import (
4+
"github.com/pkg/term"
5+
"encoding/binary"
6+
"fmt"
7+
"time"
8+
)
9+
10+
var serial *term.Term
11+
12+
type packetStruct struct {
13+
Voltage uint16
14+
Current int16
15+
Power int32
16+
Amphour uint32
17+
Watthour uint32
18+
}
19+
20+
var average struct {
21+
voltage, current, power float64
22+
count uint16
23+
beginning time.Time
24+
}
25+
26+
var correctHeader = [...]byte{170, 28, 1, 42}
27+
var buffer [4]byte
28+
29+
func main() {
30+
var err error
31+
serial, err := term.Open("/dev/cuaU0", term.Speed(57600), term.RawMode)
32+
33+
if err != nil {
34+
serial, err = term.Open("/dev/cuaU1", term.Speed(57600), term.RawMode)
35+
}
36+
if err != nil {
37+
panic(err)
38+
}
39+
serial.SetReadTimeout(time.Duration(time.Minute))
40+
average.beginning = time.Now()
41+
42+
var toRead byte
43+
for {
44+
err := binary.Read(serial, binary.BigEndian, &toRead)
45+
if err != nil {
46+
panic(err)
47+
}
48+
49+
buffer[3] = toRead
50+
if buffer == correctHeader {
51+
var packet packetStruct
52+
err := binary.Read(serial, binary.BigEndian, &packet)
53+
if err != nil {
54+
panic(err)
55+
}
56+
printPacket(&packet)
57+
buffer = [...]byte{0, 0, 0, 0}
58+
59+
} else {
60+
buffer[0] = buffer[1]
61+
buffer[1] = buffer[2]
62+
buffer[2] = buffer[3]
63+
}
64+
}
65+
}
66+
67+
func printPacket(packet *packetStruct) {
68+
if time.Now().Sub(average.beginning) <= time.Second { // Add to average
69+
average.voltage += float64(packet.Voltage) / 100
70+
average.current += float64(packet.Current) / 100
71+
average.power += float64(packet.Power) / 1000
72+
average.count++
73+
} else {
74+
fmt.Printf("%d %.3f %.2f %.2f\n", time.Now().Unix(), average.voltage / float64(average.count), average.current / float64(average.count), average.power / float64(average.count))
75+
average.voltage = 0
76+
average.current = 0
77+
average.power = 0
78+
average.count = 0
79+
average.beginning = time.Now()
80+
}
81+
}

BetterLinky/extra/watch.zsh

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/usr/bin/env zsh
2+
3+
set -e
4+
5+
while true; do
6+
./separate.zsh log
7+
cd log-output/
8+
for i in *.txt; do
9+
cat $i | ../minilinky > $(basename $i .txt).processed.txt
10+
gnuplot -e "filename='$(basename $i .txt).processed.txt'" ../linky.plot > $(basename $i .txt).png
11+
scp ./$(basename $i .txt).png cubox@cubox.dev:/www/cubox/graphs/linky/
12+
done
13+
cd ../
14+
rm -rf log-output/
15+
16+
./separate.zsh solarlog
17+
cd solarlog-output/
18+
for i in *.txt; do
19+
gnuplot -e "filename='$i'" ../solar.plot > $(basename $i .txt).png
20+
scp ./$(basename $i .txt).png cubox@cubox.dev:/www/cubox/graphs/solar/
21+
done
22+
cd ../
23+
rm -rf solarlog-output/
24+
sleep 3600
25+
done

thermocouple/extra/nc1.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/sh
2+
3+
nc -l -k -w 5 4201 | tee -a log1

thermocouple/extra/nc2.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/sh
2+
3+
nc -l -k -w 5 4202 | tee -a log2

thermocouple/extra/nc3.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/sh
2+
3+
nc -l -k -w 5 4203 | tee -a log3

0 commit comments

Comments
 (0)