DIY Zoning: Release Notes


Fundamental overhaul. Everything 0.2p0 was supposed to become, five years more mature and five times simpler for the same functionality. Not complete yet, though got to passive move already.

DZ3 series of articles at DZ Blog is the best source of information at this time.


Goal: Modular Architecture

The architecture is being upgraded according to v.2 guidelines, with any data source and data sink available for inclusion at any location. This gives a better flexibility - for example, you can run the data acquisition module in a minimal configuration on TINI or suchlike embedded platform, control module on another box, possibly wall controller or a router, logger on the file server, and use the user interface only when it is necessary.

This release never happened. Most of things mentioned here were implemented, just never assembled together - Real Life™ interfered with my best intentions. DZ3 is supposed to fix this

Changes since 0.1p7dev3 (September 24 2004)

Working on pressure sensor support - this calls for DAC change to support composite 1-Wire® devices, where one logical device corresponds to more than one physical device.

  • Moved the code to JDK 1.5 codebase - this is not a backward compatible change.
  • Implemented v.2 modules for the RRD logger based on JRobin and RRDTool, trace logger, xAP and xPL loggers;
  • Retired old RRD and trace loggers - though they're still retained to provide a smoother transition path;
  • Fixed bug #916345 (CORE should put dampers into safe position on shutdown);
  • v.2 signal logger now writes a file containing a mapping between signal signatures and human readable signal descriptions, for integration with external visualization tools. Custom color map is also available;
  • Fixed bug #913926 (VIEW fails to revert to insecure connection);
  • Fixed bug #919730 (Units should be displayed according to locale).

    From now on, default temperature unit is C° unless the locale is US, then it is F° (if you know about any other country that uses Fahrenheit degrees, let me know). This can be overridden by -Dtemperature.units=${your-favorite-unit}.

    Time in the schedule panel will now be displayed according to locale, unless -Ddisplay.ignore.time.locale is set, in which case the format stays HH:mm;

  • DZ console can now display temperature in Fahrenheit (RFE #919653). Schedule setpoints will look funny in Fahrenheit due to rounding issues, but there's nothing that can be done about it except changing them in the configuration files, to give them starting values that will properly round when translated from Celsius to Fahrenheit;
  • Fixed bug #1166681 (configure script sets wrong paths);
  • Fixed bug #1166395 (Race condition in addListener vs. broadcast);
  • Fixed bug #978029 (Race condition on control connection cleanup);
  • Fixed bug #1042063 (Remove redundant code from RRDLogger);
  • Added servo calibration option (RFE #1166755) - no GUI configuration available yet;
  • Added xAP and xPL support (RFE #992950);
  • Added a v.2 data logger module - RRD databases no longer have to be regenerated when a new data source is added, and virtually any data source can now be logged;
  • Added stacked damper support (RFE #1166295);
  • Added skeleton for Apple Rendezvous PnP support - the code is not yet functional, pending network upgrade and OS X testing.

Changes since 0.1p7dev2 (July 28 2004)

  • Added DAC support for multiple logical devices per one physical 1-Wire® device in general and for AAG Electronica TAI8540A humidity sensor in particular. This fixes bug #1020225 (Multi-function 1-Wire devices can't be supported);
  • DAC2CORE protocol had been changed to support many logical devices per one device address. Configuration has to be changed - to upgrade your configuration, you have to add a literal 'T' in front of 1-Wire temperature sensors, and add a literal 'S' in front of 1-Wire switch devices;
  • Fixed bug #594880 (Notification: departure before arrival), again. The root cause, surprisingly, was OWPath returning a bad hashCode() - different objects corresponding to the same path were not properly matched in Hashtable and HashMap. As a side effect, network departure handling code was significantly improved, and race conditions between server's poll() and monitor's browse() were eliminated - long live event semaphores.

Changes since 0.1p7dev1 (July 5 2004)

  • Implemented a CORE configuration wizard;
  • Jukebox and Servomaster no longer need to be downloaded separately - they are now included into the distribution, for simplified build and installation.

Changes since 0.1p6 (June 29 2004)

  • Implemented a DAC configuration wizard;
  • Fixed bug #978381 (DS18B20 not recognized), again - this time verified.

Changes since 0.1p5 (February 28 2004)

  • Removed documentation from the source tree - the website is now the only source. It has become too cumbersome to maintain two separate documentation trees, and it doesn't seem to be sane to burden the source tree with the Forrest tools.
  • Added PnP support for DAC to CORE communications (Bug #905586, Provide core autoconfiguration ability):

    • Removed redundant protocol handler code (RFE #914782)- from now on, all DAC to CORE connections (this includes temperature readings broadcast and switch control) are handled in a uniform way;
    • Implemented a capabilities announcement broadcaster - from now on, DAC advertises its devices. It is now possible for CORE to gather information from multiple DAC instances on a local subnet. Currently, the broadcaster is UDP based. A skeleton of a broadcaster using multicast socket was written, but not finished.
  • Prepared groundwork for PnP for CORE to VIEW connections;
  • Added support for DS18B20, DS2405, DS2407, DS2408, DS2438, DS2890 - needs to be verified, for I don't have the hardware at this point;
  • Fixed bug #978381 (DS18B20 not recognized) - hopefully;
  • Added a skeleton for 1-Wire® driver based on OWFS - currently still unusable, will be completed after configurator is done;
  • Totally rewritten the DZ site - it is now generated using Apache Forrest engine. It took a week (and still going), but it was worth it - the site started to show signs of evolutionary problems, such as loss of focus and drowning in insignificant details;
  • Fixed bug #910312 (Fix layout so RPM RRD doesn't walk around);
  • Implemented 100% Java RRD support with JRobin.

Also, number of bugs introduced after 0.1p5 was fixed.

Changes since 0.1p4 (February 18 2004)

  • If a secure connection can't be established, insecure connection will be tried first before giving up;
  • RRD database and temperature graphs are now autogenerated based on discovered 1-Wire network topology;
  • Upon RPM installation, attempt will be made to figure out if Apache is installed, and symlink will be added to its document root to allow to see the generated graphs at http://localhost/dz/";
  • Added --enable-secure option to configure script;
  • Fixed bug #902498 (VIEW doesn't have way to find out if connection is secure);
  • Implemented RFE #898471: communication between DAC, CORE and VIEW is now encrypted.

Changes since 0.1p3 (September 01 2002)

  • Added alert notification functionality;
  • Sensor failures will be processed in such a way that the HVAC unit will not suffer - upon a singular failure, the damper for the corresponding zone will stay completely open, upon a massive failure the system will shut off an issue an alert notification;
  • Same for the case of HVAC driver failure: alert notification will be issued;
  • Schedule is now functional again (for 0.1p3 release, it was read-only and the only way to modify the schedule was to actually edit the configuration files and restart DZ);
  • Added a DTR boiler driver (ACDriver), courtesy of Tim Small;
  • Added a NullDamper, courtesy of Tim Small;
  • Fixed bug #866567 (PreferencesPanel doesn't reflect real values);
  • Fixed bug #734976 (Scheduler panel inoperable);
  • Fixed bug #734974 (Loss of VIEW functionality when CORE stops);
  • Fixed bug #882708 (TcpTemperatureSensor doesn't report failure when DAC stops);
  • Fixed bug #724534 (1-wire network short circuit silently kills dz);
  • Fixed bug #881960 (HVAC actuators are not detected by CORE on DAC startup);
  • Fixed bug #881233 (Critical failure on total sensor loss with certain bus configurations);
  • Fixed bug #864816 (Faulty sensor may make system unusable);
  • Fixed bug #733575 (CORE doesn't understand arrival/departure notifications);
  • Fixed bug #864833 (Demand improperly calculated);
  • Fixed bug #866527 (Period change changes setpoint value in GUI even if on hold);
  • Fixed bug #587618 (A/C is not shut off when needed);
  • Fixed bug #866442 (Fiddling with "disable" button may leave dampers closed);
  • Fixed bug #865325 (ConcurrentModificationException in AC_Controller);
  • Fixed bug #734427 (Incomplete HVAC sent to GUI at startup);
  • Fixed bug #733654 (All units must have common mode control);
  • Fixed bug #864299 (99.99999 reading on the console if sensor is not available);
  • Fixed bug #864298 (Mode switch inoperable in the debug console);
  • Fixed bug #739617 (Stale path breaks poll);
  • Fixed bug #733660 (Scheduler panel: period gets deselected when day changes);
  • Fixed bug #731757 (CORE is not notified when sensors/actuators disappear);
  • Fixed bug #601715 (Temperature sensor breaks the core);
  • Fixed bug #594880 (Notification: departure before arrival);
  • Fixed bug #658290 (configure option --with-rrddb);
  • Fixed bug #603665 (device status not restored after failure).