This page last changed on Nov 27, 2013 by marco.miccini.

Hi!
As reported in my previous thread, I'm integrating the OpenWebNet protocol into OpenRemote.

This is my reply to @Marcus to the thread mentioned above:

So is the comment you reported in an old thread no longer correct?

Your command has to extend "ReadCommand" and implement ExecutableCommand. [...]

I've already tried in my first test to follow the HTTP implementation, but it didn't work. I'll work more around this and I'll do more attempts.

Anyway, how can I know the type of the sensor I'm handling? I suppose this should be indispensable to set its right value. Do I have to do something like this?

if (sensor instanceof SwitchSensor)
{
    ...
}
else if (sensor instanceof RangeSensor)
{
    ...
}
else if (sensor instanceof LevelSensor)
{
    ...
}
else
{
    ....
}

(... I didn't find ColorSensor and CustomSensor)

Hi,
yes that thread is over 2 years old and we changed the API.
New command should implement EventListener interface.
That interface will "inject" the sensor which is linked to the command.
Once your command has new information for that sensor all you have todo is

mySensor.update(newValue);

newValue has to be a String and the sensor will take care to convert it.
Obviously the command has to set a value which the sensor can convert eg. HTTP command will set the value which is extracted via Regex, Xpath or Json.
So it's up to the user to define the correct expression for the sensor he wants to use with this command.

If you look at the Vera protocol that might be a good start: http://sourceforge.net/p/openremote/code/HEAD/tree/workspace/mredeker/Controller_2_1_0-ORCJAVA-330/src/org/openremote/controller/protocol/vera/

Posted by mredeker at Nov 27, 2013 19:27

I did refresh the documentation on that a few months ago, so checking this How to might help.

Posted by ebariaux at Nov 27, 2013 20:19

Thanks all!
It was only a stupid programming error.

Now I'm going to manage more complex issues, but first I have another question.
In the dev log, I have two rows like these:

2013-11-29 18:11:55,316 INFO [http-bio-8080-exec-6]: Had timeout for waiting status change.
2013-11-29 18:11:55,318 INFO [http-bio-8080-exec-6]: Finished polling at 2013-11-29 18:11:55

They appear about 1 minute after I sent a command like pushing a button.
Can I ignore this or could it be dangerous?

This is the complete log file:

2013-11-29 18:10:22,286 INFO [localhost-startStop-1]: Initialized JUL to LOG4J Redirector.
2013-11-29 18:10:22,288 INFO [localhost-startStop-1]: Programmatically set 'useParentHandlers=false' in 'OpenRemote.Controller' log category.
2013-11-29 18:10:23,628 INFO [Controller Auto-Discovery]: Created IP discover multicast server !
2013-11-29 18:10:23,630 INFO [Controller Auto-Discovery]: Joined a group : 224.0.1.100:3333
2013-11-29 18:10:23,632 INFO [Controller Auto-Discovery]: Listening on  224.0.1.100:3333
2013-11-29 18:10:23,635 INFO [Cluster UDP]: UDP Server : Starting UDP server...
2013-11-29 18:10:23,635 INFO [Cluster UDP]: UDP Server : Started UDP server successfully.
2013-11-29 18:10:23,647 INFO [Cluster TCP]: TCP Server : starting for receiving groupmember urls...
2013-11-29 18:10:23,647 INFO [Cluster TCP]: TCP Server : started successfully for receiving groupmember urls...
2013-11-29 18:10:23,647 INFO [Cluster TCP]: TCP Server : Waiting for groupmember response...
2013-11-29 18:10:23,659 INFO [localhost-startStop-1]: 

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

  DEPLOYING NEW CONTROLLER RUNTIME...

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

2013-11-29 18:10:24,383 INFO [localhost-startStop-1]: No rule definitions found in '/usr/local/apache-tomcat-7.0.47/webapps/controller/rules'.
2013-11-29 18:10:24,383 INFO [localhost-startStop-1]: Initialized event processor : Drools Rule Engine
2013-11-29 18:10:24,964 INFO [localhost-startStop-1]: Initialized event processor : RRD4J Data Logger
2013-11-29 18:10:24,964 INFO [localhost-startStop-1]: Initialized event processor : EmonCMS Data Logger
2013-11-29 18:10:24,981 DEBUG [localhost-startStop-1]: A switch sensor (Name = 'Light1', ID = 100006) has an incomplete <state> element mapping, the value attribute is missing in <state name = on/>.
2013-11-29 18:10:24,981 DEBUG [localhost-startStop-1]: A switch sensor (Name = 'Light1', ID = 100006) has an incomplete <state> element mapping, the value attribute is missing in <state name = off/>.
2013-11-29 18:10:24,987 DEBUG [localhost-startStop-1]: A switch sensor (Name = 'Light2', ID = 100007) has an incomplete <state> element mapping, the value attribute is missing in <state name = on/>.
2013-11-29 18:10:24,987 DEBUG [localhost-startStop-1]: A switch sensor (Name = 'Light2', ID = 100007) has an incomplete <state> element mapping, the value attribute is missing in <state name = off/>.
2013-11-29 18:10:24,987 INFO [localhost-startStop-1]: Registered sensor : Switch Sensor (Name = 'Light1', ID = '100006')
2013-11-29 18:10:24,987 INFO [localhost-startStop-1]: Registered sensor : Switch Sensor (Name = 'Light2', ID = '100007')
2013-11-29 18:10:24,993 INFO [localhost-startStop-1]: Startup complete.
2013-11-29 18:10:24,994 INFO [localhost-startStop-1]: Controller Definition File Watcher for Default Deployer started.
2013-11-29 18:10:25,863 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:25,864 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:25,865 INFO [Polling thread for sensor: Light1]: received message: *1*0*11##
2013-11-29 18:10:25,865 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:25,872 TRACE [Polling thread for sensor: Light1]: Processed 'off', received 'off'
2013-11-29 18:10:25,872 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:27,749 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:27,749 INFO [Polling thread for sensor: Light1]: received message: *1*0*11##
2013-11-29 18:10:27,749 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:27,750 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:27,750 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:27,750 TRACE [Polling thread for sensor: Light1]: Processed 'off', received 'off'
2013-11-29 18:10:29,608 INFO [Polling thread for sensor: Light1]: received message: *1*0*11##
2013-11-29 18:10:29,608 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:29,608 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:29,609 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:29,609 TRACE [Polling thread for sensor: Light1]: Processed 'off', received 'off'
2013-11-29 18:10:29,609 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:31,462 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:31,462 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:31,462 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:31,463 INFO [Polling thread for sensor: Light1]: received message: *1*0*11##
2013-11-29 18:10:31,463 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:31,464 TRACE [Polling thread for sensor: Light1]: Processed 'off', received 'off'
2013-11-29 18:10:33,318 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:33,318 INFO [Polling thread for sensor: Light1]: received message: *1*0*11##
2013-11-29 18:10:33,318 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:33,318 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:33,318 TRACE [Polling thread for sensor: Light1]: Processed 'off', received 'off'
2013-11-29 18:10:33,319 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:35,168 INFO [Polling thread for sensor: Light1]: received message: *1*0*11##
2013-11-29 18:10:35,168 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:35,168 TRACE [Polling thread for sensor: Light1]: Processed 'off', received 'off'
2013-11-29 18:10:35,183 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:35,183 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:35,183 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:37,034 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:37,034 INFO [Polling thread for sensor: Light1]: received message: *1*0*11##
2013-11-29 18:10:37,034 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:37,034 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:37,034 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:37,034 TRACE [Polling thread for sensor: Light1]: Processed 'off', received 'off'
2013-11-29 18:10:38,896 INFO [Polling thread for sensor: Light1]: received message: *1*0*11##
2013-11-29 18:10:38,897 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:38,897 TRACE [Polling thread for sensor: Light1]: Processed 'off', received 'off'
2013-11-29 18:10:38,897 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:38,898 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:38,898 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:40,754 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:40,754 INFO [Polling thread for sensor: Light1]: received message: *1*0*11##
2013-11-29 18:10:40,755 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:40,755 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:40,755 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:40,755 TRACE [Polling thread for sensor: Light1]: Processed 'off', received 'off'
2013-11-29 18:10:42,613 INFO [Polling thread for sensor: Light1]: received message: *1*0*11##
2013-11-29 18:10:42,614 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:42,613 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:42,614 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:42,614 TRACE [Polling thread for sensor: Light1]: Processed 'off', received 'off'
2013-11-29 18:10:42,614 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:44,131 ERROR [http-bio-8080-exec-8]: failed to extract panel.xml for panel : No such Panel :NAME = 
org.openremote.controller.exception.NoSuchPanelException: No such Panel :NAME = 
	at org.openremote.controller.service.impl.ProfileServiceImpl.getProfileDocumentByPanelName(ProfileServiceImpl.java:192)
	at org.openremote.controller.service.impl.ProfileServiceImpl.getProfileByPanelName(ProfileServiceImpl.java:91)
	at org.openremote.controller.rest.FindPanelByID.handleRequest(FindPanelByID.java:81)
	at org.openremote.controller.rest.RESTAPI.doPost(RESTAPI.java:159)
	at org.openremote.controller.rest.RESTAPI.doGet(RESTAPI.java:112)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.openremote.controller.rest.support.json.JSONCallbackFilter.doFilter(JSONCallbackFilter.java:63)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:695)
