Open YouveGotMeowxy opened 3 years ago
Hey - could you run the tool in verbose mode and post the logs here:
npm run cli:verbose
I'm not sure it'll help (it's difficult to debug this remotely) - but it might!
@sebmos Hi, I opened the terminal from the link in the menu and pasted that command, but just get this (sorry, I'm only intermediate level computer person, lol):
/homebridge # npm run cli:verbose
npm ERR! missing script: cli:verbose
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2021-05-21T18_31_58_815Z-debug.log
I'm running HB from the docker container.
Ah, I hadn't realised that you were running it via homebridge - should have looked at those logs a bit more closely!
Can you first go into the subfolder for the node-eufy-api package (cd node_modules/node-eufy-api
) - and run it again? It'll then ask you to sign in with your Anker credentials and will provide command-line access to turn various devices on or off, while also spitting out loads of extra log messages.
@sebmos I don't have any Anker creds. this is the first time I've ever heard of Anker, lol
Anker and Eufy are the same thing (Eufy is a brand by Anker, the company) :)
@sebmos oh, lol, I didn tknow they were the same.
I tried and still same result:
homebridge/node_modules/homebridge-eufy # npm run cli:verbose
npm ERR! missing script: cli:verbose
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2021-05-21T19_59_20_953Z-debug.log
and this is in that debug.log
/homebridge/node_modules/homebridge-eufy # cat /root/.npm/_logs/2021-05-21T19_59_20_953Z-debug.log
0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'run', 'cli:verbose' ]
2 info using npm@6.14.13
3 info using node@v14.17.0
4 verbose stack Error: missing script: cli:verbose
4 verbose stack at run (/usr/local/lib/node_modules/npm/lib/run-script.js:155:19)
4 verbose stack at /usr/local/lib/node_modules/npm/lib/run-script.js:63:5
4 verbose stack at /usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:116:5
4 verbose stack at /usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:436:5
4 verbose stack at checkBinReferences_ (/usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:391:45)
4 verbose stack at final (/usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:434:3)
4 verbose stack at then (/usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:161:5)
4 verbose stack at /usr/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:281:12
4 verbose stack at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:123:16
4 verbose stack at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:73:3)
5 verbose cwd /homebridge/node_modules/homebridge-eufy
6 verbose Linux 5.4.72-microsoft-standard-WSL2
7 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "cli:verbose"
8 verbose node v14.17.0
9 verbose npm v6.14.13
10 error missing script: cli:verbose
11 verbose exit [ 1, true ]
/homebridge/node_modules/homebridge-eufy #
The module folder you need to open is node-eufy-api
, not homebridge-eufy
.
(homebridge-eufy
is the homebridge package, node-eufy-api
is a generic module to connect to Eufy devices.)
@sebmos ok, sorry, lol.
ok, I'm here and don't know where to go next. I selected one of the devices, and just left off there:
Loading devices
(AbstractDevice.new) Create device (model: T1011, code: C810EFA5187E49BA)
(AbstractDevice.new) Create device (model: T1011, code: FE34AAC84F5C4C17)
(AbstractDevice.new) Create device (model: T1012, code: 00AE3C1659CB4B20)
(AbstractDevice.new) Create device (model: T1012, code: 6B523EB393504330)
Logged in, devices loaded
? Save credentials locally for future use? Yes
? Choose device Ceiling Fan Bulb 1 (Model: T1012, Code: 6B523EB393504330, IP Address: 192.168.0.228)
(AbstractDevice.connect) Connecting
(TcpSocket.connect) Connecting to 192.168.0.228
(AbstractDevice.new) TCP Socket connected
(AbstractDevice.connect) Connected to device Ceiling Fan Bulb 1 (Model: T1012, Code: 6B523EB393504330, IP Address: 192.168.0.228)
(AbstractDevice.connect) Loading current device state
(LightBulb.loadCurrentState) Loading current device state
(LightBulb.getState) Loading current device state
(AbstractDevice.getSequence) Loading current sequence number
(AbstractDevice.sendPacketWithResponse) 0885d60712103642330343333301a020800
(encryptPacket) Extended: 0885d6071210364235323343301a020800000000000000
(encryptPacket) Encrypted: f0308522b5d65b656060b26264b5df0aec7
(AbstractDevice.sendPacket) Sending encrypted packet: f0308522b5d65b656060b2fcfe1ea145548ea056264b5df0aec7
(AbstractDevice.sendPacketWithResponse) Response received: 027e6e768f4ec8188627e
(AbstractDevice.sendPacketWithResponse) Response decrypted: 0a0008bbd0380100000000
(AbstractDevice.sendPacketWithResponse) Expected packet length: 10
(AbstractDevice.sendPacketWithResponse) Serialized packet: 08b12001a020801
(AbstractDevice.sendPacketWithResponse) Serialized packet length: 10
(AbstractDevice.sendPacketWithResponse) Deserializing response as T1012Packet
(AbstractDevice.sendPacketWithResponse) Decoded packet: {"sequence":960571,"code":"","ping":{"type":1}}
(AbstractDevice.getSequence) Current sequence number: 960571
(LightBulb.getState) Sending request to device
(AbstractDevice.sendPacketWithResponse) 08bcd03a121033302a020801
(encryptPacket) Extended: 08bcd03a12103642353020801000000000000
(encryptPacket) Encrypted: 86db3e4056a315472b69a94f014c3f803f15554ab3fa3e
(AbstractDevice.sendPacket) Sending encrypted packet: 86db3e4056a3154790cdb28a26c3554ab3fa3e
(AbstractDevice.sendPacketWithResponse) Response received: 9b834ecc487b0f500837f1ece81d
(AbstractDevice.sendPacketWithResponse) Response decrypted: 3a0008bdd03a12002a320802122e08ffffffffffffffffff011221080612040864106318d9ffffffffffffffff0148e88e0100000000
(AbstractDevice.sendPacketWithResponse) Expected packet length: 58
(AbstractDevice.sendPacketWithResponse) Serialized packet: 08bdd03a12002a320802122e08ffffffffffffffffff0112210806129ffffffffffffffff0148e88e01
(AbstractDevice.sendPacketWithResponse) Serialized packet length: 58
(AbstractDevice.sendPacketWithResponse) Deserializing response as T1012Packet
(AbstractDevice.sendPacketWithResponse) Decoded packet: {"sequence":960573,"code":"","bulbinfo":{"type":2,"packet":{"unknown1":-1,"bulbstate":{"command":6,"values":{"brightness":100,"temperature":99},"power":1,"unknown1":0,"values2":{"brightness":100,"temperature":100},"unknown2":-39}}}}
(LightBulb.loadCurrentState) Parsing current state as white light bulb
(LightBulb.loadCurrentState) Current power state: true
(LightBulb.loadCurrentState) Current brightness: 100 (might be unsupported)
(LightBulb.loadCurrentState) Current temperature: 99 (might be unsupported)
(AbstractDevice.isPowerOn) Checking power state
(AbstractDevice.isPowerOn) Checking power state
(AbstractDevice.isPowerOn) Checking power state
? Options (Use arrow keys)
❯ Turn off
Change brightness (currently 100/100)
Change temperature (currently 99/100)
Back to Menu
note that for all of those numbers that look like long hashes, I deleted an arbitrary length of chars since I'm not sure whether that's sensitive info or not.
Could you try changing the brightness and temperature? (You don't have to change it by much - if you change the temperature to 98 and the brightness to 99, you shouldn't actually notice much of a difference.)
@sebmos Ok, I just set one of the bulbs to 80 and it worked
@sebmos is this interesting though?
I changed the temperature to 50, it changed, but them said the bulb is off?
? Enter color temperature (between 0 and 100) 50
(LightBulb.setTemperature) Change to: 50
(LightBulb.setState) Change to: {"temperature":50}
(LightBulb.parseValueAsNumber) Input: "50" (Max Value: 100)
(LightBulb.parseValueAsNumber) Result: 50
(LightBulb.setState) Temperature: 50
(AbstractDevice.getSequence) Loading current sequence number
(AbstractDevice.sendPacketWithResponse) 08ebc9351210364235323345423339333530343333301a020800
(encryptPacket) Extended: 08ebc9351210364235323345423339333530343333301a020800000000000000
(encryptPacket) Encrypted: 1a24be304f6c2c7cf8523a921c9d852111516277738271da308afd0512e53416
(AbstractDevice.sendPacket) Sending encrypted packet: 1a24be304f6c2c7cf8523a921c9d852111516277738271da308afd0512e53416
(AbstractDevice.sendPacketWithResponse) Response received: 11cb98bd95a7c32bd5c34df138f4dabb
(AbstractDevice.sendPacketWithResponse) Response decrypted: 0b0008aaf2e60812001a020801000000
(AbstractDevice.sendPacketWithResponse) Expected packet length: 11
(AbstractDevice.sendPacketWithResponse) Serialized packet: 08aaf2e60812001a020801
(AbstractDevice.sendPacketWithResponse) Serialized packet length: 11
(AbstractDevice.sendPacketWithResponse) Deserializing response as T1012Packet
(AbstractDevice.sendPacketWithResponse) Decoded packet: {"sequence":18463018,"code":"","ping":{"type":1}}
(AbstractDevice.getSequence) Current sequence number: 18463018
(LightBulb.setState) Treat as white light bulb (T1012Packet)
(LightBulb.setState) Change temperature to 50
(LightBulb.setState) Apply bulb values
(LightBulb.setState) Sending packet
(AbstractDevice.sendPacket) 08abf2e6081210364235323345423339333530343333302a100800120c08641a080807120408001032
(encryptPacket) Extended: 08abf2e6081210364235323345423339333530343333302a100800120c08641a08080712040800103200000000000000
(encryptPacket) Encrypted: 822e1cc765bc838a03ec36f2669dad09b4e6897eb80e4ba19545da5b60cdf660a12f8b8040cea89fcd8345803f0c5e68
(AbstractDevice.sendPacket) Sending encrypted packet: 822e1cc765bc838a03ec36f2669dad09b4e6897eb80e4ba19545da5b60cdf660a12f8b8040cea89fcd8345803f0c5e68
(LightBulb.setState) Reloading state
(LightBulb.loadCurrentState) Loading current device state
(LightBulb.getState) Loading current device state
(AbstractDevice.getSequence) Loading current sequence number
(AbstractDevice.sendPacketWithResponse) 08d8f5341210364235323345423339333530343333301a020800
(encryptPacket) Extended: 08d8f5341210364235323345423339333530343333301a020800000000000000
(encryptPacket) Encrypted: 6a055e7f47cbce21423c3887ae82a9caf3593bdbc6b2cfb202de2e9e568a78b8
(AbstractDevice.sendPacket) Sending encrypted packet: 6a055e7f47cbce21423c3887ae82a9caf3593bdbc6b2cfb202de2e9e568a78b8
(AbstractDevice.sendPacketWithResponse) Response received: a120e9993cc6dc8049dae017e9550e67
(AbstractDevice.sendPacketWithResponse) Response decrypted: 0b0008bf9ee60812001a020801000000
(AbstractDevice.sendPacketWithResponse) Expected packet length: 11
(AbstractDevice.sendPacketWithResponse) Serialized packet: 08bf9ee60812001a020801
(AbstractDevice.sendPacketWithResponse) Serialized packet length: 11
(AbstractDevice.sendPacketWithResponse) Deserializing response as T1012Packet
(AbstractDevice.sendPacketWithResponse) Decoded packet: {"sequence":18452287,"code":"","ping":{"type":1}}
(AbstractDevice.getSequence) Current sequence number: 18452287
(LightBulb.getState) Sending request to device
(AbstractDevice.sendPacketWithResponse) 08c09ee6081210364235323345423339333530343333302a020801
(encryptPacket) Extended: 08c09ee6081210364235323345423339333530343333302a0208010000000000
(encryptPacket) Encrypted: fcf0d55058a7538538da89ff2a20a0e34e6786b4be25c0aa2b021dd7fe885e97
(AbstractDevice.sendPacket) Sending encrypted packet: fcf0d55058a7538538da89ff2a20a0e34e6786b4be25c0aa2b021dd7fe885e97
(AbstractDevice.sendPacketWithResponse) Response received: 05fed34d70f55da9f3f980662e6128ae6418e28c4b75393bb2a5a7fa138c0266cd62af2b7b0f771c2c7458e401c970f06a8084f58eb9a38b0ea7f65e6cfe6974
(AbstractDevice.sendPacketWithResponse) Response decrypted: 330008c19ee60812002a2a08021226086412220806120408001032180020002a040864106430daffffffffffffffff0148d8a8b1080000000000000000000000
(AbstractDevice.sendPacketWithResponse) Expected packet length: 51
(AbstractDevice.sendPacketWithResponse) Serialized packet: 08c19ee60812002a2a08021226086412220806120408001032180020002a040864106430daffffffffffffffff0148d8a8b108
(AbstractDevice.sendPacketWithResponse) Serialized packet length: 51
(AbstractDevice.sendPacketWithResponse) Deserializing response as T1012Packet
(AbstractDevice.sendPacketWithResponse) Decoded packet: {"sequence":18452289,"code":"","bulbinfo":{"type":2,"packet":{"unknown1":100,"bulbstate":{"command":6,"values":{"brightness":0,"temperature":50},"power":0,"unknown1":0,"values2":{"brightness":100,"temperature":100},"unknown2":-38}}}}
(LightBulb.loadCurrentState) Parsing current state as white light bulb
(LightBulb.loadCurrentState) Current power state: false
(LightBulb.loadCurrentState) Current brightness: 0 (might be unsupported)
(LightBulb.loadCurrentState) Current temperature: 50 (might be unsupported)
(LightBulb.setTemperature) New temperature: 0
Color temperature is now 50
(AbstractDevice.isPowerOn) Checking power state
(AbstractDevice.isPowerOn) Checking power state
(AbstractDevice.isPowerOn) Checking power state
? Options
❯ Turn on
- Change brightness (Turn on first)
- Change temperature (Turn on first)
Back to Menu
See the "turn on first?"
also, was I correct in thinking that those hashes are sensitive? or is it safe to post them here unaltered?
As far as I know, the hashes are pretty harmless - they identify your device uniquely, but in a way that's useless unless I were connected to your Wifi.
So .. this is pretty odd! It looks like homebridge-eufy
can't load the device state, while node-eufy-api
can without issues. It closes the connection when changing the device state (e.g. power, brightness, temperature) - but without the error message you see in the logs above ("Socket Error: This socket has been ended by the other party").
This is odd because homebridge-eufy
uses node-eufy-api
to connect to device, and calls the same methods the command-line interface does!
Unfortunately, without a T1012 device at hand, it's difficult for me to debug this.
Here's my log for this untested device: