module Adafruit::IO::Client::Data
Public Instance Methods
data(*args)
click to toggle source
Get all data for a feed, may paginate.
# File lib/adafruit/io/client/data.rb, line 68 def data(*args) username, arguments = extract_username(args) feed_key = get_key_from_arguments(arguments) query = get_query_from_arguments arguments, %w(start_time end_time limit) get api_url(username, 'feeds', feed_key, 'data'), query end
data_chart(*args)
click to toggle source
Get charting data for a feed.
# File lib/adafruit/io/client/data.rb, line 77 def data_chart(*args) username, arguments = extract_username(args) feed_key = get_key_from_arguments(arguments) query = get_query_from_arguments arguments, %w(start_time end_time limit hours resolution) get api_url(username, 'feeds', feed_key, 'data', 'chart'), query end
datum(*args)
click to toggle source
Get a single data point.
# File lib/adafruit/io/client/data.rb, line 86 def datum(*args) username, arguments = extract_username(args) feed_key = get_key_from_arguments(arguments) data_id = arguments.shift get api_url(username, 'feeds', feed_key, 'data', data_id) end
last_data(*args)
click to toggle source
Move the stream processing pointer to and retrieve the last (newest) data point available.
# File lib/adafruit/io/client/data.rb, line 113 def last_data(*args) username, arguments = extract_username(args) feed_key = get_key_from_arguments(arguments) get api_url(username, 'feeds', feed_key, 'data', 'last') end
next_data(*args)
click to toggle source
Retrieve the next unprocessed data point.
# File lib/adafruit/io/client/data.rb, line 95 def next_data(*args) username, arguments = extract_username(args) feed_key = get_key_from_arguments(arguments) get api_url(username, 'feeds', feed_key, 'data', 'next') end
prev_data(*args)
click to toggle source
Retrieve the previously processed data point. This method does not move the stream pointer.
# File lib/adafruit/io/client/data.rb, line 104 def prev_data(*args) username, arguments = extract_username(args) feed_key = get_key_from_arguments(arguments) get api_url(username, 'feeds', feed_key, 'data', 'prev') end
send_batch_data(*args)
click to toggle source
Send a batch of data points.
Points can either be a list of strings, numbers, or hashes with the keys [ value, created_at OPTIONAL, lat OPTIONAL, lon OPTIONAL, ele OPTIONAL ]
# File lib/adafruit/io/client/data.rb, line 50 def send_batch_data(*args) username, arguments = extract_username(args) feed_key = get_key_from_arguments(arguments) values = arguments.shift if values.nil? || !values.is_a?(Array) raise "expected batch values to be an array" end if !values.first.is_a?(Hash) # convert values to hashes with single key: 'value' values = values.map {|val| {value: val}} end post api_url(username, 'feeds', feed_key, 'data', 'batch'), data: values end
send_data(*args)
click to toggle source
Add data to a feed.
Params:
- feed_key: string - value: string or number - location (optional): {lat: Number, lon: Number, ele: Number} - created_at (optional): iso8601 date time string.
# File lib/adafruit/io/client/data.rb, line 14 def send_data(*args) username, arguments = extract_username(args) feed_key = get_key_from_arguments(arguments) value = arguments.shift attrs = { value: value } if arguments.size > 0 && arguments.first.is_a?(Hash) location = arguments.shift if location[:lat] && location[:lon] attrs[:lat] = location[:lat] attrs[:lon] = location[:lon] attrs[:ele] = location[:ele] end end if arguments.size > 0 if arguments.first.is_a?(String) created_at = arguments.shift attrs[:created_at] = created_at elsif arguments.first.is_a?(Time) created_at = arguments.shift attrs[:created_at] = created_at.utc.iso8601 end end post api_url(username, 'feeds', feed_key, 'data'), attrs end