Obtenga un Denon AVR para encender/apagar automáticamente un proyector Optima.
Descubrí que cuando alimentaba mi proyector Denon AVR (X4500) el proyector Optima (HD142X) al que estaba conectado no se encendería automáticamente. Esto debería funcionar. Pero el protocolo HDMI involucrado (llamado "CEC") a menudo no es confiable, especialmente cuando se combina productos de diferentes marcas (Denon y Optima en este caso).
Conecté una Raspberry Pi a una de las entradas HDMI de Denon AVR. Configuré las redes en el Denon AVR y el Raspberry Pi para que el Raspberry Pi pudiera conectarse a la dirección IP del Denon AVR.
Ejecutar el código (main.cc) en la Raspberry Pi significa que el PI se dará cuenta cuando se enciende el Denon AVR y luego encenderá el proyector Optima (a través de su cable HDMI). Del mismo modo, cuando se apaga el Denon AVR, el PI notará y apagará el proyector Optima.
Deberá configurar algunas configuraciones en el Denon AVR.
Asegúrese de que el Denon esté conectado a su red. Lo hice yendo al menú de configuración-> Network-> Conexión y configurando la conexión WiFi. Le di a la unidad una dirección IP estática (192.168.1.45) para que el PI tenga una dirección IP predecible para conectarse.
También configure el menú de configuración-> Network-> El control de red para estar "siempre encendido". Esto significa que el PI puede conectarse al AVR incluso cuando se apaga.
En la configuración de video/HDMI he configurado:
Usé una Raspberry Pi Zero W. Lo conecté a una de las entradas HDMI espaciales en la parte posterior del AVR. Instalé Raspbian 10 en él. Configuré las redes para que pudiera conectarse a la IP del Denon AVR.
Necesita instalar un cumplidor de C ++
sudo apt install g++
Además, la utilidad Make
sudo apt install make
instalar git
sudo apt install git
y también algunas bibliotecas relacionadas con HDMI/CEC
sudo apt install libraspberrypi-dev libraspberrypi0
sudo apt install cec-utils libcec4
Agregue la siguiente configuración al archivo /boot/config.txt
hdmi_ignore_cec_init=1
y reiniciar.
fix-cec git clone https://github.com/stuart-mclaren/fix-cec
fix-cec Primero, antes de compilar, deberá editar el archivo main.cc para ingresar la dirección IP de su AVR Denon.
Cambiar esta línea:
#define IPADDR "192.168.1.45"
Para que coincida con la dirección IP de su AVR de Denon. Por ejemplo, si la dirección IP es 192.168.0.100 cambie la línea a:
#define IPADDR "192.168.0.100"
fix-cec Para compilar el código, ejecute lo siguiente (desde el interior del directorio fix-cec ):
make
Esto creará el archivo fix-cec .
fix-cec sudo make install
Esto copiará el binario a /usr/local/bin/fix-cec y configurará un servicio Systemd llamado fix-cec para ejecutar el binario automáticamente cuando el PI se inicia.
Puede verificar que el servicio comience correctamente en el arranque reiniciando el PI
sudo reboot
Y luego, una vez que el PI ha arrancado, en ejecución:
systemctl status fix-cec
Si está funcionando, la salida debe mostrar:
● fix-cec.service - fix-cec service
Loaded: loaded (/etc/systemd/system/fix-cec.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2022-01-16 15:57:53 GMT; 6min ago
Main PID: 394 (fix-cec)
Tasks: 5 (limit: 421)
CGroup: /system.slice/fix-cec.service
└─394 /usr/local/bin/fix-cec
Jan 16 16:03:03 piston fix-cec[394]: Connected
Jan 16 16:03:03 piston fix-cec[394]: DPX: SKIP
Jan 16 16:03:03 piston fix-cec[394]: DPSI: SI=5
Jan 16 16:03:03 piston fix-cec[394]: DP: PSTRE 50
Jan 16 16:03:03 piston fix-cec[394]: DPX: SKIP
Jan 16 16:03:03 piston fix-cec[394]: DPSI: SI=5
Jan 16 16:03:03 piston fix-cec[394]: DP: PSTONE CTRL OFF
Jan 16 16:03:03 piston fix-cec[394]: DPX: SKIP
Jan 16 16:03:03 piston fix-cec[394]: DPSI: SI=5
Jan 16 16:03:03 piston fix-cec[394]: DP: SSSMG MOV
Jan 16 16:03:03 piston fix-cec[394]: DPX: SKIP
Tenga en cuenta el mensaje "conectado": esto significa el PI conectado a la dirección IP del AVR con éxito. Los diversos mensajes DP se emiten del AVR. Los mensajes DPX son de depuración.
El código registra mucho . Deberá asegurarse de que los registros, por ejemplo, en /var /log gire para evitar completar el sistema de archivos.
Alternativamente, elimine las diversas declaraciones printf de main.cc
En algunos casos, por ejemplo, cuando se usa un plato giratorio o el sintonizador, es posible que no desee que el proyector se encienda cuando enciende el AVR.
Consulte la siguiente nota en el código sobre cómo cambiar este comportamiento:
Note: For non-video sources
Básicamente, agregue 100 a la fuente para la que no desea alimentar en el proyector. Por ejemplo, para evitar que el proyector se encienda al reproducir registros de vinilo cambia esta línea:
phono = 9,
a esto
phono = 109,
Esto supone que tienes el siguiente conjunto en el AVR
RC Source Select = Power On + Source
Y enciende el AVR presionando el botón Phono en el control remoto del AVR.
El código se basa en https://github.com/glywood/cec-fix