MaxvandeLaar / homey-webos-plus

Improved LG WebOS integration for Homey
GNU General Public License v3.0
27 stars 11 forks source link

Power on issue #17

Closed kaohlive closed 4 years ago

kaohlive commented 4 years ago

So if I use the remote to power on the 2.0 version I get 1 out of 2 times an immediate power down again. I mean a real shutdown not just displayed as off in the app. This also happens when power on from the app. In both cases the app is aware that the tv is off.

kaohlive commented 4 years ago

Here is a log off the power on and auto back off issue:

2020-03-26 23:30:03 [log] [ManagerDrivers] [webos_plus] [0] toggleOnOff: Called true 2020-03-26 23:30:03 [log] [ManagerDrivers] [webos_plus] [0] toggleOnOff: Try to turn the tv on 2020-03-26 23:30:03 [log] [ManagerDrivers] [webos_plus] [0] _turnOn: Send request to turn on (WoL) with mac address 78:5d:c8:14:2e:e3 2020-03-26 23:30:03 [log] [ManagerDrivers] [webos_plus] [0] _turnOn: TV turned on successfully 2020-03-26 23:30:03 [log] [ManagerDrivers] [webos_plus] [0] toggleOnOff: TV turned on. Set capability onoff to true 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Suspend' } 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to something other than active suspend 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received off 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Suspend', processing: 'Prepare Resume' } 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to something other than active suspend 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received off 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Suspend', processing: 'LastInput Ready', powerOnReason: 'wakeOnLan' } 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to something other than active suspend 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received off 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Suspend', processing: 'Screen On' } 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to something other than active suspend 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received off 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Active' } 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to active 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received on 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.applicationManager/getForegroundAppInfo 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _appListener: App/input changed to com.webos.app.hdmi2 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] appListener: App/input changed from to com.webos.app.hdmi2 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] appListener: Store currentApp set to com.webos.app.hdmi2 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] appListener: Flow trigger app/input changed 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] appListener: Gather media screen information for com.webos.app.hdmi2 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _appList: Send request to retrieve all apps/inputs 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.apiadapter/audio/getSoundOutput 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _soundOutputListener: Sound output changed to external_speaker 2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] soundOutputListener: Sound output changed from external_speaker to external_speaker 2020-03-26 23:30:21 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.applicationManager/listLaunchPoints 2020-03-26 23:30:21 [err] [ManagerDrivers] [webos_plus] [0] ssap://com.webos.applicationManager/listLaunchPoints Error: timeout at Timeout._onTimeout (/drivers/webos_plus/lgtv2/lgtv2.js:222:18) at ontimeout (timers.js:498:11) at tryOnTimeout (timers.js:323:5) at Timer.listOnTimeout (timers.js:290:5) 2020-03-26 23:30:21 [err] [ManagerDrivers] [webos_plus] [0] _appList: ssap://com.webos.applicationManager/listLaunchPoints with result: undefined 2020-03-26 23:30:21 [err] [ManagerDrivers] [webos_plus] [0] Error: timeout at Timeout._onTimeout (/drivers/webos_plus/lgtv2/lgtv2.js:222:18) at ontimeout (timers.js:498:11) at tryOnTimeout (timers.js:323:5) at Timer.listOnTimeout (timers.js:290:5) 2020-03-26 23:30:21 [err] [ManagerDrivers] [webos_plus] [0] appListener: No Apps/inputs found 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.applicationManager/getForegroundAppInfo 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _appListener: App/input changed to 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] appListener: App/input changed from com.webos.app.hdmi2 to 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] appListener: Store currentApp set to 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] appListener: Flow trigger app/input changed 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] appListener: Gather media screen information for 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _appList: Send request to retrieve all apps/inputs 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Active', processing: 'Request Power Off' } 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to active 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received on 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Active', processing: 'Request Active Standby' } 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to active 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received on 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Active', processing: 'Request Suspend' } 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to active 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received on 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Active', processing: 'Prepare Suspend' } 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to active 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received on 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.applicationManager/listLaunchPoints 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _appList: Retrieved all apps/inputs successfully 2020-03-26 23:30:35 [log] [ManagerDrivers] [webos_plus] [0] _appList: Mapped all apps/inputs and resolve 2020-03-26 23:30:35 [err] [ManagerDrivers] [webos_plus] [0] appListener: No app found for

