Mini PC, tablette, un peu d'astuce, d'espièglerie, c'est ma télécommande ultime

Je vais vous conter ici mon projet de télécommande ultime, je ne savais pas où le mettre ailleurs, voici donc

Un peu d’histoire
Genèse du projet REmote de ses premiers germes à nos jours.

La genèse

L’idée d’une télécommande ultime est ancienne, et d’autres s’y sont attachés avant moi, d’ailleurs, je ne prétends pas que ma solution soit la meilleure : c’est avant tout celle qui me convient, et qui correspond surtout à mes capacités techniques, en terme de réalisation. J’ai possédé depuis longtemps des télécommandes programmables. D’abord plutôt simples (aucune interface, peu de mémoire, capacité d’apprentissage limitée), puis plus évoluées comme la Philips Pronto (et ses cousines), qui fut d’ailleurs longtemps ce que je considérais comme la télécommande ultime, car permettant de ranger dans un placard toutes les autres télécommandes, et permettant, surtout, de configurer ses écrans, quasiment sans limitation de mémoire (en tout cas je ne les ai jamais atteintes). Malheureusement, ce genre de télécommande était relativement cher, encore plus cher si l’on voulait disposer d’un écran tactile en couleur, qui, dans tous les cas, restait de taille réduite, obligeant à créer des écrans multiples avec l’obligation de naviguer de l’un à l’autre en permanence.

Mais surtout, l’arrivée d’appareils munis de télécommandes Radio ou Bluetooth obligeaient à nouveau de devoir encombrer sa table basse ou son canapé d’autres télécommandes, non supportées par les télécommandes programmables basées sur l’infrarouge. Mon idée initiale était donc plutôt ambitieuse : développer une télécommande qui permettrait de reproduire aussi bien les signaux infrarouges, que Bluetooth, et permettant d’utiliser une API web telle que celle fournie par la Freebox V5 puis V6. Concernant l’infrarouge, mon choix s’est rapidement porté sur le dispositif USB-Uirt, petit boitier se connectant sur un port USB, et qui, grâce à un driver et une API .net accessible, m’a rapidement permis de faire mes premiers tests.

A l’époque, le Tablet-PC était à la fois balbutiant et agonisant. Le matériel d’alors ne permettait pas d’obtenir un compromis puissance/autonomie très satisfaisant, surtout dans un encombrement réduit. J’optais toutefois pour un UMPC Samsung Q1 Ultra, petit portable de 7 pouces avec écran tactile résistif.

Mais à l’époque, les add-on Tablet-PC de Windows étaient plutôt limités, et la prise en charge native des gestes, et notamment du déplacement au doigt (sans avoir à utiliser des ascenseurs) étaient réduits, ou carrément inexistants. Je m’attelais donc au développement de classes d’objets Windows Forms (boutons, panneaux, etc…) qui me permettraient d’utiliser l’écran tactile de façon plus confortable.J’obtins assez vite un résultat satisfaisant.

Parallèlement à cela, je me lançais dans la recherche du moyen de faire en sorte qu’un ordinateur muni d’un adaptateur Bluetooth se comporte non pas comme un « récepteur », mais comme un « appareil », dans le but de lui faire communiquer avec le récepteur (une PS3 par exemple) en lui faisant croire être une télécommande. Malgré de nombreuses heures de recherche et la découverte de pistes intéressantes, je n’ai malheureusement pas eu de succès dans cette démarche, et me suis décidé à laisser cette partie pour plus tard. Il fallait les bon drivers, disposant de la bonne API, et de la documentation adéquate, n’ayant pas réussi à trouver ou découvrir ce support natif dans le framework .Net.

Enfin, toujours en parallèle, je me suis attelé au développement d’un outil qui permettrait la configuration de ma télécommande, en permettant la création des appareils, l’apprentissage de leurs codes (infrarouge, ou tout autre type que je pourrais être amené à supporter plus tard), la réalisation d’écran, etc. Je me suis inspiré pour cela de l’éditeur des Philips Pronto, en adaptant largement ses principes, de façon à les rendre à la fois plus génériques (type de signal) et plus simples (notamment pour rendre l’édition moins fastidieuse).

