Code Monkey home page Code Monkey logo

Comments (6)

RaresAil avatar RaresAil commented on August 27, 2024

Hey, is that the only error? try to enable the debug mode on homebridge, the doorbell is not implemented but with debug mode i can find if is possible to add support for it or not

from homebridge-tp-link-tapo.

macsoftware avatar macsoftware commented on August 27, 2024

Hey thanks for the reply.
This is the information I have pulled from the full log (redacted the IP address and the Public Key):
[10/7/2023, 7:45:51 PM] [Tapo] Error sending command: deviceInfo AxiosError: connect ETIMEDOUT [IP.ADDRESS]:80 at Function.AxiosError.from (/usr/local/lib/node_modules/homebridge-tp-link-tapo/node_modules/axios/lib/core/AxiosError.js:89:14) at RedirectableRequest.handleRequestError (/usr/local/lib/node_modules/homebridge-tp-link-tapo/node_modules/axios/lib/adapters/http.js:593:25) at RedirectableRequest.emit (node:events:513:28) at ClientRequest.eventHandlers.<computed> (/usr/local/lib/node_modules/homebridge-tp-link-tapo/node_modules/follow-redirects/index.js:14:24) at ClientRequest.emit (node:events:513:28) at Socket.socketErrorListener (node:_http_client:502:9) at Socket.emit (node:events:513:28) at emitErrorNT (node:internal/streams/destroy:151:8) at emitErrorCloseNT (node:internal/streams/destroy:116:3) at processTicksAndRejections (node:internal/process/task_queues:82:21) { port: 80, address: '[IP.ADDRESS]', syscall: 'connect', code: 'ETIMEDOUT', errno: -60, config: { transitional: { silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false }, adapter: [ 'xhr', 'http' ], transformRequest: [ [Function: transformRequest] ], transformResponse: [ [Function: transformResponse] ], timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, env: { FormData: [Function], Blob: [class Blob] }, validateStatus: [Function: validateStatus], headers: Object [AxiosHeaders] { Accept: 'application/json, text/plain, */*', 'Content-Type': 'application/json', 'User-Agent': 'axios/1.5.1', 'Content-Length': '352', 'Accept-Encoding': 'gzip, compress, deflate, br' }, httpAgent: Agent { _events: [Object: null prototype], _eventsCount: 2, _maxListeners: undefined, defaultPort: 80, protocol: 'http:', options: [Object: null prototype], requests: [Object: null prototype] {}, sockets: [Object: null prototype], freeSockets: [Object: null prototype] {}, keepAliveMsecs: 1000, keepAlive: false, maxSockets: Infinity, maxFreeSockets: 256, scheduling: 'lifo', maxTotalSockets: Infinity, totalSocketCount: 1, [Symbol(kCapture)]: false }, method: 'post', url: 'http://[IP.ADDRESS]/app', data: '{"method":"handshake","params":{"key":"-----BEGIN PUBLIC KEY-----\\[THE PUBLIC KEY]-----END PUBLIC KEY-----\\n"},"requestTimeMils":1696704290671}' }, request: <ref *1> Writable { _writableState: WritableState { objectMode: false, highWaterMark: 16384, finalCalled: false, needDrain: false, ending: false, ended: false, finished: false, destroyed: false, decodeStrings: true, defaultEncoding: 'utf8', length: 0, writing: false, corked: 0, sync: true, bufferProcessing: false, onwrite: [Function: bound onwrite], writecb: null, writelen: 0, afterWriteTickInfo: null, buffered: [], bufferedIndex: 0, allBuffers: true, allNoop: true, pendingcb: 0, constructed: true, prefinished: false, errorEmitted: false, emitClose: true, autoDestroy: true, errored: null, closed: false, closeEmitted: false, [Symbol(kOnFinished)]: [] }, _events: [Object: null prototype] { response: [Function: handleResponse], error: [Function: handleRequestError], socket: [Function: handleRequestSocket] }, _eventsCount: 3, _maxListeners: undefined, _options: { maxRedirects: 21, maxBodyLength: Infinity, protocol: 'http:', path: '/app', method: 'POST', headers: [Object: null prototype], agents: [Object], auth: undefined, family: undefined, beforeRedirect: [Function: dispatchBeforeRedirect], beforeRedirects: [Object], hostname: '[IP.ADDRESS]', port: '', agent: [Agent], nativeProtocols: [Object], pathname: '/app' }, _ended: false, _ending: true, _redirectCount: 0, _redirects: [], _requestBodyLength: 352, _requestBodyBuffers: [ [Object] ], _onNativeResponse: [Function (anonymous)], _currentRequest: ClientRequest { _events: [Object: null prototype], _eventsCount: 7, _maxListeners: undefined, outputData: [], outputSize: 0, writable: true, destroyed: false, _last: true, chunkedEncoding: false, shouldKeepAlive: false, maxRequestsOnConnectionReached: false, _defaultKeepAlive: true, useChunkedEncodingByDefault: true, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, strictContentLength: false, _contentLength: '352', _hasBody: true, _trailer: '', finished: false, _headerSent: true, _closed: false, socket: [Socket], _header: 'POST /app HTTP/1.1\r\n' + 'Accept: application/json, text/plain, */*\r\n' + 'Content-Type: application/json\r\n' + 'User-Agent: axios/1.5.1\r\n' + 'Content-Length: 352\r\n' + 'Accept-Encoding: gzip, compress, deflate, br\r\n' + 'Host: [IP.ADDRESS]\r\n' + 'Connection: close\r\n' + '\r\n', _keepAliveTimeout: 0, _onPendingData: [Function: nop], agent: [Agent], socketPath: undefined, method: 'POST', maxHeaderSize: undefined, insecureHTTPParser: undefined, joinDuplicateHeaders: undefined, path: '/app', _ended: false, res: null, aborted: false, timeoutCb: null, upgradeOrConnect: false, parser: null, maxHeadersCount: null, reusedSocket: false, host: '[IP.ADDRESS]', protocol: 'http:', _redirectable: [Circular *1], [Symbol(kCapture)]: false, [Symbol(kBytesWri[10/7/2023, 7:45:51 PM] [Tapo] Retry to connect in 10s : [IP.ADDRESS] tten)]: 0, [Symbol(kEndCalled)]: false, [Symbol(kNeedDrain)]: false, [Symbol(corked)]: 0, [Symbol(kOutHeaders)]: [Object: null prototype], [Symbol(errored)]: null, [Symbol(kUniqueHeaders)]: null }, _currentUrl: 'http://[IP.ADDRESS]/app', [Symbol(kCapture)]: false }, cause: Error: connect ETIMEDOUT [IP.ADDRESS]:80 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1494:16) { errno: -60, code: 'ETIMEDOUT', syscall: 'connect', address: '[IP.ADDRESS]', port: 80 } } [10/7/2023, 7:45:51 PM] [Tapo] Failed to get info about: [IP.ADDRESS]