2013-11-29 18:10:44,507 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:44,507 INFO [Polling thread for sensor: Light1]: received message: *1*0*11##
2013-11-29 18:10:44,507 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:44,507 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:44,507 TRACE [Polling thread for sensor: Light1]: Processed 'off', received 'off'
2013-11-29 18:10:44,507 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:46,359 INFO [Polling thread for sensor: Light1]: received message: *1*0*11##
2013-11-29 18:10:46,359 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:46,359 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:46,360 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:46,360 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:46,360 TRACE [Polling thread for sensor: Light1]: Processed 'off', received 'off'
2013-11-29 18:10:48,219 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:48,219 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:48,219 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:48,237 INFO [Polling thread for sensor: Light1]: received message: *1*0*11##
2013-11-29 18:10:48,238 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:48,238 TRACE [Polling thread for sensor: Light1]: Processed 'off', received 'off'
2013-11-29 18:10:49,193 INFO [http-bio-8080-exec-1]: Querying changed state from ChangedStatus table...
2013-11-29 18:10:49,193 INFO [http-bio-8080-exec-1]: Not Found: [device => 692400198402486983646713097550591166, sensorIDs => [100006, 100007]] in ChangedStatus table.
2013-11-29 18:10:49,193 INFO [http-bio-8080-exec-1]: ChangedStatusRecord:692400198402486983646713097550591166-[100006, 100007] sensorID:[100006, 100007] statusChangedSensorID:[]Waiting...
2013-11-29 18:10:50,084 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:50,084 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:50,085 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:50,101 INFO [Polling thread for sensor: Light1]: received message: *1*0*11##
2013-11-29 18:10:50,101 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:50,101 TRACE [Polling thread for sensor: Light1]: Processed 'off', received 'off'
2013-11-29 18:10:51,945 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:51,945 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:51,945 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:51,960 INFO [Polling thread for sensor: Light1]: received message: *1*0*11##
2013-11-29 18:10:51,960 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:51,960 TRACE [Polling thread for sensor: Light1]: Processed 'off', received 'off'
2013-11-29 18:10:53,163 INFO [http-bio-8080-exec-8]: received message: *#*1##
2013-11-29 18:10:53,817 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:53,817 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:53,817 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:53,829 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:10:53,829 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:53,829 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:10:53,829 INFO [http-bio-8080-exec-1]: Had waited the skipped sensor ids of statuses in ChangedStatusRecord:692400198402486983646713097550591166-[100006, 100007] sensorID:[100006, 100007] statusChangedSensorID:[100006]
2013-11-29 18:10:53,829 INFO [http-bio-8080-exec-1]: Querying changed data from StatusCache...
2013-11-29 18:10:53,969 INFO [http-bio-8080-exec-1]: Have queried changed data from StatusCache.
2013-11-29 18:10:53,970 INFO [http-bio-8080-exec-1]: Return the polling status.
2013-11-29 18:10:53,971 INFO [http-bio-8080-exec-1]: Finished polling at 2013-11-29 18:10:53

