@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…

