Ce Forum passera en lecture seule en janvier 2020
Image
Merci de vous rendre sur https://community.jeedom.com maintenant pour vos prochains postes ;)

[Plugin Tiers][Sujet Principal] ArduiDom

Pour échanger sur les plugins classés en catégorie "Protocoles domotiques"
Avatar de l’utilisateur
chevalir
Timide
Messages : 148
Inscription : 04 juin 2015, 20:39
Localisation : Ain
Contact :

Re: [Sujet officiel] Plugin ArduiDom

Message par chevalir » 07 mai 2016, 11:55

Pierre.pp59 a écrit :
chevalir a écrit :@Pierre.pp59

Sinon au passage si tu utilise a la fois des CNF_NB_DPIN et des CNF_NB_CPIN je pense qu'il y a un bug dans le sketch voir mon post de Nov 2015
viewtopic.php?f=28&t=1453&p=241375&hili ... nd#p241375

@bobox59 n'avais sans doute pas vu ce post à l'époque et je n'ai pas relancé. En regardant les sketch V24 original j'ai vu qu'il était toujours présent ...
Grand MERCI chevalir pour cette amélioration. C'est agréable de voir mes customs se mettre à jour sans attendre l'autorefresh que j'étais obligé d'utiliser souvent...
J'espère que Bobox59 l'intègrera sans ses prochaine versions.

Je n'arrive toujours pas à mettre plus de 45 customs sur un 2560 et ne comprends pas pourquoi.
J'ai tenté de mettre le buffer TX et/ou RX à 128 et à 256 mais ce n'est guère mieux. Le problème se trouve peut-être être au niveau de la réception dans le plugin.
Combien de customs utilises-tu ?
Content que cela soit utile :D ... J'avais un doute comme personne d'autre n'avait remonté le bug !! :roll:
Mon arduinom est sur une nano. je n'ai que 32 customs définies mais pour le moment j'en utilise que la 12. Mais qu'est-ce que fait avec 45 customs :)
Sauf erreur pour la mise à jour cela remonte custom par custom donc pas de problème à ce niveau ... ce qui est limitant c'est la trame d'init . Pourtant sauf erreur elle est découpés en plusieurs envoi... mais c'est peut-être là le problème ...
chevalir

Avatar de l’utilisateur
Pierre.pp59
Timide
Messages : 77
Inscription : 20 juin 2015, 21:39
Localisation : Nord

Re: [Sujet officiel] Plugin ArduiDom

Message par Pierre.pp59 » 07 mai 2016, 16:59

chevalir a écrit :
Pierre.pp59 a écrit :
chevalir a écrit :@Pierre.pp59

Content que cela soit utile :D ... J'avais un doute comme personne d'autre n'avait remonté le bug !! :roll:
Mon arduinom est sur une nano. je n'ai que 32 customs définies mais pour le moment j'en utilise que la 12. Mais qu'est-ce que fait avec 45 customs :)
Sauf erreur pour la mise à jour cela remonte custom par custom donc pas de problème à ce niveau ... ce qui est limitant c'est la trame d'init . Pourtant sauf erreur elle est découpés en plusieurs envoi... mais c'est peut-être là le problème ...
Ca m'est en effet très utile car je ne pouvais pas faire certaines choses par le fait que le mise à jour n'était pas instantanée mais devait attendre l'autorefresh (qu'il ne faut pas trop pousser non plus) alors MERCI encore.

Je pense aussi que c'est au moment de l'initialisation que ça bloque, lorsque j'augmente les customs j'ai "Erreur lors de l'envoi du CP a l'arduino [CPzzrtzzzzzzzzzzzzzzzz...cccccccc_BAD] != [CP_OK]" à chaque fois.
il y a peut être un temps limité dans le plugin ou dans Jeedom mais ça dépasse mes compétences.
Peux-tu essayer (ou quelqu'un d'autre) de mettre tes customs à 128 pour voir si le problème ne concerne que moi ?

Peut-être que quelqu'un pourrait expliquer ce phénomène et ainsi nous aider à le résoudre.
Jeedom v3.0.11 sur RPI3
Arduidom v24 sur ATmega2560
RFLink R39 sur ATmega2560
Sondes Homemade ATmega 328P/attiny 433/315MHz PT2262 et contacteurs low cost
IPcams, Prises, interrupteurs et commandes diverses
Tasker/Autovoice sur Tablette/Tel

Avatar de l’utilisateur
chevalir
Timide
Messages : 148
Inscription : 04 juin 2015, 20:39
Localisation : Ain
Contact :

Re: [Sujet officiel] Plugin ArduiDom

Message par chevalir » 08 mai 2016, 09:31

Pierre.pp59 a écrit :
Ca m'est en effet très utile car je ne pouvais pas faire certaines choses par le fait que le mise à jour n'était pas instantanée mais devait attendre l'autorefresh (qu'il ne faut pas trop pousser non plus) alors MERCI encore.

Je pense aussi que c'est au moment de l'initialisation que ça bloque, lorsque j'augmente les customs j'ai "Erreur lors de l'envoi du CP a l'arduino [CPzzrtzzzzzzzzzzzzzzzz...cccccccc_BAD] != [CP_OK]" à chaque fois.
il y a peut être un temps limité dans le plugin ou dans Jeedom mais ça dépasse mes compétences.
Peux-tu essayer (ou quelqu'un d'autre) de mettre tes customs à 128 pour voir si le problème ne concerne que moi ?

Peut-être que quelqu'un pourrait expliquer ce phénomène et ainsi nous aider à le résoudre.

Pas possible de passé à 128 sur mes cartes le max pour moi est à 48 ensuite je dépasse les 90% de mémoire avec un comportement instable. J'ai regardé rapidement la partie série d'envoi du CP, la longueur ne dépend pas du nombre de CUSTOM configuré dans le sketch ... mais du type de carte que tu as choisi dans la config du plugins. Le seul cas ou le sketch renvoi BAD pour les CP c'est si le message reçu est inférieur au total : CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN +1, mais si tu as choisi la bonne carte dans le plugins cela ne doit pas être possible ... sinon j'ai fais un essai d'envoi de très longue trame sur le port série je n'ai pas eu de problème ... mais je ne peux pas faire de test avec Jeedom / Arduidom :? .
chevalir

Avatar de l’utilisateur
Pierre.pp59
Timide
Messages : 77
Inscription : 20 juin 2015, 21:39
Localisation : Nord

Re: [Sujet officiel] Plugin ArduiDom

