AntonioMeireles / homebridge-vieramatic

Homebridge plugin for Panasonic™ Viera™ TVs (includes support for 2018 and later models)
Apache License 2.0
43 stars 9 forks source link

Plugin seems broken(empty) after HomeKit architecture upgrade (iOS 16.4) #118

Open rescph opened 1 year ago

rescph commented 1 year ago

Hi :)

After the recent upgrade to the new HomeKit Architecture introduced in iOS 16.4 https://support.apple.com/en-us/HT213481

The plugin has stopped working. I can still go trough to the setup process with no issues, but after pressing save the plugin is blank. The TV is not there anymore.

I have reinstalled both homebridge and the plugin, that didn't solve the issue.

I have used the plugin for years without any serious issues, and it simply just stopped working from on day to another.

- Synology NAS
- DSM 7.1
- NodeJS version 16.16.0
- Homebridge version 1.6.0
- specific vieramatic version being used  v4.0.50
- Viera TV(s) model(s) TX-65GZ950E

Homekit logs:

[4/2/2023, 8:40:46 AM] [Homebridge UI] [homebridge-vieramatic] Incoming Request: /ping [4/2/2023, 8:40:46 AM] [Homebridge UI] [homebridge-vieramatic] ---> (ping) 192.168.0.23 true [4/2/2023, 8:40:46 AM] [Homebridge UI] [homebridge-vieramatic] Incoming Request: /specs [4/2/2023, 8:40:46 AM] [Homebridge UI] [homebridge-vieramatic] ---> (specs) 192.168.0.23 [4/2/2023, 8:40:46 AM] [Homebridge UI] [homebridge-vieramatic] found a 'Panasonic VIErA' TV (TX-65GZ960E) at '192.168.0.23' (requires crypto for communication). [4/2/2023, 8:40:46 AM] [Homebridge UI] [homebridge-vieramatic] Incoming Request: /pin [4/2/2023, 8:40:46 AM] [Homebridge UI] [homebridge-vieramatic] ---> (pin request) 192.168.0.23 [4/2/2023, 8:40:46 AM] [Homebridge UI] [homebridge-vieramatic] found a 'Panasonic VIErA' TV (TX-65GZ960E) at '192.168.0.23' (requires crypto for communication). [4/2/2023, 8:40:52 AM] [Homebridge UI] [homebridge-vieramatic] Incoming Request: /pair ---> (pairing request) 192.168.0.23 7210 x/eDIM63iWxeFono5Mv1bA== [4/2/2023, 8:40:52 AM] [Homebridge UI] [homebridge-vieramatic] found a 'Panasonic VIErA' TV (TX-65GZ960E) at '192.168.0.23' (requires crypto for communication). [4/2/2023, 8:40:52 AM] [Homebridge UI] [homebridge-vieramatic] ---> (pair) { value: [Object: null prototype] { appId: 'AY0mhQARMqPibQ==', key: 'RkUnr5t0ILw7GXZIbizhDQ==' } } [4/2/2023, 8:40:52 AM] [Homebridge UI] [homebridge-vieramatic] Incoming Request: /specs [4/2/2023, 8:40:52 AM] [Homebridge UI] [homebridge-vieramatic] ---> (specs) 192.168.0.23 [4/2/2023, 8:40:52 AM] [Homebridge UI] [homebridge-vieramatic] found a 'Panasonic VIErA' TV (TX-65GZ960E) at '192.168.0.23' (requires crypto for communication). [4/2/2023, 8:40:52 AM] [Homebridge UI] [homebridge-vieramatic] found a 'Panasonic VIErA' TV (TX-65GZ960E) at '192.168.0.23' (requires crypto for communication). [4/2/2023, 8:40:54 AM] [Homebridge UI] Changes to config.json saved. [4/2/2023, 8:40:54 AM] [Homebridge UI] [homebridge-vieramatic] Terminating child process... [4/2/2023, 8:40:54 AM] [Homebridge UI] [homebridge-vieramatic] Child process ended [4/2/2023, 8:40:58 AM] [Homebridge UI] [homebridge-vieramatic] Terminating child process... [4/2/2023, 8:40:58 AM] [Homebridge UI] [homebridge-vieramatic] Child process ended

  1. your homebridge's config.json contents.

{ "bridge": { "name": "Homebridge 59D5", "username": "0E:42:BC:2A:9D:64", "port": 51899, "pin": "951-42-864", "bind": [ "eth0" ] }, "accessories": [], "platforms": [ { "name": "Config", "port": 8581, "platform": "config" } ] }

  1. the contents of accessories/vieramatic.json (path is relative to homebridge's datadir)

{ "platform": "PanasonicVieraTV", "name": "PanasonicVieraTV" }

Hope you can look into this and please get back to me so I can help you further to investigate this issue.

Thank you. Kind regards.

AntonioMeireles commented 1 year ago

Hi,

ok, this one I was able to somewhat reproduce (just upgraded to new 'arch') ... some quick questions ...

a) do you have AppleTVs (or something from Apple that can act as an homekit hub) around? Are they all updated? b) what mDns advertiser are you using on homebridge's config.json? if using ciao stop using it.

messing with the two above factors seems to have smoothed things here, but too early yet to tell if they are enough.

Can you please report on your side?

Thanks in advance and have a great weekend!

rescph commented 1 year ago

Hi

Im using Bonjour HAP as mDNS Advertiser. I just tried all the other mDNS options, adding my TV with the IP address, PIN code accepted and TV showing "parring complete" on the screen. Every time the plugin just returns blank. Totally empty.

I have both an Apple TV 4K and a HomePod mini. They are all on the latest software version (non beta). The problem has been there since the last couple of public releases of TvOS, iOS and AudioOS.

I thought it was because of the new HomeKit architecture, but im not sure if that's the case at all?

Right now it seems to be related to homebridge it self?

Please let me know if I can do more to help you out :)

Thanks for looking into this and have a great weekend too!

sam-cheuk commented 1 year ago

Hi @AntonioMeireles, I've also got the same issue after HomeKit Architecture upgraded. Are you currently working on a fix for this issue, and if so, do you have an estimated timeframe for when the fix will be available?

rescph commented 1 year ago

You can temporarily make the plug-in work if you enable debug and get the encryption key from there, and then edit the config manually.

daciand commented 6 months ago

I had exactly the same issue with my 2018 Panasonic OLED but I managed to fix it by doing what @rescph wrote in his comment above.

zylantha commented 4 months ago

For everybody else's benefit, here is what you need to do now that this plugin's configuration is broken:

Take these two lines (from the debug output): appId: 'AY0mhQARMqPibQ==', key: 'RkUnr5t0ILw7GXZIbizhDQ=='

and put them into your device configuration in the tvs array as follows (noting that "key" is renamed to "encKey"): "appId": "AY0mhQARMqPibQ==", "encKey": "RkUnr5t0ILw7GXZIbizhDQ=="

jat80 commented 4 months ago

Thanks @zylantha and @rescph

For complete noobs like me your config should look something like this with specified HDMI inputs as well if needed:

{ "platform": "PanasonicVieraTV", "name": "PanasonicVieraTV", "tvs": [ { "friendlyName": "Panasonic TV", "ipAddress": "YOUR TV'S IP ADDRESS", "appId": "YOUR APPID", "encKey": "YOUR ENC KEY HERE", "hdmiInputs": [ { "id": "1", "name": "HDMI 1 INPUT NAME" }, { "id": "2", "name": "HDMI 2 INPUT NAME" }, { "id": "3", "name": "HDMI 3 INPUT NAME" } ] } ] }