WemoServer (java)

This is a free standalone implementation of the AutomationServer built into AutomationManager on play.  To use the full set of features (rule engine, remote access) you do need to purchase and configure it with AutomationManager.  The basic function (discover devices, monitor state, set on/off, logging) work in this free version. For this basic function it can be started when needed - running it as a server is not required.

Yes, it's still called "WemoServer" but it is the engine from AutomationServer and does handle the same set of devices.

Download the jar at the bottom of this page.

Pre-reqs - Java JRE (or JDK) 1.8 or later installed on your system.  See http://www.java.com.

If you get a start up message mentioning version errors double check with "java -version".

Once you've got this running you can use the AutomationManager app (AM Remote) to access the server, see AM Remote instructions for setting up remote access.

Run (with gui) using

 "java -jar WemoServer.jar"

or

"javaw -jar WemoServer.jar"

or with Java 9

"java --add-module java.xml.bind –jar WemoServer.jar"

"javaw --add-module java.xml.bind –jar WemoServer.jar"

Where "java" is the path to your java 1.8 or later java.exe (or javaw.exe). 

On windows you can usually just double click on the jar, depending on how java was installed.

I hope use is self-explanatory.

Use AM Remote to view and control your devices while you are away.

AM Remote can also be used to create, test, download your rules, WemoServer for java runs the same rules as the AutomationManager Server for android.

The REST, intent, and HTTP/browser features of AutomationServer for android are not supported by WemoServerfor java.

WemoCLI and Events - adding external automation.

Headless Operation - for systems without a GUI (e.g. raspberry pi or a NAS server).  If you don't have one already consider using an old android phone.  Less than $50 used from ebay, a phone already has  wifi, a battery, and a touch screen.

TimeZone issues on Linux (with thanks to Sander for helping me solve this):

At the time of writing Java/Linux may not play well together with respect to timezones.  In some cases the java runtime library does not pick up the linux system timezone settings properly.  This can cause issues with scheduled rules running in the WemoServer rules engine.  You can work around this by setting the proper timezone where Java can see it, either in the user profile of the WemoServer user:

    set "export TZ=Europe/Amsterdam”

or for all users in the system:

    create /etc/timezone and add "Europe/Amsterdam"

Of course you would substitute your own local timezone.

Sander has graciously provided a set of scripts that can make it easier to run the serverin headless mode on linux (e.g. on NAS servers), see the wemo-scripts.tar attachment below.  Thanks Sander!

State changes

The WemoServer registers with and receives events back from the devices.  The IP address shown in the WemoServer window must match the device, as it uses this as the registration address.  If it is incorrect, confirm that there is no override of the IP in the /etc/hosts file on the device, for example:

127.0.1.1 raspberrypi

This is incorrect and must be removed for WemoServer to work properly.

Be sure to enable your firewall to allow the WemoServer out and your devices back into your server.

History:

Feedback or questions: eMail Mike