This custom integration allows you to control Sony projectors (specifically the VPL-XW5000 and compatible models) using the ADCP (Advanced Display Control Protocol) over your local network.
- Power On/Off: Standard media player power control
- Input Selection: Switch between HDMI 1 and HDMI 2
- Status Monitoring: Real-time status updates every 30 seconds
All advanced controls are accessible through custom media player services:
- Picture Adjustments: Brightness, Contrast, Sharpness, Light Output (0-100)
- Picture Modes: Cinema Film 1/2, Reference, TV, Photo, Game, Bright Cinema/TV, User 1/2/3
- Menu Navigation: Menu, Up, Down, Left, Right, Enter, Reset
- Video Mute: Blank screen function
This integration has been developed for the Sony VPL-XW5000 but should work with other Sony projectors that support the ADCP protocol, including:
- VPL-XW5000, VPL-XW5100
- VPL-XW6000, VPL-XW6100
- VPL-XW7000
- VPL-XW8100
- VPL-VW series (check compatibility in the protocol manual)
- Open HACS in Home Assistant
- Click on "Integrations"
- Click the three dots in the top right corner
- Select "Custom repositories"
- Add this repository URL and select "Integration" as the category
- Click "Install"
- Restart Home Assistant
- Copy the
custom_components/sony_projector_adcpfolder to your Home Assistant'scustom_componentsdirectory - If the
custom_componentsdirectory doesn't exist, create it in the same location as yourconfiguration.yamlfile - Restart Home Assistant
- Go to Settings → Devices & Services
- Click + Add Integration
- Search for "Sony Projector ADCP"
- Enter your projector's details:
- IP Address: The IP address of your projector on your network
- Port: Default is 53595 (usually doesn't need to be changed)
- Name: Friendly name for your projector
- Use Authentication: Whether to use password authentication (default: enabled)
- Password: Authentication password (default: "Projector")
Ensure your projector is configured for network control:
- On your projector, go to the menu
- Navigate to Installation → Network Settings
- Set Network Management to ON or set Standby Mode to Standard
- Configure network settings (IP address, etc.)
- Note the Authentication Password if authentication is enabled
The integration creates a single media player entity: media_player.sony_projector
Standard Media Player Controls:
media_player.turn_on- Power on the projectormedia_player.turn_off- Power off the projectormedia_player.select_source- Switch input (HDMI 1 or HDMI 2)
Attributes:
source- Current input sourcevideo_muted- Video mute statuspicture_mode- Current picture modebrightness- Current brightness level (0-100)contrast- Current contrast level (0-100)sharpness- Current sharpness level (0-100)light_output- Current light output level (0-100)reality_creation- Reality Creation status ("on" or "off")
All advanced controls are accessed through custom services:
service: sony_projector_adcp.send_key
target:
entity_id: media_player.sony_projector
data:
key: menu # Options: menu, up, down, left, right, enter, reset, blankservice: sony_projector_adcp.set_picture_mode
target:
entity_id: media_player.sony_projector
data:
mode: cinema_film1 # Options: cinema_film1, cinema_film2, reference, tv, photo, game, brt_cinema, brt_tv, user1, user2, user3service: sony_projector_adcp.set_brightness
target:
entity_id: media_player.sony_projector
data:
value: 75 # 0-100
service: sony_projector_adcp.set_contrast
target:
entity_id: media_player.sony_projector
data:
value: 80 # 0-100
service: sony_projector_adcp.set_sharpness
target:
entity_id: media_player.sony_projector
data:
value: 50 # 0-100
service: sony_projector_adcp.set_light_output
target:
entity_id: media_player.sony_projector
data:
value: 90 # 0-100automation:
- alias: "Movie Time"
trigger:
- platform: time
at: "20:00:00"
action:
- service: media_player.turn_on
target:
entity_id: media_player.sony_projector
- delay:
seconds: 30 # Wait for projector to warm up
- service: sony_projector_adcp.set_picture_mode
target:
entity_id: media_player.sony_projector
data:
mode: cinema_film1
- service: media_player.select_source
target:
entity_id: media_player.sony_projector
data:
source: "HDMI 1"
- service: sony_projector_adcp.set_brightness
target:
entity_id: media_player.sony_projector
data:
value: 50script:
projector_gaming_mode:
alias: "Gaming Mode"
sequence:
- service: sony_projector_adcp.set_picture_mode
target:
entity_id: media_player.sony_projector
data:
mode: game
- service: media_player.select_source
target:
entity_id: media_player.sony_projector
data:
source: "HDMI 2"
- service: sony_projector_adcp.set_brightness
target:
entity_id: media_player.sony_projector
data:
value: 70script:
projector_4k_mode:
alias: "4K Enhancement Mode"
sequence:
- service: sony_projector_adcp.set_picture_mode
target:
entity_id: media_player.sony_projector
data:
mode: cinema_film1
- service: sony_projector_adcp.set_reality_creation
target:
entity_id: media_player.sony_projector
data:
state: "on"automation:
- alias: "Toggle Reality Creation"
trigger:
- platform: state
entity_id: input_boolean.reality_creation_toggle
action:
- service: sony_projector_adcp.toggle_reality_creation
target:
entity_id: media_player.sony_projectortype: entities
entities:
- entity: media_player.sony_projector
type: custom:button-card
tap_action:
action: toggle
- type: attribute
entity: media_player.sony_projector
attribute: picture_mode
name: Picture Mode
- type: attribute
entity: media_player.sony_projector
attribute: brightness
name: Brightness
title: Sony ProjectorOr use a media player card:
type: media-control
entity: media_player.sony_projector- Verify the projector's IP address is correct
- Ensure the projector is on the same network as Home Assistant
- Check that Network Management is enabled on the projector
- Verify the port (default 53595) is correct
- Check if a firewall is blocking the connection
- Verify the password matches the projector's authentication password
- Check if authentication is enabled on both the projector and in the integration config
- Default password is "Projector" (case-sensitive)
- Ensure the projector is powered on (most commands only work when on)
- Check Home Assistant logs for error messages
- Try power cycling the projector
- The integration polls the projector every 30 seconds
- Some values may only be available when the projector is powered on
- Check network connectivity
To enable debug logging, add this to your configuration.yaml:
logger:
default: info
logs:
custom_components.sony_projector_adcp: debugContributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.
Based on Sony's ADCP protocol documentation for professional projectors.