salut,
alors entre temps j’ai avancé…
mon script marche bien je chope bien les event presque instantanement ca c’est cool. par contre je viens de m’apercevoir que avec un navigateur web tout marche nickel , avec un lecteur android aussi… par contre avec un chromecast rien… ca a marché une fois hier… et depuis plus rien…
pour ma domotique je suis sur eedomus, je passe pour l’instant par un serveur qui est sur internet (plusieurs serveur plex source donc forcé de le mettre sur internet)
<?php
$EEDOMUS_IP = '???.???.???.???'; //mettez l adresse IP local de votre eedomus
$EEDOMUS_API_USER = 'XXXXXXXX'; // mettez ici le user API de votre eedomus
$EEDOMUS_API_PASSWORD = 'YYYYYYYYYYYYYYY'; // mettez ici le password API de votre eedomus
$EEDOMUS_PLEX_SCENE_ID = 'XXXXXXX'; //mettez ici le code API de l actionneur
$EEDOMUS_LIGHT_SALON_ID = 'XXXXXXX'; //mettez ici le code API de votre lumiere de salon
$EEDOMUS_LIGHT_HOME_CINEMA_ID = 'XXXXXXX'; //mettez ici le code API de votre lumiere de home cinema
$EEDOMUS_BRIGHTNESS_SALON_ID = 'XXXXXXX'; //mettez ici le code API de votre capteur de luminosite du salon afin de gere la la gestion des lumieres ou non
$CHROMECAST_SALON_UUID = 'XXXXXXX'; //mettez ici l adresse de ip de bvotre chromecast de salon pour faire des filtrages
$CHROMECAST_HOME_CINEMA_UUID = 'XXXXXXX'; //mettez ici l adresse de ip de bvotre chromecast de home cinema pour faire des filtrages
$LAST_MOVIE_PLAY_HC_ID = 'XXXXXXX2'; //mettez ici le code API de l etat virtuel recuperant les derniers lectures
$Value_plex_action = 'RAS';
$plex_webhooks_json = json_decode($_POST["payload"],true);
if ($plex_webhooks_json['Player']['uuid'] == $CHROMECAST_SALON_UUID) {
// on recupere la valeur du capteur de luminosite pour traitement
//$BRIGHTNESS=getValue($EEDOMUS_BRIGHTNESS_SALON_ID, $value_text = false)
$BRIGHT_URL= 'http://api.eedomus.com/get?action=periph.caract&periph_id=' . $EEDOMUS_BRIGHTNESS_SALON_ID . '&api_user=' . $EEDOMUS_API_USER . '&api_secret=' . $EEDOMUS_API_PASSWORD;
// on recupere l etat de la lumiere du salon pour traitement
//$LIGHT=getValue($EEDOMUS_LIGHT_SALON_ID, $value_text = false)
$LIGHT_URL= 'http://api.eedomus.com/get?action=periph.caract&periph_id=' . $EEDOMUS_LIGHT_SALON_ID . '&api_user=' . $EEDOMUS_API_USER . '&api_secret=' . $EEDOMUS_API_PASSWORD;
// Initiate curl
$ch = curl_init();
// Disable SSL verification
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// Will return the response, if false it print the response
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Set the url
curl_setopt($ch, CURLOPT_URL,$BRIGHT_URL);
// Execute
$result=curl_exec($ch);
$BRIGHTNESS=json_decode($result, true);
unset($result);
// Set the url
curl_setopt($ch, CURLOPT_URL,$LIGHT_URL);
// Execute
$result=curl_exec($ch);
$LIGHT=json_decode($result, true);
// Closing
curl_close($ch);
// Will dump a beauty json :3
# print (lastValue_Light_salon)
## on execute les actions que si la luminosite est superieur a 100 lux et que la lampe du salon est deja allumee
if (($BRIGHTNESS['last_value'] < 50) and ($LIGHT['last_value'] > 0)) {
if ($plex_webhooks_json['event'] == 'media.play') {
$Value_plex_action = 'Salon_Play';
}elseif ($plex_webhooks_json['event'] == 'media.pause') {
$Value_plex_action = 'Salon_Pause';
}elseif ($plex_webhooks_json['event'] == 'media.resume') {
$Value_plex_action = 'Salon_Resume';
}elseif ($plex_webhooks_json['event'] == 'media.stop') {
$Value_plex_action = 'Salon_Stop';
}else {
$Value_plex_action = 'RAS';
}
}
$EEDOMUS_URL = 'https://api.eedomus.com/set?action=periph.value&periph_id=' . $EEDOMUS_PLEX_SCENE_ID . '&value=' . $Value_plex_action . '&api_user=' . $EEDOMUS_API_USER . '&api_secret=' . $EEDOMUS_API_PASSWORD . '&update_only=1';
$is_ok = http_response($EEDOMUS_URL);
//$result=setValue($EEDOMUS_PLEX_SCENE_ID, $Value_plex_action, $verify_value_list = true, $update_only= false);
}
if ($plex_webhooks_json['Player']['uuid'] == $CHROMECAST_HOME_CINEMA_UUID) {
if ($plex_webhooks_json['event'] == 'media.play') {
$Value_plex_action = 'HC_Play';
}elseif ($plex_webhooks_json['event'] == 'media.pause') {
$Value_plex_action = 'HC_Pause';
}elseif ($plex_webhooks_json['event'] == 'media.resume'){
$Value_plex_action = 'HC_Resume';
}elseif ($plex_webhooks_json['event'] == 'media.stop'){
$Value_plex_action = 'HC_Stop';
}else {
$Value_plex_action = 'RAS';
}
$EEDOMUS_URL = 'https://api.eedomus.com/set?action=periph.value&periph_id=' . $EEDOMUS_PLEX_SCENE_ID . '&value=' . $Value_plex_action . '&api_user=' . $EEDOMUS_API_USER . '&api_secret=' . $EEDOMUS_API_PASSWORD . '&update_only=1';
$is_ok = http_response($EEDOMUS_URL);
//$result=setValue($EEDOMUS_PLEX_SCENE_ID, $Value_plex_action, $verify_value_list = true, $update_only= false);
}
// Pour Debugger
function addLogEvent($event)
{
$filename = "/data/www/killpilot-fr/plex_webhooks.log";
$time = date("D, d M Y H:i:s");
$time = "[".$time."] ";
$event = $time.$event."
";
file_put_contents($filename, $event, FILE_APPEND);
}
//addLogEvent(print_r($plex_webhooks_json,TRUE));
addLogEvent("value plex action = ". $plex_webhooks_json['event']);
addLogEvent("type de client = ". $plex_webhooks_json['Player']['title']);
addLogEvent("value script action = ". $Value_plex_action);
addLogEvent("value plex webhook player uuid = ".$plex_webhooks_json['Player']['uuid']);
addLogEvent("
");
?>
le code est brouillon pas commenté et tout, donc dsl… je suis pas dev donc y’a surement des maniére beaucoup plus “opti” de faire les choses… je suis prenneur de tout conseil…
donc maintenant reste a comprendre pourquoi je n’ai pas webhook avec mes chromecast… (vu que je n’effectue des actions que quand c’est mes chromecast…
merci de votre aide 
ps oula la mise en page du code est pas terrible…
ps2 : alors mon apache recoit bien des requêtes pour mes event par contre j’ai une erreur 500… donc y’a un truc qui va pas dans le JSON ou le POST…