@pierre-gilles Itâs fixed and the tests are passing ![]()
@Pti_Nico great PR, itâs much cleaner than the first iterations, super tidy ![]()
![]()
I left a small remark (very minor) on the translations.
Otherwise, I made some ESLint changes that will need to be applied in your PR (should take 1 minute, no more)
Regarding the documentation, is your PR still up to date?
And in terms of real-world testing, is it OK?
If everything is good, for me it can go to Gladys production ![]()
Yep, still OK.
@_Will_71 tested on his side, it seems correct.
I might not have chosen those words knowing that during the last tests my LED strip wasnât recognized.
But as I told you, it shouldnât be a barrier to releasing the integration.
I tried again tonight to be sure and with your last image I confirm that I can no longer find my banner
And nothing in the logs.
Really strange because it was being recognized fine before.
@Pti_Nico can you check with @_Will_71 why heâs getting errors? Maybe do a build with more logs to debug whatâs happening on his side?
If we only have one tester on this integration and it doesnât work for him, itâs not very reassuring for me to merge this integration as-is ![]()
Iâm open to other testers too!
I have a Yeelight Bulb at home thatâs several years old and that I donât use. Maybe I can test something on my end?
@guim31 Yes you can test!
@_Will_71 Iâve pushed a new image (same name) with more logsâŠ
Ok Iâll get back to you tonight.
@Pti_Nico are you sure about your image? I tried it twice on two different devices but there is no Yeelight integration in your latest image.
Can you generate another one?
@_Will_71 indeed, it was overwritten by another one that I pushed afterwards, sorryâŠ
Iâve just restarted the creationâŠ
No worries, Iâll run another test tonight.
Okay, I managed to find my LED strip.
To detect it I had to turn it on. It had, however, been detected by my router.
I was able to control my LED strip from Gladys and get feedback when I controlled it directly from the Yeelight app. Good news.
However I had the errors below. My strip had crashed; I had to unplug it and plug it back in.
2023-05-17T20:49:59+0200 \u003cerror\u003e index.js:15 (process.\u003canonymous\u003e) unhandledRejection catched: Promise {
\u003crejected\u003e Error: Not running
at new NodeError (node:internal/errors:399:5)
at healthCheck (node:dgram:911:11)
at Socket.close (node:dgram:743:3)
at /src/server/services/yeelight/node_modules/yeelight-awesome/src/discover.ts:177:29
at new Promise (\u003canonymous\u003e)
at Discover.destroy (/src/server/services/yeelight/node_modules/yeelight-awesome/src/discover.ts:174:16)
at Timeout._onTimeout (/src/server/services/yeelight/lib/device/discover.js:29:22)
at listOnTimeout (node:internal/timers:569:17)
at processTimers (node:internal/timers:512:7) {
code: 'ERR_SOCKET_DGRAM_NOT_RUNNING'
}
}
2023-05-17T20:49:59+0200 \u003cerror\u003e index.js:16 (process.\u003canonymous\u003e) Error: Not running
at new NodeError (node:internal/errors:399:5)
at healthCheck (node:dgram:911:11)
at Socket.close (node:dgram:743:3)
at /src/server/services/yeelight/node_modules/yeelight-awesome/src/discover.ts:177:29
at new Promise (\u003canonymous\u003e)
at Discover.destroy (/src/server/services/yeelight/node_modules/yeelight-awesome/src/discover.ts:174:16)
at Timeout._onTimeout (/src/server/services/yeelight/lib/device/discover.js:29:22)
at listOnTimeout (node:internal/timers:569:17)
at processTimers (node:internal/timers:512:7) {
code: 'ERR_SOCKET_DGRAM_NOT_RUNNING'
}
2023-05-17T20:53:11+0200 \u003cerror\u003e index.js:15 (process.\u003canonymous\u003e) unhandledRejection catched: Promise { \u003crejected\u003e 'Command timedout, no response from server.' }
2023-05-17T20:53:11+0200 \u003cerror\u003e index.js:16 (process.\u003canonymous\u003e) Command timedout, no response from server.
2023-05-17T20:53:27+0200 \u003cerror\u003e index.js:15 (process.\u003canonymous\u003e) unhandledRejection catched: Promise { \u003crejected\u003e 'Command timedout, no response from server.' }
2023-05-17T20:53:27+0200 \u003cerror\u003e index.js:16 (process.\u003canonymous\u003e) Command timedout, no response from server.
2023-05-17T20:54:04+0200 \u003cerror\u003e poll.js:59 (YeelightHandler.poll) Yeelight: Command timedout, no response from server.
2023-05-17T20:54:04+0200 \u003cerror\u003e device.poll.js:23 (DeviceManager.poll) There was an error while polling device yeelight-0x00000000156f48b5
2023-05-17T20:54:04+0200 \u003cerror\u003e device.poll.js:24 (DeviceManager.poll) NotFoundError: YEELIGHT_DEVICE_NOT_FOUND
at YeelightHandler.poll (/src/server/services/yeelight/lib/device/poll.js:61:11)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
2023-05-17T20:54:10+0200 \u003cerror\u003e poll.js:59 (YeelightHandler.poll) Yeelight: Connection timeout
2023-05-17T20:54:11+0200 \u003cerror\u003e index.js:20 (process.\u003canonymous\u003e) uncaughtException catched: uncaughtException
2023-05-17T20:54:11+0200 \u003cerror\u003e index.js:21 (process.\u003canonymous\u003e) Error: write after end
at new NodeError (node:internal/errors:399:5)
at _write (node:internal/streams/writable:322:11)
at Socket.Writable.write (node:internal/streams/writable:337:10)
at /src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:440:25
at new Promise (\u003canonymous\u003e)
at Yeelight.sendCommand (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:417:16)
at Yeelight.ping (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:389:21)
at Yeelight.triggerPing (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:527:18)
at Yeelight.wasConnected (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:490:18)
at Socket.\u003canonymous\u003e (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:456:22)
at Socket.emit (node:events:525:35)
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1479:10) {
code: 'ERR_STREAM_WRITE_AFTER_END'
}
2023-05-17T20:54:20+0200 \u003cerror\u003e poll.js:59 (YeelightHandler.poll) Yeelight: Connection timeout
2023-05-17T20:54:26+0200 \u003cerror\u003e index.js:20 (process.\u003canonymous\u003e) uncaughtException catched: uncaughtException
2023-05-17T20:54:26+0200 \u003cerror\u003e index.js:21 (process.\u003canonymous\u003e) Error: write after end
at new NodeError (node:internal/errors:399:5)
at _write (node:internal/streams/writable:322:11)
at Socket.Writable.write (node:internal/streams/writable:337:10)
at /src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:440:25
at new Promise (\u003canonymous\u003e)
at Yeelight.sendCommand (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:417:16)
at Yeelight.ping (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:389:21)
at Yeelight.triggerPing (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:527:18)
at Yeelight.wasConnected (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:490:18)
at Socket.\u003canonymous\u003e (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:456:22)
at Socket.emit (node:events:525:35)
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1479:10) {
code: 'ERR_STREAM_WRITE_AFTER_END'
}
2023-05-17T20:54:34+0200 \u003cerror\u003e poll.js:59 (YeelightHandler.poll) Yeelight: Command timedout, no response from server.
2023-05-17T20:54:34+0200 \u003cerror\u003e device.poll.js:23 (DeviceManager.poll) There was an error while polling device yeelight-0x00000000156f48b5
2023-05-17T20:54:34+0200 \u003cerror\u003e device.poll.js:24 (DeviceManager.poll) NotFoundError: YEELIGHT_DEVICE_NOT_FOUND
at YeelightHandler.poll (/src/server/services/yeelight/lib/device/poll.js:61:11)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
2023-05-17T20:54:44+0200 \u003cerror\u003e poll.js:59 (YeelightHandler.poll) Yeelight: Command timedout, no response from server.
2023-05-17T20:54:44+0200 \u003cerror\u003e device.poll.js:23 (DeviceManager.poll) There was an error while polling device yeelight-0x00000000156f48b5
2023-05-17T20:54:44+0200 \u003cerror\u003e device.poll.js:24 (DeviceManager.poll) NotFoundError: YEELIGHT_DEVICE_NOT_FOUND
at YeelightHandler.poll (/src/server/services/yeelight/lib/device/poll.js:61:11)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
2023-05-17T20:54:50+0200 \u003cerror\u003e poll.js:59 (YeelightHandler.poll) Yeelight: Connection timeout
2023-05-17T20:55:00+0200 \u003cinfo\u003e scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Checking calendar triggers at Wed, 17 May 2023 18:55:00 GMT
2023-05-17T20:55:00+0200 \u003cerror\u003e poll.js:59 (YeelightHandler.poll) Yeelight: Connection timeout
2023-05-17T20:55:21+0200 \u003cerror\u003e index.js:20 (process.\u003canonymous\u003e) uncaughtException catched: uncaughtException
2023-05-17T20:55:21+0200 \u003cerror\u003e index.js:21 (process.\u003canonymous\u003e) Error: write after end
at new NodeError (node:internal/errors:399:5)
at _write (node:internal/streams/writable:322:11)
at Socket.Writable.write (node:internal/streams/writable:337:10)
at /src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:440:25
at new Promise (\u003canonymous\u003e)
at Yeelight.sendCommand (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:417:16)
at Yeelight.ping (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:389:21)
at Yeelight.triggerPing (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:527:18)
at Yeelight.wasConnected (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:490:18)
at Socket.\u003canonymous\u003e (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:456:22)
at Socket.emit (node:events:525:35)
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1479:10) {
code: 'ERR_STREAM_WRITE_AFTER_END'
}
2023-05-17T20:55:33+0200 \u003cerror\u003e index.js:20 (process.\u003canonymous\u003e) uncaughtException catched: uncaughtException
2023-05-17T20:55:33+0200 \u003cerror\u003e index.js:21 (process.\u003canonymous\u003e) Error: write after end
at new NodeError (node:internal/errors:399:5)
at _write (node:internal/streams/writable:322:11)
at Socket.Writable.write (node:internal/streams/writable:337:10)
at /src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:440:25
at new Promise (\u003canonymous\u003e)
at Yeelight.sendCommand (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:417:16)
at Yeelight.ping (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:389:21)
at Yeelight.triggerPing (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:527:18)
at Yeelight.wasConnected (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:490:18)
at Socket.\u003canonymous\u003e (/src/server/services/yeelight/node_modules/yeelight-awesome/src/yeelight.ts:456:22)
at Socket.emit (node:events:525:35)
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1479:10) {
code: 'ERR_STREAM_WRITE_AFTER_END'
}
After restarting my strip and Gladys I have the two errors below that reoccur often but I can still control the strip from Gladys.
2023-05-17T21:44:32+0200 \u003cerror\u003e index.js:15 (process.\u003canonymous\u003e) unhandledRejection catched: Promise { \u003crejected\u003e 'Command timedout, no response from server.' }
2023-05-17T21:44:32+0200 \u003cerror\u003e index.js:16 (process.\u003canonymous\u003e) Command timedout, no response from server.
![]()
Iâll look into fixing that ![]()
Hi @Pti_Nico, I donât know where you are with your PR but I wonât be able to help you with the tests anymore because I just discovered (I had never looked, actually) that this LED strip is actually controlled by an ESP32.
So Iâm going to flash it with Tasm
No worries, itâs normal that you want to be able to order your headband ![]()
Regarding the PR, Iâm questioning its relevance more than 3 years after it was opened (and the oldest still open). I think Iâll let the Stale bot do its jobâŠ
If someone wants to pick it up, Iâll gladly give it to them.
Itâs a shame to give up after the work youâve done.
Besides, I was already controlling it via Node-Red.
Hello! Iâm responding to this message â I understand that all these unsuccessful attempts are frustrating ![]()
Are you asking the question because youâre not sure thereâs demand for the PR, or because youâre not sure the PR will ever work?
I have no doubt that it works, but given the number of users fighting to test it, I figure it must be highly anticipated (3 years)⊠![]()
Moreover, the library used (still at v1.1.0) hasnât evolved for more than 2 years and the Xiaomi firmwares (previously compatible with Yeelight) no longer allow control over the local network; needless to say, itâs better to migrate to a more long-term solutionâŠ