Sorry It doesn't seem to be formatting in a nice way :(

from homebridge-tp-link-tapo.

shanudominic avatar shanudominic commented on August 27, 2024

Hi @RaresAil,

yeah I have the similar Tapo doorbell: https://www.tapo.com/uk/product/smart-camera/tapo-d230s1/ with tapo hub and tried adding it through this plugin using IP address of Hub (as doorbell doesn't doesn't have an IP address) and i get similar error also.

[10/14/2023, 3:46:16 PM] [Tapo] Try for 192.168.1.60 : 17/20
[10/14/2023, 3:50:36 PM] [Tapo] Error sending command: deviceInfo AxiosError: connect ETIMEDOUT 192.168.1.60:80
    at Function.AxiosError.from (/homebridge/node_modules/homebridge-tp-link-tapo/node_modules/axios/lib/core/AxiosError.js:89:14)
    at RedirectableRequest.handleRequestError (/homebridge/node_modules/homebridge-tp-link-tapo/node_modules/axios/lib/adapters/http.js:593:25)
    at RedirectableRequest.emit (node:events:513:28)
    at ClientRequest.eventHandlers.<computed> (/homebridge/node_modules/homebridge-tp-link-tapo/node_modules/follow-redirects/index.js:14:24)
    at ClientRequest.emit (node:events:513:28)
    at Socket.socketErrorListener (node:_http_client:502:9)
    at Socket.emit (node:events:513:28)
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at emitErrorCloseNT (node:internal/streams/destroy:116:3)
    at processTicksAndRejections (node:internal/process/task_queues:82:21) {
  port: 80,
  address: '192.168.1.60',
  syscall: 'connect',
  code: 'ETIMEDOUT',
  errno: -110,
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false
    },
    adapter: 'http',
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      'User-Agent': 'axios/1.5.0',
      'Content-Length': '352',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    httpAgent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      defaultPort: 80,
      protocol: 'http:',
      options: [Object: null prototype],
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype],
      freeSockets: [Object: null prototype] {},
      keepAliveMsecs: 1000,
      keepAlive: false,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      [Symbol(kCapture)]: false
    },
    method: 'post',
    url: 'http://192.168.1.60/app',
    data: '{"method":"handshake","params":{"key":"-----BEGIN PUBLIC KEY-----\\n[THE PUBLIC KEY]\\n-----END PUBLIC KEY-----\\n"},"requestTimeMils":1697294905561}'
  },
  request: <ref *1> Writable {
    _writableState: WritableState {
      objectMode: false,
      highWaterMark: 16384,
      finalCalled: false,
      needDrain: false,
      ending: false,
      ended: false,
      finished: false,
      destroyed: false,
      decodeStrings: true,
      defaultEncoding: 'utf8',
      length: 0,
      writing: false,
      corked: 0,
      sync: true,
      bufferProcessing: false,
      onwrite: [Function: bound onwrite],
      writecb: null,
      writelen: 0,
      afterWriteTickInfo: null,
      buffered: [],
      bufferedIndex: 0,
      allBuffers: true,
      allNoop: true,
      pendingcb: 0,
      constructed: true,
      prefinished: false,
      errorEmitted: false,
      emitClose: true,
      autoDestroy: true,
      errored: null,
      closed: false,
      closeEmitted: false,
      [Symbol(kOnFinished)]: []
    },
    _events: [Object: null prototype] {
      response: [Function: handleResponse],
      error: [Function: handleRequestError],
      socket: [Function: handleRequestSocket]
    },
    _eventsCount: 3,
    _maxListeners: undefined,
    _options: {
      maxRedirects: 21,
      maxBodyLength: Infinity,
      protocol: 'http:',
      path: '/app',
      method: 'POST',
      headers: [Object: null prototype],
      agents: [Object],
      auth: undefined,
      family: undefined,
      beforeRedirect: [Function: dispatchBeforeRedirect],
      beforeRedirects: [Object],
      hostname: '192.168.1.60',
      port: '',
      agent: [Agent],
      nativeProtocols: [Object],
      pathname: '/app'
    },
    _ended: false,
    _ending: true,
    _redirectCount: 0,
    _redirects: [],
    _requestBodyLength: 352,
    _requestBodyBuffers: [ [Object] ],
    _onNativeResponse: [Function (anonymous)],
    _currentRequest: ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: false,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: '352',
      _hasBody: true,
      _trailer: '',
      finished: false,
      _headerSent: true,
      _closed: false,
      socket: [Socket],
      _header: 'POST /app HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'User-Agent: axios/1.5.0\r\n' +
        'Content-Length: 352\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: 192.168.1.60\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/app',
      _ended: false,
      res: null,
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: '192.168.1.60',
      protocol: 'http:',
      _redirectable: [Circular *1],
      [Symbol(kCapture)]: false,
      [Symbol(kBytesWritten)]: 0,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype],
      [Symbol(errored)]: null,
      [Symbol(kUniqueHeaders)]: null
    },
    _currentUrl: 'http://192.168.1.60/app',
    [Symbol(kCapture)]: false
  },
  cause: Error: connect ETIMEDOUT 192.168.1.60:80
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1494:16) {
    errno: -110,
    code: 'ETIMEDOUT',
    syscall: 'connect',
    address: '192.168.1.60',
    port: 80
  }
}
[10/14/2023, 3:50:36 PM] [Tapo] Failed to get info about: 192.168.1.60
[10/14/2023, 3:50:36 PM] [Tapo] Retry to connect in 10s : 192.168.1.60

from homebridge-tp-link-tapo.

macsoftware avatar macsoftware commented on August 27, 2024

Just bumping this to see if you had a chance to look into it @RaresAil 😄

from homebridge-tp-link-tapo.

Dylan-Prins avatar Dylan-Prins commented on August 27, 2024

would love to see this working too

from homebridge-tp-link-tapo.

taljaardwp avatar taljaardwp commented on August 27, 2024

I have added the Tapo H200 hub to home assistant but can't add the D230.
Capture

from homebridge-tp-link-tapo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.