Be prepared to put in quite a few hours setting this thing up depending on the complexity of your entertainment setup, but it is very worth it. Some of that time spent can be attributed to the sluggish app, but more on that later. I have a Sony ""dumb"" TV, a Vizio soundbar, Xbox One, Xfinity X1 cable box, Xiaomi Mi Box 3 Android TV streamer, a few Philips Hue lights, and an Insignia Google Assistant speaker. The Harmony Hub and remote consolidated everything with a remote to just one, and even threw in some of my Hue lights and I can control it all with Assistant to boot. At first I was concerned about the way this handles all the devices using ""Activities"". I was more accustomed to older conventional universal remotes where you would press a button to pick a device, do what you needed to do with that one, then pick the other and control them by switching devices. Well, I can now say the ""activities"" concept is much superior. You hit one button and it turns on your TV, audio device, switches both to the correct input, and gives you control over main device for that activity. It has a huge database of devices, you just need to enter the brand and as much as you know of the model number and it will find pretty much anything. I even got some limited control of a Playstation 2 with it. Now, there can be some trial and error involved in the setup. I think the biggest challenge I faced was getting my soundbar to switch to the correct input. It uses a me thing where you just use one input button to toggle between the inputs. This is supported by the Hub, it will simply send the ""I out"" command the correct number of times based on what it knows like the last activity that was running. But when I tried starting an activity with everything off, it always seemed to come up one input short, until I realized the soundbar needs a few seconds to start up before it can accept cammands, so I found the ""power on delay"" setting and turned it up a few seconds, so now it turns on the soundbar then waits a bit longer then starts issuing the correct number of inpit commands. Now it works perfectly. I've left most of the button commands it maps to the remote for the devices default, but I dit add a few custom ones such as a sequence (you can have it issue a number of commands in a row, a sort of ""macro"" I guess) that maps to the DVR button which is unmapped by default on the Xbox One, where a single tap opens the Xbox menu and hits the Y button to take a screen shot with one button, or a long press on DVR to record a video. I get a kick out of that and it can be a bit quicker and easier than having to issue the controller commands. I also mapped a long press on the Mute button to turn the virtual surround sound on my soundbar on and off because I like it on for games and movies, but it makes music sound like crap so I can then easily turn it off for that. I can also start any of these activities from my Google Assistant speaker, which is awesome. I can just walk in the room and ask it to ""Play Xbox"" or ""Watch TV"" and it happens. The only annoyance with this currently is that it is currently not a native Home Control integration, so I have to say something like ""Hey Google, ask Harmony to play Xbox"" but from what I've read native integration in the Home Control section of the Google Home app is coming for Harmony any day now. There is also Philips Hue integration, so if I wanted to I could set different scenes or lights to come on to correspond to different Activities, but I have not done that yet. There are also 4 Home Control buttons on the remote and a + and - rocker. These you can map to turn on and off up to four lights or other smart home devices. I have the two lighbulb buttons set up that one just turns on and off and dims the lamp next to my bed so I can press it and see to go to the bathroom and night for instance without having to use my phone or wake anyone up with voice command. The other bulb button I set for all lights, main reason being if I turned them off with that button, I can then control the brightness of any active lights with the remote. I am leaving the two plug buttons open for future smart plugs I want to use to control some fans in the room. There are a number of people understandably upset about the limited ways to use the remote to control Hue lights, for instance you cannot set either of the home control buttons to activate a Hue scene which is a drag and seems odd as the more expensive Harmony Elite remote can do so with an identical set of home control buttons. However, I'm fine with what I was able to set up. The remote itself is very nice, most of the body is a soft-touch finish and much of the back is covered in a very nice feeling samdy texture that I think is similar the ""Sandstone"" texture that was available on the back of the first Oneplus One phone. I got the Companion set specifically as I wanted a button only solution (my phone already has a touchscreen) and the lack of a need to charge it every few days vs. the Ultimate or Elite remotes. The only thing that would have been nice perhaps is tilt sensor backlit keys, but once the cool look factor wears off and I get used to the button layout by touch it just becomes a battery drain anyway. Now, onto the app, which is used to set up all the commands as well as can be used as a remote itself. This area could be improved. Each time I open the app, it takes about a minute each time to connect to the hub, and sometimes a little longer because it will occasionally check the hub firmware for updates. Also, almost every setting you change or activity or command you set needs to do a server and Hub sync which can make the initial involved setup even more time consuming. So, the app could definitely duse some work, but the overall package is great, and I think is definitely worth the current price. I may someday down the road add a Harmony 950 (the Elite remote with just the remote but can be paired to the Hub) but for now the Companion remote is plenty useful. So all in all, this thing is great given a little initial time investment, and hopefully the app gets the updates it needs to make it a little quicker to set up and use that functionality.