Open macsoftware opened 9 months ago
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
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.
},
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,
},
_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(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 :(
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
Just bumping this to see if you had a chance to look into it @RaresAil 😄
would love to see this working too
I have added the Tapo H200 hub to home assistant but can't add the D230.
Describe The Bug
Is there a chance of being able to add functionality to view the Tapo D230 doorbell to the plugin? At the moment it just seems to cause errors when the IP address is added to the list.
Expected behavior
Doorbell Camera feed to show in Home app.
Logs
[10/4/2023, 2:51:04 PM] [Tapo] Failed to get info about: [IP Address]
Plugin Config
N/A
Plugin Version
homebridge-tp-link-tapo v4.0.0
Homebridge Version
v1.6.1
Node.js Version
v18.14.2
NPM Version
Unknown
Operating System
v18.14.2