Giter Site home page Giter Site logo

Comments (7)

tsightler avatar tsightler commented on July 3, 2024

I think it is unlikely that you will get a response from anyone else as this project is effectively dead, but I will try to answer a few of your questions.

The Home Assistant topics are mostly non-important as they are only used for automatic discovery when this project is leveraged with Home Assistant. If you are not using Home Assistant, they can just be ignored.

I don't know any reason why internet access should be required, there's no check for internet access in the code, literally it just tries to find the device on the network, using the ID and IP address, and publishes the data if it finds the device. The device will only be "online" if it is found so "offline" indicates that the system cannot communicate with the device. My guess is that hostapd is putting the wireless into some kind of mode that is interfering with the Tuya device discovery on that interface so, when you connect the ethernet, the discovery actually works, but this is totally just a guess on my part.

Unfortunately, I'm no longer using or maintaining this project, and I won't be able to help in any more detail. You can try enabling debug as you should get much more information about the tuya discovery, etc. Good luck!

from tuya-mqtt.

markuslaube avatar markuslaube commented on July 3, 2024

openhab integration works fine for me, please:

stop the deamon and start the tuya-mqtt via command line:

DEBUG=tuya-mqtt:* tuya-mqtt.js

If you send Debug-Output I can have a look for you

from tuya-mqtt.

DevLvca avatar DevLvca commented on July 3, 2024

Hi, thank you for your help. :)
Even when getting errors while debugging, the LED can still be controlled as described above...

I took @tsightler advice and played around with hostapd a bit.
I figured out that the led could or could not be controlled depending on the configuration.
Maybe someone can help me with a working / right hostapd configuration file? :)

Although when I enter your command, I get an output that the command was not found.
However, in the past I have debugged many times and used this command "DEBUG=* node tuya-mqtt.js".

The debugging is infinitely long, I have summarized an excerpt for you below:

