Adaptive Home Logic - AHL/3™

What’s New



Update [] (Download Latest Version)


RSS News Feeds

Updated the programs default RSS news provider to BCC News, following recent changes by the previous news provider that made it less reliable. The program’s parsing of news feeds has also been improved, so that news is now more accurately pronounced by the speech system.


Driver Architecture

The driver management code has been further fine tuned for faster operation, significantly reducing the number of driver communication timeouts, together with a noticeable improvement in overall efficiency and performance.


Release Date: 16 January 2013



Update 3.4


This update provides support for X10 CM15 status reporting, 1-Wire temperature sensors and Bluetooth device proximity detection together with some stability improvements.


CM15 X10 status reporting

Although the program makes a note of the last instructions sent to an X10 module, an event conditional upon the status of a module will now check with the CM15 interface to see if the module’s status has been changed outside of program control, making it aware of the status of two-way X10 lamp and appliance modules that may have been turned on or off manually.



An issue has been rectified that could prevent the program from sending an event message by email. Incoming emails are also now better parsed, so that a sender’s name containing underscores is more accurately pronounced by the speech system.


System Status

The space above the program’s scanner display can now be utilised by the events to display or flash the system’s condition status, such as condition white, blue, green, yellow or red (alert!). More profoundly bringing attention to itself that a certain condition as arisen.


1-Wire Temperature Sensors

Instructions are now provided on how to easily interface the program with any number of 1-wire temperature sensors, making it very easy to accurately display indoor and outdoor temperatures within the program’s virtual weather station display, to control HVAC systems, and / or to log different temperature reading from around the home.


Bluetooth Proximity Detection

This release also sees the introduction of a new driver to detect the presence of your Bluetooth enabled smart phones, and therefore whether the person carrying the smart phone is at home or away. This can be used to automatically (and discreetly) alert you that another family member has arrived home safely, and / or to automatically lock the computer when you go out, etc.



Unfortunately, it has become necessary to disable the enter key, as a way to quickly submit requests entered within the program’s interaction field, until a better solution is found. Although this minor ability was very convenient, it’s not the way Window’s was supposed to work, we got around this by using the program’s advanced call-back functionality, but have found that this could interfere with the program’s networking capabilities, causing it to eventually become unstable and crash.


Remote telnet operations are now recorded in the program’s log file.


The Extract Data routine has been updated to accept the wildcard character not only in the middle of the prefix word but also at its beginning or instead of it, making it even easier to interface the program with an even wider range of peripherals.


The optional closing wave file is now played synchronously, following a customer request, which allows the final closing wave file to be completely played out even when the termination process is quicker than expected.


A new facility, accessed via the interaction field, to hide or show the desktop icons, making the display screen clearer and to improve privacy whilst making videos of the program.


Release Date: 09 December 2011



Update 3.3


Version 3.3 is a small but interesting update that advances the system’s stability and introduces some exciting new features.


Power Line Modules

The data validation routine within the PLM entry screen has been improved to better detect invalid data input that could later cause the program to crash during processing.


Natural Language Interface

The keyboard enter key can now be used to very quickly process requested entered within the program’s interaction field, significantly improving the effectiveness of the Natural Language Interface. Several new functions have also been implemented within the NLI to rapidly clear any or all of the CM display boxes, as well as a new function to speak the time, also in plain language, for example “It’s now a quarter past one, p.m.”.


On Screen Display

The program now has a new ability to alert you to an important event by displaying a brief message on the screen in fairly large bright green lettering, a bit like a television that displays the name of a new channel, regardless of any other windows that might be use, or even if the program is operating in the background from the system tray.


Console Beep

The events now have the ability to sound the console beep at a specified frequency and duration, in a similar way to the beep sound that the computer makes when it’s first turned on, providing yet another way to alert the operator, in a fairly profound way, that an important event has taken place.


Power Status

The program can now take into account the computer power status, which is particularly useful if the program is running on a laptop, as an event could then be setup to alert you if the batteries drop below a specified level.



As well as your system’s local time, the program now also display’s UTC (Coordinated Universal Time) during start-up.


Release Date: 24 June 2011



Update 3.2


An intermediate update that primarily enhances the performance and usefulness of the program’s driver architecture:-


Driver Architecture

Tweaked and augmented several parts of the driver management code, improving overall system efficiency and



Added the ability to transfer the value contained within a driver’s field to a user variable; providing greater flexibility and making it easier to log driver output.


Velleman K8055

Introduced a new driver to monitor and control the digital and analogue inputs and outputs of a Velleman K8055 USB Experiment Interface Board, making the outside world even more accessible!



Several sections within the program’s help file have been updated.


