Forum eedomus
https://forum.eedomus.com/

Requête HTTP pour Samsung Smart TV
https://forum.eedomus.com/viewtopic.php?f=15&t=814
« Précédent  Page 4 sur 5  Suivant »
Auteur:  hornet49 [ 18 Juin 2018 16:52 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

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
Auteur:  P@t [ 18 Juin 2018 17:59 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

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...
Auteur:  P@t [ 18 Juin 2018 18:24 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

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
Auteur:  hornet49 [ 18 Juin 2018 22:33 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

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 !!!
Auteur:  hornet49 [ 19 Juin 2018 16:59 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

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 :-(
Auteur:  P@t [ 21 Juin 2018 12:49 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

Si tu sais comment faire un plugin, alors je te laisse œuvrer ;-)
Auteur:  hornet49 [ 22 Juin 2018 08:57 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

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 ?
Auteur:  P@t [ 22 Juin 2018 09:02 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

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.
Auteur:  P@t [ 22 Juin 2018 11:26 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

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é.
Auteur:  hornet49 [ 22 Juin 2018 15:22 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

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
Auteur:  P@t [ 22 Juin 2018 16:12 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

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?
Auteur:  hornet49 [ 22 Juin 2018 18:12 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

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...
Auteur:  hornet49 [ 23 Juin 2018 00:20 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

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:
Auteur:  P@t [ 23 Juin 2018 14:56 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

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...
Auteur:  hornet49 [ 24 Juin 2018 10:07 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

ha non je savais pas qu'on pouvais l'intégrer dans la création, je vais regarder ça car effectivement ça peut aider ;-)
Auteur:  hornet49 [ 24 Juin 2018 10:17 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

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 ?
Auteur:  P@t [ 24 Juin 2018 12:26 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

Je crois que tu peux annuler l'autre et reproposer le nouveau à la validation...
Auteur:  hornet49 [ 27 Juin 2018 11:28 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

Le plugin est toujours en attente de validation, c'était moins long quand j'avais fait le plugin pour le WES :-/
Auteur:  hornet49 [ 27 Juin 2018 13:29 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

Super, le plugin est dispo ;-)
il s'appel TV SAMSUNG OLD donc pour les TV samsung d'avant 2016
Auteur:  jcmontigny [ 27 Juin 2018 15:58 ]
Sujet du message:  Re: Requête HTTP pour Samsung Smart TV

Super!! Merci!!
Page 4 sur 5 Le fuseau horaire est UTC+1 heure