openhab / openhab-addons

Add-ons for openHAB
https://www.openhab.org/
Eclipse Public License 2.0
1.88k stars 3.59k forks source link

[Yeelight] Add support for ceiling11 devices #11246

Open tmp-hallenser opened 3 years ago

tmp-hallenser commented 3 years ago

I recently purchased a Yeelight YLXD41YL light and am trying to integrate it into Openhab. Unfortunately, it's not supported by the Yeelight binding. Hence, I gave a PR a short ( #11245) - but I'm not experienced with Openhab nor with Java.

How can I test my PR on my docker environment? Any obvious corrections needed?

Any support highly appreciated!


Here are some logs which I based on code changes on:

The device is identified as follows by the python yeelight library: [{'ip': u'192.168.XXX.YYY', 'port': 55443, 'capabilities': {u'hue': u'0', u'color_mode': u'2', u'name': u'', u'power': u'on', u'support': u'get_prop set_default set_power toggle set_bright set_scene cron_add cron_get cron_del start_cf stop_cf set_ct_abx set_name set_adjust adjust_bright adjust_ct', u'rgb': u'0', u'fw_ver': u'19', u'bright': u'66', u'model': u'ceiling11', u'ct': u'4000', u'id': u'0x000000001234aa56', u'sat': u'0'}}]

and Openhab reports the following information:

21:36:13.693 [DEBUG] [t.internal.lib.services.DeviceManager] - DeviceManager: got bulbInfo: {Ext=, Server=POSIX UPnP/1.0 YGLC/1, color_mode=2, sat=0, bright=80, rgb=0, Date=, ct=2700, Cache-Control=max-age=3600, name=, hue=0, model=ceiling11, id=0x000000001234aa56, power=on, fw_ver=19, support=get_prop set_default set_power toggle set_bright set_scene cron_add cron_get cron_del start_cf stop_cf set_ct_abx set_name set_adjust adjust_bright adjust_ct, Location=yeelight://192.168.XXX.YYY:55443} 21:36:13.706 [DEBUG] [t.internal.lib.services.DeviceManager] - Error getting ip addresses: No enum constant org.openhab.binding.yeelight.internal.lib.enums.DeviceType.ceiling11 java.lang.IllegalArgumentException: No enum constant org.openhab.binding.yeelight.internal.lib.enums.DeviceType.ceiling11 at java.lang.Enum.valueOf(Enum.java:240) ~[?:?] at org.openhab.binding.yeelight.internal.lib.enums.DeviceType.valueOf(DeviceType.java:1) ~[?:?] at org.openhab.binding.yeelight.internal.lib.device.DeviceFactory.build(DeviceFactory.java:34) ~[?:?] at org.openhab.binding.yeelight.internal.lib.device.DeviceFactory.build(DeviceFactory.java:59) ~[?:?] at org.openhab.binding.yeelight.internal.lib.services.DeviceManager.lambda$1(DeviceManager.java:175) ~[?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at java.lang.Thread.run(Thread.java:829) [?:?] 21:36:23.434 [DEBUG] [t.internal.lib.services.DeviceManager] - Error timeout: Receive timed out java.net.SocketTimeoutException: Receive timed out at java.net.PlainDatagramSocketImpl.receive0(Native Method) ~[?:?] at java.net.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:181) ~[?:?] at java.net.DatagramSocket.receive(DatagramSocket.java:814) ~[?:?] at org.openhab.binding.yeelight.internal.lib.services.DeviceManager.lambda$1(DeviceManager.java:141) ~[?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at java.lang.Thread.run(Thread.java:829) [?:?] 21:36:23.450 [DEBUG] [t.internal.lib.services.DeviceManager] - Error timeout: Receive timed out java.net.SocketTimeoutException: Receive timed out at java.net.PlainDatagramSocketImpl.receive0(Native Method) ~[?:?] at java.net.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:181) ~[?:?] at java.net.DatagramSocket.receive(DatagramSocket.java:814) ~[?:?] at org.openhab.binding.yeelight.internal.lib.services.DeviceManager.lambda$1(DeviceManager.java:141) ~[?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at java.lang.Thread.run(Thread.java:829) [?:?] 21:36:23.460 [DEBUG] [t.internal.lib.services.DeviceManager] - Error timeout: Receive timed out java.net.SocketTimeoutException: Receive timed out at java.net.PlainDatagramSocketImpl.receive0(Native Method) ~[?:?] at java.net.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:181) ~[?:?] at java.net.DatagramSocket.receive(DatagramSocket.java:814) ~[?:?] at org.openhab.binding.yeelight.internal.lib.services.DeviceManager.lambda$1(DeviceManager.java:141) ~[?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at java.lang.Thread.run(Thread.java:829) [?:?] 21:36:23.509 [DEBUG] [t.internal.lib.services.DeviceManager] - Error timeout: Receive timed out java.net.SocketTimeoutException: Receive timed out at java.net.PlainDatagramSocketImpl.receive0(Native Method) ~[?:?] at java.net.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:181) ~[?:?] at java.net.DatagramSocket.receive(DatagramSocket.java:814) ~[?:?] at org.openhab.binding.yeelight.internal.lib.services.DeviceManager.lambda$1(DeviceManager.java:141) ~[?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at java.lang.Thread.run(Thread.java:829) [?:?]

goopilot commented 1 year ago

@tmp-hallenser are you able to test? Link to the binding in the PR https://github.com/openhab/openhab-addons/pull/14668

tmp-hallenser commented 1 year ago

I don’t have a dev environment any more, but could test a docker image.