Encore une fois, j’arrivais assez vite à un premier embryon sympathique… mais l’ensemble devra rester en plan pendant près de 8 ans…

Entre temps, la révolution du tactile avait eu lieu, réveillant l’idée du Tablet PC après une véritable renaissance via les téléphones. Windows gérait désormais nativement le tactile, de véritables tablettes permettaient de faire tourner Windows de façon confortable, et pendant plusieurs heures… mais cela remettait en question un de mes choix initial qui était, à l’origine, d’intégrer le dispositif USB-Uirt dans le boitier de mon Q1 (qui faisait bien 1,5 cm d’épaisseur…). Si je n’avais pas vraiment avancé sur la partie logicielle de mon projet, j’étais aussi bloqué par certains des choix initiaux, sauf à déporter la partie émission infrarouge dans un autre appareil, qui se devrait donc d’être à la fois discret, et peu onéreux.

L’arrivée du Raspberry PI m’ouvrit de nouvelles perspectives, d’autant que je savais l’USB-Uirt supporté par des applications linux. Encore une fois, j’échouais à trouver une solution satisfaisante (et compatible avec mes compétences, mon temps libre… et ma motivation). Je laissais tomber cette voie qui aurait nécessité, faute d’une API documentée, l’utilisation d’autre logiciels existants peu adaptés, et l’utilisation d’un codage infrarouge RAW qui nécessitait lui le développement d’un convertisseur pour le format que j’avais décidé d’utiliser. En effet, j’avais décidé d’utiliser dès le début le format utilisé par les Philips Pronto, sachant l’existence d’une base de données facilement accessible de codes d’une multitude d’appareil, et je ne me sentais pas le courage de remettre en question ce choix.

Puis, récemment, l’arrivée sur la marché de mini PC de plus en plus abordables, tournant sous Windows, et consommant suffisamment peu d’électricité, me permit de trouver enfin la solution qui m’interdisait tout faux prétexte pour remettre à plus tard ce projet presque mort.

La solution s’éclaircissait donc, avec l’utilisation d’une tablette Windows, affichant les écrans configurés par mon éditeur, et communiquant, via wifi, avec un petit « serveur » de télécommande, convertissant les commandes envoyées par la tablette, en signal infrarouge. Il ne restait plus qu’a développer un petite couche de communication par socket, l’intégrer comme un nouveau mode d’adressage de commandes infrarouges à mon logiciel de télécommande et mon éditeur, et développer un petit logiciel serveur. Je tâtonnais un peu, avant de remettre à nouveau les choses en plan quelques long mois, y revenant de temps en temps sans vraiment avancer.

Enfin, à l’automne 2016, des mini-pc vraiment abordables apparaissent, je saute le pas en achetant un Voyo 2, et, depuis, les choses ont plutôt bien avancé…

Solution

La solution actuelle a récemment beaucoup évolué, et s’articule autour de 3 composants logiciels :
Un éditeur (R.E.mote Editor), permettant d’éditer une configuration de télécommande (définition des appareils, des fonctions, apprentissage des codes de télécommande, design des boutons et des écran, etc…)
Une application de télécommande (R.E.mote), qui interprète la configuration de télécommande pour afficher les écrans définis dans l’éditeur, et envoyer les commandes au serveur via le réseau local.
Une application serveur (R.E.mote Server), destinée à être installée sur le mini PC sur lequel le matériel nécessaire est aussi connecté, et qui reçoit les commandes envoyées par l’application cliente, et les route vers le matériel correspondant.

