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.
Ports
AM Remote access port (4033 is a good choice). This port can be safely exposed (forwarded) through your router outside of your firewall.
WemoEvent access port is for the WemoCLI (and REST access)
Refresh - just like on WemoServer, how often WemoServer will ping your Wemos
Location - Longitude and Latitude for rules sunrise/sunset calculations. Get from a site like http://whatsmylocation.net/.
Search, will, when it's not blocked by your firewall or in use on Windows, perform a UPNP search for your wemos. You can disable upnp searching if your OS does not allow access to port 1900. You may need to open port 1900 for UDP and multicast on your server to allow this discovery to work.
On Windows you can use "Configure>Windows" Search if Windows has found the wemos. Do a refresh of My Computer>Network to see if your Wemo's show up in Other Devices, and then use "Manage>Search" in WemoServer. You may need to enable Upnp searches in Windows' network settings. If it doesn't work you'll need to use "Where's Wemo?" to find your devices. This page may help with configuring SSDP/UPNP: UPnP/SSDP on Windows.
Where's Wemo? will search a given IP for your wemos. Assign them a static IP in your router to ease your burden. The WemoServer will retain device information between runs.
Uncheck "Allow Registration" once you've registered and accepted all of your AM Remote clients.
Gmail - your gmail address and password, see https://support.google.com/accounts/answer/185833?p=InvalidSecondFactor
MQTT - mqtt server and account login (tasmota integration)
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:
17.2.1.7 match for android version, does not terminate when expired
17.1.12 match for android version
17.1.8.1 fix java mail SSL problem
17.1.9 KP100, KP125, Tasmota
17.1.4 match for android version
17.1.2 added KS220 & KS230
17.0.2.1 added back -run option for headless
17.0.2 - match for android version
- rq'd for updated image support16.16.7 - performance tweak updates
- match for android version16.15.6 - match for android version
16.14.4 - added wemo outdoor plug
16.12.6 - fixes log window oddities
16.12.4 - match for android release
16.10.5 - proper log capture for headless operation, match current android version
16.10.1 match for android release (no changes)
16.9.6 match for android release 08/08/2019
16.9.0 match for android release 7/12/2019
16.8.0 - match for android release 6/27/2019