2013-11-29 18:10:55,686 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:10:55,686 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:55,686 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:55,686 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:55,687 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:10:55,687 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:57,825 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:10:57,825 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:57,825 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:57,825 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:57,825 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:57,825 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:10:59,675 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:10:59,675 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:10:59,676 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:10:59,676 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:10:59,676 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:10:59,676 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:01,559 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:01,559 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:01,559 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:01,559 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:01,559 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:01,559 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:03,419 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:03,419 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:03,419 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:03,419 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:03,420 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:03,420 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:05,286 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:05,286 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:05,286 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:05,287 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:05,287 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:05,287 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:05,313 INFO [http-bio-8080-exec-6]: Querying changed state from ChangedStatus table...
2013-11-29 18:11:05,314 INFO [http-bio-8080-exec-6]: Found: [device => 692400198402486983646713097550591166, sensorIDs => [100006, 100007]] in ChangedStatus table.
2013-11-29 18:11:05,314 INFO [http-bio-8080-exec-6]: ChangedStatusRecord:692400198402486983646713097550591166-[100006, 100007] sensorID:[100006, 100007] statusChangedSensorID:[]Waiting...
2013-11-29 18:11:07,158 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:07,158 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:07,158 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:07,158 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:07,158 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:07,158 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:09,005 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:09,005 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:09,007 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:09,007 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:09,007 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:09,007 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:10,852 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:10,852 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:10,852 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:10,852 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:10,853 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:10,853 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:12,728 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:12,728 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:12,728 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:12,728 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:12,729 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:12,729 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:14,590 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:14,590 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:14,590 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:14,590 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:14,590 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:14,590 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:16,437 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:16,438 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:16,438 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:16,468 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:16,468 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:16,468 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:18,291 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:18,291 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:18,291 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:18,303 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:18,303 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:18,304 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:20,150 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:20,150 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:20,150 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:20,165 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:20,165 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:20,165 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:22,005 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:22,005 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:22,006 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:22,022 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:22,022 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:22,022 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:23,857 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:23,858 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:23,858 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:23,887 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:23,887 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:23,887 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:25,712 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:25,712 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:25,712 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:25,744 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:25,744 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:25,744 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:27,569 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:27,569 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:27,570 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:27,584 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:27,584 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:27,584 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:29,432 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:29,432 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:29,432 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:29,447 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:29,448 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:29,448 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:31,307 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:31,307 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:31,308 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:31,320 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:31,320 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:31,320 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:33,169 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:33,169 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:33,169 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:33,195 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:33,195 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:33,196 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:35,041 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:35,041 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:35,041 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:35,057 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:35,057 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:35,057 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:36,899 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:36,899 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:36,899 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:36,924 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:36,924 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:36,924 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:38,738 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:38,738 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:38,738 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:38,777 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:38,777 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:38,777 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:40,603 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:40,603 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:40,603 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:40,619 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:40,619 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:40,620 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:42,454 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:42,454 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:42,454 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:42,474 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:42,474 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:42,474 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:44,311 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:44,311 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:44,312 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:44,326 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:44,326 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:44,326 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:46,170 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:46,170 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:46,170 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:46,184 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:46,185 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:46,185 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:48,032 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:48,032 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:48,032 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:48,047 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:48,047 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:48,047 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:49,895 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:49,895 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:49,895 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:49,912 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:49,912 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:49,912 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:51,743 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:51,743 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:51,743 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:51,770 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:51,770 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:51,770 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:53,596 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:53,596 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:53,597 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:53,614 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:53,614 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:53,614 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:55,316 INFO [http-bio-8080-exec-6]: Had timeout for waiting status change.
2013-11-29 18:11:55,318 INFO [http-bio-8080-exec-6]: Finished polling at 2013-11-29 18:11:55

