bundlewrap/bundles/stromzaehler/files/stromzaehler
2021-10-30 13:12:36 +02:00

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