Carlos, Back to our original topic. You can install android aps on fire tv using app referenced in the below video (the app is in the amazpn app store).
Dave, I think I found the issue. I was looking at ST logs and my hub was offline at the time I was testing it. I believe I had an internet outage and my smartphone switch to 4G network. As I was outside my home network it throw the error.
Jimi, See the thread near the end. I found a way to install the node.js and script on an Android device. Free trial, costs US$9. (Server Ultimate at playstore). Requires special script file for āoldNodeā now on the github site.
Look into PM2 or Forever, both services designed to keep node scripts running. You install them via npm, then they have a special command to install themselves with whatever autostart service your platform uses.
Iāve got PM2 running on my ubuntu box (I already had a media server, so sticking a half-dozen node scripts on it was a no-brainer).
A quick internet search should point you in the right direction.
Guys,
Sorry if im stating the obvious, but am I right to assume that lb130 bulbs dont connect directly with the SmartThings hub (much like osrams ans wemos)?
Thanks
Chris
Probable Hub-less (i.e. no bridge) TP-Link Integration within two weeks.
Great question. For now that is true. However, just yesterday we found the golden key. I have started to create a smart app and device handler that will allow direct connect of the 130 to the hub. Probably a 95% chance of success (I already have a proof of concept working). Several weeks at worst.
a. The device must use HTTP communications (vice TCP and UDP) to work. Otherwise, you will need a bridge device that translates a HTTP command to the TCP or UDP supported. (SmartThings does not support UDP/TCP on the LAN.)
b. If your device can not be discovered (i.e., support Universal Plug-n-Play discovery), you will need to make it static (i.e., always the same IP Address (done on your router). You will also need to provide preferences page to enter the IP address.
c. If the device uses security tokens, you will need a way to obtain / update the token from the deviceās cloud site.
d. If you do not have a good API document for your device, I strongly recommend installing node.js on your PC and experimenting with commands and returns. Doing this work through SmartThings is time-consuming.
e. Search on GitHub (www.gitjub.com) for your device / model. There is a lot of work there that may have some API information.
OK, so a bridge will still be required for direct UDP then.
I was hoping your āgolden keyā might have been a particular syntax that unlocked the somewhat elusive direct communications that weāve all been waiting for!
Good to know. Time to see if I can work out something based on what Iāve already seen. Some people seem to have had some success with TCP, so I guess copying and reproducing that is the first step. Iāll post if I make any progress as Iām pretty sure the HS100 (which I have, hence posting here) has a direct TCP interface which could then use whatever I find.
What I am working on is for the HS100 (among other TP-Link devices). It will not require a bridge/hub. It will go directly through the TP-Link cloud interface to control the devices. I have a BETA for the HS100 at
It has instructions on how to set up; however, when I am done, there will be a smart app that will gather the data, install the devices, and manage the token state.
As far as TCP - if you find a way for it to work, tell me. I have spent hours trying to get it to work for the TP-Link Bulbs. (You will need the encryption/decryption algorithm for the TP-Link data in Groovy usable format (not the same as node.js). This one works.
//-- outputXOR. XOR (encrypt) the outbound command. ------------------------------------------------
private outputXOR(command) {
def str = ""
def encrCmd = ā000000ā + Integer.toHexString(command.length())
def key = 0xAB
for (int i = 0; i < command.length(); i++) {
str = (command.charAt(i) as byte) ^ key
key = str
encrCmd += Integer.toHexString(str)
}
return encrCmd
}
//-- inputXOR. XOR (decrypt) the inbound response. ------------------------------------------------
private inputXOR(encrResponse) {
def cmdResponse = ""
def key = 0x2B
def nextKey
byte[] XORtemp1
for (int i = 0; i <encrResponse.length(); i++) {
nextKey = encrResponse.charAt(i) as byte
XORtemp1 = nextKey ^ key
key = nextKey
cmdResponse += new String(XORtemp1)
}
return cmdResponse
}
No luck sadly. Iām not surprised. Iāve ordered a Pi Zero to run a bridge on. Once I get your TP-link stuff set up on it then Iāll look to re-use/extend it for the Broadlink RM pro which is my other main use case.
There is a lot of node.js to broadlink already done. Just search for ābroadlinkā. My preferred method is to have the commands syntax in the device handler (groovy) and using the hub simply as a bridge. You may use any/all of my code as you desire. Good luck.