30 lines
969 B
Bash
30 lines
969 B
Bash
#!/bin/bash
|
|
|
|
impulse_per_watthour=2
|
|
ms_per_hour=3600000000000
|
|
gpio=$(gpiofind SCL1)
|
|
|
|
while gpiomon --num-events=1 --falling-edge $gpio 2&> /dev/null
|
|
do
|
|
last_timestamp=$timestamp
|
|
timestamp=$(date --utc +%s%N)
|
|
|
|
[ -z $last_timestamp ] && continue
|
|
|
|
delay=$(expr $timestamp - $last_timestamp)
|
|
impulse_per_hour=$(expr $ms_per_hour / $delay)
|
|
watt=$(expr $impulse_per_hour / $impulse_per_watthour)
|
|
|
|
echo "$delay $impulse_per_hour: $watt watts"
|
|
|
|
curl "https://${influxdb_domain}/api/v2/write?org=${influxdb_org}&bucket=${influxdb_bucket}&precision=ns" ${'\\'}
|
|
-X POST ${'\\'}
|
|
--header "Authorization: Token ${influxdb_token}" ${'\\'}
|
|
--header "Content-Type: text/plain; charset=utf-8" ${'\\'}
|
|
--header "Accept: application/json" ${'\\'}
|
|
--data-binary "powermeter,host=${node_name} watts=$watt $timestamp" ${'\\'}
|
|
2&> /dev/null &
|
|
|
|
# workaround: s0 seems to flicker some times
|
|
sleep 0.1
|
|
done
|