Managing PoE WiFi Access Points Power State Based On Alarm System Status

It has been almost 5 years of automating our house and during that time most systems have been automated successfully. These days it is about fine tuning and this is what this post is about.

Our house is on the largish side and contains three Cisco Aironet AP’s to provide a unified hidden SSID. We leverage our alarm system (Inner Range Integriti) extensively so our PLC (Homevision Pro) can make decisions to control power, security, lighting, audio and so on.

So with this being said there are use cases in our household when we don’t need all our WiFi AP’s running.

If we are sleeping we don’t need WiFi out in to our front yard and if we are out and the house is fully armed we only need WiFi at the front of our house for re-entry

Calculating Cost
With this being said what does it cost to power an AP? Is it worth the hassle to fiddle with something that works? Our AP’s are PoE based and run at 48v DC and use approx 1AMP. To convert this to watts you can use amps multipled by volts
1 amp * 48v = 48w
So assuming power draw is 48w and power costs 30c a killowat hour
0.048 * 0.30 = $ per hour * 24 * 365 = $126.14

It costs approx $125 to run a single access point for a year, so our annual power cost for WiFi is $375. It is worth it

The Solution
The Homevision Pro (PLC) and Inner Range Integriti (Alarm System) talk to each other. When the alarm changes state the PLC knows.
So with the ability to read data off the serial stream coming from the Inner Range Integriti we can take action and turn off our AP’s based on alarm system status.

Without delving to much in to the rules and operation of our house I derived a simple script that would manipulate the state of the switch ports to which the AP’s are plugged in to. They get disconnected when not needed and reconnected to the network when need, all of which is based on the alarm status.

The code snippet below relies on the following technologies and assumptions
– Cisco IOS operating system with Telnet enabled
– VBScript compiler
– Not a switch stack

The idea is portable and could be modified to suit any technology platform


'---------------- DO NOT EDIT BELOW THIS LINE ------
' **************************************************
' * Author - Shane Baldacchino *
' * Version - 1.0 *
' * Email - shane@baldacchino.net *
' * File Name - CiscoSwitchPorts.vbs *
' * Script Language - Microsoft VB Script *
' * Creation Date - Tuesday 23rd, December 2014 *
' * Modified Date - Tuesday 23rd, December 2014 *
' **************************************************
'On Error Resume Next

'---------------- EDIT BELOW THIS LINE -------------
'Versions
ScriptVersion = 1.0
'Cisco Switch IP
Cisco_Switch_IP = "xxx.xxx.xxx.xxx'
'admin password
admin_password = "xxxxxxxx"
'en password
en_password = "xxxxxxxxx"
'---------------- DO NOT EDIT BELOW THIS LINE --------

Set args = WScript.Arguments
'Shutdown(0) or NoDown(1).

set oShell = CreateObject("WScript.Shell")
oShell.run"cmd.exe"
WScript.Sleep 500
oShell.SendKeys"telnet " & Cisco_Switch_IP
oShell.SendKeys("{Enter}")
WScript.Sleep 1500
oShell.SendKeys & admin_password
oShell.SendKeys("{Enter}")
WScript.Sleep 1500
oShell.SendKeys"en"
oShell.SendKeys("{Enter}")
WScript.Sleep 1500
oShell.SendKeys & en_password
oShell.SendKeys("{Enter}")
WScript.Sleep 1500
oShell.SendKeys"config t"
oShell.SendKeys("{Enter}")
WScript.Sleep 1500
oShell.SendKeys"int fa0/" & args(1)
oShell.SendKeys("{Enter}")
wscript.Sleep 1500
Select Case args(0)
Case 0
oShell.SendKeys"shutdown"
Case 1
oShell.SendKeys"no shutdown"
End Select
oShell.SendKeys("{Enter}")
WScript.Sleep 1500
oShell.SendKeys"exit"
oShell.SendKeys("{Enter}")
WScript.Sleep 1500
oShell.SendKeys"exit"
oShell.SendKeys("{Enter}")
WScript.Sleep 1500
oShell.SendKeys"exit"
oShell.SendKeys("{Enter}")
WScript.Sleep 1500
oShell.SendKeys"exit"
oShell.SendKeys("{Enter}")
WScript.Sleep 1500
oShell.SendKeys"exit"
oShell.SendKeys("{Enter}")
WScript.Sleep 1500