2013-11-29 18:11:55,338 INFO [http-bio-8080-exec-6]: Querying changed state from ChangedStatus table...
2013-11-29 18:11:55,338 INFO [http-bio-8080-exec-6]: Found: [device => 692400198402486983646713097550591166, sensorIDs => [100006, 100007]] in ChangedStatus table.
2013-11-29 18:11:55,338 INFO [http-bio-8080-exec-6]: ChangedStatusRecord:692400198402486983646713097550591166-[100006, 100007] sensorID:[100006, 100007] statusChangedSensorID:[]Waiting...
2013-11-29 18:11:55,451 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:55,452 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:55,452 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:55,480 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:55,480 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:55,480 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:57,327 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:57,327 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:57,327 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:11:57,341 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:57,341 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:57,341 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:59,197 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:11:59,197 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:11:59,198 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:11:59,198 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:11:59,198 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:11:59,198 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:12:01,071 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:12:01,071 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:12:01,071 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:12:01,071 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:12:01,072 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:12:01,072 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:12:02,924 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:12:02,924 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:12:02,924 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:12:02,924 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:12:02,924 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:12:02,924 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:12:04,763 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:12:04,763 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:12:04,763 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:12:04,763 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:12:04,763 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:12:04,763 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:12:06,624 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:12:06,624 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:12:06,624 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:12:06,624 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:12:06,624 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:12:06,625 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:12:08,490 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:12:08,490 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:12:08,491 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:12:08,490 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:12:08,491 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:12:08,491 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:12:10,345 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:12:10,345 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:12:10,345 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:12:10,346 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:12:10,346 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:12:10,346 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:12:12,210 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:12:12,210 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:12:12,210 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:12:12,210 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:12:12,210 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:12:12,210 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:12:14,046 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:12:14,046 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:12:14,046 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:12:14,074 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:12:14,074 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:12:14,074 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
2013-11-29 18:12:15,916 INFO [Polling thread for sensor: Light2]: received message: *1*0*12##
2013-11-29 18:12:15,916 INFO [Polling thread for sensor: Light2]: received message: *#*1##
2013-11-29 18:12:15,916 TRACE [Polling thread for sensor: Light2]: Processed 'off', received 'off'
2013-11-29 18:12:15,956 INFO [Polling thread for sensor: Light1]: received message: *1*1*11##
2013-11-29 18:12:15,956 INFO [Polling thread for sensor: Light1]: received message: *#*1##
2013-11-29 18:12:15,956 TRACE [Polling thread for sensor: Light1]: Processed 'on', received 'on'
Posted by marco.miccini at Nov 29, 2013 17:27