Message par Pierre.pp59 » 08 mai 2016, 13:28

chevalir a écrit :
Pas possible de passé à 128 sur mes cartes le max pour moi est à 48 ensuite je dépasse les 90% de mémoire avec un comportement instable. J'ai regardé rapidement la partie série d'envoi du CP, la longueur ne dépend pas du nombre de CUSTOM configuré dans le sketch ... mais du type de carte que tu as choisi dans la config du plugins. Le seul cas ou le sketch renvoi BAD pour les CP c'est si le message reçu est inférieur au total : CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN +1, mais si tu as choisi la bonne carte dans le plugins cela ne doit pas être possible ... sinon j'ai fais un essai d'envoi de très longue trame sur le port série je n'ai pas eu de problème ... mais je ne peux pas faire de test avec Jeedom / Arduidom :? .
J'avais oublié que tu étais sur nano :?

Je choisis bien Arduino MEGA 2560 dans le plugin.
Le port est bon, l'IP aussi, Je tranfert le sketch aussi bien par l'IDE Arduino que par la fonction "Téléverser le Sketch Arduidom_unified_v24 sur l arduino n°1"
Le croquis utilise 22 130 octets (8%) de l'espace de stockage de programmes. Le maximum est de 253 952 octets.
Les variables globales utilisent 3 695 octets (45%) de mémoire dynamique, ce qui laisse 4 497 octets pour les variables locales. Le maximum est de 8 192 octets.

J'ai refais plusieurs essais: les Customs sont (à première vue) pris en charge de 0 jusque 127 mais mon Ping est NOK et je n'ai plus la radio (RCSwitch) qui est pourtant bien activée et que j'ai avec 32 Customs.

