[an error occurred while processing this directive]
SmartV2 User's Manual

Software by The Gizmology Group

408/257-8872 . . . info "at" gizmology.com . . . www.gizmology.com
18983 Saratoga Glen Place . . Saratoga, CA . . 95070-3549


(c) Copyright The Gizmology Group 1996-7.
See "The Fine Print" below.

Table of Contents

Introduction The Configuration File The Object Classes Events Keypads & How To Use Them Schedules File Sequences File Single Digit Entry File Password File Sunrise/Sunset File Recovery File

Log and Log File

Console Display

The Fine Print

Introduction

The SmartV2 program implements a combined automation and security system for medium to large custom homes.

Features

SmartV2 scans switches located throughout your home and takes action when the switches are operated. Wall-mounted switches can control lighting, window magnetic switches can sense intrusion, motion detectors can sense motion that may indicate either normal household activities or intrusion. The action taken upon actuation of a particular switch is defined in a configuration file that you may modify.

The program contains an extensive scheduling capability. You can create detailed schedules that SmartV2 executes. Events that control lights and other devices may be scheduled for any minute (or range of minutes) of any hour (or range of hours) of any day (or range of days) of any month (or range of months.) You may specify particular days of the week, or even every Nth day, where N can be any number from 2 to 365. SmartV2 contains a sunrise/sunset table that is tailored for your latitude and longitude. Events may be specified to occur from two hours before to two hours after the current sunrise or sunset.

You can create SmartV2 Sequences. A Sequence is a list of events that SmartV2 will execute in order. Sequences can be invoked by operating a wall switch, entering a command on a keypad, or by including them in a schedule. A Sequence could be used to create a "scene"; lights would be turned on and dimmed to appropriate values. A Sequence may include "delay" events. Delays of seconds, minutes, or hours are possible. You could use a Sequence containing delays and initiated by a Schedule to control a set of lawn sprinklers, for instance.

SmartV2 is controlled by keypad display devices at various locations around the home. A single press of any single digit will produce an event. These events are assigned to the digits on a per-keypad basis by the Single Digit Entry file. You may modify this file to assign your chosen events to the keypad digits.

More extensive control of the system is also possible via the keypads. The "#" and "*" keys let you access an interactive dialog where any output in the system may be controlled. Schedules may be enabled/disabled; any switch input, including security sensors, may be enabled/disabled; and the status of the system may be interrogated.

The arming and disarming of the security system and its sensors are password protected. There are several security levels and a particular password may be limited in the level of access afforded. Sensors may be configured to be active only at or below a certain security level. This allows you to select perimeter-only or full security protection. The security level is set by entering a correct password at any keypad.

Hardware

The SmartV2 program runs on a PC-compatible computer system. It obtains its inputs and produces its outputs via several 7-input/8-output ADAM modules connected to the PC by an RS-485 multipoint network and/or via one or more 48-channel digital I/O boards located inside the PC. The keypads are connected to the PC through individual RS-232 serial ports.

Software

SmartV2 is implemented in the C language, using the Microsoft C Compiler V6.00A. It runs as an application under the MS-DOS V5.0 operating system. MS-DOS loads itself and SmartV2 from a single HD floppy disk; a hard disk is not required. After reading its configuration files from the floppy, SmartV2 does not access the floppy disk for the remainder of its normal operation.

The Configuration File

SmartV2 reads the Configuration File at startup to obtain basic information about the devices in your house and how to run them. Some of this information is supplied by your installer, and must not be changed; you may change other items as your needs change.

The Configuration File, as well as other SmartV2 files described later, are intended to be created and modified by a spreadsheet program, such as Microsoft Excel. Each row of the spreadsheet describes a particular SmartV2 entity, called an "Object". Objects are groupings of data within the program. Some Objects correspond directly with real-world devices, such as switches, lights, and dimmers. Other Objects are virtual, they represent entities that are wholly inside the program, such as Schedules, Sequences, and the Security System. All SmartV2 Objects are described by short mnemonics, such as BIA, DM, SK, or SE.

SmartV2 expects the Configuration File to be named xxxxCON.TXT and to reside in current directory. Errors that are encountered when SmartV2 reads the file are displayed on the system console.

Tech Note: The files that SmartV2 reads are plain ASCII text files. They consist of lines terminated by the normal CR/LF. The columns (or fields) within each line are delimited by TAB characters. This format is usually generated by a spreadsheet program when "Text" format is requested when saving the file. The xxxx characters in the filename are replaced by your installer with a set of characters unique to your installation. For instance, if your name were "Smith" then the file name might be SMITCON.TXT.

The columns of the Configuration File supply various attributes of the Object. Each spreadsheet column is described in detail below.

Comment Column User Assigned Number Object Class Object Number Object Type Minimum Security Level Object Description Linked Object Class Linked Object Number Event Parameter

Comment Column

If a pound character "#" is placed in the first spreadsheet column, the entire row is ignored. In this way comments may be interspersed in the file to enhance readability and/or explain the entries. If the characters "EOF" are found in the first column, this row is the End-Of-File; any additional rows are ignored.

User-Assigned Number

As a user you will interact with SmartV2 in various ways. Primarily, you will use a keypad to tell SmartV2 to change the condition of some Object. For instance you may want to turn a downstairs light off when you are upstairs. You will need to know "what to call" the light. Using only a numeric keypad, the "name" must obviously be numeric. Rather than arbitrarily assign numbers "at the factory", SmartV2 provides this User-Assigned Number column so that you may assign your own numbers to Objects in a scheme that is meaningful to you.

User-Assigned Numbers are positive integers in the range of 1 to 32,767.

The numbers should be unique, although SmartV2 will not complain if they are not. Duplicate numbers may produce strange results; one Object will usually be ignored in favor of another one with the same number.

User-Assigned Numbers are optional. If you never want to control an Object, you needn't assign it a number.

Object Class

DO NOT CHANGE the content of this column. It is preset by your installer to match the configuration of your system.

The Object Class mnemonic in this column tells SmartV2 what kind of an Object is being described in this row. All Objects and their mnemonics are fully described in the next section The Object Classes.

Most Object description rows are initially created by your installer. With the exception of SK and SE Object rows, you should not add or remove object description rows in the Configuration File. You will, however, change the column contents from time to time.

Object Number

DO NOT CHANGE the content of this column. It is preset by your installer to match the configuration of your system.

This Object Number and the Object Class are SmartV2's internal identification of the Object. SmartV2 uses the User-Assigned Number and the Object Description when communicating with you.

Object Type

DO NOT CHANGE the content of this column. It is preset by your installer to match the configuration of your system.

The Object Type further describes the object to SmartV2.

Currently there is only one valid Object Type entry; the "NC" Type. "NC" indicates to SmartV2 that this Bit Input Object (BIA or BID) is a "Normally Closed" switch. Actions will be reversed for this type of switch. Action that would be taken when a switch is "closed" will be taken when this switch is "opened"

Minimum Security Level

This column restricts the control of this Object by the keypads. A keypad must be set to this Security Level, or higher, before it will be allowed to control this Object. See the description of Security Levels below in the Security System Object section.

The Minimum Security Level is a positive integer in the range of 0 to 32,767.

Practically, you would not set the Minimum Security Level higher than the Maximum System Security Level unless you want to disable keypad control of the Object.

Object Description