mqttjs:client MqttClient :: options.protocol mqtt +0ms
mqttjs:client MqttClient :: options.protocolVersion 4 +1ms
mqttjs:client MqttClient :: options.username username +0ms
mqttjs:client MqttClient :: options.keepalive 60 +0ms
mqttjs:client MqttClient :: options.reconnectPeriod 1000 +0ms
mqttjs:client MqttClient :: options.rejectUnauthorized undefined +0ms
mqttjs:client MqttClient :: options.topicAliasMaximum undefined +1ms
mqttjs:client MqttClient :: clientId mqttjs_79b7efb1 +0ms
mqttjs:client MqttClient :: setting up stream +1ms
mqtt-packet:parser _resetState: resetting packet, error, _list, and _stateCounter +0ms
mqttjs:client _setupStream :: calling method to clear reconnect +7ms
mqttjs:client _clearReconnect : clearing reconnect timer +0ms
mqttjs:client _setupStream :: using streamBuilder provided to client to create stream +0ms
mqttjs calling streambuilder for mqtt +20ms
mqttjs:tcp port 1884 and host localhost +0ms
mqttjs:client _setupStream :: pipe stream to writable stream +15ms
mqttjs:client _setupStream: sending packet connect +3ms
mqttjs:client sendPacket :: packet: { cmd: 'connect' } +1ms
mqttjs:client sendPacket :: emitting packetsend +7ms
mqttjs:client sendPacket :: writing to stream +1ms
mqtt-packet:writeToStream generate called +0ms
mqtt-packet:writeToStream generate: packet.cmd: connect +65ms
mqtt-packet:writeToStream writeVarByteInt: writing to stream: <Buffer 2e> +3ms
mqtt-packet:writeToStream writeNumberCached: number: 4 +2ms
mqtt-packet:writeToStream writeNumberCached: <Buffer 00 04> +0ms
mqtt-packet:writeToStream writeString: MQTT +1ms
mqtt-packet:writeToStream writeNumberCached: number: 60 +0ms
mqtt-packet:writeToStream writeNumberCached: <Buffer 00 3c> +0ms
mqtt-packet:writeToStream writeNumberCached: number: 15 +0ms
mqtt-packet:writeToStream writeNumberCached: <Buffer 00 0f> +1ms
mqtt-packet:writeToStream writeString: mqttjs_79b7efb1 +0ms
mqtt-packet:writeToStream writeNumberCached: number: 8 +0ms
mqtt-packet:writeToStream writeNumberCached: <Buffer 00 08> +0ms
mqtt-packet:writeToStream writeString: username +0ms
mqtt-packet:writeToStream writeNumberCached: number: 7 +0ms
mqtt-packet:writeToStream writeNumberCached: <Buffer 00 07> +1ms
mqtt-packet:writeToStream writeString: MqttPwd +0ms
mqttjs:client sendPacket :: writeToStream result true +73ms
mqttjs:client writable stream :: parsing buffer +15ms
mqtt-packet:parser parse: current state: _parseHeader +119ms
mqtt-packet:parser _parseHeader: packet: Packet { cmd: 'connack', retain: false, qos: 0, dup: false, length: -1, topic: null, payload: null } +2ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 1 +4ms
mqtt-packet:parser parse: packet.length: -1, buffer list length: 3 +0ms
mqtt-packet:parser _parseVarByteNum +1ms
mqtt-packet:parser _parseVarByteNum: result: { bytes: 1, value: 2 } +1ms
mqtt-packet:parser _parseLength 2 +0ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 2 +0ms
mqtt-packet:parser parse: packet.length: 2, buffer list length: 2 +0ms
mqtt-packet:parser _parsePayload: payload BufferListStream {
mqtt-packet:parser _bufs: [ <Buffer 00 00> ],
mqtt-packet:parser length: 2,
mqtt-packet:parser _readableState:
mqtt-packet:parser ReadableState {
mqtt-packet:parser objectMode: false,
mqtt-packet:parser highWaterMark: 16384,
mqtt-packet:parser buffer: BufferList { head: null, tail: null, length: 0 },
mqtt-packet:parser length: 0,
mqtt-packet:parser pipes: null,
mqtt-packet:parser pipesCount: 0,
mqtt-packet:parser flowing: null,
mqtt-packet:parser ended: false,
mqtt-packet:parser endEmitted: false,
mqtt-packet:parser reading: false,
mqtt-packet:parser sync: true,
mqtt-packet:parser needReadable: false,
mqtt-packet:parser emittedReadable: false,
mqtt-packet:parser readableListening: false,
mqtt-packet:parser resumeScheduled: false,
mqtt-packet:parser paused: true,
mqtt-packet:parser emitClose: true,
mqtt-packet:parser autoDestroy: false,
mqtt-packet:parser destroyed: false,
mqtt-packet:parser defaultEncoding: 'utf8',
mqtt-packet:parser awaitDrain: 0,
mqtt-packet:parser readingMore: false,
mqtt-packet:parser decoder: null,
mqtt-packet:parser encoding: null },
mqtt-packet:parser readable: true,
mqtt-packet:parser _events: [Object: null prototype] {},
mqtt-packet:parser _eventsCount: 0,
mqtt-packet:parser _maxListeners: undefined,
mqtt-packet:parser _writableState:
mqtt-packet:parser WritableState {
mqtt-packet:parser objectMode: false,
mqtt-packet:parser highWaterMark: 16384,
mqtt-packet:parser finalCalled: false,
mqtt-packet:parser needDrain: false,
mqtt-packet:parser ending: false,
mqtt-packet:parser ended: false,
mqtt-packet:parser finished: false,
mqtt-packet:parser destroyed: false,
mqtt-packet:parser decodeStrings: true,
mqtt-packet:parser defaultEncoding: 'utf8',
mqtt-packet:parser length: 0,
mqtt-packet:parser writing: false,
mqtt-packet:parser corked: 0,
mqtt-packet:parser sync: true,
mqtt-packet:parser bufferProcessing: false,
mqtt-packet:parser onwrite: [Function],
mqtt-packet:parser writecb: null,
mqtt-packet:parser writelen: 0,
mqtt-packet:parser bufferedRequest: null,
mqtt-packet:parser lastBufferedRequest: null,
mqtt-packet:parser pendingcb: 0,
mqtt-packet:parser prefinished: false,
mqtt-packet:parser errorEmitted: false,
mqtt-packet:parser emitClose: true,
mqtt-packet:parser autoDestroy: false,
mqtt-packet:parser bufferedRequestCount: 0,
mqtt-packet:parser corkedRequestsFree:
mqtt-packet:parser CorkedRequest { next: null, entry: null, finish: [Function] } },
mqtt-packet:parser writable: true,
mqtt-packet:parser allowHalfOpen: true } +1ms
mqtt-packet:parser _parseConnack +6ms
mqtt-packet:parser _parseConnack: complete +0ms
mqtt-packet:parser _parsePayload complete result: true +0ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 3 +1ms
mqtt-packet:parser parse: packet.length: 2, buffer list length: 2 +0ms
mqtt-packet:parser _newPacket +0ms
mqtt-packet:parser _newPacket: parser emit packet: packet.cmd: connack, packet.payload: null, packet.length: 2 +1ms
mqttjs:client parser :: on packet push to packets array. +18ms
mqtt-packet:parser _newPacket: new packet +0ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 4 +1ms
mqtt-packet:parser parse: packet.length: -1, buffer list length: 0 +0ms
mqtt-packet:parser parse: exited while loop. packet: -1, buffer list length: 0 +0ms
mqttjs:client work :: getting next packet in queue +1ms
mqttjs:client work :: packet pulled from queue +1ms
mqttjs:client _handlePacket :: emitting packetreceive +0ms
mqttjs:client _handleConnack +1ms
mqttjs:client _setupPingTimer :: keepalive 60 (seconds) +1ms
mqttjs:client connect :: sending queued packets +9ms
mqttjs:client deliver :: entry undefined +1ms
mqttjs:client _resubscribe +1ms
tuya-mqtt:info Connection established to MQTT server +0ms
mqttjs:client subscribe: array topic tuya/# +2ms
mqttjs:client subscribe: pushing topic tuya/# and qos 0 to subs list +1ms
mqttjs:client subscribe :: resubscribe true +1ms
mqttjs:client subscribe :: call _sendPacket +0ms
mqttjs:client _sendPacket :: (mqttjs_79b7efb1) :: start +1ms
mqttjs:client sendPacket :: packet: { cmd: 'subscribe',
mqttjs:client subscriptions: [ { topic: 'tuya/#', qos: 0 } ],
mqttjs:client qos: 1,
mqttjs:client retain: false,
mqttjs:client dup: false,
mqttjs:client messageId: 15277 } +1ms
mqttjs:client sendPacket :: emitting packetsend +1ms
mqttjs:client sendPacket :: writing to stream +0ms
mqtt-packet:writeToStream generate called +56ms
mqtt-packet:writeToStream generate: packet.cmd: subscribe +0ms
mqtt-packet:writeToStream subscribe: packet: +1ms
mqtt-packet:writeToStream subscribe: writing to stream: [ [ [ <Buffer 80>, <Buffer 81> ], [ <Buffer 88>, <Buffer 89> ] ], [ [ <Buffer 82>, <Buffer 83> ], [ <Buffer 8a>, <Buffer 8b> ] ], [ [ <Buffer 84>, <Buffer 85> ], [ <Buffer 8c>, <Buffer 8d> ] ] ] +0ms
mqtt-packet:writeToStream writeVarByteInt: writing to stream: <Buffer 0b> +1ms
mqtt-packet:writeToStream writeNumberCached: number: 15277 +1ms
mqtt-packet:writeToStream writeNumberCached: <Buffer 3b ad> +0ms
mqtt-packet:writeToStream writeNumberCached: number: 6 +0ms
mqtt-packet:writeToStream writeNumberCached: <Buffer 00 06> +0ms
mqtt-packet:writeToStream writeString: tuya/# +1ms
mqttjs:client sendPacket :: writeToStream result true +5ms
mqttjs:client sendPacket :: invoking cb +0ms
mqttjs:client nop :: undefined +0ms
mqttjs:client subscribe: array topic tuya/smart_light_bulb/status +1ms
mqttjs:client subscribe: pushing topic tuya/smart_light_bulb/status and qos 0 to subs list +0ms
mqttjs:client subscribe :: resubscribe true +0ms
mqttjs:client subscribe :: call _sendPacket +1ms
mqttjs:client _sendPacket :: (mqttjs_79b7efb1) :: start +0ms
mqttjs:client sendPacket :: packet: { cmd: 'subscribe',
mqttjs:client subscriptions: [ { topic: 'tuya/smart_light_bulb/status', qos: 0 } ],
mqttjs:client qos: 1,
mqttjs:client retain: false,
mqttjs:client dup: false,
mqttjs:client messageId: 15278 } +0ms
mqttjs:client sendPacket :: emitting packetsend +1ms
mqttjs:client sendPacket :: writing to stream +0ms
mqtt-packet:writeToStream generate called +4ms
mqtt-packet:writeToStream generate: packet.cmd: subscribe +0ms
mqtt-packet:writeToStream subscribe: packet: +0ms
mqtt-packet:writeToStream subscribe: writing to stream: [ [ [ <Buffer 80>, <Buffer 81> ], [ <Buffer 88>, <Buffer 89> ] ], [ [ <Buffer 82>, <Buffer 83> ], [ <Buffer 8a>, <Buffer 8b> ] ], [ [ <Buffer 84>, <Buffer 85> ], [ <Buffer 8c>, <Buffer 8d> ] ] ] +1ms
mqtt-packet:writeToStream writeVarByteInt: writing to stream: <Buffer 21> +1ms
mqtt-packet:writeToStream writeNumberCached: number: 15278 +0ms
mqtt-packet:writeToStream writeNumberCached: <Buffer 3b ae> +1ms
mqtt-packet:writeToStream writeNumberCached: number: 28 +0ms
mqtt-packet:writeToStream writeNumberCached: <Buffer 00 1c> +0ms
mqtt-packet:writeToStream writeString: tuya/smart_light_bulb/status +0ms
mqttjs:client sendPacket :: writeToStream result true +5ms
mqttjs:client sendPacket :: invoking cb +0ms
mqttjs:client nop :: undefined +0ms
tuya-mqtt:tuyapi Search for device id 60282541b4e62d7a34 +0ms
TuyAPI IP and ID are already both resolved. +0ms
tuya-mqtt:tuyapi Found device id 60282541b4e62d7a34 +5ms
TuyAPI Connecting to 192.168.99.99... +7ms
mqttjs:client writable stream :: parsing buffer +19ms
mqtt-packet:parser parse: current state: _parseHeader +54ms
mqtt-packet:parser _parseHeader: packet: Packet { cmd: 'suback', retain: false, qos: 0, dup: false, length: -1, topic: null, payload: null } +0ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 1 +1ms
mqtt-packet:parser parse: packet.length: -1, buffer list length: 9 +0ms
mqtt-packet:parser _parseVarByteNum +0ms
mqtt-packet:parser _parseVarByteNum: result: { bytes: 1, value: 3 } +1ms
mqtt-packet:parser _parseLength 3 +0ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 2 +1ms
mqtt-packet:parser parse: packet.length: 3, buffer list length: 8 +0ms
mqtt-packet:parser _parsePayload: payload BufferListStream {
mqtt-packet:parser _bufs: [ <Buffer 3b ad 00 90 03 3b ae 00> ],
mqtt-packet:parser length: 8,
mqtt-packet:parser _readableState:
mqtt-packet:parser ReadableState {
mqtt-packet:parser objectMode: false,
mqtt-packet:parser highWaterMark: 16384,
mqtt-packet:parser buffer: BufferList { head: null, tail: null, length: 0 },
mqtt-packet:parser length: 0,
mqtt-packet:parser pipes: null,
mqtt-packet:parser pipesCount: 0,
mqtt-packet:parser flowing: null,
mqtt-packet:parser ended: false,
mqtt-packet:parser endEmitted: false,
mqtt-packet:parser reading: false,
mqtt-packet:parser sync: true,
mqtt-packet:parser needReadable: false,
mqtt-packet:parser emittedReadable: false,
mqtt-packet:parser readableListening: false,
mqtt-packet:parser resumeScheduled: false,
mqtt-packet:parser paused: true,
mqtt-packet:parser emitClose: true,
mqtt-packet:parser autoDestroy: false,
mqtt-packet:parser destroyed: false,
mqtt-packet:parser defaultEncoding: 'utf8',
mqtt-packet:parser awaitDrain: 0,
mqtt-packet:parser readingMore: false,
mqtt-packet:parser decoder: null,
mqtt-packet:parser encoding: null },
mqtt-packet:parser readable: true,
mqtt-packet:parser _events: [Object: null prototype] {},
mqtt-packet:parser _eventsCount: 0,
mqtt-packet:parser _maxListeners: undefined,
mqtt-packet:parser _writableState:
mqtt-packet:parser WritableState {
mqtt-packet:parser objectMode: false,
mqtt-packet:parser highWaterMark: 16384,
mqtt-packet:parser finalCalled: false,
mqtt-packet:parser needDrain: false,
mqtt-packet:parser ending: false,
mqtt-packet:parser ended: false,
mqtt-packet:parser finished: false,
mqtt-packet:parser destroyed: false,
mqtt-packet:parser decodeStrings: true,
mqtt-packet:parser defaultEncoding: 'utf8',
mqtt-packet:parser length: 0,
mqtt-packet:parser writing: false,
mqtt-packet:parser corked: 0,
mqtt-packet:parser sync: true,
mqtt-packet:parser bufferProcessing: false,
mqtt-packet:parser onwrite: [Function],
mqtt-packet:parser writecb: null,
mqtt-packet:parser writelen: 0,
mqtt-packet:parser bufferedRequest: null,
mqtt-packet:parser lastBufferedRequest: null,
mqtt-packet:parser pendingcb: 0,
mqtt-packet:parser prefinished: false,
mqtt-packet:parser errorEmitted: false,
mqtt-packet:parser emitClose: true,
mqtt-packet:parser autoDestroy: false,
mqtt-packet:parser bufferedRequestCount: 0,
mqtt-packet:parser corkedRequestsFree:
mqtt-packet:parser CorkedRequest { next: null, entry: null, finish: [Function] } },
mqtt-packet:parser writable: true,
mqtt-packet:parser allowHalfOpen: true } +0ms
mqtt-packet:parser _parseSuback +5ms
mqtt-packet:parser _parseNum: result: 15277 +14ms
mqtt-packet:parser _parseMessageId: packet.messageId 15277 +0ms
mqtt-packet:parser _parsePayload complete result: true +1ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 3 +0ms
mqtt-packet:parser parse: packet.length: 3, buffer list length: 8 +0ms
mqtt-packet:parser _newPacket +1ms
mqtt-packet:parser _newPacket: parser emit packet: packet.cmd: suback, packet.payload: null, packet.length: 3 +0ms
mqttjs:client parser :: on packet push to packets array. +25ms
mqtt-packet:parser _newPacket: new packet +0ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 4 +1ms
mqtt-packet:parser parse: packet.length: -1, buffer list length: 5 +0ms
mqtt-packet:parser _parseHeader: packet: Packet { cmd: 'suback', retain: false, qos: 0, dup: false, length: -1, topic: null, payload: null } +1ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 1 +0ms
mqtt-packet:parser parse: packet.length: -1, buffer list length: 4 +0ms
mqtt-packet:parser _parseVarByteNum +1ms
mqtt-packet:parser _parseVarByteNum: result: { bytes: 1, value: 3 } +0ms
mqtt-packet:parser _parseLength 3 +1ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 2 +0ms
mqtt-packet:parser parse: packet.length: 3, buffer list length: 3 +0ms
mqtt-packet:parser _parsePayload: payload BufferListStream {
mqtt-packet:parser _bufs: [ <Buffer 3b ae 00> ],
mqtt-packet:parser length: 3,
mqtt-packet:parser _readableState:
mqtt-packet:parser ReadableState {
mqtt-packet:parser objectMode: false,
mqtt-packet:parser highWaterMark: 16384,
mqtt-packet:parser buffer: BufferList { head: null, tail: null, length: 0 },
mqtt-packet:parser length: 0,
mqtt-packet:parser pipes: null,
mqtt-packet:parser pipesCount: 0,
mqtt-packet:parser flowing: null,
mqtt-packet:parser ended: false,
mqtt-packet:parser endEmitted: false,
mqtt-packet:parser reading: false,
mqtt-packet:parser sync: true,
mqtt-packet:parser needReadable: false,
mqtt-packet:parser emittedReadable: false,
mqtt-packet:parser readableListening: false,
mqtt-packet:parser resumeScheduled: false,
mqtt-packet:parser paused: true,
mqtt-packet:parser emitClose: true,
mqtt-packet:parser autoDestroy: false,
mqtt-packet:parser destroyed: false,
mqtt-packet:parser defaultEncoding: 'utf8',
mqtt-packet:parser awaitDrain: 0,
mqtt-packet:parser readingMore: false,
mqtt-packet:parser decoder: null,
mqtt-packet:parser encoding: null },
mqtt-packet:parser readable: true,
mqtt-packet:parser _events: [Object: null prototype] {},
mqtt-packet:parser _eventsCount: 0,
mqtt-packet:parser _maxListeners: undefined,
mqtt-packet:parser _writableState:
mqtt-packet:parser WritableState {
mqtt-packet:parser objectMode: false,
mqtt-packet:parser highWaterMark: 16384,
mqtt-packet:parser finalCalled: false,
mqtt-packet:parser needDrain: false,
mqtt-packet:parser ending: false,
mqtt-packet:parser ended: false,
mqtt-packet:parser finished: false,
mqtt-packet:parser destroyed: false,
mqtt-packet:parser decodeStrings: true,
mqtt-packet:parser defaultEncoding: 'utf8',
mqtt-packet:parser length: 0,
mqtt-packet:parser writing: false,
mqtt-packet:parser corked: 0,
mqtt-packet:parser sync: true,
mqtt-packet:parser bufferProcessing: false,
mqtt-packet:parser onwrite: [Function],
mqtt-packet:parser writecb: null,
mqtt-packet:parser writelen: 0,
mqtt-packet:parser bufferedRequest: null,
mqtt-packet:parser lastBufferedRequest: null,
mqtt-packet:parser pendingcb: 0,
mqtt-packet:parser prefinished: false,
mqtt-packet:parser errorEmitted: false,
mqtt-packet:parser emitClose: true,
mqtt-packet:parser autoDestroy: false,
mqtt-packet:parser bufferedRequestCount: 0,
mqtt-packet:parser corkedRequestsFree:
mqtt-packet:parser CorkedRequest { next: null, entry: null, finish: [Function] } },
mqtt-packet:parser writable: true,
mqtt-packet:parser allowHalfOpen: true } +0ms
mqtt-packet:parser _parseSuback +3ms
mqtt-packet:parser _parseNum: result: 15278 +1ms
mqtt-packet:parser _parseMessageId: packet.messageId 15278 +0ms
mqtt-packet:parser _parsePayload complete result: true +1ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 3 +0ms
mqtt-packet:parser parse: packet.length: 3, buffer list length: 3 +0ms
mqtt-packet:parser _newPacket +1ms
mqtt-packet:parser _newPacket: parser emit packet: packet.cmd: suback, packet.payload: null, packet.length: 3 +0ms
mqttjs:client parser :: on packet push to packets array. +10ms
mqtt-packet:parser _newPacket: new packet +1ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 4 +0ms
mqtt-packet:parser parse: packet.length: -1, buffer list length: 0 +0ms
mqtt-packet:parser parse: exited while loop. packet: -1, buffer list length: 0 +0ms
mqttjs:client work :: getting next packet in queue +1ms
mqttjs:client work :: packet pulled from queue +1ms
mqttjs:client _handlePacket :: emitting packetreceive +0ms
mqttjs:client _handleAck :: packet type suback +2ms
mqttjs:client nop :: null +1ms
mqttjs:client work :: getting next packet in queue +0ms
mqttjs:client work :: packet pulled from queue +1ms
mqttjs:client _handlePacket :: emitting packetreceive +0ms
mqttjs:client _handleAck :: packet type suback +0ms
mqttjs:client nop :: null +1ms
TuyAPI Error event from socket. 192.168.99.99 { Error: connect ECONNRESET 192.168.99.99:6668
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
errno: 'ECONNRESET',
code: 'ECONNRESET',
syscall: 'connect',
address: '192.168.99.99',
port: 6668 } +48ms
tuya-mqtt:error Error: Error from socket: connect ECONNRESET 192.168.99.99:6668
tuya-mqtt:error at Socket.client.on.err (/opt/tuya-mqtt/node_modules/tuyapi/index.js:490:30)
tuya-mqtt:error at Socket.emit (events.js:198:13)
tuya-mqtt:error at emitErrorNT (internal/streams/destroy.js:91:8)
tuya-mqtt:error at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
tuya-mqtt:error at process._tickCallback (internal/process/next_tick.js:63:19) +0ms
tuya-mqtt:error connect ECONNRESET 192.168.99.99:6668 +2ms
tuya-mqtt:error Error connecting to device id 60282541b4e62d7a34...retry in 10 seconds. +1ms
TuyAPI Socket closed: 192.168.99.99 +6ms
mqttjs:client writable stream :: parsing buffer +2s
mqtt-packet:parser parse: current state: _parseHeader +2s
mqtt-packet:parser _parseHeader: packet: Packet { cmd: 'publish', retain: false, qos: 0, dup: false, length: -1, topic: null, payload: null } +1ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 1 +1ms
mqtt-packet:parser parse: packet.length: -1, buffer list length: 38 +1ms
mqtt-packet:parser _parseVarByteNum +0ms
mqtt-packet:parser _parseVarByteNum: result: { bytes: 1, value: 37 } +1ms
mqtt-packet:parser _parseLength 37 +1ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 2 +0ms
mqtt-packet:parser parse: packet.length: 37, buffer list length: 37 +1ms
mqtt-packet:parser _parsePayload: payload BufferListStream {
mqtt-packet:parser _bufs:
mqtt-packet:parser [ <Buffer 00 1c 74 75 79 61 2f 73 6d 61 72 74 5f 6c 69 67 68 74 5f 62 75 6c 62 2f 73 74 61 74 75 73 6f 66 66 6c 69 6e 65> ],
mqtt-packet:parser length: 37,
mqtt-packet:parser _readableState:
mqtt-packet:parser ReadableState {
mqtt-packet:parser objectMode: false,
mqtt-packet:parser highWaterMark: 16384,
mqtt-packet:parser buffer: BufferList { head: null, tail: null, length: 0 },
mqtt-packet:parser length: 0,
mqtt-packet:parser pipes: null,
mqtt-packet:parser pipesCount: 0,
mqtt-packet:parser flowing: null,
mqtt-packet:parser ended: false,
mqtt-packet:parser endEmitted: false,
mqtt-packet:parser reading: false,
mqtt-packet:parser sync: true,
mqtt-packet:parser needReadable: false,
mqtt-packet:parser emittedReadable: false,
mqtt-packet:parser readableListening: false,
mqtt-packet:parser resumeScheduled: false,
mqtt-packet:parser paused: true,
mqtt-packet:parser emitClose: true,
mqtt-packet:parser autoDestroy: false,
mqtt-packet:parser destroyed: false,
mqtt-packet:parser defaultEncoding: 'utf8',
mqtt-packet:parser awaitDrain: 0,
mqtt-packet:parser readingMore: false,
mqtt-packet:parser decoder: null,
mqtt-packet:parser encoding: null },
mqtt-packet:parser readable: true,
mqtt-packet:parser _events: [Object: null prototype] {},
mqtt-packet:parser _eventsCount: 0,
mqtt-packet:parser _maxListeners: undefined,
mqtt-packet:parser _writableState:
mqtt-packet:parser WritableState {
mqtt-packet:parser objectMode: false,
mqtt-packet:parser highWaterMark: 16384,
mqtt-packet:parser finalCalled: false,
mqtt-packet:parser needDrain: false,
mqtt-packet:parser ending: false,
mqtt-packet:parser ended: false,
mqtt-packet:parser finished: false,
mqtt-packet:parser destroyed: false,
mqtt-packet:parser decodeStrings: true,
mqtt-packet:parser defaultEncoding: 'utf8',
mqtt-packet:parser length: 0,
mqtt-packet:parser writing: false,
mqtt-packet:parser corked: 0,
mqtt-packet:parser sync: true,
mqtt-packet:parser bufferProcessing: false,
mqtt-packet:parser onwrite: [Function],
mqtt-packet:parser writecb: null,
mqtt-packet:parser writelen: 0,
mqtt-packet:parser bufferedRequest: null,
mqtt-packet:parser lastBufferedRequest: null,
mqtt-packet:parser pendingcb: 0,
mqtt-packet:parser prefinished: false,
mqtt-packet:parser errorEmitted: false,
mqtt-packet:parser emitClose: true,
mqtt-packet:parser autoDestroy: false,
mqtt-packet:parser bufferedRequestCount: 0,
mqtt-packet:parser corkedRequestsFree:
mqtt-packet:parser CorkedRequest { next: null, entry: null, finish: [Function] } },
mqtt-packet:parser writable: true,
mqtt-packet:parser allowHalfOpen: true } +1ms
mqtt-packet:parser _parsePublish +11ms
mqtt-packet:parser _parseNum: result: 28 +1ms
mqtt-packet:parser _parseString: result: tuya/smart_light_bulb/status +2ms
mqtt-packet:parser _parsePublish: payload from buffer list: <Buffer 6f 66 66 6c 69 6e 65> +1ms
mqtt-packet:parser _parsePayload complete result: true +0ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 3 +1ms
mqtt-packet:parser parse: packet.length: 37, buffer list length: 37 +1ms
mqtt-packet:parser _newPacket +0ms
mqtt-packet:parser _newPacket: parser emit packet: packet.cmd: publish, packet.payload: offline, packet.length: 37 +1ms
mqttjs:client parser :: on packet push to packets array. +27ms
mqtt-packet:parser _newPacket: new packet +1ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 4 +1ms
mqtt-packet:parser parse: packet.length: -1, buffer list length: 0 +0ms
mqtt-packet:parser parse: exited while loop. packet: -1, buffer list length: 0 +1ms
mqttjs:client work :: getting next packet in queue +2ms
mqttjs:client work :: packet pulled from queue +1ms
mqttjs:client _handlePacket :: emitting packetreceive +0ms
mqttjs:client _handlePublish: packet Packet { cmd: 'publish', retain: false, qos: 0, dup: false, length: 37, topic: 'tuya/smart_light_bulb/status', payload: <Buffer 6f 66 66 6c 69 6e 65> } +3ms
mqttjs:client _handlePublish: qos 0 +2ms
tuya-mqtt:info Home Assistant state topic tuya/smart_light_bulb/status received message: offline +2s
mqttjs:client writable stream :: parsing buffer +303ms
mqtt-packet:parser parse: current state: _parseHeader +309ms
mqtt-packet:parser _parseHeader: packet: Packet { cmd: 'publish', retain: false, qos: 0, dup: false, length: -1, topic: null, payload: null } +1ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 1 +1ms
mqtt-packet:parser parse: packet.length: -1, buffer list length: 38 +0ms
mqtt-packet:parser _parseVarByteNum +0ms
mqtt-packet:parser _parseVarByteNum: result: { bytes: 1, value: 37 } +0ms
mqtt-packet:parser _parseLength 37 +1ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 2 +0ms
mqtt-packet:parser parse: packet.length: 37, buffer list length: 37 +1ms
mqtt-packet:parser _parsePayload: payload BufferListStream {
mqtt-packet:parser _bufs:
mqtt-packet:parser [ <Buffer 00 1c 74 75 79 61 2f 73 6d 61 72 74 5f 6c 69 67 68 74 5f 62 75 6c 62 2f 73 74 61 74 75 73 6f 66 66 6c 69 6e 65> ],
mqtt-packet:parser length: 37,
mqtt-packet:parser _readableState:
mqtt-packet:parser ReadableState {
mqtt-packet:parser objectMode: false,
mqtt-packet:parser highWaterMark: 16384,
mqtt-packet:parser buffer: BufferList { head: null, tail: null, length: 0 },
mqtt-packet:parser length: 0,
mqtt-packet:parser pipes: null,
mqtt-packet:parser pipesCount: 0,
mqtt-packet:parser flowing: null,
mqtt-packet:parser ended: false,
mqtt-packet:parser endEmitted: false,
mqtt-packet:parser reading: false,
mqtt-packet:parser sync: true,
mqtt-packet:parser needReadable: false,
mqtt-packet:parser emittedReadable: false,
mqtt-packet:parser readableListening: false,
mqtt-packet:parser resumeScheduled: false,
mqtt-packet:parser paused: true,
mqtt-packet:parser emitClose: true,
mqtt-packet:parser autoDestroy: false,
mqtt-packet:parser destroyed: false,
mqtt-packet:parser defaultEncoding: 'utf8',
mqtt-packet:parser awaitDrain: 0,
mqtt-packet:parser readingMore: false,
mqtt-packet:parser decoder: null,
mqtt-packet:parser encoding: null },
mqtt-packet:parser readable: true,
mqtt-packet:parser _events: [Object: null prototype] {},
mqtt-packet:parser _eventsCount: 0,
mqtt-packet:parser _maxListeners: undefined,
mqtt-packet:parser _writableState:
mqtt-packet:parser WritableState {
mqtt-packet:parser objectMode: false,
mqtt-packet:parser highWaterMark: 16384,
mqtt-packet:parser finalCalled: false,
mqtt-packet:parser needDrain: false,
mqtt-packet:parser ending: false,
mqtt-packet:parser ended: false,
mqtt-packet:parser finished: false,
mqtt-packet:parser destroyed: false,
mqtt-packet:parser decodeStrings: true,
mqtt-packet:parser defaultEncoding: 'utf8',
mqtt-packet:parser length: 0,
mqtt-packet:parser writing: false,
mqtt-packet:parser corked: 0,
mqtt-packet:parser sync: true,
mqtt-packet:parser bufferProcessing: false,
mqtt-packet:parser onwrite: [Function],
mqtt-packet:parser writecb: null,
mqtt-packet:parser writelen: 0,
mqtt-packet:parser bufferedRequest: null,
mqtt-packet:parser lastBufferedRequest: null,
mqtt-packet:parser pendingcb: 0,
mqtt-packet:parser prefinished: false,
mqtt-packet:parser errorEmitted: false,
mqtt-packet:parser emitClose: true,
mqtt-packet:parser autoDestroy: false,
mqtt-packet:parser bufferedRequestCount: 0,
mqtt-packet:parser corkedRequestsFree:
mqtt-packet:parser CorkedRequest { next: null, entry: null, finish: [Function] } },
mqtt-packet:parser writable: true,
mqtt-packet:parser allowHalfOpen: true } +0ms
mqtt-packet:parser _parsePublish +5ms
mqtt-packet:parser _parseNum: result: 28 +0ms
mqtt-packet:parser _parseString: result: tuya/smart_light_bulb/status +1ms
mqtt-packet:parser _parsePublish: payload from buffer list: <Buffer 6f 66 66 6c 69 6e 65> +0ms
mqtt-packet:parser _parsePayload complete result: true +1ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 3 +0ms
mqtt-packet:parser parse: packet.length: 37, buffer list length: 37 +0ms
mqtt-packet:parser _newPacket +1ms
mqtt-packet:parser _newPacket: parser emit packet: packet.cmd: publish, packet.payload: offline, packet.length: 37 +0ms
mqttjs:client parser :: on packet push to packets array. +12ms
mqtt-packet:parser _newPacket: new packet +1ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 4 +0ms
mqtt-packet:parser parse: packet.length: -1, buffer list length: 0 +0ms
mqtt-packet:parser parse: exited while loop. packet: -1, buffer list length: 0 +0ms
mqttjs:client work :: getting next packet in queue +2ms
mqttjs:client work :: packet pulled from queue +0ms
mqttjs:client _handlePacket :: emitting packetreceive +0ms
mqttjs:client _handlePublish: packet Packet { cmd: 'publish', retain: false, qos: 0, dup: false, length: 37, topic: 'tuya/smart_light_bulb/status', payload: <Buffer 6f 66 66 6c 69 6e 65> } +0ms
mqttjs:client _handlePublish: qos 0 +1ms
tuya-mqtt:info Home Assistant state topic tuya/smart_light_bulb/status received message: offline +307ms
mqttjs:client writable stream :: parsing buffer +673ms
mqtt-packet:parser parse: current state: _parseHeader +676ms
mqtt-packet:parser _parseHeader: packet: Packet { cmd: 'publish', retain: false, qos: 0, dup: false, length: -1, topic: null, payload: null } +0ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 1 +1ms
mqtt-packet:parser parse: packet.length: -1, buffer list length: 38 +1ms
mqtt-packet:parser _parseVarByteNum +0ms
mqtt-packet:parser _parseVarByteNum: result: { bytes: 1, value: 37 } +0ms
mqtt-packet:parser _parseLength 37 +1ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 2 +0ms
mqtt-packet:parser parse: packet.length: 37, buffer list length: 37 +0ms
mqtt-packet:parser _parsePayload: payload BufferListStream {
mqtt-packet:parser _bufs:
mqtt-packet:parser [ <Buffer 00 1c 74 75 79 61 2f 73 6d 61 72 74 5f 6c 69 67 68 74 5f 62 75 6c 62 2f 73 74 61 74 75 73 6f 66 66 6c 69 6e 65> ],
mqtt-packet:parser length: 37,
mqtt-packet:parser _readableState:
mqtt-packet:parser ReadableState {
mqtt-packet:parser objectMode: false,
mqtt-packet:parser highWaterMark: 16384,
mqtt-packet:parser buffer: BufferList { head: null, tail: null, length: 0 },
mqtt-packet:parser length: 0,
mqtt-packet:parser pipes: null,
mqtt-packet:parser pipesCount: 0,
mqtt-packet:parser flowing: null,
mqtt-packet:parser ended: false,
mqtt-packet:parser endEmitted: false,
mqtt-packet:parser reading: false,
mqtt-packet:parser sync: true,
mqtt-packet:parser needReadable: false,
mqtt-packet:parser emittedReadable: false,
mqtt-packet:parser readableListening: false,
mqtt-packet:parser resumeScheduled: false,
mqtt-packet:parser paused: true,
mqtt-packet:parser emitClose: true,
mqtt-packet:parser autoDestroy: false,
mqtt-packet:parser destroyed: false,
mqtt-packet:parser defaultEncoding: 'utf8',
mqtt-packet:parser awaitDrain: 0,
mqtt-packet:parser readingMore: false,
mqtt-packet:parser decoder: null,
mqtt-packet:parser encoding: null },
mqtt-packet:parser readable: true,
mqtt-packet:parser _events: [Object: null prototype] {},
mqtt-packet:parser _eventsCount: 0,
mqtt-packet:parser _maxListeners: undefined,
mqtt-packet:parser _writableState:
mqtt-packet:parser WritableState {
mqtt-packet:parser objectMode: false,
mqtt-packet:parser highWaterMark: 16384,
mqtt-packet:parser finalCalled: false,
mqtt-packet:parser needDrain: false,
mqtt-packet:parser ending: false,
mqtt-packet:parser ended: false,
mqtt-packet:parser finished: false,
mqtt-packet:parser destroyed: false,
mqtt-packet:parser decodeStrings: true,
mqtt-packet:parser defaultEncoding: 'utf8',
mqtt-packet:parser length: 0,
mqtt-packet:parser writing: false,
mqtt-packet:parser corked: 0,
mqtt-packet:parser sync: true,
mqtt-packet:parser bufferProcessing: false,
mqtt-packet:parser onwrite: [Function],
mqtt-packet:parser writecb: null,
mqtt-packet:parser writelen: 0,
mqtt-packet:parser bufferedRequest: null,
mqtt-packet:parser lastBufferedRequest: null,
mqtt-packet:parser pendingcb: 0,
mqtt-packet:parser prefinished: false,
mqtt-packet:parser errorEmitted: false,
mqtt-packet:parser emitClose: true,
mqtt-packet:parser autoDestroy: false,
mqtt-packet:parser bufferedRequestCount: 0,
mqtt-packet:parser corkedRequestsFree:
mqtt-packet:parser CorkedRequest { next: null, entry: null, finish: [Function] } },
mqtt-packet:parser writable: true,
mqtt-packet:parser allowHalfOpen: true } +1ms
mqtt-packet:parser _parsePublish +4ms
mqtt-packet:parser _parseNum: result: 28 +1ms
mqtt-packet:parser _parseString: result: tuya/smart_light_bulb/status +0ms
mqtt-packet:parser _parsePublish: payload from buffer list: <Buffer 6f 66 66 6c 69 6e 65> +0ms
mqtt-packet:parser _parsePayload complete result: true +1ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 3 +0ms
mqtt-packet:parser parse: packet.length: 37, buffer list length: 37 +0ms
mqtt-packet:parser _newPacket +1ms
mqtt-packet:parser _newPacket: parser emit packet: packet.cmd: publish, packet.payload: offline, packet.length: 37 +0ms
mqttjs:client parser :: on packet push to packets array. +12ms
mqtt-packet:parser _newPacket: new packet +0ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 4 +1ms
mqtt-packet:parser parse: packet.length: -1, buffer list length: 0 +0ms
mqtt-packet:parser parse: exited while loop. packet: -1, buffer list length: 0 +0ms
mqttjs:client work :: getting next packet in queue +1ms
mqttjs:client work :: packet pulled from queue +1ms
mqttjs:client _handlePacket :: emitting packetreceive +0ms
mqttjs:client _handlePublish: packet Packet { cmd: 'publish', retain: false, qos: 0, dup: false, length: 37, topic: 'tuya/smart_light_bulb/status', payload: <Buffer 6f 66 66 6c 69 6e 65> } +0ms
mqttjs:client _handlePublish: qos 0 +1ms
tuya-mqtt:info Home Assistant state topic tuya/smart_light_bulb/status received message: offline +687ms
mqttjs:client writable stream :: parsing buffer +607ms
mqtt-packet:parser parse: current state: _parseHeader +610ms
mqtt-packet:parser _parseHeader: packet: Packet { cmd: 'publish', retain: false, qos: 0, dup: false, length: -1, topic: null, payload: null } +0ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 1 +1ms
mqtt-packet:parser parse: packet.length: -1, buffer list length: 38 +0ms
mqtt-packet:parser _parseVarByteNum +1ms
mqtt-packet:parser _parseVarByteNum: result: { bytes: 1, value: 37 } +0ms
mqtt-packet:parser _parseLength 37 +1ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 2 +0ms
mqtt-packet:parser parse: packet.length: 37, buffer list length: 37 +0ms
mqtt-packet:parser _parsePayload: payload BufferListStream {
mqtt-packet:parser _bufs:
mqtt-packet:parser [ <Buffer 00 1c 74 75 79 61 2f 73 6d 61 72 74 5f 6c 69 67 68 74 5f 62 75 6c 62 2f 73 74 61 74 75 73 6f 66 66 6c 69 6e 65> ],
mqtt-packet:parser length: 37,
mqtt-packet:parser _readableState:
mqtt-packet:parser ReadableState {
mqtt-packet:parser objectMode: false,
mqtt-packet:parser highWaterMark: 16384,
mqtt-packet:parser buffer: BufferList { head: null, tail: null, length: 0 },
mqtt-packet:parser length: 0,
mqtt-packet:parser pipes: null,
mqtt-packet:parser pipesCount: 0,
mqtt-packet:parser flowing: null,
mqtt-packet:parser ended: false,
mqtt-packet:parser endEmitted: false,
mqtt-packet:parser reading: false,
mqtt-packet:parser sync: true,
mqtt-packet:parser needReadable: false,
mqtt-packet:parser emittedReadable: false,
mqtt-packet:parser readableListening: false,
mqtt-packet:parser resumeScheduled: false,
mqtt-packet:parser paused: true,
mqtt-packet:parser emitClose: true,
mqtt-packet:parser autoDestroy: false,
mqtt-packet:parser destroyed: false,
mqtt-packet:parser defaultEncoding: 'utf8',
mqtt-packet:parser awaitDrain: 0,
mqtt-packet:parser readingMore: false,
mqtt-packet:parser decoder: null,
mqtt-packet:parser encoding: null },
mqtt-packet:parser readable: true,
mqtt-packet:parser _events: [Object: null prototype] {},
mqtt-packet:parser _eventsCount: 0,
mqtt-packet:parser _maxListeners: undefined,
mqtt-packet:parser _writableState:
mqtt-packet:parser WritableState {
mqtt-packet:parser objectMode: false,
mqtt-packet:parser highWaterMark: 16384,
mqtt-packet:parser finalCalled: false,
mqtt-packet:parser needDrain: false,
mqtt-packet:parser ending: false,
mqtt-packet:parser ended: false,
mqtt-packet:parser finished: false,
mqtt-packet:parser destroyed: false,
mqtt-packet:parser decodeStrings: true,
mqtt-packet:parser defaultEncoding: 'utf8',
mqtt-packet:parser length: 0,
mqtt-packet:parser writing: false,
mqtt-packet:parser corked: 0,
mqtt-packet:parser sync: true,
mqtt-packet:parser bufferProcessing: false,
mqtt-packet:parser onwrite: [Function],
mqtt-packet:parser writecb: null,
mqtt-packet:parser writelen: 0,
mqtt-packet:parser bufferedRequest: null,
mqtt-packet:parser lastBufferedRequest: null,
mqtt-packet:parser pendingcb: 0,
mqtt-packet:parser prefinished: false,
mqtt-packet:parser errorEmitted: false,
mqtt-packet:parser emitClose: true,
mqtt-packet:parser autoDestroy: false,
mqtt-packet:parser bufferedRequestCount: 0,
mqtt-packet:parser corkedRequestsFree:
mqtt-packet:parser CorkedRequest { next: null, entry: null, finish: [Function] } },
mqtt-packet:parser writable: true,
mqtt-packet:parser allowHalfOpen: true } +0ms
mqtt-packet:parser _parsePublish +5ms
mqtt-packet:parser _parseNum: result: 28 +0ms
mqtt-packet:parser _parseString: result: tuya/smart_light_bulb/status +1ms
mqtt-packet:parser _parsePublish: payload from buffer list: <Buffer 6f 66 66 6c 69 6e 65> +0ms
mqtt-packet:parser _parsePayload complete result: true +0ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 3 +1ms
mqtt-packet:parser parse: packet.length: 37, buffer list length: 37 +0ms
mqtt-packet:parser _newPacket +0ms
mqtt-packet:parser _newPacket: parser emit packet: packet.cmd: publish, packet.payload: offline, packet.length: 37 +0ms
mqttjs:client parser :: on packet push to packets array. +12ms
mqtt-packet:parser _newPacket: new packet +1ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 4 +0ms
mqtt-packet:parser parse: packet.length: -1, buffer list length: 0 +0ms
mqtt-packet:parser parse: exited while loop. packet: -1, buffer list length: 0 +1ms
mqttjs:client work :: getting next packet in queue +1ms
mqttjs:client work :: packet pulled from queue +0ms
mqttjs:client _handlePacket :: emitting packetreceive +0ms
mqttjs:client _handlePublish: packet Packet { cmd: 'publish', retain: false, qos: 0, dup: false, length: 37, topic: 'tuya/smart_light_bulb/status', payload: <Buffer 6f 66 66 6c 69 6e 65> } +0ms
mqttjs:client _handlePublish: qos 0 +1ms
tuya-mqtt:info Home Assistant state topic tuya/smart_light_bulb/status received message: offline +622ms
^C tuya-mqtt:info Exit code: SIGINT +592ms
mqttjs:client writable stream :: parsing buffer +1s
mqtt-packet:parser parse: current state: _parseHeader +1s
mqtt-packet:parser _parseHeader: packet: Packet { cmd: 'publish', retain: false, qos: 0, dup: false, length: -1, topic: null, payload: null } +0ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 1 +2ms
mqtt-packet:parser parse: packet.length: -1, buffer list length: 38 +0ms
mqtt-packet:parser _parseVarByteNum +0ms
mqtt-packet:parser _parseVarByteNum: result: { bytes: 1, value: 37 } +1ms
mqtt-packet:parser _parseLength 37 +0ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 2 +1ms
mqtt-packet:parser parse: packet.length: 37, buffer list length: 37 +0ms
mqtt-packet:parser _parsePayload: payload BufferListStream {
mqtt-packet:parser _bufs:
mqtt-packet:parser [ <Buffer 00 1c 74 75 79 61 2f 73 6d 61 72 74 5f 6c 69 67 68 74 5f 62 75 6c 62 2f 73 74 61 74 75 73 6f 66 66 6c 69 6e 65> ],
mqtt-packet:parser length: 37,
mqtt-packet:parser _readableState:
mqtt-packet:parser ReadableState {
mqtt-packet:parser objectMode: false,
mqtt-packet:parser highWaterMark: 16384,
mqtt-packet:parser buffer: BufferList { head: null, tail: null, length: 0 },
mqtt-packet:parser length: 0,
mqtt-packet:parser pipes: null,
mqtt-packet:parser pipesCount: 0,
mqtt-packet:parser flowing: null,
mqtt-packet:parser ended: false,
mqtt-packet:parser endEmitted: false,
mqtt-packet:parser reading: false,
mqtt-packet:parser sync: true,
mqtt-packet:parser needReadable: false,
mqtt-packet:parser emittedReadable: false,
mqtt-packet:parser readableListening: false,
mqtt-packet:parser resumeScheduled: false,
mqtt-packet:parser paused: true,
mqtt-packet:parser emitClose: true,
mqtt-packet:parser autoDestroy: false,
mqtt-packet:parser destroyed: false,
mqtt-packet:parser defaultEncoding: 'utf8',
mqtt-packet:parser awaitDrain: 0,
mqtt-packet:parser readingMore: false,
mqtt-packet:parser decoder: null,
mqtt-packet:parser encoding: null },
mqtt-packet:parser readable: true,
mqtt-packet:parser _events: [Object: null prototype] {},
mqtt-packet:parser _eventsCount: 0,
mqtt-packet:parser _maxListeners: undefined,
mqtt-packet:parser _writableState:
mqtt-packet:parser WritableState {
mqtt-packet:parser objectMode: false,
mqtt-packet:parser highWaterMark: 16384,
mqtt-packet:parser finalCalled: false,
mqtt-packet:parser needDrain: false,
mqtt-packet:parser ending: false,
mqtt-packet:parser ended: false,
mqtt-packet:parser finished: false,
mqtt-packet:parser destroyed: false,
mqtt-packet:parser decodeStrings: true,
mqtt-packet:parser defaultEncoding: 'utf8',
mqtt-packet:parser length: 0,
mqtt-packet:parser writing: false,
mqtt-packet:parser corked: 0,
mqtt-packet:parser sync: true,
mqtt-packet:parser bufferProcessing: false,
mqtt-packet:parser onwrite: [Function],
mqtt-packet:parser writecb: null,
mqtt-packet:parser writelen: 0,
mqtt-packet:parser bufferedRequest: null,
mqtt-packet:parser lastBufferedRequest: null,
mqtt-packet:parser pendingcb: 0,
mqtt-packet:parser prefinished: false,
mqtt-packet:parser errorEmitted: false,
mqtt-packet:parser emitClose: true,
mqtt-packet:parser autoDestroy: false,
mqtt-packet:parser bufferedRequestCount: 0,
mqtt-packet:parser corkedRequestsFree:
mqtt-packet:parser CorkedRequest { next: null, entry: null, finish: [Function] } },
mqtt-packet:parser writable: true,
mqtt-packet:parser allowHalfOpen: true } +0ms
mqtt-packet:parser _parsePublish +5ms
mqtt-packet:parser _parseNum: result: 28 +0ms
mqtt-packet:parser _parseString: result: tuya/smart_light_bulb/status +1ms
mqtt-packet:parser _parsePublish: payload from buffer list: <Buffer 6f 66 66 6c 69 6e 65> +0ms
mqtt-packet:parser _parsePayload complete result: true +0ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 3 +1ms
mqtt-packet:parser parse: packet.length: 37, buffer list length: 37 +0ms
mqtt-packet:parser _newPacket +0ms
mqtt-packet:parser _newPacket: parser emit packet: packet.cmd: publish, packet.payload: offline, packet.length: 37 +1ms
mqttjs:client parser :: on packet push to packets array. +13ms
mqtt-packet:parser _newPacket: new packet +0ms
mqtt-packet:parser parse: state complete. _stateCounter is now: 4 +0ms
mqtt-packet:parser parse: packet.length: -1, buffer list length: 0 +1ms
mqtt-packet:parser parse: exited while loop. packet: -1, buffer list length: 0 +0ms
mqttjs:client work :: getting next packet in queue +1ms
mqttjs:client work :: packet pulled from queue +0ms
mqttjs:client _handlePacket :: emitting packetreceive +1ms
mqttjs:client _handlePublish: packet Packet { cmd: 'publish', retain: false, qos: 0, dup: false, length: 37, topic: 'tuya/smart_light_bulb/status', payload: <Buffer 6f 66 66 6c 69 6e 65> } +0ms
mqttjs:client _handlePublish: qos 0 +1ms
tuya-mqtt:info Home Assistant state topic tuya/smart_light_bulb/status received message: offline +628ms
tuya-mqtt:info Exit code: 0 +374ms

