WemoServer (java)

This is a free standalone implementation of the WemoServer built into AutomationManager on play.  To use the full set of features (rule engine, remote access) you do need to purchase and control 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.

Download the jar using the arrow at the bottom right side 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 WemoManager app (WemoRemote) to access the server, see WemoRemote instructions for setting up remote access.

Run (with gui) using
    "java -jar WemoServer.jar"
or
    "javaw -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
    • WemoRemote access port for WemoRemote clients (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.  WemoServer will retain device information between runs.
  • Uncheck "Allow Registration" once you've registered and accepted all of your WemoRemote clients.
Use WemoRemote to view and control your devices while you are away.

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

The REST, intent, and HTTP/browser features of WemoServer for android are not supported by WemoServer for 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 wemo in headless mode on linux (e.g. on NAS servers), see the wemo-scripts.tar attachment below.  Thanks Sander!

Wemo State changes
The WemoServer registers with and receives events back from the wemos.  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.

History:
    • 9.1.2 logging, error reporting, tplink monitoring improvements
    • 9.1.1 matching android 9.1.0 and 9.1.1 beta
    • 9.0.1 work around for GCM resends
    • 9.0.0 match to AutomationManager 9.0.0
      • added TP Link support
    • 8.4.0 match to AutomationManager 8.4.0 (new rules, etc)
    • 8.0.0
      • match to AutomationManager 8.0.0
      • various minor fixes
    • Previously:
      • added WemoLink (LED bulbs) support
      • WemoLink LED groups support
      • GCM support - eliminates router configuration for remote access
      • added Wemo state logging to GoogleDrive (beta), see "HowTo"
      • new rule actions: send gmail, http get/put/post, away
      • support for WemoMaker
      • added WemoEvent support (for automation)
      • added WemoRemote log viewer
      • added Wemo NetCam support
      • added headless (no gui) operation
      • Added Windows search using "netsh", as windows does not release port 1900 to allow UPNP search by WemoManager (see "Configure").
      • added event log viewer
      • new OnEventTags rule and wemo device action "Check"
      • Wemo Coffee Maker, Air Purifier, Crockpot support

    Feedback or questions: eMail Mike

    To be notified of new versions subscribe to the Downloads news feed.

    ċ
    Belkin.zip
    (23k)
    Mike P,
    Nov 3, 2014, 10:25 AM
    ċ
    WemoServer.jar
    (2750k)
    Mike P,
    Mar 24, 2017, 7:10 AM
    ċ
    wemo-scripts.tar
    (20k)
    Mike P,
    Aug 13, 2014, 8:49 PM
    Comments