That is fine; it comes from out pseudo server push mechanism.
The console is asking the controller if any sensor which it is interested in were changed.
If the console does not have anything new the connections stays open until the timeout is reached.
After that the console is requesting again and waits again and so on.

Posted by mredeker at Nov 29, 2013 19:40

Well! I'm going to finish my integration work.

Now I have a more complex question to bring to your attention, even if I'm afraid I already know the answer.

Is it possible to do more control in the designer creation command interface?
I'd like the possible value of some fields depends on that of some others.
This would be wonderful!!!

Posted by marco.miccini at Dec 03, 2013 18:16

Client side logic is on the wishlist but not available yet.
You can have virtual commands and use their value in the rule engine or use other sensor and the rule engine to set virtual command which can be displayed.

Posted by mredeker at Dec 03, 2013 19:06

Do you think I could try to do some customization alone about this?
If yes, could you give me any suggestions to start doing it?

Thanks.

Posted by marco.miccini at Dec 13, 2013 23:56

What exactly are you looking todo?

Posted by mredeker at Dec 14, 2013 19:30

Mainly two things:

  • the possibility to show (or enable) different fields depending on the selected value of a combobox field;
  • the possibility to change the possible values (or the validators) of some fields depending on the value of another field.
    Is this clear?

I'm looking for classes that generate the designer command form. I have identified these classes:

  • org.openremote.modeler.utils.ProtocolCommandContainer
  • org.openremote.modeler.service.ProtocolParser

and maybe also this:

  • org.openremote.modeler.server.ProtocolController

Are these right?
I have also found this xml file:

  • config/annomvc-servlet.xml

Do I have to take it into account?

Posted by marco.miccini at Dec 14, 2013 22:18

Hello Marco,

I'll need to take a bit of time and see how we can update the protocol definitions to take this into account.
IIRC, there was already discussion about this quite a while ago on the forums.
Will do some research and post back.

Posted by ebariaux at Dec 16, 2013 08:41

Hi,

I'm trying to customize the Designer like described above.
I've created an xml file (similar to the one contained in the protocol directory) that contains the dynamic values and validators of the protocol fields.
Now, after analyzing in depth the operation of creating the insertion command form, I'm editing the file DeviceCommandWindow.java, but I'm experiencing some problems to debug my code.

I tryed to use the Logger class (org.apache.log4j) and the LogFacade class (org.openremote.modeler.logging), but when I compile it with ant, I get an error.
So, at the moment, I'm not able to develop with a functional debug system, and this is very unpleasant!

Do you have any suggestions for me?

Posted by marco.miccini at Jan 11, 2014 18:13

It fails to compile because the DeviceCommandWindow class is run on the client. It gets compile by GWT to javascript and executed in your browser, that's why you can't use something like System.out or a log4j logger.

You can use something like Info.debug() call, which is a GXT command that will display a message in a little popup in your browser for basic tracing.
Or you can set-up GWT in developer mode so that you can have breakpoints and step through your java code in your IDE will running the application. You'll need to google a bit on GWT development or pick up a book on that to know how this can be setup.

