Requête HTTP pour Samsung Smart TV

Capteurs et actionneurs HTTP

Re: Requête HTTP pour Samsung Smart TV

Messagepar hornet49 » 18 Juin 2018 16:52

Alors j'ai bien la demande qui apparaît sur la TV
j'accepte mais si je relance la même url de test, ça me redemande encore la validation sur la TV.
je tourne en rond donc j'ai peut être zappé un paramètre :-( mais lequel ???
voici l'url que je tape pour test:
http://192.168.x.xx/script/?exec=ancien ... KEY_SOURCE
hornet49
 
Messages : 105
Inscription : 01 Nov 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar P@t » 18 Juin 2018 17:59

Bon, déjà, c'est un peu le bazar ton code...
Tout d'abord, même si ça fonctionne, il faut éviter d'utiliser les variables super-globales ($_REQUEST).
Ensuite, il y a un problème de commande, puisque tu as:
Code : Tout sélectionner
$_REQUEST["key"] = getArg('command');
$key = "KEY_" . $_REQUEST["key"];

avec command=KEY_SOURCE... ce qui donne au final $key = KEY_KEY_SOURCE

Bouge pas, je vais déjà te faire un code basique...
Dernière édition par P@t le 18 Juin 2018 19:56, édité 1 fois.
P@t
 
Messages : 223
Inscription : 04 Déc 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar P@t » 18 Juin 2018 18:24

Allez, voilà un script qui devrait fonctionner:
Code : Tout sélectionner
<?

$tv_ip_or_mac = getArg('tv_ip_or_mac');
$tv_ip = sdk_get_ip_from_ip_or_mac($tv_ip_or_mac);

$eedomus_mac = getArg('eedomus_mac');
$eedomus_ip = sdk_get_ip_from_ip_or_mac($eedomus_mac);

$command = getArg('command');

$appstring = "iphone..iapp.samsung"; //What the iPhone app reports
$tvappstring = "iphone.UD40D6310.iapp.samsung"; //Might need changing to match your TV type
$remotename = "eedomus"; //What gets reported when it asks for permission/also shows in General->Wireless Remote Control menu

$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = socket_connect($sock, $tv_ip, '55000');
if( $result === false)
{
   die ("Could not create socket");
}

$ipencoded = base64_encode($eedomus_ip);
$macencoded = base64_encode($eedomus_mac);
$remotenameencoded = base64_encode($remotename);

$messagepart1 = chr(0x64) . chr(0x00) . chr(strlen($ipencoded)) . chr(0x00) . $ipencoded . chr(strlen($macencoded)) . chr(0x00) . $macencoded . chr(strlen($remotenameencoded)) . chr(0x00) . $remotenameencoded;
$part1 = chr(0x00) . chr(strlen($appstring)) . chr(0x00) . $appstring . chr(strlen($messagepart1)) . chr(0x00) . $messagepart1;
socket_write($sock, $part1, strlen($part1));
echo $part1;
echo "\n";

$messagepart2 = chr(0xc8) . chr(0x00);
$part2 = chr(0x00) . chr(strlen($appstring)) . chr(0x00) . $appstring . chr(strlen($messagepart2)) . chr(0x00) . $messagepart2;
socket_write($sock, $part2, strlen($part2));
echo $part2;
echo "\n";

//Preceding sections all first time only
if (!empty($command))
{
   //Send remote key
   $key = base64_encode($command);
   $messagepart3 = chr(0x00) . chr(0x00) . chr(0x00) . chr(strlen($key)) . chr(0x00) . $key;
   $part3 = chr(0x00) . chr(strlen($tvappstring)) . chr(0x00) . $tvappstring . chr(strlen($messagepart3)) . chr(0x00) . $messagepart3;
   socket_write($sock,$part3,strlen($part3));
   echo $part3;
   echo "\n";
}

socket_close($sock);
echo "\n\n";

?>


Pour tester:
Code : Tout sélectionner
http://192.168.xxx.xxx/script/?exec=ancien.php&tv_ip_or_mac=F8:04:2E:FA:XX:XX&eedomus_mac=00:60:6E:33:XX:XX&command=KEY_SOURCE


