MCPcopy Index your code
hub / github.com/amosyuen/ha-epson-projector-link

github.com/amosyuen/ha-epson-projector-link @v1.2.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.2.3 ↗ · + Follow
80 symbols 303 edges 9 files 28 documented · 35%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Espon Projector Link

GitHub Release GitHub Activity License

pre-commit Black

hacs Project Maintenance BuyMeCoffee

Community Forum

Functionality

The platform allows you to control an Epson projector from Home Assistant.

This custom component is designed for Epson Home Cinema Projectors which support TCP sockets. It should work with any Epson projector that supports TCP sockets and ESC/VP21 command protocol. However projectors may not support all the features.

Supported Features

  • Get and set state (on, off, warmup, cooldown)
  • Get source list
  • Get and set source
  • Get and set audio mute
  • Get and set auto iris mode
  • Get and set brightness
  • Get and set color mode
  • Get filter hours
  • Get lamp hours
  • Get current error
  • Increase or decrease volume
  • Play, pause, or stop media
  • Next or previous media

All the get features will be exposed as attributes on the media_player. Changes are exposed as services. See service documentation at https://github.com/amosyuen/ha-epson-projector-link/blob/main/custom_components/epson_projector_link/services.yaml

Differences from HA Epson Integration

As of September 2022, the main differences with the built in Home Assistant Epson Integration are:

PROS

  • Supports push for power state changes
  • Support "warmup" and "cooldown" state for projectors
  • Queues requests rather than failing if there is an in-flight request
  • Supports lens memory
  • Supports picture memory
  • Supports auto iris mode
  • Supports brightness
  • Supports power consumption mode
  • Supports source list retrieved from projector instead of static list
  • Supports stop media

CONS

  • Only supports TCP sockets. The HA Epson integration uses HTTP. Developer has mentioned that not all projectors support TCP.

{% if not installed %}

Installation

HACS

  1. Install HACS
  2. Go to HACS "Integrations >" section
  3. In the lower right click "+ Explore & Download repositories"
  4. Search for "Epson Projector Link" and add it
  5. HA Restart is not needed since it is configured in UI config flow
  6. In the Home Assistant (HA) UI go to "Configuration"
  7. Click "Integrations"
  8. Click "+ Add Integration"
  9. Search for "Epson Projector Link"

Manual

  1. Using the tool of choice open the directory (folder) for your HA configuration (where you find configuration.yaml).
  2. If you do not have a custom_components directory (folder) there, you need to create it.
  3. In the custom_components directory (folder) create a new folder called epson_projector_link.
  4. Download all the files from the custom_components/epson_projector_link/ directory (folder) in this repository.
  5. Place the files you downloaded in the new directory (folder) you created.
  6. Restart Home Assistant
  7. In the Home Assistant (HA) UI go to "Configuration"
  8. Click "Integrations"
  9. Click "+ Add Integration"
  10. Search for "Epson Projector Link"

{% endif %}

Configuration

Config is done in the HA integrations UI.

Make sure the projector is on if you have not setup your projector to keep network on or are choosing additional properties to poll. Additional properties can only be polled when the projector is on.

Push State

If you want to get push notifications for power state, you must set projector "Standby Mode" to "Standby Mode: Communication On" or some similar state that keeps the network on when off.

Only power state, warnings, and alerts are pushed. All other properties are polled.

Setup

Tested Devices

  • Epson Home Cinema 5050UB

Custom Actions

You can send custom actions using the epson_projector_link.send_command action. Example action:

action: epson_projector_link.send_command
data:
  command: PWR ON
target:
  entity_id: media_player.theater_projector

Contributions are welcome!

If you want to contribute to this please read the Contribution guidelines

Credits

Referred to @pszafer's implementation of epson component https://github.com/pszafer/epson_projector

This project was generated from @oncleben31's Home Assistant Custom Component Cookiecutter template.

Code template was mainly taken from @Ludeeus's integration_blueprint template


Core symbols most depended-on inside this repo

send_command
called by 10
custom_components/epson_projector_link/media_player.py
set_property
called by 9
custom_components/epson_projector_link/projector/projector.py
_update_property
called by 5
custom_components/epson_projector_link/projector/projector.py
invert_map
called by 4
custom_components/epson_projector_link/projector/const.py
_async_get_property
called by 3
custom_components/epson_projector_link/config_flow.py
create_projector
called by 3
custom_components/epson_projector_link/__init__.py
hex_string_to_int
called by 3
custom_components/epson_projector_link/projector/projector.py
get_property
called by 3
custom_components/epson_projector_link/projector/projector.py

Shape

Method 56
Function 18
Class 6

Languages

Python100%

Modules by API surface

custom_components/epson_projector_link/media_player.py41 symbols
custom_components/epson_projector_link/projector/projector.py23 symbols
custom_components/epson_projector_link/config_flow.py10 symbols
custom_components/epson_projector_link/__init__.py4 symbols
custom_components/epson_projector_link/projector/exceptions.py1 symbols
custom_components/epson_projector_link/projector/const.py1 symbols

For agents

$ claude mcp add ha-epson-projector-link \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page