L’application de télécommande ne fonctionnant que sous Windows, l’éditeur permet de générer des pages html correspondant aux écrans de l’application, afin d’obtenir le même résultat depuis n’importe quel navigateur Web, sous n’importe quel OS (Android, IOS, MacOS…). Le serveur intègre donc un mini serveur web, pour communiquer avec le navigateur (envoi des pages et réception des commandes sous forme de web service) et réagir aux commandes, tout comme si elles provenaient de l’application de télécommande. Outre le dispositif USB-Uirt, permettant au serveur de générer des signaux infrarouges en fonction des commandes reçues, le dispositif CEC Adapter de Pulse-8 est désormais aussi supporté afin de pouvoir envoyer des commandes d’allumage ou de mise en veille à destination d’un appareil particulier, via la prise HDMI et le protocole CEC (je pense à terme gérer l’envoi de la totalité des touches virtuelles définies par le protocole CEC).

R.E.mote Editor

Avant d’aller plus loin, quelques images de l’éditeur de configuration…

L’application de télécommande
Quelques images de l’application de télécommande, sur une tablette Dell Venue 8 pro. Le menu a évolué depuis.

Affichage des écrans dans un navigateur

La génération des pages html a été peaufinée pour s’adapter de façon plus efficaces à toutes les tailles d’écran.

Le logiciel serveur

La suite bientôt.

La suite…

Principe

Les trois composants de REmote sont

  • le serveur de télécommande, REmote Server
  • l’éditeur de configuration, REmote Editor
  • l’application de télécommande, REmote

REmote server

Le serveur tourne sur un ordinateur Windows 10 et doit être connecté au réseau local (Wifi ou Ethernet). Sur le serveur sont connectés, sur des prises USB 2.0, les dispositifs USB Uirt et HDMI-CEC Adapter.

La communication privilégiée de l’éditeur et de l’application avec le serveur se fait par une socket tcp sur un port dédié, pour l’émission des commandes vers le serveur, et la réception des messages retours éventuels (apprentissage de code).

Le serveur implémente aussi un mini serveur http, pour communiquer avec l’éditeur (transfert de la configuration et des pages HTML vers le serveur), l’application de télécommande (transfert de la configuration du serveur vers l’application), et tout navigateur web pouvant accéder à l’url du serveur sur le réseau local par connection wifi ou Ethernet (transfert des commandes vers le serveur par http).

Le serveur http répond aux requêtes de type GET (navigation, envoi de commande) et POST (envoi de la configuration et des pages html générées par l’éditeur).
L’url du serveur est du type http://nom_d_hote:8080/remote/nom_de_fichier pour les requêtes de navigation, et du type http://nom_d_hote:8080/api?commande pour les requêtes de commande.

Le nom d’hôte est soit le nom Windows du serveur, soit ce nom suivi de « .local », soit plus simplement l’adresse ip du serveur sur le réseau local.

Le serveur héberge le fichier de configuration décrivant les appareils, leurs fonctions, les panneaux et les activités définis dans l’éditeur. La mise à jour de la configuration, depuis l’éditeur, se fait avec la mise à jour des pages html. Lors d’une mise à jour, l’application de télécommande se mettra à jour automatiquement en récupérant la nouvelle configuration depuis le serveur.
Le processeur de commande reçoit les commandes (qu’elles viennent de l’éditeur, de l’application de télécommande, ou d’un navigateur) et les transmet, via une queue de messages dans une thread indépendante, à leurs destinataires.

Notes: les commandes à destination des appareils à commande http sont envoyée au travers du serveur, bien qu’elles pourraient être communiquées directement de l’émetteur (éditeur, application de télécommande ou navigateur), ceci afin de s’assurer que les commandes soient toutes envoyées dans l’ordre (notamment dans le cas des macro-commandes).
Plusieurs clients (éditeurs, télécommandes, navigateurs) peuvent communiquer avec un unique serveur.

REmote Editor

L’éditeur fonctionne sur tout ordinateur/tablette sous Windows 10.
L’éditeur exporte la configuration définie par l’utilisation vers le serveur par une requête http POST.

L’éditeur peut aussi envoyer des commandes au serveur afin de test (par exemple test d’une macro-commande), ou pour l’apprentissage de codes infrarouges, via la socket TCP.

REmote

L’application de télécommande fonctionne sur tout ordinateur/tablette sous Windows 10.
L’application de télécommande récupère le fichier de configuration depuis le serveur via une commande http GET. Elle interroge régulièrement le serveur pour voir sur la configuration a changé, et la télécharge le cas échéant (ce principe évoluera sans doute à l’avenir).
Les commandes sont envoyées au serveur via la socket TCP.