Posted by ebariaux at Jan 12, 2014 15:06

Well,
I used the first solution proposed and it's all right, but now I have another problem.
I tried to open my xml file from the same class and the compile process fails. I suppose it's because of the same reason of the previous problem.
How can I fix that?

Thanks

Posted by marco.miccini at Jan 13, 2014 22:41

Same kind of issue, the code for this class is executed in the browser, so it won't have access to the XML file.
You need to read the XML file with server code and make the result available through GTW-RPC or some other call to the server.

Posted by ebariaux at Jan 14, 2014 11:45

OK!
Can you give me any other more concrete help? For example, how can I recognize server code?
And then, what is the exact mechanism to have the xml file contents available in the DeviceCommandWindow class?

Posted by marco.miccini at Jan 14, 2014 15:12

I'm trying to understand how I can do my work by myself.
I analyzed the protocols creation process to take a cue, but I'm stuck.
In the server side, the ProtocolParser class (org.openremote.modeler.service) takes care to read the contents of every protocol xml files, and it put this into the singleton ProtocolContainer object.
In the client side, the DeviceCommandWindow class inserts the protocols by means of the createFields method, that has as parameter a map of strings and ProtocolDefinitions. This map is obtained by calling the getInstance static method of the Protocols class (org.openremote.modeler.client.utils).
Correct me if I'm wrong.

The only thing that I didn't understand is how this method works! Can I have some explanation about it?

Posted by marco.miccini at Jan 15, 2014 16:45

Hi Marco - looking at the thread it appears you are making some progress getting feedback from Legrand well done! I've managed to injure my foot so I'm stuck at home for a few weeks - if you need some testing done then I'm available!

Jules

Posted by jules_bike at Jan 16, 2014 10:53

Hi Jules!
Thanks for your interest! I'm developing another functionality. When I finish this, I'll send you my work for some test.
Give me a contact, email or skype ...

Posted by marco.miccini at Jan 17, 2014 09:38

Hi Marco I'm on Skype in the openremote contributors group if you are a member - if not search for jules_bike

Posted by jules_bike at Jan 17, 2014 11:29

Hi!
As suggested, I used GWT-RPC to do my work. I did it exactly as the implementation to read the protocol xml files.
It all works except one thing: the first time I open a new (or edit) command window, the function call that returns the file content doesn't run immediately, therefore I haven't the data available in that time, while the subsequent runs work without problems.
This is false in the protocols case. The instruction:

Protocols.getInstance()

is executed asynchronously before it actually runs. So the required data are always available.

Why is there this difference, even if the code is basically the same?

This is the function to have the file content:

   public static synchronized Map<String, OpenWebNetWho> getInstance()
   {
      if (instanceMap == null)
      {
         openWebNetService.getOWNDefinition(new AsyncCallback<Map<String, OpenWebNetWho>>()
         {
            public void onFailure(Throwable caught)
            {
               MessageBox.info("Error", "Can't get OpenWebNet definition from xml file!", null);
            }
            public void onSuccess(Map<String, OpenWebNetWho> whos)
            {
               instanceMap = whos;
            }
         });
      }
      return instanceMap;
   }

I could solve this problem in another way, but I would understand that.
I hope I was clear.

Posted by marco.miccini at Jan 20, 2014 19:00