This is the place where you tell SmartV2 what to name the Object. When you enter a User-Assigned Number on a keypad, SmartV2 appends this Object Description to the number so that you can confirm that it's the correct Object. If the Object is a security sensor, then this description also appears on the keypad display if the sensor is activated.

The description may consist of any printable ASCII characters. Because of the size of the keypad display (48 character), a practical limit for length of the description is 24 to 30 characters.

Linked Object Class

For Bit Input Objects (BIA/BID) (usually wall switches), operation of the Object is expected to produce some action. By supplying a Linked Object, you tell SmartV2 what Object is to perform the action. When this Object is operated (switch pushed) SmartV2 sends a "message" to the Linked Object that says, in essence, "one of your switches just got pushed." What the Linked Object does depends on what kind of an Object it is.

The Linked Object Class mnemonic is obtained from the Object Class column for the Object that this Object is intended to control.

Linked Object Number

The Linked Object Number is used along with the Linked Object Class to fully describe the linked object to SmartV2.

This number is obtained from the Object Number column for the Object that this Object is intended to control; except when an SK or SE Object is controlled, then the User-Assigned Number is used.

Event Parameter

The Event Parameter is used in various ways, depending upon the Object Class or the Linked Object Class. For example, if a Dimmer Object (DM) is being specified, this column specifies the initial dimming level.

Error Codes

When the Configuration File is read at initialization, any errors encountered are displayed on the Console Display. These error messages include code numbers as given below:

Error CodeError Description
101
Bad Object mnemonic
102
Invalid Object Number
110
Invalid Dimmer Range
111
Security System Object Number must be 0, 1, or 2
112
Security System Object must have a User-Assigned Number.


The Object Classes

Objects are groupings of data within the program. Some Objects correspond directly with real-world devices, such as switches, lights, and dimmers. Other Objects are virtual, they represent entities that are wholly inside the program, such as Schedules, Sequences, and the Security System.

Objects use their stored data to respond to Events that are sent to the Object by other Objects or by other parts of the SmartV2 system. Any Event may be sent to an Object, but only certain Events evoke a response from the Object.

Below, each class of Object is described:

Bit Input Objects (BIA/BID)

A Bit Input Object corresponds directly to a single on/off input to the SmartV2 computer. The input would normally be connected by a long wire to a wall switch somewhere in your home. Each Bit Input Object monitors its switch. When a change is detected, such as would happen when the switch was pushed or released, and if the Bit Input Object is enabled, the Bit Input Object sends an Up-to-Down or Down-to-Up Event to the Linked Object. If no Linked Object was specified, then nothing happens.

A Bit Input Object sends the following Events to its Linked Object.

Event Action causing the event to be sent. Event Parameter
UTOD Up-to-Down. A normally-open switch has closed or a normally-closed switch has opened. From Config. File
DTOU Down-to-Up. A normally-open switch has opened or a normally-closed switch has closed. From Config. File

You may specify almost any other Object Class as a Linked Object for a Bit Input Object. Please refer to the particular Object Class description to learn how to specify that Object as a BIA or BID Linked Object.

A Bit Input Object cannot be a Linked Object for any other Object because it does not respond to UTOD or DTOU Events.

