Page 2 sur 2

Re: ZigateEthernet : Reboot périodique du plugin et erreur firmware

Publié : 29 déc. 2021, 08:05
par FCJean
@ deenoo
Merci deenoo.
Effectivement la version de la Zigate Ethernet est bien 1.5c
Si je fais un Get Version dans la console j'ai cela ... ce qui ne m'en dit pas beaucoup plus !

Code : Tout sélectionner

[164439792]-> 01 02 10 10 02 10 02 10 10 03
[164439802]<- 01 80 02 10 02 10 02 19 99 02 10 02 10 02 10 10 02 10 02 10 02 10 02 10 02 10 03
[164439802]<- 01 80 10 02 10 02 15 b2 02 10 02 15 02 13 21 02 10 03
J'ai désactivé le WiFi de la Zigate, car avoir 2 antennes (même si l'antenne Zigbee est externe) 2,4 GHz à 4 cm de distance ... on doit pouvoir faire mieux pour limiter les interférences !
Mais bon, si je désactive le WebServer, il faudra que je reflashe l'ESP si jai besoin de reparamétrer quoique ce soit et le SSID de la Zigate devrait réapparaitre ... mais si le MDP est faux cela posera problème.
Toutefois, si on regarde le code de Zigate-Ethernet.ino, il attends bien ce qui est écrit dans la doc :

Code : Tout sélectionner

 String macID = String(mac[WL_MAC_ADDR_LENGTH - 2], HEX) +
                 String(mac[WL_MAC_ADDR_LENGTH - 1], HEX);
 ...                
String WIFIPASSSTR = "admin"+macID;
J'avais regardé les "issues" dans le GitHub de la Zigate Ethernet et je n'avais rien vu ... je n'avais pas pensé à regarder les Release Notes de la 1.5c.
Je vais regarder le code pour voir ce qui a été fait et surtout comment est implémenté le heartbeat (paquet ICMP, autre, quelle est la cible, ...).

Mais c'est une bonne piste que de désactiver le webserver ... qui de toutes façons ne sert pas à grand chose en prod (je ne passe pas mon temps à analyser des logs en hexa).

@pipiche
Merci d'avoir précisé le fonctionnement, logique, du plugin dans ce cas de figure. En effet je suis beaucoup plus à l'aise pour analyser/écrire du code C/C++ que du Python !

Re: ZigateEthernet : Reboot périodique du plugin et erreur firmware

Publié : 29 déc. 2021, 08:51
par FCJean
Je me réponds à moi-même car je faisais une erreur d'interprétation de la signification de "heartbeat" dans la Zigate-Ethernet (on devrait toujours regarder les sources avant ....).
Il ne s'agit pas ici d'un heartbeat TCP comme ce que l'on mets en oeuvre dans un cluster (je trouvais bizarre aussi que l'on ne renseigne pas d'adresse IP cible ...), ici il s'agit, il me semble, d'envoyer des commandes (\01\02\10\10\02\10\02\10\10\03 au chip Zigbee, depuis l'ESP via le serial, tous les 2 000 000 de "tours de boucle" si aucune donnée n'a été reçue entre temps.
Cela reste donc interne à la Zigate.

Code : Tout sélectionner

  if (loopCount > 2000000)
  {
    if (ConfigSettings.enableHeartBeat)
    {
      Serial.println("loop");
      //\01\02\10\10\02\10\02\10\10\03
      char output_sprintf[2];
      uint8_t cmd[10];
      cmd[0]=0x01;
      cmd[1]=0x02;
      cmd[2]=0x10;
      cmd[3]=0x10;
      cmd[4]=0x02;
      cmd[5]=0x10;
      cmd[6]=0x02;
      cmd[7]=0x10;
      cmd[8]=0x10;
      cmd[9]=0x03;
      Serial2.write(cmd,10);
      Serial2.flush();     
    }
    loopCount=0; 

Donc le "heartbeat" n'a rien à voir avec mon problème.

@deenoo
Par contre ton analyse est probablement la bonne car j'ai exactement le message [Errno 104] Connection reset by peer dans les logs json du plugin. Même si cette fois-ci le plugin n'a pas rebooté.

Code : Tout sélectionner

Time : "29/12/2021 07:26:17"
Module : "TransportTcpip"
nwkid : "None"
PluginHealth : "Ready"
message : "tcpip_read_from_zigate: Connection error while receiving data [Errno 104] Connection reset by peer on <socket.socket fd=38, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6, laddr=('192.168.0.114', 42584)>"
PermitToJoin :
Duration : 255
Starttime : 1640704358
Thread : "ZiGateTCPIP_7"
LastLog : 9
StartTime : "28/12/2021 16:02:37"
FirmwareVersion : "0321"
FirmwareMajorVersion : "05"
PluginVersion :
0 : "stable5-5.1.016"
LastLog : 1
Je vais voir avec le vendeur/développeur de la Zigate avant de désactiver le webserver.

Encore merci à tous.

Re: ZigateEthernet : Reboot périodique du plugin et erreur firmware

Publié : 29 déc. 2021, 08:56
par pipiche
Dans mes souvenirs le problème venait côté zigate-ethernet d’un conflit d’accès. Donc l’idée de désactiver des choses est peut-être la bonne piste.

Le heartbeat de mon point de vue est inutile. 1) ce n’est pas à la zigate-ethernet de le faire, 2) si il y a eu échange un heartbeat n’apporte, 3) le plug-in gére cela et du reste c’est pour ça qu’il restart , car pas de réponse à ses pings


Envoyé de mon iPhone en utilisant Tapatalk