Release Date: 18 February 2011



Update 3.1


An intermediate update that includes several enhancements & fixes:-


SMS Facility

AHL/3 can now alert you to important circumstance by SMS message delivered direct to your mobile phone, as well as allowing the program to be securely and simply controlled via an SMS message sent from your mobile phone, when it’s connected to a compatible GSM modem or another mobile phone via a USB cable or Bluetooth adaptor.


X10 CM15

AHL/3 now includes support to control the new CM15 X10 interfaces.



The system information routine has been updated to correctly identify the newer OS platforms.

The program has been modified to prevent its graphics from flickering when clicked.

The email address field lengths have been increased to cope with longer e-mail address details.

A bug was identified in the set com port routine that could cause the program to crash if the Settings->Com Port dialogue were aborted, and then subsequently when the program was restarted.

An issue was identified in the edit PLM sub that could cause the program to crash if it reported that the interface method was not ready and then the apply button was clicked.

A minor issue has been corrected with the Event Message Report.

The program’s icon has been updated to 3D!


Release Date: 11 February 2010



Update v3.0


Version 3 is a major update that significantly improves the program’s Integrity, extensibility and degree of refinement.


32/64 Bit Compatibility

AHL/3 is now compatible with all editions of Windows XP, Vista and Windows 7.


Driver Architecture

Despite having fairly extensive communication facilities, AHL/3 sees the introduction of a comprehensive driver architecture incorporating exceptionally fast inter-process communications, providing it with almost unlimited extensibility, allowing OEM’s, third-party software developers and your AHL team to add wide-ranging support for some of the more proprietary products and devices into your wider home automation environment.


Event Logic

The program’s event engine together with the event entry screen has been significantly redesigned to allow complex event scenarios to be easily implemented, negating the necessity to write scripts in all but the most complex of circumstances. Now it very easy and intuitive to use multiple (IF / AND / OR / XOR / ELSE) logic to create more intelligent events that can react to more complex circumstances as required.


SAPI-5 TTS Voices

In addition to SAPI4 TTS voices and MS speech Agents, the program can now also support some of the newer SAPI v5 TTS voices as well. The voice dialogue has also been improved with a test facility, making it easier to experiment with the various settings.


32 Com port data streams

Redesigned and augmented the com port settings routine and dialogue to handle up to 32 com port data streams concurrently. In addition, any changes can now be abandoned before being applied.


Streamlined data handling

The data section within the event entry screen together with the underlying code has been streamlined to remove some minor inconsistencies between file, com port and socket data operations; improving efficiency, uniformity, ease of use and dependability. In addition data stream output has been augmented so that live current data (event status, IO ports, global and / or user variables) can be embedded within an output data stream, allowing a generic device not only to be monitored and controlled by the program, but also permitting it to react automatically to the status of the program as well.


Event Functionality

Along with improved event logic there are also many other improvements. In addition to starting another program or batch file, an event can now also close another program as well. It can also very quickly start or stop a media audio file using its new built-in intrinsic media player, or open / close a particular CD draw, flash the screen or keyboard LED’s, or initiate a shut down sequence.


Updated Look

In line with the greater graphic resolution found in Vista, AHL/3 has been updated to use a smaller more-professional font-size; many of the dialogues now include a small logo that reflect the dialogues purpose and make more use of mouse friendly spin boxes. In addition the program now includes a status bar displaying its status at any given moment; the monitor text window can now be toggled on and off, or the program can be minimised to the system tray whilst it operates completely in the background. It even has an option to slowly display a translucent splash screen at start-up!


Control via Email

As well as being able to send e-mail messages, to alert you to circumstances that may arise, the program can now also be securely controlled via e-mail. It can even alert you to, or speak, newly received (personal) e-mail messages, whilst leaving them on your server in case you wish to reply.


Log Reporting

The program’s log reporting system has been completely revised to record all aspects of the program’s operation including Driver activity, Events, Natural Language Interface, Power Line Modules, System Messages and Warnings. Log entries can now be filtered by Type, Object, Message Level and Date (with built-in calendar control to ease date selection) before being sorted by Date/Time, ID# or Message Level in either ascending or descending order before being displayed or printed, making it very easy to focus in on your area of interest.




• The application has now been completely componentized, greatly improving efficiency, consistency, maintainability, security, performance and dependability, whilst at the same time reducing operating overhead. It’s also making greater direct use of the Windows API, improving efficiency yet further.


• Now an event can open or close a particular CD draw, change the program’s default voice, flash the main window, or toggle the keyboard LED’s.


• An issue has been identified that was preventing UPB modules from being controlled automatically by the events.


