Cybele icon indicating copy to clipboard operation
Cybele copied to clipboard

Failed to connect to Mi Kettle-TypeError: Cannot read property 'StartNotify' of undefined

Open isaaccs opened this issue 3 years ago • 6 comments

Hi everyone,

I follow the readme to install the package. I've cloned the repo, done npm install, configured cybele as follows

{
  "mqtt": {
    "url": "MQTT"
  },
  "dongles": [
    {
      "hciDevice": "hci0",
      "mode": "le",
      "services": [],
      "devices": [{
  "type": "MiKettleDevice",
  "friendlyName": "Mi Kettle",
  "mac": "MAC",
  "productId":1116
}

      ]
    }
  ]
}
Connected to MQTT Broker
Startup complete
/home/pi/Cybele/lib/devices/MiKettle/MiKettleDevice.js:166
        this.characteristicsByUUID[MiKettleDevice.CHARACTERISTICS.auth].StartNotify([], err => {
                                                                        ^

TypeError: Cannot read property 'StartNotify' of undefined
    at /home/pi/Cybele/lib/devices/MiKettle/MiKettleDevice.js:166:73
    at Object.item.task (/home/pi/Cybele/node_modules/semaphore/lib/semaphore.js:40:29)
    at Object.take (/home/pi/Cybele/node_modules/semaphore/lib/semaphore.js:51:9)
    at MiKettleDevice.doAuthStageTwo (/home/pi/Cybele/lib/devices/MiKettle/MiKettleDevice.js:165:20)
    at Object.<anonymous> (/home/pi/Cybele/lib/devices/MiKettle/MiKettleDevice.js:156:22)
    at EventEmitter.<anonymous> (/home/pi/Cybele/node_modules/dbus-native/lib/bus.js:138:19)
    at EventEmitter.emit (events.js:388:22)
    at /home/pi/Cybele/node_modules/dbus-native/index.js:106:14
    at Socket.<anonymous> (/home/pi/Cybele/node_modules/dbus-native/lib/message.js:55:9)
    at Socket.emit (events.js:376:20)

Any ideas what's wrong?

isaaccs avatar May 25 '21 12:05 isaaccs

I add the Token in the config file, now I have a new error.

Connected to MQTT Broker
Startup complete
Disconnected from Mi Kettle
Mi Kettle {
  message: 'Failed to connect to Mi Kettle',
  error: 'Timeout exceeded'
} while connecting


/home/pi/Cybele/lib/devices/MiKettle/MiKettleDevice.js:166
        this.characteristicsByUUID[MiKettleDevice.CHARACTERISTICS.auth].StartNotify([], err => {
                                                                        ^

TypeError: Cannot read property 'StartNotify' of undefined
    at /home/pi/Cybele/lib/devices/MiKettle/MiKettleDevice.js:166:73
    at Object.item.task (/home/pi/Cybele/node_modules/semaphore/lib/semaphore.js:40:29)
    at Object.take (/home/pi/Cybele/node_modules/semaphore/lib/semaphore.js:51:9)
    at MiKettleDevice.doAuthStageTwo (/home/pi/Cybele/lib/devices/MiKettle/MiKettleDevice.js:165:20)
    at Object.<anonymous> (/home/pi/Cybele/lib/devices/MiKettle/MiKettleDevice.js:156:22)
    at EventEmitter.<anonymous> (/home/pi/Cybele/node_modules/dbus-native/lib/bus.js:138:19)
    at EventEmitter.emit (events.js:388:22)
    at /home/pi/Cybele/node_modules/dbus-native/index.js:106:14
    at Socket.<anonymous> (/home/pi/Cybele/node_modules/dbus-native/lib/message.js:55:9)
    at Socket.emit (events.js:376:20)
```

isaaccs avatar May 25 '21 12:05 isaaccs

The same with new Xiaomi Kettle Pro it make beep and give the error like this MAC: A4:C1:38:81:FE:58 Token: e3e28761a205cc475e1aa1ac Model: yunmi.kettle.v12

RestOp avatar Jun 28 '21 14:06 RestOp

If there is no auth characteristic with that model, it might run a different firmware which works.. differently and therefore requires additional reverse engineering

Hypfer avatar Jun 28 '21 14:06 Hypfer

How could we help to make it work (if we could)?

RestOp avatar Jun 28 '21 14:06 RestOp

@Hypfer can we anyhow assist you? Providing logs or smthg else?

Marcusg562 avatar Dec 26 '21 09:12 Marcusg562

I'm not working on this.

Hypfer avatar Dec 26 '21 09:12 Hypfer