New device : Shelly GAS
I got my new Shelly GAS device. Could you please have a look if that could be integrated in your plugin ?

https://shelly.cloud/products/shelly-gas-smart-home-automation-sensor/

```
Type: SHGS-1
CoAP description: {"blk":[{"I":0,"D":"Device"}],"sen":[{"I":118,"T":"S","D":"Sensor state","R":"unknown/warmup/normal/fault","L":0},{"I":119,"T":"S","D":"Alarm state","R":"unknown/none/mild/heavy/test","L":0},{"I":120,"T":"S","D":"Self-test state","R":"not_completed/completed/running/pending","L":0},{"I":122,"T":"S","D":"Concentration (ppm)","R":"0-65535","L":0}]}
CoAP status: {"G":[[0,118,"normal"],[0,119,"none"],[0,120,"completed"],[0,122,0]]}
Error: Unauthorized
    at Request.callback (/home/hoobs/.hoobs/node_modules/superagent/lib/node/index.js:804:15)
    at IncomingMessage.<anonymous> (/home/hoobs/.hoobs/node_modules/superagent/lib/node/index.js:1036:18)
    at IncomingMessage.emit (events.js:228:7)
    at endReadableNT (_stream_readable.js:1185:12)
    at processTicksAndRejections (internal/process/task_queues.js:81:21) {
  status: 401,
  response: Response {
    _events: [Object: null prototype] {},
    _eventsCount: 0,
    _maxListeners: undefined,
    res: IncomingMessage {
      _readableState: [ReadableState],
      readable: false,
      _events: [Object: null prototype],
      _eventsCount: 4,
      _maxListeners: undefined,
      socket: [Socket],
      connection: [Socket],
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      headers: [Object],
      rawHeaders: [Array],
      trailers: {},
      rawTrailers: [],
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [Socket],
      _consuming: true,
      _dumped: false,
      req: [ClientRequest],
      text: '401 Unauthorized'
    },
    request: Request {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      _enableHttp2: false,
      _agent: false,
      _formData: null,
      method: 'GET',
      url: '192.168.1.100/settings',
      _header: [Object],
      header: [Object],
      writable: true,
      _redirects: 0,
      _maxRedirects: 5,
      cookies: '',
      qs: {},
      _query: [],
      qsRaw: [],
      _redirectList: [],
      _streamRequest: false,
      _timeout: 10000,
      _responseTimeout: 0,
      req: [ClientRequest],
      protocol: 'http:',
      host: '192.168.1.100',
      _endCalled: true,
      _callback: [Function],
      _fullfilledPromise: [Promise],
      res: [IncomingMessage],
      _resBuffered: true,
      response: [Circular],
      called: true
    },
    req: ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 3,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      useChunkedEncodingByDefault: false,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _contentLength: 0,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      socket: [Socket],
      connection: [Socket],
      _header: 'GET /settings HTTP/1.1\r\n' +
        'Host: 192.168.1.100\r\n' +
        'Accept-Encoding: gzip, deflate\r\n' +
        'User-Agent: node-shellies 0.18.0\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _onPendingData: [Function: noopPendingOutput],
      agent: [Agent],
      socketPath: undefined,
      method: 'GET',
      path: '/settings',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      [Symbol(kNeedDrain)]: false,
      [Symbol(isCorked)]: false,
      [Symbol(kOutHeaders)]: [Object: null prototype]
    },
    text: '401 Unauthorized',
    body: {},
    files: undefined,
    buffered: true,
    headers: {
      'www-authenticate': 'Basic realm="Shelly"',
      connection: 'close',
      'content-type': 'text/plain'
    },
    header: {
      'www-authenticate': 'Basic realm="Shelly"',
      connection: 'close',
      'content-type': 'text/plain'
    },
    statusCode: 401,
    status: 401,
    statusType: 4,
    info: false,
    ok: false,
    redirect: false,
    clientError: true,
    serverError: false,
    error: Error: cannot GET /settings (401)
        at Response.toError (/home/hoobs/.hoobs/node_modules/superagent/lib/node/response.js:94:15)
        at ResponseBase._setStatusProperties (/home/hoobs/.hoobs/node_modules/superagent/lib/response-base.js:123:16)
        at new Response (/home/hoobs/.hoobs/node_modules/superagent/lib/node/response.js:41:8)
        at Request._emitResponse (/home/hoobs/.hoobs/node_modules/superagent/lib/node/index.js:850:20)
        at IncomingMessage.<anonymous> (/home/hoobs/.hoobs/node_modules/superagent/lib/node/index.js:1036:38)
        at IncomingMessage.emit (events.js:228:7)
        at endReadableNT (_stream_readable.js:1185:12)
        at processTicksAndRejections (internal/process/task_queues.js:81:21) {
      status: 401,
      text: '401 Unauthorized',
      method: 'GET',
      path: '/settings'
    },
    created: false,
    accepted: false,
    noContent: false,
    badRequest: false,
    unauthorized: true,
    notAcceptable: false,
    forbidden: false,
    notFound: false,
    unprocessableEntity: false,
    type: 'text/plain',
    links: {},
    setEncoding: [Function: bound ],
    redirects: [],
    pipe: [Function]
  }
}

```