{
   "bridge":
   {
      "name": "MAC Test Homebridge",
      "username": "CC:22:3D:E3:CE:30",
      "port": 51826,
      "pin": "555-55-555"
   },
   "platforms" :
   [
      {
         "platform":                       "Cmd4",
         "name":                           "Cmd4",
         "debug":                           false,                   // Output debug logs

         "allowTLV8":                       false,                   // Allow TLV8 Characteristics
                                                                     // These cannot be described easily
                                                                     // in JSON format. They are usually
                                                                     // binary formats.
                                                                     // The default is false.
         "outputConstants":                 false,                   // Instead of numeric values, output
                                                                     // the value in string form.
                                                                     // The default is false.
         "accessories" :
         [
            {
               "type":                     "Fanv1",
               "displayName":              "MyV1Fan",                // Not a characteristic, but a function parameter

               // Required characteristics
               "on":                       "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               // Optional Characteristics
               "name":                     "MyV1Fan",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)

               // Paramaters to state_cmd are:
               // Get <accessory name> <characteristic>
               // Set <accessory name> <characteristic> <value>
               // "Note": There is no need for an on_cmd or off_cmd
               //       with this kind of detail.

               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "Fan",
               "displayName":              "MyFan",                  // Not a characteristic, but a function parameter

               // Required Characteristics
               "on":                       "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               // Optional Characteristics
               "rotationDirection":        "COUNTER_CLOCKWISE",      // 0 - "CLOCKWISE"
                                                                     // 1 - "COUNTER_CLOCKWISE"


               "rotationSpeed":             100,                     // Range: 0-100, Step: 1

               "name":                     "MyFan",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "outputConstants":           true,                    // For this accessory, output constants

               // polling requires a state_cmd and state_cmd is
               // used with your own scripts. Here for example only.
               //"polling": [
               //   {"characteristic": "rotationDirection",    "interval": 40, "timeout": 8000},
               //   {"characteristic": "on",                   "interval": 40, "timeout": 8000}
               //],

               "stateChangeResponseTime":   3                        // Default (Seconds)

               // Paramaters to state_cmd are:
               // Get <accessory name> <characteristic>
               // Set <accessory name> <characteristic> <value>
               // "Note": There is no need for an on_cmd or off_cmd
               //       with this kind of detail.

               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "Fanv2",
               "displayName":              "MyV2Fan",                // Not a characteristic, but a function parameter

               // Required Characteristics
               "active":                   "INACTIVE",               // 0 - "INACTIVE"
                                                                     // 1 - "ACTIVE"

               // Optional Characteristics
               "currentFanState":          "IDLE",
                                                                     // 0 - "INACTIVE"
                                                                     // 1 - "IDLE"
                                                                     // 2 - "BLOWING_AIR"

               "targetFanState":           "AUTO",
                                                                     // 0 - "MANUAL"
                                                                     // 1 - "AUTO"

               "lockPhysicalControls":     "CONTROL_LOCK_DISABLED",  // 0 - "CONTROL_LOCK_DISABLED"
                                                                     // 1 - "CONTROL_LOCK_ENABLED"

               "rotationDirection":        "CLOCKWISE",              // 0 - "COUNTER_CLOCKWISE"
                                                                     // 1 - "CLOCKWISE"

               "rotationSpeed":             100,                     // Range: 0-100, Step: 1

               "swingMode":                "SWING_ENABLED",          // 0 - "SWING_DISABLED",
                                                                     // 1 - "SWING_ENABLED"

               "name":                     "MyV2Fan",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "GarageDoorOpener",
               "displayName":              "MyGarageDoorOpener",     // Not a characteristic, but a function parameter

               // Required Characteristics
               "currentDoorState":         "OPEN",                   // 0 - "OPEN"
                                                                     // 1 - "CLOSED"
                                                                     // 2 - "OPENING"
                                                                     // 3 - "CLOSING"
                                                                     // 4 - "STOPPED"

               "targetDoorState":          "OPEN",                   // 0 - "OPEN"
                                                                     // 1 - "CLOSED"

               "obstructionDetected":      "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               // Optional Characteristics
               "lockCurrentState":         "UNSECURED",              // 0 - "UNSECURED"
                                                                     // 1 - "SECURED"
                                                                     // 2 - "JAMMED"
                                                                     // 3 - "UNKNOWN"

               "lockTargetState":          "UNSECURED",              // 0 - "UNSECURED"
                                                                     // 1 - "SECURED"

               "name":                     "MyGarageDoorOpener",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific - Interval is in second, Timeout in msec
               // (polling per characteristic)
               // Define the characteristic, its Interval and Timeout

               // polling requires a state_cmd and state_cmd is
               // used with your own scripts. Here for example only.
               // "polling": [
               //    {"characteristic": "currentDoorState",     "interval": 540, "timeout": 8000},
               //    {"characteristic": "obstructionDetected",  "interval": 540, "timeout": 8000},
               //    {"characteristic": "lockCurrentState",     "interval": 540, "timeout": 8000}
               // ],
               "stateChangeResponseTime":   10,                      // Default (Seconds)

               // This is just a dumb example of a prefix
               "state_cmd_prefix":         "node"

               //"state_cmd":                ".homebridge/< yourScriptHere >"
            },
            {
               "type":                     "Lightbulb",
               "displayName":              "MyOnOffLight",           // Not a characteristic, but a function parameter

               // Required Characteristics
               "on":                       "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               // Optional Characteristics
               // Not Defining brightness determines that it is an On/Off Light
               // "Brightness":
               // "Hue":
               // "Saturation":

               "name":                     "MyOnOffLight",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // "ColorTemperature":

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "Lightbulb",
               "displayName":              "MyDimmableLight",       // Not a characteristic, but a function parameter

               // Required
               "on":                       "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               // Optional Characteristics
               // Defining brightness determines that it is dimmmable
               "brightness":                8,                       // Range: 0-100, Step: 1

               "hue":                       8,                       // Range: 0-360, Step: 1

               "saturation":                8,                       // Range: 0-100, Step: 1

               "colorTemperature":          8,                       // Range: 140-500, Step: 1

               "name":                     "MyDimmableLight",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "LockManagement",
               "displayName":              "MyLockManagement",       // Not a characteristic, but a function parameter

               // Required Characteristics

               // All TLV8 Characteristics are removed by default,
               // unless 'allowTLV8' is set, at your own peril.
               // Setting most will cause Homebridge with HomeKit or Eve.
               // to not allow you to connect.
               // "lockControlPoint":          0,                    // Format TLV8

               "version":                  "1.2.3",                  // Format: String


               // Optional Characteristics

               // All TLV8 Characteristics are removed by default,
               // unless 'allowTLV8' is set, at your own peril.
               // Setting most will cause Homebridge with HomeKit or Eve.
               // to not allow you to connect.
               // "logs":                   0,                       // Format: TLV8

               "audioFeedback":            "FALSE",
                                                                     // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "lockManagementAutoSecurityTimeout":
                                            20,                      // Format: UINT32
                                                                     // "Units": Seconds

               "administratorOnlyAccess":  "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "lockLastKnownAction":      "SECURED_PHYSICALLY_INTERIOR",
                                                                     // 0 - "SECURED_PHYSICALLY_INTERIOR"
                                                                     // 1 - "UNSECURED_PHYSICALLY_INTERIOR"
                                                                     // 2 - "SECURED_PHYSICALLY_EXTERIOR"
                                                                     // 3 - "UNSECURED_PHYSICALLY_EXTERIOR"
                                                                     // 4 - "SECURED_BY_KEYPAD"
                                                                     // 5 - "UNSECURED_BY_KEYPAD"
                                                                     // 6 - "SECURED_REMOTELY"
                                                                     // 7 - "UNSECURED_REMOTELY"
                                                                     // 8 - "SECURED_BY_AUTO_SECURE_TIMEOUT"

               "currentDoorState":         "OPEN",                   // 0 - "OPEN"
                                                                     // 1 - "CLOSED"
                                                                     // 2 - "OPENING"
                                                                     // 3 - "CLOSING"
                                                                     // 4 - "STOPPED"

               "motionDetected":           "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "name":                     "MyLockManagement",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "LockMechanism",
               "displayName":              "MyLockMechanism",        // Not a characteristic, but a function parameter

               // Required Characteristics
               "lockCurrentState":         "UNSECURED",              // 0 - "UNSECURED"
                                                                     // 1 - "SECURED"
                                                                     // 2 - "JAMMED"
                                                                     // 3 - "UNKNOWN"

               "lockTargetState":          "UNSECURED",              // 0 - "UNSECURED"
                                                                     // 1 - "SECURED"

               "name":                     "MyLockMechanism",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "Outlet",
               "displayName":              "MyOutlet",               // Not a characteristic, but a function parameter

               // Required Characteristics
               "on":                       "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "outletInUse":              "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               // Optional Characteristics
               "name":                     "MyOutlet",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "Switch",
               "displayName":              "MySwitch",               // Not a characteristic, but a function parameter

               // Required Characteristics
               "on":                       "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               // Optional Characteristics
               "name":                     "MySwitch",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "Thermostat",
               "displayName":              "MyThermostat",           // Not a characteristic, but a function parameter

               // Required Characteristics
               "currentHeatingCoolingState":
                                           "OFF",                    // 0 - "OFF"
                                                                     // 1 - "HEAT"
                                                                     // 2 - "COOL"

               "targetHeatingCoolingState":
                                           "OFF",                    // 0 - "OFF"
                                                                     // 1 - "HEAT"
                                                                     // 2 - "COOL"
                                                                     // 3 - "AUTO"

               "currentTemperature":        22.2,                    // Range: 0-100, Step: 0.1
                                                                     // "Units": CELCIUS

               "targetTemperature":         22.2,                    // Range: 10-38, Step: 0.1
                                                                     // "Units": CELCIUS

               "temperatureDisplayUnits":  "CELSIUS",                // 0 - "CELSIUS"
                                                                     // 1 - "FAHRENHEIT"

               // Optional Characteristics
               "currentRelativeHumidity":   60,                      // Range: 0-100, Step: 1
                                                                     // Format: float
                                                                     // Units: Percentage

               "targetRelativeHumidity":    60,                      // Range: 0-100, Step: 1
                                                                     // Format: float
                                                                     // Units: Percentage

               "coolingThresholdTemperature":
                                            22.2,                    // Range 10-35, Step: 0.1
                                                                     // Units: CELCIUS

               "heatingThresholdTemperature":
                                            25.2,                    // Range 0-25, Step: 0.1
                                                                     // Units: CELCIUS

               "name":                     "MyThermostat",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific - Interval is in second, Timeout in msec
               // - Notice Two characteristics being polled !!!
               //   at different intervals.
               // - Also Required as fakegato option below uses them.

               // polling requires a state_cmd and state_cmd is
               // used with your own scripts. Here for example only.
               //"polling": [
               //   {"characteristic": "currentHeatingCoolingState", "interval": 540,  "timeout": 8000},
               //   {"characteristic": "currentTemperature",         "interval": 60,   "timeout": 8000},
               //   {"characteristic": "targetTemperature",          "interval": 60,   "timeout": 8000}
               //],

               // Cmd4 Specific
               "stateChangeResponseTime":   10                       // (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >",

               // Cmd4 fakegato lets you specify what type of logging and
               // the characteristics to be logged.
               // i.e. thermo and tracking currentTemperature and
               //      targetTemperature.
               // See https://github.com/simont77/fakegato-history
               // for full description of fields.
               // You must also define them for polling, or the value would never change.
               // fakegato requires a state_cmd and state_cmd is
               // used with your own scripts. Here for example only.
               //"fakegato": {"eve":           "thermo",
               //             "currentTemp":   "CurrentTemperature",
               //             "setTemp":       "TargetTemperature",
               //             "valvePosition":  0,
               //             "storage":       "fs",
               //             "storagePath":   ".homebridge/FakegatoStorage",
               //             "folder":        "folderName",
               //             "keyPath":       "/place/to/store/my/keys/"
               //            }

            },
            {
               "type":                     "AirQualitySensor",
               "displayName":              "MyAirQualitySensor",     // Not a characteristic, but a function parameter

               // Required Characteristics
               "airQuality":               "EXCELLENT",              // 0 - "UNKNOWN"
                                                                     // 1 - "EXCELLENT"
                                                                     // 2 - "GOOD"
                                                                     // 3 - "FAIR"
                                                                     // 4 - "INFERIOR"
                                                                     // 5 - "POOR"

               "ozoneDensity":              50,                      // Range 0-1000, Step 1

               "nitrogenDioxideDensity":    50,                      // Range 0-1000, Step 1

               "sulphurDioxideDensity":     50,                      // Range 0-1000, Step 1

               "pm2_5Density":              50,                      // Range 0-1000, Step 1

               // Optional Characteristics
               "pm10Density":               50,                      // Range 0-1000, Step 1

               "vocDensity":                50,                      // Range 0-1000, Step 1

               "statusActive":             "TRUE",                   // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "statusFault":              "NO_FAULT",               // 0 - "NO_FAULT"
                                                                     // 1 - "GENERAL_FAULT"

               "statusTampered":           "NOT_TAMPERED",           // 0 - "NOT_TAMPERED"
                                                                     // 1 - "TAMPERED"

               "statusLowBattery":         "BATTERY_LEVEL_NORMAL",   // 0 - "BATTERY_LEVEL_NORMAL"
                                                                     // 1 - "BATTERY_LEVEL_LOW"

               "name":                     "MyAirQualitySensor",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "SecuritySystem",
               "displayName":              "MySecuritySystem",       // Not a characteristic, but a function parameter

               // Required Characteristics
               "securitySystemCurrentState":
                                           "DISARMED",               // 0 - "STAY_ARM"
                                                                     // 1 - "AWAY_ARM"
                                                                     // 2 - "NIGHT_ARM"
                                                                     // 3 - "DISARMED"
                                                                     // 4 - "ALARM_TRIGGERED"

               "securitySystemTargetState":
                                           "DISARM",                 // 0 - "STAY_ARM"
                                                                     // 1 - "AWAY_ARM"
                                                                     // 2 - "NIGHT_ARM"
                                                                     // 3 - "DISARM"

               // Optional Characteristics
               "securitySystemAlarmType":   0,                       // Range: 0-1, Step 1
                                                                     // Meaning Unknown

               "statusFault":              "NO_FAULT",               // 0 - "NO_FAULT"
                                                                     // 1 - "GENERAL_FAULT"

               "statusTampered":           "NOT_TAMPERED",           // 0 - "NOT_TAMPERED"
                                                                     // 1 - "TAMPERED"

               "name":                     "MySecuritySystem",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "CarbonMonoxideSensor",
               "displayName":              "MyCOSensor",             // Not a characteristic, but a function parameter

               // Required Characteristics
               "carbonMonoxideDetected":   "CO_LEVELS_NORMAL",       // 0 - "CO_LEVELS_NORMAL"
                                                                     // 1 - "CO_LEVELS_ABNORMAL"

               // Optional Characteristics
               "statusActive":             "TRUE",                   // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "statusFault":              "NO_FAULT",               // 0 - "NO_FAULT"
                                                                     // 1 - "GENERAL_FAULT"

               "statusTampered":           "NOT_TAMPERED",           // 0 - "NOT_TAMPERED"
                                                                     // 1 - "TAMPERED"

               "statusLowBattery":         "BATTERY_LEVEL_NORMAL",   // 0 - "BATTERY_LEVEL_NORMAL"
                                                                     // 1 - "BATTERY_LEVEL_LOW"

               "carbonMonoxideLevel":       0,                       // Range: 0-100,
                                                                     // Format: float

               "carbonMonoxidePeakLevel":   0,                       // Range: 0-100,
                                                                     // Format: float

               "name":                     "MyCOSensor",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "ContactSensor",
               "displayName":              "MyContactSensor",        // Not a characteristic, but a function parameter

               // Required Characteristics
               "contactSensorState":       "CONTACT_DETECTED",       // 0 - "CONTACT_DETECTED"
                                                                     // 1 - "CONTACT_NOT_DETECTED"

               // Optional Characteristics
               "statusActive":             "TRUE",                   // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "statusFault":              "NO_FAULT",               // 0 - "NO_FAULT"
                                                                     // 1 - "GENERAL_FAULT"

               "statusTampered":           "NOT_TAMPERED",           // 0 - "NOT_TAMPERED"
                                                                     // 1 - "TAMPERED"

               "statusLowBattery":         "BATTERY_LEVEL_NORMAL",   // 0 - "BATTERY_LEVEL_NORMAL"
                                                                     // 1 - "BATTERY_LEVEL_LOW"

               "name":                     "MyContactSensor",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "Door",
               "displayName":              "MyDoor",                 // Not a characteristic, but a function parameter

               // Required Characteristics
               "currentPosition":           0,                       // Range: 0 - 100, Step 1

               "targetPosition":            0,                       // Range: 0 - 100, Step 1

               "positionState":            "STOPPED",                // 0 - "DECREASING"
                                                                     // 1 - "INCREASING"
                                                                     // 2 - "STOPPED"

               // Optional Characteristics
               "holdPosition":             "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "obstructionDetected":      "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "name":                     "MyDoor",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific - Interval is in second, Timeout in msec
               // (polling per characteristic)
               // Required as fakegato option below uses them.

               // polling requires a state_cmd and state_cmd is
               // used with your own scripts. Here for example only.
               //"polling": [
               //   {"characteristic": "currentPosition",     "interval": 80, "timeout": 8000},
               //   {"characteristic": "obstructionDetected", "interval": 50, "timeout": 8000}
               //],

               // Cmd4 fakegato lets you specify what type of logging and
               // the characteristics to be logged.
               // i.e. door and tracking statusActive
               // You must also define them for polling, or the value would never change.
               // fakegato requires a state_cmd and state_cmd is
               // used with your own scripts. Here for example only.
               //"fakegato": {"eve":         "door",
               //             "status":      "currentPosition",
               //             "storage":     "fs",
               //             "storagePath": ".homebridge/FakegatoStorage",
               //             "folder":      "folderName",
               //             "keyPath":     "/place/to/store/my/keys/"
               //            },

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "HumiditySensor",

               "displayName":              "MyHumiditySensor",       // Not a characteristic, but a function parameter

               // Required Characteristics
               "currentRelativeHumidity":   1,                       // Range: 0-100, Step: 1
                                                                     // Format: float
                                                                     // Units: Percentage

               // Optional Characteristics
               "statusActive":             "TRUE",                   // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "statusFault":              "NO_FAULT",               // 0 - "NO_FAULT"
                                                                     // 1 - "GENERAL_FAULT"

               "statusTampered":           "NOT_TAMPERED",           // 0 - "NOT_TAMPERED"
                                                                     // 1 - "TAMPERED"

               "statusLowBattery":         "BATTERY_LEVEL_NORMAL",   // 0 - "BATTERY_LEVEL_NORMAL"
                                                                     // 1 - "BATTERY_LEVEL_LOW"

               "name":                     "MyHumiditySensor",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories


               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >",

               // Cmd4 Specific - Interval is in second, Timeout in msec
               // (polling per characteristic)
               // Required as fakegato option below uses them.

               // polling requires a state_cmd and state_cmd is
               // used with your own scripts. Here for example only.
               //"polling": [
               //   {"characteristic": "currentRelativeHumidity", "interval": 50, "timeout": 8000}
               //],

               // Cmd4 fakegato lets you specify what type of logging and
               // the characteristics to be logged.
               // i.e. thermo and tracking currentTemperature and
               //      targetTemperature.
               // You must also define them for polling, or the value would never change.
               // fakegato requires a state_cmd and state_cmd is
               // used with your own scripts. Here for example only.
               //"fakegato": {"eve":         "room",
               //             "temp":        0,
               //             "humidity":    "currentRelativeHumidity",
               //             "ppm":          0,
               //             "storage":     "fs",
               //             "storagePath": ".homebridge/FakegatoStorage",
               //             "folder":      "folderName",
               //             "keyPath":     "/place/to/store/my/keys/"
               //            }
            },
            {
               "type":                     "LeakSensor",
               "displayName":              "MyLeakSensor",           // Not a characteristic, but a function parameter

               // Required Characteristics
               "leakDetected":             "LEAK_NOT_DETECTED",      // 0 - "LEAK_NOT_DETECTED"
                                                                     // 1 - "LEAK_DETECTED"

               // Optional Characteristics
               "statusActive":             "TRUE",                   // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "statusFault":              "NO_FAULT",               // 0 - "NO_FAULT"
                                                                     // 1 - "GENERAL_FAULT"

               "statusTampered":           "NOT_TAMPERED",           // 0 - "NOT_TAMPERED"
                                                                     // 1 - "TAMPERED"

               "statusLowBattery":         "BATTERY_LEVEL_NORMAL",   // 0 - "BATTERY_LEVEL_NORMAL"
                                                                     // 1 - "BATTERY_LEVEL_LOW"

               "name":                     "MyLeakSensor",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "LightSensor",
               "displayName":              "MyLightSensor",          // Not a characteristic, but a function parameter

               // Required Characteristics
               "currentAmbientLightLevel":  1,                       // Range: 0.0001-100000
                                                                     // Format: float

               // Optional Characteristics
               "statusActive":             "TRUE",                   // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "statusFault":              "NO_FAULT",               // 0 - "NO_FAULT"
                                                                     // 1 - "GENERAL_FAULT"

               "statusTampered":           "NOT_TAMPERED",           // 0 - "NOT_TAMPERED"
                                                                     // 1 - "TAMPERED"

               "statusLowBattery":         "BATTERY_LEVEL_NORMAL",   // 0 - "BATTERY_LEVEL_NORMAL"
                                                                     // 1 - "BATTERY_LEVEL_LOW"

               "name":                     "MyLightSensor",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "MotionSensor",
               "displayName":              "MyMotionSensor",         // Not a characteristic, but a function parameter

               // Required Characteristics
               "motionDetected":           "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               // Optional Characteristics
               "statusActive":             "TRUE",                   // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "statusFault":              "NO_FAULT",               // 0 - "NO_FAULT"
                                                                     // 1 - "GENERAL_FAULT"

               "statusTampered":           "NOT_TAMPERED",           // 0 - "NOT_TAMPERED"
                                                                     // 1 - "TAMPERED"

               "statusLowBattery":         "BATTERY_LEVEL_NORMAL",   // 0 - "BATTERY_LEVEL_NORMAL"
                                                                     // 1 - "BATTERY_LEVEL_LOW"

               "name":                     "MyMotionSensor",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "OccupancySensor",
               "displayName":              "MyOccupancySensor",      // Not a characteristic, but a function parameter

               // Required Characteristics
               "occupancyDetected":        "OCCUPANCY_NOT_DETECTED", // 0 - "OCCUPANCY_NOT_DETECTED"
                                                                     // 1 - "OCCUPANCY_DETECTED"

               // Optional Characteristics
               "statusActive":             "TRUE",                   // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "statusFault":              "NO_FAULT",               // 0 - "NO_FAULT"
                                                                     // 1 - "GENERAL_FAULT"

               "statusTampered":           "NOT_TAMPERED",           // 0 - "NOT_TAMPERED"
                                                                     // 1 - "TAMPERED"

               "statusLowBattery":         "BATTERY_LEVEL_NORMAL",   // 0 - "BATTERY_LEVEL_NORMAL"
                                                                     // 1 - "BATTERY_LEVEL_LOW"

               "name":                     "MyOccupancySensor",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "SmokeSensor",
               "displayName":              "MySmokeSensor",          // Not a characteristic, but a function parameter

               // Required Characteristics
               "smokeDetected":            "SMOKE_NOT_DETECTED",     // 0 - "SMOKE_NOT_DETECTED"
                                                                     // 1 - "SMOKE_DETECTED"

               // Optional Characteristics
               "statusActive":             "TRUE",                   // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "statusFault":              "NO_FAULT",               // 0 - "NO_FAULT"
                                                                     // 1 - "GENERAL_FAULT"

               "statusTampered":           "NOT_TAMPERED",           // 0 - "NOT_TAMPERED"
                                                                     // 1 - "TAMPERED"

               "statusLowBattery":         "BATTERY_LEVEL_NORMAL",   // 0 - "BATTERY_LEVEL_NORMAL"
                                                                     // 1 - "BATTERY_LEVEL_LOW"

               "name":                     "MySmokeSensor",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "StatefulProgrammableSwitch",
               "displayName":              "MyStatefulProgrammableSwitch",
                                                                     // Not a characteristic, but a function parameter

               // Required Characteristics
               "programmableSwitchEvent":  "SINGLE_PRESS",           // 0 - "SINGLE_PRESS"
                                                                     // 1 - "DOUBLE_PRESS"
                                                                     // 2 - "LONG_PRESS"

               "programmableSwitchOutputState":
                                            0,                       // Range: 0-1, Step 1
                                                                     // "Meaning": ???

               // Optional Characteristics
               "name":                     "MyStatefulProgrammableSwitch",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "StatelessProgrammableSwitch",
               "displayName":              "MyStatelessProgrammableSwitch",
                                                                     // Not a characteristic, but a function parameter

               // Required Characteristics
               "programmableSwitchEvent":  "SINGLE_PRESS",
                                                                     // 0 - "SINGLE_PRESS"
                                                                     // 1 - "DOUBLE_PRESS"
                                                                     // 2 - "LONG_PRESS"

               // Optional Characteristics
               "name":                     "MyStatelessProgrammableSwitch",

               "serviceLabelIndex":         1,                       // Range: 1-255, Step: 1

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "TemperatureSensor",
               "displayName":              "MyTemperatureSensor",
                                                                     // Not a characteristic, but a function parameter

               // Required Characteristics
               "currentTemperature":        22.2,                    // Range: 0-100, Step: 0.1
                                                                     // Format: float
                                                                     // "Units": CELCIUS

               // This characteristic is not available on a temperature sensor
               // but configurable in homebridge-cmd4. How Homekit behaves is
               // undeterministic. Eve however is more flexible.
               "currentRelativeHumidity":   20,                      // Range: 0-100, Step: 1
                                                                     // Format: float
                                                                     // Units: Percentage

               // Optional Characteristics
               "statusActive":             "TRUE",                   // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "statusFault":              "NO_FAULT",               // 0 - "NO_FAULT"
                                                                     // 1 - "GENERAL_FAULT"

               "statusTampered":           "NOT_TAMPERED",           // 0 - "NOT_TAMPERED"
                                                                     // 1 - "TAMPERED"

               "statusLowBattery":         "BATTERY_LEVEL_NORMAL",   // 0 - "BATTERY_LEVEL_NORMAL"
                                                                     // 1 - "BATTERY_LEVEL_LOW"

               "name":                     "MyTemperatureSensor",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific - Interval is in second, Timeout in msec
               // (polling per characteristic)
               // Required as fakegato option below uses them.

               // polling requires a state_cmd and state_cmd is
               // used with your own scripts. Here for example only.
               //"polling":
               //[
               //   {"characteristic": "currentTemperature",       "interval": 50, "timeout": 8000},
               //   {"characteristic": "currentRelativeHumidity",  "interval": 40, "timeout": 8000}
               //],

               // Cmd4 Specific (Fakegate )
               // You must also define them for polling, or the value would never change.
               // fakegato requires a state_cmd and state_cmd is
               // used with your own scripts. Here for example only.
               //"fakegato": {"eve":         "room",
               //             "temp":        "currentTemperature",
               //             "humidity":    "currentRelativeHumidity",
               //             "storage":     "fs",
               //             "storagePath": ".homebridge/FakegatoStorage",
               //             "folder":      "folderName",
               //             "keyPath":     "/place/to/store/my/keys/"
               //            },

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "Window",
               "displayName":              "MyWindow",               // Not a characteristic, but a function parameter

               // Required Characteristics
               "currentPosition":           0,                       // Range: 0 - 100, Step 1

               "targetPosition":            0,                       // Range: 0 - 100, Step 1

               "positionState":            "STOPPED",                // 0 - "DECREASING"
                                                                     // 1 - "INCREASING"
                                                                     // 2 - "STOPPED"

               // Optional Characteristics
               "holdPosition":             "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "obstructionDetected":      "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "name":                     "MyWindow",
               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "WindowCovering",
               "displayName":              "MyWindowCovering",       // Not a characteristic, but a function parameter

               // Required Characteristics
               "currentPosition":           0,                       // Range: 0 - 100, Step 1

               "targetPosition":            0,                       // Range: 0 - 100, Step 1

               "positionState":            "STOPPED",                // 0 - "DECREASING"
                                                                     // 1 - "INCREASING"
                                                                     // 2 - "STOPPED"

               // Optional Characteristics
               "holdPosition":             "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "currentHorizontalTiltAngle":0,                       // Range: -90 to 90, Step 1
                                                                     // "Units": ARC_DEGREE

               "targetHorizontalTiltAngle": 0,                       // Range: -90 to 90, Step 1
                                                                     // "Units": ARC_DEGREE

               "currentVerticalTiltAngle":  0,                       // Range: -90 to 90, Step 1
                                                                     // "Units": ARC_DEGREE

               "targetVerticalTiltAngle":   0,                       // Range: -90 to 90, Step 1
                                                                     // "Units": ARC_DEGREE

               "obstructionDetected":      "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "name":                     "MyWindowCovering",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "Battery",                // Was BatteryService
               "displayName":              "MyBattery",              // Not a characteristic, but a function parameter

               // Required Characteristics
               "batteryLevel":              50,                      // Range: 0 - 100, Step 1

               "chargingState":            "NOT_CHARGING",           // 0 - "NOT_CHARGING"
                                                                     // 1 - "CHARGING"
                                                                     // 2 - "NOT_CHARGEABLE"

               "statusLowBattery":         "BATTERY_LEVEL_NORMAL",   // 0 - "BATTERY_LEVEL_NORMAL"
                                                                     // 1 - "BATTERY_LEVEL_LOW"

               // Optional Characteristics
               "name":                     "MyBatteryService",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "CarbonDioxideSensor",
               "displayName":              "MyCO2Sensor",

               // Required Characteristics
               "carbonDioxideDetected":    "CO2_LEVELS_NORMAL",      // 0 - "CO2_LEVELS_NORMAL"
                                                                     // 1 - "CO2_LEVELS_ABNORMAL"

               // Optional Characteristics
               "statusActive":             "TRUE",                   // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "statusFault":              "NO_FAULT",               // 0 - "NO_FAULT"
                                                                     // 1 - "GENERAL_FAULT"

               "statusTampered":           "NOT_TAMPERED",           // 0 - "NOT_TAMPERED"
                                                                     // 1 - "TAMPERED"

               "statusLowBattery":         "BATTERY_LEVEL_NORMAL",   // 0 - "BATTERY_LEVEL_NORMAL"
                                                                     // 1 - "BATTERY_LEVEL_LOW"

               "carbonDioxideLevel":        0,                       // Range: 0-100000
                                                                     // "Format": float

               "carbonDioxidePeakLevel":    0,                       // Range: 0-100000
                                                                     // "Format": float

               "name":                     "MyCO2Sensor",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific

               // polling requires a state_cmd and state_cmd is
               // used with your own scripts. Here for example only.
               //"polling":                 false,                   // Default is false.

               "interval":                  540,                     // Interval is in seconds.
                                                                     // Default is 10

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
               // Not Possible in this implementation
               // {
               //    "type": "CameraRTPStreamManagement",
               //    "name": "MyCameraRTPStreamManagement",
               //
               //    // Cmd4 Specific
               //    "stateChangeResponseTime": 1,                      // Default (Seconds)
               //    "state_cmd": "node .homebridge/< yourScriptHere >"
               // },
            {
               "type":                     "Microphone",
               "displayName":              "MyMicrophone",           // Not a characteristic, but a function parameter

               // Required Characteristics
               "mute":                     "FALSE",                  // 0 - "FALSE" (Off)
                                                                     // 1 - "TRUE" (On)

               // Optional Characteristics
               "volume":                    5,                       // Range: 0-100, Step 1

               "name":                     "MyMicrophone",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               // "state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "Speaker",
               "displayName":              "MySpeaker",

               // Required Characteristics
               "mute":                     "FALSE",                  // 0 - "FALSE" (Off)
                                                                     // 1 - "TRUE" (On)

               // Optional Characteristics
               "volume":                    5,                       // Range: 0-100, Step 1

               "name":                     "MySpeaker",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "DoorBell",
               "displayName":              "MyDoorBell",             // Not a characteristic, but a function parameter

               // Required Characteristics
               "programmableSwitchEvent":  "SINGLE_PRESS",           // 0 - "SINGLE_PRESS"
                                                                     // 1 - "DOUBLE_PRESS"
                                                                     // 2 - "LONG_PRESS"

               // Optional Characteristics
               "brightness":                8,                       // Range: 0-100, Step: 1

               "volume":                    5,                       // Range: 0-100, Step 1

               "name":                     "MyDoorBell",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "Slats",
               "displayName":              "MySlats",                // Not a characteristic, but a function parameter

               // Required Characteristics
               "slatType":                 "HORIZONTAL",             // 0 - "HORIZONTAL"
                                                                     // 1 - VERTICAL"

               "currentSlatState":         "FIXED",                  // 0 - "FIXED"
                                                                     // 1 - "JAMMED"
                                                                     // 2 - "SWINGING"

               // Optional Characteristics
               "name":                     "MySlat",

               "currentTiltAngle":          0,                       // Range: -90 to 90, Step 1
                                                                     // "Units": ARC_DEGREE

               "targetTiltAngle":           0,                       // Range: -90 to 90, Step 1
                                                                     // "Units": ARC_DEGREE

               "swingMode":                "SWING_ENABLED",          // 0 - "SWING_DISABLED"
                                                                     // 1 - "SWING_ENABLED"

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               // polling requires a state_cmd and state_cmd is
               // used with your own scripts. Here for example only.
               //"polling":                 false,                   // Default is false.
               "interval":                  540,                     // Interval is in seconds. Default is 10

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                    "FilterMaintenance",
               "displayName":             "MyFilterMaintenance",     // Not a characteristic, but a function parameter

               // Required Characteristics
               "filterChangeIndication":   "FILTER_OK",
                                                                     // 0 - "FILTER_OK"
                                                                     // 1 - "CHANGE_FILTER"


               // Optional Characteristics
               "filterLifeLevel":           50,                      // Range: 0-100
                                                                     // "Format": float
               "resetFilterIndication":     1,                       // Range: 1 - ???

               "name":                     "MyFilterMaintenance",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "AirPurifier",
               "displayName":              "MyAirPurifier",          // Not a characteristic, but a function parameter

               // Required Characteristics
               "active":                   "ACTIVE",                 // 0 - "INACTIVE"
                                                                     // 1 - "ACTIVE"

               "currentAirPurifierState":  "INACTIVE",               // 0 - "INACTIVE"
                                                                     // 1 - "IDLE"
                                                                     // 2 - "PURIFYING_AIR"

               "targetAirPurifierState":   "MANUAL",                 // 0 - "MANUAL"
                                                                     // 1 - "AUTO"


               // Optional Characteristics
               "lockPhysicalControls":     "CONTROL_LOCK_DISABLED",  // 0 - "CONTROL_LOCK_DISABLED"
                                                                     // 1 - "CONTROL_LOCK_ENABLED"

               "name":                     "MyAirPurifier",

               "swingMode":                "SWING_DISABLED",
                                                                     // 0 - "SWING_DISABLED"
                                                                     // 1 - "SWING_ENABLED"

               "rotationSpeed":             0,                       // Range: 0 - 100, Step 1

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "ServiceLabel",
               "displayName":              "MyServiceLabel",         // Not a characteristic, but a function parameter

               // Required Characteristics
               "serviceLabelNamespace":    "DOTS",                   // 0 - "DOTS"
                                                                     // 1 - "ARABIC_NUMERALS"

               // Optional Characteristics
               "name":                     "MyServiceLabel",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                      "Television",
               "displayName":               "Tv_Combo",              // Not a characteristic, but a function parameter

               // Televisions should be published externally to get the icon
               "publishExternally":          true,
               "category":                  "TELEVISION",            // The hint to Homekit of which icon to use.

               // Required characteristics
               "active":                    "ACTIVE",                // 0 - "INACTIVE"
                                                                     // 1 - "ACTIVE"

               "activeIdentifier":           1,                      // This is which inputSource is active
                                                                     // We gave HDMI2 the identifier of 1.
                                                                     // Format: UINT32

               "configuredName":            "TV_Combo",

               "sleepDiscoveryMode":        "ALWAYS_DISCOVERABLE",   // 0 - "NOT_DISCOVERABLE"
                                                                     // 1 - "ALWAYS_DISCOVERABLE"

               "linkedTypes":
               [
                  {
                     "type":                   "InputSource",
                     "displayName":            "HDMI1",              // Not a characteristic, but a function parameter

                     // Required Characteristics
                     "configuredName":         "HDMI1",
                     "currentVisibilityState": "SHOWN",
                     "inputSourceType":        "HDMI",
                     "isConfigured":           "CONFIGURED",

                     // Optional Characteristics
                     "identifier":              1,                   // Selector for activeIdentifier
                                                                     // Format: UINT32

                     //"InputDeviceType":     "TUNER",               // 0 - "OTHER"
                                                                     // 1 - "TV"
                                                                     // 2 - "RECORDING"
                                                                     // 3 - "TUNER"
                                                                     // 4 - "PLAYBACK"
                                                                     // 5 - "AUDIO_SYSTEM"
                                                                     // 6 - "UNKNOWN_6" (Added in IOS 14)
 
                     "targetVisibilityState":  "SHOWN",              // 0 - "SHOWN"
                                                                     // 1 - "HIDDEN"
                                                                     // 2 - "STOP"

                     "name":                   "HDMI1",

                     "manufacturer":           "Somebody",           // Available for all accessories

                     "model":                  "Anything",           // Available for all accessories

                     "serialNumber":           "12345"               // Available for all accessories

                 },
                 {   "type":                   "InputSource",
                     "displayName":            "HDMI2",              // Not a characteristic, but a function parameter

                     // Required Characteristics
                     "configuredName":         "HDMI2",
                     "currentVisibilityState": "SHOWN",
                     "inputSourceType":        "HDMI",
                     "isConfigured":           "CONFIGURED",

                     // Optional Characteristics
                     "identifier":             2,                    // Selector for activeIdentifier
                                                                     // Format: UINT32

                     //"inputDeviceType":                            // "TUNER",
                                                                     // 0 - "OTHER"
                                                                     // 1 - "TV"
                                                                     // 2 - "RECORDING"
                                                                     // 3 - "TUNER"
                                                                     // 4 - "PLAYBACK"
                                                                     // 5 - "AUDIO_SYSTEM"

                     "targetVisibilityState":  "SHOWN",              // 0 - "SHOWN"
                                                                     // 1 - "HIDDEN"
                                                                     // 2 - "STOP"

                     "name":                   "HDMI2",

                     "manufacturer":           "Somebody",           // Available for all accessories

                     "model":                  "Anything",           // Available for all accessories

                     "serialNumber":           "12345"               // Available for all accessories

                  },
                  {  "type":                   "InputSource",
                     "displayName":            "HDMI3",              // Not a characteristic, but a function parameter

                     // Required Characteristics
                     "configuredName":         "HDMI3",
                     "currentVisibilityState": "SHOWN",
                     "inputSourceType":        "HDMI",
                     "isConfigured":           "CONFIGURED",

                     // Optional Characteristics
                     "identifier":              3,                   // Selector for activeIdentifier
                                                                     // Format: UINT32

                     //"InputDeviceType":                            // "TUNER",
                                                                     // 0 - "OTHER"
                                                                     // 1 - "TV"
                                                                     // 2 - "RECORDING"
                                                                     // 3 - "TUNER"
                                                                     // 4 - "PLAYBACK"
                                                                     // 5 - "AUDIO_SYSTEM"

                     "targetVisibilityState":  "SHOWN",              // 0 - "SHOWN"
                                                                     // 1 - "HIDDEN"
                                                                     // 2 - "STOP"

                     "name":                   "HDMI3",

                     "manufacturer":           "Somebody",           // Available for all accessories

                     "model":                  "Anything",           // Available for all accessories

                     "serialNumber":           "12345"               // Available for all accessories

                  },
                  {  "type":                   "InputSource",
                     "displayName":            "HDMI4",              // Not a characteristic, but a function parameter

                     // Required Characteristics
                     "configuredName":         "HDMI4",
                     "currentVisibilityState": "SHOWN",
                     "inputSourceType":        "HDMI",
                     "isConfigured":           "CONFIGURED",

                     // Optional Characteristics
                     "identifier":              4,                   // Selector for activeIdentifier
                                                                     // Format: UINT32

                     //"inputDeviceType":      "TUNER",              // 0 - "OTHER"
                                                                     // 1 - "TV"
                                                                     // 2 - "RECORDING"
                                                                     // 3 - "TUNER"
                                                                     // 4 - "PLAYBACK"
                                                                     // 5 - "AUDIO_SYSTEM"

                     "targetVisibilityState":  "SHOWN",              // 0 - "SHOWN"
                                                                     // 1 - "HIDDEN"
                                                                     // 2 - "STOP"

                     "name":                   "HDMI4",

                     "manufacturer":           "Somebody",           // Available for all accessories

                     "model":                  "Anything",           // Available for all accessories

                     "serialNumber":           "12345"               // Available for all accessories

                  },
                  {  "type":                   "InputSource",
                     "displayName":            "Netflix",            // Not a characteristic, but a function parameter

                     // Required Characteristics
                     "configuredName":         "Netflix",
                     "currentVisibilityState": "SHOWN",
                     "inputSourceType":        "APPLICATION",
                     "isConfigured":           "CONFIGURED",

                     // Optional Characteristics
                     "identifier":              5,                   // Selector for activeIdentifier
                                                                     // Format: UINT32

                     // "inputDeviceType":    "OTHER",               // 0 - "OTHER"
                                                                     // 1 - "TV"
                                                                     // 2 - "RECORDING"
                                                                     // 3 - "TUNER"
                                                                     // 4 - "PLAYBACK"
                                                                     // 5 - "AUDIO_SYSTEM"

                     "targetVisibilityState":  "SHOWN",              // 0 - "SHOWN"
                                                                     // 1 - "HIDDEN"
                                                                     // 2 - "STOP"

                     "name":                   "Netflix",

                     "manufacturer":           "Somebody",           // Available for all accessories

                     "model":                  "Anything",           // Available for all accessories

                     "serialNumber":           "12345"               // Available for all accessories
                  },
                  {  "type":                   "TelevisionSpeaker",
                     "displayName":            "TVSpeaker",          // Not a characteristic, but a function parameter

                     // Required Characteristics
                     "mute":                   "FALSE",

                     // Optional Characteristics
                     "active":                 "ACTIVE",             // 0 - "INACTIVE"
                                                                     // 1 - "ACTIVE"


                     "volume":                 10,                   // Range: 0-100, Step 1

                     "volumeControlType":      "ABSOLUTE",           // 0 - "NONE"
                                                                     // 1 - "RELATIVE"
                                                                     // 2 - "RELATIVE_WITH_CURRENT"
                                                                     // 3 - "ABSOLUTE"

                     "volumeSelector":         "INCREMENT",          // 0 - "INCREMENT"
                                                                     // 1 - "DECREMENT"

                     "name":                   "TVSpeaker",

                     "manufacturer":           "Somebody",           // Available for all accessories

                     "model":                  "Anything",           // Available for all accessories

                     "serialNumber":           "12345"               // Available for all accessories


                  }
               ],

               // Optional Characteristics
               "brightness":                8,                       // Range: 0-100, Step: 1

               "closedCaptions":           "DISABLED",
                                                                     // 0 - "DISABLED,
                                                                     // 1 - "ENABLED

               // All TLV8 Characteristics are removed by default,
               // unless 'allowTLV8' is set, at your own peril.
               // Setting most will cause Homebridge with HomeKit or Eve.
               // to not allow you to connect.
               // "DisplayOrder":              0,  //  Format: TLV8

               "currentMediaState":        "STOP",                   // 0 - "PLAY"
                                                                     // 1 - "PAUSE"
                                                                     // 2 - "STOP"
                                                                     // 3 -  ???

               "targetMediaState":         "STOP",                   // 0 - "PLAY"
                                                                     // 1 - "PAUSE"
                                                                     // 2 - "STOP"
                                                                     // 3 -  ???

               "pictureMode":              "STANDARD",               // 0 - "OTHER"
                                                                     // 1 - "STANDARD"
                                                                     // 2 - "CALIBRATED"
                                                                     // 3 - "CALIBRATED_DARK"
                                                                     // 4 - "VIVID"
                                                                     // 5 - "GAME"
                                                                     // 6 - "COMPUTER"
                                                                     // 7 - "CUSTOM"

               "remoteKey":                "SELECT",                 // 0 - "REWIND,"
                                                                     // 1 - "FAST_FORWARD"
                                                                     // 2 - "NEXT_TRACK"
                                                                     // 3 - "PREVIOUS_TRACK"
                                                                     // 4 - "ARROW_UP"
                                                                     // 5 - "ARROW_DOWN"
                                                                     // 6 - "ARROW_LEFT"
                                                                     // 7 - "ARROW_RIGHT"
                                                                     // 8 - "SELECT"
                                                                     // 9 - "BACK"
                                                                     // 10 - "EXIT"
                                                                     // 11 - "PLAY_PAUSE"
                                                                     // 12 - "INFORMATION"

               // Optional Characteristics
               "manufacturer":             "Sony",

               "model":                    "Android TV",

               "serialNumber":             "12345",

               // Cmd4 Specific - Interval is in second, Timeout in msec
               // (polling per characteristic)

               // polling requires a state_cmd and state_cmd is
               // used with your own scripts. Here for example only.
               //"polling": [
               //   {"characteristic": "active",                "interval": 50,  "timeout": 5000},
               //   {"characteristic": "activeIdentifier",      "interval": 50,  "timeout": 5000},
               //   {"characteristic": "currentMediaState",     "interval": 540, "timeout": 5000}
               //],

               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type": "TelevisionSpeaker",
               "displayName": "MyTVSpeaker",                        // Not a characteristic, but a function parameter

               // Required characteristics
               "mute":                     "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               // Optional Characteristics
               "active":                   "ACTIVE",                 // 0 - "INACTIVE"
                                                                     // 1 - "ACTIVE"

               "volume":                    5,                       // Range: 0-100, Step 1

               "volumeControlType":        "ABSOLUTE",               // 0 - "NONE"
                                                                     // 1 - "RELATIVE"
                                                                     // 2 - "RELATIVE_WITH_CURRENT"
                                                                     // 3 - "ABSOLUTE"

               "volumeSelector":           "INCREMENT",              // 0 - "INCREMENT"
                                                                     // 1 - "DECREMENT"

               "name":                     "MyTVSpeaker",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific - Interval is in second, Timeout in msec
               // (polling per characteristic)

               // polling requires a state_cmd and state_cmd is
               // used with your own scripts. Here for example only.
               //"polling": [
               //   {"characteristic": "active",               "interval": 50, "timeout": 5000},
               //   {"characteristic": "volume",               "interval": 50, "timeout": 5000}
               //],

               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "InputSource",
               "displayName":              "MyInputSource",          // Not a characteristic, but a function parameter

               // Required characteristics
               "configuredName":           "MyInputSource",

               "inputSourceType":          "HDMI",                   // 0 - "OTHER"
                                                                     // 1 - "HOME_SCREEN"
                                                                     // 2 - "TUNER"
                                                                     // 3 - "HDMI"
                                                                     // 4 - "COMPOSITE_VIDEO"
                                                                     // 5 - "S_VIDEO"
                                                                     // 6 - "COMPONENT_VIDEO"
                                                                     // 7 - "DVI"
                                                                     // 8 - "AIRPLAY"
                                                                     // 9 - "USB"
                                                                     // 10 - "APPLICATION"

               "isConfigured":            "CONFIGURED",              // 0 - "NOT_CONFIGURED"
                                                                     // 1 - "CONFIGURED"

               "currentVisibilityState":  "SHOWN",                   // 0 - "SHOWN"
                                                                     // 1 - "HIDDEN"

               // Optional Characteristics
               "inputDeviceType":          "TV",                     // 0 - "OTHER"
                                                                     // 1 - "TV"
                                                                     // 2 - "RECORDING"
                                                                     // 3 - "TUNER"
                                                                     // 4 - "PLAYBACK"
                                                                     // 5 - "AUDIO_SYSTEM"

               "targetVisibilityState":    "SHOWN",
                                                                     // 0 - "SHOWN"
                                                                     // 1 - "HIDDEN"
                                                                     // 2 - "STOP"

               "name":                     "MyInputSource",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "IrrigationSystem",
               "displayName":              "MyIrrigationSystem",     // Not a characteristic, but a function parameter

               // Required characteristics
               "active":                   "ACTIVE",                 // 0 - "INACTIVE"
                                                                     // 1 - "ACTIVE"

               "programMode":              "PROGRAM_SCHEDULED",      // 0 - "NO_PROGRAM_SCHEDULED"
                                                                     // 1 - "PROGRAM_SCHEDULED"
                                                                     // 2 - "PROGRAM_SCHEDULED_MANUAL_MODE"

               "inUse":                    "IN_USE",                 // 0 - "NOT_IN_USE"
                                                                     // 1 - "IN_USE"


               // Optional Characteristics
               "remainingDuration":         60,                      // Range: 0-3600, Step: 1

               "statusFault":              "NO_FAULT",
                                                                     // 0 - "NO_FAULT"
                                                                     // 1 - "GENERAL_FAULT"

               "name":                     "MyIrrigationSystem",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific - Interval is in second, Timeout in msec
               // (polling per characteristic)

               // polling requires a state_cmd and state_cmd is
               // used with your own scripts. Here for example only.
               //"polling": [
               //   {"characteristic": "active",               "interval": 50,  "timeout": 5000},
               //   {"characteristic": "statusFault",          "interval": 300, "timeout": 5000}
               //],

               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "Faucet",
               "displayName":              "MyFaucet",               // Not a characteristic, but a function parameter

               // Required characteristics
               "active":                   "ACTIVE",                 // 0 - "INACTIVE"
                                                                     // 1 - "ACTIVE"

               // Optional Characteristics
               "statusFault":              "NO_FAULT",               // 0 - "NO_FAULT"
                                                                     // 1 - "GENERAL_FAULT"

               "name":                     "MyFaucet",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific - Interval is in second, Timeout in msec
               // (polling per characteristic)

               // polling requires a state_cmd and state_cmd is
               // used with your own scripts. Here for example only.
               //"polling": [
               //   {"characteristic": "active",               "interval": 50,  "timeout": 5000},
               //   {"characteristic": "statusFault",          "interval": 300, "timeout": 5000}
               //],


               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "CloudRelay",             // Was Relay
               "displayName":              "MyCloudRelay",           // Not a characteristic, but a function parameter

               // Required characteristics
               "relayEnabled":             "FALSE",
                                                                     // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "relayState":                0,                       // Format: UINT8
                                                                     // Read-only

               // All TLV8 Characteristics are removed by default,
               // unless 'allowTLV8' is set, at your own peril.
               // Setting most will cause Homebridge with HomeKit or Eve.
               // to not allow you to connect.
               // "relayControlPoint":      0,                       // TLV8


               // Optional Characteristics
               // - None

               // Cmd4 Specific
               "stateChangeResponseTime":   10                       // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "Valve",
               "displayName":              "MyValve",                // Not a characteristic, but a function parameter

               // Required characteristics
               "active":                   "ACTIVE",                 // 0 - "INACTIVE"
                                                                     // 1 - "ACTIVE"

               "inUse":                    "NOT_IN_USE",             // 0 - "NOT_IN_USE"
                                                                     // 1 - "IN_USE"

               "valveType":                "GENERIC_VALVE",          // 0 - "GENERIC_VALVE"
                                                                     // 1 - "IRRIGATION"
                                                                     // 2 - "SHOWER_HEAD"
                                                                     // 3 - "WATER_FAUCET"

               // Optional Characteristics

               "setDuration":               0,                       // Format: Uint32

               "remainingDuration":         0,                       // Format: Uint32
                                                                     // Range: 0 - 3600, Step: 1

               "isConfigured":             "CONFIGURED",             // 0 - "NOT_CONFIGURED"
                                                                     // 1 - "CONFIGURED"

               "serviceLabelIndex":         1,                       // Range: 1-255, Step: 1

               "statusFault":              "NO_FAULT",               // 0 - "NO_FAULT"
                                                                     // 1 - "GENERAL_FAULT"

               "name":                     "MyValve",

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "HeaterCooler",
               "displayName":              "MyHeaterCooler",       // Not a characteristic, but a function parameter

               // Required characteristics
               "active":                   "ACTIVE",                 // 0 - "INACTIVE"
                                                                     // 1 - "ACTIVE"

               "currentHeaterCoolerState": "HEATING",                // 0 - "INACTIVE"
                                                                     // 1 = "IDLE"
                                                                     // 2 - "HEATING"
                                                                     // 3 = "COOLING"

               "targetHeaterCoolerState":  "AUTO",                   // 0 - "AUTO"
                                                                     // 1 - "HEAT"
                                                                     // 2 - "COOL"

               "currentTemperature":        37.0,                    // Range: 0-100, Step: 0.1
                                                                     // Format: float
                                                                     // "Units": CELCIUS

               // Optional Characteristics
               "lockPhysicalControls":     "CONTROL_LOCK_DISABLED",
                                                                     // 0 - "CONTROL_LOCK_DISABLED"
                                                                     // 1 - "CONTROL_LOCK_ENABLED"

               "name":                     "MyHeaterCooler",

               "swingMode":                "SWING_ENABLED",          // 0 - "SWING_DISABLED",
                                                                     // 1 - "SWING_ENABLED"

               "coolingThresholdTemperature":
                                            22.2,                    // Range 10-35, Step: 0.1
                                                                     // Units: CELCIUS

               "heatingThresholdTemperature":
                                            25.2,                    // Range 0-25, Step: 0.1
                                                                     // Format: float
                                                                     // Units: CELCIUS

               "temperatureDisplayUnits":  "CELSIUS",
                                                                     // 0 - "CELSIUS"
                                                                     // 1 - "FAHRENHEIT"

               "rotationSpeed":             100,                     // Range: 0-100, Step: 1

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "HumidifierDehumidifier",
               "displayName":              "MyHumidifierDehumidifier",// Not a characteristic, but a function parameter

               // Required characteristics
               "currentRelativeHumidity":   60,                      // Range: 0-100, Step: 1
                                                                     // Format: float
                                                                     // Units: Percentage

               "currentHumidifierDehumidifierState":
                                           "HUMIDIFYING",            // 0 - "INACTIVE"
                                                                     // 1 - "IDLE"
                                                                     // 2 - "HUMIDIFYING"
                                                                     // 3 - "DEHUMIDIFYING"

               "targetHumidifierDehumidifierState":
                                           "HUMIDIFIER",             // 0 - "HUMIDIFIER_OR_DEHUMIDIFIER"
                                                                     // 1 - "HUMIDIFIER"
                                                                     // 2 - "DEHUMIDIFIER"

               "active":                   "ACTIVE",                 // 0 - "INACTIVE"
                                                                     // 1 - "ACTIVE"

               // Optional Characteristics
               "lockPhysicalControls":     "CONTROL_LOCK_DISABLED",  // 0 - "CONTROL_LOCK_DISABLED"
                                                                     // 1 - "CONTROL_LOCK_ENABLED"


               "name":                     "MyHumidifierDehumidifier",

               "swingMode":                "SWING_DISABLED",         // 0 - "SWING_DISABLED"
                                                                     // 1 - "SWING_ENABLED"

               "waterLevel":                0,                       // Range: 0 - 100
                                                                     // Format: float

               "relativeHumidityDehumidifierThreshold":
                                            0,                       // Range: 0 - 100, Step 1
                                                                     // Format: float
                                                                     // Units: Percentage

               "relativeHumidityHumidifierThreshold":
                                            0,                       // Range: 0 - 100, Step 1
                                                                     // Format: float
                                                                     // Units: Percentage

               "rotationSpeed":             0,                       // Range: 0 - 100, Step 1

               "manufacturer":             "Somebody",               // Available for all accessories

               "model":                    "Anything",               // Available for all accessories

               "serialNumber":             "12345",                  // Available for all accessories

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "AccessControl",
               "displayName":              "MyAccessControl",        // Not a characteristic, but a function parameter

               // Required characteristics
               "accessControlLevel":        0,                       // 0-2

               // Cmd4 Specific
               "stateChangeResponseTime":   3                        // Default (Seconds)
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "CameraOperatingMode",
               "displayName":              "MyCameraOperatingMode",  // Not a characteristic, but a function parameter

               // Required characteristics
               "eventSnapshotsActive":     "DISABLE",                // 0 - "DISABLE"
                                                                     // 1 - "ENABLE"

               "homeKitCameraActive":      "OFF",                    // 0 - "OFF"
                                                                     // 1 - "ON"

               // Optional Characteristics
               "manuallyDisabled":         "DISABLED",               // 0 - "ENABLED"
                                                                     // 1 - "DISABLED"

               "nightVision":              "FALSE",                  // 0 - "FALSE"
                                                                     // 1 - "TRUE"

               "thirdPartyCameraActive":   "OFF",                    // 0 - "OFF"
                                                                     // 1 - "ON"

               "periodicSnapshotsActive":  "DISABLE"                 // 0 - "DISABLE"
                                                                     // 1 - "ENABLE"

               // Cmd4 Specific
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "SmartSpeaker",
               "displayName":              "MySmartSpeaker",         // Not a characteristic, but a function parameter

               // Required characteristics
               "currentMediaState":        "STOP",                   // 0 - "PLAY"
                                                                     // 1 - "PAUSE"
                                                                     // 2 - "STOP"
                                                                     // 3 - ???

               "targetMediaState":         "STOP",                   // 0 - "PLAY"
                                                                     // 1 - "PAUSE"
                                                                     // 2 - "STOP"
                                                                     // 3 - ???

               // Optional Characteristics
               "name":                     "MySmartSpeaker",
               "configuredName":           "MySmartSpeaker",
               "volume":                    5,
               "mute":                     "FALSE"                   // 0 - "FALSE" (Off)
                                                                     // 1 - "TRUE" (On)



               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                     "TargetControl",
               "displayName":              "MyTargetControl",        // Not a characteristic, but a function parameter

               // Required characteristics
               "activeIdentifier":          1183,
               "active":                   "ACTIVE"                  // 0 - "INACTIVE"
                                                                     // 1 - "ACTIVE"

               // All TLV8 Characteristics are removed by default,
               // unless 'allowTLV8' is set, at your own peril.
               // Setting most will cause Homebridge with HomeKit or Eve.
               // to not allow you to connect.
               //"buttonEvent":             0,                       // TLV8

               //"state_cmd": "node .homebridge/< yourScriptHere >"
            },
            {
               "type":                    "WiFiSatellite",
               "displayName":             "MyWiFiSatellite",         // Not a characteristic, but a function parameter

               // Required characteristics
               "wifiSatelliteStatus":     "NOT_CONNECTED"            // 0 - UNKNOWN
                                                                     // 1 - CONNECTED
                                                                     // 2 - NOT_CONNECTED

               // Cmd4 Specific
               //"state_cmd": "node .homebridge/< yourScriptHere >"
            }
          ]
       }
   ]
}
