You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+71-5
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ WifInfo est un module de consignation de la téléinformation des compteurs éle
4
4
5
5
## Introduction
6
6
7
-
Ce projet est la fusion de développements réalisés en vue du remplacement d'un [eco-devices](http://gce-electronics.com/fr/111-eco-devices) sur base de [ESP-01](https://fr.wikipedia.org/wiki/ESP8266) et de la une réécriture quasi complète - sauf la partie interface web - du projet homonyme de C-H. Hallard [LibTeleinfo](https://github.com/hallard/LibTeleinfo) avec des modifications notamment de [olileger](https://github.com/olileger/LibTeleinfo) et [Doume](https://github.com/Doume/LibTeleinfo).
7
+
Ce projet est la fusion de développements réalisés en vue du remplacement d'un [eco-devices](http://gce-electronics.com/fr/111-eco-devices) sur base de [ESP-01](https://fr.wikipedia.org/wiki/ESP8266) et de la une réécriture quasi complète - sauf la partie interface web - du projet homonyme de [C-H. Hallard](http://hallard.me)[LibTeleinfo](https://github.com/hallard/LibTeleinfo) avec des modifications notamment de [olileger](https://github.com/olileger/LibTeleinfo) et [Doume](https://github.com/Doume/LibTeleinfo).
8
8
9
9
* Meilleure séparation des fonctions dans des fichiers sources différents
10
10
* Homogénéisation du nommage, nettoyage du code source
@@ -19,12 +19,68 @@ Ce projet est la fusion de développements réalisés en vue du remplacement d'u
19
19
* Exemple de stack [InfluxDB](https://www.influxdata.com) + [Grafana](https://grafana.com) pour la visualisation des données (avec sonde Python et client SSE)
20
20
* Utilisation de [PlatformIO](https://platformio.org) comme environnement de développement
21
21
22
-
## Documentation
22
+
La mise à jour OTA et les notifications jeedom/emoncms ne sont pas testées.
23
+
24
+
## Références
23
25
24
26
Documentation ERDF sur la [téléinformation client](https://www.enedis.fr/sites/default/files/Enedis-NOI-CPT_02E.pdf) pour les compteurs électroniques et pour les compteurs [Linky](https://www.enedis.fr/sites/default/files/Enedis-NOI-CPT_54E.pdf).
25
27
26
28
Module [PiTInfo](https://hallard.me/pitinfov12/) et explications pourquoi le montage avec uniquement optocoupleur et résistances ne suffit pas avec un esp8266.
27
29
30
+
## Interface web
31
+
32
+
### Affichage des jauges PAPP et IINST (en temps réel)
33
+
34
+

35
+
36
+
### Affichage de données de téléinformation
37
+
38
+

39
+
40
+
### Configuration des requêtes HTTP
41
+
42
+
Les requêtes HTTP sont de type GET.
43
+
44
+
Il y a 4 déclenchements possibles:
45
+
* périodique
46
+
* lors d'un changement de période tarifaire (exemple passage de HP à HC)
47
+
* lors de dépassement d'un seuil haut ou retour à un seuil bas (en VA, test avec la valeur PAPP)
48
+
* présence de l'étiquette ADPS (Avertissement de Dépassement de Puissance Souscrite)
49
+
50
+
L'URI est constituée avec les étiquettes de téléinformation (`ADCO`, `HCHC`, `HCHP`, `PTEC`, `PAPP`, `IINST`, etc.) ainsi que des étiquettes internes:
51
+
* date : date au format ISO8601 (ex: 2020-02-02T12:12:00+0100)
52
+
* timestamp : temps en secondes (Unix epoch)
53
+
* chipid : l'identifiant de l'esp8266 sous forme hexadécimale (0x0011AA)
54
+
* type : type de déclenchement (`MAJ`: périodique, `PTEC`: changement tarif, `HAUT`: seuil haut, `BAS`: retour seuil bas, `ADPS`: dépassement, `NORM`: fin dépassement)
55
+
56
+
La syntaxe pour utiliser les étiquettes est au choix:
*http://wifinfo/json : téléinformation sous forme de dictionnaire JSON
65
+
*http://wifinfo/tinfo.json : téléinformation sous forme de tableau JSON, utilisé par l'onglet Téléinformation de l'interface
66
+
*http://wifinfo/system.json : état du système, utilisé par l'onglet Système de l'interface
67
+
*http://wifinfo/config.json : état du système, utilisé par l'onglet Configuration de l'interface
68
+
*http://wifinfo/wifiscan.json : liste des réseaux Wi-Fi, utilisé par l'onglet Configuration de l'interface
69
+
*http://wifinfo/spiffs.json : liste des fichiers, utilisé par l'onglet Fichiers de l'interface
70
+
71
+
### Autres requêtes
72
+
73
+
*http://wifinfo/reset : permet de redémarrer le module
74
+
*http://wifinfo/version : retourne la version (tag git) du système de fichiers
75
+
76
+
### Client SSE
77
+
78
+
Le événements SSE sont accessibles via deux URL: http://wifinfo/tic ou http://wifinfo/sse/tinfo.json, avec une limitiation à deux clients simultatnés.
79
+
80
+
La donnée est la trame de téléinformation au format JSON, comme http://wifinfo/json.
81
+
82
+
Elle est envoyée à chaque réception de trame depuis le compteur.
83
+
28
84
## Compilation
29
85
30
86
Le projet est prévu pour PlatformIO sous macOS ou Linux, en conjonction avec [Visual Studio Code](https://code.visualstudio.com) et son extension [PlatformIO](https://marketplace.visualstudio.com/items?itemName=platformio.platformio-ide).
@@ -33,6 +89,16 @@ L'IDE d'Arduino peut également être utilisé.
33
89
34
90
La page HTML est compressée avec [html-minifier](https://github.com/kangax/html-minifier) et gzip.
35
91
92
+
93
+
### Options de compilation
94
+
95
+
*`DEBUG` : active la sortie sur le port série TX et vitesse 115200. Non utilisable avec un compteur, il faut utiliser le client de test pour injecter des trames.
96
+
*`ENABLE_CLI` : active les commandes par port série (`TAB` ou `ESC`)
97
+
*`DISABLE_LED` : désactive l'utilisation de LED pour les cartes qui n'en ont pas
98
+
*`ENABLE_OTA` : rajoute le code pour les mises à jour OTA **(non testé)**
99
+
100
+
Nota: Sans l'option `DEBUG`, le port série est réglé à 1200 7E1 en RX uniquement. Il y a suffisamment d'outils de mise au point pour ne pas à devoir tester avec un compteur ou un autre microcontrôleur qui simule la téléinformation.
101
+
36
102
### PlatformtIO
37
103
38
104
Avec PlatformIO (soit ligne de commandes, soit extension Visual Studio Code):
@@ -44,7 +110,7 @@ platformio run -t upload
44
110
45
111
### IDE Arduino
46
112
47
-
Cf. les nombreux tutos pour l'utilisation d'esp8266-arduino et l'upload de SPIFFS.
113
+
Cf. les nombreux tutos pour l'utilisation d'esp8266-arduino et l'upload de SPIFFS. Il sera aussi nécessaire de rajouter la librairie SimpleCLI.
48
114
49
115
Le répertoire `data` est préparé à l'aide du script suivant (nécessite python3, gzip, html-minifier) :
50
116
@@ -92,7 +158,7 @@ docker build -t tic .
92
158
docker run --rm -ti -v $(pwd):/tic:ro -v $(pwd)/coverage:/coverage tic /tic/runtest.sh
93
159
```
94
160
95
-
La couverture est disponible dans `./coverage/index.html`
161
+
La couverture est disponible dans `./coverage/index.html`.
96
162
97
163
## Développement web
98
164
@@ -141,7 +207,7 @@ Le dashboard sera alors accessible à cette adresse: [http://localhost:3000/](ht
141
207
142
208
Le montage final utilise un ESP-01S avec le module [PiTInfo](http://hallard.me/pitinfov12-light/) - à acheter sur [tindie](https://www.tindie.com/products/Hallard/pitinfo/). L'alimentation est assurée par un module USB.
0 commit comments