Besoin d'aide : Syntaxe script php (curl) pour Volumio

Hello,

Après plusieurs heures de tentatives et de recherches (je précise hein) je me tourne vous pour une petite question : quelqu’un peut il m’aider? voilà :slight_smile: :sweat_smile:

Plus sérieusement, je souhaite contrôler mon Volumio (audio) via jeedom. Chance pour moi, Volumio a une API, jusque là, nickel. Je cherche à mettre, sur commande, une Radio internet. Du coup, je trouve la synthaxe qui est la suivante :

curl -i --header "Content-Type: application/json" http://192.168.1.94/api/v1/replaceAndPlay --data '{
  "service": "webradio",
  "type": "webradio",
  "title": "Radio Monaco",
  "uri": "http://radiomonaco.ice.infomaniak.ch/radiomonaco-128.mp3",
  "albumart": "http://cdn-radiotime-logos.tunein.com/s87645q.png"
}'

Je la teste depuis une machine de mon réseau, ça fonctionne, la radio se lance bien.

Du coup je me dis je vais utiliser le plugin script. Et là… vous avez déjà vu une poule devant un couteau? ben pareil.

J’ai donc tenté (c’est le mot), de créer un script php réalisant la commande ci dessus. Je précise à tout hasard, je n’y connais absolument rien en php. Là voilà c’est dit.

<?php 
	$url = 'http://192.168.1.94/api/v1/replaceAndPlay';
    $data = array("service" => "webradio","type" => "webradio","title" => "Radio%20Monaco","uri" => "http://radiomonaco.ice.infomaniak.ch/radiomonaco-128.mp3","albumart" => "http://cdn-radiotime-logos.tunein.com/s87645q.png");
    $ch=curl_init($url);
    $data_string = urlencode(json_encode($data));
	curl_setopt_array($ch, array(
		CURLOPT_POST => true,
		CURLOPT_POSTFIELDS => $data_string,
		CURLOPT_HEADER => true,
		CURLOPT_HTTPHEADER => array('Content-Type:application/json', 'Content-Length: ' . strlen($data_string)))
		);
	
    $result = curl_exec($ch);
    
    echo $result;
	curl_close($ch);
?>

J’ai enrigistré le tout comme ça :

Lorsque je test le script, il me dit que tout va bien, « exécuté avec succès » mais rien ne se passe.
En plus de ça pas moyen de voir un log ou un retour sur le lancement du script (je me suis mis en débug dans les log du plugin script, mais ça ne change rien).

Du coup je suis perdu complet.

Si quelqu’un à une idée, je suis preneur.

Merci d’avance pour votre aide.

LE MEC S’AUTOREPOND

Bon, forcement, il me suffit de demander de l’aide pour trouver la solution 3sec plus tard.

Du coup, je suis passé par un outils en ligne pour les nuls dans mon genre : curl-to-PHP: Convert Curl commands to PHP code

ça permet simplement de convertir la ligne de commande en expression PHP.

Je viens de le faire et ça fonctionne, joiiiiie, ma radio sera donc lancée demain matin, quand je descendrai dans le salon et que mon scénario du matin se lancera… joie.

Pour information, la syntaxe :

// Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://192.168.1.94/api/v1/replaceAndPlay');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\n  \"service\": \"webradio\",\n  \"type\": \"webradio\",\n  \"title\": \"Radio Monaco\",\n  \"uri\": \"http://radiomonaco.ice.infomaniak.ch/radiomonaco-128.mp3\",\n  \"albumart\": \"http://cdn-radiotime-logos.tunein.com/s87645q.png\"\n}");

$headers = array();
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);
5 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.