Integrar la Wii en Home Assistant

Con un poco creatividad, vamos a integrar la Wii en Home Assistant para monitorizar su uso y sincronizarla con otros dispositivos.

Si recientemente has liberado tu Wii para convertirla en una consola retro, esto te interesa!

Alcance de la integración

Antes de nada, vamos a ajustar expectativas. Si alguna vez lo has buscado antes, sabrás que no hay ninguna integración oficial ni ‘custom’ de la Nintendo Wii con Home Assistant. Esto sigue siendo así, pero disponemos de los dispositivos y el conocimiento suficiente para llevar mucha información a HA.

En concreto, de esta forma de integrar la Wii en Home Assistant puedes esperar lo siguiente:

  • Monitorización del estado de la consola (encendida o apagada).
  • Sincronización con otros dispositivos.
  • Control del tiempo de juego.
  • Encendido y apagado remoto.
  • Sincronización con la TV (encendido, apagado y selección de entrada).

Monitorización del estado de la consola

Para conseguir llevar a cabo esta monitorización vamos a utilizar un enchufe inteligente que registre el consumo eléctrico. En mi caso voy a utilizar este enchufe de Tuya que tengo integrado con zigbee2mqtt.

No se trata de un enchufe específico para este propósito, ya que el objetivo no es registrar con precisión cuanto consume. Simplemente es un enchufe que tenía por casa que registra la potencia en uso, entre otros valores. No me importa la precisión, ya que solo quiero saber si esta proporcionando energía (Wii encendida) o no. He comprobado que cuando está encendida proporciona más de 10 watios, y con saber esto es suficiente. Dicho esto, vamos a crear un ayudante del tipo “alternar” o ‘boolean’ y le vamos a llamar “Wii”. Esto creará la entidad ‘input_boolean.wii’.

Ahora vamos a crear una automatización con distintos triggers (desencadenantes). En mi caso he identificado que mi enchufe tiene un sensor de potencia (‘sensor.wii_power’). Este sensor toma el valor 0 cuando está apagada, y aumenta cuando se enciende. Por tanto la automatización va a tener los siguientes escenarios:

  • Desencadenante: estado numérico del ‘sensor.wii_power‘ pasa a estar “por encima de 1”. Este ‘trigger’ va a ejecutar la acción de llamar al servicio ‘input_boolean.turn_on‘ de la entidad ‘input_boolean.wii’. De esta forma su estado pasará a ‘on’ y me indicará que la Wii está encendida.
  • Desencadenante: estado numérico del ‘sensor.wii_power‘ pasa a estar “por debajo de 1”. Este ‘trigger’ va a ejecutar la acción de llamar al servicio ‘input_boolean.turn_off‘ de la entidad ‘input_boolean.wii’. De esta forma su estado pasará a ‘off’ y me indicará que la Wii está apagada.

Sincronización con otros dispositivos

Después de lo anterior este paso es muy sencillo. Lo único que tengo que hacer es vincular el estado de la Wii con el de los dispositivos que quiera sincronizar. En mi caso quiero que cuando se encienda la Wii se activen los altavoces y el ambilight para que sea una experiencia más inmersiva.

Para ello lo único que hay que hacer es incluir una nueva acción en la misma automatización del apartado anterior, de la siguiente forma:

  • Desencadenante: estado numérico del ‘sensor.wii_power‘ pasa a estar “por encima de 1”. Añadiremos como acción, por ejemplo, ‘switch.turn_on‘ de los dispositivos correspondientes.
  • Desencadenante: estado numérico del ‘sensor.wii_power‘ pasa a estar “por debajo de 1”. Añadiremos como acción, por ejemplo, ‘switch.turn_off‘ de los dispositivos correspondientes.

Ten en cuenta que esto es totalmente personalizable, y no sólo con el encendido de dispositivos. Puedes activar una escena determinada, bajar la intensidad de la luz principal, lanzar tu playlist favorita o lo que sea que te ayude a disfrutar del tiempo de juego.

Control del tiempo de juego

Para controlar el tiempo de juego de la Wii vamos a crear un sensor que va a contar el tiempo durante el cuál la entidad ‘input_boolean.wii’ permanece encendida. Es decir, funcionará como un cronómetro mientras la Wii esté en uso, y se reiniciará diariamente.

Para ello copia el siguiente código en tu fichero ‘sensors.yaml’. Esto creará la entidad ‘sensor.tiempo_de_juego_wii‘, que mide el tiempo en horas (por ejemplo, 1,5 horas), aunque si colocas la entidad en alguna tarjeta de tu panel de control de la mostrará en formato hh:mm:ss.

- platform: history_stats
  name: Tiempo de juego Wii
  entity_id: input_boolean.wii
  state: "on"
  type: time
  start: "{{ now().replace(hour=0, minute=0, second=0) }}"
  end: "{{ now() }}"

Tras reiniciar Home Assistant ya podrás usar este sensor como quieras. Por ejemplo, puedes establecer una automatización para que cuando el sensor supere cierto valor te envíe una notificación al móvil, diga algo por los altavoces, encienda las luces…

Encendido y apagado remoto

Es decir, sin tener que levantarnos para pulsar el botón de la Wii. Para el apagado vamos a utilizar el mismo enchufe que estamos utilizando para detectar la potencia en uso. Cuando queramos apagar la Wii, simplemente apagaremos el enchufe. Al dejar de dar corriente a la consola esta se apagará (con la precaución de haber guardado los datos de tu partida antes de hacerlo).

Ya se que no es la mejor forma de apagar cualquier dispositivo electrónico, pero en mi caso se trata de una consola con muchos años y se bloquea de vez en cuando, obligándome a apagarla pulsando el botón de forma prolongada. De esta forma me aseguro el apagado. Además crearé una automatización para que el enchufe vuelva a encenderse después de un par de segundos cuando se apague, para que la Wii quede lista para volver a ser encendida (pero no lo hará de forma automática, por el mero hecho de proporcionar corriente si no pulso el botón).

Para el encendido, ahora que ha pasado el verano, voy a utilizar el mismo SwitchBot Bot que utilizo para controlar el aire acondicionado. En este caso lo he colocado de forma que cuando se acciona pulsa el botón de encendido, activando la Wii.

Sincronización con la TV

Para terminar de integrar la Wii en Home Assistant, lo suyo es que la televisión actúe de forma coordinada. En mi caso tengo una televisión antigua que he modernizado con el Google TV, que a través del puerto HDMI CEC activa la entrada correspondiente cuando lo enciendo.

Esto mismo no puedo hacerlo directamente con la Wii, pero si con el Broadlink RM4 Pro que utilizo para controlar los ventiladores y otros dispositivos. Por tanto, voy a crear dos automatizaciones:

  • Desencadenante: estado de ‘input_boolean.wii’ pase a “on”. La primera acción es que “si” mi Android TV está apagada (y por tanto, la televisión también) lanzará a través del Broadlink el comando de encendido. La segunda acción es lanzar los comandos para seleccionar la entrada correspondiente a través del menú.
  • Desencadenante: estado de ‘input_boolean.wii’ pase a “off”. “Si” mi Android TV está apagada lanzará a través del Broadlink el comando de apagado.

De esta forma con la activación y desactivación de la consola, la televisión reaccionará para no tener que usar el mando ni llevar a cabo ninguna acción adicional.


¿Alguna duda? Coméntalo en nuestro grupo de Telegram y te ayudaremos!
Si te ha gustado, puedes invitarme a un café o compartirlo con tus amig@s!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Send this to a friend