Allumer / éteindre écran distant via script php

Bonsoir @Mips

J’essaie ta méthode (script php) pour allumer/éteindre un écran distant (pc Intel Debian 12).
Sous Jeedom 4.4.3, j’ai appliqué ce que tu as expliqué ici :

Donc ce code :


#!/usr/bin/php
<?php
require_once('/var/www/html/core/php/core.inc.php');

$eqLogicID = 170; //mettre l'id de l'équipement du type monitoring
$eqLogic = eqLogic::byId($eqLogicID);
$equipement = $eqLogic->getName();

$ip = $eqLogic->getConfiguration('mon_ip');
$user = $eqLogic->getConfiguration('mon_user');
$pass = $eqLogic->getConfiguration('mon_pass');
$port = $eqLogic->getConfiguration('22');

$action=$argv[1];
$Command='export DISPLAY=:0 ; xset dpms force ' . $action;
echo('*Action:'.$action);  
//echo('*$ip:'.$ip);
//echo('*$port:'.$port);
//echo('*$user:'.$user);  
//echo('*$pass:'.$pass);  

if (!$connection = ssh2_connect($ip,$port)) {
	echo('connexion SSH KO pour '.$equipement);
}else{
  	if (!ssh2_auth_password($connection,$user,$pass)){
		echo('Authentification SSH KO pour '.$equipement);
  	}else{
        $Cmdoutput = ssh2_exec($connection, $Command);
        stream_set_blocking($Cmdoutput, true);
        $response = stream_get_contents($Cmdoutput);
        echo $response;
  }
  ssh2_disconnect($connection);
}
?>

Avec cette configuration :

Mais j’ai cette erreur que je n’arrive pas à régler :

Je ne vois rien de particulier côté droits/propriété :
image

As-tu une idée de ce qui coince ?
Merci.

Il semble que ce soit la ligne 7 qui soit en erreur donc celle-ci:

$equipement = $eqLogic->getName();

As-tu bien changé l’id 170 par celui de ton équipement monitoring deux lignes plus haut ?

Mince ! Non je suis passé complètement à côté !
C’est corrigé → les scripts se lancent sans erreur → merci.

En revanche, la commande n’aboutit pas → le moniteur ne s’éteint pas.
Je n’ai rien trouvé dans les logs « script » :worried:

1 « J'aime »

Je passe la main pour ce second problème, moi je sais juste lire les erreurs de code :rofl:

Ben c’est déjà pas mal :rofl:, et cela m’a grandement aidé :+1:

Hello @Mips
Possible d’avoir ton avis lorsque tu seras dispo ?
Dis-moi si besoin de logs particuliers.

Merci.

Si tu passes les logs du plugin script en Debug, tu n’as rien qu apparait (je crois que ça crée un log par équipement script existant) ?

salut

c’est à cause de ca:

ssh2 utilisé dans ce script n’offre pas un niveau de sécurité suffisant au gout de debian12

plusieurs sujets sur le forum avec plus de détail, ici par exemple: Retour expérience debian 12 - numéro 5

pour un écran qui affiche un design ca me semble acceptable de « diminuer » le niveau de sécu en acceptant ssh-rsa

Bien vu !
Donc ça donne ceci :

Pas d’erreur mais non fonctionnel.
Je me demande si >/dev/null 2>&1 est la bonne syntaxe.

Oui cette machine n’assure que cette fonction là.
Et elle n’a même pas accès au net (sauf pour maj).

Je vais lire les sujets → Merci pour ton support :+1:

c’est la bonne syntaxe pour n’avoir aucun retour! ca c’est sur :joy:

en rapide:

  • il y a 2 sorties sur les commandes linux: std (1) & err (2)
  • >/dev/null veut dire que tu rediriges la sortie sur le device null (un trou noir)
  • 2>&1 veut dire que tu rediriges les erreurs sur la sortie std (qui va donc dans un trou noir)

J’ai écrit un peu vite, en relisant je reconnais que … :joy: :joy: :joy:

Je connais ces redirections, mais je pensais qu’elles pourraient interférer dans le fonctionnement du script sous Jeedom.

Visiblement non, du coup quel intérêt à lancer le script avec >/dev/null 2>&1 ? (D’autant que le verbeux ne sera pas vu de l’utilisateur).

Je ne sais pas, je ne pense pas avoir dit de faire ça

Tant mieux, je vais tester sans…