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
 | 