Navigateurs web

Les pages html générées par l’éditeur et hébergées par le serveur permettent à tout navigateur (quelque soit l’OS), d’envoyer les commandes des différents boutons vers le serveur, sous forme de requêtes http GET. Le seul prérequis est que l’ordinateur/tablette/téléphone soit connecté au même réseau local que le serveur.

… à suivre …

la suite…

Fonctionnalités

REmote offre les fonctionnalités suivantes:

  • Définition des appareils à commander et de leur liste de fonctions
  • Définition de panneaux constitués de boutons ou d’autres panneaux
    -Affectation de commandes simples ou complexes à chaque bouton

Définition des activités

Appareils
Chaque appareil que vous voudrez commander doit être défini afin de lui attribuer ensuite les fonctions de commande associées. Un appareil (par exemple votre téléviseur, votre barre de son, etc…) est aussi défini par le type de commande permettant de l’adresser (pour l’instant infrarouge ou http).

Un fois défini, vous pouvez créer chacune de ses fonction, et le code correspondant (soit un code infrarouge, soit une requête http). Une fonction correspond à un bouton de la télécommande originale de l’appareil, par exemple passer à la chaîne TV supérieure ou inférieure, augmenter ou diminuer le volume, etc…

Vous pouvez attribuer un nom à chaque appareil et chacune de ses fonctions, afin de pouvoir les identifier aisément ensuite.

Evidemment, même s’il est conseillé de définir toutes les fonction connues de chaque appareil, libre à vous de ne définir que celles que vous avez l’intention d’utiliser.

Panneaux
Vous pouvez définir des panneaux afin de regrouper des boutons. Un éditeur de panneaux vous permet de disposer les boutons aisément à l’aide de la souris. Chaque panneau peut aussi être ensuite réutilisé tel quel dans un autre panneau.

Ainsi, il est très aisé d’organiser un ensemble de fonctions que vous voudriez voir apparaître sur plusieurs panneaux, sans avoir à les éditer séparément à chaque fois. D’autant que la modification d’un panneau est automatiquement répercutée sur chaque panneau qui le réutilise.

Boutons et macro-commandes
A chaque bouton peut être associé un ensemble de fonctions choisies parmi les fonctions des appareils déjà définies. Des commandes complexes (macro-commandes) peuvent ainsi être effectuées sur l’appui d’un seul bouton.

Ainsi, pour regarder une chaîne de votre box internet, vous n’avez plus à allumer séparément votre téléviseur, votre box, votre barre de son, mettre votre téléviseur sur l’entrée HDMI sur laquelle est connectée votre box, mettre votre barre de son sur l’entrée correspondante, etc… mais plutôt attribuer à un unique bouton l’ensemble des ces fonctions.

Outre les fonctions des appareils, une macro-commande peut effectuer une pause paramétrable (pour par exemple attendre l’allumage de votre téléviseur avant de lui affecter une entrée HDMI), envoyer une commande HDMI CEC (allumage ou mise en veille d’un appareil), ou (bientôt) basculer vers une autre activité (voir plus loin).

Exemple de macro-commande:

Cette macro-commande effectue les opérations suivantes:

  • Envoi d’une commande HDMI CEC d’allumage pour l’appareil n°4 de la chaîne HDMI (Freebox)
  • Envoi du signal infrarouge d’allumage de la barre de son
  • Envoi du signal infrarouge de l’entrée HDMI 3 d’une matrice HDMI
  • Envoi répété 5 fois du signal infrarouge d’allumage du téléviseur
  • Pause d’une seconde
  • Envoi du signal infrarouge de sélection de l’entrée HDMI 1 de la barre de son
  • Pause de deux secondes
  • Envoi répété 5 fois du signal infrarouge de selection de l’entrée HDMI 2 du téléviseur

