This is the result of my first attempts. Though it might help someone out. Also, any input is appreciated.
I have no programming education. This is just my fumbling around code. Most importantly, IT WORKS!!!
Happy Holidays!


// This code was written by Victor Perez for doityourselfchristmas.com based on the code from Zparticle, Si_champion and Neil Tapp.
// To adapt the code to your case, just change this top section, with the #define lines.
// header packet in vixen: ~!
//Edited to receive an input switch on A5-ALL ON off position still random
//Also edited to receive serial data on pins 10&11 for XBee
//XBee using parallax adapters, 1 with usb port for transmission to remote light controller
//XCTU software used to configure Xbee to 57600 baud rate

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX


// Includes the watchdog timer library
#include <avr/wdt.h>

// This sets how many channels will vixen be sending. Can be set to any number from 1 to 48 for Arduino Mega, and 1 to 18 for Arduino Uno.
#define CHANNEL_COUNT 16

// speed for the com port for talking with vixen. From 9600 to 115200. Use the same speed as set in Vixen.
#define VIXEN_COM_SPEED 57600

// Timeout waiting for serial input before going to random mode (in milliseconds).
#define TIME_OUT 1000

// If the relays turn On and Off opposite to Vixen sequence, change "#define MODE NOT_INVERTED" for "#define MODE INVERTED"
#define NOT_INVERTED 0
#define INVERTED 1
#define MODE NOT_INVERTED

// which pins control which channels
// You can change these assignment to use different pins, but be very careful to not repeat the same pin number for 2 channels.
// DO NOT use pings 0 and 1, as those are for the serial port to talk to the computer.
#define CH01 2
#define CH02 3
#define CH03 4
#define CH04 5
#define CH05 6
#define CH06 7
#define CH07 8
#define CH08 9
//#define CH09 10
//#define CH10 11
#define CH11 12
#define CH12 13
#define CH13 A0
#define CH14 A1
#define CH15 A2
#define CH16 A3
#define CH17 A4

int channels[] = {CH01,CH02,CH03,CH04,CH05 ,CH06,CH07,CH08,CH11,
CH12,CH13,CH14,CH15,CH16,CH17};

int incomingByte[CHANNEL_COUNT];

const int switchPin = A5; //Input for the override switch

int i = 0; // Loop counter
volatile unsigned long timer_a = 0; // new line

//setup the pins/ inputs & outputs
void setup(){

// enable the watchdog timer with a time of 1 second. If the board freezes, it will reset itself after 1 second.
wdt_enable(WDTO_1S);

// specifically for the UNO
sei();

// initalize PWM Channels / Pins
for (i=0; i < CHANNEL_COUNT; i++){
pinMode(channels[i], OUTPUT);
}

// set all the realys to off to start with
if (MODE == NOT_INVERTED) {
for (i=0; i < CHANNEL_COUNT; i++){
digitalWrite(channels[i], LOW);

}
}

else {
for (i=0; i < CHANNEL_COUNT; i++){
digitalWrite(channels[i], HIGH);
}
}

testSequence();

// set up Serial according to the speed defined above.
mySerial.begin(VIXEN_COM_SPEED);

pinMode(switchPin, INPUT); //Set our button pin as an input
}

void loop()
{
if (digitalRead(switchPin) == HIGH) { //If the switch is on "vixen mode"
if (mySerial.available() >= (CHANNEL_COUNT+2)) {
wdt_reset(); // resets the watchdog
timer_a = millis (); // new line
int uno = mySerial.read();
if (uno == 126){

int dos = mySerial.read();
if (dos == 33){

for (i=0; i < CHANNEL_COUNT; i++) {
// read each byte
incomingByte[i] = mySerial.read();
}
if (MODE == NOT_INVERTED) {
for (i=0; i < CHANNEL_COUNT; i++){
int value = incomingByte[i];
if (value <= 127) {
digitalWrite(channels[i], LOW);
}
else {
digitalWrite(channels[i], HIGH);
}
}
}
else {
for (i=0; i < CHANNEL_COUNT; i++){
int value = incomingByte[i];
if (value < 127) {
digitalWrite(channels[i], HIGH);
}
else {
digitalWrite(channels[i], LOW);
}
}
}

}
}
}
// Random mode code. Random mode starts if no serial input has been received in TIME_OUT millisenconds
else {
wdt_reset(); // resets the watchdog
unsigned long diff = millis() - timer_a;
if (diff >= TIME_OUT) {
timer_a = millis ();
int random_a = 0;
for (i=0; i < CHANNEL_COUNT; i++){
random_a = random(0, 2);
if (random_a == 0) {
digitalWrite(channels[i], LOW);
}
else {
digitalWrite(channels[i], HIGH);
}
}
}
}
}


else { //If the switch is NOT on "vixen mode" then turn everything on
for (i=0; i < CHANNEL_COUNT; i++)
{
digitalWrite(channels[i], HIGH);
}
}





}
void testSequence(){

if (MODE == NOT_INVERTED) {
for (i=0; i < CHANNEL_COUNT; i++){
wdt_reset(); // resets the watchdog
digitalWrite(channels[i], HIGH);
delay (500);
digitalWrite(channels[i], LOW);
}
}

else {
for (i=0; i < CHANNEL_COUNT; i++){
wdt_reset(); // resets the watchdog
digitalWrite(channels[i], LOW);
delay (500);
digitalWrite(channels[i], HIGH);
}
}
}