• An issue was found with the program’s MD5 integrity check that could occasionally cause the program to fail at start-up. Program start-up is also quicker.


• Corrected a minor design flaw within the APRS remote control protocol that was preventing an APRS remote access discontinue from being scheduled or cancelled, and the program’s run level from being changed remotely whilst a security access code was in force.


• In addition to the sun rise and set times for your area, the program can now also take into account the phase and illumination of the moon each day.


• The program’s clock has been upgraded to display the time to a tenth-of-a-second resolution.


• The program’s support menu option has been updated in line with our new e-mailing strategy.


• A number of issues were identified that were causing an incorrect TTS voice to be selected on a machine with a different number of installed voices.


• A file path issue has been corrected within the wave file play routine.


• An issue has been corrected within the log entry purge routine that could eventually cause the program to crash.


• The program now has a new dialogue to select a custom input stream separating character. This prevents the possibility of separating character inconsistencies when multiple events are acting on the same data stream.


• The virtual weather station graphical display now automatically provides a Beaumont scale read out.


• Found a bug within the display mapping routine that under certain circumstances could cause the program to crash.


• An issue was identified in the system info routine that was computing the free space on drive ‘c:’ rather than the drive that the program is actually using.


• Found a potential issue that could prevent the date from being displayed in the correct format, or at all, when the program entered a new day, even though internally the date was being acted upon correctly.


• Extensively reviewed, revised and streamlined the program’s help file.


Release Date: January 2010



Update v2.0


This is our most significant update so far, taking the program to whole new level of refinement & sophistication:-


New - GUI (Graphical User Interface)

New clean GUI (HAL9000 style) - to accommodate additional data streams, RSS News / Weather feeds, Virtual Weather Station graphical display, Socket / Com port data, etc. The input dialogue is also improved, making it easier to make a keyboard request (in plain language), or to manually send data (plain text or hex values) to a com port or socket stream on-the-fly, facilitating testing.


New - Display Mapping

The operator can now select which data stream is sent to a particular text editor (or in HAL9000 language CM or Monitor Circuit), so as to monitor several different data streams simultaneously. It's even possible to display a data stream in plain ASCII text in one display box whilst simultaneously displaying its Hex values in another. Making it much more straightforward to interface with even the most awkward of devices!


New – Intelligent Speech Buffer System

This latest release features an automatic intelligent speech buffer system that speaks items in order of priority & prevents the possibility of speech overlap. In addition each speech sentence can now be spoken in a different voice and / or at a different pitch, speed or volume (or in other words personality, mood or emphasis) from sentence to sentence where necessary. Also a verbose message, which is instigated by an event to report a change in its status, can now be selected randomly (from a text file pertaining to the message) to provide a less predictable but relevant response, as well as being selected sequentially and simple static messages.


New - TCP/IP Sockets

Adaptive Home Logic can now automatically establish & maintain a TCP/IP socket connection with up to 26 networked devices concurrently, using Window’s built-in Winsock for optimal efficiency. This greatly extents the program’s reach by allowing it to communicate with virtually any TCP/IP device, regardless of how its connected, including (industrial strength automation) Ethernet (Input / Output) peripherals, devices connected via WiFi, other computers within a LAN or connected via the Internet, as well as other software (running on the local or a networked computer) that can communicate via TCP/IP, including using Adaptive Home Logic in a distributed configuration, as well as allowing the program to act as a bridge between one form of computer communication and another.


New – Remote Access Telnet Host

The program’s TCP/IP Server can easily be configured to act as a Telnet host, allowing direct (password protected) remote access to the program’s natural language interface from any inter-networked computer in the world.


New – Technology Matrix

The program now incorporates a technology matrix that makes it uniform and straightforward to utilise various power line modules even when their underlying technology is different, as well as easing migration.


            New – X10 and UPB (Universal Power Bus) Two-Way drivers

Adaptive Home Logic now has direct intrinsic support for both X10 & UPB to quickly control, monitor and re-act to your power line modules, without the necessity of a home automation controller. Featuring interface / module polling and status reporting, support for linked UPB modules and the ability to automatically set a modules status at start-up and or shut-down, whilst remembering (or ascertaining) its correct brightness level. Please note that the UPB driver is in its public BETA testing stage of development.


New – RSS Weather Feed

Keep up to date with the very latest weather conditions & forecast for your area. The program can now automatically download Yahoo’s (The Weather Channel) RSS weather feed at regular intervals, interpret & display this information, in either metric or imperial units. Specific data can also be automatically extracted and mapped to the user variables, so as to be available to the events & /or the virtual weather station graphical display.


New – Virtual Weather Station Graphical Display