'Code to log to database
'------Removed for blog ---------

Wscript.echo Now & "| Script Processing Complete"
Wscript.echo Now & "| Script Terminating"
Wscript.quit

Executing The Script
The script above has two arguments
– argument 0 = 0/1 [0 being power state off, 1 being power state on]
– argument 1 = int [switch interface port]

A video of the script in action can be found here

Summing It Up
The script above is generic means to manipulate the switch ports and how you link things together is up to you. Without divulging how our house operates this script is called by the PLC when alarm system state changes either to to turn off and on AP’s.

Based on a weeks usage (logged to a database) our 3 AP’s have gone from 24 hours usage each day to approximately 14 hours usage and apart from being awesome to watch it saves a few dollars

48watts * 0.30 kilowat hour cost * 10 hours avg use * 365days * 3AP's = $157.68

In our case $157 dollars per year of electricity use. Minor but it all adds up and why power something when you don’t need it? Plus from a security perspective you are reducing your surface attack area when AP’s are powered off.

Shane Baldacchino

Our Front Yard – Landscaping And Lasers

Landscaping our house has always been something on the cards for our family but it was placed on the back burner due to differing priorities. It wasn’t until our body corporate put this on the agenda did we get pretty serious about it.

Whilst technically I find I can learn grasp most things life, design is not something I have a flair for. We didn’t want a different look for different areas of the house. We engaged award winning Apex Landscapes to design landscaping for the entire house. Our brief was
– Integrate technology in to it, make it a tour de’force
– Little or very little maintenance (read no wood)
– Look high end and really stand out for the right reasons
– Something different to other houses in the estate

We had a front that looked like this

They envisaged it would look like this

From laser leveling to CAD designs, Apex Landscapes are the most professional company I have dealt with with spectacular attention to detail. This kind of meant their price with to date and their prices reflect it. After receiving our designs and their implementation quotes we needed to figure out a way to so most of this ourselves as we simply couldn’t afford the implementation price. We decided we would do everything but the hard landscaping of the front yard. We settled on ‘The Blake Escape’ to perform the hard landscaping of our front yard with myself tackling
– irrigation
– electrical (design, relays, programming, sensors)
– soil works
– planting
– steelwork (letterbox CNC)

Bill of Materials
I wont be costing this out (probably due to embarrassment) but suffice to say this project ran in to 5 figures many times over. It involved the following high level items
– 1 x Landscape Design (Surveying, CAD design)
– 1 x Excavation
– 1 x Exposed Aggregate Driveway
– 3 x Carpenters
– 3 x BrickLayers
– 5 x Landscapers
– 9 x CM3 Of Concrete
– 1 x Bobcat
– 4 x Pallets Of Honed Blue Stone Pavers
– 7 x M2 of Blue Stone Crazy Paving
– 4 x Pallets of Bessa Blocks
– 2 x Pallets of Ledgestone Hotham
– 13 x m3 of soil
– 50 x m2 of turf
– 23 x Lengths of Electrical Conduit (Combination of 25mm and 32mm)
– 50+ x Electrical Conduit Adapters (Bends, Elbows, Couplers)
– 150m x 13mm of Low Density Poly Pipe
– 50m x 13mm pressure compensating dripper
– 1 x Antelco EzyValve 4 Solenoid Valve Controller
– 1 x Brass Pressure Regulation/Filtration devices
– 500m of figure 8 electrical cable (lighting)
– 150m of 8 core electrical cable (relays)
– 100m of 6 core electrical cable (sensors)
– 100m of 4 core electrical cable (sensors)
– 5 x Omron 12V DC switching relays
– 8 x Optical Isolaters
– 2 x PNP Through Beam Laser Photo Switches
– 1 x PNP Photo Electric Switch
– 1 x Laser Cut 6mm Steel Plate Letterbox Cut Out
– 13 x Havit LED EyeLid Lights
– 6 x Havit LED Spot Lights

