Scénario selon accès au port 8484

Bonjour,

Parfois ma page d’accès à DECONZ (Phoscon App) est out.
J’y accède via le port 8484
Est-il possible de faire un check de l’accessibilité de cette page web, et en fonction du résultat lancer un scénario pour relancer le démon DECONZ ?

Si oui de quelle manière ? (script, plugin network, autre ?)

Merci.

Hello,

J’ai trouvé comment faire, si jamais ça intéresse quelqu’un.
Ou si vous avez une meilleure optimisation :wink:

Avec le plugin SSH Commander, j’ai créé un équipement avec cette commande :

nc -vz 192.168.XXX.XXX 8484

Et ensuite un scénario qui vient récupérer cette valeur pour relancer le démon avec du code :

1 « J'aime »

Salut,

Oula, vu la copie d’écran ça doit faire un bail que tu as pas upgradé ton jeedom.

Tu peux faire la même chose normalement sans faire aussi "compliqué.

Avec le plugin monitoring tu peux vérifier l’accessibilité d’une URL par exemple :

Et avec le plugin virtuel, tu peux redémarrer un daemon directement via une commande action et donc sans faire du code :

Mais bon ce que tu as fait marche aussi et au vu de la version de jeedom que tu semble avoir pas sur que tu puisse utiliser cette solution.

Oui effectivement jeedom V3, mais en cours pour passer sur une V4

avec le plugin monitoring je ne sais pas comment créer mon équipement ?!?



le access:http://192.168.XXX.XXX:8484 on ne peut pas le faire par un script sinon ?

Bonjour.

Ce plugin aussi n’est pas à jour.

Et les nouvelles versions de Jeedom ont un Heartbeat configurable pour faire la surveillance des plugins.

En fait tant que ça fonctionne j’évite de mettre à jour.
Quand je serais en v4, je ferais les MAJ au fil de l’eau, mais là j’ai peur de tout « casser »

À trop attendre, c’est là que l’on casse tout en fait.

2 « J'aime »

Je comprends pour les versions mineures mais la tu accumule pas mal de retard quand même.
Plus tu tarde, plus la marche sera haute et clairement en V3 tu va galérer à te remettre up to date.

Je fais doucement en parallèle sur une autre SD la bascule en v4

Mais j’envisage de basculer rapidement car là je fais face à des soucis régulièrement

Bon et bien ça ne fonctionne pas…
Je n’accède plus a la page Phoscon App par son ip + port.
Par contre le nc -vz 192.168.XXX.XXX 8484 est succeded
Donc ça ne fonctionne pas comme prévu…
Une idée ?

Mettre à jour?

oui mettre à jour en v4 et tout le reste, mais en attendant de faire la bascule ?

ne plus rien toucher ni tenter sur un système obsolète et croiser les doigts que ca tienne

oui mais de manière aléatoire l’accès à phosconapp est dead

Voilà pourquoi je voudrais mettre en place ce scénario afin de relancer le démon lorsque nécessaire

La bascule va se faire assez rapidement, mais en attendant, j’ai besoin que phoscon soit fonctionnel

Il tombe si régulièrement que ça ton daemon ?
C’est purement aléatoire ou c’est à la longue ?
Y a pas moyen de le redémarrer par exemple toutes les nuits qu’il soit up ou pas ?

Sinon y a toujours moyen de faire un curl en php via un bloc code comme tu relance déja le daemon via du code.

Oui, parfois il tombe pas de la journée, et parfois 2 ou 3 fois dans la journée.
Si je le redémarre chaque nuit ça fonctionne plus ou moins finalement, mais c’est pas adapté si il tombe dans la journée…
Si je fais un curl en PHP, je dois mettre quoi exactement pour obtenir une valeur de retour qui me permette de m’assurer que la page est accessible ou non ? Comment récupérer l’info exactement ?

Merci pour ton aide

Si tu dis que le démon ne marche plus malgré que la commande nc renvoi ok ça veut dire que le port écoute toujours.
Qu’est ce que ça te met quand tu essaye d’accéder à l’url ? Rien ne répond ? Un message d’erreur ?

Car la ça fait plus penser à un problème applicatif qu’au daemon qui tombe réellement.

Avec un CURL, tu peux tester simplement le code de retour HTTP pour vérifier qu’il est bien à 200 (ok) et pas à autre chose (401,403,404,500 …)

Ci dessous un exemple de ce que j’avais fait pour vérifier l’accessibilité de mon accès https via les DNS jeedom.

Tu dois pouvoir te servir de cette base pour redémarrer ton daemon si le check est KO.

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, "https://xxxxxxxxxxxxxxxxx.eu.jeedom.link/index.php?v=d");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0');


$result = curl_exec($curl);

$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$contentlength = curl_getinfo($curl, CURLINFO_SIZE_DOWNLOAD);
$totaltime = curl_getinfo($curl, CURLINFO_TOTAL_TIME)*1000;

curl_close($curl);

if($httpcode <> 200)
{
	$return = -1;
}
else
{
	$return = $totaltime;
}

echo $return;

$logcontent = date('Y-m-d H:i:s').' | HTTP Code : '.$httpcode.' | Content lenght : '.$contentlength.' | TotalTime : '.$totaltime.PHP_EOL;

$logfile = '/var/www/html/plugins/script/data/log-get.txt';
file_put_contents($logfile, $logcontent, FILE_APPEND);

Quand j’essaye d’accéder à l’URL ça ne fonctionne pas, comme si la pae n’existait pas, ou était injoignable.
Rien ne réponds en gros.

le code que je devrais mettre serait celui-ci ? (je ne connais pas les détails de chaque ligne, ce à quoi servent chacune)

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, "xxxxxxxx.synology.me:8484");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0');


$result = curl_exec($curl);

$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$contentlength = curl_getinfo($curl, CURLINFO_SIZE_DOWNLOAD);
$totaltime = curl_getinfo($curl, CURLINFO_TOTAL_TIME)*1000;

curl_close($curl);

if($httpcode <> 200)
{
	$return = -1;
}
else
{
	$return = $totaltime;
}

echo $return;

$logcontent = date('Y-m-d H:i:s').' | HTTP Code : '.$httpcode.' | Content lenght : '.$contentlength.' | TotalTime : '.$totaltime.PHP_EOL;

$logfile = '/var/www/html/plugins/script/data/log-get.txt';
file_put_contents($logfile, $logcontent, FILE_APPEND);

Hello,

J’ai trouvé le hic…

le retour de ma commande nc -vz 192.168.XXX.XXX 8484 est nc: connect to 192.168.XXX.XXX port 8484 (tcp) failed: Connection refused quand le démon est stoppé, mais est nc: connect to xxxxxxx.synology.me port 8484 (tcp) failed: Connection timed out quand il est tombé

mon « SI » intègre donc les 2 valeurs et ça fonctionne :wink:

Je te conseille de faire l’inverse, prend le cas « normal » où le daemon répond et dans ton SI tu mets différent de normal.
Au moins tu es sur de prendre en compte tous les cas.

1 « J'aime »