COOL
Ca marche, je récupère bien les valeurs dans Domoticz ...
Yessssss
Merci à vous tous pour votre travail et votre aide !
Philippe
Best posts made by Phi13
-
RE: Wifinfo, connexion réseau impossible
Latest posts made by Phi13
-
WifInfo - erreur compilation apres Maj biblios et IDE
Bonjour,
Sur un NODEMCU 1.0 (ESP12E) j'ai mis en oeuvre en avril 2019 WifInfo pour Domoticz en utilisant l'environnement suivant :- Arduino IDE 1.8.9
- gestionnaire de carte : esp8266 by esp8266 community version 2.4.1
- librairie : Neopixelbus by Makuna version 2.4.4
- librairie : Lib teleinfo depot de Sylvain Rémy
- téléchargement SPIFFS : ESP8266FS-0.3.0.zip
Compilation et téléversement faits sans problèmes (quelques warning) et l'utilisation OK jusqu'à maintenant pour le transfert des valeurs au dispositif P1 smart meter de Domoticz.
En 2020, j'ai changé de type d'abonnement Linky entre tarif BASE et tarif HCHP.
J'ai donc apporté une modification à la version de Sylvain Remy sur webclient.cpp afin d'élargir les options pour la transmission des valeurs :
// /json.htm?type=command¶m=udevice&idx=IDX&nvalue=0&svalue=USAGE1;USAGE2;RETURN1;RETURN2;CONS;PROD if(config.domoticz.idx_p1sm > 0) { url = baseurl; url += "idx="; url += config.domoticz.idx_p1sm; url += "&nvalue=0"; url += "&svalue="; if(!strcmp(meMap["OPTARIF"], "BASE")) { // Programmation d'origine Sylvain Remy (incomplète) // fonctionnement standard OPTARIF="BASE" url += String(atoi(meMap["BASE"].c_str())).c_str(); url += ";0;0;0;"; } else { // Modification Ph. Marsault -> envoi heures pleines / heures creuses et autres tarifs // OPTARIF="HC.." => Option heures pleines heures creuses // OPTARIF="EJP." => Option EJP. // OPTARIF="BBRx" => Option Tempo url += String(atoi(meMap["HCHP"].c_str())).c_str(); url += ";"; url += String(atoi(meMap["HCHC"].c_str())).c_str(); url += ";0;0;"; } // Puissance apparente url += String(atoi(meMap["PAPP"].c_str())).c_str(); url += ";0";
Pour recompiler le code et télécharger, j'ai mis à jour les environnements :
Arduino IDE 1.8.12, carte ESP8266 etc...
Hélas, j'ai un plantage à la compilation à cause de U_Flash et U_SPIFFS non définis. Même en corrigeant, le code téléversé provoque un reset en boucle du Nodemcu que je n'arrive pas à débugger (je suis débutant dans ce domaine ...)
En remettant l'environnement initial de 2019, compilation et téléchargement du code se passent sans problème et le code modifié fonctionne correctement (bonne adaptation selon le tarif transmis par le Linky)
En conclusion :- j'ai pu effectuer une modification qui fonctionne
- MAIS impossible de compiler avec un environnement à jour, ce serait sympa pour le futur de comprendre pourquoi et d'apporter des corrections (?)..... Cela dépasse mes compétences
Philippe
-
RE: Ajout de Domoticz
@Charles
J'ai utilisé le dépôt de Sylvain Remy
https://github.com/sremy91/LibTeleinfo
J'ai modifié la partie Webclient.cpp pour transmettre les index HC et HP au dispositif virtuel "P1 Smart meter" (il aurait mieux valu faire un if de test pour les tarifs BASE ou HCHP mais je suis un débutant en C++) :// /json.htm?type=command¶m=udevice&idx=IDX&nvalue=0&svalue=USAGE1;USAGE2;RETURN1;RETURN2;CONS;PROD
if(config.domoticz.idx_p1sm > 0)
{
/*
// Programmation d'origine Sylvain Remy incomplète
// fonctionnement standard "BASE"
url = baseurl;
url += "idx=";
url += config.domoticz.idx_p1sm;
url += "&nvalue=0";
url += "&svalue=";
url += String(atoi(meMap["BASE"].c_str())).c_str();
url += ";0;0;0;";
url += String(atoi(meMap["PAPP"].c_str())).c_str();
url += ";0";
*/// Modification Ph. Marsault -> envoi heures pleines / heures creuses url = baseurl; url += "idx="; url += config.domoticz.idx_p1sm; url += "&nvalue=0"; url += "&svalue="; url += String(atoi(meMap["HCHP"].c_str())).c_str(); url += ";"; url += String(atoi(meMap["HCHC"].c_str())).c_str(); url += ";0;0;"; url += String(atoi(meMap["PAPP"].c_str())).c_str(); url += ";0"; if(!httpPost( config.domoticz.host, config.domoticz.port, (char *) url.c_str())) { ret = false; } /* Info(config.domoticz.host); InfoF(":"); Info(config.domoticz.port); Infoln((char *) url.c_str()); InfoF("ret="); Infoln(ret); Infoflush(); */ }
Pour afficher seulement la puissance apparente (PAPP), j'utilise un dispositif virtuel "Custom sensor"
Philippe
-
RE: Wifinfo, mise à jour micro logiciel impossible depuis interface web
Je viens de faire une OTA avec succès à l'aide de l'interface Web Wifinfo.
J'utilise :- le dépôt de Sylvain Remy (modifié pour Domoticz)
https://github.com/sremy91/LibTeleinfo
et les sources de Wifinfo dans son répertoire exemple - interface Arduino IDE 1.8.9 sous Win 10
- Python 2.7.11
J'ai fais une compilation/vérification puis "Exporter les binaires compilés" et enfin changé le nom du fichier généré "Wifinfo.ino.nodemcu.bin" en "Wifinfo.ino.bin"
Dans l'onglet Fichiers, je sélectionne le fichier "Wifinfo.ino.bin" à l'aide de "parcourir" sous le titre "Mise à jour micro-logiciel ou serveur WEB embarqué"
Le téléchargement est très rapide.
L'opération se termine par une indication d'erreur, mais en fait le serveur a redémarré en fonctionne correctement (!)
Dans le fichier log.txt de l'interface web, j'obtiens :
Update: Wifinfo.ino.bin
Flashing CPP
.....................................................................................................................................................................................Update Success: 369056
Rebooting...
Connecting to: xxxxxxxxx with key 'yyyyyyyyy'...
Waited 3000ms
Connected!
IP address : 192.168.2.125
MAC address : zz:zz:zz:zz:zz:zz
HTTP server startedVoici pour le détail basique des opérations ...
- le dépôt de Sylvain Remy (modifié pour Domoticz)
-
RE: Wifinfo, connexion réseau impossible
COOL
Ca marche, je récupère bien les valeurs dans Domoticz ...
Yessssss
Merci à vous tous pour votre travail et votre aide !
Philippe -
RE: Wifinfo, connexion réseau impossible
C'est magique !
Merci pour les explications. Je vais recompiler en mode "normal" et tester la transmission vers Domoticz.
Bonne soirée -
RE: Wifinfo, connexion réseau impossible
Je ne comprends pas tout
Effectivement, en allant sur 192.168.2.125, j'ai le serveur Wifinfo (je pensais qu'il n'était dispo que sur 192.168.4.1 .... ou c'est uniquement que pour la première utilisation ?)
Cela voudrait dire que mon module fonctionne ?
(je ne vois pas le retour d'info sur Domoticz car j'ai déconnecté l'ESP8266 de mon tableau electrique et de la téléinfo ...)
... bizarre.... -
RE: Wifinfo, connexion réseau impossible
Ok, j'ai recompilé et téléversé le code en mode DEBUG comme indiqué par Seb3d.
Je récupère le bavardage que j'ai un peu de mal à interpréter. Le module ne part toujours pas en mode AP mais je crois comprendre qu'il se connecte au réseau local en mode STA.
Voici ci-dessous le début des messages (identifiants masqués) avant le cyclage sur ":urch 49, 49" .... C'est un peu long mais si cela vous permet de lire dans les entrailles de poisson (?)SDK:2.2.1(cfd48f3)/Core:2.4.2/lwIP:2.0.3(STABLE-2_0_3_RELEASE/glue:arduino-2.4.1-13-g163bb82)/BearSSL:6d1cefc
SPIFFSImpl: allocating 512+240+1400=2152 bytes
SPIFFSImpl: mounting fs @300000, size=fb000, block=2000, page=100
SPIFFSImpl: mount rc=0
Good CRC, not set!
========== SDK Saved parameters Start
Mode: STA
PHY mode: N
Channel: 2
AP id: 0
Status: 1
Auto connect: 1
SSID (9): xxxxxxxxx
Passphrase (11): xxxxxxxxxxx
BSSID set: 0
========== SDK Saved parameters End
Connecting to: SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
wata_2013Print::write(data,len) should be overridden for better efficiency
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
with key 'SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
wata;062013SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
'...
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
sta config unchangedscandone
scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 4
cntconnected with xxxxxxxxx, channel 2
dhcp client start...
ip:192.168.2.125,mask:255.255.255.0,gw:192.168.2.1
Waited SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
200SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
ms
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
Connected!
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
IP address : SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
192.168.2.125
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
MAC address : SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
84:F3:EB:18:39:24
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
StaticRequestHandler: path=/font uri=/font isFile=0, cache_header=max-age=86400
StaticRequestHandler: path=/js uri=/js isFile=0, cache_header=max-age=86400
StaticRequestHandler: path=/css uri=/css isFile=0, cache_header=max-age=86400
===== Wifi
ssid :xxxxxxxxx
psk :xxxxxxxxxxx
host :WifInfo-183924
ap_psk :
ap_retrycount:150
OTA auth :OTA_WifInfo
OTA port :8266
Config : DEBUG
===== Emoncms
host :emoncms.org
port :80
url :/input/post.json
key :
node :0
freq :0===== Jeedom
host :jeedom.local
port :80
url :/jeedom/plugins/teleinfo/core/php/jeeTeleinfo.php
key :
compteur :
freq :0===== Domoticz
host :192.168.2.50
port :8080
url :/json.htm
user :
password :
idx_txt :73
idx_p1sm :71
idx_crt :72
idx_elec :0
idx_kwh :0
idx_pct :0
freq :0
HTTP server started
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
SPIFFS_close: fd=1
:urn 49
:urch 49, 49
pm open,type:2 0
:urch 49, 49
:urch 49, 49
:urch 49, 49
:urch 49, 49
:urch 49, 49
:urch 49, 49
:urch 49, 49
:urch 49, 49
:urch 49, 49
:urch 49, 49
:urch 49, 49
:urch 49, 49
:urch 49, 49Philippe
-
RE: Wifinfo, connexion réseau impossible
Damned, je viens de tenter de charger (pour la 2ème fois) WifInfo sur le Nodemcu, mais ce coup ci sans succès (!)
Pour être plus sûr, je viens de repartir de la configuration de S. Remy
https://github.com/sremy91/LibTeleinfo
Je refais une compilation/vérification avec l'IDE Arduino, je téléverse puis je charge les fichiers les fichiers pour la partie serveur avec Esp8266 sktech data upload ...
Mais cette fois, je ne détecte plus le SSID du nodemcu (!) ... donc plus de page web de configuration.
Je ne suis pas super familier de l'IDE Arduino pour cette configuration.
Comment puis-je faire pour débugger WifInfo ? -
RE: Wifinfo, connexion réseau impossible
Merci pour cette réponse.
J'avais déjà essayé de passer le timeout à 30s sans succès.
Dans le sketch de test, la connexion est obtenue en 3s (6 '.' envoyés en print).
Je peux essayer à nouveau avec un long timeout mais je doute un peu (?) -
RE: Wifinfo, connexion réseau impossible
Pour tester si le problème vient du nodemcu (défectueux ?) ou des paramètres de configuration (erronés ?), j'ai chargé un petit script de test, voir ci-dessous avec le résultat, test réalisé à 80MHz.
Le nodemcu se connecte bien sans problème. J'en déduis qu'il y a un problème de configuration dans le script WifInfo ?// **********************************************************************************
// Include Arduino header
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
//
// Gestion de la mise à jour du firmware via le WiFi (Over The Air)
#include <ArduinoOTA.h>
//
// Simulation de la mémoire EEPROM
#include <EEPROM.h>
//
/*- WL_NO_SHIELD = 255, // for compatibility with WiFi Shield library
WL_IDLE_STATUS = 0,
WL_NO_SSID_AVAIL = 1,
WL_SCAN_COMPLETED = 2,
WL_CONNECTED = 3,
WL_CONNECT_FAILED = 4,
WL_CONNECTION_LOST = 5,
WL_DISCONNECTED = 6
*/
const char* ssid = "yyyyyyyyy";
const char* password = "xxxxxxxxx";//IPAddress staticIP(192,168,1,22);
//IPAddress gateway(192,168,1,9);
//IPAddress subnet(255,255,255,0);void setup(void)
{
Serial.begin(115200);
Serial.println();Serial.printf("Connecting to %s\n", ssid);
WiFi.begin(ssid, password);
Serial.printf("Connection status 1 : %d\n", WiFi.status());
//WiFi.config(staticIP, gateway, subnet);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Connected, IP address: ");
Serial.println(WiFi.localIP());
if (WiFi.status() == WL_CONNECTED)
{
uint8_t macAddr[6];
WiFi.macAddress(macAddr);
Serial.printf("Connected, mac address: %02x:%02x:%02x:%02x:%02x:%02x\n", macAddr[0], macAddr[1], macAddr[2], macAddr[3], macAddr[4], macAddr[5]);
}
Serial.printf("Connection status 2 : %d\n", WiFi.status());
// Lecture du hostname et changement
Serial.printf("Default hostname: %s\n", WiFi.hostname().c_str());
//WiFi.hostname("ESP_Linky");
//Serial.printf("New hostname: %s\n", WiFi.hostname().c_str());
}
void loop() {}
Résultat sur le moniteur série :
87
Connecting to yyyyyyyyy
scandone
Connection status 1 : 6
scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 3
cnt
..
connected with yyyyyyyyy, channel 2
dhcp client start...
...ip:192.168.2.125,mask:255.255.255.0,gw:192.168.2.1
.
Connected, IP address: 192.168.2.125
Connected, mac address: 84:f3:eb:18:39:24
Connection status 2 : 3
Default hostname: ESP_183924
pm open,type:2 0 - WL_NO_SHIELD = 255, // for compatibility with WiFi Shield library