From 823e7d5c35c56a6bd6a90acd5d95508b53ab2cd8 Mon Sep 17 00:00:00 2001 From: Joe Robinson Date: Sun, 17 Feb 2019 21:55:11 +0000 Subject: Handle multiple devices --- scarecrow.rb | 18 ++++++++++-------- views/index.erb | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/scarecrow.rb b/scarecrow.rb index 498da9d..34b8125 100644 --- a/scarecrow.rb +++ b/scarecrow.rb @@ -33,6 +33,7 @@ end def init DataMapper.auto_migrate! DataMapper.auto_upgrade! + # sleep 10 Thread.new do MQTT::Client.connect('192.168.0.59') do |c| c.subscribe('+/temperature', '+/humidity') @@ -49,7 +50,7 @@ end def handle_msg(topic, msg) puts "#{topic}: #{msg}" - topic_parts = topic.split(",") + topic_parts = topic.split("/") device_id = topic_parts[0] type = topic_parts[-1] if type == "humidity" @@ -79,8 +80,8 @@ get '/' do @humidity_prop = Humidity.last(device: "cricket0")[:value] @temp_air = Temperature.last(device: "mercury")[:value] @humidity_air = Humidity.last(device: "mercury")[:value] - time_prop = Temperature.last(device: "mercury")[:value] - time_air = Temperature.last(device: "cricket0")[:value] + time_prop = Temperature.last(device: "mercury")[:timestamp] + time_air = Temperature.last(device: "cricket0")[:timestamp] @time_formatted_prop = time_prop.strftime("%A, %d %b %Y %l:%M %p") @time_formatted_air = time_air.strftime("%A, %d %b %Y %l:%M %p") erb :index @@ -88,8 +89,9 @@ get '/' do end get '/temperature/:device_id' do - device_id = "mercury" if (device_id == "air" || device_id == "kitchen") - device_id = "cricket0" if (device_id == "propagator") + device_id = "mercury" if (params[:device_id] == "air" || params[:device_id] == "kitchen") + device_id = "cricket0" if (params[:device_id] == "propagator") + device_id ||= params[:device_id] temp = Temperature.last(device: device_id)[:value] return "#{temp}" end @@ -108,9 +110,9 @@ get '/metrics' do temp_air = Temperature.last(device: "mercury")[:value] humidity_air = Humidity.last(device: "mercury")[:value] "humidity.air #{humidity_air}\n - humidity.propagator #{humidity_prop}\n - temperature.air #{temp_air}\n - temperature.propagator #{temp_prop}" +humidity.propagator #{humidity_prop}\n +temperature.air #{temp_air}\n +temperature.propagator #{temp_prop}" end init diff --git a/views/index.erb b/views/index.erb index bbe7b81..8f7eb16 100644 --- a/views/index.erb +++ b/views/index.erb @@ -8,7 +8,7 @@

thebluegarden

Kitchen: <%= @temp_air %>°C and <%= @humidity_air %>% humidity at <%= @time_formatted_air %>

-

Propagator: <%= @temp_prop %>°C and <%= @humidity_air %>% humidity at <%= @time_formatted_prop %>

+

Propagator: <%= @temp_prop %>°C and <%= @humidity_prop %>% humidity at <%= @time_formatted_prop %>

-- cgit v1.2.3