Objective: Control this BenQ TH530 projector via its RS232 interface with an ESP8266, MQTT and openHAB.
ℹ️ Read power / source / volume status
💡 Read lamp mode & hours
⚡ Trigger power (on/off) commands
📺 Trigger source changes (HDMI etc.)
🔇 Change volume or mute
🍃 Change lamp mode
📣 Publish status updates via MQTT
👂 Listen for MQTT commands
👉 Send custom commands via MQTT
💬 Respond to custom commands via MQTT
- ESP8266 (I used a Wemos D1 Mini)
- RS232 to TTL converter with female DB9
- Wire ESP8266 and RS232 to TTL converter.
 (ESP → TTL)
 G → GND
 5V → VCC
 D4 → TXD
 RX → RXD
- Add your MQTT broker & WiFI credentials to the esp8266-benq-rs232-mqtt.inosketch, then flash it to your board.
- Plug the DB9 connector to the RS232port of the projector.
✅ Your ESP will now publish projector status MQTT messages and listen for commands.
- Make sure you have the JsonPath transformation service, MQTT binding and a MQTT broker installed.
- Create a new Generic MQTT thing, choose 34c510f090:20807f1aaeas the identifier.
- Edit the new thing, paste the contents of benq_thing.yamlin the 'Code' tab and save.
- Place benq.itemsin youropenhab-conf/itemsfolder (e.g./etc/openhab/items)
- Place benq.sitemapin youropenhab-conf/sitemapsfolder or paste the contents to your existing sitemap.
✅ You can now control the projector using the openHAB GUI.
- Complete the openHAB steps above.
- Connect your openHAB instance to the openHAB Cloud connector.
- Expose the newly created projector items to the openHAB Cloud (Settings → openHAB Cloud → Items to Expose).
- Ask Google Assistant to "Talk to openHAB" to link your openHAB Cloud account to your Assistant.
✅ A TV device will appear in your Google Home app and you can now control the projector via the app or with voice commands such as "mute my TV".
stat topics are published by the module and contain status messages. cmnd topics are used to execute commands on the projector.
| Topic | Payload | Comment | 
|---|---|---|
| stat/projector/STATUS | {"POWER":"ON","SOURCE":"HDMI","VOLUME":4, "LAMP_MODE":"ECO","LAMP_HOURS":105,"MUTE":"OFF"} | Every 5 seconds | 
| cmnd/projector/POWER | ON,OFF | Power on / off | 
| cmnd/projector/SOURCE | HDMI,SVID,VID,RGB,RGB2 | Set source | 
| cmnd/projector/VOLUME | 0...10 | Set volume | 
| cmnd/projector/MUTE | ON,OFF | (Un)mute | 
| cmnd/projector/LAMP_MODE | LNOR,ECO,SECO,SECO2 | Set lamp mode | 
| cmnd/projector/COMMAND | See BenQ docu, e.g. VOL=? | |
| stat/projector/COMMAND | {"COMMAND":"...","RESPONSE":"..."} | Returns result of above | 