It also does run asynchronously (which is really the only way as it's making a call to the server and should not block execution for that).
The "hack" is that Protocols.getInstance() is called at the top of the ApplicationView.initialize() method, so basically before the information is required.
So that when it's really required, it's already there.

Not a big fan of the way this is done, but it'll work 99.999% of the times (connectivity would need to be behave really weirdly for a user to be able to access the new command window before the initial call to protocols finished).

Other way is to make UI work with asynchronous data source, updating itself as data becomes available.

Posted by ebariaux at Jan 21, 2014 12:22

Hello!
I'm having another problem with a ComboBox (org.openremote.modeler.client.widget.ComboBoxExt).
I would have a ComboBox with 4 possible items, but some of these should be hidden or disabled depending on another ComboBox value.
I was able to do this by removing all the items and reinserting the ones required every time the other ComboBox value changes. Is it possible to avoid this?

Any suggestion is very welcome!!
Thanks

Posted by marco.miccini at Jan 24, 2014 23:29

Hi!
I've finished my work, even if I still have some problem with the asynchronous call between client and server.
If you are interested, I could load all into your repository, but I don't have access to it.
What about?

Posted by marco.miccini at Jan 27, 2014 16:19

Yes please send an email to me : juha at openremote dot org and we can set you up.

Posted by juha at Jan 29, 2014 07:01

Hello, did you finish the job for OWN ?
i would be interested, even to help with the development
Michael

Posted by kowal2205 at Jul 27, 2014 21:11

Hi!
Yes, I've finished my work!
I loaded the code just a few days ago to this url:

https://svn.code.sf.net/p/openremote/code/workspace/gcimini/

Posted by marco.miccini at Jul 28, 2014 00:00

hello
thanks for your answer.
I looked at the code briefly and I see that you use an URL which indicates that you use a BTCINO Webserver ou MH200N which are on the ethernet network.
Have you already tried your code with an USB dongle (and so a Unix Socket on raspberry)?
Your code is on designer 2.13.9's branch but is not in the 2.13.9's version that is (as I understand) the current version of the designer. Do you know Why ?

the last but not least , I tried to compile the designer so I could try your code but it failed (JUHA's computer is needed to compile GWT ), is there any way you used to buid your own version of designer ?

Thanks
Michael

Posted by kowal2205 at Jul 28, 2014 18:51

Hi Michael!

1. I tried it only with the ethernet connection.

2. I used Designer 2.14.0 as starting point, as you can read here. I don't known why they have created a 2.13.9's branch in my workspace.

3. At the moment, the only thing that comes to mind is the version of GWT. I have used GWT 2.4.0.

Let me known if you have other problems.

Marco

Posted by marco.miccini at Jul 28, 2014 22:03

hello marco,
thanks for your answer.
I'm at ease with php, python, JS and others but defintly not with java and eclipse
I was not able to build a local version of the designer website.
Would it be possible to borrow your's ?
My Legrand zigbee micromodule is arriving tomorrow.

My Email to discuss more easily is kowal2205 (at) gmail.com

michael

Posted by kowal2205 at Jul 28, 2014 22:14

We (ICT Protege integrators) are also interested in this functionality as mentioned last month. Have you successfully implemented it?
If so do you have a build / source of the modeler that I can run on my local server?

Thanks,

Tomas.

Posted by tomas.morton at Jul 29, 2014 01:30

Yes, I do!

Here you can find the source code, and this is the compiled archive.

Marco

Posted by marco.miccini at Jul 29, 2014 14:12

Thanks a lot!

Posted by tomas.morton at Jul 29, 2014 20:25

You might find this thread helpful to get the designer compiled : http://www.openremote.org/display/forums/How+to+compil+a+Full+Openremote+Setup+on+a+Linux+Server

Posted by ebariaux at Aug 04, 2014 15:01

Hi Eric/Marco,

I've been away for a while but I am keen to get Marco's protocol working with the latest version of the controller and the online designer. Earlier this year I worked with Marco to test the protocol on a standalone designer and controller but could not use this in my live environment because it did not have the DSC alarm protocol.

From my experience it works well and would be a good addition to OR. I can test it out but unfortunately I am not a programmer so can't help with the integration.

Cheers
Jules

Posted by jules_bike at Aug 14, 2014 13:13

Hi - has there been any progress on getting Marco's code merged into the live version of Openremote? It seems a shame that so much work was done and it has never been put into production. I tested his version and it worked fine but because it was based on a release that was not DSC enabled it was not useable for me.

Posted by jules_bike at Nov 03, 2015 10:59

<P></P>
<P>Good classic sleeping area 2012 Nike Free come 2 Azul Negro Mujeres disadvantage Descuento Grande y simplymca El E. (A adult size) Nike Free stand out Powerlines Ii Azul Blanco Hombres [url=http://www.lygrand.com/femme/]bAir Max Femme[/b][/url] Nueva Coleccin se 'vrrle rrtre. I remember when i by mistake go to my hubby in the jaw in the the [url=http://www.lygrand.com/]bNike Air[/b][/url] night [url=http://www.lygrand.com/]bAir Max 1[/b][/url] after 2012 Nike Free exercise 5.0 V3 Gris Verde Azul Mujeres Venta Hogar Es Su. </P>
<P></P>[url=http://www.lygrand.com/]bNike Air Max 90[/b][/url]

Posted by myloveryou at Dec 03, 2015 06:19
Document generated by Confluence on Jun 05, 2016 09:31