This project has taken approximately 9 months to complete and the following steps are compressed

Step 1: Do the Thinking Up Front
Every company I spoke to about the build told me this was such a technical design with more than a few shying away from the job. Being technical I knew that it would be much harder to retro fit my grand plans after build. I sat down and designed the irrigation, lighting and sensors.

Step 2: Run Cable Umbilical
Three is a lot going on in our yard with everything being driven from a PLC in the garage. It’s not really practical to drive 20+ lights, sensors and solenoids directly. The plan was to run multiple 8 core cables to my letterbox area for relay control and power distribution. There would be a rail o of 20AMP 12v DC that would be switched via relays which are controlled by the PLC.

Cables were ran through the garage roof and out via a junction box before disappearing in to conduit heading towards the future letterbox.

Oscar was a great help

Shane Baldacchino

Afraid.org (DNS) Windows VB Script Update

Whilst very busy I host a handful of websites for friends and family from my garage fibre connection. The thing is my ISP doesn’t provide me an a static IP address. This is obviously an issue when hosting websites.

This can be solved in one of two ways
1. obtain a static IP address either by changing your ISP or plan (if possible)
2. change your A records when your public IP address changes.

I elected to go with option 2.

After evaluating providers our there I settled with Afraid. The clinching factor was the ability to change your A records via an API call over HTTP. Other providers lacked this feature and the 5 years now I have been using Afraid and they have been rock solid with no apparent outages.

Afraid provide multiple ways to update your A record via HTTP but really its more focussed around Linux and the examples other people have written are cumbersome batch files

With hosting multiple sites I wanted a better more streamlined way to update my A records. For that purpose I wrote a VBScript that can be scheduled in Windows.


' **************************************************
' * Author - Shane Baldacchino *
' * Version - 1.0 *
' * Email - shane@baldacchino.net *
' * File Name - DNS_Public.vbs *
' * Script Language - Microsoft VB Script *
' * Creation Date - Thursday 18th, September 2014 *
' * Modified Date - Thursday 18th, September 2014 *
' **************************************************

'---------------- EDIT BELOW THIS LINE --------------------------------
'Versions
ScriptVersion = 1.0

'Domain 1
Set objHTTP = CreateObject("Microsoft.XMLHTTP")
'Replace the GET URL to that of what is listed in Afraid.org for your domain
objHTTP.open "GET","http://freedns.afraid.org/dynamic/update.php?xxxxxxxxxxx", False
objHTTP.send
'Replace 'domain 1' with your domain name
wscript.echo now & " | domain 1 - " & objhttp.responsetext

'Cut and paste the above to add in multiple domains
'---------------- DO NOT EDIT BELOW THIS LINE -------------------------

Execution can be performed by using the cscript VB compiler.


cscript DNS_Public.vbs

Which yields the response in my case of


C:\Archive\Scripts>cscript DNS_Public.VBS
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

17/12/2014 1:36:35 PM | domain 1 - ERROR: Address 124.168.106.85 has not
changed.

17/12/2014 1:36:35 PM | domain 2 - ERROR: Address 124.168.106.85 h
as not changed.

17/12/2014 1:36:41 PM | domain 3 - ERROR: Address 124.168.106.85 has n
ot changed.

17/12/2014 1:36:42 PM | domain 4 - ERROR: Address 124.168.106.85 has n
ot changed.

17/12/2014 1:36:42 PM | domain 5 - ERROR: Address 124.168.106.85 has
not changed.

A copy of this VB script can be downloaded here

Shane Baldacchino

Installation And Integration Of Open Sprinkler and Homevision Pro

