-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
eesmart-d2l.html
228 lines (208 loc) · 9.6 KB
/
eesmart-d2l.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
<script type="text/javascript">
RED.nodes.registerType('eesmart-d2l', {
category: 'parser',
color: '#DEBD5C',
defaults: {
name: {value: "eeSmart D2L"},
format_tcp_data: {value: "default"},
format_tcp_output: {value: "buffer"}
},
credentials: {
id_d2l: {
required: true,
type: "text"
},
key_application_communication: {
required: true,
type: "text",
/*validate: RED.validators.regex(/[0-9a-f]{32}/)*/
},
key_initialization_vector: {
required: true,
type: "text",
/*validate: RED.validators.regex(/[0-9a-f]{32}/)*/
},
id_d2l_type: {required: true, type: "text"},
key_application_communication_type: {required: true, type: "text"},
key_initialization_vector_type: {required: true, type: "text"},
},
inputs: 1,
outputs: 2,
icon: "font-awesome/fa-bolt",
label: function () {
return this.name || "eeSmart D2L";
},
paletteLabel: 'eeSmart D2L',
inputLabels: "TCP in",
outputLabels: ["Données", "Sortie TCP"],
oneditprepare: function () {
$("#node-input-id_d2l").typedInput({
type: "text",
types: ["str", "jsonata", "msg", "flow", "global"],
typeField: "#node-input-id_d2l_type"
})
$("#node-input-key_application_communication").typedInput({
type: "text",
types: ["str", "jsonata", "msg", "flow", "global"],
typeField: "#node-input-key_application_communication_type"
})
$("#node-input-key_initialization_vector").typedInput({
type: "text",
types: ["str", "jsonata", "msg", "flow", "global"],
typeField: "#node-input-key_initialization_vector_type"
})
if ($("#node-input-format_tcp_output").val() === null) {
$("#node-input-format_tcp_output").val("base64")
}
if ($("#node-input-format_tcp_data").val() === null) {
$("#node-input-format_tcp_data").val("raw_array")
}
},
});
</script>
<script type="text/html" data-template-name="eesmart-d2l">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Nom</label>
<input type="text" id="node-input-name" placeholder="Nom">
</div>
<div class="form-row">
<label for="node-input-id_d2l"><i class="fa fa-id-badge"></i> ID D2L</label>
<input type="text" id="node-input-id_d2l">
<input type="hidden" id="node-input-id_d2l_type">
</div>
<div class="form-row">
<label for="node-input-key_application_communication"><i class="fa fa-lock"></i> Clé Applicative</label>
<input type="text" id="node-input-key_application_communication">
<input type="hidden" id="node-input-key_application_communication_type">
</div>
<div class="form-row">
<label for="node-input-key_initialization_vector"><i class="fa fa-lock"></i> Clé IV</label>
<input type="text" id="node-input-key_initialization_vector">
<input type="hidden" id="node-input-key_initialization_vector_type">
</div>
<div class="form-row">
<label for="node-input-format_tcp_data"><i class="fa fa-file-text"></i> Format données</label>
<select id="node-input-format_tcp_data">
<option value="default">Défaut</option>
<option value="raw_array">Tableau de données brutes</option>
</select>
</div>
<div class="form-row">
<label for="node-input-format_tcp_output"><i class="fa fa-file-text"></i> Format tcp</label>
<select id="node-input-format_tcp_output">
<option value="buffer" data-i18n="node-red:tcpin.output.buffer"></option>
<option value="base64" data-i18n="node-red:tcpin.output.base64"></option>
</select>
</div>
</script>
<script type="text/html" data-help-name="eesmart-d2l">
<p>Noeud pour traduire les données envoyées par le D2L d'eeSmart Linky.</p>
<h3>Propriétés</h3>
<dl class="message-properties">
<dt>ID D2L <span class="property-type">string</span></dt>
<dd>Le numéro unique de votre D2L.</dd>
<dt>Clé Applicative <span class="property-type">string</span></dt>
<dd>La clé communication applicative (hex) fournie par le support eeSmart.</dd>
<dt>Clé IV <span class="property-type">string</span></dt>
<dd>La clé IV (hex) fournie par le support eeSmart.</dd>
<p>
Les clés ne contiennent que des caractères alphanumériques et ont une longueur de 32 caractères.
Vous pouvez les demander à [email protected] en fournissant le numéro unique du D2L.
</p>
<dt>Format données <span class="property-type">string</span></dt>
<dd>
Le format de sortie des données
<dl>
<dt>Défaut</dt>
<dd>Ensemble de données utiles (incompatible avec le TIC en mode Standard</dd>
<dt>Tableau de données brutes</dt>
<dd>Les données envoyées par le D2L sans aucune modification.</dd>
</dl>
</dd>
<dt>TCP out <span class="property-type">string</span></dt>
<dd>Le format de la réponse pour le D2L, Buffer or Base64.</dd>
</dl>
<h3>Entrée</h3>
<dl class="message-properties">
<dt>topic <span class="property-type">string</span></dt>
<dd>d2l_update</dd>
<dt>payload <span class="property-type">object</span></dt>
<dd>Buffer ou Base64 envoyé par le D2L.</dd>
</dl>
<h3>Sorties</h3>
<ol class="node-ports">
<li>Données
<p>Garde toutes les données supplémentaires de l'entrée.</p>
<dl class="message-properties">
<dt>topic <span class="property-type">string</span></dt>
<dd>d2l_data</dd>
<dt>payload <span class="property-type">object | string</span></dt>
<dd>Les données envoyées par le Linky. Voir les références pour plus d'informations sur les valeurs.
</dd>
<dt>payloadHeaders <span class="property-type">object</span></dt>
<dd>Donnes avancées concernant la communication avec le D2L.</dd>
</dl>
</li>
<li>Erreurs
<p>Si une erreur s'est produite lors du traitement des données, un message est envoyé à cette sortie et rien
sinon.</p>
<dl class="message-properties">
<dt>topic <span class="property-type">string</span></dt>
<dd>error_message</dd>
<dt>payload <span class="property-type">string</span></dt>
<dd>Message d'erreur lisible et convivial.</dd>
<dt>error_code <span class="property-type">string</span></dt>
<dd>Code d'erreur.</dd>
<dt>error_debug_data <span class="property-type">string</span></dt>
<dd>Les données cryptées envoyées par le D2L.</dd>
</dl>
</li>
<li>Sortie TCP
<p>Garde toutes les données supplémentaires de l'entrée.</p>
<dl class="message-properties">
<dt>topic <span class="property-type">string</span></dt>
<dd>d2l_time_update</dd>
<dt>payload <span class="property-type">object</span></dt>
<dd>
Un Buffer ou une chaine de caractères en Base64 à envoyer au D2L pour acquitter la bonne réception
des données et lui donner l'heure actuelle.
La réponse doit être envoyée dans la même connexion que les données reçues par le D2L.
Attention il coupe la communication s’il n’a pas eu de réponse en 3 secondes.
</dd>
</dl>
</li>
</ol>
<h3>Démarrage rapide</h3>
<ul>
<li>Créer un noeud "TCP in" de type "Listen on" port 7845.</li>
<li>Définir la sortie sur "Stream of Buffer".</li>
<li>Définit le topic à "d2l_update".</li>
<li>Ajouter un noeud "eeSmart D2L".</li>
<li>Connecter la sortie du noeud "TCP in" à l'entrée du noeud "eeSmart D2L".</li>
<li>Créer un noeud "TCP out" de type "Reply to TCP".</li>
<li>Connecter la sortie "TCP out" du noeud "eeSmart D2L" au noeud "TCP out".</li>
<li>Connecter un noeud de debug aux sorties Données et Erreurs du noeud "eeSmart D2L".</li>
<li>
Utiliser l'application pour smartphone pour configurer votre D2L.
Utiliser le serveur local avec l'adresse IP de votre serveur Node-Red et le port définit dans la première
étape.
</li>
<li>Lire la documentation du plugin incluse dans Node-Red.</li>
</ul>
<h3>Références</h3>
<ul>
<li>
<a href="https://www.enedis.fr/sites/default/files/Enedis-NOI-CPT_54E.pdf">Documentation Enedis</a>
- description complète des données envoyés par le Linky via le D2L.
</li>
<li>
<a href="http://eesmart.fr/wp-content/uploads/eeSmart-D2L-Notice-dinstallation.pdf">Notice d'installation
D2L</a>
- comment configurer votre D2L.
</li>
<li>
<a href="https://discord.gg/qTd363NKeu">Discord</a>
- vous pouvez nous rejoindre sur discord.
</li>
</ul>
</script>