Erreur dans Http_error - BUG ASUSWRT

L’API d’ASUS n’a pas l’air dêtre un cadeau :frowning:

Si celà peut t’aider je viens de trouver une autre anomalie (peut être). Lorsqu’un équipement passe par un répéteur ASUS le voit alternativement avec 2 MAC différent et pourtant la même IP.
Exemple mon doorbird, ci après un print_r de ton scan d’assus :

1c:ca:e3:70:dd:2e] => Array
(
[status] => OFFLINE
[ap] => none
[mac] => 1c:ca:e3:70:dd:2e
)
[02:0f:b5:70:dd:2e] => Array
(
[status] => WIFI
[ap] => routeur
[mac] => 02:0f:b5:70:dd:2e
[hostname] => ?
[ip] => 192.168.2.3
[connexion] => wifi5
[rssi] => -43

et le résultat dans le plugin :

On voit que le plugin à rajouté l’IP et l’AP, visiblement pour asus la clef unique est les 6 dernières position de l’adresse MAC ce qui crée peut être de faux doublon.

Si des test spécifique peuvent t’aider, n’hésite pas, corona oblige j’ai du temps …

Ah c’est effectivement drôle ton cas doorbird.
Mais comme tu l’as identifier, c’est Asus qui doit refiler le bail DHCP sur la base des 6 derniers caractère.
Pas possible côté plugin de faire mieux. Mais il voit bien la partie Ethernet offline quand wifi online.

Sur la dernière version on a une création d’un équipement sans MAC, ni IP, n AP, Cet équipement est rarement le même à chaque fois, une fois détruit, un autre apparaît dans les mn / heure qui suivent.
La clef unique doit empêcher qu’il y en ai plusieurs de créés, on ne voit que le premier créé.

image

Bonjour @lunarok

Je reviens vers toi pour les problèmes d’erreurs dans les logs.

Je pense avoir trouvé une solution propre, sur près de 30 équipements (ethernet wifi2 et wifi5), en une semaine je n’ai plus eu 1 seule ligne d’erreur (cron execution et http error) :slight_smile: cela me change des 100 Ko d’erreur quotidienne !

Ci après les 3 lignes que j’ai corrigées (60, 66, 81) :

//      if ((!$asuswrt['mac']) || ($asuswrt['mac'] == '')) {
      if (!isset($asuswrt['mac'])) {
//        if ($asuswrt['ip'] == '' && $asuswrt['hostname'] == '') {
		if (!isset($asuswrt['ip']) && !isset($asuswrt['hostname'])) {
//      if (($eqlogic->getConfiguration('hostname') !=  $asuswrt['hostname']) || ($eqlogic->getConfiguration('ip') !=  $asuswrt['ip'])) {
      if ((isset($asuswrt['hostname']) && $eqlogic->getConfiguration('hostname') !=  $asuswrt['hostname']) || (isset($asuswrt['ip']) && $eqlogic->getConfiguration('ip') !=  $asuswrt['ip'])) {

Si tu as 5 mn pour intégrer ça à ta class se serait pratique pour la suite …

C’est dans la beta de demain

Super, merci

Ligne 86 aussi (pour le nouveau traitement de « New IP from … ») !!!

      if (isset($asuswrt['ip']) && ($eqlogic->getConfiguration('ip') !=  $asuswrt['ip']) && ($asuswrt['ip'] != '')) {

Fait, dispo demain en beta

@m.georgein pour info, hier j’ai ajouté une douzaine de commandes infos sur le routeur (je suis tombé sur un post qui intégrait Asuswrt dans Grafana qui m’a donné des idées d’infos supplémentaires) :

Juin 2020

Ajout des ping google.com, DNS Google (8.8.8.8)
Ajout des températures chipset Wifi
Ajout des informations mémoire et CPU

Bonne nouvelle :slight_smile: merci
Tout à l’air de fonctionner parfaitement :grin:

Juste comme d’hab un petit soucis dans les logs :frowning: : correction suggérée ligne 87 :

      if ((isset($asuswrt['connexion'])) && ($asuswrt['connexion'] == 'ethernet') && ($presence == 0)) {

ligne 97 plutot :slight_smile:

tu chipotes ! qu’est ce que 10 lignes sur plus de 800 !!! :slight_smile:

Merci pour ces ajouts.

Est-ce qu’il serait également possible de rajouter la temperature de la CPU que l’on peut obtenir de cette façon ?

cat /proc/dmu/temperature 
CPU temperature	: 78�C

Cela fonctionne sur un AC68U et sur un AC88U. Je ne sais pas pour les autres modèles.

Comme elle est déjà pas mal élevée par défaut sur mon AC88U, ca pourrait être bien de pouvoir la monitorer :smiley:

D’ailleurs, je me demande si je ne vais pas lui coller un ventilo pour le refroidir …

C’est dans la beta de demain

Top. Merci.