Skip to content

Instantly share code, notes, and snippets.

@joshskeen
Created December 26, 2013 16:58
Show Gist options
  • Save joshskeen/8136008 to your computer and use it in GitHub Desktop.
Save joshskeen/8136008 to your computer and use it in GitHub Desktop.
Phillips Hue hacking
require 'pry'
require 'twitter'
require 'mactts'
require 'hue'
hueclient = Hue::Client.new
last_text = ""
state = {}
light_on = false
hue = 0
colors = []
RED = 1000
GREEN = 25500
twitterclient = Twitter::REST::Client.new do |config|
config.consumer_key = "x"
config.consumer_secret = "x"
config.access_token = "x"
config.access_token_secret = "x"
end
while true
sleep 1
begin
new_text = twitterclient.search("#christmas").attrs[:statuses].last[:text]
new_text = new_text.gsub(/http.[^\s]*/, '') #remove urls
new_text = new_text.gsub(/#/, '') #remove hashtag symbols
new_text = new_text.gsub(/&[^;]+;*/, '') #remove html chars
new_text = new_text.gsub(/RT.*:/, '') #remove RT
new_text = new_text.gsub(/([\u1F30-\u1F5F])/, '') #emoji
if new_text != last_text
last_text = new_text
puts "got new text! trigger lights, and speak the new tweet!"
puts "tweet was: " + last_text
(1..3).each do | i |
hueclient.lights.each do | light |
color = colors.last == GREEN ? RED : GREEN
colors.push(color)
light.set_state({
brightness: 255,
hue: colors.last,
sat: 255,
transitiontime: 2
})
sleep 0.1
end
end
Mac::TTS.say(last_text, :alex)
end
rescue Exception => e
puts e
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment