This page last changed on Dec 14, 2010 by opie168.

Currently I have the following issue:

> DirecTV has a new IPcontrol function being implemented into there box's the past few months and I am trying to configure openremote on my HTCEvo to use those functions.
> Currently I am just trying to set up 1 button to test out to ensure I'm doing it right but I can't get it to work. When pressed I get a "Send Request Error: The command was sent to an invalid URL"
> I am connected to my home network via wifi on my phone and have tested the button's command in my browser to ensure it works and it does. The following is the command I type into my browser address bar to double check its function (http://192.168.1.7:8080/remote/processKey?key=power&hold=keyPress). Now when I make a command for openremote to use the previously mentioned function, I create one with HTTP protocol, and simply put the line just mentioned into the URL box. Doing this and pairing it with a button yields me the error message mentioned earlier. I have not changed any other settings and do not know what I should change if needed.
> I also tried doing it via TCP/IP protocol and putting the ip and port form the mentioned function and command too, but it also yielded the same error message.

RESPONSE:
Can you check in your controller.xml file that the URL is getting encoded correctly.

While in HTTP URL '&' is a valid character, in XML it needs to be escaped as '&' so it is possible that this gets lost somewhere between the conversions of when you enter the URL in the designer, when we store it into an XML file and when we re-create it again as final HTTP URL being used.

Also, it would be preferrable to post follow-ups on http://forums.openremote.org to record issues/solutions to get them fixed and let others know about them or help resolve them.

--------------

Now I checked the xml file and didn't see anything out of the ordinary at first glance. Here is what it looks like in notepad btw:

<?xml version="1.0" encoding="UTF-8"?>
<openremote xmlns="http://www.openremote.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openremote.org http://www.openremote.org/schemas/controller.xsd">
<components>
<button id="6">
<include type="command" ref="9" />
</button>
<button id="8">
<include type="command" ref="10" />
</button>
</components>
<sensors />
<commands>
<command id="9" protocol="http">
<property name="url" value="http://192.168.1.7:8080/remote/processKey?key=power&hold=keyPress" />
</command>
<command id="10" protocol="socket">
<property name="port" value="8080" />
<property name="command" value="/remote/processKey?key=power&hold=keyPress" />
<property name="ipAddress" value="192.168.1.7" />
</command>
</commands>
<config>
<property name="controller.roundrobin.tcpserver.port" value="20000" />
<property name="multicast.address" value="224.0.1.100" />
<property name="controller.roundrobin.multicast.port" value="10000" />
<property name="multicast.port" value="3333" />
<property name="controller.groupname" value="floor20" />
<property name="Macro.IR.Execution.Delay" value="500" />
<property name="controller.roundrobin.multicast.address" value="224.0.1.200" />
<property name="lircd.conf.path" value="/etc/lircd.conf" />
<property name="controller.groupmember.autodetect.on" value="true" />
<property name="webapp.port" value="8080" />
<property name="copy.lircd.conf.on" value="true" />
<property name="irsend.path" value="/usr/local/bin/irsend" />
<property name="resource.upload.enable" value="true" />
<property name="controller.applicationname" value="controller" />
</config>
</openremote>

Now I haven't tried saving the actual zip to my phone as all the testing was done using the test UI online option and having it load that way.

Any suggestions?

Hi Jase,

The online UI test mode only serves as a quick check for the UI design on the device, and you can't (yet) directly invoke the commands from the phone. You will need to install the controller to handle commands between phone and devices, see http://download.openremote.org

If after installing the controller, you are still having issues, try escaping the '&' characters in your URLs with '%26' to avoid issues with the XML parser tripping up on the special characters (XML treats '&' differently compared to URLs).

So in the designer enter this instead:

http://192.168.1.7:8080/remote/processKey?key=power%26hold=keyPress

HTH,

Posted by juha at Dec 14, 2010 12:22

I have the openremote apk installed on the phone already from the market. What I did in testing the stuff was save it in developer page and then pointed the app to pick the controller from http://beehive.openremote.org/3.0/alpha5/rest/user/opie168 and then went about testing that way. You somewhat lost me when you said I needed to installer the controller.

I will when I get off work go back and change the url's like you mentioned however and see if that fixes the issue.

Posted by opie168 at Dec 14, 2010 13:19

The controller is at the moment a separate application you need to install on a PC, the market version of the android application does not include it, and it's not downloadable from the beehive URL you used – this will only give you an user interface.

Marc's working on a serverless version that can be used the way you are expecting, though am not sure if HTTP config has been tested yet. Let us know if you want that APK instead (it is currently alpha).

Posted by juha at Dec 14, 2010 13:34

I mean I'll test whatever needed if you guys want. Can't commit to giving it a considerable amount of use to begin with though till I get the original one set up the way I want though, but still open to testing whatever.

I'll install that application on my pc at home after work and report back.

thanks for the replies.

Posted by opie168 at Dec 14, 2010 13:49

From what i gather the controller needs to be installed on a linux OS right? well all I have is Win7 here unless you count the Android HTC Evo I'm trying to run the remote app on. I tried changing the &'s to %26 but still got the same message, which I assume would be because I dont have the controler installed on a pc in the house?

sorry for the silly ?'s here, long day at work and very likely im just not thinking straight here.

Posted by opie168 at Dec 14, 2010 21:56

Win7 is fine. Unzip, and run.

Posted by juha at Dec 14, 2010 22:52

Now I'm lost. lol
I unzip and have 2 folders inside when done but neither of the subfolders have an exe file or anything that is recognized by anything except the few notepad files.

Actually might of stumbled across it. Run the index file inside the controller folder, and log in there. and sync with modeler? So steps are to create the stuff in composer, save it, then pull up controller page and put in info and click sync with modeler? when I do this the syncing icon just continues to spin forever.

once again, bear with me its been a long long day.

Posted by opie168 at Dec 14, 2010 23:04

No problem,

See if this page helps you OpenRemote 2.0 How To - Controller Installation.

The installation is for WinXP but maybe you're able to modify to Win7, should be fairly similar.

You do need to enter 'openremote run' to start the controller first (as per the instruction on the above page). It's a small web server that will run on your PC and once ready you can open your browser and go to http://localhost:8080/controller to find the page with 'sync with modeler' (instead of trying the index file directly, which will not work). Once done this way it won't keep spinning forever.

You may need to install Java software first (as explained on the page above), and configure a JAVA_HOME environment variable (also explained) – there's no one-click installer for Windows yet.

Posted by juha at Dec 15, 2010 04:35

ahh yeah no environment variable would be my big issue. When setting it up I set the value to "C:\Program Files\Java\jdk1.6.0_21\bin" but that seemed to not work so I tried "C:\Program Files\Java\jdk1.6.0_21\" too but that failed as well as "C:\Program Files\Java\"

what last silly little detail am i messing up here?

Posted by opie168 at Dec 15, 2010 11:03

"C:\Program Files\Java\jdk1.6.0_21" should be right I think,

what's the error (output) you see on the command window after you typed 'openremote run' ?

Posted by juha at Dec 15, 2010 11:09

The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE

Error shown in the cmd window when typing in command "openremote run" while in directory "C:\Users\Jase\Desktop\OpenRemote-2.0.0_DeveloperRelease11\OpenRemote-2.0.0_DeveloperRelease11\bin"

*openremote extracted zip is located on my desktop currently"
*I tried different directories in java and all resulted in same error message for most part too.

Posted by opie168 at Dec 15, 2010 11:47

Ok, before typing 'openremote run', try 'echo %JAVA_HOME%' and make sure it prints the correct path, and not empty for example.

Posted by juha at Dec 15, 2010 11:59

returned %Program Files%Java\jdk1.6.0_21\

Posted by opie168 at Dec 15, 2010 12:01

Hmm.. I don't know enough about Windows to say if that %Program Files% will get properly expanded.

Maybe somebody using Win7 who has controller running can help? I don't have Win7 nearby.

in the meanwhile, you could try setting the variable right before executing the 'openremote run'

> set JAVA_HOME="C:\Program Files\Java\jdk1.6.0_21"
> openremote run

Can't think of anything else right now and don't have a Windows machine to test with.

Posted by juha at Dec 15, 2010 16:44

I'll try a few things when I get home form work to see if I can get it to work.

What about that alpha apk you were talking about before. If I were using that would I not need the controller correct? If so I wouldn't mind testing that out also in the mean time and work on both here.

just let me know.

Posted by opie168 at Dec 15, 2010 17:00

setting the variable in the cmd right before running the openremote run command seemed to do the trick.

Last line in my cmd window is "INFO: Server startup in 5831 ms"

That mean it is complete I assume, since when I went to http://localhost:8080/controller/ and synced it said complete.

Seems to be working. One thing though I had to replace the %26 with & in the addresses for the key press to work.
And using the commands via HTTP is only way to work evidently. I tried TCP/IP and that evidently isn't a way to set the commands for the IP control or something isn't working right there.
HTTP=> http://192.168.1.7:8080/remote/processKey?key=power&hold=keyPress

TCP/IP=>
IP Address:192.168.1.7
Port:8080
Command:/remote/processKey?key=power&hold=keyPress

*Lastly-> must I do the "openremote run every time I want to go to http://localhost:8080/controller and upload everything correctly? right now it seems so b/c as soon as I closed the cmd window I couldn't sync anymore.

Posted by opie168 at Dec 15, 2010 22:02

Glad to hear you got it working.

You need to keep the server running, yes – and on Windows closing the cmd window also means closing the server. There are ways to make the server process run in the background on Windows but I haven't looked at those for some time. Maybe at some point will make it a stand-alone service.

The TCP/IP will not work with the HTTP commands – HTTP is a protocol on top of TCP/IP but this does not mean the TCP/IP knows how to parse HTTP protocol. TCP/IP is intended for raw, unspecified protocols over IP network... HTTP connector means we know how to parse th syntax of the protocol (URL).

Posted by juha at Dec 16, 2010 07:09

Got back to this some this week. realized that i not only have to have the server up for syncing but also if I just want to use the openremote app on my phone. It seems when the server is not running and the app loads the cached version non of the buttons work. Even disconnecting the server after a sync and the app still up the buttons become non-functional.

Posted by opie168 at Dec 30, 2010 12:58
Document generated by Confluence on Jun 05, 2016 09:29