Before we started landscaping I had grand plans for irrigation for our house. It was borne out of two desires.
1. With a growing busy family I can’t guarantee that our plants and lawn can be watered
2. Because I can

What quickly became apparent on my home automation journey is that the more sensors I had connected to my Homevision Pro the more powerful my decision logic could be. It was for that reason alone I didn’t want another system separate to the Homevision Pro calling the shots.

I looked at using the Homevision Pro but didn’t really want to waste valuable output ports and upon reading a website I regular read I elected to use a product, . OpenSprinkler. What drew me to OpenSprinkler was that it was an irrigation controller that was TCP/IP enabled and after more investigation I figured I could make simple HTTP GET’s to control the system. Opensprinkler is a great product but it is also quite basic in its logic. It can water based on timers and a rain sensor. But it cant water based on more advanced weather conditions.
– If today is going to be 40C do we need to alter how much water is being dispersed and at what time
– If it rained 7mm of rain over night but isn’t raining when the cycle is set to start do I really need to water?

So whilst I am a big advocate of OpenSprinkler I decided to just use it as a ‘dumb’ TCP/IP irrigation controller and let Homevision Pro call all the shots.

Bill of Materials
– 1 x OpenSprinker ($180AUD)
– 1 x 24V AC PSU ($30AUD)

Total Cost = $210AUD

Tools used
– Soldering Iron
– Pliers
– Screw Driver
– Multimeter

Step 1: Mount and Connect to Network / Valves
Being a small unit I elected to mount OpenSprinkler inside my Homevision Pro enclosure. There was just enough space inside this enclosure for a nice neat snug fit. Ethernet, power and valves were all connected to OpenSprinkler. That’s about all there is to do for physical installation. The rest of this is in the logic.

Step 2: Figure out how OpenSprinkler works
OpenSprinkler is simple to use. The thing is I want to make calls to it that my browser or smartphone application makes. I used Firebug which an excellent Firefox plugin and this showed the following structure

GET http://OpenSprinkler_IP + Station Name + Status ON / OFF + seconds

which translates to

GET http://OpenSprinkler_IP/sn1=1+120

The above GET will cause station number 1 to turn on for 120 seconds. It is a simple as that.

Shane Baldacchino

Controlling Bathroom Exhaust Fans With Honeywell Humidity Sensors

Whilst having automatic lights in my bathrooms is great, having to manually turn on the fan is less than ideal. This article describes how I am interfacing a humidity sensor with a Homevision Pro automation controller to automatically turn on the exhaust fans when humidity reaches a per-defined level. It does not cover all of the programming and smarts around the installation and this this article will provide guidance for any automation system. This is probably one of the easiest tasks I have performed at our house.

Bill of Materials
– 1 x Honeywell HIH-4030 humidity sensor ($19 AUD)
– 1 x Length of heat shrink ($3 AUD)
– 1 x 20m (enough cable to run between automation controller and sensor) of cable. ($10 AUD)
– 1 x automation module to control exhaust fan ($27 AUD)

Total Cost = $59 AUD

Tools used
– Soldering Iron
– Pliers
– Screw Driver
– Multimeter

Step 1: Figure Out How The Sensor Works
Probably the most obvious step here for any automation task. Before we can start controlling the exhaust fan we need to figure out how this sensor works. This sensor was the first analogue sensor I had dealt with and to be honest they are very simple. The HIH-4030 measures relative humidity (%RH) and delivers it as an analog output voltage in near linear form. More details can be found here and if you don’t have time to read this this document it can be summarised with the following image.

This sensor has three pins.

5V – 5V DC
GND – Ground for 5V DC
OUT – A return voltage (DC) which will be relative to the humidity it is reading.

To test how the sensor operates you will need your multimeter and a DC power supply. Supply power to the sensor by connecting 5V and GND to the sensor. Now setting your multimeter to DC volts measure between GND and OUT. The reading you receive will now be relative to the humidity. As humidity changes so will be the voltage detected.