Chaque fonction d’appareil (infrarouge ou http) peut être envoyée un nombre paramétrable de fois, ce qui peut être nécessaire parfois selon l’état de l’appareil (par exemple ici dans la phase d’allumage du téléviseur).

Lorsqu’un bouton ne déclenche qu’une commande simple (unique commande d’un appareil), vous pouvez maintenir le bouton appuyé pour que la commande soit effectuée de façon répétée.
Activités

Vous pouvez définir des activités en fonction de vos besoins. Chaque activité correspond à l’un des panneaux que vous avez définis.

Ainsi, vous pouvez définir un panneau pour regarder la télévision à partir de votre box internet, une autre pour regarder Netflix sur votre téléviseur, une autre pour écouter la radio sur votre ampli. En définissant une activité pour chacun de ces panneaux, vous pourrez accéder directement à chacun d’eux via un menu de l’application.

La définition de vos panneaux doit donc se faire en fonction des activités que vous voulez pratiquer, et des fonctions nécessaires pour chacune d’elles. Vous n’êtes pas limité en nombre de panneaux, ni dans la façon dont vous les organisez, afin notamment de pouvoir facilement les réutiliser.

Dans tous les cas, si vous n’êtes pas satisfait de l’organisation de vos panneaux ou de vos activités, vous pouvez les modifier à loisir.

Appareils supportés

REmote supporte pour l’instant deux types d’appareil:

-Les appareils à commande infrarouge

  • Les appareils à commande par requête http (par exemple la Freebox)
  • Les appareils commandés par le protocole HDMI CEC ne sont pas encore supportés, mais les commandes d’allumage (Power On) et de mise en veille (Stand By) peuvent être envoyées à un appareil spécifique (via son identifiant)

Appareils à commande infrarouge

Virtuellement tous les appareils commandés par infrarouge peuvent-être commandés, sous réserve que la plage de fréquence du signal soit compatible avec le dispositif d’émission/apprentissage utilisé.
Le seul dispositif actuellement supporté est l’USB UIRT, avec une plage de fréquence de 34 à 40 khz en réception (56 khz en option), et de 20 à 60 khz en émission.

L’apprentissage du signal n’est pas obligatoire, car le format des codes infrarouges utilisé est le format HEX des télécommandes Philips Pronto. Il est possible de trouver des codes pour des nombreux appareils sur internet, et notamment sur le site Remote Central, et notamment des codes discrets qui ne sont pas forcément accessibles sur les télécommandes, mais reconnus par les appareils (par exemple pour commander une entrée externe spécifique sans avoir à balayer l’ensemble des entrées de l’appareil concerné).

Exemple de code:
0000 006F 0022 0002 0150 00AC 0016 0016 0016 0016 0016 0015 0016 0040 0016 0040 0016 0040 0016 0040 0016 0015 0016 0040 0016 0041 0016 0041 0016 0015 0016 0015 0016 0015 0016 0016 0016 0040 0016 0015 0016 0015 0016 0040 0016 0041 0016 0015 0016 0015 0016 0040 0016 0040 0016 0040 0016 0040 0016 0015 0016 0016 0016 0040 0016 0040 0016 0015 0016 0016 0016 05BC 0150 0056 0016 0E05

Le dispositif USB UIRT dispose en outre d’un connecteur jack permettant d’y relier un prolongateur de signal, ce qui facilite l’intégration dans un meuble télé.

Appareils à commande par requête http

Je ne connais pas d’autre appareil que les Freebox répondant à ce genre de commande, mais il est possible qu’il en existe d’autres. Ici, l’appareil répond à une url (ce que vous tapez dans votre navigateur pour accéder à une page web).

Exemple de requête:
http://hd1.freebox.fr/pub/remote_control?code=12345678&key=power

Tout appareil répondant à une requête de ce type (webservice de type rest) pourra être commandé.

Ne sont pas prises en compte les requête de type SOAP, même si c’est sans doute une évolution envisageable si le besoin s’en fait sentir.

Appareils à commande HDMI CEC

