INTERACT FORUM

Please login or register.

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

Author Topic: Engen 1.0.18 -- Available Here  (Read 2072 times)

JimH

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 72536
  • Where did I put my teeth?
Engen 1.0.18 -- Available Here
« on: July 13, 2016, 06:30:19 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.

Download:
http://files.jriver.com/engen/channels/v1/beta/jriot/Engen10018.exe

Notes about this build from Gene:

I put in some pretty serious changes to engen just now.

In my tests, engen is now highly insensitive to offline devices and misbehaving devices.  It polls all devices at a near constant rate of 10 seconds, regardless of the number of devices configured or currently active.   It takes something like 60 seconds to stabilize after startup, and perhaps 10 minutes before it fully adjusts for any bad devices it finds.  It has a number of mechanisms to detect and adjust for bad nodes.

I recommend that for now, new builds not specify any logging options.   Logging defaults now display device values when they change, and various error conditions when they occur.
You can monitor the health of devices with the very obscure command:   dump_status(nodes) where "nodes" can be blank for all nodes, or you can put in a list of nodes to see only those.   dump_nodes() includes the same information under "status".  The output is a bunch of statistical counters that summarize recent error trends and estimate the reliability of all attached devices.

The numbers under "cmd" reflect our ability to reliably send messages to devices.  "query" summarizes the reliability of return messages.  The others monitor individual command classes.   Some devices do not respond well to command class messages they claim to support.
I plan to humanize the output with another command once I get more experience with different collections of UZBs and Z-wave devices, in different error states.

It is certainly possible that I broke groups and scenes, when they use Z-Wave broadcasts.  That's for further study, and probably will require some bug fixes.   The way we do groups and scenes may change in any case when we begin to exploit device command classes designed for that purpose.

History:

1.0.18 (7/13/2016)

1. Changed: Engen is now highly insensitive to offline devices and misbehaving devices.  It polls all devices at a near constant rate of 10 seconds, regardless of the number of devices configured or currently active.   It takes something like 60 seconds to stabilize after startup, and perhaps 10 minutes before it fully adjusts for any bad devices it finds.  It has a number of mechanisms to detect and adjust for bad nodes.
2. NEW: You can monitor the health of devices with the very obscure command:   dump_status(nodes) where "nodes" can be blank for all nodes, or you can put in a list of nodes to see only those.   dump_nodes() includes the same information under "status".  The output is a bunch of statistical counters that summarize recent error trends and estimate the reliability of all attached devices.

1.0.17 (7/7/2016)

1. Changed: Changed node and group names to accept any string that has one non-digit character anywhere in the string.
2. Fixed: The UZB was getting wedged when too many requests were made too fast, and there were a bunch of nodes off-line.  Put in a kludge for now to keep that from happening.  A better fix is in the works.
3. NEW: Added some scene-oriented command classes message handlers.

1.0.16 (7/6/2016)

1. Fixed: Bug in auto-updater.  It wouldn't remember that it had already installed the available update.

1.0.15 (7/6/2016)

1. NEW: Display subnode switches (e.g. power strips)
2. NEW: Support renaming devices.
3. NEW: Buttons to turn all devices On/50%/Off.
4. Fixed: Some problems in path_set with multichannel devices.
5. Changed: Restore Python 3.x support.

1.0.14 (6/30/2016)

1. Changed: Windows Service updated to support new Python web server using Flask & Tornado packages.
2. Fixed: Auto update could fire up two installer programs simultaneously.
3. NEW: New REST web service and interactive website with lots of new functionality.
4. NEW: Generate secret key for local https certificate dynamically.
5. NEW: Got the REST variable path GET stuff working.  The PUT is still untested.

1.0.13 (6/27/2016)

Internal testing build.

1.0.12 (6/22/2016)

1. Changed: Removed Stop/Start Service commands from menu.  The Engen server is now stopped when the tray application is exited.
2. Changed: Wording visible to the user is now simply 'Engen' rather than tacking on 'Server' or 'Service' to the end.
3. Changed: Tray icon can now be right-clicked or left-clicked to show the menu.
4. Changed: Wording of bottom menu item changed from "Exit program" to "Quit".
5. Changed: Changed the zwave byte ordering routines to use big endian rather than little endian. This got the manufacturer description working but has the side effect of changing the database name.
6. NEW: Manufacturer id is now showing in dump_nodes and list_nodes.
7. Changed: Regenerated sigma_classcmd to eliminate unneded and irritating redundant versioning information.  Added a new utility to generate this one file.
8. NEW: Added the scene actuation and scene actuator config command classes.
9. Fixed: Fixed duration encoding in zbasic.py.

1.0.11 (6/21/2016)

1. Fixed: The last build was not signed properly.
2. NEW: send_cmd now does multicasting.
3. NEW: zgroup.general_increment smoothly increments/decrements bulb brightness.  Uses multicasting w/o ACK.
4. Fixed: Fixed a startup hang in zman.py that occurs when you have no database on first startup.
5. Fixed: Fixed things so an unexpected exception during startup will terminate rather than hang the server.
6. Changed: Eliminated the no longer used --test parameter to main.py.
7. Fixed: Fixed node name addressing so "switch.A" now properly accesses the first endpoint on "switch".
8. NEW: Added zvar.py which will support REST variable addressing. Partially tested at this point.

1.0.10 (6/16/2016)

1. NEW: Added a simple web server.  References to port 52110 that do not begin with /alpha000 and end with *.htm or *.html are interpreted as file names in the server directory to be returned as web pages. The directory can be changed with the --web command line option.
2. NEW: Added the ability to load/store the database through the web. A GET to alpha000/database will return the contents of the database in JSON format.  A following PUT to the same URL will restore it.
3. Fixed: A crash in set_node_name(), and one in add_node().
4. Changed: The database format is greatly simplified from its former self. Information that can be learned from the network is no longer stored in the database.
5. Changed: list_nodes() to optionally take node arguments.
6. NEW: Created dump_nodes() which works the same, but shows all information about the nodes. show_node() is gone.
7. NEW: Added set_log_level(name, level) which allows you to change various log levels while the program is running.
8. Changed: A ton of internal restructuring, which hopefully will not be visible to the user. These included an internal trace facility, and a better way to display binary data in logging messages.

1.0.9 (6/4/2016)

1. Fixed: The assert() problem that was showing up at Jim's home.
2. Changed: Added some code to log top-level exceptions, like the one that Jim saw.  When such an exception occurs now, it is logged, and the server is automatically shut down.  (so you will go look at the log).
3. Changed: Changed zdriver so it now sends ACKs to the UZB out of the receive thread, instead of first forwarding them to the transmit thread. This improves response time, and appears to have fixed the CAN problem under high load.  We can now poll at about 10 msgs/second w/o difficulty.
4. Fixed: A problem in node renaming. Previously multiple nodes could get the same name. The fix prevents that from happening, and fixes your database if the problem previously corrupted it.
5. Changed: Added "Updates" item to tray application menu.
Logged

drmimosa

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 691
Re: Engen 1.0.18 -- Available Here
« Reply #1 on: July 18, 2016, 06:30:36 pm »

In my tests, engen is now highly insensitive to offline devices and misbehaving devices. 

This has definitely been true on my system, the freeze I reported on previous builds has not occurred using build 1.0.18.
Logged

drmimosa

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 691
Re: Engen 1.0.18 -- Available Here
« Reply #2 on: July 21, 2016, 09:23:38 am »

Last night all devices became unresponsive for the first time. I'm not sure why, lights came on but would not switch off on server command.

This morning unplugging all devices (plugs, lights), unplugging zstick, and then starting all devices and resetting server fixed the system.

I'm attaching a short log, looks like it started logging at the time of error. Let me know if you want a bigger file...
Logged
Pages: [1]   Go Up