I recently installed a new CinePrime HT5550 digital projector and noticed it has network control. However, it seems to only be controllable in a browser with a cough cough flash player.
I looked at the network requests using browser tools in an old portable Firefox but I don’t see any network requests when issuing commands so I’m not really sure where to go next in figuring out how to control this thing over the network without an ancient flash-enabled browser.
It appears to be using Creston Control but trying a curl like in the docs here returns an error response
curl -X GET "http://192.168.1.194/VirtualControl/config/api/DeviceInfo" -H "accept: application/json"
<html><head><title>Document Error: Site or Page Not Found</title></head>
<body><h2>Access Error: Site or Page Not Found</h2>
when trying to obtain <b>/VirtualControl/config/api/DeviceInfo</b><br><p>Cannot open URL</p></body></html>
Well Crestron is only for Crestron automation systems (proprietary) but the projector can be controlled by RS-232 (codes are documented in installation guide Mode d'emploi du W5700 | BenQ France
While looking over this document for other BenQ projectors I saw that some support PJLink. A quick DuckDuckGo search to find out what PJLink is lead me to discover there’s already an integration! I turned on the network standby on my projector, configured the integration in YAML, restarted my home assistant, and the new entity popped up and bingo! I can turn it on/off and change the input! That’s all I really need
How were you able to add your projector through PJLink integration? I just can’t do it. The object does not appear.
pjlink: Error on device update!
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 707, in _async_add_entity
await entity.async_device_update(warning=False)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1295, in async_device_update
await hass.async_add_executor_job(self.update)
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/pjlink/media_player.py", line 128, in update
self._attr_available = self._setup_projector()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/pjlink/media_player.py", line 102, in _setup_projector
inputs = projector.get_inputs()
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/pypjlink/projector.py", line 210, in get_inputs
param = self.get('INST')
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/pypjlink/projector.py", line 132, in get
success, response = protocol.send_command(self.f, body, '?', self.encoding)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/pypjlink/protocol.py", line 71, in send_command
resp_body, resp_param = parse_response(f, encoding)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/pypjlink/protocol.py", line 43, in parse_response
assert sep == '='
AssertionError
I’ve noticed my projector hasn’t shown up in quite some time now. I know it’s been buggy since the start. There was an update a few versions back that added some retry logic but lately I’ve kind of given up and just use the remote