Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: Engen 1.0.39 -- Available Here  (Read 3630 times)


  • Citizen of the Universe
  • *****
  • Posts: 1641
Engen 1.0.39 -- Available Here
« on: December 20, 2016, 04:04:11 pm »

This is the latest version of Engen for Windows.  Please post bugs here.  Please start a new thread for anything requiring discussion. Non-bug posts will be deleted.



1.0.39 (12/20/2016)

1. NEW: Added sensor support for Z-Wave sensors, currently supporting temperature, luminance, humidity, and UV index.
2. NEW: Added support for battery powered devices by having Engen listen for information constantly instead of asking for information.
3. NEW: Temperature can be adjusted for each sensor by clicking the gear icon next to the temperature display.
4. NEW: The configurations for devices are now stored in the Engen database so the information is always available, even if a device communicates infrequently.
5. Changed: Moved the device configuration information to a modal that can be accessed from the device page.

1.0.38 (12/6/2016)

1. NEW: Added a search box for Panel that can filter the list of scenes and devices.
2. Fixed: An issue was preventing Engen from running on 32-bit systems.
3. Changed: A large rewrite to the Engen code to make it more expandable.
4. Changed: The format of the database has changed. Engen will automatically update the database when it first runs. After the update, any old version of Engen is incompatible with the updated database

1.0.37 was an internal release for testing.

1.0.36 (10/24/2016)

1. Changed: Hide Devices and return to top links to just use symbols.
2. Fixed: A number of bugs associated with websockets.
3. Fixed: A bug where unnecessary threads were left running until shutdown.
4. Fixed: Some formatting bugs in logging messages.
5. Changed: The Engen home page will update every minute to keep device states updated.

1.0.35 (10/11/2016)

1. Changed: The web interface will accept POST wherever it accepted PATCH in the past.
2. Changed: Updated the documentation to say POST everywhere PATCH was previously specified.
3. Changed: The device list on home.html is now expanded initially.
4. Changed: Added an additional collapse button at the bottom of the expanded device list.
5. Changed: Added a button to return to the top of home.html at the bottom of the expanded device list.
6. Changed: The remove scene page would show Home as the active page instead of Setup.
7. Fixed: The link back to Panel would only work on the home page.

1.0.34 (10/4/2016)

1. NEW: Added a link to go back to Panel from Engen.
2. Changed: Added a changing icon in front of Devices to indicate a collapsible list.
3. Fixed: Scene devices sometimes would not turn off when toggled on and off quickly.
4. NEW: Added a feature allowing the log file to be monitored in real time from the command line interface, using the new watch() command.

1.0.33 (9/27/2016)

1. Fixed: Extended the range of testing ports because Engen was failing to find the UZB in some cases.
2. Changed: The collapsible device list was added back to home.html.

1.0.32 was an internal release for testing

1.0.31 (9/22/2016)

1. Changed: When there is more than one serial USB port on the machine, Engen now chats with the devices present, and determines whick of them are UZBs.  If there is more than one UZB, the program terminates with an error message, asking the user to choose the one she wants.

1.0.30 (9/21/2016)

1. Changed: Update to home.html to hide the bottom row of hardcoded buttons when the device list is collapsed.
2. NEW: Implemented the alarm, sensor binary and sensor multilevel command classes.
3. Fixed: On Linux & Mac, implemented a mechanism so only one copy of engen can run at a time.

1.0.28 and 1.0.29 were internal releases for testing

1.0.27 (9/15/2016)

1. Changed: Free trial period of 30 days.
2. NEW: On and off switch for scenes in the web interface.
3. Changed: Added another set of the hardcoded buttons to the bottom of home.html and put the list of devices into a collapsible list called 'Devices'.
4. Fixed: An exception that could occur in zupdate.refresh()
5. NEW: Added the enerwave config file.
6. Changed: Updated the REST interface and the associated web documentation.
7. Fixed: A bug where it was impossible to remove button controllers, even with "remove failed node".
8. Changed: Implemented the Wake Up command class.  Updated unit test routines accordingly.
9. Changed: Cleaned up shutdown, but one problem remains.  A collection of threads created by the web interface apparently do not shut down. It delays shutdown a few seconds but causes no serious problems.
10. Changed: Added a thread in zdriver to improve responsiveness with incoming messages.  Formerly user-provided (and possibly naive) code could delay UZB acknowledge messages, causing communication havoc.
11. Changed: Makefile modified to create all *.pyc files needed for the id build.  Attempted to put all files in a server.egg archive, but the web code is not finding them there, and the result is seriously messed up web pages.  This is for further study.
12. NEW: Added full support for AEON Key Fob.
13. NEW: Added support for custom device configuration files. These must be declared once, and the filename is thereafter remembered in the database file.
14. NEW: Added a custom device file for the Enerwave 7-button controller.
15. Changed: We now debounce rapid button pushes, really rate limiting them to one/second.  This was needed for the Enerwave 7-button controller, which always sends two messages for each press.
16. NEW: Added the Sensor Binary command class message routines. Partially added the Sensor Multilevel command class.
17. Fixed: A problem where Scenes with deleted devices would get an exception while setting a Scene.
18. Changed: Arranged for device values to be quickly refreshed after we adjust them with a set message.


  • Recent member
  • *
  • Posts: 32
