Closed alex-levashev closed 2 years ago
philips_js documentation philips_js source (message by IssueLinks)
Hey there @elupus, mind taking a look at this issue as it has been labeled with an integration (philips_js
) you are listed as a code owner for? Thanks!
(message by CodeOwnersMention)
Please update the description. You said it turns off 5nminutes after you turn of the TV.
This is normal behaviour for the TV. You need wakelock the TV or add WOL commands to wake it again.
I am om 2012.12.10 and Home Assistant Os 7.2 I have 4 philips android tv's 3 philips 32PFS6402/12 and 1 philips 55PUS8303/12 If I turn on the TV's the integration detects all 4. After 5 minutes leaving all TV on the integration shows the 3 32" as "turned off" but the 55" is still shown as "turned on". Turning all 4 TV's off on the remote and its still possible to turn all 4 on again with the integration. Turning all 4 TV's off on the remote and on again with the remote the integration detects that all 4 are "turned on" After 5 minutes the 3 32" shows as "turn off" again but not the 55"
beside the deep sleep issue my 55" tv is working fine but my 32" only shows as ON for 5 minutes.
All TV's has to be turned on with the remote once a days because of the deep sleep issue with philips.
Please update the description. You said it turns off 5nminutes after you turn of the TV.
This is normal behaviour for the TV. You need wakelock the TV or add WOL commands to wake it again.
Sorry but it seems not normal to me. Let’s describe it point by point.
It seems not really working as expected for me.
That does not seem correct no. Can you turn on debug logs.
haphilipsjs: debug homeassistant.components.philips_js: debug
That does not seem correct no. Can you turn on debug logs.
haphilipsjs: debug homeassistant.components.philips_js: debug
These lines should be in configuration yaml, right?
For the logger component: https://www.home-assistant.io/integrations/logger/
You can also turn it on temporarily with the service.
Hey,
Here is a part of the log:
2022-01-20 22:28:26 DEBUG (MainThread) [haphilipsjs] Get succeded: powerstate -> {"powerstate":"On"} 2022-01-20 22:28:26 DEBUG (MainThread) [haphilipsjs] Get succeded: audio/volume -> {"muted":false,"current":20,"min":0,"max":60} 2022-01-20 22:28:26 DEBUG (MainThread) [haphilipsjs] Get succeded: activities/tv -> {"channel":{"ccid":842,"preset":28,"name":"CT24HD"},"channelList":{"id":"1","version":"16"}} 2022-01-20 22:28:26 DEBUG (MainThread) [haphilipsjs] Get succeded: activities/current -> {"component":{"packageName":"com.kinopub","className":"com.kinopub.activity.LaunchActivity"}} 2022-01-20 22:28:26 DEBUG (MainThread) [haphilipsjs] Get succeded: context -> {"level1":"NA","level2":"NA","level3":"NA","data":"NA"} 2022-01-20 22:28:26 DEBUG (MainThread) [haphilipsjs] Get failed: screenstate -> 404 <html> 2022-01-20 22:28:30 INFO (MainThread) [homeassistant.components.automation.ubrat_login_failed] Убрать Login failed : Running automation actions 2022-01-20 22:28:30 INFO (MainThread) [homeassistant.components.automation.ubrat_login_failed] Убрать Login failed : Executing step call service 2022-01-20 22:28:31 DEBUG (MainThread) [haphilipsjs] TV not available: ConnectionFailure(ConnectTimeout(''))
Full log is attached:
Looks like ambilight requests keep on crashing on the TV. Do you have ambilight on your TV? is it in some special mode?
Ambilight is not available on my tv
Ok. Your TV lists the following:
"ambilight": ["LoungeLight"],
While mine lists:
"ambilight": ["LoungeLight", "Hue", "Ambilight", "HueStreaming"],
It seem to support some sort of lounge light, but we should probably disable asking for ambilight data it doesn't list "Ambilight" in that section. No idea if that would solve your issue thou.
If you are able to patch the haphilipsjs component either by finding the python files on your install or cloning repo/modify and pip install the custom version, you can try and remove the following lines:
https://github.com/danielperna84/ha-philipsjs/blob/16e363cde45b9f0c38fbd501560864c620606696/haphilipsjs/__init__.py#L713-L716 https://github.com/danielperna84/ha-philipsjs/blob/16e363cde45b9f0c38fbd501560864c620606696/haphilipsjs/__init__.py#L703-L704
And see if that solves your issue.l
Seems it doesn't solve the issue:
Here is the log, no 404's so far, but still conectiontimeout.
2022-01-22 19:22:42 DEBUG (MainThread) [haphilipsjs] Post succeded: {'current': 15, 'muted': False} -> 2022-01-22 19:22:45 INFO (MainThread) [homeassistant.components.automation.ubrat_login_failed] Убрать Login failed : Running automation actions 2022-01-22 19:22:45 INFO (MainThread) [homeassistant.components.automation.ubrat_login_failed] Убрать Login failed : Executing step call service 2022-01-22 19:22:45 DEBUG (MainThread) [haphilipsjs] Post succeded: {'current': 24, 'muted': False} -> 2022-01-22 19:22:45 DEBUG (MainThread) [haphilipsjs] Get succeded: powerstate -> {"powerstate":"On"} 2022-01-22 19:22:45 DEBUG (MainThread) [haphilipsjs] Get succeded: audio/volume -> {"muted":false,"current":24,"min":0,"max":60} 2022-01-22 19:22:45 DEBUG (MainThread) [haphilipsjs] Get succeded: activities/tv -> {"channel":{"ccid":842,"preset":28,"name":"CT24HD"},"channelList":{"id":"1","version":"16"}} 2022-01-22 19:22:46 DEBUG (MainThread) [haphilipsjs] Get succeded: activities/current -> {"component":{"packageName":"com.ottplay.ottplay","className":"com.ottplay.ottplay.SplashScreenActivity"}} 2022-01-22 19:22:46 DEBUG (MainThread) [haphilipsjs] Get succeded: context -> {"level1":"NA","level2":"NA","level3":"NA","data":"NA"} 2022-01-22 19:22:46 DEBUG (MainThread) [homeassistant.components.philips_js] Finished fetching philips_js data in 1.582 seconds (success: True) 2022-01-22 19:22:52 WARNING (MainThread) [homeassistant.components.camera] Updating xiaomi_cloud_map_extractor camera took longer than the scheduled update interval 0:00:05 2022-01-22 19:23:00 INFO (MainThread) [homeassistant.components.automation.ubrat_login_failed] Убрать Login failed : Running automation actions 2022-01-22 19:23:00 INFO (MainThread) [homeassistant.components.automation.ubrat_login_failed] Убрать Login failed : Executing step call service 2022-01-22 19:23:02 WARNING (MainThread) [homeassistant.components.camera] Updating xiaomi_cloud_map_extractor camera took longer than the scheduled update interval 0:00:05 2022-01-22 19:23:09 WARNING (MainThread) [homeassistant.components.philips_js] Failed to fetch image 2022-01-22 19:23:09 WARNING (MainThread) [homeassistant.components.philips_js] Failed to fetch image 2022-01-22 19:23:09 WARNING (MainThread) [homeassistant.components.philips_js] Failed to fetch image 2022-01-22 19:23:12 WARNING (MainThread) [homeassistant.components.camera] Updating xiaomi_cloud_map_extractor camera took longer than the scheduled update interval 0:00:05 2022-01-22 19:23:14 WARNING (MainThread) [homeassistant.components.philips_js] Failed to fetch image 2022-01-22 19:23:15 INFO (MainThread) [homeassistant.components.automation.ubrat_login_failed] Убрать Login failed : Running automation actions 2022-01-22 19:23:15 INFO (MainThread) [homeassistant.components.automation.ubrat_login_failed] Убрать Login failed : Executing step call service 2022-01-22 19:23:15 WARNING (MainThread) [homeassistant.components.philips_js] Failed to fetch image 2022-01-22 19:23:15 WARNING (MainThread) [homeassistant.components.philips_js] Failed to fetch image 2022-01-22 19:23:19 WARNING (MainThread) [homeassistant.components.philips_js] Failed to fetch image 2022-01-22 19:23:20 WARNING (MainThread) [homeassistant.components.philips_js] Failed to fetch image 2022-01-22 19:23:20 WARNING (MainThread) [homeassistant.components.philips_js] Failed to fetch image 2022-01-22 19:23:22 WARNING (MainThread) [homeassistant.components.camera] Updating xiaomi_cloud_map_extractor camera took longer than the scheduled update interval 0:00:05 2022-01-22 19:23:25 WARNING (MainThread) [homeassistant.components.philips_js] Failed to fetch image 2022-01-22 19:23:25 WARNING (MainThread) [homeassistant.components.philips_js] Failed to fetch image 2022-01-22 19:23:25 WARNING (MainThread) [homeassistant.components.philips_js] Failed to fetch image 2022-01-22 19:23:30 INFO (MainThread) [homeassistant.components.automation.ubrat_login_failed] Убрать Login failed : Running automation actions 2022-01-22 19:23:30 INFO (MainThread) [homeassistant.components.automation.ubrat_login_failed] Убрать Login failed : Executing step call service 2022-01-22 19:23:30 DEBUG (MainThread) [haphilipsjs] TV not available: ConnectionFailure(ConnectTimeout('')) 2022-01-22 19:23:30 DEBUG (MainThread) [homeassistant.components.philips_js] Finished fetching philips_js data in 14.260 seconds (success: True)
I've checked also case when I just opened some app on the TV, but w/o image fetching: [homeassistant.components.philips_js] Failed to fetch image 2022-01-22 19:23:15 WARNING (MainThread) So there are no such errors, just connection timeout.
Okey. Looks like your TV is disconnecting from the network. I don't really know if this is something we can solve in the integration.
You could potentially log at ADB logs from the TV to see if you can get some hint as to why it disabled the network.
That’s not right. I was watching IP TV while integration disconnects and also I can ping host and access API via browser.
Then it's just killing it's https server.
Then it's just killing it's https server.
Then there would be no access to the api via browser.
You are accessing http, not https. Different servers.
I may be found a root cause. Seems like this is my case. Could you please check if this “hack” is implemented in your code. https://github.com/eslavnov/pylips/issues/49
Don't think so. We allow 4 connections to the server and try to reuse as much as possible.
Is there any way to find a reason logging in via adb? What log should I take a look?
Most things on the tv that is related to this logs have xtv in their log lines. You need to enable debugging in your android tv, and also enable wireless/remote debugging.
Here is the logcat for the TV from the moment it is switches on till connection to the HTTPS API looses. @elupus tv.log could you please take a look? I can't understand the reason of API stopped responding.
I think this part is related to the error:
W/System.err( 4890): AJAYK reuse called
W/System.err( 4890): Amit:IP Address of PTA device 192.168.2.254:47654
W/System.err( 4890): Amit:Handshake status is NOT_HANDSHAKINGinbound outbound state arefalsefalse
W/System.err( 4890): Amit:Exception in setting modeCan not change mode after handshake: engineState == READY
W/System.err( 4890): Amit:Handshake Exception and status is NOT_HANDSHAKINGClient/server mode must be set before handshake
W/System.err( 4890): Amit:Session Creation time1643218648000true[B@3319d590
W/System.err( 4890): Amit : unwrap returned an exception javax.net.ssl.SSLProtocolException: Read error: ssl=0xaf448e00: Failure in SSL library, usually a protocol error
W/System.err( 4890): error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number (external/openssl/ssl/s3_pkt.c:345 0xabb14fbd:0x00000000)
V/TPAPI_RESERVE( 1083): getAll->Ins[0]_HWIns[0] result: Freq=498000, Std=0, BW=3, Constel=10, SQI=100, SSI=91, Ber=0, Uncorrs=0, Rarch=0, Stream=1, Symbol=0, Lock=1
E/EpgProvider( 2753): query function called
E/sectionMonitor:pumphandler( 2753): TotalSec: 3396 ,totalDuplicateSec: 54654 insertion rate 0:0/sec duplication rate 0:0/sec totalSectionReceivedFromplf 61745
W/System.err( 4890): AJAYK reuse called
W/System.err( 4890): Amit:IP Address of PTA device 192.168.2.254:47656
W/System.err( 4890): Amit:Handshake status is NOT_HANDSHAKINGinbound outbound state arefalsefalse
W/System.err( 4890): Amit:Exception in setting modeCan not change mode after handshake: engineState == READY
W/System.err( 4890): Amit:Handshake Exception and status is NOT_HANDSHAKINGClient/server mode must be set before handshake
W/System.err( 4890): Amit:Session Creation time1643218660000true[B@190d4e8e
W/System.err( 4890): Amit : unwrap returned an exception javax.net.ssl.SSLProtocolException: Read error: ssl=0xaf449000: Failure in SSL library, usually a protocol error
W/System.err( 4890): error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number (external/openssl/ssl/s3_pkt.c:345 0xabb14fbd:0x00000000)
E/BC_PLAYER( 1083): bcplayer: curr time @ 833.922466604 userType 6 outputPath 0
Yes, that does look a bit suspicious.
Is there anything I can do to make integration works?
I really don't know to be honest. I've had issues with session re-use in the past. Maybe that is what crashes your TV. But the log doesn't really reveal anything. It complains about wrong TLS ptocol version, but since you do get data for a little while it make no sense.
So how else could I help in order for this to be solved, I can do some testing, can gather logs, just let me know, I'd like this integrations to work.
Here is what I've found on stackoverflow, may be it'll helps:
I found the solution for it by analyzing the data packets using wireshark. What I found is that while making a secure connection, android was falling back to SSLv3 from TLSv1 . It is a bug in android versions < 4.4 , and it can be solved by removing the SSLv3 protocol from Enabled Protocols list. I made a custom socketFactory class called NoSSLv3SocketFactory.java. Use this to make a socketfactory.
Well that is about when the tv would make a connection, and it's a fix on the tv. Nothing too usefully for us.
I really don't know of a solution at this moment.
Just for info: https://github.com/nstrelow/ha_philips_android_tv this addon works fine w/o crashes.
Ok. Strange. Do you have notifications enable in integration settings? If you do, disable them.
That integration reads so much less data each update. But would be nice to know why it works.
Hi, suddenly I got the same error with my 55PUS9104 After approx. 5 minutes the status changes to off in HA even though the TV is still on. I am om 2012.12.10 and Home Assistant Os 7.2 Any suggestions for a solution?
No. The only thing i could think of that might help could be a network capture netdump of the traffic. But i can't help you get that .
I've ended up with using custom integration mentioned above. @elupus if you have any guide how and what should be captured, I'm ready to help.
Here are my workarounds regarding the deep sleep issue i had on my android TVs.
My two options:
I ended up doing as @alex-levashev and used the custom component on 3 of my TV's and its work without crashes. I also tried the android-tv integration but it also drops the connection. Still got 1 TV using the integrated component as it has no problems.
Just confirming, sadly nstrelow/ha_philips_android_tv works perfectly with my TV. The component that is in Home Assistant by default had the same issue of disconnecting after 3-5 minutes for me
Would be nice if somebody could debug why it goes to a disconnected state. Like said. This component does more than the custom component.
It's important to say of you have notification events on. What errors do you get in log.
As far as i can tell there are no errors until the HTTPS port stops responding and all handshakes start to fail. This is not just for this component, 4 minutes after i configured the component the tv stopped responding to any host trying to connect until i restarted the tv.
Maybe the fact that this component does more overloads or crashes the tv in some way?
@boltgolt can you turn on debug logs for haphilipsjs? My guess is the tv is rejecting some requests. Also could you upload diagnostic data? https://www.home-assistant.io/integrations/diagnostics/
Drag and drop the file into the comment field here.
Guys, that's no crashes! Had android TV philips tv sets and that's normal behaviour. After you but them in standby about ~10 minutes after that, the are shutting down the network interface. Also be aware that they are doing some reboot at night ~04:;00 o clock to keep things stable. -> that's a real shit, why not find the bugs and keep your product this way stable-> but that's another story. Just wanted to let you know, if you have automations which triggers on tv on/off, be aware of this! Also struggled with this a lot!
Here is what you can do to stop at least the deep standby and shutting down the network interface:
PS.: i also have one android TV (which i will sell soon) and running the integration. I did not enable alexa, so deep standby is active. I use an ESP IR blaster to wake my tv set. But i did not noticed that issue you have.
PS.PS.: Also Wake on lan does'nt work in thisdeep standby state. This is one reason i switched to an LG OLED + Nvidia Shield. On the LG the WOL just works!
good luck
No that's not it.
The tv is on and playing content, but 4 minutes after configuring the component with the one-time-code from the tv it stops responding. It's still playing and responding to requests on the unsecured port, but will not respond to HTTPS until a forced reboot (or possibly the 4am reboot you mentioned, did not test that)
ok, that sounds different. Did you tried factory reset and is the firmware up to date?
No that's not it.
The tv is on and playing content, but 4 minutes after configuring the component with the one-time-code from the tv it stops responding. It's still playing and responding to requests on the unsecured port, but will not respond to HTTPS until a forced reboot (or possibly the 4am reboot you mentioned, did not test that)
Does it respond if you restart home assistant (please retest)? We've had issues with leaked https connections in older revisions. It could very well still be cases where we leak connections.
Hi, I have te problem that I can remote the TV (42PFK6549/12) after about 20 seconds. Turning te TV off and on, I can remote it again for about 20 seconds. Strange thing is. that the original Philips Remote app also don't work. But the app "PhilRemote" works fine. Also after the 20 seconds.
Any suggestions for a solution?
Probably unrelated but have had lots of issues with hass showing TV off and often I wasn't able to do anything with it, even if I was using on demand TV or Netflix.... What worked for me was to set a static IP address in the tv and reserved the address in my router. Been OK for several weeks now.
Old philips TV 50PUS6753/12 API6 on WiFi.
Worth a try 🤷🏻♂️
Editted to fix spelling
There was also some fixes hidden in 2022.6 with an httpx upgrade that could have been a good thing for when having events on. So... Can we get some reports back when people are on 2022.6 if you still have issues.
Would be sooo nice if we can close this issue (even if we find some other unrelated issues that get openend.). So please ve specific in what type of issue you are still experiencing if any.
For me it’s working again, after update to 2022.6. Tnx alot.
The problem
Hi,
My TV model is 48PFT5500/12. After updating to the latest version (2021.12.10) I still experience an issue with TV off in HA after 5 mins. This happens every time. Is there any way to solve it? I can provide logs if needed, but I don't know how to switch then to debug mode.
What version of Home Assistant Core has the issue?
2021.12.10
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant OS
Integration causing the issue
philipsjs
Link to integration documentation on our website
No response
Example YAML snippet
No response
Anything in the logs that might be useful for us?
No response
Additional information
No response