Erreur dans cron-execution

Bonjour à tous

Dans les logs, j’ai une erreur qui se répète toutes les minutes :

PHP Warning:  Invalid argument supplied for foreach() in /var/www/html/plugins/asuswrt/core/class/asuswrt.class.php on line 264

Dans le code du plugin cela correspond à ligne 254 :

  foreach ($array[$asus_mac]['2G'] as $id => $elt) {

et ligne 264 :

  foreach ($array[$asus_mac]['5G'] as $id => $elt) {

A quoi correspond cette erreur et comment la corriger ?

Merci bien

Bonjour,
À priori soit le tableau 2g soit le 5g sont non existant (donc pas des tableaux/array).
Est-ce que par hasard cela correspondrait au fait que votre réseau 2g ou 5g soit coupé/désactivé ?
Je devine car je n’ai ni ce routeur ni ce plug-in.

Merci Mips
Les réseaux wifi 2G et 5G était désactivé sur le routeur, mais j’ai fait les tests sur le plugin pour activer/désactiver et tout fonctionne bien.
Donc les commandes envoyées au routeur RT-AX88U sont correctes.
Est-ce un bug dans le plugin ?
Puis-je supprimer ces 2 lignes ?
Comment résoudre ce problème ?

Merci encore

Je viens de faire la dernière mise à jour Asus [3.0.0.4.386_42820] et il y a encore plus de lignes en erreur :

 foreach ($array[$asus_mac]['wired_mac'] as $id => $elt) {
 foreach ($array[$asus_mac]['2G'] as $id => $elt) {
 foreach ($array[$asus_mac]['5G'] as $id => $elt) {
 foreach ($array as $aimesh_mac => $elts) {

Visiblement ce sont des informations que le plugin ne retrouve pas sur le routeur.
Si vous avez des idées pour rectifier ces problèmes ?

Merci.

Bonjour,

Qu’elles sont les lignes de code au-dessus de la ligne 254 ?

Bonjour voici toutes les lignes depuis le début jusqu’à 254

require_once dirname(__FILE__) . '/../../../../core/php/core.inc.php';

class asuswrt extends eqLogic {
  public function loadCmdFromConf($type) {
    if (!is_file(dirname(__FILE__) . '/../config/devices/' . $type . '.json')) {
      return;
    }
    $content = file_get_contents(dirname(__FILE__) . '/../config/devices/' . $type . '.json');
    if (!is_json($content)) {
      return;
    }
    $device = json_decode($content, true);
    if (!is_array($device) || !isset($device['commands'])) {
      return true;
    }
    foreach ($device['commands'] as $command) {
      $cmd = null;
      foreach ($this->getCmd() as $liste_cmd) {
        if ((isset($command['logicalId']) && $liste_cmd->getLogicalId() == $command['logicalId'])
        || (isset($command['name']) && $liste_cmd->getName() == $command['name'])) {
          $cmd = $liste_cmd;
          break;
        }
      }
      if ($cmd == null || !is_object($cmd)) {
        $cmd = new asuswrtCmd();
        $cmd->setEqLogic_id($this->getId());
        utils::a2o($cmd, $command);
        $cmd->save();
      }
    }
  }

  public static function cron() {
    log::add(__CLASS__, 'info', 'Start cron ' . date('H:i:s'));
    asuswrt::scanDevices();
    asuswrt::scanRouteur();
    log::add(__CLASS__, 'info', 'End cron ' . date('H:i:s'));
  }

  public static function scanDevices() {
    $result = asuswrt::scan();
    foreach ($result as $asuswrt) {
      if ((!isset($asuswrt['mac'])) || ($asuswrt['mac'] == '') || ($asuswrt['mac'] == '<incomplete>')) {
        continue;
      }
      $eqlogic=asuswrt::byLogicalId($asuswrt['mac'], 'asuswrt');
      if (!is_object($eqlogic)) {
        if (!isset($asuswrt['ip']) || !isset($asuswrt['hostname']) || (config::byKey('autoCreate', 'asuswrt') != 1)) {
          continue;
        }
        log::add('asuswrt', 'debug', 'New host ' . $asuswrt['hostname'] . ' or IP ' . $asuswrt['ip'] . ' MAC ' . $asuswrt['mac']);
        $eqlogic = new asuswrt();
        $eqlogic->setEqType_name('asuswrt');
        $eqlogic->setLogicalId($asuswrt['mac']);
        $eqlogic->setIsEnable(1);
        $eqlogic->setIsVisible(0);
        $eqlogic->setName($asuswrt['hostname'] . ' - ' . $asuswrt['ip']);
        if (config::byKey('object_id', 'asuswrt') != '') {
          $eqlogic->setObject_id(config::byKey('object_id', 'asuswrt'));
        }
        $eqlogic->setConfiguration('hostname', $asuswrt['hostname']);
        $eqlogic->setConfiguration('mac', $asuswrt['mac']);
        $eqlogic->setConfiguration('ip', $asuswrt['ip']);
        $eqlogic->save();
      }
      if (array_key_exists('hostname', $asuswrt) && (($eqlogic->getConfiguration('hostname') !=  $asuswrt['hostname']) || (isset($asuswrt['ip']) && $eqlogic->getConfiguration('ip') !=  $asuswrt['ip']))) {             $eqlogic->setConfiguration('hostname', $asuswrt['hostname']);
        $eqlogic->save();
      }
      if ((isset($asuswrt['ip'])) && ($eqlogic->getConfiguration('ip') !=  $asuswrt['ip']) && ($asuswrt['ip'] != '')) {
        log::add('asuswrt', 'debug', 'New IP ' . $asuswrt['ip'] . ' from ' . $eqlogic->getConfiguration('ip'));
        $eqlogic->setConfiguration('ip', $asuswrt['ip']);
        $eqlogic->save();
      }
      $eqlogic->loadCmdFromConf('client');
      foreach ($asuswrt as $logicalid => $value) {
        if ($value != '') {
          $eqlogic->checkAndUpdateCmd($logicalid, $value);
        }
      }
      $presence = ($asuswrt['status'] == 'OFFLINE') ? 0 : 1;
      /*if ((isset($asuswrt['connexion'])) && ($asuswrt['connexion'] == 'ethernet') && ($presence == 0)) {
        exec(system::getCmdSudo() . "ping -c1 " . $asuswrt['ip'], $output, $return_var);
        if ($return_var == 0) {
            $presence = 1;
        }
      }*/
      $eqlogic->checkAndUpdateCmd('presence', $presence);
      /*$cmd = asuswrtCmd::byEqLogicIdAndLogicalId($eqlogic->getId(),'presence');
      if (is_object($cmd)) {
      if (($presence != asuswrtCmd::byEqLogicIdAndLogicalId($eqlogic->getId(),'presence')->execCmd()) && ($eqlogic->getConfiguration('activation') != '')) {
      $manageEq = eqLogic::byLogicalId($eqlogic->getConfiguration('ip'),$eqlogic->getConfiguration('activation'));
      $manageEq->setIsEnable($presence);
      $manageEq->save();
    }
  }*/
}
}

public static function scanRouteur() {
  $result = asuswrt::speed();
  $eqlogic=asuswrt::byLogicalId('router', 'asuswrt');
  if (!is_object($eqlogic)) {
    $eqlogic = new asuswrt();
    $eqlogic->setEqType_name('asuswrt');
    $eqlogic->setLogicalId('router');
    $eqlogic->setIsEnable(1);
    $eqlogic->setIsVisible(1);
    $eqlogic->setName('Router');
    $eqlogic->save();
  }
  $eqlogic->loadCmdFromConf('router');
  $cmd = cmd::byEqLogicIdAndLogicalId($eqlogic->getId(),'txtotal');
  $past = $cmd->execCmd();
  $speed = round(($result['txtotal'] - $past)/60000000,2);
  $eqlogic->checkAndUpdateCmd('txspeed', $speed);
  $cmd = cmd::byEqLogicIdAndLogicalId($eqlogic->getId(),'rxtotal');
  $past = $cmd->execCmd();
  $speed = round(($result['rxtotal'] - $past)/60000000,2);
  $eqlogic->checkAndUpdateCmd('rxspeed', $speed);
  foreach ($result as $logicalid => $value) {
    if ($logicalid == "ethernet") {
      foreach ($value as $id => $values) {
        $cmdlogic = asuswrtCmd::byEqLogicIdAndLogicalId($eqlogic->getId(),'ethernet' . $id . 'link');
        if (!is_object($cmdlogic)) {
          $cmdlogic = new asuswrtCmd();
          $cmdlogic->setName('Ethernet ' . $id . ' Lien');
          $cmdlogic->setEqLogic_id($eqlogic->getId());
          $cmdlogic->setLogicalId('ethernet' . $id . 'link');
          $cmdlogic->setType('info');
          $cmdlogic->setSubType('string');
          $cmdlogic->save();
        }
        $eqlogic->checkAndUpdateCmd('ethernet' . $id . 'link', $result['ethernet'][$id]['link']);
        $cmdlogic = asuswrtCmd::byEqLogicIdAndLogicalId($eqlogic->getId(),'ethernet' . $id . 'mac');
        if (!is_object($cmdlogic)) {
          $cmdlogic = new asuswrtCmd();
          $cmdlogic->setName('Ethernet ' . $id . ' MAC');
          $cmdlogic->setEqLogic_id($eqlogic->getId());
          $cmdlogic->setLogicalId('ethernet' . $id . 'mac');
          $cmdlogic->setType('info');
          $cmdlogic->setSubType('string');
          $cmdlogic->save();
        }
        $eqlogic->checkAndUpdateCmd('ethernet' . $id . 'mac', $result['ethernet'][$id]['mac']);
      }
    } else {
      $eqlogic->checkAndUpdateCmd($logicalid, $value);
    }
  }
}

public static function scan() {
  $result = array();
  $wifi = array();
  $blocked = array();
  foreach (eqLogic::byType('asuswrt') as $asuswrt) {
    if ($asuswrt->getLogicalId('id') == 'router') {
      continue;
    }
    $result[$asuswrt->getConfiguration('mac')]['status'] = "OFFLINE";
    $result[$asuswrt->getConfiguration('mac')]['ap'] = 'none';
    $result[$asuswrt->getConfiguration('mac')]['mac'] = $asuswrt->getConfiguration('mac');
  }

  if (!$connection = ssh2_connect(config::byKey('addr', 'asuswrt'),'2830')) {
    log::add('asuswrt', 'debug', 'connexion SSH KO');
    return 'error connecting';
  }
  if (!ssh2_auth_password($connection,config::byKey('user', 'asuswrt'),config::byKey('password', 'asuswrt'))){
    log::add('asuswrt', 'error', 'Authentification SSH KO');
    return 'error connecting';
  }

  $stream = ssh2_exec($connection, "nvram get cfg_device_list");
  stream_set_blocking($stream, true);
  $line = stream_get_contents($stream);
  fclose($stream);
  $array=explode("<", $line);
  $i = 0;
  $aimesh = array();
  foreach ($array as $elt) {
    $elts = explode(">", $elt);
    if ($i == 0) {
      //first component is empty
    } else if ($i == 1) {
      $asus_mac = $elts[2];
    } else {
      $aimesh[$elts[2]]['mac'] = $elts[2];
      $aimesh[$elts[2]]['ip'] = $elts[1];
      //log::add('asuswrt', 'debug', 'AIMesh ' . $elts[2]);
    }
    $i++;
  }

  log::add('asuswrt', 'debug', 'AIMesh ' . print_r($aimesh, true));
  //log::add('asuswrt', 'debug', 'Routeur ' . $asus_mac);

  $stream = ssh2_exec($connection, "cat /var/lib/misc/dnsmasq.leases | awk '{print $2\" \"$3\" \"$4}'");
  stream_set_blocking($stream, true);
  while($line = fgets($stream)) {
    //84529 01:e0:4c:68:15:8e 192.168.0.102 host2 01:00:e0:4c:68:15:8e
    //55822 28:5c:07:f6:97:80 192.168.0.32 host *
    $array=explode(" ", $line);
    $mac = trim(strtolower($array[0]));
    if ($mac == '') { continue; }
    $result[$mac]['mac'] = $mac;
    $result[$mac]['ip'] = $array[1];
    $result[$mac]['hostname'] = $array[2];
    $result[$mac]['rssi'] = 0;
    $result[$mac]['status'] = 'OFFLINE';
    $result[$mac]['internet'] = 1;
    $result[$mac]['connexion'] = 'ethernet';
    $result[$mac]['ap'] = $asus_mac;
  }
  fclose($stream);

  $stream = ssh2_exec($connection, "cat /tmp/clientlist.json");
  stream_set_blocking($stream, true);
  $line = stream_get_contents($stream);
  fclose($stream);
  $array = json_decode($line,true);
  //log::add('asuswrt', 'debug', 'cientlist ' . print_r($array, true));

  foreach ($array[$asus_mac]['wired_mac'] as $id => $elt) {
    $result[$id]['mac'] = $id;
    $result[$id]['ip'] = $elt['ip'];
    $result[$id]['rssi'] = 0;
    $result[$id]['status'] = 'ONLINE';
    $result[$id]['internet'] = 1;
    $result[$id]['connexion'] = 'ethernet';
    $result[$id]['ap'] = $asus_mac;
  }

  foreach ($array[$asus_mac]['2G'] as $id => $elt) {

Merci bien

Bonjour,

Peux-tu décommenter la ligne (enlever les deux / devant) :

//log::add('asuswrt', 'debug', 'cientlist ' . print_r($array, true));

ET mettre le plugin en mode debug, on pourra voir ce qu’il y a dans ce fameux $array

Bonjour @chris777c

Le résultat ci-dessous, pourtant j’ai élagué !
Je vois des centaines d’adresses MAC inconnues.
Merci encore :wink:

[2021-05-28 11:01:02][INFO] : Start cron 11:01:02
[2021-05-28 11:01:03][DEBUG] : AIMesh Array ( ) 
[2021-05-28 11:01:03][DEBUG] : cientlist Array (     [xx:xx:xx:xx:xx:xx] => Array         (             [wired_mac] => Array                 (                     [00:00:00:00:0F:09] => Array                         (                             [ip] =>                          )                      [00:00:00:00:0F:89] => Array                         (                             [ip] =>                          )                      [00:00:00:00:5D:80] => Array                         (                             [ip] =>                          )                      [00:00:00:00:5F:80] => Array                         (                             [ip] =>                          )                      [00:00:00:00:AD:89] => Array                         (                             [ip] =>                          )                      [00:00:00:00:AF:09] => Array                         (                             [ip] =>                          )                      [00:00:00:00:AF:89] => Array                         (                             [ip] =>                          )                      [00:00:00:00:BD:80] => Array                         (                             [ip] =>                          )                      [00:00:00:00:BF:00] => Array                         (                             [ip] =>                          )                      [00:00:00:00:BF:80] => Array                         (                             [ip] =>                          )                      [00:00:00:00:BF:87] => Array                         (                             [ip] =>                          )                      [00:00:00:00:F5:00] => Array                         (                             [ip] =>                          )                      [00:00:00:0D:AD:89] => Array                         (                             [ip] =>                          )                      [00:00:00:0D:BD:80] => Array                         (                             [ip] =>                          )                      [00:00:00:0D:BF:80] => Array                         (                             [ip] =>                          )                      [00:00:00:D0:AF:89] => Array                         (                             [ip] =>                          )                      [00:00:00:D0:BF:80] => Array                         (                             [ip] =>                          )                      [00:00:00:DD:BF:80] => Array                         (                             [ip] =>                          )                      [00:00:00:F0:5F:80] => Array                         (                             [ip] =>                          )                      [00:00:00:F0:AF:09] => Array                         (                             [ip] =>                          )                      [00:00:00:F0:AF:29] => Array                         (                             [ip] =>                          )                      [00:00:00:F0:AF:89] => Array                         (                             [ip] =>                          )                      [00:00:00:F0:BF:00] => Array                         (                             [ip] =>                          )                      [00:00:00:F0:BF:80] => Array                         (                             [ip] =>                          )                      [00:00:02:30:9C:F0] => Array                         (                             [ip] =>                          )                      [00:00:04:04:00:0C] => Array                         (                             [ip] =>                          )                      [00:00:04:04:50:04] => Array                         (                             [ip] =>                          )                      [00:00:05:00:0D:89] => Array                         (                             [ip] =>                          )                      [00:00:05:00:5F:80] => Array                         (                             [ip] =>                          )                      [00:00:05:00:AD:89] => Array                         (                             [ip] =>                          )                      [00:00:05:00:AF:89] => Array                         (                             [ip] =>                          )                      [00:00:05:00:BD:80] => Array                         (                             [ip] =>                          )                      [00:00:05:00:BF:00] => Array                         (                             [ip] =>                          )                      [00:00:05:00:BF:80] => Array                         (                             [ip] =>                          )                      [00:00:05:04:50:04] => Array                         (                             [ip] =>                          )                      [00:00:05:0D:BF:80] => Array                         (                             [ip] =>                          )                      [00:00:0D:04:00:00] => Array                         (                             [ip] =>                          )                      [00:00:65:00:F5:00] => Array                         (                             [ip] =>                          )                      [00:00:A5:00:F5:00] => Array                         (                             [ip] =>                          )                      [00:00:E0:00:5F:80] => Array                         (                             [ip] =>                          )                      [00:00:E0:00:AD:89] => Array                         (                             [ip] =>                          )                      [00:00:E0:00:AF:09] => Array                         (                             [ip] =>                          )                      [00:00:E0:00:AF:89] => Array                         (                             [ip] =>                          )                      [00:00:E0:00:BD:80] => Array                         (                             [ip] =>                          )                      [00:00:E0:00:BF:00] => Array                         (                             [ip] =>                          )                      [00:00:E0:00:BF:80] => Array                         (                             [ip] =>                          )                      [00:00:E0:D0:AD:89] => Array                         (                             [ip] =>                          )                      [00:00:E0:D0:AF:89] => Array                         (                             [ip] =>                          )                      [00:00:E0:D0:BF:80] => Array                         (                             [ip] =>                          )                      [00:00:E0:F0:0F:89] => Array                         (                             [ip] =>                          )                      [00:00:E0:F0:5F:80] => Array                         (                             [ip] =>                          )                      [00:00:E0:F0:AF:89] => Array                         (                             [ip] =>                          )                      [00:00:E0:F0:BF:00] => Array                         (                             [ip] =>                          )                      [00:00:E0:F0:BF:80] => Array                         (                             [ip] =>                          )                      [00:00:E0:FD:BF:80] => Array                         (                             [ip] =>                          )                      [00:00:E5:00:AF:89] => Array                         (                             [ip] =>                          )                      [00:00:E5:00:BD:80] => Array                         (                             [ip] =>                          )                      [00:00:E5:00:BF:80] => Array                         (                             [ip] =>                          )                      [00:00:E5:F0:5F:80] => Array                         (                             [ip] =>                          )                      [00:00:E5:F0:BF:00] => Array                         (                             [ip] =>                          )                      [00:00:E5:F0:BF:80] => Array                         (                             [ip] =>                          )                      [00:00:F4:04:00:0C] => Array                         (                             [ip] =>                          )                      [00:00:F4:04:50:04] => Array                         (                             [ip] =>                          )                      [00:01:65:00:F5:00] => Array                         (                             [ip] =>                          )                      [00:01:65:00:FF:00] => Array                         (                             [ip] =>                          )                      [00:01:F0:00:F5:00] => Array                         (                             [ip] =>                          )                      [00:11:32:C5:65:F9] => Array                         (                             [ip] => xxx.xxx.xxx.xx                        )                      [xx:xx:xx:xx:xx:xx] => Array                         (                             [ip] => xxx.xxx.xxx.xx                        )                      [xx:xx:xx:xx:xx:xx] => Array                         (                             [ip] => xxx.xxx.xxx.xx                        )                      [xx:xx:xx:xx:xx:xx] => Array                         (                             [ip] =>                          )                      [xx:xx:xx:xx:xx:xx] => Array                         (                             [ip] =>                          )                      [00:30:00:00:BD:80] => Array                         ……………………………..(                             [ip] => xxx.xxx.xxx.xx                         )                      [xx:xx:xx:xx:xx:xx] => Array                         (                             [ip] =>                          )                      [xx:xx:xx:xx:xx:xx] => Array                         (                             [ip] => xxx.xxx.xxx.xx                         )                      [xx:xx:xx:xx:xx:xx] => Array                         (                             [ip] => xxx.xxx.xxx.xx                         )                      [xx:xx:xx:xx:xx:xx] => Array                         (                             [ip] => xxx.xxx.xxx.xx                         )                      [xx:xx:xx:xx:xx:xx] => Array                         (                             [ip] =>                          )                      [xx:xx:xx:xx:xx:xx] => Array                         (                             [ip] =>                          )                      [xx:xx:xx:xx:xx:xx] => Array                         (                             [ip] => xxx.xxx.xxx.xx                         )                      [xx:xx:xx:xx:xx:xx] => Array                         (                             [ip] => xxx.xxx.xxx.xx                         )                      [AC:[2021-05-28 11:01:03][DEBUG] : Wifi eth6 eth7
[2021-05-28 11:01:03][DEBUG] : Check hostname *  present xxx.xxx.xxx.xx
[2021-05-28 11:01:03][DEBUG] : Check hostname *  present xxx.xxx.xxx.xx
[2021-05-28 11:01:03][DEBUG] : Check hostname *  present xxx.xxx.xxx.xx
[2021-05-28 11:01:03][DEBUG] : Check hostname *  present xxx.xxx.xxx.xx
[2021-05-28 11:01:03][DEBUG] : Check hostname *  present xxx.xxx.xxx.xx
[2021-05-28 11:01:03][DEBUG] : Scan Asus, result {«xx:xx:xx:xx:xx:xx":{"status":"OFFLINE","ap »: »xx:xx:xx:xx:xx:xx», »mac »: »xx:xx:xx:xx:xx:xx », »ip":"xxx.xxx.xxx.xx","hostname »: »xxxxx

","rssi":0,"internet":1,"connexion":"ethernet"},"00:00:00:00:0F:09":{"mac":"00:00:00:00:0F:09","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:00:0F:89":{"mac":"00:00:00:00:0F:89","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:00:5D:80":{"mac":"00:00:00:00:5D:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:00:5F:80":{"mac":"00:00:00:00:5F:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap »: »xx:xx:xx:xx:xx:xx »}, »00:00:00:00:AD:89":{"mac":"00:00:00:00:AD:89","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:00:AF:09":{"mac":"00:00:00:00:AF:09","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:00:AF:89":{"mac":"00:00:00:00:AF:89","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:00:BD:80":{"mac":"00:00:00:00:BD:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:00:BF:00":{"mac":"00:00:00:00:BF:00","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:00:BF:80":{"mac":"00:00:00:00:BF:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:00:BF:87":{"mac":"00:00:00:00:BF:87","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:00:F5:00":{"mac":"00:00:00:00:F5:00","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:0D:AD:89":{"mac":"00:00:00:0D:AD:89","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:0D:BD:80":{"mac":"00:00:00:0D:BD:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:0D:BF:80":{"mac":"00:00:00:0D:BF:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:D0:AF:89":{"mac":"00:00:00:D0:AF:89","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:D0:BF:80":{"mac":"00:00:00:D0:BF:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:DD:BF:80":{"mac":"00:00:00:DD:BF:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:F0:5F:80":{"mac":"00:00:00:F0:5F:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:F0:AF:09":{"mac":"00:00:00:F0:AF:09","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:F0:AF:29":{"mac":"00:00:00:F0:AF:29","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:F0:AF:89":{"mac":"00:00:00:F0:AF:89","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:F0:BF:00":{"mac":"00:00:00:F0:BF:00","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:00:F0:BF:80":{"mac":"00:00:00:F0:BF:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:02:30:9C:F0":{"mac":"00:00:02:30:9C:F0","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:04:04:00:0C":{"mac":"00:00:04:04:00:0C","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:04:04:50:04":{"mac":"00:00:04:04:50:04","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:05:00:0D:89":{"mac":"00:00:05:00:0D:89","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:05:00:5F:80":{"mac":"00:00:05:00:5F:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:05:00:AD:89":{"mac":"00:00:05:00:AD:89","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:05:00:AF:89":{"mac":"00:00:05:00:AF:89","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:05:00:BD:80":{"mac":"00:00:05:00:BD:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:05:00:BF:00":{"mac":"00:00:05:00:BF:00","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:05:00:BF:80":{"mac":"00:00:05:00:BF:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:05:04:50:04":{"mac":"00:00:05:04:50:04","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:05:0D:BF:80":{"mac":"00:00:05:0D:BF:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:0D:04:00:00":{"mac":"00:00:0D:04:00:00","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:65:00:F5:00":{"mac":"00:00:65:00:F5:00","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:A5:00:F5:00":{"mac":"00:00:A5:00:F5:00","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E0:00:5F:80":{"mac":"00:00:E0:00:5F:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E0:00:AD:89":{"mac":"00:00:E0:00:AD:89","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E0:00:AF:09":{"mac":"00:00:E0:00:AF:09","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E0:00:AF:89":{"mac":"00:00:E0:00:AF:89","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E0:00:BD:80":{"mac":"00:00:E0:00:BD:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E0:00:BF:00":{"mac":"00:00:E0:00:BF:00","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E0:00:BF:80":{"mac":"00:00:E0:00:BF:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E0:D0:AD:89":{"mac":"00:00:E0:D0:AD:89","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E0:D0:AF:89":{"mac":"00:00:E0:D0:AF:89","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E0:D0:BF:80":{"mac":"00:00:E0:D0:BF:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E0:F0:0F:89":{"mac":"00:00:E0:F0:0F:89","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E0:F0:5F:80":{"mac":"00:00:E0:F0:5F:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E0:F0:AF:89":{"mac":"00:00:E0:F0:AF:89","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E0:F0:BF:00":{"mac":"00:00:E0:F0:BF:00","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E0:F0:BF:80":{"mac":"00:00:E0:F0:BF:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E0:FD:BF:80":{"mac":"00:00:E0:FD:BF:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E5:00:AF:89":{"mac":"00:00:E5:00:AF:89","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E5:00:BD:80":{"mac":"00:00:E5:00:BD:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E5:00:BF:80":{"mac":"00:00:E5:00:BF:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E5:F0:5F:80":{"mac":"00:00:E5:F0:5F:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E5:F0:BF:00":{"mac":"00:00:E5:F0:BF:00","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:E5:F0:BF:80":{"mac":"00:00:E5:F0:BF:80","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:F4:04:00:0C":{"mac":"00:00:F4:04:00:0C","ip":"","rssi":0,"status":"ONLINE","internet":1,"connexion":"ethernet","ap":"xx:xx:xx:xx:xx:xx"},"00:00:F4:04:50:04 »:…………………………………………………………………………}
[2021-05-28 11:01:09][DEBUG] : Ping Google round-trip min/avg/max = 6.614/6.614/6.614 ms 
[2021-05-28 11:01:09][DEBUG] : Ping Google 6.614
[2021-05-28 11:01:09][DEBUG] : Temp, result 
[2021-05-28 11:01:09][DEBUG] : Speed Asus, result {"txtotal":"22233878613
","rxtotal":"14784205864
","wifi24":"0
","wifi5":"0
","guest24":"0
","guest5":"0
","wan0_state":"Connected","wan0_ipaddr":"xxx.xxx.xxx..2
","wan0_ifname":"eth0
","wan1_state":"Stopped","wan1_ipaddr":"0.0.0.0
","wan1_ifname":"
","vpn_client1_state":"Stopped","vpn_client2_state":"Stopped","vpn_client3_state":"Stopped","vpn_client4_state":"Stopped","vpn_client5_state":"Stopped","ping_google":6.614,"ping_dns":6.844,"temp_wl24":"","temp_wl5":"","temp_cpu":"","mem_used":"451636","mem_free":"452020
","cpu_user":"0.0","cpu_sys":"0.0","cpu_nic":"0.0","cpu_idle":"100","cpu_io":"0.0","cpu_irq":"0.0","cpu_sirq":"0.0
"}
[2021-05-28 11:01:10][INFO] : End cron 11:01:10

@chris777c

Je vois dans un autre fil que tu avais modifié des commandes

Pour faire fonctionner, j’avais modifié le code des commandes ssh appelées par le fichier php asuswrt.class.php

Aurais-tu ce fichier à me communiquer ?

Je ne sais pas ce qui peut expliquer toutes ces adresses MAC…
Par contre j’ai au moins un appareil connecté qui est présent dans le log et ne remonte pas dans la liste des équipements.
Peut être une amélioration sera visible après modification par ton nouveau fichier asus.class.php

Merci bien.

Bonjour,

Si tu as bien fait la dernière mise à jour du firmware de ton ASUS RT-AX88U, mon fichier modifier n’a pas d’intérêt.

Voici la structure du tableau chez moi

[04:D4:C4:50:BC:20] => Array  (  [2G] => Array  ( [CC:61:E5:45:45:10] => Array                         (                             [ip] => A.A.A.A                             [rssi] => -43                         ) 

De ton côté je ne vois pas de case 2G

Bonjour

J’ai la dernière version du firmware proposée par Asus : Version du firmware:[3.0.0.4.386_42820]
Capture d’écran 2021-05-30 à 15.20.18.pdf (135,9 Ko)

Pourtant quand j’ai changé les commandes SSH que tu avais modifié, cela m’a permis d’avoir 3 équipements qui n’apparaissaient pas avant.

Le wifi n’est pas activé sur le routeur. Je viens de l’activer mais cela ne change rien.
Je regarde dans le log et toujours pas de [2G].

Questions :

  • Ou vois-tu cette ligne [2G] chez toi ?
  • Pourquoi il y a des centaines adresses MAC qui ne sont pas à moi ?

Je en comprends pas vraiment ce qui se passe :roll_eyes:

Merci encore

2G doit être présent quand tu as des appareils connectés en wifi d’après ce que je comprends de ton côté non ?

Pourquoi autant d’adresse mac, j’en ai aucune idée

Même avec le wifi activé, je n’ai pas 2G.

Mais je n’ai aucun équipement connecté sur ce routeur, je vais essayer d’en connecté pour voir si 2G apparaît dans le log.

Merci pour ton fichier, je vais le remplacer.

Chez toi, tu n’as que les adresses MAC de tes équipements dans le log ?

Bonjour @chris777c

J’ai comparé ton fichier au mien et effectivement, je vois les modifications.
Donc j’ai remplacé par ton fichier, mais maintenant j’ai une erreur dans le log

[2021-06-01 19:55:02][DEBUG] : Lancement de : /var/www/html/core/class/../../core/php/jeePlugin.php  plugin_id=asuswrt function=install callInstallFunction=1

Et sur le Dasboard les équipements ne s’affiche plus

Class asuswrt does not exist

J’ai loupé quelque chose ?

Désolé de t’embeter encore :frowning_face:

Je ne vois pas, il vaut mieux remettre l’ancien fichier

Arès une journée passé sur la bête (merci patron), j’ai modifié les commandes à la main dans JeeXplorer.
Voilà les constats :

  • Les infos des états CPU, Température… remontent bien et s’affiche sur le dashboard.

  • les boutons Aciver/Désactiver Wifi envoie bien les commandes au routeur mais les statuts sur le dashboard ne sont pas mis à jour et sur le routeur non plus (le wifi est coupé mais le routeur affiche qu’il est actif).

  • l’erreur dans le CRON (origine de ce fil) tableau 2G et 5G disparait quand j’active le wifi et connecte un appareil.
    l’erreur revient quand le wifi est désactivé.
    Comment modifier le plugin pour que ces lignes n’apparaissent plus ?

  • dans le log AsusWRT, il y a des centaines d’adresse MAC inconnue, qui commencent toujours par 00: voir ci-dessous, comment les supprimer ?

Merci à vous.

=> Array=>[00:00:00:00:5F:00] 
=> Array=>[00:00:00:00:5F:80] 
=> Array=>[00:00:00:00:AD:89] 
=> Array=>[00:00:00:00:AF:09] 
=> Array=>[00:00:00:00:AF:89] 
=> Array=>[00:00:00:00:BD:80] 
=> Array=>[00:00:00:00:BF:00] 
=> Array=>[00:00:00:00:BF:80] 
=> Array=>[00:00:00:0D:AF:89] 
=> Array=>[00:00:00:0D:BD:80] 
=> Array=>[00:00:00:0D:BF:80] 
=> Array=>[00:00:00:D0:AF:89] 
=> Array=>[00:00:00:D0:BF:80] 
=> Array=>[00:00:00:DD:5F:80] 
=> Array=>[00:00:00:F0:AF:89] 
=> Array=>[00:00:00:F0:BD:00] 
=> Array=>[00:00:00:F0:BD:80] 
=> Array=>[00:00:00:F0:BF:00] 
=> Array=>[00:00:00:F0:BF:80] 
=> Array=>[00:00:04:04:00:00] 
=> Array=>[00:00:04:04:00:04] 
=> Array=>[00:00:04:04:00:0C] 
=> Array=>[00:00:04:04:50:04] 
=> Array=>[00:00:04:08:50:04] 
=> Array=>[00:00:04:0C:50:04] 
=> Array=>[00:00:05:00:0D:89] 
=> Array=>[00:00:05:00:5F:80] 
=> Array=>[00:00:05:00:AF:89] 
=> Array=>[00:00:05:00:BD:80] 
=> Array=>[00:00:05:00:BF:80] 
=> Array=>[00:00:05:F0:BF:80] 
=> Array=>[00:00:0D:04:00:00] 
=> Array=>[00:00:3D:04:00:0C] 
=> Array=>[00:00:65:00:F5:00] 
=> Array=>[00:00:E0:00:AD:89] 
=> Array=>[00:00:E0:00:AF:09] 
=> Array=>[00:00:E0:00:AF:89] 
=> Array=>[00:00:E0:00:BD:80] 
=> Array=>[00:00:E0:00:BF:00] 
=> Array=>[00:00:E0:00:BF:80] 
=> Array=>[00:00:E0:0D:BD:80] 
=> Array=>[00:00:E0:D0:AD:89] 
=> Array=>[00:00:E0:D0:AF:89] 
=> Array=>[00:00:E0:F0:5F:20] 
=> Array=>[00:00:E0:F0:AF:89] 
=> Array=>[00:00:E0:F0:BD:00] 
=> Array=>[00:00:E0:F0:BD:80] 
=> Array=>[00:00:E0:F0:BF:00] 
=> Array=>[00:00:E0:F0:BF:80] 
=> Array=>[00:00:E0:FD:5F:80] 
=> Array=>[00:00:E0:FD:AF:89] 
=> Array=>[00:00:E5:00:5F:80] 
=> Array=>[00:00:E5:00:AF:89] 
=> Array=>[00:00:E5:00:BD:80] 
=> Array=>[00:00:E5:00:BF:80] 
=> Array=>[00:00:E5:F0:BF:80] 
=> Array=>[00:00:EC:0C:00:0C] 
=> Array=>[00:00:F4:04:00:0C] 
=> Array=>[00:00:F4:04:50:04] 
=> Array=>[00:00:FC:04:00:0C] 
=> Array=>[00:01:00:00:F5:00] 
=> Array=>[00:01:00:00:FF:00] 
=> Array=>[00:01:65:00:F5:00]            

Bonjour,

Pour l’histoire du 2G, tu peux inscrire ceux-ci dans le code :

  if (array_key_exists("2G",$array[$asus_mac]))
  {
    foreach ($array[$asus_mac]['2G'] as $id => $elt) {
      $result[$id]['mac'] = $id;
      $result[$id]['ip'] = $elt['ip'];
      $result[$id]['rssi'] = $elt['rssi'];
      $result[$id]['status'] = 'WIFI';
      $result[$id]['internet'] = 1;
      $result[$id]['connexion'] = 'wifi2.4';
      $result[$id]['ap'] = $asus_mac;
      
    }
  }

Pour les adresses mac, aucune idée, elles sont dans le fichier /tmp/clientlist.json présent sur ton routeur, essai d’ouvrir une discussion sur le forum asus sur le sujet.

Bonjour @chris777c

  • 2G : Merci, c’est exactement ce que je voulais, désactiver cette recherche si le Wifi n’est pas actif.

  • Adresse MAC : c’est bien, tu me confirmes que ce n’est pas normal. Je vais investiguer pour comprendre.

  • Activation Wifi :
    Avec le code de remplacement ci-dessous, les commandes ne fonctionnent pas, le statut sur Jeedom ne bouge pas et rien non plus sur le routeur

//ACTIF ci-dessous
$stream = ssh2_exec($connection, '/bin/nvram set wl' . $_wifi . '_bss_enabled=' . $active);
$shell=ssh2_shell($connection, 'xterm');
sleep(1);
fwrite( $shell, 'service restart_wireless;'.PHP_EOL);

Avec le code d’origine ci-dessous, les commandes sont bien envoyées au routeur, l’état est correct sur Jeedom, le routeur indique bien que la radio est active mais en réalité elle ne l’est pas !

//INACTIF ci-dessous
$stream = ssh2_exec($connection, '/bin/nvram set wl' . $_wifi . '_radio=' . $active);
$stream = ssh2_exec($connection, '/bin/nvram commit');
$stream = ssh2_exec($connection, 'service restart_wireless');

Des idées ?
Merci encore pour ta patience :smiley: