A Ruby client for use with with io.adafruit.com.
Add this line to your application's Gemfile:
gem 'adafruit-io'
And then execute:
$ bundle
Or install it yourself as:
$ gem install adafruit-io
Each time you use the library, you'll want to pass your AIO Key to the client.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'Feeds are the core of the Adafruit IO system. The feed holds metadata about data that gets pushed, and you will have one feed for each type of data you send to the system. You can have separate feeds for each sensor in a project, or you can use one feed to contain JSON encoded data for all of your sensors.
You have two options here, you can create a feed by passing a feed name, or you can pass an object if you would like to define more properties. If you would like to find information about what properties are available, please visit the Adafruit IO feed API docs.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
puts aio.feeds.create({:name => "Temperature"})You can get a list of your feeds by using the aio.feeds.retrieve method.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
#get all feeds
puts aio.feeds.retrieveYou can also get a specific feed by ID, key, or name by using the aio.feeds.retrieve(id) method.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
#get a single feed
feed = aio.feeds.retrieve("Temperature")
puts feed.name
puts feed.last_valueYou can update feed properties by retrieving a feed, and subsequently calling the save method.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
#get the feed
feed = aio.feeds.retrieve("Temperature")
feed.name = "adsfsdff"
feed.description = "hey hey"
feed.saveYou can delete a feed by ID, key, or name by retrieving a feed, and subsequently calling the delete method.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
feed = aio.feeds.retrieve("Temperature")
puts feed.deleteData represents the data contained in feeds. You can read, add, modify, and delete data. There are also a few convienient methods for sending data to feeds and selecting certain pieces of data.
Data can be created after you create a feed, by using the
aio.feeds(id).data.create(value) method.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
data = aio.feeds("Temperature").data.create({:value => 11})
puts data.inspectYou can get all of the data data by using the aio.feeds(187).data.retrieve method. The
callback will be called with errors and the data array as arguments.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
data = aio.feeds(187).data.retrieve
puts data.inspectYou can also get a specific value by ID by using the aio.feeds(id).data.retrieve(id) method.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
data = aio.feeds(187).data.retrieve(288718)
puts data.inspectValues can be updated by retrieving the data, updating the property, and subsequently calling the save method.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
#get the feed
data = aio.feeds("Temperature").data.last
data.value = "adsfsdff"
data.saveValues can be deleted by retrieving the data, and calling the delete method.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
data = aio.feeds(187).data.retrieve(288718)
puts data.deleteThere are a few helper methods that can make interacting with data a bit easier.
You can use the aio.feeds(id).data.send_data(value) method to find or create the feed based on the name passed,
and also save the value passed.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
data = aio.feeds("Test").data.send_data({value: 5})
puts data.inspectYou can get the last inserted value by using the aio.feeds(id).data.last method.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
data = aio.feeds(187).data.last
puts data.inspectYou can get the first inserted value that has not been processed by using the aio.feeds(id).data.next method.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
data = aio.feeds(187).data.next
puts data.inspectYou can get the the last record that has been processed by using the aio.feeds(id).data.previous method.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
data = aio.feeds(187).data.previous
puts data.inspectGroups allow you to update and retrieve multiple feeds with one request. You can add feeds to multiple groups.
You can create a group by passing an object of group properties. If you would like to find information about what properties are available, please visit the Adafruit IO group API docs.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
puts aio.groups.create({:name => "Greenhouse"})You can get a list of your groups by using the aio.groups.retrieve method.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
#get all groups
#puts aio.groups.retrieveYou can also get a specific group by ID, key, or name by using the aio.groups.retrieve(id) method.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
#get a single group
group = aio.groups.retrieve("First Group")
puts group.name
puts group.inspectYou can update group properties by retrieving a group, updating the object, and using the save method.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => '463c8fc334cfb19318eAIO_KEY_HEREa0a17c01f5b985f77f545'
#get the group
group = aio.groups.retrieve("Greenhouse")
group.name = "Gymnasium"
group.description = "hey hey"
group.save
group.name = "Greenhouse"
group.description = "new description"
group.saveYou can delete a group by ID, key, or name by retrieving the group, and subsequently calling the delete method.
require 'adafruit/io'
# create an instance
aio = Adafruit::IO::Client.new :key => 'AIO_KEY_HERE'
group = aio.groups.retrieve("Greenhouse")
puts group.deleteCopyright (c) 2014 Adafruit Industries. Licensed under the MIT license.
- Fork it ( http://github.com/adafruit/io-client-ruby/fork )
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request