Avec comme arguments:
- tv_ip_or_mac => adresse IP ou MAC de la télé (mais il est préférable d'utiliser l'adresse MAC)
- eedomus_mac => l'adresse MAC de la box eedomus

Apparemment, l'adresse MAC de la box est requise... C'est peut-être pour ça qu'il te demandait systématiquement l'autorisation sur ta télé.

Pour récupérer les adresses MAC, vous pouvez aller ici:
http://EEDOMUS_IP/config/netscan.php
P@t
 
Messages : 223
Inscription : 04 Déc 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar hornet49 » 18 Juin 2018 22:33

Merci pour ton aide désoler de pas avoir répondu plus tôt j'ai eut des problèmes de plomberie lol
mais je regarde ça mardi soir je test et j'te tiens au jus !!!
encore merci !!!
hornet49
 
Messages : 105
Inscription : 01 Nov 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar hornet49 » 19 Juin 2018 16:59

Alors je confirme le script fonctionne parfaitement maintenant !!!
faut juste utilisé les bonnes commande de touche par rapport au model de TV.
mais sinon ça marche nickel chez moi ;-)
plus qu'a adapter le scripte je pense que ça j'aurai pu le faire car j'ai fait celui du WES mais ça serai surement mieux d'avoir qu'un script samsung donc effectivement si tu peux le "fusionner" avec le tiens et je test pour te dire si ça marche ;-)
Encore merci pour ton aide, ça va être plus simple qu'avec mon RM mini qui ne marche pas quand quelqu'un passe devant forcément :-(
hornet49
 
Messages : 105
Inscription : 01 Nov 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar P@t » 21 Juin 2018 12:49

Si tu sais comment faire un plugin, alors je te laisse œuvrer ;-)
P@t
 
Messages : 223
Inscription : 04 Déc 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar hornet49 » 22 Juin 2018 08:57

Ok je m'y colle, juste une petite question, est il possible d'optimisé le scripte en évitant de demander l'adresse MAC de l'EEDOMUS ? on doit pouvoir la trouver ou la déduire sans la demander dans un champs je pense ?
hornet49
 
Messages : 105
Inscription : 01 Nov 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar P@t » 22 Juin 2018 09:02

hornet49 a écrit:Ok je m'y colle, juste une petite question, est il possible d'optimisé le scripte en évitant de demander l'adresse MAC de l'EEDOMUS ? on doit pouvoir la trouver ou la déduire sans la demander dans un champs je pense ?

Très bonne idée... Je demande à la team s'il serait possible de récupérer ça directement dans le script.
P@t
 
Messages : 223
Inscription : 04 Déc 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar P@t » 22 Juin 2018 11:26

J'ai trouvé un autre script écrit en python sur Github, qui n'utilise ni l'adresse MAC, ni l'adresse IP de l'expéditeur. Du coup, est-ce que tu peux essayer avec ce script:

Code : Tout sélectionner
<?

$tv_ip_or_mac = getArg('tv_ip_or_mac');
$tv_ip = sdk_get_ip_from_ip_or_mac($tv_ip_or_mac);

$command = base64_encode(getArg('command'));
$description = base64_encode('eedomus remote controller');
$id = base64_encode('eedomus');
$remotename = base64_encode('eedomus');

$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = socket_connect($sock, $tv_ip, '55000');
if( $result === false)
{
   die ("Could not create socket");
}

$payload = chr(0x64) . chr(0x00);
$payload .= chr(strlen($description)) . chr(0x00) . $description;
$payload .= chr(strlen($id)) . chr(0x00) . $id;
$payload .= chr(strlen($remotename)) . chr(0x00) . $remotename;

$packet = chr(0x00) . chr(0x00) . chr(0x00) . chr(strlen($payload)) . chr(0x00) . $payload;

socket_write($sock, $packet, strlen($packet));

//Send remote key
$payload = chr(0x00) . chr(0x00) . chr(0x00) . chr(strlen($command)) . chr(0x00) . $command;

$packet = chr(0x00) . chr(0x00) . chr(0x00) . chr(strlen($payload)) . chr(0x00) . $payload;

socket_write($sock,$packet,strlen($packet));