Nouvel essai: après un Eeprom clear, (J'ai aussi essayé avec une autre carte MEGA) J'ai pris le sketch d'origine et ai seulement modifié:

Code : Tout sélectionner

 #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    #define CNF_NB_DPIN 54
    #define CNF_NB_APIN 16
    #define CNF_NB_CPIN 16 // Extensible à 128 Maximum 
par

Code : Tout sélectionner

 #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    #define CNF_NB_DPIN 54
    #define CNF_NB_APIN 16
    #define CNF_NB_CPIN 128 // Extensible à 128 Maximum
et pareil plus de radio RCSwitch et ping NOK

La page santé est OK
Dépendances
Nom: Local Statut: OK
Démon
Nom: Local Statut: OK Configuration: OK

mais toujours ces erreurs:
Arduino 1 PING:NOK
Erreur lors de l'envoi du CP a l'arduino
[CPzzrtzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccccccccccccczzzzzzzzzzzzzzzzzzzzzzzzz
czzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzccccccccccccccccc_BAD] != [CP_OK]
[arduidom][ERROR] : 1 Erreur(s) pendant le lancement du démon...

Ce qui m'étonne c'est que cette chaine fait 214 caractères :shock:
Jeedom v3.0.11 sur RPI3
Arduidom v24 sur ATmega2560
RFLink R39 sur ATmega2560
Sondes Homemade ATmega 328P/attiny 433/315MHz PT2262 et contacteurs low cost
IPcams, Prises, interrupteurs et commandes diverses
Tasker/Autovoice sur Tablette/Tel

Avatar de l’utilisateur
chevalir
Timide
Messages : 148
Inscription : 04 juin 2015, 20:39
Localisation : Ain
Contact :

Re: [Sujet officiel] Plugin ArduiDom

Message par chevalir » 08 mai 2016, 14:46

Pierre.pp59 a écrit : J'avais oublié que tu étais sur nano :?

Je choisis bien Arduino MEGA 2560 dans le plugin.
Le port est bon, l'IP aussi, Je tranfert le sketch aussi bien par l'IDE Arduino que par la fonction "Téléverser le Sketch Arduidom_unified_v24 sur l arduino n°1"
Le croquis utilise 22 130 octets (8%) de l'espace de stockage de programmes. Le maximum est de 253 952 octets.
Les variables globales utilisent 3 695 octets (45%) de mémoire dynamique, ce qui laisse 4 497 octets pour les variables locales. Le maximum est de 8 192 octets.

J'ai refais plusieurs essais: les Customs sont (à première vue) pris en charge de 0 jusque 127 mais mon Ping est NOK et je n'ai plus la radio (RCSwitch) qui est pourtant bien activée et que j'ai avec 32 Customs.

Nouvel essai: après un Eeprom clear, (J'ai aussi essayé avec une autre carte MEGA) J'ai pris le sketch d'origine et ai seulement modifié:

Code : Tout sélectionner

 #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    #define CNF_NB_DPIN 54
    #define CNF_NB_APIN 16
    #define CNF_NB_CPIN 16 // Extensible à 128 Maximum 
par

Code : Tout sélectionner

 #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    #define CNF_NB_DPIN 54
    #define CNF_NB_APIN 16
    #define CNF_NB_CPIN 128 // Extensible à 128 Maximum
et pareil plus de radio RCSwitch et ping NOK

La page santé est OK
Dépendances
Nom: Local Statut: OK
Démon
Nom: Local Statut: OK Configuration: OK

mais toujours ces erreurs:
Arduino 1 PING:NOK
Erreur lors de l'envoi du CP a l'arduino
[CPzzrtzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccccccccccccczzzzzzzzzzzzzzzzzzzzzzzzz
czzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzccccccccccccccccc_BAD] != [CP_OK]
[arduidom][ERROR] : 1 Erreur(s) pendant le lancement du démon...

Ce qui m'étonne c'est que cette chaine fait 214 caractères :shock:
CPzzrtzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccccccccccccczzzzzzzzzzzzzzzzzzzzzzzzz
czzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzccccccccccccccccc
j'ai posé la chaine sans le (_BAD) dans mon éditeur qui me dit 216 pas 214. Le max coté sketch arduino c'est 214 !! :roll:
J'ai fais le test cette chaine ne passe pas !!
Pour quelle passe il faut faire les motifs que j'ai identifiées avec le tag @@RC dans ce code :

Code : Tout sélectionner

....
// Variables pour SERIE
boolean SerialDataOK = false;
boolean ForceRefreshData = false; // Mise a 1 toute les 30 secondes pour envoi des données

char DataSerie[224]; // a string to hold incoming data   @@RC Remplacer par 216 per 224

char l[3]; // a string to hold incoming data
byte LenSerial = 0;
....


void serialEvent() {
			while (Serial.available() > 0) { // Lecture du port serie
				Serial.readBytes(l, 1);
				DataSerie[LenSerial] = l[0];
				if (DataSerie[LenSerial] == '\n') {
					DataSerie[LenSerial] = char(0);
					SerialDataOK = true;
					break;
				}
				LenSerial += 1;

				if (LenSerial > 222) {  ///  @@RC   remplacer 214 par 222 

					LenSerial = 0;
					break;
				}
			}
		} // EOF serialEvent()

après ces deux modifications pour moi la chaine passe avant non...

hope to help
chevalir

Avatar de l’utilisateur
Pierre.pp59
Timide
Messages : 77
Inscription : 20 juin 2015, 21:39
Localisation : Nord

Re: [Sujet officiel] Plugin ArduiDom

Message par Pierre.pp59 » 08 mai 2016, 16:07

chevalir a écrit : Ce qui m'étonne c'est que cette chaine fait 214 caractères :shock:

CPzzrtzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccccccccccccczzzzzzzzzzzzzzzzzzzzzzzzz
czzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzccccccccccccccccc
j'ai posé la chaine sans le (_BAD) dans mon éditeur qui me dit 216 pas 214. Le max coté sketch arduino c'est 214 !! :roll:
J'ai fais le test cette chaine ne passe pas !!
Pour quelle passe il faut faire les motifs que j'ai identifiées avec le tag @@RC dans ce code :

Code : Tout sélectionner

....
// Variables pour SERIE
boolean SerialDataOK = false;
boolean ForceRefreshData = false; // Mise a 1 toute les 30 secondes pour envoi des données

char DataSerie[224]; // a string to hold incoming data   @@RC Remplacer par 216 per 224

char l[3]; // a string to hold incoming data
byte LenSerial = 0;
....


void serialEvent() {
			while (Serial.available() > 0) { // Lecture du port serie
				Serial.readBytes(l, 1);
				DataSerie[LenSerial] = l[0];
				if (DataSerie[LenSerial] == '\n') {
					DataSerie[LenSerial] = char(0);
					SerialDataOK = true;
					break;
				}
				LenSerial += 1;

				if (LenSerial > 222) {  ///  @@RC   remplacer 214 par 222 

					LenSerial = 0;
					break;
				}
			}
		} // EOF serialEvent()

après ces deux modifications pour moi la chaine passe avant non...

hope to help
Je ne comptais pas le CP d'où les 214 à la place des 216.

J'ai fait les deux modifs mais rien ne change même pas la longueur de la chaine :(
Le plus gênant c'est que je n'ais pas la radio RCSwitch dès que je pousse les Customs et j'ai besoin des deux.

[2016-05-08 16:02:19][arduidom][ERROR] : Erreur lors de l'envoi du CP a l'arduino [CPzzrtzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccccccccccccc
zzzzzzzzzzzzzzzzzzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzccccccccccccccccc_BAD] != [CP_OK]
[2016-05-08 16:02:19][arduidom][ERROR] : 1 Erreur(s) pendant le lancement du démon...
Jeedom v3.0.11 sur RPI3
Arduidom v24 sur ATmega2560
RFLink R39 sur ATmega2560
Sondes Homemade ATmega 328P/attiny 433/315MHz PT2262 et contacteurs low cost
IPcams, Prises, interrupteurs et commandes diverses
Tasker/Autovoice sur Tablette/Tel

Avatar de l’utilisateur
chevalir
Timide
Messages : 148
Inscription : 04 juin 2015, 20:39
Localisation : Ain
Contact :

Re: [Sujet officiel] Plugin ArduiDom

Message par chevalir » 08 mai 2016, 16:17

@Pierre.pp59
Effectivement lorsque je reproduit le problème de longueur je n'ai pas de log ... le message est simplement ignoré .... il vient de quel fichier ton log ?

EDIT :
Je vois c'est dans les log coté Jeedom ... tu as essayer de lancer le deamon en debug et regarde le log dans /tmp/arduidom_daemon ?
chevalir

Avatar de l’utilisateur
Pierre.pp59
Timide
Messages : 77
Inscription : 20 juin 2015, 21:39
Localisation : Nord

Re: [Sujet officiel] Plugin ArduiDom

Message par Pierre.pp59 » 08 mai 2016, 16:42

chevalir a écrit :@Pierre.pp59
Effectivement lorsque je reproduit le problème de longueur je n'ai pas de log ... le message est simplement ignoré .... il vient de quel fichier ton log ?

EDIT :
Je vois c'est dans les log coté Jeedom ... tu as essayer de lancer le deamon en debug et regarde le log dans /tmp/arduidom_daemon ?
J'ai configure en entrée les Customs de 0 à 34, le 60; le 70, le 80, le 90, le 100, le 110, le 120 et le 127 en laissant las autres sur "Désactiver"

Dans arduidom_deamon:
2016-05-08 16:39:05,204 | INFO | MainThread - arduidomx:566 - ######################################
2016-05-08 16:39:05,204 | INFO | MainThread - arduidomx:567 - # ArduiDom - Arduino Link for jeeDom #
2016-05-08 16:39:05,204 | INFO | MainThread - arduidomx:568 - # v2 by Bobox59 & Cedric02 #
2016-05-08 16:39:05,204 | INFO | MainThread - arduidomx:569 - ######################################
2016-05-08 16:39:05,205 | INFO | MainThread - arduidomx:571 - Username = www-data
2016-05-08 16:39:05,205 | INFO | MainThread - arduidomx:572 - LogLevel = INFO option.logvevel = INFO
2016-05-08 16:39:05,295 | INFO | MainThread - arduidomx:606 - Nombre de processus arduidomx.py = 1
2016-05-08 16:39:05,296 | INFO | MainThread - arduidomx:621 - .
2016-05-08 16:39:05,296 | INFO | MainThread - arduidomx:622 - .
2016-05-08 16:39:05,297 | INFO | MainThread - arduidomx:636 - Launch USB Thread n°1
2016-05-08 16:39:05,297 | INFO | Thread-1 - arduidomx:289 - Opening Arduino USB Port...
2016-05-08 16:39:05,298 | INFO | MainThread - arduidomx:651 - Verify Arduino Version [124] >> Arduino 1
2016-05-08 16:39:07,913 | INFO | MainThread - arduidomx:667 - Arduino 1 >> [PING_OK_V:124]
2016-05-08 16:39:07,914 | INFO | MainThread - arduidomx:826 - Launch Main TCP Thread
2016-05-08 16:39:07,914 | INFO | MainThread - arduidomx:836 - .
2016-05-08 16:39:07,915 | INFO | MainThread - arduidomx:837 - .
2016-05-08 16:39:07,915 | INFO | MainThread - arduidomx:838 - Prepare to launch TCP Thread(s) on base port 58200...
2016-05-08 16:39:08,418 | INFO | MainThread - arduidomx:854 - Launch TCP Thread n°1
2016-05-08 16:39:08,419 | INFO | MainThread - arduidomx:863 - ALL TCP Threads Launched !
2016-05-08 16:39:08,419 | INFO | MainThread - arduidomx:865 - Tell to jeedom Arduinos are OK
2016-05-08 16:39:08,424 | INFO | MainThread - arduidomx:869 - Surveille le .kill ...
2016-05-08 16:39:09,486 | INFO | Thread-1 - arduidomx:282 - Arduino 1 (UNKNOWN ANSWER) >> [BAD_L]
2016-05-08 16:39:19,140 | ERROR | Thread-1 - arduidomx:382 - TIMEOUT : CPzzrtzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccccccccccccc
zzzzzzzzzzzzzzzzzzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzccccccccccccccccc
Jeedom v3.0.11 sur RPI3
Arduidom v24 sur ATmega2560
RFLink R39 sur ATmega2560
Sondes Homemade ATmega 328P/attiny 433/315MHz PT2262 et contacteurs low cost
IPcams, Prises, interrupteurs et commandes diverses
Tasker/Autovoice sur Tablette/Tel

Avatar de l’utilisateur
chevalir
Timide
Messages : 148
Inscription : 04 juin 2015, 20:39
Localisation : Ain
Contact :

Re: [Sujet officiel] Plugin ArduiDom

Message par chevalir » 08 mai 2016, 16:55

c'est le bien un
BAD_L
c'est ... LenSerial >= (1 + CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN qui est faux
cela ne devrait arrivé puisque la chaine fait 216 et que pour toi 1 + CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN = 199 sauf erreur !!

Regarde dans le code du sketch et retire les commentaires des Serial.print juste avant :
if (LenSerial >= (1 + CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN)) {

Code : Tout sélectionner

					Serial.print("DBG_Serie:");
					Serial.println(DataSerie);
					Serial.print("DBG_CP Len=");
					Serial.println(LenSerial);
					if (LenSerial >= (1 + CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN)) {
juste pour voir ce qui est reçu coté arduino ... peut être que des caractères sont perdu en route ... mais laisse les modifs sur les longueurs pour être sure de pouvoir tout recevoir...
chevalir

Avatar de l’utilisateur
Pierre.pp59
Timide
Messages : 77
Inscription : 20 juin 2015, 21:39
Localisation : Nord

Re: [Sujet officiel] Plugin ArduiDom

Message par Pierre.pp59 » 08 mai 2016, 17:18

chevalir a écrit :c'est le bien un
BAD_L
c'est ... LenSerial >= (1 + CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN qui est faux
cela ne devrait arrivé puisque la chaine fait 216 et que pour toi 1 + CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN = 199 sauf erreur !!

Regarde dans le code du sketch et retire les commentaires des Serial.print juste avant :
if (LenSerial >= (1 + CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN)) {

Code : Tout sélectionner

					Serial.print("DBG_Serie:");
					Serial.println(DataSerie);
					Serial.print("DBG_CP Len=");
					Serial.println(LenSerial);
					if (LenSerial >= (1 + CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN)) {
juste pour voir ce qui est reçu coté arduino ... peut être que des caractères sont perdu en route ... mais laisse les modifs sur les longueurs pour être sure de pouvoir tout recevoir...
1 + CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN = 199 en effet.
Pourquoi y a-t-il autant de c à la fin de la chaine ?
J'ai dé-commenté les lignes et laissé les modifs sur les longueurs mais je fais comment pour voir ce qui est reçu du coté Arduino ?

En tout cas je suis certain de recevoir tous les Customs mais j'ai plus de radio...
Le problème ne se situerait pas dans le ReloadEEPROM() puisque c'est lui qui doit relancer la radio ??? "if (i == 2) mySwitch.enableReceive(0);"
Jeedom v3.0.11 sur RPI3
Arduidom v24 sur ATmega2560
RFLink R39 sur ATmega2560
Sondes Homemade ATmega 328P/attiny 433/315MHz PT2262 et contacteurs low cost
IPcams, Prises, interrupteurs et commandes diverses
Tasker/Autovoice sur Tablette/Tel

Avatar de l’utilisateur
chevalir
Timide
Messages : 148
Inscription : 04 juin 2015, 20:39
Localisation : Ain
Contact :

Re: [Sujet officiel] Plugin ArduiDom

Message par chevalir » 08 mai 2016, 19:18

Pierre.pp59 a écrit :
chevalir a écrit :c'est le bien un
BAD_L
c'est ... LenSerial >= (1 + CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN qui est faux
cela ne devrait arrivé puisque la chaine fait 216 et que pour toi 1 + CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN = 199 sauf erreur !!

Regarde dans le code du sketch et retire les commentaires des Serial.print juste avant :
if (LenSerial >= (1 + CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN)) {

Code : Tout sélectionner

					Serial.print("DBG_Serie:");
					Serial.println(DataSerie);
					Serial.print("DBG_CP Len=");
					Serial.println(LenSerial);
					if (LenSerial >= (1 + CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN)) {
juste pour voir ce qui est reçu coté arduino ... peut être que des caractères sont perdu en route ... mais laisse les modifs sur les longueurs pour être sure de pouvoir tout recevoir...
1 + CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN = 199 en effet.
Pourquoi y a-t-il autant de c à la fin de la chaine ?
J'ai dé-commenté les lignes et laissé les modifs sur les longueurs mais je fais comment pour voir ce qui est reçu du coté Arduino ?

En tout cas je suis certain de recevoir tous les Customs mais j'ai plus de radio...
Le problème ne se situerait pas dans le ReloadEEPROM() puisque c'est lui qui doit relancer la radio ??? "if (i == 2) mySwitch.enableReceive(0);"
Si le deamon reçoit "BAD_L" c'est que la conf des pins c'est mal passée ... donc ReloadEEPROM() n'est pas appelé. Est-ce que tu vois les logs que tu viens d'activer, dans /tmp/arduidom_daemon ? Il faut regarder la valeur de DBG_CP Len=??? si c'est pas bon regarde la chaine DBG_Serie:CPzzrtzzzz..... il faut comparer à celle que tu avais dans Jeedom :

si j'ai bien vu ta trame CP tu as l'émetteur sur le PIN 2 et le récepteur sur le 3 ... pour voir ce qui ce passe dans ReloadEEPROM le plus simple est de dé-commenter //#define DBG_PRINT_CP et la tu aura des log du type :

2016-05-08 19:01:45,515 | DEBUG | Thread-1 - arduidomx:375 - 1_Arduino 1 >> [Pin 2 is RRX]
2016-05-08 19:01:45,524 | DEBUG | Thread-1 - arduidomx:243 - Arduino 1 >> [Pin 2 is RRX]
2016-05-08 19:01:45,533 | DEBUG | Thread-1 - arduidomx:245 - Arduino 1 *DBG* >> [Pin 2 is RRX]
2016-05-08 19:01:45,540 | DEBUG | Thread-1 - arduidomx:395 - 2_Arduino 1 >> [Pin 3 is RTX]
2016-05-08 19:01:45,545 | DEBUG | Thread-1 - arduidomx:243 - Arduino 1 >> [Pin 3 is RTX]
2016-05-08 19:01:45,549 | DEBUG | Thread-1 - arduidomx:245 - Arduino 1 *DBG* >> [Pin 3 is RTX]

si tu vois cela c'est le truc bien configurer ... et la :shock: mais si tu n'as pas ces traces c'est qu'il y a encore un truc de travers :(
sinon les 'c' à la fin correspondent aux pins DHT virtuelles si j'ai bien compris.
chevalir

Avatar de l’utilisateur
Pierre.pp59
Timide
Messages : 77
Inscription : 20 juin 2015, 21:39
Localisation : Nord

Re: [Sujet officiel] Plugin ArduiDom

Message par Pierre.pp59 » 08 mai 2016, 20:07

chevalir a écrit :
Si le deamon reçoit "BAD_L" c'est que la conf des pins c'est mal passée ... donc ReloadEEPROM() n'est pas appelé. Est-ce que tu vois les logs que tu viens d'activer, dans /tmp/arduidom_daemon ? Il faut regarder la valeur de DBG_CP Len=??? si c'est pas bon regarde la chaine DBG_Serie:CPzzrtzzzz..... il faut comparer à celle que tu avais dans Jeedom :

si j'ai bien vu ta trame CP tu as l'émetteur sur le PIN 2 et le récepteur sur le 3 ... pour voir ce qui ce passe dans ReloadEEPROM le plus simple est de dé-commenter //#define DBG_PRINT_CP et la tu aura des log du type :

2016-05-08 19:01:45,515 | DEBUG | Thread-1 - arduidomx:375 - 1_Arduino 1 >> [Pin 2 is RRX]
2016-05-08 19:01:45,524 | DEBUG | Thread-1 - arduidomx:243 - Arduino 1 >> [Pin 2 is RRX]
2016-05-08 19:01:45,533 | DEBUG | Thread-1 - arduidomx:245 - Arduino 1 *DBG* >> [Pin 2 is RRX]
2016-05-08 19:01:45,540 | DEBUG | Thread-1 - arduidomx:395 - 2_Arduino 1 >> [Pin 3 is RTX]
2016-05-08 19:01:45,545 | DEBUG | Thread-1 - arduidomx:243 - Arduino 1 >> [Pin 3 is RTX]
2016-05-08 19:01:45,549 | DEBUG | Thread-1 - arduidomx:245 - Arduino 1 *DBG* >> [Pin 3 is RTX]

si tu vois cela c'est le truc bien configurer ... et la :shock: mais si tu n'as pas ces traces c'est qu'il y a encore un truc de travers :(
sinon les 'c' à la fin correspondent aux pins DHT virtuelles si j'ai bien compris.
Je n'ai rien de plus dans les logs de /tmp/arduidom_daemon que ce que j'ai mis plus haut ...
2016-05-08 19:53:09,316 | INFO | Thread-1 - arduidomx:282 - Arduino 1 (UNKNOWN ANSWER) >> [BAD_L]
2016-05-08 19:53:18,065 | ERROR | Thread-1 - arduidomx:382 - TIMEOUT : CPzzrtzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccccccccccccczzzzzzzzzzzzzzzzzzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzccccccccccccccccc
2016-05-08 20:10:24,549 | INFO | Thread-1 - arduidomx:282 - Arduino 1 (UNKNOWN ANSWER) >> [BAD_L]
2016-05-08 20:10:34,205 | ERROR | Thread-1 - arduidomx:382 - TIMEOUT : CPzzrtzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccccccccccccczzzzzzzzzzzzzzzzzzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzccccccccccccccccc



Le plus bizarre c'est qu'avec 35 Customs (jusque 45) tout passent super bien et avec 128 j'ai simplement le RCSwitch qui ne va pas, bien que l'arduino reçoit bien les données radio (led clignotante). Je crois que je vais devoir me résigner à utiliser 2 arduinos: 1x2560 pour mes Customs et 1x328 pour la radio. Les mystères de l'informatique :?: peut-être que Bobox59 pourra nous éclairer.

J'ai peut-être trouvé une solution d'attente: remplacer 5 des "CNF_NB_CPIN" par 128, ça a l'air de fonctionner. Je vais laisser tourner pour voir si c'est fiable.
En tous cas MERCI chevalir pour ton aide précieuse ;)
Jeedom v3.0.11 sur RPI3
Arduidom v24 sur ATmega2560
RFLink R39 sur ATmega2560
Sondes Homemade ATmega 328P/attiny 433/315MHz PT2262 et contacteurs low cost
IPcams, Prises, interrupteurs et commandes diverses
Tasker/Autovoice sur Tablette/Tel

Avatar de l’utilisateur
chevalir
Timide
Messages : 148
Inscription : 04 juin 2015, 20:39
Localisation : Ain
Contact :

Re: [Sujet officiel] Plugin ArduiDom

Message par chevalir » 09 mai 2016, 07:46

Pierre.pp59 a écrit :
chevalir a écrit :
Si le deamon reçoit "BAD_L" c'est que la conf des pins c'est mal passée ... donc ReloadEEPROM() n'est pas appelé. Est-ce que tu vois les logs que tu viens d'activer, dans /tmp/arduidom_daemon ? Il faut regarder la valeur de DBG_CP Len=??? si c'est pas bon regarde la chaine DBG_Serie:CPzzrtzzzz..... il faut comparer à celle que tu avais dans Jeedom :

si j'ai bien vu ta trame CP tu as l'émetteur sur le PIN 2 et le récepteur sur le 3 ... pour voir ce qui ce passe dans ReloadEEPROM le plus simple est de dé-commenter //#define DBG_PRINT_CP et la tu aura des log du type :

2016-05-08 19:01:45,515 | DEBUG | Thread-1 - arduidomx:375 - 1_Arduino 1 >> [Pin 2 is RRX]
2016-05-08 19:01:45,524 | DEBUG | Thread-1 - arduidomx:243 - Arduino 1 >> [Pin 2 is RRX]
2016-05-08 19:01:45,533 | DEBUG | Thread-1 - arduidomx:245 - Arduino 1 *DBG* >> [Pin 2 is RRX]
2016-05-08 19:01:45,540 | DEBUG | Thread-1 - arduidomx:395 - 2_Arduino 1 >> [Pin 3 is RTX]
2016-05-08 19:01:45,545 | DEBUG | Thread-1 - arduidomx:243 - Arduino 1 >> [Pin 3 is RTX]
2016-05-08 19:01:45,549 | DEBUG | Thread-1 - arduidomx:245 - Arduino 1 *DBG* >> [Pin 3 is RTX]

si tu vois cela c'est le truc bien configurer ... et la :shock: mais si tu n'as pas ces traces c'est qu'il y a encore un truc de travers :(
sinon les 'c' à la fin correspondent aux pins DHT virtuelles si j'ai bien compris.
Je n'ai rien de plus dans les logs de /tmp/arduidom_daemon que ce que j'ai mis plus haut ...
2016-05-08 19:53:09,316 | INFO | Thread-1 - arduidomx:282 - Arduino 1 (UNKNOWN ANSWER) >> [BAD_L]
2016-05-08 19:53:18,065 | ERROR | Thread-1 - arduidomx:382 - TIMEOUT : CPzzrtzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccccccccccccczzzzzzzzzzzzzzzzzzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzccccccccccccccccc
2016-05-08 20:10:24,549 | INFO | Thread-1 - arduidomx:282 - Arduino 1 (UNKNOWN ANSWER) >> [BAD_L]
2016-05-08 20:10:34,205 | ERROR | Thread-1 - arduidomx:382 - TIMEOUT : CPzzrtzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzccccccccccccccccccccccccccccccccccczzzzzzzzzzzzzzzzzzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzzzzczzzzzzccccccccccccccccc



Le plus bizarre c'est qu'avec 35 Customs (jusque 45) tout passent super bien et avec 128 j'ai simplement le RCSwitch qui ne va pas, bien que l'arduino reçoit bien les données radio (led clignotante). Je crois que je vais devoir me résigner à utiliser 2 arduinos: 1x2560 pour mes Customs et 1x328 pour la radio. Les mystères de l'informatique :?: peut-être que Bobox59 pourra nous éclairer.

J'ai peut-être trouvé une solution d'attente: remplacer 5 des "CNF_NB_CPIN" par 128, ça a l'air de fonctionner. Je vais laisser tourner pour voir si c'est fiable.
En tous cas MERCI chevalir pour ton aide précieuse ;)
Pas certain d'avoir compris ta solution d'attendre mais si cela fonctionne c'est cool :D . Cela aura au minimum permis de confirmer un bug et peut-être d'en identifier un 2eme ... reste à confirmer tout cela avec @Bobox59 ;)
chevalir

Avatar de l’utilisateur
Pierre.pp59
Timide
Messages : 77
Inscription : 20 juin 2015, 21:39
Localisation : Nord

Re: [Sujet officiel] Plugin ArduiDom

Message par Pierre.pp59 » 09 mai 2016, 19:22

chevalir a écrit : Pas certain d'avoir compris ta solution d'attendre mais si cela fonctionne c'est cool :D . Cela aura au minimum permis de confirmer un bug et peut-être d'en identifier un 2eme ... reste à confirmer tout cela avec @Bobox59 ;)
En fait je pense que dans le sketch il y a un (ou plusieurs) endroit où le CNF_NB_CPIN ne doit pas dépasser 45 alors je met 128 à la place de CNF_NB_CPIN aux strictes endroits indispensables pour avoir 128 Customs comme le tableau, le rafraichissement sur changement de valeur et l'autorefresh mais je laisse les autres à 35 configuré dans

Code : Tout sélectionner

#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    #define CNF_NB_DPIN 54 //54
    #define CNF_NB_APIN 16 //16
    #define CNF_NB_CPIN 35 // Extensible à 128 Maximum 
Tout roule depuis hier soir ça fait 1200 minutes (20h) avec une réception de données différentes toutes les minutes, les Customs se mettent à jour jusqu'au 127ième et recoivent les bonnes valeurs.
Voila qui va ouvrir de nouveaux horizons à mon plugin préféré.
Sans toi je ne serais pas arrivé à cette solution en attendant que Bobox59 remédie à ces deux bugs et je lui avais même exposé mon problème par Email (surtout que je suis à l'origine de cette demande en aout 2015 de Customs supplémentaires), Je pense que la prochaine version tiendra compte de nos remarques.
Jeedom v3.0.11 sur RPI3
Arduidom v24 sur ATmega2560
RFLink R39 sur ATmega2560
Sondes Homemade ATmega 328P/attiny 433/315MHz PT2262 et contacteurs low cost
IPcams, Prises, interrupteurs et commandes diverses
Tasker/Autovoice sur Tablette/Tel

Mikamadgik
Timide
Messages : 16
Inscription : 28 nov. 2015, 23:30

Re: [Sujet officiel] Plugin ArduiDom

Message par Mikamadgik » 09 mai 2016, 20:27

Après une re-installation total: Dépendance ok, Démon configuration OK statut NOK!
Et arduino 1: PING:NOK
Je téléverse: "Il y a eu s erreurs pendant televersement de l'arduino, voir /tmp/avrdude.log.."

[2016-05-09 20:18:51][arduidom][ERROR] : Dépassement du délai de démarrage du démon...
[2016-05-09 20:19:24][arduidom][ERROR] : Dépassement du délai de démarrage du démon...
[2016-05-09 20:19:59][arduidom][ERROR] : Dépassement du délai de démarrage du démon...
[2016-05-09 20:20:32][arduidom][ERROR] : Dépassement du délai de démarrage du démon...
[2016-05-09 20:20:32][arduidom][ERROR] : Dépassement du délai de démarrage du démon...
[2016-05-09 20:21:06][arduidom][ERROR] : Dépassement du délai de démarrage du démon...
[2016-05-09 20:21:40][arduidom][ERROR] : Dépassement du délai de démarrage du démon...
[2016-05-09 20:22:13][arduidom][ERROR] : Dépassement du délai de démarrage du démon...

J'ai beau avoir essayé de téléverser manuellement, ou essayer toutes les combinaisons possible de redémarrage... Je bloque! Vous auriez une piste à m'indiquer svp?

Mikamadgik
Timide
Messages : 16
Inscription : 28 nov. 2015, 23:30

Re: [Sujet officiel] Plugin ArduiDom

Message par Mikamadgik » 09 mai 2016, 21:48

Mikamadgik a écrit :Après une re-installation total: Dépendance ok, Démon configuration OK statut NOK!
Et arduino 1: PING:NOK
Je téléverse: "Il y a eu s erreurs pendant televersement de l'arduino, voir /tmp/avrdude.log.."

[2016-05-09 20:18:51][arduidom][ERROR] : Dépassement du délai de démarrage du démon...
[2016-05-09 20:19:24][arduidom][ERROR] : Dépassement du délai de démarrage du démon...
[2016-05-09 20:19:59][arduidom][ERROR] : Dépassement du délai de démarrage du démon...
[2016-05-09 20:20:32][arduidom][ERROR] : Dépassement du délai de démarrage du démon...
[2016-05-09 20:20:32][arduidom][ERROR] : Dépassement du délai de démarrage du démon...
[2016-05-09 20:21:06][arduidom][ERROR] : Dépassement du délai de démarrage du démon...
[2016-05-09 20:21:40][arduidom][ERROR] : Dépassement du délai de démarrage du démon...
[2016-05-09 20:22:13][arduidom][ERROR] : Dépassement du délai de démarrage du démon...

J'ai beau avoir essayé de téléverser manuellement, ou essayer toutes les combinaisons possible de redémarrage... Je bloque! Vous auriez une piste à m'indiquer svp?
Finalement ça a remarché tout seul... pour combien de temps ^^

Avatar de l’utilisateur
Pierre.pp59
Timide
Messages : 77
Inscription : 20 juin 2015, 21:39
Localisation : Nord

Re: [Sujet officiel] Plugin ArduiDom

Message par Pierre.pp59 » 10 mai 2016, 22:37

Pierre.pp59 a écrit :
chevalir a écrit : Pas certain d'avoir compris ta solution d'attendre mais si cela fonctionne c'est cool :D . Cela aura au minimum permis de confirmer un bug et peut-être d'en identifier un 2eme ... reste à confirmer tout cela avec @Bobox59 ;)
En fait je pense que dans le sketch il y a un (ou plusieurs) endroit où le CNF_NB_CPIN ne doit pas dépasser 45 alors je met 128 à la place de CNF_NB_CPIN aux strictes endroits indispensables pour avoir 128 Customs comme le tableau, le rafraichissement sur changement de valeur et l'autorefresh mais je laisse les autres à 35 configuré dans

Code : Tout sélectionner

#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    #define CNF_NB_DPIN 54 //54
    #define CNF_NB_APIN 16 //16
    #define CNF_NB_CPIN 35 // Extensible à 128 Maximum 
Tout roule depuis hier soir ça fait 1200 minutes (20h) avec une réception de données différentes toutes les minutes, les Customs se mettent à jour jusqu'au 127ième et recoivent les bonnes valeurs.
Voila qui va ouvrir de nouveaux horizons à mon plugin préféré.
Sans toi je ne serais pas arrivé à cette solution en attendant que Bobox59 remédie à ces deux bugs et je lui avais même exposé mon problème par Email (surtout que je suis à l'origine de cette demande en aout 2015 de Customs supplémentaires), Je pense que la prochaine version tiendra compte de nos remarques.
Je pense avoir (ENFIN) trouvé le bug mais je m'y connais pas trop en Python:
Dans ' arduidomx.py ' à la ligne 366

Code : Tout sélectionner

if len(request) >= 64:
   SerialPort.write(request[0:64])
   time.sleep(0.1)  # TODO WHY : Laisse le temps a l'arduino de traiter la 1e part des données, 0.5 avant modif pour tests
   SerialPort.write(request[64:127] + '\n')
Dans le sketch le LenSerial ne reçoit que 127 caractères ce qui fait qu'il n'est jamais >= (1 + CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN ) qui chez moi est égal à 199 (1 + 54 DPIN + 16 APIN + 128 CUSTOMS le maximum en fait). Pour ceux qui utilisent moins de 57 Cutoms (127- (54+16)) tout va bien (d'ou le peu de demande et peut être la seule).
J'ai donc tenté de modifier ' arduidomx.py ' comme ceci:

Code : Tout sélectionner

if len(request) >= 64:
  SerialPort.write(request[0:64])
  time.sleep(0.1)  # TODO WHY : Laisse le temps a l'arduino de traiter la 1e part des données, 0.5 avant modif pour tests
  SerialPort.write(request[64:200] + '\n')
  time.sleep(0.5)  # TODO WHY : Laisse le temps a l'arduino de traiter la 1e part des données, 0.5 avant modif pour tests
Ca fonctionne, LenSerial reçoit bien ses 200 caractères maintenant, mais je me demande s'il ne vaudrait pas mieux décomposer ce 'SerialPort.write(request[64:200] + '\n')' en 2 ou 3 mais là ça me dépasse.
Si quelqu'un connait assez le Python pour me guider, je l'en remercie.
Jeedom v3.0.11 sur RPI3
Arduidom v24 sur ATmega2560
RFLink R39 sur ATmega2560
Sondes Homemade ATmega 328P/attiny 433/315MHz PT2262 et contacteurs low cost
IPcams, Prises, interrupteurs et commandes diverses
Tasker/Autovoice sur Tablette/Tel

Avatar de l’utilisateur
chevalir
Timide
Messages : 148
Inscription : 04 juin 2015, 20:39
Localisation : Ain
Contact :

Re: [Sujet officiel] Plugin ArduiDom

Message par chevalir » 11 mai 2016, 07:25

Pierre.pp59 a écrit :
Je pense avoir (ENFIN) trouvé le bug mais je m'y connais pas trop en Python:
Dans ' arduidomx.py ' à la ligne 366

Code : Tout sélectionner

if len(request) >= 64:
   SerialPort.write(request[0:64])
   time.sleep(0.1)  # TODO WHY : Laisse le temps a l'arduino de traiter la 1e part des données, 0.5 avant modif pour tests
   SerialPort.write(request[64:127] + '\n')
Dans le sketch le LenSerial ne reçoit que 127 caractères ce qui fait qu'il n'est jamais >= (1 + CNF_NB_DPIN + CNF_NB_APIN + CNF_NB_CPIN ) qui chez moi est égal à 199 (1 + 54 DPIN + 16 APIN + 128 CUSTOMS le maximum en fait). Pour ceux qui utilisent moins de 57 Cutoms (127- (54+16)) tout va bien (d'ou le peu de demande et peut être la seule).
J'ai donc tenté de modifier ' arduidomx.py ' comme ceci:

Code : Tout sélectionner

if len(request) >= 64:
  SerialPort.write(request[0:64])
  time.sleep(0.1)  # TODO WHY : Laisse le temps a l'arduino de traiter la 1e part des données, 0.5 avant modif pour tests
  SerialPort.write(request[64:200] + '\n')
  time.sleep(0.5)  # TODO WHY : Laisse le temps a l'arduino de traiter la 1e part des données, 0.5 avant modif pour tests
Ca fonctionne, LenSerial reçoit bien ses 200 caractères maintenant, mais je me demande s'il ne vaudrait pas mieux décomposer ce 'SerialPort.write(request[64:200] + '\n')' en 2 ou 3 mais là ça me dépasse.
Si quelqu'un connait assez le Python pour me guider, je l'en remercie.
Vu le code coté Arduino il me semble que le découpage en bloc de 64 n'est pas utile car l'arduino attend la fin de la trame avant de faire un traitement mais bon sinon pour découpé en bloc je ferais cela :

Code : Tout sélectionner

	begin=0
	blocksize = 64
	while (begin+blocksize) < len(request):
		SerialPort.write(request[begin : begin+blocksize])
		begin += blocksize
		time.sleep(0.1)
	SerialPort.write(request[begin:]+'\n')
pour remplacer

Code : Tout sélectionner

                if len(request) >= 64:
                    SerialPort.write(request[0:64])
                    time.sleep(0.1)  # TODO WHY : Laisse le temps a l'arduino de traiter la 1e part des donnéees, 0.5 avant modif pour tests
                    SerialPort.write(request[64:127] + '\n')
                else:
                    SerialPort.write(request + '\n')
mais je suis pas un expert Python (j'ai commencé hier :D ) il a sans doute mieux mais ce bout de code devrait faire le job. Si tu veux faire un test sans découpage tu aura juste à mettre blocksize= 255 par example.
chevalir

Avatar de l’utilisateur
Pierre.pp59
Timide
Messages : 77
Inscription : 20 juin 2015, 21:39
Localisation : Nord

Re: [Sujet officiel] Plugin ArduiDom

Message par Pierre.pp59 » 13 mai 2016, 19:25

chevalir a écrit : Vu le code coté Arduino il me semble que le découpage en bloc de 64 n'est pas utile car l'arduino attend la fin de la trame avant de faire un traitement mais bon sinon pour découpé en bloc je ferais cela :

Code : Tout sélectionner

	begin=0
	blocksize = 64
	while (begin+blocksize) < len(request):
		SerialPort.write(request[begin : begin+blocksize])
		begin += blocksize
		time.sleep(0.1)
	SerialPort.write(request[begin:]+'\n')
pour remplacer

Code : Tout sélectionner

                if len(request) >= 64:
                    SerialPort.write(request[0:64])
                    time.sleep(0.1)  # TODO WHY : Laisse le temps a l'arduino de traiter la 1e part des donnéees, 0.5 avant modif pour tests
                    SerialPort.write(request[64:127] + '\n')
                else:
                    SerialPort.write(request + '\n')
mais je suis pas un expert Python (j'ai commencé hier :D ) il a sans doute mieux mais ce bout de code devrait faire le job. Si tu veux faire un test sans découpage tu aura juste à mettre blocksize= 255 par example.

Après 48 heures de fonctionnement
, je confirme ce que disait @chevalir, il n'est pas nécessaire de decouper l'envoi en blocs de 64 octets.

Je reste donc sur cette modification jusqu'à avis contraire du Papa d'Arduidom:

Code : Tout sélectionner

if len(request) >= 64:
  SerialPort.write(request[0:64])
  time.sleep(0.1)  # TODO WHY : Laisse le temps a l'arduino de traiter la 1e part des données, 0.5 avant modif pour tests
  SerialPort.write(request[64:199] + '\n')
  time.sleep(0.5)  # TODO WHY : Laisse le temps a l'arduino de traiter la 1e part des données, 0.5 avant modif pour tests
Jeedom v3.0.11 sur RPI3
Arduidom v24 sur ATmega2560
RFLink R39 sur ATmega2560
Sondes Homemade ATmega 328P/attiny 433/315MHz PT2262 et contacteurs low cost
IPcams, Prises, interrupteurs et commandes diverses
Tasker/Autovoice sur Tablette/Tel

Avatar de l’utilisateur
Pierre.pp59
Timide
Messages : 77
Inscription : 20 juin 2015, 21:39
Localisation : Nord

Re: [Sujet officiel] Plugin ArduiDom

Message par Pierre.pp59 » 16 mai 2016, 17:00

Pierre.pp59 a écrit : Après 48 heures de fonctionnement[/b], je confirme ce que disait @chevalir, il n'est pas nécessaire de decouper l'envoi en blocs de 64 octets.

Je reste donc sur cette modification jusqu'à avis contraire du Papa d'Arduidom:

Code : Tout sélectionner

if len(request) >= 64:
  SerialPort.write(request[0:64])
  time.sleep(0.1)  # TODO WHY : Laisse le temps a l'arduino de traiter la 1e part des données, 0.5 avant modif pour tests
  SerialPort.write(request[64:199] + '\n')
  time.sleep(0.5)  # TODO WHY : Laisse le temps a l'arduino de traiter la 1e part des données, 0.5 avant modif pour tests
Pour information, voila 5 jours que tout se passe bien avec cette modification.
Je récupère tous les Customs et aucun plantage :D
Jeedom v3.0.11 sur RPI3
Arduidom v24 sur ATmega2560
RFLink R39 sur ATmega2560
Sondes Homemade ATmega 328P/attiny 433/315MHz PT2262 et contacteurs low cost
IPcams, Prises, interrupteurs et commandes diverses
Tasker/Autovoice sur Tablette/Tel

Répondre

Revenir vers « [Catégorie] Protocoles domotiques »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités