Release notes of Active Home Vista
by Buman

What?
Active Home Vista is the 'control center' of your home automation system (it works with the CM10A, CM11A, CM15A, CM17A and CP10). You can control all your devices, program the interface and receive updates from the interface to see what's going on X10-wise. You'll need a computer, a free serial port and an interface to do anything useful.

In order to use it with the CM15A interface, the ActiveHome Pro SDK is needed (if you don't have the ActiveHome Pro software installed). This SDK can be downloaded here:
http://www.activehomepro.com/sdk/ahsdk_install.exe.

Why?
I bought a CM11A about a year ago. It came with Active Home software of X10 which dates back to the 16bit era. I was running WindowsXP at that time and Active Home software was running but with a lot of problems, like:
- serial communication was not failsafe. If something unexpected happened, it would hangup anything (like downloading the EEPROM data).
- changing a comport was possible but required a reinstall
- you had to set the dusk / dawn timer resolution yourselves to make sure the data would fit into the EEPROM; why doesn't the software figure this out all by itself?
- ugly UI (mine isn't much better, ok)
- a lot of more issues which I can't remember right now
In short: it wasn't a nice program to work with. However it worked, so I used it.

However, lately I switched to Vista x64 which means no 16 bits support and as a result no means of communication with the CM11A using Active Home software. At that time I decided I could do a better job than X10 and wrote this little program. Basically it's for personal use, however if you find it useful, just use it. I'm always interested in feedback, you can contact me via: vdhoogt@hotmail.com.

Use this program at your own risk! Active Home Vista for Android and Active Home Vista are provided "AS IS" without any warranty of any kind, either express or implied. The entire risk as to the quality and performance of the software is with you. The author is NOT liable for any DAMAGES resulting from the use and misuse of this program.

--------------------------
Supported speech commands:
--------------------------
* Global commands
All units off (for active house code)
All lights on (for active house code)
All lights off (for active house code)
Status request
Hail request

* Room commands
'Room name' All units on
'Room name' All units off
'Room name' All lights on
'Room name' All lights off

* Unit commands
'Unit name' On
'Unit name' Off
'Unit name' Dim
'Unit name' Bright
'Unit name' Status request

* Media player commands (only available when media player unit is placed in one of the rooms)
Play
Next
Previous
Stop

-------------------------------
Supported command line options:
-------------------------------
ActiveHomeVista [Filename] [House code] [Unit code] [Function code] [Extended code] [Dims]

The following command line options are available:
Note that the parameters have to be divided by a space. If the parameter itself (like All units off) contains spaces, make sure to use quotes (so: "All units off").
[Filename]      Always the first command line option (if present). If the parameter denotes a valid filename and has the x10 extension, Active Home Vista will try opening the file.
[House code]    Used to specify the House code: A till P
[Unit code]     Used to specify the Unit code: 1 till 16
[Function code] Used to specify the Function code. Valid codes are: All units off, All lights off, All lights on, On, Off, Dim, Bright, Extended code and Status request
[Extended code] Used to specify the Extended code, only used when the Function code is "Extended code". Only one value is supported: Preset dim level
[Dims]          Used to specify the amount of dims. Value is used relatively when using the Dim and Bright commands and used absolutely when using the Preset dim level extended command

Not all combinations are valid, below the valid combinations are listed (they can all be combined with the filename parameter):
ActiveHomeVista [Function code]; only All units off, All lights off & All lights on are valid. Active Home Vista will execute these commands for the active house code
ActiveHomeVista [House code] [Function code]; only All units off, All lights off & All lights on are valid. Active Home Vista will execute these commands for the specified house code
ActiveHomeVista [House code] [Unit code] [Function code] [Dims]; only On, Off, Dim, Bright and Status request are valid. Active Home Vista will execute these commands for the specified house code and unit code.
                                                                 Note that Dims is used only for the Dim and Bright commands. Dims can be omitted for the other commands. 
ActiveHomeVista [House code] [Unit code] [Function code] [Extended code] [Dims]; if function code is "Extended code" and Extended code is "Preset dim level" then Dims gives the absolute dim level for the specified unit.

Some examples:
ActiveHomeVista "All units off"
ActiveHomeVista B "All units off"
ActiveHomeVista B 3 On
ActiveHomeVista B 4 Dim 10
ActiveHomeVista B 4 "Extended code" "Preset dim level" 53

R2.2.2 (build 8735) - November 6, 2011
- Fixed: sometimes the statusbar was not updated correctly
- Fixed: the amount of physical memory available in the About Window is incorrect when more than 4GB of memory is installed

- Changed: in certain situations the application starts quicker now
- Changed: decreased CPU usage in idle

R2.2.1 (build 8662) - October 18, 2011
- Fixed: automatic check for updates resulted in popups even when no update was available
- Fixed: 'Base64: Incorrect string format' messages

- Changed: minor update of the Options window 

R2.2.0 (build 8652) - October 3, 2011
- Fixed: dusk / dawn timers sometimes trigger 12 hours off
- Fixed: PC commands (sleep, restart, etc.) sent X10 commands when triggered by network client or timer when the CM15A is used
- Fixed: Media player commands sent X10 commands when triggered by network client or timer
- Fixed: possible incorrect on/off status of units after resume from sleep now in case of network clients; don't forget to update these clients as well
- Fixed: robustness issues when changing multiple communication options at once
- Fixed: web server could be enabled for network clients which should not be possible
- Fixed: index out of bounds error when removing a unit that is used in a macro that has a timer attached + it was the last macro action in that particular macro (or something like that :))
- Fixed: removing last unit of a certain house code did not remove global function entries from macros

- Changed: made behaviour of the balloon hint more consistent for PC commands (sleep, restart, etc.)
- Changed: now the web server password is stored encrypted
- Changed: now only allows port numbers <= 65535 in Options window
- Changed: minor update of the layout of the Options window

- Added: option to check for updates regularly
- Added: automatic update functionality
- Added: version checking between clients and server
- Added: password protection between clients and server
- Added: behavior for battery reset indication of interface
- Added: WOL for network clients

R2.1.6 (build 8383) - September 6, 2011
- Fixed: crash with certain timer combinations
- Fixed: sunrises and sunsets window not updated correctly when time is changed to another year  

R2.1.5 (build 8325) - August 3, 2011
- Fixed: PC commands (sleep, restart, etc.) sent X10 commands when triggered by network client or timer
- Fixed: setting a dim level using the webserver for old-style dim units results in the wrong dim status on the webpage   

R2.1.4 (build 8312) - July 11, 2011
- Fixed: closing the Statistics and Sunrises and sunsets window using the cross button did not free up the associated memory
- Fixed: possible incorrect on/off status of units after resume from sleep
- Fixed: error in estimating status in rare cases

R2.1.3 (build 8297) - April 29, 2011
- Fixed: Possible Access Violation when shutting down or logging off Windows

R2.1.2 (build 8288) - April 26, 2011
- Fixed: only selecting the location tab already enabled the Apply button in the Options window
- Fixed: estimating status does not result in informing network clients of changed status
- Fixed: error in estimating status
- Fixed: rare access violation when resuming from sleep

- Changed: the web control action buttons and room buttons are now correctly enabled / disabled    

R2.1.1 (build 8121) - February 21, 2011
- Fixed: Invalid variant type and access violation errors when using the CM15A
- Fixed: in rare cases a minimize or restore of the program could result in a stack overflow
- Fixed: when opening the sunrises and sunsets window when the main window is minimized the main window could become visible in some cases
- Fixed: status is requested twice when resuming from sleep
- Fixed: 'Wrong COM port selected' message when CM15A is selected as interface and no COM port is available
- Fixed: drag and drop on the same location results in file changed status

- Changed: when suspending, the server is now closed asap to allow closing network connections more gracefully
- Changed: added ip address information to logging of network client communication
- Changed: program is now more robust for incorrect date and / or time information from the interface
- Changed: removed the beta status of the CM15A interface (thanks to Kole and Ron!)

- Added: room actions to the tray icon menu
- Added: option to directly link to interface macro for interfaces that support triggering macros directly from Active Home Vista

R2.1.0 (build 8042) - January 11, 2011
- Fixed: sometimes the tray icon did not show the right connected / disconnected status
- Fixed: default of start minimized (FALSE) was not handled correctly 

- Changed: the link to Web Control from the Help menu is now disabled if the web server is disabled
- Changed: changed the Communication tab in the Options form a little bit
 
- Added: Sunrises and sunsets to the tray icon menu
- Added: CM15A (beta!) support. Note that the ActiveHome Pro SDK is needed to get it working

R2.0.0 (build 7921) - November 15, 2010
- Fixed: some general robustness issues
- Fixed: made handling extreme situations (time zones, locations) more robust
- Fixed: sometimes the macro name was not shown in the tray update
- Fixed: interface time was not always automatically updated when needed as only the time portion was checked
- Fixed: counting of number of actions from network client (now only the X10 actions are counted)
- Fixed: sometimes the unit bar was not properly aligned
- Fixed: the tab order in the options window   

- Changed: now the X10 commands used during programming are executed synchronous
- Changed: position of message dialogs during programming devices
- Changed: slightly improved the accuracy of the dusk and dawn timers
- Changed: when opening a x10 file fails (using the parameter option), the program will exit with code 1 instead of 0 
 
- Added: option to disable auto scrolling in the logging window
- Added: option to minimize Active Home Vista when pressing the close button
- Added: option to include timestamps for the tray updates
- Added: graphical overview (chart) of sunrise and sunset times
- Added: location & time zone to the logging
- Added: web server

R1.6.0 (build 7284) - August 29, 2010
- Fixed: when pictures failed to load when a new x10 file is loaded, the file changed status was incorrectly set to false (also the error message has been improved)
- Fixed: not all message dialogs were correctly positioned
- Fixed: sometimes the addressed units were reset during estimating

- Changed: renamed addressed devices to addressed units in the statistics window
- Changed: improved robustness of resuming from energy saving states
- Changed: made the tray updates for macros consistent regardless where the trigger came from (X10 remote, network client or server) 

- Added: possibility to shut down, restart, put to sleep or hibernate your PC using your X10 remote (or network clients)
- Added: option to NOT store macros into the interface. Now you can trigger a PC macro from your X10 remote
- Added: media player & PC state commands can be added to a macro (when it's not stored in the interface)   

R1.5.4 (build 7239) - August 11, 2010
- Fixed: occasional thread error
- Fixed: sometimes when loading a file failed, the file was still partly loaded in Active Home Vista (now it's properly closed)
- Fixed: for timers that are not stored in the EEPROM, the dusk and dawn setting was not working correctly
- Fixed: for timers that are not stored in the EEPROM, no trigger would be set if the next timer is planned for next year 

R1.5.3 (build 7225) - June 20, 2010
- Fixed: access violation (address 000ECCD2) in case of inconsistent unit bar settings
- Fixed: device updates were not broadcasted to network clients if the 'Show tray updates' options was disabled

- Changed: default of 'Start minimized' changed to disabled

R1.5.2 (build 7218) - June 13, 2010
- Fixed: in a specific case timers did not fire correctly
- Fixed: occasional thread error on resume from sleep
- Fixed: occasional problem with resetting the unit bar
- Fixed: change unit type command was not working correctly; it did not update the unit capabilities correctly 
- Fixed: now the recently used file list can contain max 9 items, instead of storing 9 but only loading 3 on start up
- Fixed: added all lights off support for the WS467

- Changed: improved robustness in case the unit bar settings are incorrect
- Changed: now it's prevented that either the main window or the logging window is positioned outside your desktop
- Changed: now it's possible to change to a TM13 unit type (only if unit code is 1!)
- Changed: WS4777 renamed to WS477, also the picture has been updated
- Changed: added extended dim support to LM14A
 
- Added: tweak to solve a discrepancy of the TM13 unit. If set to address P1 it will reply with address M1 on status requests. This tweak is a workaround for this discrepancy. This tweak can be enabled or disabled in the options window.
- Added: apparently there are new versions of the LM465 and WS467 on the market that do support the extended dim and all lights off commands. You can find these new units as LM465 (new) & WS467 (new) in the unit list.
- Added: type properties window accessible from both the unit bar and your units located in the rooms. Now you can see what kind of commands are supported by the selected unit. 

R1.5.1 (build 7148) - May 9, 2010
- Fixed: also check whether or not the EEPROM is still in sync after drag & drop of rooms & devices
- Fixed: in rare cases the server could be enabled where it should not
- Fixed: an occasional crash and hang up in closing the server
- Fixed: sometimes when more than one sentence had to be spoken out, text to speech was incorrectly being disabled for the rest of the session
- Fixed: memory leak in network client
- Fixed: minor cosmetic flaws in the options window
- Fixed: EEPROM in sync status not reset when downloading and / or clearing EEPROM fails
- Fixed: EEPROM usage in status bar sometimes not aligned properly after clearing / downloading
- Fixed: rare endless loop when downloading EEPROM data
- Fixed: status request button not disabled for units when a CM17A is used
- Fixed: status request actions are not removed from macros when a switch is made to the CM17A
- Fixed: in macros both StatusOn and StatusOff could be programmed, while these are not functions but status updates
- Fixed: executing a voice triggered off macro didn't execute when the 'off is on' setting is enabled for that macro
- Fixed: now also files with 256 devices will be opened, the previous version only opened up to 255
- Fixed: not always the correct number of network connections was shown in the status bar 
- Fixed: in very rare cases a timer was not triggered (found thanks to Lee)

- Changed: no more logging when the network client tries to connect to a server that's not available
- Changed: made initialization of serial port more robust
- Changed: now only files are synchronized between server & clients if it's really needed (file has changed or a different file has been selected)
- Changed: enabled the Media Player for the network clients
- Changed: when setting the clock the delayed macros keep working if the time difference is <= 5 minutes

- Added: more specific error information for text to speech errors
- Added: now the network client also shows an indication in the status bar if the server is not connected to an interface
- Added: support for the Android client

R1.5.0 (build 6975) - March 19, 2010
- Fixed: security option not working for timers that are not stored in the interface
- Fixed: issue with setting timers in the past which cause a loop for timers that are initiated by the PC

- Changed: disabled the large icons option in the customize dialog for the unit bar
- Changed: made the network connection more robust
- Changed: now the save action is only enabled when the file has changed
 
- Added: text to speech and speech recognition
- Added: synchronization of device images for the network client
- Added: support for more than 1 network client
- Added: support for a simple command line interface which enables the program to be used by external applications

R1.4.0 (build 6138) - January 10, 2010
- Fixed: rare race condition when downloading / clearing the EEPROM
- Fixed: now the unit code dropdown box of the TM13 device is disabled (it only accepts unit code 1)

- Changed: added Windows 7 detection to the logging window
- Changed: clicking a unit besides the unit image now also triggers an on or off transition (especially useful when using small or non-square images)
- Changed: default the server is disabled now (to prevent unnecessary firewall warnings)

- Added: option to startup the application minimized or not
- Added: option to show the application in the tray or in the taskbar
- Added: American unit types
- Added: option to customize the unit bar
- Added: change type command for units (only changes to a type with the same or more features are allowed). For instance you cannot change a dimmable device into a non dimmable device.

R1.3.4 (build 6093) - December 15, 2009
- Fixed: house codes for the CM17A were mixed up
- Fixed: in a small number of cases timers were not programmed in the EEPROM because of a fault in the 'EEPROM compression algorithm'

- Changed: CM17A (also known as Firecracker) is out of beta stage thanks to Larry Fecich

R1.3.3 (build 6077) - November 8, 2009
- Fixed: small error in estimating device statuses
- Fixed: searching text in logging window will never result in a hit after the first 64kB of characters
- Fixed: error in recently used file list when selecting an existing file after a nonexisting file
- Fixed: small memory leak in the server
- Fixed: crash when closing Active Home Vista while the Customize Dialog is open
- Fixed: prevent closing the application when a modal form (like the timer form) is still open 
- Fixed: made handling of toolbar settings a little bit more robust
- Fixed: made handling of read only and / or access denied files more robust
- Fixed: in rare cases timers did not work
- Fixed: sunset / sunrise timers with delays that cross day boundaries work correctly now
- Fixed: incorrect resolution calculated when the system date / time crosses a year border   

- Changed: detailed the serial port logging
- Changed: more efficient use of the EEPROM in some cases
- Changed: now Save As in the logging window saves the file with the txt extension instead of no extension at all
- Changed: Store in interface option in timer window is now only active when timer is active

- Added: toolbar for room actions
- Added: interface firmware revision & interface type to logging
- Added: message when selecting a recently used file that cannot be loaded
- Added: some icons to the status bar + changed the layout a little bit
- Added: more clear indication in the status bar (by red font) when the EEPROM is out of sync 

R1.3.2 (build 5739) - May 29, 2009
- Fixed: crash on shutdown when toolbar settings cannot be saved (for whatever reason)
- Fixed: the program did not handle time zones without DST (or with the 'adjust for DST' setting disabled) properly
- Fixed: now after a time update from the OS, the EEPROM is checked for being in sync as the time zone / DST settings might have been changed

R1.3.1 (build 5686) - April 30, 2009
- Fixed: addressed devices where updated even if the address was not successfully sent to the X10 controller
- Fixed: problem with drag & drop (to change tab sheet order + to move units from one tab sheet to another) introduced in R1.3.0
- Fixed: if exactly 1024 bytes are used in the EEPROM the program locked up
- Fixed: some trouble with timers and empty macros

- Changed: PayPal site is now in English. The user can also select the preferred currency (EUR or USD) 
- Changed: now unit statuses are only estimated when timers are not stored in the interface or when timers are stored + the EEPROM is in sync
- Changed: deleting of timers is now a little bit more logical (it's now possible to delete all timers)

- Added: hint to dim level slider; makes it easier to see the exact dim level
- Added: search functionality to logging window
- Added: previous & next buttons to toolbar (select Reset... via View -> Customize -> Toolbars to show the buttons)
- Added: icons for previous and next buttons in timer window

R1.3.0 (build 5555) - April 16, 2009
- Fixed: program window and rename window were resizable
- Fixed: start with Windows setting was not working
- Fixed: the sunscreen units do have a memory for the dim level
- Fixed: timer with dim level (using Bright / Dim commands, e.g. LM12) does always result in 100% brightness
- Fixed: brightenfirst behavior (not selectable anymore if function code is Brighten)
- Fixed: small race condition when switching to DST 
- Fixed: issue with estimating unit statuses in DST
- Fixed: issue with setting time if standard time (used in interface) is other day than the PC day
- Fixed: some memory leaks

- Changed: cancel option in options window
- Changed: now the program prevents programming a timer which has the same time for both start and stop action as the CM10A / CM11A and CP10 does only execute the first one!

- Added: support for CM10A (also known as IBM Home Director 16) controller (Macro download is not supported)
- Added: support for CM17A (also known as Firecracker) controller
- Added: support for CP10 controller
- Added: possibility to let the PC trigger timers instead of the interface. Option can be found under special settings in the timer window
- Added: hints to the timer window

R1.2.1 (build 5117) - March 15, 2009
- Fixed: dim level cannot be changed when a user supplied picture is used
- Fixed: now the function code for 'smart' dimming is called Extended code instead of Preset dim 1
- Fixed: the hint message of the On and Off button of macro devices
- Fixed: some issues with moving rows in the macro window
- Fixed: status estimates & updates are now properly propagated to the network client
- Fixed: in rare cases the order of macro actions with the same delay could be changed by the program -> not what the user wants
- Fixed: in rare cases a timer was missing

- Changed: the logging window is now always shown on top of the main window

- Added: hail request / acknowledge support
- Added: AWM2P device
- Added: now the program keeps track of the addressed units from all house codes, not only the active house code
- Added: possibility to make a donation
- Added: option to change the color of the units

R1.2.0 (build 4931) - February 8, 2009
- Fixed: when opening a new file when the current one is changed, two times a question is asked to save the changed file when answering no to the first question
- Fixed: problem when two macros with the same actions are specified
- Fixed: decreased memory usage
- Fixed: sometimes a poll request from the CM11A was not handled 100% correctly
- Fixed: the change in dim level from a poll request was reported incorrectly
- Fixed: logging form prevents Windows from shutting down / restarting and logging off

- Changed: improved the layout of the timer setting window

- Added: possibility to use user pictures (both for 'on' and 'off' status) for devices instead of the default supplied ones
- Added: constraints to the dusk / dawn timers; e.g. turn on device at dusk but not earlier than 18:00
- Added: cancel button to both the macro and timer window

R1.1.3 (build 4573) - November 7, 2008
- Fixed: problem with setting some dates in the timer window
- Fixed: removing the first device in a room does not rearrange the remaining devices
- Fixed: nasty bug in the DST calculation when the from date is in DST and the to date is not
- Fixed: sometimes the DST was entered one day to early and left one day too late
- Fixed: sometimes sunsets and sunrises were calculated incorrectly
- Fixed: sending a macro 3 times didn't work correctly all the time

- Changed: now the network connection is closed when the client is going to sleep mode
- Changed: now remember the location in the room when rearranging devices (e.g. when removing a device) + some small improvements in that area
- Changed: improved efficient usage of CM11A memory in some cases
- Changed: updated to version 1.11 of TSunTime for calculating sunrises & sunsets

- Added: DST times to logging
- Added: Cancel option to save file question on close file and exit program
- Added: now the CM11A time is updated (if needed) when setting a new system time
- Added: support for controlling Media Player Classic (besides WMP)

R1.1.2 (build 4290) - October 12, 2008
- Fixed: connection with CM11A via USB to serial adaptor
- Fixed: sorting of serial ports in options Window
- Fixed: rearranging devices in tab sheet (sometimes an empty row appeared)
- Fixed: sometimes on first startup the vertical scrollbar was shown, while it should not
- Fixed: the server wasn't shutdown when switching to network mode with the server enabled

- Changed: program info
- Changed: added information on 32 or 64 bit OS in logging window
- Changed: now scrolling is made smoother
- Changed: logging of errors is now more descriptive (more text, less numbers)
- Changed: handling of connection errors is now more logical (don't retry if retrying won't help for instance)

- Added: logging when the CM11A time is adjusted because the time difference is too big
- Added: duplicate device functionality
- Added: check for program updates functionality
- Added: Menuitem for opening the Active Home Vista homepage
- Added: now a file can be added to the command line which will be opened at startup
- Added: association x10 file type with Active Home Vista
- Added: hints in Options window

R1.1.1 (build 4073) - September 17, 2008
- Fixed: looping status requests if current day is after the 256th day of the year (oops!)
- Fixed: device update from the CM11A without an address was handled instead of ignored
- Fixed: Access violation during logoff or shutdown of Windows
- Fixed: incidental slow start up time if logging is enabled

- Changed: only write the Eeprom_decoded.txt file when actually writing the EEPROM of the CM11A

R1.1.0 (build 4056) - September 4, 2008
- Fixed: after a com port change, updates for installed devices were not handled correctly
- Fixed: incidental error message: 'cannot remove notification icon'
- Fixed: reset toolbar option from Customize dialog not working
- Fixed: a number of minor issues

- Changed: snap behavior of the logging window
- Changed: the statistics window is now updated real-time
- Changed: ignore macro updates from CM11A when file is not in sync with EEPROM
- Changed: removed the 'reset after sleep' option; there's no need for it; always request the status after sleeping if in network mode
- Changed: disabled personalized menus
- Changed: some minor other changes not worth to mention

- Added: status request for network mode; fetches the status from the server
- Added: ability to report bugs / request enhancements by means of mail
- Added: now the program keeps track of changes that might need a save. If needed the user is asked to save instead of saving always on exit
- Added: Windows Media Player buttons
- Added: SWM1P device
- Added: program wizard for all devices that support programming (with the exception of the SWM1P)
- Added: device status estimation when opening a file that is synced with the EEPROM. All timers are 'simulated' to get to the most likely status of all devices
- Added: some more features that are too small to mention

R1.0.0 (build 2997) - June 7, 2008
- Initial version of Active Home Vista
- Controls X10 devices using On, Off, Dim, Bright and Extended commands
- Receives updates from the CM11A about X10 commands
- Create and download macros to the CM11A
- Create and download timers to the CM11A (including dusk / dawn support)
- Program tries to combine macros / timers in an efficient way to get the highest possible dusk / dawn resolution (which the program finds out itself, of course)
- Clear the memory of the CM11A
- Control your Windows Media Player using the X10 remote control
- Connect to the program from another PC to control devices / receive updates from another location
- And some more stuff you can find out yourselves...

Have fun.

Buman
vdhoogt@hotmail.com
November 6, 2011