source: de.wigbels.ruby/hotcoldrain/hotcoldrain.rb @ 516b934

Last change on this file since 516b934 was 516b934, checked in by njw <njw@…>, 9 years ago

HotColdRain? initial

  • Property mode set to 100644
File size: 1.9 KB
Line 
1#!/usr/bin/env ruby
2#
3# Author: Norbert Wigbels - foobla.wigbels.de/uber-foobla
4#
5# HotColdRain continously reads output of USB-WDE1
6# and pushes data to mosquitto-db
7#
8# todos:
9#
10
11#------------------------------------------
12# Tainted mode 0-4
13$SAFE=0
14
15
16#------------------------------------------
17require 'logger'
18require 'serialport'
19require 'mqtt'
20
21#------------------------------------------
22class HotColdRain < Logger::Application
23  attr_accessor :temp1, :humidity1, :serialport
24
25  def initialize(application_name)
26    super(application_name)
27    @serialport = SerialPort.new("/dev/ttyUSB0", 9600, 8, 1, SerialPort::NONE)
28  end
29
30  def run
31    begin
32      while true do
33        openformat = @serialport.readline
34        datagrams = openformat.split(';')
35#        puts openformat
36        puts "TemperaturUnten: " + datagrams[3]
37        puts "LuftfeuchtigkeitUnten: " + datagrams[11]
38        puts
39        puts "TemperaturOben: " + datagrams[4]
40        puts "LuftfeuchtigkeitOben: " + datagrams[12]
41        puts       
42        puts "TemperaturAussen: " + datagrams[19]
43        puts "LuftfeuchtigkeitAussen: " + datagrams[20]
44        puts "Windgeschwindigkeit km/h: " + datagrams[21]
45        puts "Niederschlag: " + datagrams[22]
46        puts "Regen ja/nein: " + datagrams[23]       
47        puts "---------------------"
48        MQTT::Client.connect('mqtt://notwist:pixies@wigbels.net') do |c|
49          c.publish('oben/temperatur', datagrams[3])
50        end
51        #log(INFO, 'added 100 liter of gas to sensor-database')
52      end
53      @serialport.close
54    rescue => msg
55      log(ERROR, "error: #{msg}")
56      retry
57    ensure
58      @serialport.close
59    end
60#    puts "Filename: "+__FILE__.to_s
61#    puts "Linenumber: "+__LINE__.to_s
62#    log(WARN, 'warning',  'mymethod' )
63#    @log.error('my_method2') { 'Error!' }
64  end
65end
66
67
68#------------------------------------------
69status = HotColdRain.new("HotColdRain").start
70
71#if status != 0
72#  puts "Some error occured."
73#endd
74
75
76
77
78
79
Note: See TracBrowser for help on using the repository browser.