"My Home Automation Projects"

xPLMyHouse - Overview

Please also read the Disclaimer

General Overview

This section describes various aspects of the system, and will be added to as time allows

Pivot Update

From the client you can choose to update the pivot. When you choose this option the Pivot talks to my website to get an xml file that describes any updates to the standard device, image, schema files and downloads them based on a version number. e.g. if you are on v4 of the files and the xml file says the latest is v9 then the Pivot will download the files described as changed in v5 thru v9 to bring itself fully up-to-date. This update does NOT overwrite files in the "User" sub-folder of each file type

The Pivot update does not currently update the exe files, this must be done manually

Client Update

From the client you can choose to update client you are currently using. This copies down the latest image/schema (including user-defined) files from the Pivot. When a client is launched for the 1st time on a PC it does this automatically

System File Structure

An xPLMyHouse installation consists of the following folders

.\Client Install
     This folder contains the files need to run a client

.\Config
.\Config\Devices
.\Config\Vendors
     These folders are for the optional xPL Configuration Manager

.\Data
.\Data\Backups
     These folders hold the user defined configuration and cache (your personal system)

.\Devices
.\Devices\User
     These folders contain the standard and user-defined device descriptor files

.\Images
.\Images\User
     These folders contain the standard and user-created image files for devices
     These folders are also copied to any Web Server or Client

.\Schemas
.\Schemas\User
     These folder contain the standard and user-defined schema files for some operations

.\Scripts
     This folder, and sub folders, contain user created xPL scripts

.\Webcams
     This folder holds the user-defined HTML files for display Web/IP cameras
     This folder is also copied to any Web Server or Client

.\www
     This folder holdsthe user-defined web site layouts
     This folder is only used by the Web Server 

User Sub-folders

The Pivot Update option (see client) downloads the latest device descriptors, images and schemas BUT does NOT overwrite anything in the "User" sub-folders

Any file in the user sub-folder takes priority over any file in the parent folder so all user-defined device, image or schema files should be placed in the user folders (whether they are totally new, or replacements for existing files)

When a client updates itself from the Pivot it copies down both the parent and user folders

Unfortunately, at this time, Web Servers that are not running on the same PC/Server as the Pivot have to be manually updated

Important Data files

The most important files are the user data files and these are stored in the "data" folder, these are the files:

mypivot.xml - this holds the system communication settings a few other system items
mydevices.xml - this holds the details of every device you have added to your system
mydevicecache.xml - this is a cache  of the current state/status/attribute values of your devices
myhouse.xml - this holds the details of every floor/door/room you have added to your system
myhousecache.xml - this is a cache of all the room/door states
myevents.xml - this holds every event you have defined
myglobalscache.xml - this is a cache of all global variables you have defined
mysecurity.xml - this holds the details of the security system if enabled
logging.mdb - a database that holds state/status/attribute logging if enabled on device

When you perform a "back up" of the Pivot from a Client these files (except logging.mdb) get copied into a sub-folder of the .\Data\Backups\ folder named yyyyMMddhhmmss (e.g. .\Data\Backups\20090207112301\)

To restore simply stop the pivot service and copy the backup files back and start the pivot service again

Communications

xPL is used mainly for client/pivot discovery, a few communications and, of course, all xPL control

Multicast is used for minor updates and to provide information & commands that all clients can see at once

Unicast is used for all major communications that the Client/Web Server make to the Pivot

How they interact

When a pivot shuts down all clients close and then re-open awaiting the return of the pivot. This can occur if pivot is stopped, if pivot is told to restart after an update or when a design change is saved back to the pivot (or a crash!)