Harmony Remote


(Realsol) #1

Any word on how the development is coming on the Harmony remote integration into ST?


(Im Brian) #2

Just out of curiosity: what devices are you planning on controlling?


(Realsol) #3

Right now, I only have lights with z-wave switches and some with regular switches with TCP bulbs installed.


(Im Brian) #4

And which devices are you hoping to expand control to with the Harmony?


(Realsol) #5

I no that ST is working on the Harmony Remote (they have 2 models that have hubs). I am not sure what they were hoping to do with it, but I was hoping to at least have them turn off and on and really I am hoping for a dimming possibility. If there was a way I could actually have it activate one of my Scene Apps that I have installed, that would be perfect as then I could always adjust the Scene app to add and remove lights that are included in the Scene (These apps are activated by tapping on the App button so there is an event that could be hooked to activate it).


(Tim Slagle) #6

My girlfriend constantly leaves the TV on at night and when she leaves the house… Id love to be able to turn it off in those scenarios :slight_smile:

Not sure if Harmony can receive commands like that, but thats what I would invision it for. Plus controlling lights from the remote would be a big plus


(Christopher Masiello) #7

The Harmony Remote would be great for security when you’re on vacation or away. Having the TV come on and off at random times at night sends a pretty clear signal to burglars that somebody might be home.

I could think of a Smart App called “I’m Not Home”.


(Ben Goodman) #8

I would love to tie light automation into harmony macros… Hit watch movie and light go down for example. Or even turn on/of lights or execute a hello home phrase from my remote without having to pickup a phone/tablet.


(leftride) #9

Over the weekend I setup an Arduino IR Bridge that allows me to receive IR commands from my Harmony and (right now) control a z-wave light switch.

I have a macro that pauses my Apple TV and brings up the light, then I can play the movie and the light dims back out.

I’ve also started working the other way by having SmartThings control my Harmony Hubs. It involves a python RESTful web service (based on pyharmony) running on my local network. It’s not as clean as the Arduino IR Bridge, due to having to run a local web service to get it all to work, but turning off my Harmony system works.


(Csader) #10

@leftride Can you provide any details on the harmony service?

Also, have you tried adding an IR LED to your bridge to send IR commands?


(Brian Smith) #11

@leftride Build and Sell !!! :smile:


(leftride) #12

@csader, yes I’ve been meaning to post something about the webservice, I’ll try to at least post up the code I have so far. It’s very basic, but does work.

I have not tried sending IR commands, but from my understanding the Arduino design and underlying code can send as well as receive. The build was posted on the old build.smarthings.com site, but hasn’t been moved to the new community site.


(leftride) #13

Here’s a sample of the web service I created. Keep in mind this is one of the first web services I’ve built so it might not be the prettiest :smile:

As I said this build on top of pyharmony so you’ll need to d/l that and then add this python script and run it.


        import json
        import bottle # Web server
        
        import argparse
        import logging
        import pprint
        import sys
        
        from bottle import run, route, request
        
        from harmony import auth
        from harmony import client as harmony_client
        from harmony import __main__ as main
        
        @route('/')
        def index():
            """ Display welcome & instruction messages """
            return "<p>Harmony Hub Server</p> \
        	   <p>http://<host>:8080/harmony?hub=<hub>&cmd=<get_current_activity/turn_off></p>"
        
        @route('/harmony', method='POST')
        def harmony():
            args = argparse.Namespace()
        
            args.email='[YOUR USER NAME]'
            #args.func='<function turn_off at 0x134a270>'
            args.harmony_port=5222
            args.loglevel='INFO'
            args.password='[YOUR PASSWORD]'
        
            hub=request.GET.get('hub', default=None)
            cmd=request.GET.get('cmd', default=None)
            act=request.GET.get('act', default=None)
        
            if hub == 'living':
                args.harmony_ip='[HUB IP ADDRESS]'
            elif hub == 'office':
                args.harmony_ip='[HUB2 IP ADDRESS]'
        
            token = main.login_to_logitech(args)
            client = harmony_client.create_and_connect_client(
                args.harmony_ip, args.harmony_port, token)
        
            if act is None:
                func_call = getattr(client, cmd)()
            else:
                func_call = getattr(client, cmd)(act)
        
            #pprint.pprint(func_call)
        
            return json.dumps(func_call)
        
            client.disconnect(send_close=True) 
        
        if __name__ == '__main__':        
            # To run the server, type-in $ python server.py
            bottle.debug(True) # display traceback 
            run(host='0.0.0.0', port=8080, reloader=True)