Step 2: Make The Connections
Now since I have tested this it is time to connect to the Homevision Pro. When I built this house I ran an overkill of Ethernet throughout the house. Rather than running a new cable I decided to use CAT 6 as my transport medium. As Cat 6 has 8 cores I have used 2 cores for GND, 3 cores for 5V and 3 cores for OUT. The Honeywell HIH-4030 will require you to solder your cable to the sensor.


Step 3: Program And Test
With everything physically connected it is now time to program, tune and test. The sensor has an operating range which required me to set a gain and offset value.

From the datasheet’s graph(above), it shows that at 0% RH you get a voltage of around 0.8V, at 100% RH you get 3.8V, and there is a near linear relationship between relative humidity and voltage. The Homevision Pro can apply a gain and offset value to the analog values it measures which works well for a linear relationship. According to my calculations, using a gain of 0.65 and offset to -26, the analog port value you obtain via the “VAR = Value of analog input” command will be a pretty good approximation of the relative humidity.

This equation could be expressed via the following

255 * 0.8 / 5 * 0.65 – 26 = 0.52

Testing is accomplished by turning on the hot water in the shower and waiting. I have the exhaust fans controlled by an X10 appliance module. I again use a multimeter to tune. For my needs I turn on the fan when the relative humidity reaches 70% and off again when the relative humidity stays below 70% for more than 5 minutes.

Shane Baldacchino

Interfacing Zoned Gas Heating with an Automation System (Homevision Pro)

WARNING : Electricity can be lethal, this work should only be attempted by a licensed electrician

On my list of things to automate around my house is HVAC . This article is describes how I hooked a multi-zone heating system up to my Homevision Pro automation controller. It does not cover all of the programming and smarts around the installation. In reality this article will provide guidance for any automation system.

This modification will remove the thermostats off your walls. If you are uncomfortable in having your phone, tablet, computer or automation system controlling your heating then probably best you don’t continue. This setup has now been in place for 2 years without incident.

Bill of Materials
– 2 x 300ohm resistors ($1 AUD)
– 2 x SSR (Solid State Relays) 3.0 –> 32v DC switching AC 0 –> 500v AC ($20 AUD)
– 1 x Length of heat shrink ($3)
– 1 x 20m (enough cable to run between automation controller and heater furnace) of 6 core cable. ($10 AUD)

Total Cost = $34 AUD

Tools used
– Soldering Iron
– Pliers
– Screw Driver
– Drill and drill bits

Step 1: Figure out how the heater works?
Probably the most obvious step here for any automation task. Before we can emulate a wall thermostat we need to know what the wall thermostat is doing which tells the heater to turn on. Time to whip out the trusty multimeter. To figure out what the thermostat is doing I took the thermostat off the wall and  begun probing for voltage and continuity. My system uses 3 wires (systems using heat pumps will use more)

G – Fan
R – 24V active
W – Heating

I observed when I manually moved the thermostat to a temperature above ambient I hear a click. This is almost a giveaway as this click is most likely a relay moving between NO or NC. So with the multimeter set to ‘continuity’ I started to probe.

What I found was when there was no request to provide heat, all connections were open between each pin. But when there is a request for heat that is higher than ambient their is continuity between G (Fan) and W (Heating).

The R is 24V and provides 24V to power the thermostat (unsure why it was wired in as this model runs off batteries). I don’t need it (as my automation controller is my thermostat) and thus am simply interested in just G and W. So what we need to do is bridge G and W together. To prove my theory I simply bridged G and W together and observed the output. The end result was we within a few minutes we had head coming out of the heating ducts. Success


Step 2: How to interface the HVPRO to the heater
In order to interface the HomeVision Pro and the heating zone controller together I have elected to place a SSR in between to act as a buffer. It’s not needed as the Homevision Pro can drive the zone controller but I am doing this to prevent damage to HomeVision Pro should something go wrong. My house has multiple heating zones. So rather than running multiple cables for each zone I have ran a 6 core cable from the Homevision Pro to the heaters zone controller. I only require 3 cores (one for each relay and a shared common) but given how much hassle it can be to run cable I always recommend a few spare.