from tuya-mqtt.

downloadme4free avatar downloadme4free commented on July 3, 2024

I used to run tuya-mqtt smoothly on Pi4 + openHAB 3, but after reinstall tuya-mqtt cannot work like before.
There's no problem while installing, but when I try to run node tuya-mqtt or even sudo node tuya-mqtt the app will not exit, and I must Ctrl-C to quit the app. As I know when I run node tuya-mqtt the app should run once then I will enable tuya-mqtt.service in systemtcl.
While app is running I can controls my Tuya things as normal.
How can I fix this?

My system is:

  • Raspberry Pi 4 4GB runs openHABian v1.7.4b
  • Node version 12.22.12
  • NPM version 8.19.2
  • Tuya MQTT: the lastest version for now

tuya-mqtt-error

from tuya-mqtt.

tsightler avatar tsightler commented on July 3, 2024

Please note, tuya-mqtt is effectively unmaintained for almost 2 years, no one has stepped up to maintain it and I no longer use Tuya devices so I can only try to help based on what I remember.

I don't really understand why you think something is wrong. You state "While app is running I can controls my Tuya things as normal.", so that sounds good to me. The tuya-mqtt app produces no output by default so, unless you set debug, when you run the script from the CLI it will just sit there until you cancel it, that's just normal. If it is working from the CLI then you just need to setup tuya-mqtt.service to start the app as a service and that's it.

