In the glorious future, every device you own will have WiFi connectivity. With a tap on your app, you'll be able to switch on your TV, dim your lights, and set the air-conditioner to "frosty". We're not quite there yet - we live in a world where even the newest fangled kit relies on technology from the 1970.
Yes, I'm talking about Infra-Red. Good old IR has been around for ages - you're bound to have a few devices which rely on it.
The folks at Gearbest have sent me an Orvibo WiFi Smart Remote in exchange for an honest review. Its promise is pretty simple - control all your Infra-Red gadgets via your smartphone. So, how does it perform?
All the product shots of the device make it look like it would dominate a lounge table.
But the Shezen built device is surprisingly small - just 11cm in diameter and a whisker over 3cm tall.
In the box you get the device, a 1m long micro-USB charging cable, 3 screws and rawl-plugs (should you wish to attach it to a wall), and a (poorly translated) instruction manual.
It's an elegant piece of kit. Reminiscent of a UFO. The eerie blue light on top can't be dimmed or switched off - it just gently pulses - so you probably want to place it out of your eye-line.
There are multiple IR transmitters (more on that later), so it really shouldn't matter where you place it in relation to your devices.
In order to set-up and control the device, you'll need the app on your smartphone.
It's available for iOS and Android on the Google Play App Store. If you don't have Google Play, you can download the APK directly.
You can add new devices, set up custom remote controls, add scenes (press one button - have multiple commands sent to different devices), create schedules, and set up passwords.
The app suffers from a fairly poor translation to English - but seems easy enough to muddle through.
There a "Cloud Service" which claims to be able to back up your configurations. I couldn't get my phone to talk to the servers in China reliably. Sniffing the traffic showed that it all went via HTTP - so don't stick your garage door codes in there!
Really, the only thing the app is missing is a widget. It would be great to press a single button on my home screen and have my TV switch on and tune to the channel I like, while closing my blinds and turning on the AC.
I'll admit - this is where I nearly came unstuck. According to the manual, I should plug the Orvibo AllOne into the power, then use the app to configure it. That didn't work.
I'm not sure what I was doing wrong, but I tried multiple Android handsets and tablets - nothing seemed to work. Eventually, I tried connecting it to a WiFi network which didn't have a password - and it worked straight away. I'm not sure if it didn't like my SSID, my password, or the WPA provided by Virgin Media. None of my other electronics have a problem with my home WiFi network.
Eventually, after using the AP configuration screen multiple times, I was able to get it to connect. A slightly frustrating experience but one which only needs to be completed once.
Once set up, I was impressed by just how quickly everything worked. As soon as I pressed a button on my phone, the TV reacted. Here's a quick video:
(My camera catches the IR flashes - you don't see them in real life).
There are a wide range of remotes supported, all with unique layouts. They're fairly customisable and quick to access.
The app claims to be able to download TV remote control profiles - but I couldn't get this to work. Instead you have to set the Allone into learning mode, aim your regular remote control at it, then simultaneously hold down the relevant button in the app and press the same button on your remote. A little cumbersome, but it seems to work.
Plugging the USB device into a computer doesn't reveal anything interesting - all it does is charge. A quick use of
nmap didn't pick up anything interesting either. There's no web server, REST API, telnet, SSH, or anything useful for an easy hack.
Thanks to the Open Source community, we can stand on the shoulders of giants! There is a Node.js library for controlling the Orvibo AllOne. I'm not overly familiar with Node.js, but it's fairly clear that the interface for the device is based around sending UDP packets to port 10,000 on the device.
packetLength = _s.lpad(decimalToHexString(ir.length / 2 + 26).toString(), 4, "0"); // This takes the length of our whole packet (IR + 26 bytes) and converts it to hex. Uses _s to pad it with 0s to make it valid hex irLength = _s.lpad(decimalToHexString(ir.length / 2).toString(), 4, "0"); // And we do the same, but with our hex irLength = _s.chop(irLength,2).reverse().join(""); // Cut up our length into hex and reverse it (needed for the IR length. Strange..) randomBitA = Math.floor((Math.random() * 2048)); // The A1 won't blast twice if this remains the same (some kind of accidental blast guard?), so get a random value randomBitB = Math.floor((Math.random() * 2048)); // Same as above payload = payload.concat(['0x68', '0x64'], this.hex2ba(packetLength), ['0x69', '0x63'], this.hex2ba(hosts[index].macaddress), twenties, ['0x65', '0x00', '0x00', '0x00'], randomBitA, randomBitB, this.hex2ba(irLength), this.hex2ba(ir)); // Put it all together
Not the easiest structure in the world - but should provide a solid basis for building libraries in other languages.
Cracking It Open
The metal base at the bottom twists off - revealing a single screw. Undo that, and the lid easily slips off.
There are four IR transmitters around the circumference - they're the white squares. That's why this device can be placed in most locations - the beams scatter out in all directions.
There's a single black IR receiver which is used for learning remote controls. I wasn't able to remove the tiny screws holding it all in place - but I assume the WiFi module is on the underside.
Judging by the MAC address, the WiFi module is the HF-LPB100.
Specifications & Other Notes
From the manufacturer's website:
Power supply: DC 5V 600mA
Max current: 10A
IR: 38 KHz
FR: 433MHz ASK
Material: High transmittance PC+stainless steel
Wireless standard: Wi-Fi 2.4GHz b/g/n
Wireless frequency: 2.412-2.484GHz
Security type: WEP/TKIP/AES
Security mechanism: WEP/WPA-PSK/WPA2-PSK
Wireless consumption: less than 0.3W
Working temperature: -20-60 Celsius
Working humidity: less than 80 %
I don't have any 433MHz devices, so I was unable to test that.
After powering up the device, it connected to the WiFi within a few seconds. Although, weirdly, it kept changing IP address every-so often. I set the router to give it a static IP address.
The Orvibo is very much a "stop-gap" technology. In an ideal world, all your tech would work over Bluetooth and WiFi. Until that day comes, being able to control older equipment via your phone is undeniably useful.
The price is decent considering what you get.
The Orvibo WiFi Smart Remote is available for £28.57 / €39.67 / $34.99.
Use the coupon code
Allone to receive a discount, taking the price to £23.72 / €32.93 / $34.99.
This is a really useful device if you've got several IR devices that you don't want to upgrade.
It's let down by a complicated connection method and a poorly translated app. Although there's no official API, it does have a degree of hackability should you wish to experiment.
Overall, once it's on your WiFi, it's a solid and good looking device which does exactly what it promises.
The device was provided to me in exchange for an honest review.