Step 3: Reducing the voltage
The SSR relays have a switching voltage of 3-32V DC. So I don’t have to introduce yet another PSU I wanted to use the 5VDC rail on the Homevision Pro. But if I use the 5V DC rail it will always be on and the house would get mighty hot :S. By using a 330ohm pull up resistor when the output port is high I get 3.2 volts (enough to switch the relay) and .7 of a volt when the port is low. Below is schematic of how this all plumbs together.





Step 4: Demo
Here is a quick demo of the above working. There is no polish and it simply shows the heater being controller via the controller by means of setting variables to control the output ports which drive the SSR’s which in turn tells the zone controller what zones need heat, the zone controller then directly interfaces with the heater. The achieve the results in the applications below has required me to build on this base.

Step 5: Applications
Some time has passed since I wrote the above. At first it was a bit of a gimmick but now is relied upon but not just me but my wife. The heater now has the following attributes

– there is no thermostats on the wall, was bit a scary at first but I have ironed out all the bugs
– controlled via Android/IOS devices via NetIO (jSON based pipeline to Homevision Pro), exposed externally to our house. Heating can be monitored and controlled remotely
– controlled via html post and get’s (utilised by Windows Phone 8.1)
– is set to automatically turn heat on when the family arrives home (front or garage door) if the system was previously off
– will automatically turn off (if on) if the front door or door to the garage is open for > 3 minutes
– will automatically turn off when ever the house is armed
– will automatically turn off if no motion is detected down stairs for more than 45 minutes
– will automatically turn on downstairs between the hours of 5am – 9am when the current temperature downstairs is less than the previous set temperature and there has been 3 hits on any of the 17 motion sensors downstairs in the house within a 3 minute period.


For the actions that happen automatically I have my Homevision Pro executing a script I wrote which calls an SMS API to send our phones a SMS. Whilst I like things happening like magic, I do want to know about them.

Shane Baldacchino

Installation of Inner Range Integriti Alarm Systems with Multi Door Access Control

WARNING : Electricity can be lethal, this work should only be attempted by a licensed electrician

The last major item on my automation to-do list was access control. Many basic alarm systems do this but I needed more. As I plan leverage this system as my eyes finding the right solution was paramount to the success of future projects.

I ended up settling on InnerRange’s Integriti system. An overkill by all means but powerful enough to ensure I won’t be limited by the system. It speaks serial, has an API, can control 1,000 card readers, switch 240 doors and have 100,000 users.

Enough for our house.

Bill of Materials
– 1 x InnerRange ISC (Integriti Security Controller)
– 1 x InnerRange Prisma Terminal
– 1 x InnerRange Elite Terminal
– 1 x InnerRange Rack Mount Chassis
– 1 x InnerRange Intregriti 2 AMP PowerSupply
– 1 x InnerRange Integriti 2 Door Controller
– 13 x Paradox DG55 PIR(Passive InfraRed Sensor)’s
– 2 x FSH FES20 Electric Strikes
– 2 x HID R10 Mullion Card Readers
– 1 x Flush Mount Internal Siren
– 1 x External Strobe / Siren
– 1 x RS232 Adapter Cable from ISC to Automation Controller
– 1 x Licensing SIM
– 1 x Cable Recess Hinge
– 250m of Figure 8 cable (Power)
– 3000m of 4 Core Alarm Cable (PIR’s)
– 250m of 4 Core Shielded Cable (Local LAN RS 485 Communication)
– 800m of 8 Core Shielded Cable (HID Car Readers)
– 1 x Length of heat shrink ($3)
– 1 x 20m (enough cable to run between automation controller and heater furnace) of 6 core cable. ($10 AUD)

Total Cost =

