Introduction
When a HomeVision schedule file is lost because of a computer crash or just
plain carelessness, the HomeVision controller is still running the program.
So obviously most of the schedule must still be present in the HomeVision
controller. The problem is how to convert it back into a usable format.
While writing the Linux HomeVision software I gathered quite a bit of
knowledge about the memory layout of the HomeVision controller. So after a
cry for help from an unfortunate HomeVision user who experienced the
described situation, I decided to try to convert a memory dump back to a
usable schedule file. When this turned out to be reasonably successful, I
thought more people might have a use for such a tool. So I put a bit more
effort in to make the tool capable of retrieving the necessary data from the
HomeVision controller itself and I added a simple user interface.
Requirements
- Linux, a 32 bits Windows version, or Mac OSX (PPC or Intel).
- The appropriate Tclkit or the
ActiveTcl binaries for your
platform.
Limitations
The extend of the data that can be recovered is limited by what was
originally downloaded in the controller. This means that the following can
NOT be recovered:
- Comments in the object actions
- Object names that were not selected for loading.
- All but the first 16 characters of object names that were selected for
loading.
- Object descriptions
- Initial state settings
- Macro and Infrared Signal control screen button assignments
- Port labels
- Named constants
- Serial port names
- 1-wire board information
Also configuration settings that are not stored in the schedule file are not
being recovered although some could be if there would really be a need for
it. I don't think there is such a need, but feel free to try and convince me
otherwise if you don't agree.
Installation
Download version 1.10 of recoverhaf.kit
(size: 81517 bytes) file and place it at any location you want.
Execution
Linux and Mac
Just execute tclkit recoverhaf.kit. If your tclkit executable is
located in your path, you can even make the script executable and run it.
If you are using the ActiveTcl binaries, execute
wish recoverhaf.kit.
Windows
Double-click the recoverhaf.kit file. The first time no associated program
will be known for this extension, so an "Open With" dialog will appear. Choose
your tclkit or ActiveTcl's Wish as the program to use for opening the file.
Check the "Always use this program to open this type of file" option to
keep this association for future invocations.
Operation
The program creates a window as shown in the picture on the right:
The "Settings" menu contains only one entry called "Serial port". By selecting
it a new window pops up that allows the selection of the serial port and
baudrate to use for the connection to the HomeVision controller. At the moment
the program only supports the four basic serial ports.
After the serial port has been configured, click the "Start" button or
select the "Start" entry from the "File" menu to start the recovery process.
The progress of the recovery process is represented in a pie chart.
When all the data has been retrieved from the HomeVision controller, it is
converted to a .haf file.
Any errors and warnings that were encountered during the conversion will be
displayed.
After the user closes that window, or if there were no errors or warnings,
a dialog pops up to allow the user to save the file.
The initial file name displayed will be the name of the file that was
originally loaded in the controller, but the user has the opportunity to
change the name before saving the .haf file.
So, no harm will be done to your existing schedule if you would like to try
out the tool even if you haven't yet lost your schedule.
This could be useful if your schedule behaves different from what you expect.
You could recover the schedule from the controller and check that it really
contains the actions you thought.
If you find any bugs in the program, please report them to me. My email
address can be found on the about screen accessible from the "Help" menu.
Last modified: 21 October 2007, 21:53 CEST
|