There are two "flavors" of Bit Input Objects; Bit Input ADAM Objects (BIA) and Bit Input Digital Objects (BID). The BIA Objects correspond to inputs that are obtained via the Advantech Data Acquisition Modules (ADAM 4050's), while the BID Objects correspond to inputs obtained via the Advantech 48-bit Digital I/O Cards. Segregating the Bit Input Objects in this way allows additional ADAM modules to be added to the system without the necessity of re-numbering the Digital I/O Card inputs.

Bit Input Objects may be enabled, or disabled from any keypad; provided that the keypad is set to a security level equal to or greater than the Minimum Security Level as specified for the Bit Input Object in the Configuration File. You refer to the Object by its User-Assigned Number when enabling, or disabling it from a keypad. As noted above, a disabled Bit Input Object completely ignores its switch input.

A list of disabled Bit Input Objects whose Linked Object is either the Security System Object (SS) or the Fire Alarm Object (FA) may viewed with the appropriate Information Display Object.

A Bit Input Object processes the following Events:

Event Action Description Event Parameter
EON Enable this input. none
EOFF Disable this input none

A Bit Input Object may be enabled or disabled on a time schedule by referencing it in the Schedules File. You can also include it in a Sequence Object for group control or in the Single Digit Entry File for one-button keypad control.

Do not change the Object Class or Object Number columns in the Configuration File row for a Bit Input Object. These are preset by your installer to match your hardware configuration.

Bit Output Objects (BOA/BOD)

A Bit Output Object corresponds directly to a single on/off output of the SmartV2 computer. This low voltage output is usually connected to a Solid State Relay which, in turn, switches the high voltage connected to one or more of the lights in your home.

Just as for Bit Input Objects, there are two "flavors" of Bit Output Objects; Bit Output ADAM Objects (BOA) and Bit Output Digital Objects (BOD). The BOA Objects correspond to outputs of the Advantech Data Acquisition Modules (ADAM 4050's), while the BOD Objects correspond to outputs of the Advantech 48-bit Digital I/O Cards. Segregating the Bit Output Objects in this way allows additional ADAM modules to be added to the system without the necessity of re-numbering the Digital I/O Card outputs.

A Bit Output Object may be specified as a Linked Object for a Bit Input Object. It may also be turned on or off with a time schedule by referencing it in the Schedules File. You can also include it in a Sequence Object for group control or in the Single Digit Entry File for one-button keypad control.

A Bit Output Object processes the following Events:

Event Action Description Event Parameter
EON Turn on. none
EONT Turn on. Turn off after timeout. Minutes
ETOG Toggle. none
ETOGT Toggle. If toggled on, turn off after timeout. Minutes
EOFF Turn off. none
ESOO Set On/Off state same as another Object. User Assigned Number
EFLSH Flash. On=2T, Off=T. "T" in 18ths of a second (default = 1)
UTOD Same as ETOG. 0 or none
UTOD Same as ETOGT. Minutes

A Bit Output Object that is a Linked Object of a Bit Input Object receives UTOD and DTOU events from the Bit Input Object. A UTOD event causes the Bit Output Object to toggle. If the Event parameter of the Link is non-zero, then a UTOD toggle to ON initiates a timeout-to-off lasting <Event Parameter> minutes. The DTOU events are ignored by the Bit Output Object.

Dimmer Objects (DM)

A Dimmer Object corresponds directly to a Dimmer Device connected to the SmartV2 computer. The Dimmer sets the brightness of a connected light or lights. The computer sends the dimmer a number between 0 and 10 to control the brightness; zero turns the light off.

When a Dimmer Object is defined in the Configuration File, the Event Parameter field of the definition row contains the "previous dim level" that the system will use when the lamp is first turned on after a cold system reset.

A Dimmer Object may be specified as a Linked Object for a Bit Input Object. It may also be controlled with a time schedule by referencing it in the Schedules File. You can also include it in a Sequence Object for group control or in the Single Digit Entry File for one-button keypad control.

A Dimmer Object processes the following Events:

Event Action Description Event Parameter
EON Turn on at previous dim level. none
EDIM Turn on at given dim level. Dim Level
EONT Turn on at previous dim level. Turn off after timeout. Minutes
ETOG Toggle. If toggled on and Dim Level is non-zero, dim at given level. Otherwise dim at previous level Dim Level
ETOGT Toggle (on at previous level). If toggled on, turn off after timeout. Minutes
EOFF Turn off. none
ESOO Set On/Off state same as another Object. Use previous dim level. User Assigned Number
EFLSH Flash (at previous dim level). On=2T, Off=T. "T" in 18ths of a second (default = 1)
UTOD Manual dimming, see below. none
DTOU Manual dimming, see below. none

Manual control of a Dimmer Object by a Bit Input Object operates as follows. When the switch is pushed and released (sending the Dimmer Object a UTOD and a DTOU), the On/Off state of the dimmer is toggled. If the switch is pushed and held down (UTOD) when the lamp is off, then the lamp is turned on at its previous level and grows brighter until it is at maximum brightness or until the switch is released (DTOU). If the previous level was maximum brightness, then the lamp is turned on and grows dimmer until it is at minimum brightness or until the switch is released (DTOU). If the lamp is already on when the switch is pushed and held down (UTOD), then the previous dimming direction is reversed and the lamp grows brighter or dimmer until it is at maximum or minimum or the switch is released.

Because SmartV2 cannot detect the length of time that a keypad key is held down (due to hardware limitations), the above behavior cannot be implemented when a Dimmer Object is controlled by a Single Digit keypad entry. The usual alternative is to have the keypad generate a ETOG event in response to a single push.

Schedule Objects (SK)

A Schedule Object is a virtual object; it exists only as a grouping of data within the program and does not correspond to a real-world device. Schedule Objects can be thought of as "containers" into which Schedule Items are placed. You create a container by adding a row to the Configuration File where you supply a description and a User-Assigned Number for your Schedule Object.

You create a Schedule Item by adding a row to the Schedules File. You place the Schedule Item into a Schedule Object by putting the Schedule Object's User-Assigned Number into a field in the Schedule Item's row.

A Schedule Object processes the following Events:

Event Action Description Event Parameter
EON Enable the Schedule Items belonging to this Schedule Object. none
EOFF Disable the Schedule Items belonging to this Schedule Object. none

A Schedule Object is usually turned on or off by a specific keypad command, but it may also be specified as a Linked Object for a Bit Input Object. It could be controlled with another time schedule by referencing it in the Schedules File. You can also include it in a Sequence Object for group control or in the Single Digit Entry File for one-button keypad control.

If you omit the User-Assigned Number when you create a Schedule Item in the Schedules File, then that Schedule Item is placed in the Schedule Object Zero container. Schedule Object Zero is always ON, so the contained Schedule Items are always enabled.

Sequence Objects (SE)

A Sequence Object is a virtual object; it exists only as a grouping of data within the program and does not correspond to a real-world device. A Sequence Object consists of a list of Sequence Items. A Sequence Item specifies an Object Class, Object Number, Event, and Event Parameter to be executed as part a sequence of events.

You create a Sequence Object by adding a row to the Configuration File where you supply a description and a User-Assigned Number for your Sequence Object.

You create the list of Sequence Items by adding a rows to the Sequences File. You relate each Sequence Item in the list to its Sequence Object by putting the Sequence Object's User-Assigned Number into a field in each Sequence Item's row.

A Sequence Object processes the following Events:

Event Action Description Event Parameter
EON Turn on. none
EONT Turn on. Turn off after timeout. Minutes
ETOG Toggle. none
ETOGT Toggle. If toggled on, turn off after timeout. Minutes
EOFF Turn off. none
ESOO Set On/Off state same as another Object. User Assigned Number
UTOD Same as ETOG. 0
UTOD Same as ETOGT. Minutes

When a Sequence Object is turned ON or OFF, it executes the Sequence Items that are contained in its list. If the Sequence Object is being turned ON, then the Sequence Items labeled ON are executed. If the Sequence Object is being turned OFF, then the Sequence Items labeled OFF are executed. Those Sequence Items labeled BOTH are executed when the Sequence Object is turned ON or OFF. Execution of the list proceeds from top-to-bottom.

Please see the Sequences File section for a description of the Events that may be specified in a Sequence Item.

Security System Object (SS)

The Security System Object is a virtual object; it exists only as a grouping of data within the program and does not correspond to a real-world device. It takes action when a security sensor (usually a Bit Input Object) sends it an Up-to-Down (UTOD) event. It also manages the state of the program through password protected changes in the Security Level. The Security Level may be changed, via any keypad, to one of 5 values. It affects system operation as given in the following table:

Security Level System Operation
0
All enabled security sensors are being monitored. If a sensor detects an abnormal condition, a warning device is activated. After a specified time, the security siren is activated. The siren is turned off after another specified time.
1
Only certain enabled security sensors are being monitored. If a sensor detects an abnormal condition, the same actions occur as described above for Level 0.
2
No sensors are monitored.
3*
No sensors are monitored. Some Objects may be disabled or enabled from the keypad. See Minimum Security Level.
4*
No sensors are monitored. Most Objects may be disabled or enabled from the keypad. See Minimum Security Level.

* When you set the Security Level to 3 or 4, that level is effective only for YOUR keypad. The other keypads are set to level 2 by your action.

The Security System Object is specified by three rows in the Configuration File. The fields in these rows are used as follows:

User Assigned Number Object Class Object Number ... Object Description Linked Object Class Linked Object Number Event Parameter
Security Object UAN
SS
0
... Security Object name for keypad display. Siren Device Class Siren Device Number Minutes that siren should sound.
Any non-zero; unused
SS
1
... unused Warning Device Class Warning Device Number none
Any non-zero; unused
SS
2
... unused Escape Device Class Escape Device Number Minutes until monitoring begins.

The "Type" and "Minimum Security Level" fields are unused.

Where a Bit Input Object is to be used as a security sensor, its Linked Object fields should be set as follows:

User Assigned Number ........ Linked Object Class Linked Object Number Event Parameter
Specify a UAN if you want to enable/disable this sensor. ........
SS
Maximum Security Level at which this sensor is active* Minutes after sensor activation before siren sounds

* Notice the special use of the Linked Object Number field. If you want this sensor to be active only at Security Level zero, put a zero in this field. If you want a sensor to be active at both security levels 0 and 1, put a 1 in this field.

Security System Operation Scenario

Now that the Security System Object is configured, let's see how it is used in a typical scenario:

You are about to leave the house. The system is set to Security Level 2. You look at the second line of any keypad. If any sensors are detecting an abnormal condition, they will be shown on the second line. If there is more than one, you can step through them by repeatedly pushing the CLEAR (or *) key. After fixing the abnormal conditions (closing windows, doors, etc.), you are ready to arm the system.

You access the Security System Object with the garage keypad and set the Security Level to zero. Now the "Escape Device" is activated; usually a light or lights flashing at a slow rate. You now have <Escape Device> minutes to exit the garage and close the door before monitoring begins. When monitoring starts, the Escape Device will be turned off.

Time passes...

A burglar attempts to open one of the windows and activates a sensor. The system turns on the "Warning Device"; usually a light or lights flashing at a fast rate, including a light that you would see as you drive up to the house. After <Security Sensor Linked Object> minutes, the Siren Device is activated. The siren sounds for <Siren Device> minutes and then shuts off. The Warning Device continues.

The burglar has been scared off, and you arrive home. You see the outdoor Warning Device light flashing. At this point you know that you should call the police and not enter the house until they escort you in; but, you imprudently decide to enter the house anyway.

You use your remote control to open the garage door, go in and use the keypad to enter Security Level 2 and your password. Just the entry of any valid password will cause the Security System to turn off the Warning Device. Later you use the Information Display Object to look at the Latched Security Sensors and find out which window was opened.

Whenever ANY successful password protected Security Level command is accomplished, the Security System does the following:

When the new Security Level is zero and the Escape Device time expires, the Security System scans all enabled Security Sensors and causes Up-to-Down (UTOD) events to be generated for those Sensors that were already "down" when the scan began. If the new Security Level is 1, then the scan begins immeadiatly.

Whenever any monitored Security Sensor is activated, the Security System latches that fact. Later the latched sensors can be listed with the appropriate Information Display Object and the latches cleared.

Using the Security System when you are at home

When you are at home, you can cause the Security System to monitor only external sensors. For instance windows and outside doors, but not interior motion detectors.
Note: see above description of Bit Input Objects used as security sensors where the Linked Object Number field allows you to differentiate between external and internal sensors.

As in the away-from-home scenario, the system is set to Security Level 2. You look at the second line of any keypad. If any sensors are detecting an abnormal condition, they will be shown on the second line. After fixing the abnormal conditions (closing windows, doors, etc.), you cause the system to begin at-home monitoring by setting the Security Level to 1. The Escape Warning device does not activate; monitoring begins immeadiatly.

If any sensor is activated, the "Warning Device" is turned on. After <Security Sensor Linked Object> minutes, the Siren Device is activated. The siren sounds for <Siren Device> minutes and then shuts off. The Warning Device continues.

You can deactivate at-home monitoring, including the Warning Device and the siren if they are on, by setting the Security Level to 2.

Fire Alarm Object (FA)

The Fire Alarm Object is a virtual object; it exists only as a grouping of data within the program and does not correspond to a real-world device.

The Fire Alarm Object does NOT operate the Fire Alarm. The fire detection system in your home is an autonomous system. SmartV2 does only three tasks with respect to the fire detection system:

Where a Bit Input Object is to be used to monitor a fire sensor, its Linked Object fields should be set as follows:

User Assigned Number ........ Linked Object Class Linked Object Number Event Parameter
Specify a UAN if you want to enable/disable this sensor. ........
FA
0
none

The SmartV2 system is completely passive with respect to the fire detection system in your home. Owing to the mechanical relay logic used in the fire detection system, if SmartV2 should somehow "camp on" the interior fire siren reset circuit, fire detection would still "get through" and sound the interior alarms.

Information Display Objects (ID)

Information Display Objects are virtual objects; they exist only as a grouping of data within the program and do not correspond to real-world devices. When accessed from a keypad each Object displays a particular kind of information or changes the state of the information displayed.

There are nine types of Information Display Objects that correspond to nine rows in the Configuration File:

User Assigned Number Object Class Object Number ... Minimum Security Level Object Description
Supply a UAN for keypad access.
ID
0
... access control Latched Fire Sensors
Supply a UAN for keypad access.
ID
1
... access control Clear Fire Sensor Latches
Supply a UAN for keypad access.
ID
2
... access control Latched Security Sensors
Supply a UAN for keypad access.
ID
3
... access control Clear Security Sensor Latches
Supply a UAN for keypad access.
ID
4
... access control Disabled Security/Fire Sensors
Supply a UAN for keypad access.
ID
5
... access control Enable All Sensors
Supply a UAN for keypad access.
ID
6
... access control Disabled Schedule Objects
Supply a UAN for keypad access.
ID
7
... access control System Statistics
Supply a UAN for keypad access.
ID
8
... access control UAN<>0 Object List

After you enter the Information Display Object's User Assigned Number and the #-key, the first piece of information is presented. To obtain additional pieces of information, you should repeatedly press the keypad #-key. When the last piece of information has been displayed, the keypad will revert to the time/date display.

In the case of the System Statistics display, repeated #-key presses will display the following:

The Event Log is kept in a memory buffer. When the buffer is filled, the oldest log entries are overwritten with current log entries. The log may be dumped to a floppy disk with the use of a Console Display command.

A COLD reset results in a complete initialization of the system. No historical data is included. A WARM reset is a COLD reset followed by the incorporation of a Recovery File that was written before a previous shutdown.

Initialization File errors result when invalid data is found in the various files that are read during restart (Configuration File, Schedules File, Sequences File, Single Digit Entry File, and Password File). Individual error messages appear on the Console Display during restart.



Events

SmartV2 Events are the basis for all actions taken by the program. Events are sent from Object to Object within the program. They are also sent from the main monitoring loop components to the Objects. The following table outlines the events that are sent and received by the various parts of the system. The event names given in italics are internal to the program.

System Component Events Received Events Sent
Main Loop (Monitor Bit Inputs) none UTOD, DTOU
Main Loop (Keypad Polling) & Keypad Object FOUP, NOUP EOFF, EON, EONT, EDIM, SSYS, DFLT, and any Events obtained from the Single Digit Entry File.
Bit Input Object EON, EOFF,UTOD, DTOU UTOD, DTOU, DT3E, DT4E
Bit Output Object EON, EONT, ETOG, ETOGT, EOFF, ESOO, EFLSH, UTOD, DT3E, DT4E DT3E, DT4E
Dimmer Object EON, EONT, ETOG, ETOGT, EOFF, ESOO, EFLSH, UTOD, DTOU, DT1E, DT2E, DT3E, DT4E EON, EOFF, DT1E, DT2E, DT3E, DT4E
Schedule Object EON, EOFF, NOUP Events obtained from the Schedules File.
Sequence Object EON, EONT, ETOG, ETOGT, EOFF, ESOO, UTOD, DT1E, DT3E, and Events obtained from the Sequences File including ELOOP, EDLYH, EDLYM, and EDLYS. EON, EOFF, and Events obtained from the Sequences File.
Security System Object SSYS, UTOD, DTOU, DT1E, DT2E EON, EONT, EOFF, DT1E, DT2E
Fire Alarm Object UTOD, DTOU none
Information Display Object DFLT none
Recovery Handler Object UTOD, RCPF none

All of the Events are defined in the following table:

Event Action Description Event Parameter
EON Turn on. none
EONT Turn on. Turn off after timeout. Minutes
EDIM Turn on at given dim level. Dim Level
EOFF Turn off. none
ETOG Toggle. none
ETOGT Toggle. If toggled on, turn off after timeout. Minutes
ESOO Set On/Off state same as another Object. User Assigned Number
EFLSH Flash. On=2T, Off=T. "T" in 18ths of a second
EDLYS Delay a Sequence by seconds Seconds
EDLYM Delay a Sequence by minutes Minutes
EDLYH Delay a Sequence by Hours Hours
ELOOP Go back to first line of Sequence none
DFLT The Default Event none
UTOD Up-to-Down transition of Bit Input Object none
DTOU Down-to-Up transition of Bit Input Object none
RCPF Restore sustem from checkpoint recovery file none
DT1E Delta Time Interval #1 expired none
DT2E Delta Time Interval #2 expired none
DT3E Delta Time Interval #3 expired none
DT4E Delta Time Interval #4 expired none
FOUP Forced Object Update none
NOUP Normal Object Update none
SSYS Set Security System Level, Password



Keypads & How To Use Them

Day to day interaction with the SmartV2 system is accomplished via several 12-key keypads. The 12 keys include the 10 digits as well as a "*" key and a "#" key. (Note: some keypads substitute a key labeled "CLEAR" for the "*" key and an unlabeled key for the "#" key.) Each keypad also contains a 24 character by 2 line Liquid Crystal Display. The display provides a method for SmartV2 to prompt and/or reply to the keypad entries.

The 12-key keypad was intentionally chosen to match a standard telephone keypad. It is planned to extend SmartV2 to include telephone control, wherein the display functions would be replaced with voice responses.

Default Display

When the keypad is not in use, it displays the Day, Date, Time, System Status, and any activated Security Sensors. This display is updated once each minute or more often if changes in System Status or Security Sensors occur. You can force the display to update by pressing the "*" key.

The System Status requires additional explanation. The Status is a series of three digits following the time. It normally looks like this: "2.0.0". The first digit indicates the System Security Level, a number between zero and four. The middle digit indicates the number of security or fire sensors that are currently disabled. The last digit indicates the number of activated security or fire sensors. When the Security Level is two or above, activated security sensors are of no particular concern, an example being an open window while you are at home.

A description of an activated security or fire sensor is displayed on the second line. If more than one security or fire sensor is activated, you may step through their descriptions by repeatedly pressing the "*" key. SmartV2 will also step through these descriptions at each 1 minute update.

Single Digit Keypad Functions

While the Day/Date default is being displayed, the ten digits of the keypad are enabled for single-push functions. The single-push function that is performed by each of the ten keys is defined in the Single Digit Entry File. For instance, if the "2" key of a given keypad is pushed, an ETOG toggle event might be sent to a Bit Output Object causing the connected light to be turned on or off. So, depending on your configuration of the Single Digit Entry File, a single push of any of the ten digits on a particular keypad will result in a defined action being performed.

Extended Keypad Functions

Also included in the keypad interaction is the ability to control ANY device that has a User-Assigned Number. These extended keypad functions are accessed by the #-key. Depending upon the Object being controlled, the function may require up to 4 steps to complete.

The first step, required by all functions, is the specification of the Object to be controlled. If, while the Date/Time is being displayed, you press the #-key, the prompt "=Object?" will appear. Now you enter the User-Assigned Number of the Object you wish to control. As you enter each digit, SmartV2 will interpret what has been entered. So, if you wanted to enter "100" and you enter "1", SmartV2 will show you the description of Object 1. Then, when you enter "0", SmartV2 will show you the description of Object 10. Finally, when you enter the second "0", the description of Object 100 will appear. If this is not the Object that you want, you can "back up" by pressing the *-key. This will leave Object 10. You can "back up" all the way to the Date/Time display by repeatedly pushing the *-key. Throughout your interaction with the keypad, the *-key is always available to "back up" from where you are.

If you are satisfied that Object 100 is the one that you want to control, then choose it by pressing the #-key. There are some Objects, the Information Display Object in particular, wherein just choosing the object is enough to perform the function. Other Objects require further information before the function can be performed. For those Objects, you will see the "=Action?" prompt at this point.

The number corresponding to each possible Action is given below:

Action Number Action Description First Parameter Second Parameter
0
turn OFF (or disable) none none
1
turn ON (or enable) none none
2
turn ON with Timeout Minutes none
3
set DIM Dim Level none
n/a*
set Security Level Security Level Password

* Because the Security System Object accepts only one action, the "=Action?" prompt is skipped and you are presented with the "=Security Level?" prompt directly.

So, when you see the "=Action?" prompt, enter an action number. If you enter an action that is inappropriate for the class of Object selected, SmartV2 will reply with "=Unknown Action Number". Just "back up" with the *-key and choose a different action number. When you are satisfied with the action you have chosen for your Object, press the #-key. If there are no parameters required for your action, then SmartV2 will perform the action and tell you what was done. After the action has been performed, the keypad is in Default Display state, but still showing the reply to your request. After a few seconds, the Date/Time display will reappear or you can force it to return by pressing the *-key.

If your action requires a parameter, such as the Dim Level, then, upon pressing the #-key to select your action, SmartV2 will prompt for the parameter value. After you enter the parameter value, press the #-key again. If no more parameters are required, your action is performed and a reply is displayed, just as in the no-parameter case above. Any additional parameters are entered in the same manner.



Schedules File

The Schedules File contains the specifications that cause SmartV2 to generate Events at particular times. Each row in the Schedule File is called a Schedule Item, and is a component of a Schedule Object.

At program initialization, after the Configuration File is read, SmartV2 reads the Schedules File. Like the Configuration File, this file is also intended to be generated by a spreadsheet program and so consists of rows and columns of information. The Schedules File is normally named xxxxSKD.TXT.

A Schedule Item row is divided into fields:

Comment Minute (or Sunrise, Sunset, or Reset) Hour (or Sunrise / Sunset adder) Day of Month Day of Week Every Nth Day Month Schedule Object Number Event Object Number Event Mnemonic Event Parameter

Comment

If a pound character "#" is placed in the first spreadsheet field, the entire row is ignored. In this way comments may be interspersed in the file to enhance readability and/or explain the entries. If the characters "EOF" are found in the first column, this row is the End-Of-File; any additional rows are ignored.

Special Format

The Minute, Hour, Day of Month, and Month fields allow a special format for numeric entry. The idea is to allow multiple individual numbers and ranges of numbers. This concept is best shown with an example:
3,5,10-12,21,25-27, 31
If this set of numbers were placed in the Day-of-Month field, then the event would be generated on each of the individual days (3,5,21,31) and also on days within the ranges (10,11,12,25,26,27). Also, an asterisk (*) is allowed. An asterisk in any of these fields indicates that ALL of the possible values for that field are wanted. So an asterisk in the Month field would mean All/Any Month.

Minute

This field will accept any numbers in the range of 0 to 59. The event will be generated once at each minute enumerated. So "2,5,58" would generate three events each hour on the 2nd, 5th, and 58th minute. Asterisk would generate 60 events per hour!

This field may also contain any one of three special words: SUNRISE, SUNSET, and RESET. Since SmartV2 knows the local sunrise and sunset times for each day of the year, event generation can be keyed to sunrise or sunset. If RESET is specified, then the event will be generated once during system reset.

Hour

This field will accept any numbers in the range 0-23. The event will be generated at each minute specified during each hour specified. An asterisk would select all hours.

If the minute field contains SUNRISE or SUNSET, then the hour field has special meaning. It can now contain a positive or negative number ranging from -120 to +120. This is the number of minutes to be added to or subtracted from the sunrise or sunset time. Thus you can have a yard light come on 30 minutes after sunset, for instance. Remember that sunset does not mean darkness; darkness is usually about half an hour after sunset.

The Day Fields

The three Day fields act as a group. A "hit" in any one of them will cause the event to be generated. You might specify that an event should occur on the 5th of the month and the 10th of the month and on every Thursday and every 15th day of the year. Very flexible!

Day of Month

The Day of Month field will accept any numbers in the range 1-31. You may leave this field blank, indicating that the field is unused and the other day field(s) would be used to specify the day. An asterisk would indicate every day of the month.

Day of Week

This field can contain a "map of the week", such as SMTWTFS, which would indicate all days of the week. If xMxWxFx were specified, then the event would occur on Monday, Wednesday, and Friday. SxxxxxS would indicate only weekend days. A blank field indicates that the field is unused, while an asterisk indicates all days of the week.

Every Nth Day

With this field, you can have your event occur every 2nd day, every 5th day, or even every 63rd day! The days are counted from the first day of the year, so there may be a "glitch" in your schedule when the new year arrives. You may specify only one value for this field (a single integer). The field is not used if it is left blank.

Month

Here you specify the month or months that your event is to occur. Numbers in the range 1-12 are valid here. An asterisk indicates all months. If you leave the field blank, your event will not be generated!

Schedule Object Number

You may place the User-Assigned Number of a Schedule Object in this field. Then you may enable and disable this Schedule Item and any others bearing the same number by enabling or disabling the Schedule Object. If you leave this field blank, this Schedule Item will always be enabled.

Event Object Number

Place the User-Assigned Number of the Object that is to receive the Event here. Notice that the Object can be a Sequence Object and thus cause many devices to be affected by this event generation.

Event Mnemonic

Describe the event that you want to generate by placing its mnemonic here. Read The Object Classes section to determine what event mnemonics are appropriate for the Object that is to receive the event. All the possible event mnemonics are listed in the event section.

Event Parameter

Certain events require that a parameter value be supplied. Place that value here.

Error Codes

When the Schedule File is read at initialization, any errors encountered are displayed on the Console Display. These error messages include code numbers as given below:

Error CodeError Description
201
No valid number found before "-" or ","
202
Out of range, too low
203
Out of range, too high
204
Decreasing range. i.e. m-n, where m>n
210
Sunrise/Sunset offset too large (+ or -)
211
Day-of-week does not contain seven characters
212
Invalid Event Mnemonic
213
Can't find this User-Assigned-Number
n/a
Err: No uasc/uan match in line nn of xxxxSKD.TXT


Sequences File

The Sequences File contains the specifications that cause SmartV2 to generate a sequence of Events. Each row in the Sequences File is called a Sequence Item, and is a component of a Sequence Object.

At program initialization, after the Configuration File is read, SmartV2 reads the Sequences File. Like the Configuration File, this file is also intended to be generated by a spreadsheet program and so consists of rows and columns of information. The Sequences File is normally named xxxxSEQ.TXT.

A Sequence Item row is divided into fields:

Comment Sequence Object Number ON/OFF/BOTH Event Object Number Event Mnemonic Event Parameter

Comment

If a pound character "#" is placed in the first spreadsheet field, the entire row is ignored. In this way comments may be interspersed in the file to enhance readability and/or explain the entries. If the characters "EOF" are found in the first column, this row is the End-Of-File; any additional rows are ignored.

Sequence Object Number

You must place the User-Assigned Number of a Sequence Object in this field. This will include this Sequence Item in that Sequence Object.

ON/OFF/BOTH

This field determines when the Sequence Item will generate its event. When the Sequence Object that includes this Sequence Item receives an EON event (or other event that turns the Object on), it executes all of its Sequence Items that contain either an ON or a BOTH in this field.

Also, when an EOFF event is received, the Sequence Object executes all of its Sequence Items that contain either an OFF or a BOTH in this field.

The Sequence Items are executed in the order that they are encountered in the Sequences File, top-to-bottom.

Event Object Number

Place the User-Assigned Number of the Object that is to receive the Event here.

Event Mnemonic

Describe the event that you want to generate by placing its mnemonic here. Read The Object Classes section to determine what event mnemonics are appropriate for the Object that is to receive the event. All the possible event mnemonics are listed in the event section.

Sequence Items can invoke some special events. These events are processed directly by the Sequence Object, not sent to any other Object. The special events control the execution of the sequence. They are:

Event MnemonicEvent Description
EDLYSDelay <Event Parameter> seconds
EDLYMDelay <Event Parameter> minutes
EDLYHDelay <Event Parameter> hours
ELOOPRestart the Sequence at the first Sequence Item

When a Sequence Item using one of these special events is created, you must include a valid Event Object Number or an initialization error 313 will result. Just use the Sequence Object's User-Assigned Number as was used in the Sequence Object Number field.

Event Parameter

Certain events require that a parameter value be supplied. Place that value here.

Error Codes

When the Sequences File is read at initialization, any errors encountered are displayed on the Console Display. These error messages include code numbers as given below:

Error CodeError Description
302
Blank or zero User-Assigned Number in Sequence Object Number field.
312
Invalid Event Mnemonic
313
Can't find this User-Assigned Number
n/a
Err: No uasc/uan match in line nn of xxxxSEQ.TXT


Single Digit Entry File

The Single Digit Entry File contains the specifications that tell SmartV2 what Event to send to what Object when a Single Digit Keypad Function is performed on one of the keypads.

At program initialization, after the Configuration File is read, SmartV2 reads the Single Digit Entry File. Like the Configuration File, this file is also intended to be generated by a spreadsheet program and so consists of rows and columns of information. The Single Digit Entry File is normally named xxxxSDE.TXT.

A row in the Single Digit Entry File is divided into fields:

Comment Keypad Number Single Digit Event Object Number Event Mnemonic Event Parameter

Comment

If a pound character "#" is placed in the first spreadsheet field, the entire row is ignored. In this way comments may be interspersed in the file to enhance readability and/or explain the entries. If the characters "EOF" are found in the first column, this row is the End-Of-File; any additional rows are ignored.

Keypad Number

This field indicates what keypad's single digit function is being defined. Keypad numbers start with zero and end with a number that is one less than the number of keypads in your configuration.

Single Digit

When this digit is pressed the defined event is sent to the Object corresponding to the Event Object Number.

Event Object Number

Place the User-Assigned Number of the Object that is to receive the Event here. Notice that a Sequence Object may be the recipient of an Event and thus cause several Objects to react to the single button push.

Event Mnemonic

Describe the event that you want to generate by placing its mnemonic here. Read The Object Classes section to determine what event mnemonics are appropriate for the Object that is to receive the event. All the possible event mnemonics are listed in the event section.

Event Parameter

Certain events require that a parameter value be supplied. Place that value here.

Error Codes

When the Single Digit Entry File is read at initialization, any errors encountered are displayed on the Console Display. These error messages include code numbers as given below:

Error CodeError Description
501
Number out of range
502
Invalid Event Object Number or Event Mnemonic


Password File

The Password File contains the information that SmartV2 uses to identify and characterize the users of the system. This information is used in the processing of the SSYS event by the Security System Object.

At program initialization, after the Configuration File is read, SmartV2 reads the Password File. Like the Configuration File, this file is also intended to be generated by a spreadsheet program and so consists of rows and columns of information. The Password File is normally named xxxxPWD.TXT.

A row in the Password File is divided into fields:

Comment User Number for Logging User Name Maximum Security Level Password

Comment

If a pound character "#" is placed in the first spreadsheet field, the entire row is ignored. In this way comments may be interspersed in the file to enhance readability and/or explain the entries. If the characters "EOF" are found in the first column, this row is the End-Of-File; any additional rows are ignored.

User Number for Logging

When a user enters a new Security Level this number is saved as the Object Number of the Receiving Object so that the user may be identified later when you are reading the log. Also, the new Security Level is saved as the Object Number of the Sending Object. The Event is set to DFLT and both Receiving and Sending Object Classes are set to SS (Security System).

User Name

Put the name that the user likes to be called in this field. The only place this name is used is in the "Hello xxxxxx." message displayed upon successful entry of a new Security Level.

Maximum Security Level

Put the maximum Security Level that you want this user to be able to set here. If the user tries to set a higher level, SmartV2 will respond "ACCESS DENIED."

Password

Put the (all numeric) password for this user in this field. The password must be in the range 1 to 32767.

Error Codes

When the Password File is read at initialization, any errors encountered are displayed on the Console Display. These error messages include code numbers as given below:

Error CodeError Description
602
Number out of range, low.
n/a
Err: Too many passwords at line nn of xxxxPWD.TXT.


Sunrise/Sunset File

The Sunrise/Sunset File contains a sunrise time and a sunset time for each day of the year. This file is created by your installer (using a program called "suntimes") and is tailored for your Latitude and Longitude.

"Sunrise" and "sunset" are lies that we teach to our children. According to Buckminster Fuller, we should say "sunsee" and "sunclipse".

At program initialization, after the Configuration File is read, SmartV2 reads the Sunrise/Sunset File. Although generated by a program, the Sunrise/Sunset File is of the same format as the other initialization files and could have been generated by a spreadsheet program. The Sunrise/Sunset File is normally named xxxxSUN.TXT.

A row in the Sunrise/Sunset File is divided into fields:

Comment Day Number Sunrise Sunset

Comment

If a pound character "#" is placed in the first field, the entire row is ignored. In this way comments may be interspersed in the file to enhance readability and/or explain the entries. If the characters "EOF" are found in the first column, this row is the End-Of-File; any additional rows are ignored.

Day Number

This field contains the day-of-the-year number, from 0 through 366.

Sunrise

This is the sunrise time in minutes for this day number in Local Standard (not Daylight) Time.

Sunset

This is the sunset time in minutes for this day number in Local Standard (not Daylight) Time.

Error Codes

When the Sunrise/Sunset File is read at initialization, any errors encountered are displayed on the Console Display. These error messages include code numbers as given below:

Error CodeError Description
701
Number out of range. Using default.
702
Day Number gap or duplicate. Default remaining days.


Recovery File

The Recovery File is written by SmartV2 when the Uninterruptable Power Source indicates imminent loss of power (batteries exhausted). The current state of the system is saved to this file for use when the system is restarted.

Since this file is intended to be read only by SmartV2, the format is of little concern to the user and will not be described here. The file is a text file, however, and could be perused with a word processor program.

The Recovery File is named SVRCOVR when created by SmartV2. At program initialization, SmartV2 attempts to open a file by this name. If SVRCOVR is found and successfully used to restore the system state, then SmartV2 is said to have executed a WARM reset. A initialization performed without using the SVRCOVR file is a COLD reset. After the SVRCOVR file is found and used for a WARM reset, the file is deleted.



Log and Log File

SmartV2 accumulates an event log in a large memory buffer inside the program. There are 2000 entries in the log. If the log becomes full, the oldest entries are overwritten with new ones. The percentage-full status of the log may be interrogated with the System Statistics Information Display Object.

Note that because the log entry for an event is generated after the event is processed, and because events (esp. Sequence ON/OFF) can generate other events, the order of events in the log is not intuitive. The log IS chronological in order of event completion, however.

The memory log content is dumped to a file at the same time as the Recovery File is generated, just before power failure. You can also cause the log to be dumped with a Console Display command.

When the log is dumped by manual command, the filename SVLOG.TXT is used, overwriting any previous log file of that name. When the log is dumped automatically, prior to a power failure, a hopefully-unique file name is generated by appending three digits from the system clock to "SVLOG" and then appending ".TXT". The dumped log file is not reloaded during restart.

The format of the entries in the log file are TAB-separated fields, terminated with the usual CR/LF. The content of the fields is as follows:

Date Time A mnemonic representing the Event A mnemonic representing the Receiving Object's Class Receiving Object's Number A mnemonic representing the Sending Object's Class Sending Object's Number Event Parameter Value


Console Display

SmartV2 uses the computer's local monitor and keyboard (the "Console Display") to communicate with the "System Administrator" (probably You). The Console Display performs several functions, proceeding from system reset through normal operation to shutdown:

Each of these functions will be examined in detail:

Initialization Progress Messages

SmartV2 posts messages to the console display screen as normal initialization progresses. First a title block, then an updated line for each initialization file processed, showing the number of lines read and the file name. Then a report of the recovery process; either "No recovery file. Init all outputs to OFF.", or if a recovery file exists, then "Previous state recovered from file." An announcement that the Dimmer Controllers are being initialized is followed, finally, by "Start FOREVER loop." Of course, the "FOREVER loop" only lasts until the next system reset!

Initialization Errors

If errors are encountered while reading the initialization files, they are posted to the screen. They are interspersed with the number-of-lines-read messages. A description of the error messages produced is given in the sections of this document that describe the individual files. Most initialization file errors are informative; initialization continues without the benefit of the information contained in that line (row). However, if, say, an initialization file cannot be opened, then the program aborts. Other error messages not documented here are considered self-explanatory; an example would be "Error(s) accessing ADAM module(s)."

Event Message Lines

After the forever-loop begins, the screen is dedicated to the display of Event Message Lines. These are produced at the same time that the event information is placed in the log buffer and consists of all the log information plus the alphanumeric reply that would be sent to the keypad if the event originated there. These Event Messages are intended to occupy a single line, but sometimes wrap around to a second line. There is no provision for retaining the Event Messages; when they scroll off the top of the screen, they are lost. Of course, the system log retains the pertinent information.

Low Level Status

Using System Administration Commands, two forms of Low Level Status displays can be enabled. These are continuous displays of information that may be useful in troubleshooting the system hardware. The format of these displays will be described here, while their respective enabling commands can be found in the System Administration Commands section.

Bit Display

The Bit Display shows the current state of the Bit Input Objects (BIA/BID) and the Bit Output Objects (BOA/BOD). They are shown in a single line:
4 FFFFFFFF FFFFFFFF 4300 7F30 **** 7F00 5E02
The first single digit is an incrementing forever-loop pass counter that reassures you that the system is indeed alive. The next two 8-character "words" are hexadecimal representations of 32 bits of Digital I/O module inputs or outputs (BID/BOD). Next are 4-character "words". Each of these correspond to one ADAM 4050 module where the first two hexadecimal characters represent the module's input bits (BIA) and the last two characters represent the output bits (BOA). A string of asterisks (****) indicate errors were encountered in accessing that ADAM module.

ADAM Errors Display

The ADAM Errors Display shows the content of the error counters that are kept for each ADAM 4050 module. The counters are dumped to the screen, one line per ADAM module, once each minute. An ADAM line has the following format:
ADAM adr=10 SIOS=0 CKSUM=0 NORP=0 BDCH=0 BDLN=0 BDHX=0
An explanation of the fields is given in the following table:

adrHexadecimal address of the ADAM module
SIOSErrors returned from the PC-ComLIB serial port driver software
CKSMChecksum errors found in ADAM replies
NORPNo-replies to ADAM commands sent
BDCHBad first characters in ADAM replies
BDLNBad lengths in ADAM replies
BDHXBad hexadecimal characters in ADAM replies

After the ADAM counters are dumped, SmartV2 displays one more line:

Max Timer Overrun = 2
This indicates the maximum number of ticks (18ths of a second) that occurred after a software timer expired before the forever-loop had the opportunity to process it. Unless this is very large and there are other symptoms of slowness, you should not be concerned about this number.

System Administration Commands

The computer's local keyboard is enabled to accept a few System Administration Commands. The commands are described in the table below; an identical list of commands is produced by pressing "Enter" on the keyboard.

FQQuit. Save Recovery File & Log
FXExit. Don't save Recovery File or Log
FLSShow Log Status
FLDDump Log
FAToggle ADAM Errors Display
FBToggle Bit Display
FPReload Password File
FSKReload Schedules File
FSEReload Sequences File
FSDReload Single Digit Entry File

To execute one of these commands, type the command and press "Enter".

When the Console Display is not in use, you may turn off its power with no ill effects. When you turn it on it will display the latest screen's-worth of data.



The Fine Print

Use of this Document

Permission is granted to copy this document for purposes of distribution to interested readers. You must copy the entire document, you may not modify this document in any manner, including deletion of any part, without permission of the copyright holder. You may not use any ideas or concepts contained in this document for the creation or modification of Home Automation software or hardware without the permission of the copyright holder.

SOFTWARE LICENSE

PLEASE READ THIS LICENSE CAREFULLY BEFORE USING THE SOFTWARE. BY USING THE SOFTWARE, YOU ARE AGREEING TO BE BOUND BY THE TERMS OF THIS LICENSE. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE, PROMPTLY RETURN THE UNUSED SOFTWARE TO THE PLACE WHERE YOU OBTAINED IT AND YOUR MONEY WILL BE REFUNDED.

1. License. The application, demonstration, system and other software accompanying this License, whether on disk, in read only memory, or on any other media (the "Software") and the related documentation are licensed to you by The Gizmology Group. You own the disk on which the Software and documentation are recorded but The Gizmology Group and/or The Gizmology Group's Licensor retain title to the Software and related documentation. This License allows you to use the Software on a single computer and make one copy of the Software and documentation in machine-readable form for backup purposes only. You must reproduce on such copy the The Gizmology Group copyright notice and any other proprietary legends that were on the original copy of the Software and documentation. You may also transfer all your license rights in the Software and documentation, the backup copy of the Software and documentation, and a copy of this License to another party, provided the other party reads and agrees to accept the terms and conditions of this License.

2. Restrictions. The Software contains copyrighted material, trade secrets and other proprietary material. In order to protect them, and except as permitted by applicable legislation, you may not decompile, reverse engineer, disassemble or otherwise reduce the Software to a human-perceivable form. You may not modify, network, rent, lease, loan, distribute or create derivative works based upon the Software in whole or in part. You may not electronically transmit the Software from one computer to another or over a network.

3. Termination. This License is effective until terminated. You may terminate this License at any time by destroying the Software, related documentation, and all copies thereof. This License will terminate immediately without notice from The Gizmology Group if you fail to comply with any provision of this License. Upon termination you must destroy the Software, related documentation, and all copies thereof.

4. Export Law Assurances. You agree and certify that neither the Software nor any other technical data received from The Gizmology Group, nor the direct product thereof, will be exported outside the United States except as authorized and as permitted by the laws and regulations of the United States. If the Software has been rightfully obtained by you outside of the United States, you agree that you will not re-export the Software nor any other technical data received from The Gizmology Group, nor the direct product thereof, except as permitted by the laws and regulations of the United States and the laws and regulations of the jurisdiction in which you obtained the Software.

5. Government End Users. If you are acquiring the Software and documentation on behalf of any unit or agency of the United States Government, the following provisions apply. The Government agrees: (i) if the Software and documentation are supplied to the Department of Defense (DoD), the Software and documentation are classified as "Commercial Computer Software" and the Government is acquiring only "restricted rights" in the Software and its documentation as that term is defined in Clause 252.227-7013(c)(1) of the DFARS; and (ii) if the Software and documentation are supplied to any unit or agency of the United States Government other than DoD, the Government's rights in the Software and its documentation will be as defined in Clause 52.227-19(c)(2) of the FAR or, in the case of NASA, in Clause 18 52.227-86(d) of the NASA Supplement to the FAR.

6. Limited Warranty on Media. The Gizmology Group warrants the diskettes and/or compact disc on which the Software and documentation are recorded to be free from defects in materials and workmanship under normal use for a period of ninety (90) days from the date of purchase as evidenced by a copy of the receipt. The Gizmology Group's entire liability and your exclusive remedy will be replacement of the diskettes and/or compact disc not meeting The Gizmology Group's limited warranty and which is returned to The Gizmology Group or a The Gizmology Group authorized representative with a copy of the receipt. The Gizmology Group will have no responsibility to replace a disk/disc damaged by accident,abuse or misapplication. ANY IMPLIED WARRANTIES ON THE DISKETTES AND/OR COMPACT DISC, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE LIMITED IN DURATION TO NINETY (90) DAYS FROM THE DATE OF DELIVERY. THIS WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS, AND YOU MAY ALSO HAVE OTHER RIGHTS WHICH VARY BY JURISDICTION.

7. Disclaimer of Warranty on Software. You expressly acknowledge and agree that use of the Software and documentation is at your sole risk. Except as is stated above, the Software and related documentation are provided "AS IS" and without warranty of any kind and The Gizmology Group and The Gizmology Group's Licensor(s) (for the purposes of provisions 7 and 8, The Gizmology Group and The Gizmology Group's Licensor(s) shall be collectively referred to as "The Gizmology Group") EXPRESSLY DISCLAIM ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE GIZMOLOGY GROUP DOES NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE SOFTWARE WILL MEET YOUR REQUIREMENTS, OR THAT THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT DEFECTS IN THE SOFTWARE AND THE DOCUMENTATION WILL BE CORRECTED. FURTHERMORE, THE GIZMOLOGY GROUP DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OR THE RESULTS OF THE USE OF THE SOFTWARE AND RELATED DOCUMENTATION IN TERMS OF THEIR CORRECTNESS, ACCURACY, RELIABILITY, OR OTHERWISE. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY THE GIZMOLOGY GROUP OR A GIZMOLOGY GROUP AUTHORIZED REPRESENTATIVE SHALL CREATE A WARRANTY OR IN ANY WAY INCREASE THE SCOPE OF THIS WARRANTY. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU (AND NOT THE GIZMOLOGY GROUP OR A GIZMOLOGY GROUP AUTHORIZED REPRESENTATIVE) ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION MAY NOT APPLY TO YOU.

8. Limitation of Liability. UNDER NO CIRCUMSTANCES INCLUDING NEGLIGENCE, SHALL THE GIZMOLOGY GROUP BE LIABLE FOR ANY INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES THAT RESULT FROM THE USE OR INABILITY TO USE THE SOFTWARE OR RELATED DOCUMENTATION, EVEN IF THE GIZMOLOGY GROUP OR A GIZMOLOGY GROUP AUTHORIZED REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU.

In no event shall The Gizmology Group's total liability to you for all damages, losses, and causes of action (whether in contract, tort (including negligence) or otherwise) exceed that portion of the amount paid by you which is fairly attributable to the Software and documentation.

9. Controlling Law and Severability. This License shall be governed by and construed in accordance with the laws of the United States and the State of California, as applied to agreements entered into and to be performed entirely within California between California residents. If for any reason a court of competent jurisdiction finds any provision of this License, or portion thereof, to be unenforceable, that provision of the License shall be enforced to the maximum extent permissible so as to effect the intent of the parties, and the remainder of this License shall continue in full force and effect.

10. Complete Agreement. This License constitutes the entire agreement between the parties with respect to the use of the Software and the related documentation, and supersedes all prior or contemporaneous understandings or agreements, written or oral, regarding such subject matter. No amendment to or modification of this License will be binding unless in writing and signed by a duly authorized representative of The Gizmology Group.