socket_close($sock);

?>

Histoire d'être sur que ça fonctionne correctement, il faudrait peut-être d'abord dissocier "eedomus" de ta télé (il doit y avoir un menu sur la télé avec les périphériques autorisés).

Ensuite, tu peux tester en faisant:
Code : Tout sélectionner
http://192.168.xxx.xxx/script/?exec=ancien.php&tv_ip_or_mac=F8:04:2E:FA:XX:XX&command=KEY_SOURCE

Toujours avec tv_ip_or_mac => adresse IP ou MAC de la télé.
P@t
 
Messages : 223
Inscription : 04 Déc 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar hornet49 » 22 Juin 2018 15:22

Alors je commence par le début,
oui j'ai trouver dans les paramètres de la TV les MAC autorisé, que j'ai donc supprimé.
après j'ai mis ton script sur l'EEDOMUS mais quand je lance la requête html rien ne se passe même pas un message sur la page web et rien sur la TV :-/
testé avec la MAC => nogo (ça marche pas)
testé avec l'IP => nogo
hornet49
 
Messages : 105
Inscription : 01 Nov 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar P@t » 22 Juin 2018 16:12

Arg... est-ce que tu as un environnement linux pour tester ce script écrit en python?
https://github.com/Ape/samsungctl

Quand tu as supprimé les appareils autorisés, tu voyais apparaître les adresses MAC?
P@t
 
Messages : 223
Inscription : 04 Déc 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar hornet49 » 22 Juin 2018 18:12

Dsl pas de linux mais j'ai python 3 d'installé avec IDLE car j'ai quelque script que je fais tourner un python lol
j'avais bien supprimé les appareils autorisé mais il m'a rien demandé.
j'ai retenté avec "l'ancien.php" lui me redemande bien les autorisations...
hornet49
 
Messages : 105
Inscription : 01 Nov 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar hornet49 » 23 Juin 2018 00:20

Je viens de posté le script, en attente de validation...
je ferais une mise à jour si on trouve le moyen de récupérer la MAC EEDOMUS ;-)
un grand merci à toi p@t sans quoi j'aurai pas réussi à faire grand chose !!!!! En tout cas c'était un plaisir de "travailler" avec toi !!! :lol: :lol: :lol:
hornet49
 
Messages : 105
Inscription : 01 Nov 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar P@t » 23 Juin 2018 14:56

Parfait! Est-ce que tu as utilisé le "netscan" (avec la petite loupe) pour récupérer facilement les adresses MAC à la création du périphérique? Tu peux jeter un oeil au plugin yeelight pour voir comment ça marche...
P@t
 
Messages : 223
Inscription : 04 Déc 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar hornet49 » 24 Juin 2018 10:07

ha non je savais pas qu'on pouvais l'intégrer dans la création, je vais regarder ça car effectivement ça peut aider ;-)
hornet49
 
Messages : 105
Inscription : 01 Nov 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar hornet49 » 24 Juin 2018 10:17

c'est rajouter et fonctionnel (c'était simple en faite)
mais du coup j'attends la validation de l'autre avant de faire la mise a jour ?
hornet49
 
Messages : 105
Inscription : 01 Nov 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar P@t » 24 Juin 2018 12:26

Je crois que tu peux annuler l'autre et reproposer le nouveau à la validation...
P@t
 
Messages : 223
Inscription : 04 Déc 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar hornet49 » 27 Juin 2018 11:28

Le plugin est toujours en attente de validation, c'était moins long quand j'avais fait le plugin pour le WES :-/
hornet49
 
Messages : 105
Inscription : 01 Nov 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar hornet49 » 27 Juin 2018 13:29

Super, le plugin est dispo ;-)
il s'appel TV SAMSUNG OLD donc pour les TV samsung d'avant 2016
hornet49
 
Messages : 105
Inscription : 01 Nov 2017

Re: Requête HTTP pour Samsung Smart TV

Messagepar jcmontigny » 27 Juin 2018 15:58

Super!! Merci!!
jcmontigny
 
Messages : 423
Inscription : 30 Juin 2012

PrécédentSuivant

Retour vers Requêtes HTTP

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 8 invité(s)