L’éventail des commandes disponibles pour les appareils compatibles est standardisé, et la possibilité de gérer l’ensemble de ces commandes est d’ores et déjà planifié. Pour l’instant seuls les commandes d’allumage et de mise en veille sont gérées, sous forme de commandes génériques, adressée à un appareil identifié par son numéro dans la chaîne HDMI.

Le seul dispositif supporté actuellement est le HDMI-CEC Adapter de Pulse Eight. Ce dispositif existe sour forme de boîtier externe ou interne (pour certaines cartes mères). Logiquement, les deux sont supportés.

Les commandes HDMI CEC posent toutefois quelques problèmes
tous les appareils compatibles ne répondent pas à l’ensemble des commandes

  • tous les appareils compatibles ne réagissent pas forcément de la même façon à une commande
  • l’allumage et l’extinction synchronisées des appareils compatibles n’est pas très pratique car il ne permet pas de contrôler précisément l’état des appareils

Néanmoins, le support complet sera sans doute implémenté très prochainement.

Autres types d’appareils

Appareils à télécommande BlueTooth
Le support des appareils à télécommande Bluetooth n’est pas prévu, même si théoriquement possible. C’est une vraie limitation tant le nombre d’appareils de ce type tend à augmenter actuellement, même si cela va clairement à l’encontre des possibilités de regroupement de commandes, à moins qu’une standardisation ait lieu… ce dont je doute malheureusement.

Si je n’ai pas abandonné l’espoir de réussir un jour a supporter ces appareils, ce n’est plus une priorité actuellement.

Appareils à télécommande radio
Les télécommandes radio sont surtout utilisées dans la domotique, mais je pense personnellement que le Bluetooth ou le Wifi deviendront la norme (du moins je l’espère). Quoiqu’il en soit, je n’ai pas eu le temps de me pencher sur la question pour l’instant.

Autres appareils
Je ne prétends pas connaître tous les types de télécommande, et j’invite ici le lecteur à me faire part de toute information qui me permettrait d’étendre les capacités et la compatibilité de REmote.
De la même façon, tout conseil que vous voudrez bien me faire pour reconsidérer certains oublis ou limitations seront pris en compte avec intérêt.

… à suivre …

la suite…

Voici quelques photos de l’intégration dans mon salon:

On voit ici le Z83 II servant de serveur, auquel sont connectés, par USB, l’adaptateur HDMI-CEC (caché derrière), et l’USB-UIRT (posé sur le meuble TV, voir photo suivante).

Sur la droite du serveur, la pyramide Marmitek est un récepteur de transmetteur de signal infrarouge. En effet, l’USB-UIRT étant positionné sur le meuble TV (pour commander directement les appareils extérieurs), il faut pouvoir reporter le signal infrarouge dans le meuble TV.

On voit ici, sur la droite de ma barre de son, et donc sous ma télé, l’USB-UIRT (sous un récepteur audio Bluetooth), et, sur sa droite, le transmetteur de signal infrarouge.

L’ensemble est donc plutôt discret.

A noter, les signaux infrarouge, dont l’émission est commandée par le serveur, sont tous émis par l’USB-UIRT. La puissance du signal émis permet de le poser sous le téléviseur, à coté des appareils à commander. Dans l’immense majorité des cas, le signal émis se réfléchit sur les murs / meubles pour atteindre la télé et la barre de son, mais aussi le transmetteur infrarouge.
Toutefois, pour garantir que le signal n’est jamais perdu, j’ai ajouté, sous le transmetteur, une diode infrarouge, connectée à l’USB-UIRT (c’est quelques chose de standard et facile à trouver).

Voila, n’hésitez pas à commenter.

sujet intéressant, me disais bien que ton avat’ me disait quelque chose, je suis déjà tombé sur ton logiciel lors de recherches il y a longtemps.

les télécommandes Harmony ça te parle? j’en ai une à conf mais c’est la grosse misère…

PS: à l’occaz je fusionnerai sans doute les 4 threads

Fusionne si tu veux.
Je n’ai commencé à communiquer dessus que depuis janvier (histoire d’avoir un truc qui marche bien :slight_smile: ).

