jbree / homebridge-cec-accessory

Homebridge support for CEC devices over HDMI
MIT License
19 stars 6 forks source link

Not working after updating to ios11 #6

Open bains88 opened 7 years ago

bains88 commented 7 years ago

Hello,

Are you also facing this issue? After iOS update (ios11) when i tried adding this plugin, was able to detect the device that I configured but its status always remain "Not Responding".... when i tried to look into the status of service i saw below logs: ● homebridge.service - Node.js HomeKit Server Loaded: loaded (/etc/systemd/system/homebridge.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2017-10-01 21:38:36 UTC; 3h 20min ago Main PID: 1278 (homebridge) CGroup: /system.slice/homebridge.service └─1278 homebridge

Oct 02 00:58:50 raspberrypi homebridge[1278]: at Timeout._onTimeout (/usr/lib/node_modules/homebridge-cec-accessory/node_modules/cec-promise/index.js:16:12) Oct 02 00:58:50 raspberrypi homebridge[1278]: at ontimeout (timers.js:386:14) Oct 02 00:58:50 raspberrypi homebridge[1278]: at tryOnTimeout (timers.js:250:5) Oct 02 00:58:50 raspberrypi homebridge[1278]: at Timer.listOnTimeout (timers.js:214:5) Oct 02 00:58:50 raspberrypi homebridge[1278]: [10/2/2017, 12:58:50 AM] [TV] getOn: 224 Oct 02 00:58:50 raspberrypi homebridge[1278]: [10/2/2017, 12:58:50 AM] [TV] Error: cec-client never reported ready Oct 02 00:58:50 raspberrypi homebridge[1278]: at Timeout._onTimeout (/usr/lib/node_modules/homebridge-cec-accessory/node_modules/cec-promise/index.js:16:12) Oct 02 00:58:50 raspberrypi homebridge[1278]: at ontimeout (timers.js:386:14) Oct 02 00:58:50 raspberrypi homebridge[1278]: at tryOnTimeout (timers.js:250:5) Oct 02 00:58:50 raspberrypi homebridge[1278]: at Timer.listOnTimeout (timers.js:214:5)

I also scanned the devices using cec-client, and it is detecting the connected tv. Its a this year's samsung TV and was working fine with this plug-in before the update. Any clue what could be wrong? Thanks.

jbree commented 7 years ago

thanks for reporting this! i’m out of town, but i’ll look into it as soon as i can.

loftux commented 7 years ago

Having this issue as well, tried to increase timeout in node_modules/cec-promise/index.js (in let ready = new Promise), just takes longer for the issue to happen. Changed timeout from 3000 to 10000 and also tested with 30000.

cec-client can turn on/off tv just fine. Tested with echo 'standby 0' | cec-client -s RPI echo 'on 0' | cec-client -s RPI

EDIT: Wasn't the timeout I was changing there, tried changing the timeouts in the declaration at start of file, still didn't help.

loftux commented 7 years ago

Been testing a bit more, and tried to in dist/controls/Controls.js set this.senderNibble = 1; This was after checking what the cec-client gives for reporting power status

tx 10:8f
TRAFFIC: [           55658] << 10:8f
waiting for input
TRAFFIC: [           55805] >> 01:90:00
DEBUG:   [           55805] >> TV (0) -> Recorder 1 (1): report power status (90)

Still an error:

 [2017-10-18 19:17:57] [TV] getOn: 16
 [2017-10-18 19:17:57] [TV] Error: cec-client never reported ready
 at Timeout._onTimeout (/usr/lib/node_modules/homebridge-cec-accessory/node_modules/cec-
 promise/index.js:16:12)
 at ontimeout (timers.js:471:11)
 at tryOnTimeout (timers.js:306:5)
 at Timer.listOnTimeout (timers.js:266:5)
jbree commented 7 years ago

Thanks for the report and the testing. This is still on my radar, I just haven't been able to circle back to it yet.

Will need to look into the node-cec module and figure out why it isn't sending the ready event. If you care to mess with it further, try making a simple node package that requires node-cec and handles that ready event. It will be curious if it works when we aren't spawning this through homebridge.

Sometimes cec-client processes get spawned but not properly killed, so check that you're killing off orphaned processes.

fafoulon commented 6 years ago

Hi, I also have the same error since I updated to 0.3.0

thilojaeggi commented 5 years ago

Anything new? Same problem