So the code feels it received a poweroff request, but I did not send one. This one was turning on from the app.

kaohlive commented 4 years ago

The only thing that strikes me is the timeout i see on the getlaunchpoints. If I go to the flow and create an action card and select an app to luanch then I see the same call in the log with the response. No timeout then.

kaohlive commented 4 years ago

Here is a log when the TV is turned on using the remote: 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Suspend' } 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to something other than active suspend 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received off 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Suspend', processing: 'Prepare Resume' } 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to something other than active suspend 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received off 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Suspend', processing: 'LastInput Ready', powerOnReason: 'remoteKey' } 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to something other than active suspend 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received off 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Suspend', processing: 'Screen On' } 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to something other than active suspend 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received off 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Active' } 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to active 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received on 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.applicationManager/getForegroundAppInfo 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _appListener: App/input changed to com.webos.app.hdmi2 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] appListener: App/input changed from to com.webos.app.hdmi2 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] appListener: Store currentApp set to com.webos.app.hdmi2 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] appListener: Flow trigger app/input changed 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] appListener: Gather media screen information for com.webos.app.hdmi2 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _appList: Send request to retrieve all apps/inputs 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.apiadapter/audio/getSoundOutput 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _soundOutputListener: Sound output changed to external_speaker 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] soundOutputListener: Sound output changed from external_speaker to external_speaker 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.applicationManager/listLaunchPoints 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _appList: Retrieved all apps/inputs successfully 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _appList: Mapped all apps/inputs and resolve 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] appListener: App found for 'com.webos.app.hdmi2' HDMI2 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] appListener: Try to get the current channel to gather more media screen information for 'com.webos.app.hdmi2' HDMI2 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _channelCurrent: Send request to get the current channel 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Active', processing: 'Request Power Off' } 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to active 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received on 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Active', processing: 'Request Active Standby' } 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to active 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received on 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Active', processing: 'Request Suspend' } 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to active 2020-03-26 23:42:42 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received on 2020-03-26 23:42:43 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState 2020-03-26 23:42:43 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Active', processing: 'Prepare Suspend' } 2020-03-26 23:42:43 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to active 2020-03-26 23:42:43 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received on 2020-03-26 23:42:43 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.applicationManager/getForegroundAppInfo 2020-03-26 23:42:43 [log] [ManagerDrivers] [webos_plus] [0] _appListener: App/input changed to 2020-03-26 23:42:43 [log] [ManagerDrivers] [webos_plus] [0] appListener: App/input changed from com.webos.app.hdmi2 to 2020-03-26 23:42:43 [log] [ManagerDrivers] [webos_plus] [0] appListener: Store currentApp set to 2020-03-26 23:42:43 [log] [ManagerDrivers] [webos_plus] [0] appListener: Flow trigger app/input changed 2020-03-26 23:42:43 [log] [ManagerDrivers] [webos_plus] [0] appListener: Gather media screen information for 2020-03-26 23:42:43 [log] [ManagerDrivers] [webos_plus] [0] _appList: Send request to retrieve all apps/inputs 2020-03-26 23:42:43 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://tv/getCurrentChannel 2020-03-26 23:42:43 [log] [ManagerDrivers] [webos_plus] [0] _channelCurrent: Success getting channel 2020-03-26 23:42:43 [log] [ManagerDrivers] [webos_plus] [0] appListener: Channel found for 'com.webos.app.hdmi2' HDMI2. Set capability speaker_track to 'undefined | undefined' 2020-03-26 23:42:43 [log] [ManagerDrivers] [webos_plus] [0] appListener: Set image for 'com.webos.app.hdmi2' HDMI2 (http://*****/resources/37cdb71f66f04ac13ba5d255e5aef1973a0ddc18/HDMI_2.png) 2020-03-26 23:42:58 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.applicationManager/listLaunchPoints 2020-03-26 23:42:58 [err] [ManagerDrivers] [webos_plus] [0] ssap://com.webos.applicationManager/listLaunchPoints Error: timeout at Timeout._onTimeout (/drivers/webos_plus/lgtv2/lgtv2.js:222:18) at ontimeout (timers.js:498:11) at tryOnTimeout (timers.js:323:5) at Timer.listOnTimeout (timers.js:290:5) 2020-03-26 23:42:58 [err] [ManagerDrivers] [webos_plus] [0] _appList: ssap://com.webos.applicationManager/listLaunchPoints with result: undefined 2020-03-26 23:42:58 [err] [ManagerDrivers] [webos_plus] [0] Error: timeout at Timeout._onTimeout (/drivers/webos_plus/lgtv2/lgtv2.js:222:18) at ontimeout (timers.js:498:11) at tryOnTimeout (timers.js:323:5) at Timer.listOnTimeout (timers.js:290:5) 2020-03-26 23:42:58 [err] [ManagerDrivers] [webos_plus] [0] appListener: No Apps/inputs found

MaxvandeLaar commented 4 years ago

@kaohlive, judging from the logs I think it is logical (unwanted) behaviour. I have two LG tv's at home which I can test with and but work great. However, they both takes ages to connect when I power them off. Yours on the other hand seems much faster. Let me explain it with a small piece of your logging from your first comment.

Here we can see that you powered the tv on with the app since toggleOnOff is called. Next a WoL will be send which resolves as success and the tv is powered on. This means the TV is turned on (can take a while if slow tv) and set the capability ono to true since it is on. All good so far.

2020-03-26 23:30:03 [log] [ManagerDrivers] [webos_plus] [0] toggleOnOff: Called true
2020-03-26 23:30:03 [log] [ManagerDrivers] [webos_plus] [0] toggleOnOff: Try to turn the tv on
2020-03-26 23:30:03 [log] [ManagerDrivers] [webos_plus] [0] _turnOn: Send request to turn on (WoL) with mac address 78:5d:c8:14:2e:e3
2020-03-26 23:30:03 [log] [ManagerDrivers] [webos_plus] [0] _turnOn: TV turned on successfully
2020-03-26 23:30:03 [log] [ManagerDrivers] [webos_plus] [0] toggleOnOff: TV turned on. Set capability onoff to true

Now the unwanted behaviour begins... the _powerStateListener has a subscription on the api that is gets the tv state and thus listens for changes. The powerStateListener (without underscore) calls the _powerStateListener and provides two callbacks handleOn and handleOff. Theres are called by _powerStateListener if it thinks the tv state changed from on to off.

My code in _powerStateListener logic is if (state === 'Active') { tv is on } else {tv is off}. However, from your log, we can see that the first state the code receives is 'Suspend' which is not active. So the _powerStateListener calls the handleOff callback from powerStateListener is called. This callback sets the capability to off.

2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState
2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true, state: 'Suspend' }
2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received off
2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _handleResponse: ssap://com.webos.service.tvpower/power/getPowerState
2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: Power state changed { returnValue: true,
state: 'Suspend',
processing: 'Prepare Resume' }
2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] _powerStateListener: TV changed to something other than active suspend
2020-03-26 23:30:06 [log] [ManagerDrivers] [webos_plus] [0] powerStateListener: received off
...

The thing that strikes me though, in the log from your first comment, the Power Off api is is never called by the webos app. So it is hard for me to think the webos app is responsible for that, but for now, let us not focus on that.

The other log shows the same behaviour as the first log. The difficulty will be, the first state change received is 'Suspend' without any progress argument letting me know it will turn on. I might reintroduce a timing mechanisme that waits a few seconds to check if another powerStateChange is called before calling the handleOff callback.

MaxvandeLaar commented 4 years ago

@kaohlive could you try https://github.com/MaxvandeLaar/homey-webos-plus/releases/tag/v2.0.0-rc2?

MaxvandeLaar commented 4 years ago

@kaohlive can we close this? Or do you still experience issues with the release of v2.0.0?

kaohlive commented 4 years ago

close it! 👍👍