Bonjour,
pour la question: "au fait, ça marche avec ta télécommande lorsque tu fais des appuis longs pour les touches 1 et 4 pour saisir 146 ? " -> oui avec la télécommande ça fonctionne.
Pour la question:"essaie de copier l'URL ci-dessous dans ton Internet Explorer":
ça ne marche pas, j'ai testé dans ie:
http://192.168.1.29/script/?exec=freebo ... ep=CARTOON -> aucune réaction de la tv
pour la partie:
"(sinon avec le code que tu as copié tu as 2 fois &step=CARTOON" -> erreur de transmission car j'ai revérifié sur l'eedomus je n'ai pas mis deux fois &step=CARTOON 

Voici le script:
<?
$GLOBALS['freebox_ip'] = getArg('freebox_ip');
$GLOBALS['app_version'] = '1.0.0';
$GLOBALS['app_id'] = 'fr.freebox.eedomus';
function sdk_page_style()
{
	?><style type="text/css">
body,td,th {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 14px;
}
body {
	margin-left: 10px;
	margin-top: 10px;
}
	button
	{
		font-size: 100%;
		padding: 0.5em 1em;
		text-decoration: none;
		-moz-user-select: none;
		cursor: pointer;
		line-height: normal;
		text-align: center;
		vertical-align: baseline;
		white-space: nowrap;
		border: 0 none rgba(0, 0, 0, 0);
		border-radius: 4px;
		background-color: #0078e7;
		color: #fff;
	}
</style>
<img align="absmiddle" src="https://secure.eedomus.com/img/mdm/periph/freebox.png"> <span style="font-size:20px">Freebox et eedomus</span><br />
  <?
}
function sdk_hmac_sha1($key, $data)
{
	// Adjust key to exactly 64 bytes
	if (strlen($key) > 64) 
	{
		$key = str_pad(sha1($key, true), 64, chr(0));
	}
	if (strlen($key) < 64) 
	{
		$key = str_pad($key, 64, chr(0));
	}	
	// Outter and Inner pad
	$opad = str_repeat(chr(0x5C), 64);
	$ipad = str_repeat(chr(0x36), 64);	
	// Xor key with opad & ipad
	for ($i = 0; $i < strlen($key); $i++)
	{
		$opad[$i] = $opad[$i] ^ $key[$i];
		$ipad[$i] = $ipad[$i] ^ $key[$i];
	}
	return sha1($opad.sha1($ipad.$data, true));
}
function sdk_step1()
{
	sdk_page_style();	
	$url = "http://".$GLOBALS['freebox_ip']."/api/v1/login/authorize/";	
	$post = '{
		 "app_id": "'.$GLOBALS['app_id'].'",
		 "app_name": "App eedomus",
		 "app_version": "'.$GLOBALS['app_version'].'",
		 "device_name": "Box eedomus"
	}';	
	$response = httpQuery($url, 'POST', $post);
	$json = sdk_json_decode($response);
	// ex. {"success":true,"result":{"app_token":"XibW6mhg0wsUsaQ2cMWj0a2QGQBHMi0EknUpa9paGJYPf3rMWU0ATNX4LZ20OhDe","track_id":0}}
	if ($json['success'] != true)
	{
		echo "Erreur lors de la connexion à la freebox: <br><br>";
		if ($json['msg'] != '')
		{
			echo "<b>".$json['msg']."</b><br>";
		}
		else
		{
			echo $response;
		}
		die();
	}	
	$app_token = $json['result']['app_token'];
	$track_id = $json['result']['track_id'];	
	if ($app_token != '')
	{
		saveVariable('new_app_token', $app_token);
		saveVariable('new_track_id', $track_id);
	}	
	echo "Veuillez autoriser l'application eedomus en sélectionnant <b>OUI</b> sur l'affichage de votre Freebox Server, puis cliquer sur </b>Continuer</b><br><br>";	
	$controller_id = getArg('controller_id');
	$url = "?controller_id=".$controller_id."&url=".urlencode('http://localhost/script/?exec=freebox.php&controller_id='.$controller_id.'&freebox_ip='.$GLOBALS['freebox_ip'].'&step=2');
	echo '<button onclick="window.location.href=\''.$url.'\'">Continuer</button>';
}
function sdk_step2()
{
	sdk_page_style();	
	$track_id = loadVariable('new_track_id');	
	$url = "http://".$GLOBALS['freebox_ip']."/api/v1/login/authorize/$track_id";	
	$response = httpQuery($url, 'GET');
	$json = sdk_json_decode($response);
	// ex. {"success":true,"result":{"status":"granted","challenge":"\/ZRimxCjeGbH20TLeL6\/bQtAOTtRLInV","password_salt":"3qw8v\/0rTvOZfzsFZrBLiB\/WvJ56J9Gh"}}	
	if ($json['success'] != true)
	{
		echo "Erreur lors de la connexion à la freebox: <br><br>";
		if ($json['msg'] != '')
		{
			echo "<b>".$json['msg']."</b><br>";
		}
		else
		{
			echo $response;
		}
		die();
	}
	else if ($json['result']['status'] != 'granted')
	{
		echo "Erreur l'app n'a pas été autorisée sur votre Freebox Server : <b>".$json['result']['status']."</b><br><br>";		
		if ($json['result']['status'] == 'timeout')
		{
			$controller_id = getArg('controller_id');
			$url = "?controller_id=".$controller_id."&url=".urlencode('http://localhost/script/?exec=freebox.php&controller_id='.$controller_id.'&freebox_ip='.$GLOBALS['freebox_ip'].'&step=1');
			echo '<button onclick="window.location.href=\''.$url.'\'">Recommencer</button>';
		}
		else
		{
			$controller_id = getArg('controller_id');
			$url = "?controller_id=".$controller_id."&url=".urlencode('http://localhost/script/?exec=freebox.php&controller_id='.$controller_id.'&freebox_ip='.$GLOBALS['freebox_ip'].'&step=2');
			echo '<button onclick="window.location.href=\''.$url.'\'">Vérifier à nouveau</button>';
		}
		die();
	}
	else
	{
		$app_token = loadVariable('new_app_token');
		saveVariable('app_token', $app_token);
		saveVariable('track_id', $track_id);
		saveVariable('challenge', $json['result']['challenge']);		
		echo "<img width='64' src='/img/mdm/01/check.png' align='absmiddle'> L'app eedomus a été autorisée avec succés sur votre Freebox Revolution !";		
		$json = sdk_session(/*$show_error*/ false, /*$return_result*/ true);
		if ($json['success'] != true)
		{
			// on réessaie
			$json = sdk_session(/*$show_error*/ false, /*$return_result*/ true);
		}		
		if (!$json['result']['permissions']['parental'] || !$json['result']['permissions']['settings'])
		{
			$right_url = "http://".$GLOBALS['freebox_ip']."/#Fbx.os.app.settings.Accounts";
			echo "<br><br>Vous devez autoriser les droits d'accés de l'app eedomus sur votre Freebox :  <b>Modification des règlages de la Freebox</b> et <b>Accès au contrôle parental</b><br>Rendez vous sur <a target='_blank' href='$right_url'>$right_url</a> puis dans l'onglet <b>Applications</b> et cliquez sur <b>App eedomus</b>.";			
			$controller_id = getArg('controller_id');
			$url = "?controller_id=".$controller_id."&url=".urlencode('http://localhost/script/?exec=freebox.php&controller_id='.$controller_id.'&freebox_ip='.$GLOBALS['freebox_ip'].'&step=2');
			echo '<br><br><button onclick="window.location.href=\''.$url.'\'">Vérifier à nouveau les droits</button>';
			echo "<br><br><img src='http://doc.eedomus.com/images/c/ce/Eedomus_freebox05.png'>";			
		}
		else
		{
			echo "<br><br><i>Vous pouvez maintenant fermer cette fenêtre.</i>";
		}		
	}
}
function sdk_session($show_error = false, $return_result = false)
{
	$app_token = loadVariable('app_token');
	$challenge =  loadVariable('challenge');	
	$password = sdk_hmac_sha1(stripslashes($app_token), stripslashes($challenge));
	// on ouvre la session
	$url = "http://".$GLOBALS['freebox_ip']."/api/v1/login/session/";	
	$post = '{
   "app_id": "'.$GLOBALS['app_id'].'",
   "password": "'.$password.'"
}';	
	$response = httpQuery($url, 'POST', $post);
	$json = sdk_json_decode($response);
	//echo "challenge was [$challenge]<br>";
	if ($json['result']['challenge'] != '')
	{
		saveVariable('challenge', $json['result']['challenge']);
	}	
	//echo "challenge is now [".$json['result']['challenge']."]<br>";	
	if ($return_result) { return $json; }		
	if ($json['result']['session_token'] != '')
	{
		saveVariable('session_token', $json['result']['session_token']);
		//echo "OK"; // [$response]";
		//echo "<br>session_token = [".$json['result']['session_token']."]";
		return true;
	}
	else
	{
		if ($show_error)
		{
			echo "<br>Erreur d'authentification: ";
			if ($json['msg'] != '')
			{
				echo "<b>".$json['msg']."</b><br><br>";
			}
			echo "[$response]<br>";
			echo "Challenge was [$challenge]<br>";
		}
		return false;
	}
}
// si la session est perdue il faudra regénérer le challenge puis le session_token, d'où les 3 essais
function sdk_freebox_query($url, $method = 'GET', $post = NULL, $allow_retry = 3, $return_xml = true)
{
	$full_url = "http://".$GLOBALS['freebox_ip'].$url;
	$session_token = loadVariable('session_token');
	$headers = array("X-Fbx-App-Auth: ".stripslashes($session_token));	
	$response = httpQuery($full_url, $method, $post, NULL, $headers);
	$json = sdk_json_decode($response);	
	if ($json['success'] != true)
	{
		// on réétabli la session
		if ($allow_retry > 0)
		{
			sdk_session(/*$show_error*/ false);
			$allow_retry--;
			return sdk_freebox_query($url, $method, $post, $allow_retry);
		}
	}	
	if ($json['result']['challenge'] != '')
	{
		saveVariable('challenge', $json['result']['challenge']);
	}	
	if ($return_xml)
	{
		// permet d'avoir une mise en forme plus lisible dans un browser
		sdk_header('text/xml');
		echo jsonToXML($response);
	}
	else
	{
		return $json;
	}
}
switch($_GET['step'])
{
	default:
	case '1':
		sdk_step1();
	break;
	case '2':
		sdk_step2();
	break;	
	case 'session':
		// on essaie 2 fois
		if (!sdk_session(/*$show_error*/ false))
		{
			sdk_session(/*$show_error*/ true);
		}
		echo "done";
	break;	
	case 'wifi':
		$action = getArg('action');
		$post = '{ "ap_params": { "enabled": '.$action.' } }';
		sdk_freebox_query('/api/v1/wifi/config/', 'PUT', $post);
	break;	
	case 'parental':
		$action = getArg('action');
		$mac = getArg('mac');		
		// on commence par rechercher l'id de la règle
		$id = '';
		$json = sdk_freebox_query('/api/v1/parental/filter/', 'GET', NULL, 3, false);
		foreach($json['result'] as $filter)
		{
			foreach($filter['macs'] as $cur_mac)
			{
				if (strtolower(trim($cur_mac)) == strtolower(trim($mac)))
				{
					$id = $filter['id'];
				}
			}
		}		
		// on ajoute la règle
		if ($action == 'status')
		{
      if ($id === '')
      {
        // aucun filtre trouvé, équivalent à pas de controle
        sdk_header('text/xml');
        echo '<root><result><forced_mode>allowed</forced_mode></result></root>';
      }
      else
      {
        sdk_freebox_query('/api/v1/parental/filter/'.$id, 'GET');
			}
		}
		else
		{
			$post = '{ "macs": ["'.$mac.'"], "forced_mode": "'.$action.'", "forced": true}';
			if ($id === '')
			{
				// on créé la règle
				sdk_freebox_query('/api/v1/parental/filter/', 'POST', $post);
			}
			else
			{
				// on la met à jour
				sdk_freebox_query('/api/v1/parental/filter/'.$id, 'PUT', $post);
			}
		}
	break;	
	case 'reboot':
		sdk_freebox_query('/api/v1/system/reboot/', 'POST');
	break;	
	case 'api_get':
		$api_url = getArg('api_url');
		sdk_freebox_query($api_url);
	break;
	// CARTOON NETWORK
	case 'CARTOON':
	httpQuery("192.168.1.1/pub/remote_control?code=56318458&key=1&long=true", "GET");
	httpQuery("192.168.1.1/pub/remote_control?code=56318458&key=4&long=true", "GET");
	httpQuery("192.168.1.1/pub/remote_control?code=56318458&key=6", "GET");
	break;	
}
?>