from tuya-mqtt.

downloadme4free avatar downloadme4free commented on July 3, 2024

Hi tsightler, thanks for your quick reply!
When I run sudo systemctl enable tuya-mqtt openhabian shows Failed to enable unit: Unit file tuya-mqtt.service does not exist., I think it means the system doesn't find tuya-mqtt in running services
When I run node tuya-mqtt.js, meanwhile I can control 3 Tuya things (2 sockets and a Smart bulb), but when I press Ctrl-C to terminate tuya-mqtt I can't control them anymore.
As my knowledge, I can run node tuya-mqtt.js one time, then it will stay in the system memory as tuya-mqtt.service and quit the main app then return to the CLI, but I'm stuck because after run node tuya-mqtt.js it like infinity loop.
Sorry if my English can't clear my thought
tuya-mqtt-error 2
tuya-mqtt-error 3
tuya-mqtt-error 4

from tuya-mqtt.

downloadme4free avatar downloadme4free commented on July 3, 2024

@tsightler: I have my issue fixed!
Firstly, my issue is about I cannot set tuya-mqtt running as a system service, not about tuya-mqtt not working. I should open a new thread instead of posting it here, sorry!

I fix it by creating tuya-mqtt.service file in /etc/systemd/system:
`[Unit]
Description=TheAgentK Tuya MQTT

[Service]
ExecStart=node /opt/tuya-mqtt/tuya-mqtt.js
Restart=always
User=openhabian
Group=openhabian
WorkingDirectory=/opt/tuya-mqtt

[Install]`
then run:
sudo systemctl start tuya-mqtt
sudo systemctl enable tuya-mqtt

Now tuya-mqtt is working as expected. Thank you!

from tuya-mqtt.

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.