{
  "configId": 1,
  "specVersion": {
    "major": 1,
    "minor": 0
  },
  "device": {
    "deviceType": "urn:cdif-net:device:SensorHub:1",
    "friendlyName": "device name",
    "manufacturer": "manufacturer name",
    "manufacturerURL": "manufacturer URL",
    "modelDescription": "device full description",
    "modelName": "device model name",
    "modelNumber": "device model number",
    "serialNumber": "device serial number",
    "UPC": "universal product code",
    "userAuth": false,
    "iconList": [
      {
        "mimetype": "image/format",
        "width": 80,
        "height": 100,
        "depth": 16,
        "url": "icon URL"
      }
    ],
    "serviceList": {
      "urn:cdif-net:serviceID:Illuminance": {
        "serviceType": "urn:cdif-net:service:IlluminanceSensor:1",
        "actionList": {
          "getIlluminanceData": {
            "argumentList": {
              "illuminance": {
                "direction": "out",
                "retval": true,
                "relatedStateVariable": "illuminance"
              }
            }
          }
        },
        "serviceStateTable": {
          "illuminance": {
            "sendEvents": true,
            "dataType": "number",
            "allowedValueRange": {
              "minimum": 0,
              "maximum": 1000
            },
            "defaultValue": 0
          }
        }
      },
      "urn:cdif-net:serviceID:Temperature": {
        "serviceType": "urn:cdif-net:service:TemperatureSensor:1",
        "actionList": {
          "getTemperatureData": {
            "argumentList": {
              "temperature": {
                "direction": "out",
                "retval": true,
                "relatedStateVariable": "temperature"
              }
            }
          }
        },
        "serviceStateTable": {
          "temperature": {
            "sendEvents": true,
            "dataType": "number",
            "allowedValueRange": {
              "minimum": -273.15,
              "maximum": 1000000
            },
            "defaultValue": 0
          }
        }
      },
      "urn:cdif-net:serviceID:Humidity": {
        "serviceType": "urn:cdif-net:service:HumiditySensor:1",
        "actionList": {
          "getHumidityData": {
            "argumentList": {
              "humidity": {
                "direction": "out",
                "retval": true,
                "relatedStateVariable": "humidity"
              }
            }
          }
        },
        "serviceStateTable": {
          "humidity": {
            "sendEvents": true,
            "dataType": "number",
            "allowedValueRange": {
              "minimum": 0,
              "maximum": 100
            },
            "defaultValue": 0
          }
        }
      },
      "urn:cdif-net:serviceID:Accelerometer": {
        "serviceType": "urn:cdif-net:service:Accelerometer:1",
        "actionList": {
          "getAccelerometerData": {
            "argumentList": {
              "x": {
                "direction": "out",
                "retval": true,
                "relatedStateVariable": "x"
              },
              "y": {
                "direction": "out",
                "retval": true,
                "relatedStateVariable": "y"
              },
              "z": {
                "direction": "out",
                "retval": true,
                "relatedStateVariable": "z"
              }
            }
          }
        },
        "serviceStateTable": {
          "x": {
            "sendEvents": true,
            "dataType": "number",
            "allowedValueRange": {
              "minimum": -100,
              "maximum": 100
            },
            "defaultValue": 0
          },
          "y": {
            "sendEvents": true,
            "dataType": "number",
            "allowedValueRange": {
              "minimum": -100,
              "maximum": 100
            },
            "defaultValue": 0
          },
          "z": {
            "sendEvents": true,
            "dataType": "number",
            "allowedValueRange": {
              "minimum": -100,
              "maximum": 100
            },
            "defaultValue": 0
          }
        }
      },
      "urn:cdif-net:serviceID:Magnetometer": {
        "serviceType": "urn:cdif-net:service:Magnetometer:1",
        "actionList": {
          "getMagnetometerData": {
            "argumentList": {
              "x": {
                "direction": "out",
                "retval": true,
                "relatedStateVariable": "x"
              },
              "y": {
                "direction": "out",
                "retval": true,
                "relatedStateVariable": "y"
              },
              "z": {
                "direction": "out",
                "retval": true,
                "relatedStateVariable": "z"
              }
            }
          }
        },
        "serviceStateTable": {
          "x": {
            "sendEvents": true,
            "dataType": "number",
            "defaultValue": 0
          },
          "y": {
            "sendEvents": true,
            "dataType": "number",
            "defaultValue": 0
          },
          "z": {
            "sendEvents": true,
            "dataType": "number",
            "defaultValue": 0
          }
        }
      },
      "urn:cdif-net:serviceID:Barometer": {
        "serviceType": "urn:cdif-net:service:Barometer:1",
        "actionList": {
          "getBarometerData": {
            "argumentList": {
              "pressure": {
                "direction": "out",
                "retval": true,
                "relatedStateVariable": "pressure"
              }
            }
          }
        },
        "serviceStateTable": {
          "pressure": {
            "sendEvents": true,
            "dataType": "number",
            "allowedValueRange": {
              "minimum": 0,
              "maximum": 1013.25
            },
            "defaultValue": 0
          }
        }
      },
      "urn:cdif-net:serviceID:Gyroscope": {
        "serviceType": "urn:cdif-net:service:Gyroscope:1",
        "actionList": {
          "getGyroscopeData": {
            "argumentList": {
              "x": {
                "direction": "out",
                "retval": true,
                "relatedStateVariable": "x"
              },
              "y": {
                "direction": "out",
                "retval": true,
                "relatedStateVariable": "y"
              },
              "z": {
                "direction": "out",
                "retval": true,
                "relatedStateVariable": "z"
              }
            }
          }
        },
        "serviceStateTable": {
          "x": {
            "sendEvents": true,
            "dataType": "number",
            "defaultValue": 0
          },
          "y": {
            "sendEvents": true,
            "dataType": "number",
            "defaultValue": 0
          },
          "z": {
            "sendEvents": true,
            "dataType": "number",
            "defaultValue": 0
          }
        }
      }
    }
  }
}