Pulse-Eight / libcec

USB CEC Adapter communication Library http://libcec.pulse-eight.com/
Other
724 stars 291 forks source link

CEC with Kodi/Pulseeight-Adapter + AVR, but without CEC-capable TV/Projector #657

Closed J4nsen closed 2 months ago

J4nsen commented 6 months ago

Hi, I want to control my HTPC with my AVR remote. My foolish assumption was that I just need to buy a Pulseeight HDMI Cec adapter to be able to control my HTPC running Kodi. In my setup I have a Sony projector (VPL-XW5000ES) that does not support HDMI CEC.

As I just found out, the HDMI CEC spec seems to requires a TV to be present. :( Everything works fine if I connect a TV with CEC support, but nothing happens if the projector is connected to the AVR.

Is there any way around this?

Logs

I have four logs of cec-client

Hardware

Any ideas are very much appreciated :)

malard commented 6 months ago

Hi,

Our client wont do this natively, you would need to make changes to the code to do it.

Thanks

From: Jan Wiele @.> Sent: Tuesday, May 7, 2024 8:33 PM To: Pulse-Eight/libcec @.> Cc: Subscribed @.***> Subject: [Pulse-Eight/libcec] CEC with Kodi/Pulseeight-Adapter + AVR, but without CEC-capable TV/Projector (Issue #657)

Hi, I want to control my HTPC with my AVR remote. My foolish assumption was that I just need to buy a Pulseeight HDMI Cec adapter to be able to control my HTPC running Kodi. In my setup I have a Sony projector (VPL-XW5000ES) that does not support HDMI CEC.

As I just found out, the HDMI CEC spec seems to requires a TV to be present. :( Everything works fine if I connect a TV with CEC support, but nothing happens if the projector is connected to the AVR.

Is there any way around this?

Logs

I have four logs of cec-client

Hardware

Any ideas are very much appreciated :)

— Reply to this email directly, view it on GitHubhttps://github.com/Pulse-Eight/libcec/issues/657, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAEFI56PV7YCJMEGH2ONKXDZBET75AVCNFSM6AAAAABHLTSCF2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGI4DIMBXG44DCMY. You are receiving this because you are subscribed to this thread.Message ID: @.**@.>>

J4nsen commented 2 months ago

I finally got it working by emulating a running TV with esphome and esphome-native-hdmi-cec.

It takes the physical and logical address of a TV (0.0.0.0 and 0x0) and responds to three requests (vendor id, physical address and power on state). I think the most important one is reporting to be powered on.

For anyone wanting to do the same, here is the code:

esphome:
  name: iot-esp8266-hdmi-cec-heimkino
  platformio_options:
    board_build.f_cpu: 160000000L

esp8266:
  board: d1_mini

external_components:
  - source: github://Palakis/esphome-hdmi-cec

 hdmi_cec:
    pin: D1 
    address: 0x0 
    physical_address: 0x0000 
    promiscuous_mode: true 
    monitor_mode: false

    on_message:
      - opcode: 0x8C # Request Vendor ID
        then:
          hdmi_cec.send: 
            destination: !lambda return source;
            data: [135, 0, 0, 57]
      - opcode: 0x8F # Request Power Status
        then:
          hdmi_cec.send: 
            destination: !lambda return source;
            data: [144,0]
      - opcode: 0x8F # Request Power Status
        then:
          hdmi_cec.send: 
            destination: 0xF
            data: [144,0]                 
      - opcode: 0x83 # Request Physical Address
        then:
          hdmi_cec.send: 
            destination: !lambda return source;
            data: [132,0,0,0]