Home Assistant integration that supports sending commands to BenQ projectors over the serial interface or serial to network bridges like esp-link.
BenQ projectors and flat panels with a serial port can support one of three protocols. This plugin supports projectors which are of the L, P, T, W and X series but probably also others.
I'm using a generic serial to USB converter to connect to my projector. The projector has a male DB9 connector, thus you need a female conector on your USB converter.
- Connects to a BenQ projector over serial and serial to network bridge
- Sending commands to projectors
- Reading the projector status
- Uses asynchronous IO
This integration works if your projector supports the following command structure:
<CR>*<key>=<value>#<CR>
Where <CR>
is a Carriage Return
Examples:
Power on : <CR>*pow=on#<CR>
Power off : <CR>*pow=off#<CR>
Change source to HDMI: <CR>*sour=hdmi#<CR>
You can lookup and change the baud rate in the menu of your BenQ projector.
The commands as described above should also work over a network connection, however I don't own such projector and have implemented the network functionality using a serial to network bridge. The network support for native networked BenQ projectors is thus experimental. Let me know if your network connected BenQ projector works.
Example of a serial to network bridge using a serial to TTL converter and a Wemos C3 Mini:
It has to be said that a direct serial connection to the projector is much more responsive than using a serial to network bridge, at least when using a serial to network bridge. Maybe this is different on a native networked BenQ projector or using ethernet instead of WiFi.
This integration does not implement the PJLink protocol, but a proparitary BenQ protocol instead. The PJLink protocol is covered by it's own integration:
Home Assistant PJLink integration
The following projectors are known to work:
- MW519
- TH585
- W1070
- W1100
- W1110
- X3000i
The following projectors are not tested but use the same protocol according to the documentation:
Others in the L, P, T, W and X Series
Not supported:
- RP552
- RP552H
- RP840G
- RP653
- RP703
- RP750
- RP750K
- RP652
- RP702
- RP790S
- RP705H
Some projectors need to be on to be able to detect the model and the integration to work.
Please let me know if your projector is also supported by this Home Assistant integration so I can improve the overview of supported projectors.
The recommended way to install this Home Assistant integration is by using HACS. Click the following button to open the integration directly on the HACS integration page.
Or follow these instructions:
- Go to your HACS view in Home Assistant and then to Integrations
- Select + Explore & download repositories and search for BenQ Projector
- Select Download
- Restart Home Assistant
- Copy the
custom_components/benqprojector
directory of this repository into theconfig/custom_components/
directory of your Home Assistant installation - Restart Home Assistant
- After restarting go to Settings then Devices & Services
- Select + Add integration and type in BenQ Projector
- Select the serial port or enter the path manually
- Enter the baud rate
- Select Submit
When your wiring is right a new BenQ Projector integration and device will now be added to your Integrations view. If your wiring is not right you will get a Failed to connect error message.
If you would like to use this Home Assistant integration in your own language you can provide me
with a translation file as found in the custom_components/benqprojector/translations
directory.
Create a pull request (preferred) or issue with the file attached.
More on translating custom integrations can be found here.
Do you enjoy using this Home Assistant integration? Then consider supporting my work using one of the following platforms, your donation is greatly appreciated and keeps me motivated:
If you would like to have a Home Assistant integration developed for your product or are in need for a freelance Python developer for your project please contact me, you can find my email address on my GitHub profile.