source: de.wigbels.ruby/hothotread/archiv/hothotread.rb@ f63674a

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

Stromzaehler

  • Property mode set to 100644
File size: 2.0 KB
Line 
1#!/usr/bin/env ruby
2#
3# Author: Norbert Wigbels - foobla.wigbels.de/uber-foobla
4#
5# HotHotRead continously reads the status of a
6# reed contact attached to the avr-net-io
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
21#------------------------------------------
22require 'logger'
23require 'socket'
24require 'net/http'
25
26#------------------------------------------
27class HotHotRead < Logger::Application
28 attr_accessor :socket, :socketaddr
29
30 def initialize(application_name)
31 super(application_name)
32 @socket = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)
33 @sockaddr = Socket.sockaddr_in(2701, '192.168.14.42')
34 end
35
36 def run
37 begin
38 @socket.connect(@sockaddr)
39 high2low = false;
40 while true do
41 @socket.print "io get pin 0\r\n"
42 rawdata = @socket.recvfrom(128)
43 # data contains "port 0: 0xfe"; extract last part
44 data = rawdata.to_s.split(" ")[2]
45 # we are only interested in the changes from high to low of the reed sensor
46 if (data=="0xff")
47 high2low = true
48 else
49 if (high2low==true)
50 high2low = false
51 Net::HTTP.get(URI.parse('http://www.wigbels.net/cgi-bin/hhw.rb?sensorid=1&data=10'))
52 # fixme: response.body auswerten
53 # bei fehler, lokales backlog schreibe
54 log(INFO, 'added 100 liter of gas to sensor-database')
55 end
56 end
57 sleep(0.2)
58 end
59 # and terminate the connection when we're done
60 rescue => msg
61 log(ERROR, "error: #{msg}")
62 retry
63 ensure
64 @socket.close
65 end
66 #puts "Filename: "+__FILE__.to_s
67 #puts "Linenumber: "+__LINE__.to_s
68 #log(WARN, 'warning', 'mymethod' )
69 #@log.error('my_method2') { 'Error!' }
70 end
71end
72
73
74#------------------------------------------
75status = HotHotRead.new("HotHotRead").start
76
77#if status != 0
78# puts "Some error occured."
79#end
Note: See TracBrowser for help on using the repository browser.