Bonjour,
Est ce que quelqu'un sait si les tv connectée panasonic sont ce pilote via HTTP ?
Une appli smartphone existe et permet de remplacer la télécommande, donc qq chose doit être possible....
Merci
dede3828 a écrit:Personne meme pas les pro du PHP ?
xianghua a écrit:dede3828 a écrit:Personne meme pas les pro du PHP ?
Il existe ça https://www.jeedom.com/market/index.php ... ign=buffer
Ou ça https://github.com/samuelmatis/viera-control-v2,
Pour le second lien, ça n'a pas l'air d'être contrôlable via des requettes HTTP, la solution de Jeedom parait plus simple
Perso je gère ma Pana via le plugin Harmony (pour télécommande Harmony).
<?php
class vieraControl
{
public $host;
function __construct($hostname = false)
{
if ($hostname)
$this->host = $hostname;
}
function createRequest($url, $urn, $action, $option = array())
{
$input = '<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:'.$action.' xmlns:u="urn:'.$urn.'">
'.$option['args'].'
</u:'.$action.'>
</s:Body>
</s:Envelope>';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://'.$this->host.':55000/'.$url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('SOAPACTION: "urn:'.$urn.'#'.$action.'"'));
curl_setopt($curl, CURLOPT_POSTFIELDS, $input);
//curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
if ($option['returnXml'])
return $data;
else
return $this->getResponse($data);
}
function getResponse($data)
{
$xml = simplexml_load_string($data);
if ($xml === false)
return false;
$ns = $xml->getNamespaces(true);
$soap = $xml->children($ns['s']);
$res = $soap->children($ns['u'])->children();
return $res[0];
}
function getVolume()
{
return $this->createRequest(
'dmr/control_0',
'schemas-upnp-org:service:RenderingControl:1',
'GetVolume',
array('args' => '<InstanceID>0</InstanceID><Channel>Master</Channel>')
);
}
function sendKey($keyCode)
{
return $this->createRequest(
'nrc/control_0',
'panasonic-com:service:p00NetworkControl:1',
'X_SendKey',
array(
'args' => '<X_KeyEvent>' . $keyCode . '</X_KeyEvent>',
'returnXml' => true
)
);
}
function getMute()
{
return $this->createRequest(
'dmr/control_0',
'schemas-upnp-org:service:RenderingControl:1',
'GetMute',
array('args' => '<InstanceID>0</InstanceID><Channel>Master</Channel>')
);
}
function setMute($enable = false)
{
$data = ($enable) ? '1' : '0';
return $this->createRequest(
'dmr/control_0',
'schemas-upnp-org:service:RenderingControl:1',
'SetMute',
array('args' => '<InstanceID>0</InstanceID><Channel>Master</Channel><DesiredMute>'.$data.'</DesiredMute>')
);
}
function setVolume($volume = '0')
{
$volume = intval($volume);
if ($volume > 100 || $volume < 0)
throw new Exception('Bad request to volume control. Must be between 0 and 100');
return $this->createRequest(
'dmr/control_0',
'schemas-upnp-org:service:RenderingControl:1',
'SetVolume',
array('args' => '<InstanceID>0</InstanceID><Channel>Master</Channel><DesiredVolume>'.$volume.'</DesiredVolume>', 'returnXml' => true)
);
}
function sendString($string)
{
return $this->createRequest(
'nrc/control_0',
'panasonic-com:service:p00NetworkControl:1',
'X_SendString',
array(
'args' => '<X_String>' . $string . '</X_String>',
'returnXml' => true
)
);
}
}
$keys = array(
"NRC_CH_DOWN-ONOFF", // channel down
"NRC_CH_UP-ONOFF", // channel up
"NRC_VOLUP-ONOFF", // volume up
"NRC_VOLDOWN-ONOFF", // volume down
"NRC_MUTE-ONOFF", // mute
"NRC_TV-ONOFF", // TV
"NRC_CHG_INPUT-ONOFF", // AV,
"NRC_RED-ONOFF", // red
"NRC_GREEN-ONOFF", // green
"NRC_YELLOW-ONOFF", // yellow
"NRC_BLUE-ONOFF", // blue
"NRC_VTOOLS-ONOFF", // VIERA tools
"NRC_CANCEL-ONOFF", // Cancel / Exit
"NRC_SUBMENU-ONOFF", // Option
"NRC_RETURN-ONOFF", // Return
"NRC_ENTER-ONOFF", // Control Center click / enter
"NRC_RIGHT-ONOFF", // Control RIGHT
"NRC_LEFT-ONOFF", // Control LEFT
"NRC_UP-ONOFF", // Control UP
"NRC_DOWN-ONOFF", // Control DOWN
"NRC_3D-ONOFF", // 3D button
"NRC_SD_CARD-ONOFF", // SD-card
"NRC_DISP_MODE-ONOFF", // Display mode / Aspect ratio
"NRC_MENU-ONOFF", // Menu
"NRC_INTERNET-ONOFF", // VIERA connect
"NRC_VIERA_LINK-ONOFF", // VIERA link
"NRC_EPG-ONOFF", // Guide / EPG
"NRC_TEXT-ONOFF", // Text / TTV
"NRC_STTL-ONOFF", // STTL / Subtitles
"NRC_INFO-ONOFF", // info
"NRC_INDEX-ONOFF", // TTV index
"NRC_HOLD-ONOFF", // TTV hold / image freeze
"NRC_R_TUNE-ONOFF", // Last view
"NRC_POWER-ONOFF", // Power off
"NRC_REW-ONOFF", // rewind
"NRC_PLAY-ONOFF", // play
"NRC_FF-ONOFF", // fast forward
"NRC_SKIP_PREV-ONOFF", // skip previous
"NRC_PAUSE-ONOFF", // pause
"NRC_SKIP_NEXT-ONOFF", // skip next
"NRC_STOP-ONOFF", // stop
"NRC_REC-ONOFF", // record
// numeric buttons
"NRC_D1-ONOFF", "NRC_D2-ONOFF", "NRC_D3-ONOFF", "NRC_D4-ONOFF", "NRC_D5-ONOFF",
"NRC_D6-ONOFF", "NRC_D7-ONOFF", "NRC_D8-ONOFF", "NRC_D9-ONOFF", "NRC_D0-ONOFF",
// The below commands were not avaliable in the iPhone app when using my
// VIERA G30 - they were pulled out from a disassembly instead
// only these top three did anything on my TV
"NRC_P_NR-ONOFF", // P-NR (Noise reduction)
"NRC_OFFTIMER-ONOFF", // off timer
"NRC_R_TUNE-ONOFF", // Seems to do the same as INFO
"NRC_CHG_NETWORK-ONOFF",
"NRC_CC-ONOFF",
"NRC_SAP-ONOFF",
"NRC_RECLIST-ONOFF",
"NRC_DRIVE-ONOFF",
"NRC_DATA-ONOFF",
"NRC_BD-ONOFF",
"NRC_FAVORITE-ONOFF",
"NRC_DIGA_CTL-ONOFF",
"NRC_VOD-ONOFF",
"NRC_ECO-ONOFF",
"NRC_GAME-ONOFF",
"NRC_EZ_SYNC-ONOFF",
"NRC_PICTAI-ONOFF",
"NRC_MPX-ONOFF",
"NRC_SPLIT-ONOFF",
"NRC_SWAP-ONOFF",
"NRC_R_SCREEN-ONOFF",
"NRC_30S_SKIP-ONOFF",
"NRC_PROG-ONOFF",
"NRC_TV_MUTE_ON-ONOFF",
"NRC_TV_MUTE_OFF-ONOFF",
"NRC_DMS_CH_UP-ONOFF",
"NRC_DMS_CH_DOWN-ONOFF"
);
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 35 invité(s)