Les Logitech, je n’aime pas trop, pas d’ecran, même si apparemment il en existe une avec une appli compagnon. Mais souvent avec ce genre de telco, la configuration est penible car elle ne te permet pas vraiment de faire ce que tu veux. Et au final, tu passes ton temps à passer d’un écran à l’autre.
Moi j’essaye de faire en sorte que ce soit à la fois lisible et simple, que tu puisses avoir accès à toutes les commandes nécessaires pour une activité donnée sans avoir à changer d’ecran, et que la configuration reste relative cement simple. Mais trop simple ça limite… donc…

Les pronto étaient top pour ça, mais moins bien que ma solution forcément :slight_smile:

pourtant le soft pour la telco free je suis sûr de l’avoir vu y a plusieurs années, p-ê pas avec autant de fonctions (macro toussa)

j’avais pas mal joué avec la freebox revolution à cette époque

Y a eu pas mal de chose pour la freebox. Mais non c’etait pas moi :slight_smile: j’aî rien eu de probant avant l’annee Dernière. Trop de flemme :slight_smile:
J’ai trop fait ressembler mes ecrans de configuration de la telco free a la telco de la freebox ça doit être pour ça.

hop fusionné comme promis :hot:

Bien joué

Pas de grosse nouveauté, je travaille lentement à l’amélioration de la version web avec la prise en compte des appuis/relâchés et surtout des spécificités Safari.

Parce que ça tourne direct sur Edge mais alors sur un iphone c’ezt La galeeeeeeeeere

Finalement ça y est les pages web pour la commande depuis un navigateur fonctionnent avec gestion de l’appui et du relâché, et gèrent la répétition automatique de commandes sur appui long. C’est facile à dire, facile à faire sur une appli Windows, mais galère avec safari et ses spécificités propriétaires …
C’est ce qui manquait pour utiliser un iPhone en télécommande confortablement.

En cours de réalisation à la vitesse de l’escargot flemmard, un touchpad pour contrôler la souris du serveur (pratique quand celui ci est branché à la télé)

Bon déjà je suis passé du TCP à l’UDP pour que ça aille plus vite. Aujourd’hui peut être…

Forcer la position de la souris sur le serveur est moins simple que prévu, j’ai bon espoir d’y arriver aujourd’hui. La transmission des changements de position est déjà opérationnelle. Y a plus qu’a…

Bon ben ça marche !

Le touchpad gère désormais aussi les clicks gauche et droit. En plus des boutons dédiés.

En prévision la gestion du clavier PC. Dans un premier temps je permettrai d’envoyer la combinaison de touches permettant d’afficher le clavier virtuel sur le PC serveur. Dans un second temps peut être la gestion de la totalité des touches clavier mais ce sera chronophage :slight_smile:
Parce que le serveur de télécommande peut aussi servir de mediacenter donc ce serait dommage d’utiliser un clavier sans fil en plus de l’appli télécommande.

Il faut aussi que je prenne du temps pour refaire au propre les pages web pour la commande depuis un smartphone. Mais je suis flemmard en ce moment.

Quelques nouvelles.
J’ai laissé tombé la simulation du clavier. Trop de contraintes liées à la sécurité Windows, obligation de certifier l’application, et, accessoirement, pas le temps d’étudier tout ça. C’est dommage, tout le code était écrit… mais ça ne fonctionnait pas.
Du coup j’ai implémenté à la place la possibilité de lancer une application sur le serveur (le clavier virtuel par exemple :))
Sinon, suite à la réception de ma Freebox V7 j’ai fini l’integration des commandes hdmi cec (du coup je peux commander ma V7 :slight_smile: )

Pas de grosses nouveautés en ce moment. Je suis malade donc très flemmard.

Cela dit, j’ai refait l’implementation propres des commandes hdmi cec ( et encore beaucoup de nettoyage a faire).
La Freebox Delta implémentant les commandes via http (j’avais pas vu !!!) tout cela n’etait pas indispensable mais il fallait bien que le le fasse tout ou tard.

Mais du coup j’ai pas mal de boulot pour tout remettre correctement à plat :stuck_out_tongue: