Epson Projector Controls

Hello everybody,

So, I noticed in a recent release of HA, they added IP based controls for Epson projectors. More details here:

I have several Epson projectors I’ve tried controlling via HA and I’m not having much luck. I can add them to HA just fine and they show up, but none of the controls work. Here is a snippet of my config:

  • platform: epson
    name: Test_Projector

I’ve tested this with a few Brightlink Pro projectors I have, along with a Powerlite 84+. As soon as I hit the power button on the UI, it shows “On”, but nothing changes on the projector. About a half minute later, the HA UI shows it as “Off” again. I have the NIC set to be active even when the projector is in standby, so its still live and I can access the web control interface on the projector’s embedded interface.

Anyone have any ideas? Thanks in advanced.

Here is a log item I found from HA:
Log Details (WARNING)
Fri Jul 20 2018 15:28:34 GMT-0400 (EDT)

Error message 401 from Epson.

401 means unauthorized. Looks like the project wants a username & password. Unfortunately the Epson Media Player platform doesn’t have provisions for that.

Can your Projector be controlled with the “Epson Android app”??? I have an “CINEMA 2150” which I can control. BUT, when I add it to the configuration.yaml file, I get all kinds of errors popping up.

This actually doesn’t work for newer projectors. The developer of the component needs to add http auth support.

Here is my solution I came up with in my feature request:

Depending on how new the projector is, I can control then with the iProjector application. However, HA doesn’t work. Pretty sure that the programmer of the component is using an old projector to test their code on that doesn’t work for ones that require HTTP Auth. See my other comment on how to get it working in the meantime, though.

FYI to anyone who visits this feature request in the future, PJLink is now natively supported in 0.76, so you can control your Epson projectors that way instead.

So does this also control the power of the projector and display the status of the projector? I have a epson 5040ub and I currently have a pjlink script setup using pypjlink and im able to get sensor info on the fan, filter, lamp and temperature.

This is not working for me… Not sure why… this is the error i get…

2018-10-18 08:29:59 ERROR (MainThread) [homeassistant.components.media_player] pjlink: Error on device update!
Traceback (most recent call last):
File “/usr/src/app/homeassistant/helpers/”, line 251, in _async_add_entity
await entity.async_device_update(warning=False)
File “/usr/src/app/homeassistant/helpers/”, line 349, in async_device_update
await self.hass.async_add_job(self.update)
File “/usr/local/lib/python3.6/concurrent/futures/”, line 56, in run
result = self.fn(*self.args, **self.kwargs)
File “/usr/src/app/homeassistant/components/media_player/”, line 102, in update
self._muted = projector.get_mute()[1]
File “/usr/local/lib/python3.6/site-packages/pypjlink/”, line 170, in get_mute
param = self.get(‘AVMT’)
File “/usr/local/lib/python3.6/site-packages/pypjlink/”, line 132, in get
raise ProjectorError(response)
pypjlink.projector.ProjectorError: unavailable time

My Epson EB-1850WU needs HTTP-Basic authentication. After changing my host entry to something like user:password@ip i’ve never seen the Error 401 message.

You ran into the same bug I did. If you power the projector on and then try to control it via HA, it’ll show up.

If you could comment on the bug report here so it gets more visibility, I’d appreciate it.


The newer Epson Brightlinks don’t support HTTP Auth. They have a custom authentication solution.


I have Epson EH-TW5350 projector connected via Wi-Fi. I tried to use HA Epson controls for it, but when it is off it is not connected to wi-fi so I can’t turn it on. So I ended with turning it on via Broadlink RM Mini and turning off via HA Epson projector controls (because when you turn in off via IR you have to push the power button twice, over wi-fi it is easier).
I also get projector state by simple ping sensor.

Here are my config parts.

Check if the projector is on by ping

  - platform: ping
    count: 2
    name: epson_projector
    scan_interval: 10

HA Projector control (i hid it because “turn on” isn’t working) and universal projector entity (i show it in UI)

  - platform: epson
    name: epson_projector_lan
  - platform: universal
    name: epson_projector
        service: broadlink.send
        service: media_player.turn_off
          entity_id: media_player.epson_projector_lan
        service: broadlink.send
        service: broadlink.send
      state: binary_sensor.epson_projector

BroadlinkRM Mini and projector switch for HomeKit use

  - platform: broadlink
    mac: 'C8:F7:42:62:EB:60'
    timeout: 15
  - platform: template
        friendly_name: "Проектор"
        value_template: "{{ is_state('binary_sensor.epson_projector', 'on') }}"
          service: broadlink.send
          service: switch.turn_off
            entity_id: switch.media_outlet

But I have one problem. When the projector is off I have error messages from HA Epson projector control component. I think they don’t have any effects on HA work, but maybe someone knows what I did wrong or how to fix it?
Error message:

Update for media_player.epson_projector_lan fails
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/epson_projector/", line 129, in send_request
    headers=self._headers) as response:
  File "/usr/local/lib/python3.7/site-packages/aiohttp/", line 1005, in __aenter__
    self._resp = await self._coro
  File "/usr/local/lib/python3.7/site-packages/aiohttp/", line 476, in _request
  File "/usr/local/lib/python3.7/site-packages/aiohttp/", line 522, in connect
    proto = await self._create_connection(req, traces, timeout)
  File "/usr/local/lib/python3.7/site-packages/aiohttp/", line 854, in _create_connection
    req, traces, timeout)
  File "/usr/local/lib/python3.7/site-packages/aiohttp/", line 974, in _create_direct_connection
    req=req, client_error=client_error)
  File "/usr/local/lib/python3.7/site-packages/aiohttp/", line 924, in _wrap_create_connection
    await self._loop.create_connection(*args, **kwargs))
  File "uvloop/loop.pyx", line 1894, in create_connection
  File "uvloop/loop.pyx", line 1883, in uvloop.loop.Loop.create_connection

Some Epson projectors have an option to turn off energy savings for the network adapter, which will leave it on during sleep. I know this option exists for wired ethernet, but not sure about WiFi. If you go into the energy savings menu, you might have an option to stop the WiFi from suspending.

@Oleksii_Zelivianskyi I apologize for digging up an old topic but this is very high in the search results for broadlink and epson. My question is - where did you get the packets for broadlink? They work for my projector but I need a few more, most importantly for turning it off.

EDIT: I have figured it out myself, so I will paste the results for others. I used irdb for codes (my projector uses NEC1 instead of NEC2):
and irgen for conversion:

1 Like