Create the following directory structure in your Home Assistant configuration folder:
config/
└── custom_components/
└── sony_projector_adcp/
├── __init__.py
├── manifest.json
├── const.py
├── protocol.py
├── config_flow.py
├── media_player.py
├── services.yaml
└── strings.json
You'll need to create these 8 files. Copy the contents from the artifacts provided.
-
Create the directory:
cd /config # or wherever your Home Assistant config is mkdir -p custom_components/sony_projector_adcp
-
Copy all files into the
custom_components/sony_projector_adcp/directory -
Restart Home Assistant
-
Add the integration:
- Go to Settings → Devices & Services
- Click "+ ADD INTEGRATION"
- Search for "Sony Projector ADCP"
- Enter your projector details:
- IP Address: Your projector's IP (e.g., 192.168.1.100)
- Port: 53595 (default)
- Name: Sony Projector (or whatever you prefer)
- Use Authentication: Yes (default)
- Password: Projector (default, or your custom password)
Before configuring Home Assistant, ensure your Sony VPL-XW5000 is properly set up:
-
Connect projector to network:
- Go to projector menu
- Navigate to Installation → Network Settings
- Set IP address (or use DHCP)
- Note the IP address
-
Enable network control:
- Set "Network Management" to ON
- OR set "Standby Mode" to "Standard"
- This allows the projector to respond to network commands even when in standby
-
Check authentication settings:
- Note the authentication password (default is "Projector")
- This is usually the same as the web interface password
After installation, you'll have one media player entity with all controls accessible via services:
media_player.sony_projector- Standard controls: power on/off, input selection
- Attributes show current settings: brightness, contrast, picture mode, etc.
All additional controls are accessed through services:
sony_projector_adcp.send_key- Menu navigation (up, down, left, right, enter, menu, reset, blank)sony_projector_adcp.set_picture_mode- Select picture presetsony_projector_adcp.set_brightness- Adjust brightness (0-100)sony_projector_adcp.set_contrast- Adjust contrast (0-100)sony_projector_adcp.set_sharpness- Adjust sharpness (0-100)sony_projector_adcp.set_light_output- Adjust light output (0-100)
service: media_player.turn_on
target:
entity_id: media_player.sony_projectorservice: media_player.select_source
target:
entity_id: media_player.sony_projector
data:
source: "HDMI 1"service: sony_projector_adcp.set_picture_mode
target:
entity_id: media_player.sony_projector
data:
mode: cinema_film1service: sony_projector_adcp.set_brightness
target:
entity_id: media_player.sony_projector
data:
value: 75service: sony_projector_adcp.send_key
target:
entity_id: media_player.sony_projector
data:
key: menuvol+, vol-, muting) are not supported for this model.
If you need volume control, it must be handled by your audio receiver or other audio equipment in your setup.
- Check that all files are in the correct directory
- Restart Home Assistant
- Check the logs: Settings → System → Logs
- Ping the projector IP from Home Assistant host
- Check projector network settings
- Verify Network Management is ON
- Check firewall settings
- Ensure port 53595 is accessible
- Verify password is correct (case-sensitive)
- Default password is "Projector"
- Check if authentication is enabled on projector
- Try disabling authentication in integration config if not needed
- Projector must be powered on for most commands
- Check logs for specific error messages
- Ensure projector firmware is up to date
- Wait 30 seconds after power-on before sending other commands
- Make sure
services.yamlis in the correct directory - Restart Home Assistant
- Check Developer Tools → Services for
sony_projector_adcp.*services
Edit const.py and change:
SCAN_INTERVAL = 30 # Change to desired secondsAdd to configuration.yaml:
logger:
default: info
logs:
custom_components.sony_projector_adcp: debugIf your model has more HDMI inputs, edit const.py:
INPUT_SOURCES = {
"hdmi1": "HDMI 1",
"hdmi2": "HDMI 2",
"hdmi3": "HDMI 3", # Add if available
"hdmi4": "HDMI 4", # Add if available
}Complete movie night setup:
automation:
- alias: "Movie Night Setup"
trigger:
- platform: state
entity_id: input_boolean.movie_mode
to: "on"
action:
# Power on
- service: media_player.turn_on
target:
entity_id: media_player.sony_projector
# Wait for warmup
- delay:
seconds: 30
# Set input
- service: media_player.select_source
target:
entity_id: media_player.sony_projector
data:
source: "HDMI 1"
# Set picture mode
- service: sony_projector_adcp.set_picture_mode
target:
entity_id: media_player.sony_projector
data:
mode: cinema_film1
# Adjust picture settings
- service: sony_projector_adcp.set_brightness
target:
entity_id: media_player.sony_projector
data:
value: 50
- service: sony_projector_adcp.set_contrast
target:
entity_id: media_player.sony_projector
data:
value: 80- Check Home Assistant logs for errors
- Review the ADCP protocol manual for command reference
- Ensure projector model is compatible
- Verify all network settings are correct
- The integration polls the projector every 30 seconds for status updates
- Most settings require the projector to be powered on
- Some features may vary by projector model
- Current values are shown as attributes on the media player entity