Interface RS232 pour Beamer Benq

Bonjour la communauté Jeedom,

Je souhaite partager un projet d’interfaçage d’un Beamer Benq 1090W équipé d’une interface série RS232 (mais malheureusement pas réseau).

Les objectifs sont assez simples, pouvoir allumer et éteindre le projecteur et idéalement avoir un retour d’état.

Et cette fois (nota bene 1), j’ai opté pour cette bonne vieille interface RS232 avec le connecteur DB9.
Bref, Keep It Simple Stupid ! :nerd_face:
Et si possible en WiFi… mais ça, c’est surtout que j’avais la flemme de tirer un câble RJ45 (à ma décharge, la goulotte de câbles était pleine :innocent:).

En théorie (c’est une très belle région, je ne sais pas si vous connaissez ?), je me suis dit un petit serveur série, un brin de telnet et le tour serait joué :cowboy_hat_face:

En pratique (c’est une région beaucoup plus rude, mais à la longue, on apprécie… ?), j’ai rencontré deux difficultés:

  • Budget proportionné à la mission (on va éviter le serveur Moxa à 300€).
  • Interfaçage Telnet depuis Jeedom (comment envoyer mes commandes).

Bref… voilà comment j’ai fait.

Matériel
pour le serveur série (ou serveur console) j’ai trouvé Hi-Flying qui nous fait des mini-serveurs série. Plus spécialement la gamme Elfin, avec un prix raisonnable (nota bene 2).
Ensuite, j’ai ajouté un bout de câble USB de récup’ pour alimenter tout ça en 5V (il y a un port USB A prévu à cet effet sur le Beamer), un câble DB-9 femelle et une prise RJ45 permettant de sertir deux fils sur la même broche (le Gnd est commun à l’alim et au port série).

Quelques coups de pince à couper et j’ai serti ma RJ45 sur les deux câbles (Power USB et RS232 DB9) avec 20cm de marge pour cacher tout ça sur le Beamer.

Elfin

Configuration du Elfin
Deux options, soit se connecter en WiFi sur l’Elfin (il émet son propre SSID comme un Access Point) et ouvrir la page de config, soit se connecter en série et passer en mode config en envoyant d’un bloc « +++ » (115200-8-n-1).
Niveau config, le port série est en 115200-8-n-1 pour le Beamer sans Flow Control, et le serveur série est en « TCP Server ».

Configuration sur Jeedom
Côté Jeedom, à défaut d’un Plugin Telnet/Série qui soit fonctionnel, j’ai utilisé des scripts sur la base de ce post (en passant : merci @MnX ) mais en utilisant socat plutôt que telnet. Et pour les commandes du Beamer, j’ai trouvé cette documentation de Benq.

Finalement, voici quelques commandes / scripts que j’utilise:

Power Status (info):

#!/bin/bash
{
sleep 0.1
echo "*pow=?#"
sleep 0.1
} |socat - TCP:10.10.3.22:8888,cr

Power On (action):

#!/bin/bash
{
sleep 0.1
echo "*pow=on#"
sleep 0.1
} |socat - TCP:10.10.3.22:8888,cr

Power Off (action):

#!/bin/bash
{
sleep 0.1
echo "*pow=off#"
sleep 0.1
} |socat - TCP:10.10.3.22:8888,cr

Conclusions
Bah ça marche, et je suppose qu’on peut utiliser cette recette pour autre chose qu’un beamer.
Après, un plugin officiel qui serait bien ficelé pour du Telnet, ça ne serait probablement pas de trop.
Mais en tout cas, évitez le plugin Telnet à 2€, je ne pense pas qu’il soit très utile…

Nota Bene 1
Par le passé, j’avais utilisé un Broadlink Mini pour envoyer par IR les commandes.
Mais le fonctionnement n’était pas fiable (commande off ne passe pas chaque fois) et difficultés pour programmer le commande « off » sur le Broadlink (sans parler de l’App). Et finalement pas de retour d’état.

Note Bene 2
Je ne suis pas là pour faire de la pub, mais leurs produits m’ont donné d’autes idées.
Entre les micromodules WiFi ou GSM, des interfaces RS485… il y a de quoi faire :space_invader: