WebServer étrange
-
Bonjour,
je pensais aussi à un débordement de mémoire mais ce qui est curieux c'est que la RAM dispo est quand même largement suffisante d'ou mon scepticisme, j'avoue ne pas avoir eu le temps d'y jeter un oeil pour le momentPour les modifs, aucun problème pour les intégrer il suffit de faire un Pull Request sur votre repo.
-
@AuFilElec Merci pour ton partage
-
@Yoan De rien, même si cela ne résout pas le problème. Mais c'est très étrange, car avec le SDK en 1.5.1 et après mes modifs, la télé-information n'a pas déconné pendant plusieurs jours. J'ai refait quelques modifs dans le code et rechargé le sketch et ça s'est mis à déconné.
Je viens de repasser au SDK 1.3 et le serveur ne voulais plus répondre, j'ai redémarré et maintenant ça fonctionne. Il est super capricieux le Remora.Sinon, j'ai voulu alimenté la carte avec une alimentation 5V 2.4A MeanWell sur les bornes +5V et GND, mais la LED RGB s'est mise à flasher rouge ou bien rester bloqué bleu, avec une légère lueur rouge dans la LED du relais. Je me suis planté quelques par dans le branchement ?
-
Moi aussi il y a une légère lueur dans la led du relais c'est tout à fait normal vu son mode d'alimentation. Pour le reste je n'explique pas le problème. Une autre chose la compilation ne passe pas chez moi avec la dernière version de l'environement ESP pour arduino (problème sur httpwebserver ou un truc du genre).
-
@Fab_33 Le problème de compilation vient il de l'appel de la fonction begin de ESPServer ? Ca fait partit de mes modifs, il me semble. Il y a un paramètre en trop et/ou manquant, j'ai commenté le dernier paramètre pour résoudre mon problème de compilation.
-
@AuFilElec Je ne me souvient plus de l'erreur mais c'était effectivement sur un nombre de paramètres. Je verrais cet été. Pour le moment c'est stable et ça fonctionne alors je n'y touche pas (madame ne va pas apprécier une nouvelle période de tests !)
-
Je comprends madame
Auriez-vous une idée sur la manière de tester correctement les ordres reçus sur les fils pilotes ?
Du style, réalisation d'une petite platine avec des LED de couleurs pour chaque ordre.Pour l'instant, le Remora tourne avec le SDK 1.3 et ça fonctionne, hormis le fait que le serveur Web me paraisse un peu lent.
Concernant l'alimentation, j'ai démarré avec l'USB et j'ai enclenché l'alimentation secteur et enlevé l'alimentation USB. Ça fonctionne correctement, étrange qu'il ne veuille pas démarrer avec l'alimentation secteur. -
Pour les test, j'avais mis une alim en 5V sur platine d'essai puis mesure en amont des optos avec un multimètre en envoyant des commandes. Tout c'est bien passé et je n'ai pas eu de soucis particulier au niveau du hardware.
-
Merci @Fab_33
Mais je souhaiterai pouvoir utiliser ce testeur chez mes clients pour vérifier les fils pilotes des radiateurs. Donc difficile d'envoyer du 5V sur une installation électrique en cours de fonctionnement.
L'idée que j'ai en tête est d'avoir une LED de couleur par ordre et aussi de mettre un Wemos ou un NodeMCU pour communiquer, car lorsque le radiateur est de l'autre côté de la maison, je n'ai pas envie de faire des allers-retours pour chaque ordre. -
Je viens de m’apercevoir que j'avais uploadé la version non modifiée, il y a 8 jours, sur mon Remora et constaté des problèmes sur la télé-information.
Je viens de ré-uploadé la version modifiée, en désactivant les logs, car je suis passé sur un Weemos et il n'y a pas de
Serial1
sur Weemos.
Cela fait plus de 52 heures que ça tourne et je n'ai aucun soucis sur la télé-information et le serveur Web répond aux requêtes correctement et sans attente.J'avais essayé avec le debug activé et dès le début j'avais un problème avec la télé-information.
Par contre, il y une chose que je n'arrive pas à expliquer, c'est que le checksum soit bon avec un label inconnu, à croire qu'il est réécrit avant la vérification.
Je pense que le plus simple serait de vérifier les étiquettes, car il n'y en a pas 150 et cela ne devrait pas bouger ou pratiquement pas.
-
52 h c'est pas mal, mais souvent j'ai des bugs plus longtemps après (genre 5 ou 6 jours). Tiens nous au courant !
-
Ok, mais vu que je suis en train de travailler sur la page Web, mon compteur est repartit à zéro.
Je tâcherai de le laisser tourner pendant une semaine ou deux et je vous ferai un retour à ce moment là.
-
Bonjour à tous,
Je viens de pousser une première version d'interface pour la gestion des zones de chauffage. Elle est plutôt simple pour le moment, mais elle est fonctionnelle. Si vous avez des idées d'amélioration, je veux bien les prendre en compte.
J'ai aussi résolu le problème concernant la reconnaissance des requêtes
fp
(dans la fonction handleNotFound).
Le problème se trouvait lors de la transformation de l'URIString
->char *
. Je pense que la variable retournée parserver->uri()
devait être modifiée après l'avoir récupéré et le pointeur ne devait plus pointer au bon endroit
J'ai aussi déplacé l'initialisation de l'OTA, pour prendre en compte les informations contenues dans la config.
Ce qui pourrait être intéressant aussi, c'est de pousser l'état des zones dans la config, afin de garder ça en mémoire.Autre chose aussi, je suis en train de chercher le moyen de détecter la présence des personnes à l'aide du WiFi en vérifiant le nombre de connexions en mode AP.
Quelqu'un aurait'il déjà fait cela ? Ou auriez-vous des pistes ?
Voici la condition que j'ai trouvé pour le moment:WiFi.getMode() == WIFI_AP_STA && WiFi.softAPgetStationNum() > 0
Pour rappel, mon dépôt se trouve à l'adresse suivante: https://github.com/AuFilElec/remora_soft
-
Il faudrait que je teste ces modifications. Pour ce qui est du stockage, le problème c'est que l'ESP ne va pas vivre longtemps ... Surtout avec des flash from china !
Perso, je pense gérer ca avec l'uptime. Si la nouvelle valeur est inférieure à la précédente c'est qu'il y a eu reboot donc je réécris les valeurs des fils pilotes.
Pour ce qui est de la présence, je laisse la domotique gérer cela. Je trouve que déjà la gestion du délestage devrait être optionnelle. Dans mon cas j'ai un open EVSE pour la voiture et je préfère délester la voiture que le chauffage en première intention sauf si j'ai un besoin spécifique. -
Salut @Fab_33 ,
Je suis d'accord qu'écrire régulièrement dans l'EEPROM risque de limiter la durée de vie de l'ESP.
Je ne comprend pas ton idée d'utiliser l'uptime. A quel moment écris-tu les ordres des fils pilotes dans la config ?Je travaille sur le Remora pour une personne qui n'a pas de domotique et qui n'a pas de connexion Internet (oui, oui, ça existe encore). L'avantage de l'ESP est la possibilité de se mettre en mode AP et donc de permettre à une personne de se connecter au serveur Web. D'où ma demande pour la détection de présence par le WiFi, puisque la personne à un Smartphone.
Voici les améliorations que je souhaite apporter au Remora:
- Ajouter la fonctionnalité vacances pour couper le chauffage et le ballon d'eau chaude (nécessite une gestion de temps)
- Ajouter les relevés de températures pour chaque zone
- Permettre la désactivation permanente de certaines zones (mettre en grisée dans l'interface)
- Ajouter la détection de présence pour la mise en route du chauffage
- Ajouter la gestion de l'heure pour mettre le chauffage en ECO à une certaine heure
- Choisir l'ordre de délestage, bien qu'il suffit de câbler le Remora dans le bon ordre, puisque dans mes souvenirs, il coupe les zones par ordre croissant.
Mon idée est que le Remora soit autonome et ne dépende pas d'un système domotique. C'est d'ailleurs ce que j'ai vu lorsque j'ai découvert ce super projet (merci beaucoup à @Thibault & à @Charles pour le partage).
Voici ce que donne l'interface de gestion des zones (aussi adapté pour la version mobile):
-
Effectivement c'est pratique d'avoir un système indépendant mais il faut que cela soit optionnel. Perso c'est ma domotique qui gère le remora car ce n'est pas le seul objet connecté dans la maison. Pour ce qui est de l'uptime, je récupère la valeur de l'uptime tous les 15s lors de la récupréation de l'objet json de la téléinfo. Si la valeur est inférieure à la précédente valeur récupérée, je renvoie les commandes de fil pilote. Mais bon c'est faisable uniquement avec la domotique.
-
Effectivement, tu gères l'état de tes fils pilote sur ton système domotique. C'est pour ça que je ne comprenais pas, je pensais que c'était sur le Remora.
Je suis en train d'ajouter la gestion du relais sur l'interface Web. Et je regarde pour mettre en place l'état de pilotage du relais (arrêt, marche forcée et auto) comme sur les contacteurs jour/nuit. Par contre, il va falloir que j'ajoute la gestion de temps, pas évident.
C'est quoi ton système domotique ?
-
Tu avais raison @Fab_33 , après 2 jours et 14H de fonctionnement, le problème de télé-info réapparaît.
Il va donc falloir chercher plus en profondeur.Je rectifie mes âneries, @AuFilElec a dit:
je suis passé sur un Weemos et il n'y a pas de
Serial1
sur WeemosIl y a bien le port TX1 sur Wemos en pin 4 (GPIO2). Je viens de me brancher dessus et j'ai redirigé l'ensemble des logs dessus. Je verrai bien ce que j'ai comme informations lorsque je détecterai un problème dans les données de la télé-info. Par contre, le problème c'est d'attendre au minimum 2 jours pour constater le problème, sans être sur d'avoir une info viable.
-
Pour la domotique c'est du node-red avec openHab mais je passe tout sur node-red y compris la visualisation prochainement. J'ai également un emoncms et influxdb/grafana pour la visualisation.
-
@AuFilElec Concernant les valeurs erronées, il y a un checksum, donc je pense que la corruption se fait après avoir entré l'info dans la liste chainée. J'ai noté que les valeurs erronées (au moins pour les étiquettes) sont toujours des mélanges de 2 trames, jamais des caractères aléatoires. J'ai regardé très rapidement, et il faudrait vérifier les fins de chaine. En C/C++, il y a un \0 en fin d'une chaine. Faudrait vérifier que la librairie alloue bien une taille correcte (taille de trame +1).
Pour la vérification de présence, je ne connais pas de moyen de lire les adresses MAC, mais il y a une fonction softAPgetStationNum() qui retourne le nombre de machines connectées à l'AP.
Si le smartphone est le seul à avoir le mot de passe, le compte devrait pouvoir servir de test de présence.