See your current weather conditions at a glance with the new Virtual Weather Station graphical display, updated in real time, including self-adjusting inside & outside temperature bar graphs (Fahrenheit / Celsius), Wind Speed & Direction (on a compass rose) and atmospheric pressure trend (on a bar graph with adjustable update interval). This data can be supplied by a virtual weather station peripheral or for free via the RSS weather feed, or even a bit of both! Events can also be established to alert you to high wind speeds, etc.


New – RSS News Feeds (Talking News Aggregator!)

Stay up to date with the very latest World, National, Business or Technology News, Entertainment or Gossip by automatically downloading up to 5 different RSS news feeds. Each news feed may be displayed & / or spoken.


New – Event Entry Screen

The different sections of the event’s entry screen are now accessible via buttons similar to a tabbed card-index system, so as to only present the operator with the fields relevant to their area of interest, making the program even easier to use & understand.


New - Other


In a similar way that a data stream maybe displayed in either plain text or in hexadecimals values, the data to be sent to, or extracted from, a serial or networked device may also be specified in hex or plain text.


The program’s date format & the (Sun rise / set) location co-ordinates are now stored within an INI file, so these details are now remembered when a new database is created.


The low memory warning dialogue, possibly displayed at program start-up, will now automatically resume execution of the program following 30 seconds of no user interaction in support of the program’s “power failure auto-restart” capability.


An issue was corrected with the Auto Mute function.


An issue with the file data extract and the file compare operations has been corrected, which was giving incorrect results if the file became empty.


An issue was found with the file re-naming operation, when the same file was selected.


Release Date: 27 December 2007



Update v1.02


This is an intermediate but important update that includes several enhancements & fixes:-


User Variables


Extended the number of user variables from 10 to 999, greatly enhancing program flexibility & usability.


Adjust Offset


Augmented the events minutes, first light, sun rise, sun set and after twilight conditions with the facility to specify a plus, minus or random offset.


Last Loop


A last loop option has been added to the events conditions, so that the I/O ports, X10 modules, etc. can be automatically set to a safe state when the program closes.




Further enhanced & refined the Natural Language Interface.

The Limit Range Dialogue was redesigned.

The Diagnostic Reporting function was improved to display a range of user variables.

An issue was identified with the events ‘Minutes’ field.

An issue was identified with accessing a database stored on a networked volume.

An issue was identified with using a database created on a system with a different number of TTS voices.

Fully reviewed & revised help file; rewriting several pages for improved clarity.


            Release Date: 19 October 2006



Update v1.01


This is a significant update that includes critical items, enhancements & fixes:-


Significant Enhancements


SQL (Standard Query Language)


This updates replaces the ad-hoc database with an integrated & embedded (zero-configuration, no administration, non-bloated) SQL-92 ACID compliant RDMS (Relational Database Management System).


Improved data integrity & reliability (Transactions are Atomic, Consistent, Isolated & Durable even after system crashes and power failures).


Each database is stored within a single ordinary portable disk file making them easy to backup, copy, e-mail or to use from a memory stick.


Easier to use & understand, Greater future capabilities (including data import / export, reporting, ODBC)


WSH (Windows Script Host)


This version adds support for WSH, for advanced users that wish to plug-in their own VBScript (Visual Basic Script) or JScript (Java Script) routines into the program to provide additional or specialist functionality.


Create complex ‘if-then-else’ scenarios, automate computer management tasks, or interface the program with live WMI (Windows Management Information).


The program can pass live data concerning the events, user & or global variables to a script when it’s started.


Uses operating system calls for optimum performance.


Knowledge of Windows Messaging is not required.


RS-485 (multi-drop serial network)


Redesigned the Com port handling sub-routines so that different events can quickly respond &/or control unique serial devices attached to the same RS-485 master / slave multi-drop “daisy chain” serial network, when used with a RS-232 to RS-485 converter. The general integrity & efficiency of the Com port handling routines was also improved for resoluteness and easy of use.


            General Input File


Augmented the general file input routine so that user variables (flag, counter, etc.) & I/O ports can be silently set via file input.





Mutex (Mutually Exclusive)

This updates adds an OS Mutex. This prevents possible data corruption, by preventing multiple copies of the application from being run concurrently and writing the same data at the same time.





The program now provides a warning if there is insufficient memory for correct operation.

An issue was identified where the program was using excessive processor resources whilst in pause mode.

An issue was identified that could cause the verbose message report tabulation to go out of sync.

The Seasons function was corrected, now that we have the official dates.

General code optimization, several minor performance enhancements, some typographical improvements

Updated the compressed help file to reflect changes + several minor improvements.

Automatically installs SAPI4 and L&H TruVoice American English TTS engines.


            Release Date: 29 May 2006