source: de.wigbels.ruby/hothotread/hothotpiper.rb @ c22952c

Last change on this file since c22952c was c22952c, checked in by Norbert Wigbels <njw@…>, 8 years ago

Stromzaehler

  • Property mode set to 100644
File size: 1.2 KB
Line 
1#!/usr/bin/env ruby
2#
3# Author: Norbert Wigbels - foobla.wigbels.de/uber-foobla
4#
5# HotHotPiper continously reads the status of a
6# reed contact attached to the Raspberry Pi GPIO
7#
8# The reed measures gas usage.
9#
10# A magig URL is formed and called; the url
11# stores the sensor-data to wigbels.net
12#
13# todo: status-led
14#
15
16#------------------------------------------
17# Tainted mode 0-4
18$SAFE=0
19
20#------------------------------------------
21require 'pi_piper'
22include PiPiper
23
24$mypath = File.expand_path(File.dirname(__FILE__))
25
26
27def last_rrd_count
28  val = 0.0
29  handle = IO.popen("rrdtool lastupdate #{$mypath}/power.rrd")
30  handle.each_line do |line|
31    m = line.match("^[0-9]*: ([0-9.]*) [0-9.]*")
32    if m
33      val = m[1].to_f
34      break
35    end
36  end
37  return val
38end
39
40
41watch :pin => 4, :trigger => :falling do 
42  puts('added 10 liter of gas to sensor-database')
43  system("rrdtool update #{$mypath}/gas.rrd N:10")
44end
45
46watch :pin => 11, :trigger => :falling  do
47  puts('updated power consumption')
48  $counter = $counter + $trigger_step
49  trigger_update = $trigger_step * 3600000.0
50  system("rrdtool update #{$mypath}/power.rrd N:#{$counter}:#{trigger_update}")
51end
52
53$trigger_step = 1.0 / 96
54$counter = last_rrd_count
55
56PiPiper.wait
Note: See TracBrowser for help on using the repository browser.