Step 1: Plan
A project like this is not something you string together last minute. My house is double story and like all other projects I complete I am after the stealth look. Without adequate planning their will be unnecessary cuts in plaster or bits of conduits hiding cables. Not a neat look. Whilst I have become pretty good at running cables, running cables to the middle of the bottom story is practically impossible without plaster damage. Given I had some idea of what we wanted to achieve before we built it was time to consult the experts.

My requirements were pretty modest but actually finding a product and installer who knew what they were talking about was less than easy. After countless weeks research I ended up with an InnerRange Integriti system and worked with their gold partner (. As it came to be they were a pretty good company to work with that said whilst they were a gold partner they knew very little about interfacing the system via serial and nothing on the API side of the product. That left me in bit of a hold but they kindly put me in touch with Inner Ranges support team which have been excellent to deal with.

Step 2: Cable, Cable and Cable
This process started 4 1/2 years ago when we built. During the build process we ran approximately 7km of cable during the framing stage. Based off a rough plan from InnerRange cable was ran for
– All PIR’s (One per room approx)
– All panels (upstairs, downstairs, garage)
– Emergency/Duress buttons (in master bedroom)
– Sirens (Both Internal and External)
– Electric Stikesb

Interfacing a NAD T163 with a Homevision Pro

This article describes how I interfaced a NAD T163 pre-amplifier with my Homevision Pro automation controller. It does not cover all of the programming and smarts around the installation. In reality this article will provide guidance for any automation system.

Bill of Materials
– 2 x RS232 DB9 adapters ($8 AUD)
– 1 x Interfacing cable between units (I used Cat 6e)

Total Cost = $8 AUD + cable

Tools used
– Pliers
– Screw Driver
– Krone Tool

Step 1: Figure out how NAD serial communication works?
Probably the most obvious step here for any automation task. Before we can have the HomeVision Pro communicate with the pre-amp I need to how to communicate to it. Usually the best way to do this is with a PC and a serial emulator. My tool of choice is putty. I usually try a 8-N-1 connection. This is a common shorthand notation for a serial port parameter setting or configuration in asynchronous mode, in which there are eight (8) data bits, no (N) parity bit, and one (1) stop bit.

How ever after looking at websitethey actually have a RS232 test tool. Why re-invent the wheel? My device is pretty old. Whilst all of NAD’s devices today use ASCII commands mine used binary encoded decimal communication in Q8.8 format.
Q format is often used in hardware that does not have a floating-point unit and in applications that require constant resolution.
This device uses Q8.8 format, using an 8+8+1 bit signed integer container with 8 fractional bits, its range is [-128, 128]


What the NAD tool tells me exactly what commands I need to send to perform a given function and on the reverse how to interpret the results being sent back by the pre-amplifier. In the example in the images, if I want to tell the pre-amp to turn on I issue ‘1, 21, 21, 94, 65, 2, 212’ and like magic it powers on.

According to the NAD website the data format for all commands sent to the T163 and responses sent back have the following basic format:
| Start | Command | Data | Checksum | 8-bit Checksum |

Start | 1 byte control character which starts every packet of data.
Command | 1 byte command which represents the operation to be performed or the type of response being returned
Data | Variable length data. The length of this field depends on the command. If the data represents a multibyte number, it should be sent least significant byte first.
Checksum | 1 byte control character which denotes the end of the data stream and the beginning of the checksum.
8-bit Checksum | This checksum is the inverse sum of the Command and Data bytes of the packet. It is used to verify the validity of the data packet.

Any data received which does not follow this format will be ignored.

Step 2: Connect the devices
The connection to the NAD T163 is DB9 male. To connect I need to interface with it using a DB9 female connector with the following pin outs
Pin 2 – Transmit
Pin 3 – Receive
Pin 5 – Ground

On the Homevision Pro (or controlling system) the pin outs need to cross the transmit and receive
Pin 2 – Receive
Pin 3 – Transmit
Pin 5 – Ground

Step 3: Homevision Pro Code
Code now needs to be written on the home

Shane Baldacchino