- Marquer comme nouveau
- Ajouter aux favoris
- S'abonner à ce post
- S'abonner au fil RSS de ce post
- Imprimer
- Signaler
API decodeur TV plus
08/11/2017 18h55
Bonjour,
j'aimerais savoir si il existe un API pour commander le décodeur TV plus?
Car j'aimerais pouvoir allumer mon décodeur avec ma box domotique. Il doit bien exister un moyen vu que l'appli telephone SFR TV arrive à commander le décodeur.
Merci
- Marquer comme nouveau
- Ajouter aux favoris
- S'abonner à ce post
- S'abonner au fil RSS de ce post
- Imprimer
- Signaler
10/11/2017 02h14
Je vois que le sujet inspire beaucoup de monde 😄
- Marquer comme nouveau
- Ajouter aux favoris
- S'abonner à ce post
- S'abonner au fil RSS de ce post
- Imprimer
- Signaler
21/11/2017 16h41
Bonjour,
je suis dans le même cas que vous mais pour la box THD SFR
j'aimerais savoir s'il existe l'API Html pour la box THD de SFR.
Si vous avez des infos de vos recherches...
Merci
- Marquer comme nouveau
- Ajouter aux favoris
- S'abonner à ce post
- S'abonner au fil RSS de ce post
- Imprimer
- Signaler
21/11/2017 16h58
Je n'ai rien trouvé .... J'ai peur que SFR ne soit pas intéressé pour donner la main sur leur box au client :'(
Du coup avec un broadlink RM PRO j'ai enregistré ma télécommande et j'envoie grace à ma box domotique les commandes vers mon decodeur.
- Marquer comme nouveau
- Ajouter aux favoris
- S'abonner à ce post
- S'abonner au fil RSS de ce post
- Imprimer
- Signaler
10/04/2018 16h11
Bonjour,
Un script Python existe... je m'en suis inspiré pour faire un script PHP pour la box de domotique eedomus.
- Marquer comme nouveau
- Ajouter aux favoris
- S'abonner à ce post
- S'abonner au fil RSS de ce post
- Imprimer
- Signaler
Bonjour
N aurais tu pas pour idéée de partager ton scritp en PHP ?
j'utilise un raspeberry et Domoticz et je n'arrive pas a tirer profit des frtvctl
- Marquer comme nouveau
- Ajouter aux favoris
- S'abonner à ce post
- S'abonner au fil RSS de ce post
- Imprimer
- Signaler
15/11/2018 23h39
bonsoir
je suis curieux de jeter un oeil a ton script tu partages ?
- Marquer comme nouveau
- Ajouter aux favoris
- S'abonner à ce post
- S'abonner au fil RSS de ce post
- Imprimer
- Signaler
01/04/2020 14h43
Bonjour,
J'ai pas mal cherché (et perdu du temps) donc je partage...
Merci mille fois dragouf pour ton script python : https://github.com/dragouf/sfrtvctl
Ci-joint, un mini script en php pour utiliser les web sockets et démarrer le décodeur tv sfr SBT7.
<?php
$IP="192.168.1.100"; // a changer
$PORT=7682;
$ws = new ws(array('host' => $IP,'port' => $PORT,'wskey' => 'XXXXXXXXXXXXXXXXXXXXXX=='));
$ws->send('{"Params": {"Token": "LAN", "DeviceSoftVersion": "11.2.2", "Action": "ButtonEvent", "Press": [303], "DeviceModel": "iPhone"}}');
$ws->close();
class ws { private $params; private $head; private $instance; public function __construct($params) { foreach($params as $key => $value) $this->params[$key] = $value; $this->head = "GET / HTTP/1.1\r\n" . "Upgrade: websocket\r\n" . "Host: ".$this->params['host'].":".$this->params['port']."\r\n" . "Origin: ".$this->params['host'].":".$this->params['port']."\r\n" . "Sec-WebSocket-Key: ".$this->params['wskey']."\r\n" . "Sec-WebSocket-Version: 13\r\n" . "Connection: upgrade\r\n" . "Sec-WebSocket-Protocol: lws-bidirectional-protocol\r\n"; } public function send($method) { $this->head .= "Content-Length: ".strlen($method)."\r\n\r\n"; $this->connect(); fwrite($this->instance, $this->hybi10Encode($method)); //$wsdata = fread($this->instance, 2000); //return $this->hybi10Decode($wsdata); } public function close() { if($this->instance) { fclose($this->instance); $this->instance = NULL; } } private function connect() { $sock = fsockopen($this->params['host'], $this->params['port'], $errno, $errstr, 2); fwrite($sock, $this->head); $headers = fread($sock, 2000); $this->instance = $sock; } private function hybi10Decode($data) { $bytes = $data; $dataLength = ''; $mask = ''; $coded_data = ''; $decodedData = ''; $secondByte = sprintf('%08b', ord($bytes[1])); $masked = ($secondByte[0]=='1') ? true : false; $dataLength = ($masked===true) ? ord($bytes[1]) & 127 : ord($bytes[1]); if ($masked===true) { if ($dataLength===126) { $mask = substr($bytes, 4, 4); $coded_data = substr($bytes, 8); } elseif ($dataLength===127) { $mask = substr($bytes, 10, 4); $coded_data = substr($bytes, 14); } else { $mask = substr($bytes, 2, 4); $coded_data = substr($bytes, 6); } for ($i = 0; $i<strlen($coded_data); $i++) $decodedData .= $coded_data[$i] ^ $mask[$i % 4]; } else { if ($dataLength===126) $decodedData = substr($bytes, 4); elseif ($dataLength===127) $decodedData = substr($bytes, 10); else $decodedData = substr($bytes, 2); } return $decodedData; } private function hybi10Encode($payload, $type = 'text', $masked = true) { $frameHead = array(); $frame = ''; $payloadLength = strlen($payload); switch ($type) { case 'text' : // first byte indicates FIN, Text-Frame (10000001): $frameHead[0] = 129; break; case 'close' : // first byte indicates FIN, Close Frame(10001000): $frameHead[0] = 136; break; case 'ping' : // first byte indicates FIN, Ping frame (10001001): $frameHead[0] = 137; break; case 'pong' : // first byte indicates FIN, Pong frame (10001010): $frameHead[0] = 138; break; } // set mask and payload length (using 1, 3 or 9 bytes) if ($payloadLength>65535) { $payloadLengthBin = str_split(sprintf('%064b', $payloadLength), 8); $frameHead[1] = ($masked===true) ? 255 : 127; for ($i = 0; $i<8; $i++) $frameHead[$i + 2] = bindec($payloadLengthBin[$i]); // most significant bit MUST be 0 (close connection if frame too big) if ($frameHead[2]>127) { $this->close(1004); return false; } } elseif ($payloadLength>125) { $payloadLengthBin = str_split(sprintf('%016b', $payloadLength), 8); $frameHead[1] = ($masked===true) ? 254 : 126; $frameHead[2] = bindec($payloadLengthBin[0]); $frameHead[3] = bindec($payloadLengthBin[1]); } else $frameHead[1] = ($masked===true) ? $payloadLength + 128 : $payloadLength; // convert frame-head to string: foreach (array_keys($frameHead) as $i) $frameHead[$i] = chr($frameHead[$i]); if ($masked===true) { // generate a random mask: $mask = array(); for ($i = 0; $i<4; $i++) $mask[$i] = chr(rand(0, 255)); $frameHead = array_merge($frameHead, $mask); } $frame = implode('', $frameHead); // append payload to frame: for ($i = 0; $i<$payloadLength; $i++) $frame .= ($masked===true) ? $payload[$i] ^ $mask[$i % 4] : $payload[$i]; return $frame; } }
?>
Les autres commandes disponibles : (https://github.com/dragouf/sfrtvctl/blob/master/sfrtvctl/remote.py)
"VUP": 308, "VDOWN": 307, "RIGHT": 222, "LEFT": 293, "UP": 297, "DOWN": 294, "PUP": 290, "PDOWN": 291, "INFO": 301, "RETURN": 27, "OK": 13, "NUMBER": "THIRDARGUMENT_UTF8DECIMALCODE", "PLAYPAUSE": 306, "FORWARD": 305, "REWIND": 304, "MUTE": 302, "POWER": 30
Le payload pour afficher la chaine TF1 :
$key=1
$ws->send("{\"Params\": {\"Token\": \"LAN\", \"DeviceSoftVersion\": \"11.2.2\", \"Params\": [$key, \"zapdigit\"], \"Action\": \"CustomEvent\", \"DeviceModel\": \"iPhone\", \"Event\": \"GotoLive\"}}");
Bonne journée,
- Marquer comme nouveau
- Ajouter aux favoris
- S'abonner à ce post
- S'abonner au fil RSS de ce post
- Imprimer
- Signaler
10/04/2020 08h35
- Marquer comme nouveau
- Ajouter aux favoris
- S'abonner à ce post
- S'abonner au fil RSS de ce post
- Imprimer
- Signaler
28/06/2020 12h58
Bonjour,
Serait il possible d'avoir plus de précision...
Entre l'installation du script Python de Github qui me semble un peu léger.
Quand je lance l'instruction : "python setup.py install", j'ai un message d'erreur disant qu'il ne trouve pas le setup.py
Et ensuite votre script PHP, ou l'installe t'on ?
désolé pour ces questions qui vous sembleront surement basic.