Commander une TV Samsung Smart TV

Bonjour,

Je suis nouveau sur Gladys v4, même si je suis le projet depuis plusieurs années.
J’ai surtout lié ma gateway xiaomi pour contrôler la température des pièces, mais pas beaucoup plus…

Je voudrais pouvoir contrôler ma smart TV Samsung via Gladys, à minima l’éteindre avec d’autres équipements via une scène (scénario type, on va se coucher ! :slight_smile: )

J’ai trouvé ce genre de projet en Python : GitHub - Ape/samsungctl: Remote control Samsung televisions via a TCP/IP connection
Et ma TV répond sur l’url : http://192.168.1.13:8001/api/v2/

{
  "device": {
    "FrameTVSupport": "false",
    "GamePadSupport": "true",
    "ImeSyncedSupport": "true",
    "Language": "fr_FR",
    "OS": "Tizen",
    "PowerState": "on",
    "TokenAuthSupport": "true",
    "VoiceSupport": "true",
    "WallScreenRatio": "0",
    "WallService": "false",
    "countryCode": "FR",
    "description": "Samsung DTV RCR",
    "developerIP": "0.0.0.0",
    "developerMode": "0",
    "duid": "uuid:91bdb683-b656-4929-aab7-a02cf64207f6",
    "firmwareVersion": "Unknown",
    "id": "uuid:91bdb683-b656-4929-aab7-a02cf64207f6",
    "ip": "192.168.1.13",
    "model": "19_MUSEM_QTV",
    "modelName": "QE65Q80RATXXC",
    "name": "[TV] Samsung Q80 Series (65)",
    "networkType": "wireless",
    "resolution": "3840x2160",
    "smartHubAgreement": "true",
    "ssid": "08:87:c6:53:af:45",
    "type": "Samsung SmartTV",
    "udn": "uuid:91bdb683-b656-4929-aab7-a02cf64207f6",
    "wifiMac": "D4:9D:C0:96:41:C6"
  },
  "id": "uuid:91bdb683-b656-4929-aab7-a02cf64207f6",
  "isSupport": "{\"DMP_DRM_PLAYREADY\":\"false\",\"DMP_DRM_WIDEVINE\":\"false\",\"DMP_available\":\"true\",\"EDEN_available\":\"true\",\"FrameTVSupport\":\"false\",\"ImeSyncedSupport\":\"true\",\"TokenAuthSupport\":\"true\",\"remote_available\":\"true\",\"remote_fourDirections\":\"true\",\"remote_touchPad\":\"true\",\"remote_voiceControl\":\"true\"}\n",
  "name": "[TV] Samsung Q80 Series (65)",
  "remote": "1.0",
  "type": "Samsung SmartTV",
  "uri": "http://192.168.1.13:8001/api/v2/",
  "version": "2.0.25"
}

Pensez-vous que ce soit possible de faire cela et d’autres personnes sont-elles intéressées ?

Merci d’avance.

Salut et bienvenu

Il y a une demande de fonctionnalité similaire sur le forum

Si tu as des connaissances en dev et du temps tu peux peut être donner un coup de main :slightly_smiling_face:

N’hésite pas à voter pour ajouter une voix aux demandes que tu aimerais voir dans Gladys

@gregfly26 c’est tout à fait possible d’ajouter le support de ce genre de périphérique à Gladys :slight_smile:

Il faudrait créer un service “Samsung Smart TV” dans Gladys. Si en plus ta TV a une API HTTP aussi simple ça devrait pas être très compliqué.

Si tu as des compétences en dev, n’hésite pas à te lancer dans un service on sera ravi d’ajouter ça à Gladys.

Je ne sais pas si tu as vu le tutoriel dans la doc qui parle de développement de service?

  1. Mettre en place un environnement de dev:
  2. Développer un service Gladys : https://gladysassistant.com/fr/docs/dev/developing-a-service
1 Like

@pierre-gilles je vais regarder tout cela, même je suis pas vraiment développeur (un peu pendant mes études).
Je suis Administrateur Systèmes et Réseaux, donc plus orienté système que dév !

Je mettrai mes avancées dans ce post, si certains ont des idées de fonctions ou de cas d’usages, je suis preneur sur vos avis !

Pensez qu’un de ces 2 propos serait une bonne piste pour ce module ?

https://github.com/Toxblh/samsung-tv-control
https://github.com/Toxblh/node-red-contrib-samsung-tv-control

Hello,

Je vais tenter de répondre. Globalement le mieux que tu puisses faire c’est tester le premier lien (la lib JS pour contrôler ta tv). Tu le tests dans un petit fichier à part en node et tu valides le fonctionnement. Tu essayes de comprendre les étapes et le fonctionnement. Et quand c’est good tu peux passer sur Gladys et t’inspirer de services. Globalement quand tu regardes le code derrière c’est une API donc assez classique ! L’intégration devrait pas être trop dur je pense :slight_smile:

En tout cas beaucoup de monde pour aider par ici donc hésites pas :slight_smile:

Bonsoir,
Désolé, mais j’ai vraiment besoin d’un coup de main pour commencer et tester le package GitHub - Toxblh/samsung-tv-control: 📺 Remote control your TV via JS!.
Je n’ai jamais utilisé NodeJS …

Je me suis créé une VM Ubuntu 20.04 sur virtualbox en réseau bridge → OK
Installation de nodeJS 12 → OK
Installation de npm → OK

npm install samsung-tv-control --save → OK
Un dossier est créé sous “/usr/lib/node_modules/npm/node_modules/samsung-tv-control”

Création d’un script d’example comme donné dans le repository → OK

Ensuite que dois-je faire ? Je suis perdu à partir de là.

Merci d’avance pour votre aide et désolé si c’est question bateau, je suis un newbie complet de NodeJS …

Hello pas de soucis c’est normal.

Si tu es admin sys tu dois connaitre a minima python :smiley:

Du coup c’est la même logique. A la racine du projet tu as un fichier package.json (toutes les informations plus les package que tu as besoins donc samsung-tv…), le node_modules qui contient toutes les librairies que tu as besoin et normalement ton fichier d’exemple (index.js / script.js / node.js …) Comme tu veux quoi :slight_smile:

Il suffit donc d’exécuter ton fichier en faisant node monfichier.js tout simplement :slight_smile:

Donc la tu dois juste avoir la bonne config (de ta tv IP / mac adress etc) et du coup tu pourras tester ton script.

const control = new Samsung(config)

C’est ton objet que tu vas pouvoir utiliser en gros ta tv. Tu vas pouvoir appliquer des méthodes comme par exemple allumer / éteindre comme vu plus bas.

Amuses toi avec ça pour te familiariser et normalement ca devrait être bon :slight_smile:

Pour info, un certain @rob-mccann travaille sur une gestion plus complète des medias, et ça semble prometteur, donc pour l’intégration des features TV, je pense qu’il faudra se baser sur son dev.