This page last changed on Oct 22, 2014 by richardwhall.

Hi,

I am new to this community and am currently working on fully automating my Samsung Smart TV remotely. I have made use of the functionality built-in to OpenRemote and have also made use of the Samsung SOAP services (I've wrapped them in REST services to use with OpenRemote). So far I have enabled a system that can extract program information from the TV, put it on a webpage and control the TV from links on the page, as well as controlling it via the OpenRemote functionality. It is going well. BUT if the TV is OFF there is nothing I can do. The TV does not keep its network connection even in standby. So in order for any of this stuff to work while I am not there I either have to leave the TV ON, or be able to remotely turn it on.

With that in mind I was thinking of making use of the IR functionality of OpenRemote. But I know nothing about this and the transmitters I have seen are too expensive to just "take a punt" on something. From my reading I think the USB-UIRT (http://www.amazon.co.uk/Jon-Rhees-USB-UIRT-Universal-Transmitter-Black/dp/B005TX3LOU) device might work pretty well, but there is a warning stating that it might not work with all devices.

So the question is, has anybody used one of these devices to control a Samsung Smart TV? If not, has anyone used any IR device to switch on a Samsung Smart Tv and if so, which device did you use?

Used a GlobalCaché (believe it was a GC-100 on that install).

Posted by ebariaux at Oct 22, 2014 16:16

Only personally used Keene IR Anywhere modules but the IR output isn't particularly powerful and can require careful positioning of emitters. Global Cache are better from what I've heard but a little bit more expensive. Saying that the Keene modules work fine in cabinet environments or stuck to a tv.

Posted by kurrazyman at Oct 23, 2014 08:27

Hi Richard,

yes, I am using Keene IR Anywhere to switch on the Samsung TV. It works pretty well, although as Rich Turner said, it's transmitter isn't very powerful. You will need to put it near the TV IR receiver. I did this and it is working very good. To power the TV up I use UDP protocol with the command

K 2422 1158 1156 020A 06B8 020D 06B8 0225 06A0 020A 025A 020A 025A 0209 025A 020A 025A 020A 025A 0223 06A0 020A 06B8 020D 06B8 020D 025A 0209 025A 020A 025A 020A 0258 020D 025A 0209 025A 020A 06B8 020D 025A 0223 023F 020D 025A 0223 023F 020A 025A 0209 025A 020A 06BB 0225 023F 0209 06BB 0223 06A0 0225 06A0 0209 06BB 020A 06B8 020D 06B8 020A 2000

I think that KIRA is the cheapest option.

and have also made use of the Samsung SOAP services (I've wrapped them in REST services to use with OpenRemote). So far I have enabled a system that can extract program information from the TV, put it on a webpage and control the TV from links on the page, as well as controlling it via the OpenRemote functionality.

This sounds very interesting. Can you share it with us? Perhaps write How-to?

Posted by aktur at Oct 23, 2014 10:47

Thanks Michal (and others). I will look into the Keene IR and GlobalCache.

In response to how I have controlled my TV, it is all to do with the upnp functionality. If you get your TV's IP address and put the following URL in your browser (http://<IP Address>:7676/smp_2_) you should get an XML page back that describes the functionality you can use. The port may be different and the "smp_" number may also be different. But I suspect that 7676 is pretty standard for Samsung TVs. You can actually discover this information on your network using a packet sniffer. The XML that you get back will have sections that look like this....

<serviceList>
<service>
<serviceType>urn:samsung.com:service:MainTVAgent2:1</serviceType>
<serviceId>urn:samsung.com:serviceId:MainTVAgent2</serviceId>
<controlURL>/smp_4_</controlURL>
<eventSubURL>/smp_5_</eventSubURL>
<SCPDURL>/smp_3_</SCPDURL>
</service>
</serviceList>

If you change your browser address from ending "/smp_2_" to "/smp_3_" (the SCPDURL element), it will take you to a description of the functions you have available. You need to know a bit about calling SOAP services to make use of this information. But with a bit of SOAP background, it is pretty straight forward.

What I have done is use Talend ESB (www.Talend.com) to wrap these SOAP services in REST services to make them easier to call and allow them to be called by OpenRemote. I also use a MySQL database to hold data and represent it all in a JSP based website hosted by Tomcat. The web services are hosted using Apache Karaf. It sounds a little complicated, but it is pretty straight forward once you get to grip with those technologies.

Although OpenRemote have provided mechanisms for interacting with Samsung TVs, they don't provide any feedback. By using Samsung's upnp functions you can get things like the current channel, the volume, program information, tv guides for the next 8 days, etc.

I am still working my way through the upnp functions (and there is a fair amount of guess work required), but it is proving to be very useful.

I noticed that you (Michal) have got Belkin WEMO stuff working using bash scripting. I am working with WEMO stuff in the same way as this.

Once I have got something bullet proof, I may put out a few tutorials. But this solution is based around ESB and web service functionality, so doesn't necessarily fit nicely into this forum.

I'm happy to answer questions and point people in the right direction with regard to ESBs and Web Services where I can though

Posted by richardwhall at Oct 23, 2014 13:34

I thought I would complete the circle and come back and let you know how I got on. I ended up going with the USB-UIRT (http://www.amazon.co.uk/Jon-Rhees-USB-UIRT-Universal-Transmitter-Black/dp/B005TX3LOU) as a friend of mine had one that he couldn't get to work. I have subsequently shown him how to set it up and had to give it back. But it works and I shall be getting one myself.

It took a while to figure out how to configure it, but here are the steps and settings I used with my NUC running UBUNTU 14....

1) Install LIRC using .......sudo apt-get install lirc
2) Configure the hardware.conf file found in /etc/lirc as follows....

# /etc/lirc/hardware.conf
#
#Chosen Remote Control
REMOTE="USB-UIRT-REMOTE"
REMOTE_MODULES=""
REMOTE_DRIVER="usb_uirt_raw"
REMOTE_DEVICE="/dev/ttyUSB0"
REMOTE_SOCKET=""
REMOTE_LIRCD_CONF="lircd.conf"
REMOTE_LIRCD_ARGS="-d /dev/ttyUSB0"

#Chosen IR Transmitter
TRANSMITTER="USB-UIRT-TRANSMITTER"
TRANSMITTER_MODULES=""
TRANSMITTER_DRIVER="usb_uirt_raw"
TRANSMITTER_DEVICE="/dev/ttyUSB0"
TRANSMITTER_SOCKET=""
TRANSMITTER_LIRCD_CONF="lircd.conf"
TRANSMITTER_LIRCD_ARGS=""

#Disable kernel support.
#Typically, lirc will disable in-kernel support for ir devices in order to
#handle them internally.  Set to false to prevent lirc from disabling this
#in-kernel support. 
#DISABLE_KERNEL_SUPPORT="true"

#Enable lircd
START_LIRCD="true"

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD="false"

#Try to load appropriate kernel modules
LOAD_MODULES="false"

# Default configuration files for your hardware if any
LIRCMD_CONF=""

#Forcing noninteractive reconfiguration
#If lirc is to be reconfigured by an external application
#that doesn't have a debconf frontend available, the noninteractive
#frontend can be invoked and set to parse REMOTE and TRANSMITTER
#It will then populate all other variables without any user input
#If you would like to configure lirc via standard methods, be sure
#to leave this set to "false"
FORCE_NONINTERACTIVE_RECONFIGURATION="false"
START_LIRCMD=""

3) Record the remote control IR signals using this commands....

sudo service lirc start
sudo irrecord -d /dev/ttyUSB0 -H usb_uirt_raw samsung.conf

This will save the config to the samsung.conf file.

4) The samsung.conf file is then referenced by the /etc/lircd.conf file.....

#This configuration has been automatically generated via
#the Ubuntu LIRC package maintainer scripts.
#
#It includes the default configuration for the remote and/or
#transmitter that you have selected during package installation.
#
#Feel free to add any custom remotes to the configuration
#via additional include directives or below the existing
#Ubuntu include directives from your selected remote and/or
#transmitter.

#No default remote configuration was included for USB-UIRT
#You will need to include your own custom configuration for
#this remote, and file a bug at https://bugs.launchpad.net/ubuntu/+source/lirc/+filebug

#Configuration for the USB-UIRT2
include "samsung.conf"

5) Test the recorded codes using.....

irw

Then test by pressing buttons on the remote that correspond to the buttons you recorded.

6) Send signal to device using...

irsend -d /var/run/lirc/lircd1 SEND_ONCE samsung.conf KEY_POWER

These aren't complete instructions by any means, but there wasn't a single place on the net that had the above on one page.
This should get you going using the USB-UIRT. I wrapped the 6th command up in a REST service so that it could be called easily from anywhere with access to the endpoint.

Posted by richardwhall at Oct 26, 2014 23:55
Document generated by Confluence on Jun 05, 2016 09:34