Created
December 26, 2013 16:58
-
-
Save joshskeen/8136008 to your computer and use it in GitHub Desktop.
Phillips Hue hacking
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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