gpt4 book ai didi

ruby - 如何在 Ruby 上使用 Xively API 库?

转载 作者:太空宇宙 更新时间:2023-11-03 18:20:48 25 4
gpt4 key购买 nike

我正在尝试从 ruby​​ 上传一些数据到 xively,我确实安装了所有的 gem,这个测试代码运行正常,但我设备的 xively 图表没有任何变化。

这个小代码是从一个更大的代码片段中分离出来的,该代码运行良好,并使用用 php 编写的界面将数据发布到我的服务器,但现在我想使用 xively 来记录数据。

我确实从此代码、API_KEY、Feed 编号和 Feed 名称中删除了我的个人数据。

#!/usr/bin/ruby

require 'rubygems'
require 'json'
require 'xively-rb'

##Creating the xively client instance
API_KEY = "MY_API_KEY_WAS_HERE"
client = Xively::Client.new(API_KEY)

#on an endless loop
while true

#n is a random float between 0 y 1
n = rand()

##Creating datapoint and sendig it to xively
puts "Creating datapoint "+Time.now.to_s+", "+n.to_s+" and sending it to xively"

datapoint = Xively::Datapoint.new(:at => Time.now, :value => n)

client.post('/api/v2/feeds/[number]/datastreams/[name]', :body => {:datapoints => [datapoint]}.to_json)

end

最好能得到一个关于如何使用该库的示例,我没有找到任何简洁的示例。

(有可能在代码中发现一些愚蠢的错误,如果是这样,没关系,因为我现在正在学习 ruby​​,如果不是很关键,请简单地指出它不要跑题,我很乐意以后研究学习)

我真的很期待一些答案,所以在此先感谢。

最佳答案

我从一个同学那里收到了一个有效的解决方案,它在一篇关于 Cosm 的测试版的帖子中,现在是 xively,以前也是 pachube。

我们花了大约两周的时间寻找这样的东西:

afulki.net more-on-ruby-and-cosm

#!/usr/bin/ruby

require 'xively-rb'
require 'json'
require 'rubygems'

class XivelyConnector
API_KEY = 'MY_API_KEY_HARD-CODED_HERE'

def initialize( xively_feed_id )
@feed_id = xively_feed_id

@xively_response = Xively::Client.get("/v2/feeds/#{@feed_id}.json", :headers => {"X-ApiKey" => API_KEY})
end

def post_polucion( sensor, polucion_en_mgxm3 )
return unless has_sensor? sensor

post_path = "/v2/feeds/#{@feed_id}/datastreams/#{sensor}/datapoints"
datapoint = Xively::Datapoint.new(:at => Time.now, :value => polucion_en_mgxm3.to_s )
response = Xively::Client.post(post_path,
:headers => {"X-ApiKey" => API_KEY},
:body => {:datapoints => [datapoint]}.to_json)
end

def has_sensor?( sensor )
@xively_response["datastreams"].index { |ds| ds["id"] == sensor }
end
end

使用那个类:

#!/usr/bin/ruby

require 'rubygems'
require 'json'
require 'xively-rb'
require_relative 'XivelyConnector'

xively_connector = XivelyConnector.new( MY_FEED_ID_HERE )

while true
n = rand()
xively_connector.post_polucion 'Sensor-Asdf', n

sleep 1

end

关于ruby - 如何在 Ruby 上使用 Xively API 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18733081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com