Re: Engen 1.0.39 -- Available Here
« Reply #1 on: December 20, 2016, 04:28:15 pm »

I just wanted to add some personal comments to the release notes.

This is a major release of Engen.  Up to this point we focused primarily on lights and switches, and built just what we needed to handle those devices.  This release is a major re-write which will allow us to expand Engen to handle the full range of ZWave devices.  We have also made REST (an industry-standard web interface protocol) not only our external interface, but the primary internal interface to all ZWave devices.  In the last 2 months we have rewritten approximately 50% of the code.  That's why we have been quiet so long.  It has taken that long to complete and stabilize the new code.

You will find few changes in the UI, except that we now support multisensor devices such as the Aeon 5 & 6, and the Zooz 4-in-1.  Most of the changes are internal.  These will allow us to accelerate development in the future.

In most releases, we talk about only what is externally visible, but in this release I would like to tell you a bit about the internal changes.
  • We've adopted internal data structures that closely match the (unfortunately non-public) ZWave messages.  On the Edit page, we expose this data in JSON format.  JSON is a native JavaScript format that was designed to be easily readable by humans.  This information is not necessary to use Engen, but it is there for those who like to tinker, and for those who wish to use Engen as a ZWave gateway to build third party user interface applications.  Some will also find it interesting to probe into the details of their ZWave devices.
  • Our REST interface (which needs a documentation update) now supports wildcards.  These make it easy for programs to make powerful queries and grab just the information desired.  The REST interface is now used by internal subsystems (e.g. Groups, Buttons) to query and control devices.  If it's not in our REST interface, Engen doesn't know how to do it.
  • We previously used a message query paradigm to communicate with ZWave devices.  This worked well for lights and switches, but not for sensors.  To work with sensors, we converted to a poke and listen model.  In the former approach we expected one response for every query.  In the latter, we listen for responses from battery devices all the time, and poke them occasionally to elicit additional responses as necessary.
  • We previously queried devices for configuration on Engen startup.  This worked well for powered switches, but not for battery powered devices.  We now store the configuration in our database, so it is immediately available on startup without the query phase.  This is important for battery powered devices, whose configuration data may be accessible only when they are first added to the network.
  • As a result of these changes, we now support battery-powered devices very well.  You can now add temperature, humidity, luminance and other sensors and they will be displayed by the User Interface.   Engen also monitors motion sensors, door and window sensors, and other similar "binary" sensors and "alarms" internally, but these sensors are not yet visible on the user interface.  If you hook them up, you can see the sensor values displayed in JSON format on the Edit page.
  • To get started with Sensors, we recommend the Aeon and Zooz multisensors, particularly the Aeon 6 and the Zooz 4-in-1.  We currently display their numerical sensor values, but do not yet show motion or battery level.  These will appear in a future release.
I would like to thank you for your patience while we completed this major revision of the software.  This rewrite will allow us to accelerate our development in the future.



  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 688
Re: Engen 1.0.39 -- Available Here
« Reply #2 on: January 04, 2017, 08:54:12 pm »

Great news, this sounds like an excellent build.

Did syntax change for command line options? I updated and my command line entries to change zwave device values don't seem to work.


  • Recent member
  • *
  • Posts: 32
Re: Engen 1.0.39 -- Available Here
« Reply #3 on: January 06, 2017, 03:40:35 pm »

We did change the command line interface a little, mostly extending it, but in doing so we added some bugs.   The most obvious problem was that commands like basic_set(5, 99) no longer worked.  It was necessary to use basic_set("5", 99).   The old syntax will work in the build coming out today.

After reading your post, I went through it and fixed a bunch of bugs, and also updated the documentation to show the new options.   I know of no reason old scripts won't work, but that doesn't mean they will.

Please check out today's build and see if that works for you.   If not, post the bugs you find, and we'll work on them first thing next week.
Pages: [1]   Go Up