Last modified by Xiaoling on 2023/07/18 10:12

From version 203.1
edited by Edwin Chen
on 2022/10/06 19:30
Change comment: There is no comment for this version
To version 223.2
edited by Xiaoling
on 2022/12/02 15:11
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.Edwin
1 +XWiki.Xiaoling
Content
... ... @@ -16,7 +16,6 @@
16 16  
17 17  = 1. Introduction =
18 18  
19 -
20 20  == 1.1 What is LHT65N Temperature & Humidity Sensor ==
21 21  
22 22  
... ... @@ -45,7 +45,6 @@
45 45  )))
46 46  
47 47  
48 -
49 49  == 1.2 Features ==
50 50  
51 51  
... ... @@ -62,6 +62,7 @@
62 62  * Datalog feature (Max 3328 records)
63 63  
64 64  
63 +
65 65  == 1.3 Specification ==
66 66  
67 67  
... ... @@ -87,9 +87,9 @@
87 87  * Operating Range: -55 °C ~~ 125 °C
88 88  
89 89  
89 +
90 90  = 2. Connect LHT65N to IoT Server =
91 91  
92 -
93 93  == 2.1 How does LHT65N work? ==
94 94  
95 95  
... ... @@ -102,7 +102,6 @@
102 102  )))
103 103  
104 104  
105 -
106 106  == 2.2 How to Activate LHT65N? ==
107 107  
108 108  
... ... @@ -111,7 +111,7 @@
111 111  )))
112 112  
113 113  * (((
114 -(% style="color:blue" %)**Deep Sleep Mode**(%%): LHT65N doesnt have any LoRaWAN activation. This mode is used for storage and shipping to save battery life.
112 +(% style="color:blue" %)**Deep Sleep Mode**(%%): LHT65N doesn't have any LoRaWAN activation. This mode is used for storage and shipping to save battery life.
115 115  )))
116 116  * (((
117 117  (% style="color:blue" %)**Working Mode**(%%):  In this mode, LHT65N works as LoRaWAN Sensor mode to Join LoRaWAN network and send out the sensor data to the server. Between each sampling/tx/rx periodically, LHT65N will be in STOP mode (IDLE mode), in STOP mode, LHT65N has the same power consumption as Deep Sleep mode. 
... ... @@ -127,7 +127,6 @@
127 127  [[image:image-20220525110604-2.png||_mstalt="427531" _mstvisible="3"]]
128 128  
129 129  
130 -
131 131  == 2.3 Example to join LoRaWAN network ==
132 132  
133 133  
... ... @@ -144,7 +144,6 @@
144 144  )))
145 145  
146 146  
147 -
148 148  === 2.3.1 Step 1: Create Device n TTN ===
149 149  
150 150  
... ... @@ -185,8 +185,6 @@
185 185  [[image:image-20220522233118-7.png||_mstalt="430430" _mstvisible="3"]]
186 186  
187 187  
188 -
189 -
190 190  === 2.3.2 Step 2: Activate LHT65N by pressing the ACT button for more than 5 seconds. ===
191 191  
192 192  
... ... @@ -197,11 +197,9 @@
197 197  [[image:image-20220522233300-8.png||_mstalt="428389" _mstvisible="3" height="219" width="722"]]
198 198  
199 199  
194 +== 2.4 Uplink Payload   ( Fport~=2) ==
200 200  
201 201  
202 -== 2.4 Uplink Payload ==
203 -
204 -
205 205  (((
206 206  The uplink payload includes totally 11 bytes. Uplink packets use FPORT=2 and (% _mstvisible="3" style="color:#4f81bd" %)**every 20 minutes**(%%) send one uplink by default.
207 207  )))
... ... @@ -210,69 +210,37 @@
210 210  After each uplink, the (% _mstvisible="3" style="color:blue" %)**BLUE LED**(%%) will blink once.
211 211  )))
212 212  
213 -(% _mstvisible="1" border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:426px" %)
214 -(% _mstvisible="3" %)|=(% _mstvisible="4" style="width: 97px;" %)(% _mstvisible="5" %)
215 -(((
216 -(% _mstvisible="6" %)
217 -(% _msthash="1817478" _msttexthash="161122" _mstvisible="8" %)**Size(bytes)**
218 -)))|=(% _mstvisible="4" style="width: 39px;" %)(% _mstvisible="5" %)
219 -(((
220 -(% _mstvisible="6" %)
221 -(% _msthash="1817479" _msttexthash="4550" _mstvisible="8" %)**2**
222 -)))|=(% _mstvisible="4" style="width: 100px;" %)(% _mstvisible="5" %)
223 -(((
224 -(% _mstvisible="6" %)
225 -(% _msthash="1817480" _msttexthash="4550" _mstvisible="8" %)**2**
226 -)))|=(% _mstvisible="4" style="width: 77px;" %)(% _mstvisible="5" %)
227 -(((
228 -(% _mstvisible="6" %)
229 -(% _msthash="1817481" _msttexthash="4550" _mstvisible="8" %)**2**
230 -)))|=(% _mstvisible="4" style="width: 47px;" %)(% _mstvisible="5" %)
231 -(((
232 -(% _mstvisible="6" %)
233 -(% _msthash="1817482" _msttexthash="4459" _mstvisible="8" %)**1**
234 -)))|=(% _mstvisible="4" style="width: 51px;" %)(% _mstvisible="5" %)
235 -(((
236 -(% _mstvisible="6" %)
237 -(% _msthash="1817483" _msttexthash="4732" _mstvisible="8" %)**4**
205 +(% border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:390px" %)
206 +|=(% style="width: 60px;" %)(((
207 +**Size(bytes)**
208 +)))|=(% style="width: 30px;" %)(((
209 +**2**
210 +)))|=(% style="width: 100px;" %)(((
211 +**2**
212 +)))|=(% style="width: 100px;" %)(((
213 +**2**
214 +)))|=(% style="width: 50px;" %)(((
215 +**1**
216 +)))|=(% style="width: 50px;" %)(((
217 +**4**
238 238  )))
239 -(% _mstvisible="3" %)|(% _mstvisible="4" style="width:97px" %)(% _mstvisible="5" %)
219 +|(% style="width:97px" %)(((
220 +**Value**
221 +)))|(% style="width:39px" %)(((
222 +[[BAT>>||anchor="H2.4.2BAT-BatteryInfo"]]
223 +)))|(% style="width:100px" %)(((
240 240  (((
241 -(% _mstvisible="6" %)
242 -(% _msthash="1817484" _msttexthash="60203" _mstvisible="8" %)**Value**
243 -)))|(% _mstvisible="4" style="width:39px" %)(% _mstvisible="5" %)
244 -(((
245 -(% _mstvisible="6" %)
246 -[[BAT>>||anchor="H2.4.2BAT-BatteryInfo" _msthash="1817485" _msttexthash="22594" _mstvisible="7"]]
247 -)))|(% _mstvisible="4" style="width:100px" %)(% _mstvisible="5" %)
248 -(((
249 -(% _mstvisible="6" %)
250 -(((
251 -(% _mstvisible="7" %)
252 -[[Built-In Temperature>>||anchor="H2.4.3Built-inTemperature" _msthash="2224742" _msttexthash="405769" _mstvisible="8"]]
225 +[[Built-In Temperature>>||anchor="H2.4.3Built-inTemperature"]]
253 253  )))
254 -)))|(% _mstvisible="4" style="width:77px" %)(% _mstvisible="5" %)
227 +)))|(% style="width:77px" %)(((
255 255  (((
256 -(% _mstvisible="6" %)
257 -(((
258 -(% _mstvisible="7" %)
259 -[[Built-in>>||anchor="H2.4.4Built-inHumidity" _msthash="2224743" _msttexthash="105872" _mstvisible="8"]]
229 +[[Built-in Humidity>>||anchor="H2.4.4Built-inHumidity"]]
260 260  )))
261 -
262 -(% _mstvisible="6" %)
263 -(((
264 -(% _mstvisible="7" %)
265 -[[Humidity>>||anchor="H2.4.4Built-inHumidity" _msthash="2224744" _msttexthash="117429" _mstvisible="8"]]
231 +)))|(% style="width:47px" %)(((
232 +[[Ext>>||anchor="H2.4.5Ext23"]] #
233 +)))|(% style="width:51px" %)(((
234 +[[Ext value>>||anchor="H2.4.6Extvalue"]]
266 266  )))
267 -)))|(% _mstvisible="4" style="width:47px" %)(% _mstvisible="5" %)
268 -(((
269 -(% _mstvisible="6" %)
270 -[[Ext>>||anchor="H2.4.5Ext23" _msthash="1817486" _msttexthash="32331" _mstvisible="7"]] #
271 -)))|(% _mstvisible="4" style="width:51px" %)(% _mstvisible="5" %)
272 -(((
273 -(% _mstvisible="6" %)
274 -[[Ext value>>||anchor="H2.4.6Extvalue" _msthash="1817487" _msttexthash="116545" _mstvisible="7"]]
275 -)))
276 276  
277 277  * The First 6 bytes: has fix meanings for every LHT65N.
278 278  * The 7th byte (EXT #): defines the external sensor model.
... ... @@ -285,17 +285,12 @@
285 285  
286 286  When the uplink payload arrives TTNv3, it shows HEX format and not friendly to read. We can add LHT65N decoder in TTNv3 for friendly reading.
287 287  
288 -Below is the position to put the decoder and LHT65N decoder can be download from here:
248 +Below is the position to put the decoder and LHT65N decoder can be download from here: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
289 289  
290 290  
291 -[[https:~~/~~/www.dropbox.com/sh/r2i3zlhsyrpavla/AAB1sZw3mdT0K7XjpHCITt13a?dl=0 >>https://www.dropbox.com/sh/r2i3zlhsyrpavla/AAB1sZw3mdT0K7XjpHCITt13a?dl=0||_msthash="315253" _msttexthash="3509064" _mstvisible="2"]]
292 -
293 -
294 294  [[image:image-20220522234118-10.png||_mstalt="451464" _mstvisible="3" height="353" width="729"]]
295 295  
296 296  
297 -
298 -
299 299  === 2.4.2 BAT-Battery Info ===
300 300  
301 301  
... ... @@ -344,10 +344,8 @@
344 344  [[image:image-20220523152822-17.png||_mstalt="454545" _mstvisible="3"]]
345 345  
346 346  
347 -
348 348  === 2.4.6 Ext value ===
349 349  
350 -
351 351  ==== 2.4.6.1 Ext~=1, E3 Temperature Sensor ====
352 352  
353 353  
... ... @@ -358,6 +358,8 @@
358 358  
359 359  The last 2 bytes of data are meaningless
360 360  
314 +
315 +
361 361  [[image:image-20220522235639-6.png||_mstalt="433212" _mstvisible="3"]]
362 362  
363 363  
... ... @@ -368,7 +368,6 @@
368 368  If the external sensor is 0x01, and there is no external temperature connected. The temperature will be set to 7FFF which is 327.67℃
369 369  
370 370  
371 -
372 372  ==== 2.4.6.2 Ext~=9, E3 sensor with Unix Timestamp ====
373 373  
374 374  
... ... @@ -380,114 +380,53 @@
380 380  
381 381  )))
382 382  
383 -(% _mstvisible="1" border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %)
384 -(% _mstvisible="3" %)|=(% _mstvisible="4" style="width: 96px;" %)(% _mstvisible="5" %)
385 -(((
386 -(% _mstvisible="6" %)
387 -(% _msthash="1817488" _msttexthash="161122" _mstvisible="8" %)**Size(bytes)**
388 -)))|=(% _mstvisible="4" style="width: 71px;" %)(% _mstvisible="5" %)
389 -(((
390 -(% _mstvisible="6" %)
391 -(% _msthash="1817489" _msttexthash="4550" _mstvisible="8" %)**2**
392 -)))|=(% _mstvisible="4" style="width: 99px;" %)(% _mstvisible="5" %)
393 -(((
394 -(% _mstvisible="6" %)
395 -(% _msthash="1817490" _msttexthash="4550" _mstvisible="8" %)**2**
396 -)))|=(% _mstvisible="4" style="width: 132px;" %)(% _mstvisible="5" %)
397 -(((
398 -(% _mstvisible="6" %)
399 -(% _msthash="1817491" _msttexthash="4550" _mstvisible="8" %)**2**
400 -)))|=(% _mstvisible="4" style="width: 54px;" %)(% _mstvisible="5" %)
401 -(((
402 -(% _mstvisible="6" %)
403 -(% _msthash="1817492" _msttexthash="4459" _mstvisible="8" %)**1**
404 -)))|=(% _mstvisible="4" style="width: 64px;" %)(% _mstvisible="5" %)
405 -(((
406 -(% _mstvisible="6" %)
407 -(% _msthash="1817493" _msttexthash="4732" _mstvisible="8" %)**4**
337 +(% border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:480px" %)
338 +|=(% style="width: 50px;" %)(((
339 +**Size(bytes)**
340 +)))|=(% style="width: 70px;" %)(((
341 +**2**
342 +)))|=(% style="width: 120px;" %)(((
343 +**2**
344 +)))|=(% style="width: 120px;" %)(((
345 +**2**
346 +)))|=(% style="width: 50px;" %)(((
347 +**1**
348 +)))|=(% style="width: 70px;" %)(((
349 +**4**
408 408  )))
409 -(% _mstvisible="3" %)|(% _mstvisible="4" style="width:96px" %)(% _mstvisible="5" %)
410 -(((
411 -(% _mstvisible="6" %)
412 -(% _msthash="1817494" _msttexthash="60203" _mstvisible="8" %)**Value**
413 -)))|(% _mstvisible="4" style="width:71px" %)(% _mstvisible="5" %)
414 -(((
415 -(% _mstvisible="6" %)
416 -[[External temperature>>||anchor="H4.2SetExternalSensorMode" _msthash="1817495" _msttexthash="426517" _mstvisible="7"]]
417 -)))|(% _mstvisible="4" style="width:99px" %)(% _mstvisible="5" %)
418 -(((
419 -(% _mstvisible="6" %)
420 -(((
421 -(% _mstvisible="7" %)
422 -[[Built-In>>||anchor="H2.4.3Built-inTemperature" _msthash="2224745" _msttexthash="100464" _mstvisible="8"]]
423 -)))
424 -
425 -(% _mstvisible="6" %)
426 -(((
427 -(% _mstvisible="7" %)
428 -[[Temperature>>||anchor="H2.4.3Built-inTemperature" _msthash="2224746" _msttexthash="184041" _mstvisible="8"]]
429 -)))
430 -)))|(% _mstvisible="4" style="width:132px" %)(% _mstvisible="5" %)
431 -(((
432 -(% _mstvisible="6" %)
433 -(((
434 -(% _msthash="2224747" _msttexthash="136331" _mstvisible="7" %)
435 -BAT Status &
436 -)))
437 -
438 -(% _mstvisible="6" %)
439 -(((
440 -(% _mstvisible="7" %)
441 -[[Built-in Humidity>>||anchor="H2.4.4Built-inHumidity" _msthash="2224748" _msttexthash="311181" _mstvisible="8"]]
442 -)))
443 -)))|(% _mstvisible="4" style="width:54px" %)(% _mstvisible="5" %)
444 -(((
445 -(% _msthash="1817496" _msttexthash="147225" _mstvisible="6" %)
351 +|(% style="width:110px" %)(((
352 +**Value**
353 +)))|(% style="width:71px" %)(((
354 +[[External temperature>>||anchor="H4.2SetExternalSensorMode"]]
355 +)))|(% style="width:99px" %)(((
356 +[[Built-In Temperature>>||anchor="H2.4.3Built-inTemperature"]]
357 +)))|(% style="width:132px" %)(((
358 +BAT Status & [[Built-in Humidity>>||anchor="H2.4.4Built-inHumidity"]]
359 +)))|(% style="width:54px" %)(((
446 446  Status & Ext
447 -)))|(% _mstvisible="4" style="width:64px" %)(% _mstvisible="5" %)
448 -(((
449 -(% _mstvisible="6" %)
450 -(((
451 -(% _mstvisible="7" %)
452 -[[Unix Time Stamp>>||anchor="H2.6.2UnixTimeStamp" _msthash="2224749" _msttexthash="227175" _mstvisible="8"]]
361 +)))|(% style="width:64px" %)(((
362 +[[Unix Time Stamp>>||anchor="H2.6.2UnixTimeStamp"]]
453 453  )))
454 -)))
455 455  
456 -(% _mstvisible="1" %)
457 -* (% _msthash="2539669" _msttexthash="857922" _mstvisible="3" %)**Battery status & **(% class="wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink" %)**Built-in Humidity**
365 +* **Battery status & Built-in Humidity**
458 458  
459 -(% _mstvisible="1" border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:469px" %)
460 -(% _mstvisible="3" %)|=(% _msthash="1230918" _msttexthash="93158" _mstvisible="4" style="width: 65px;" %)Bit(bit)|=(% _msthash="1230919" _msttexthash="57954" _mstvisible="4" style="width: 267px;" %)[15:14]|=(% _msthash="1230920" _msttexthash="48022" _mstvisible="4" style="width: 134px;" %)[11:0]
461 -(% _mstvisible="3" %)|(% _msthash="1230921" _msttexthash="60203" _mstvisible="4" style="width:65px" %)Value|(% _mstvisible="4" style="width:267px" %)(% _mstvisible="5" %)
462 -(((
463 -(% _msthash="1817497" _msttexthash="128427" _mstvisible="6" %)
367 +(% _mstvisible="1" border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:461px" %)
368 +|=(% style="width: 67px;" %)Bit(bit)|=(% style="width: 256px;" %)[15:14]|=(% style="width: 132px;" %)[11:0]
369 +|(% style="width:67px" %)Value|(% style="width:256px" %)(((
464 464  BAT Status
465 -
466 -(% _msthash="1817498" _msttexthash="472784" _mstvisible="6" %)
467 467  00(b): Ultra Low ( BAT <= 2.50v)
468 -
469 -(% _msthash="1817499" _msttexthash="483678" _mstvisible="6" %)
470 470  01(b): Low  (2.50v <=BAT <= 2.55v)
471 -
472 -(% _msthash="1817500" _msttexthash="440791" _mstvisible="6" %)
473 473  10(b): OK   (2.55v <= BAT <=2.65v)
474 -
475 -(% _msthash="1817501" _msttexthash="334191" _mstvisible="6" %)
476 476  11(b): Good   (BAT >= 2.65v)
477 -)))|(% _mstvisible="4" style="width:134px" %)(% _mstvisible="5" %)
478 -(((
479 -(% _mstvisible="6" %)
480 -[[Built-in Humidity>>||anchor="H2.4.4Built-inHumidity" _msthash="1817502" _msttexthash="311181" _mstvisible="7"]]
481 -
482 -(% _mstvisible="6" %)
483 -
375 +)))|(% style="width:132px" %)(((
376 +[[Built-in Humidity>>||anchor="H2.4.4Built-inHumidity"]]
484 484  )))
485 485  
486 -* (% _msthash="504956" _msttexthash="245037" _mstvisible="4" %)**Status & Ext Byte**
379 +* **Status & Ext Byte**
487 487  
488 -(% border="1" cellspacing="8" style="background-color:#ffffcc; color:green; width:520px" %)
489 -|(% style="width:60px" %)**Bits**|(% style="width:90px" %)**7**|(% style="width:100px" %)**6**|(% style="width:90px" %)**5**|(% style="width:100px" %)**4**|(% style="width:60px" %)**[3:0]**
490 -|(% style="width:96px" %)**Status&Ext**|(% style="width:124px" %)None-ACK Flag|(% style="width:146px" %)Poll Message FLAG|(% style="width:109px" %)Sync time OK|(% style="width:143px" %)Unix Time Request|(% style="width:106px" %)Ext: 0b(1001)
381 +(% border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:500px" %)
382 +|=(% scope="row" style="width: 60px;" %)**Bits**|(% style="width:90px" %)**7**|(% style="width:100px" %)**6**|(% style="width:90px" %)**5**|(% style="width:100px" %)**4**|(% style="width:60px" %)**[3:0]**
383 +|=(% style="width: 96px;" %)**Status&Ext**|(% style="width:124px" %)None-ACK Flag|(% style="width:146px" %)Poll Message FLAG|(% style="width:109px" %)Sync time OK|(% style="width:143px" %)Unix Time Request|(% style="width:106px" %)Ext: 0b(1001)
491 491  
492 492  * (% style="color:blue" %)**Poll Message Flag**:(%%)  1: This message is a poll message reply, 0: means this is a normal uplink.
493 493  * (% style="color:blue" %)**Sync time OK**: (%%) 1: Set time ok,0: N/A. After time SYNC request is sent, LHT65N will set this bit to 0 until got the time stamp from the application server.
... ... @@ -502,11 +502,11 @@
502 502  
503 503  be used to power the external ADC sensor; user can control the power on time for this
504 504  
505 -sensor by setting:
398 +(% style="color:blue" %)**sensor by setting:**
506 506  
507 -AT+EXT=6,timeout  (% _msthash="506085" _msttexthash="8782189" _mstvisible="3" style="color:red" %)**Time to power this sensor, from 0 ~~ 65535ms**
400 +**AT+EXT=6,timeout**  (% _msthash="506085" _msttexthash="8782189" _mstvisible="3" style="color:red" %)**Time to power this sensor, from 0 ~~ 65535ms**
508 508  
509 -For example:
402 +**For example:**
510 510  
511 511  AT+EXT=6,1000 will power this sensor for 1000ms before sampling the ADC value.
512 512  
... ... @@ -543,7 +543,6 @@
543 543  [[image:image-20220628151143-7.png]]
544 544  
545 545  
546 -
547 547  ==== 2.4.6.4 Ext~=2 TMP117 Sensor (Since Firmware v1.3) ====
548 548  
549 549  
... ... @@ -550,7 +550,7 @@
550 550  [[image:image-20220927095645-1.png||height="534" width="460"]]
551 551  
552 552  
553 -**Ext=2,Temperature Sensor(TMP117):**
445 +(% style="color:blue" %)**Ext=2,Temperature Sensor(TMP117):**
554 554  
555 555  [[image:image-20220906102307-7.png]]
556 556  
... ... @@ -560,8 +560,6 @@
560 560  The external cable NE2 can be use for MOD4 and MOD8
561 561  
562 562  
563 -
564 -
565 565  ==== 2.4.6.5 Ext~=4 Interrupt Mode (Since Firmware v1.3) ====
566 566  
567 567  
... ... @@ -570,7 +570,7 @@
570 570  
571 571  (% style="color:blue" %)**Interrupt Mode can be used to connect to external interrupt sensors such as:**
572 572  
573 -**Case 1: Door Sensor.** 3.3v Out for such sensor is just to detect Open/Close.
463 +(% style="color:#037691" %)**Case 1: Door Sensor.** (%%)3.3v Out for such sensor is just to detect Open/Close.
574 574  
575 575   In Open State, the power consumption is the same as if there is no probe
576 576  
... ... @@ -581,20 +581,20 @@
581 581  
582 582  Ext=4,Interrupt Sensor:
583 583  
584 -(% border="2" cellpadding="4" cellspacing="4" style="background-color:#ffffcc; color:green; height:6px; width:512px" %)
585 -|(% style="width:117px" %)(((
474 +(% border="1.5" cellpadding="4" cellspacing="4" style="background-color:#ffffcc; color:green; height:6px; width:478px" %)
475 +|(% style="width:101px" %)(((
586 586  AT+EXT=4,1
587 -)))|(% style="width:371px" %)(((
477 +)))|(% style="width:373px" %)(((
588 588  Sent uplink packet in both rising and falling interrupt
589 589  )))
590 -|(% style="width:117px" %)(((
480 +|(% style="width:101px" %)(((
591 591  AT+EXT=4,2
592 -)))|(% style="width:371px" %)(((
482 +)))|(% style="width:373px" %)(((
593 593  Sent uplink packet only in falling interrupt
594 594  )))
595 -|(% style="width:117px" %)(((
485 +|(% style="width:101px" %)(((
596 596  AT+EXT=4,3
597 -)))|(% style="width:371px" %)(((
487 +)))|(% style="width:373px" %)(((
598 598  Sent uplink packet only in rising interrupt
599 599  )))
600 600  
... ... @@ -608,8 +608,6 @@
608 608  [[image:image-20220906101145-3.png]]
609 609  
610 610  
611 -
612 -
613 613  ==== 2.4.6.6 Ext~=8 Counting Mode(Since Firmware v1.3) ====
614 614  
615 615  
... ... @@ -625,6 +625,7 @@
625 625  
626 626  [[image:image-20220906101320-5.png||height="353" width="696"]]
627 627  
516 +
628 628  Ext=8, Counting Sensor ( 4 bytes):
629 629  
630 630  (% border="2" cellpadding="4" cellspacing="4" style="background-color:#ffffcc; color:green; height:6px; width:381px" %)
... ... @@ -660,52 +660,6 @@
660 660  A2 08 02 00 00 00 3C:  Same as AT+ SETCNT=60  (AT+ SETCNT = 4th byte and 5th byte and 6th byte and 7th byte)
661 661  
662 662  
663 -(% style="color:blue" %)**Modified ATWOOD command for external sensor TMP117 or DS18B20 temperature alarm.**
664 -
665 -
666 -(% style="color:#037691" %)**AT+WMOD=parameter1,parameter2,parameter3,parameter4**
667 -
668 -(% style="color:#037691" %)**Parameter 1**(%%):  Alarm mode:
669 -
670 -0): Cancel
671 -
672 -1): Threshold alarm
673 -
674 -2): Fluctuation alarm
675 -
676 -
677 -(% style="color:#037691" %)** Parameter 2**(%%):  Sampling time. Unit: seconds, up to 255 seconds.
678 -
679 -(% style="color:red" %)**Note: When the collection time is less than 60 seconds and always exceeds the set alarm threshold, the sending interval will not be the collection time, but will be sent every 60 seconds.**
680 -
681 -
682 -(% style="color:#037691" %) **Parameter 3 and parameter 4:**
683 -
684 -1):  If Alarm Mode is set to 1: Parameter 3 and parameter 4 are valid, as before, they represent low temperature and high temperature.
685 -
686 -Such as AT+WMOD=1,60,45,105, it means high and low temperature alarm.
687 -
688 -
689 -2):  If Alarm Mode is set to 2: Parameter 3 is valid, which represents the difference between the currently collected temperature and the last uploaded temperature.
690 -
691 -Such as AT+WMOD=2,10,2,it means that it is a fluctuation alarm.
692 -
693 -If the difference between the current collected temperature and the last Uplin is ±2 degrees, the alarm will be issued.
694 -
695 -
696 -(% style="color:blue" %)** Downlink:**
697 -
698 -0xA5 00 ~-~- AT+WMOD=0.
699 -
700 -0xA5 01 0A 11 94 29 04 ~-~- AT+WMOD=1,10,45,105  (AT+WMOD = second byte, third byte, fourth and fifth bytes divided by 100, sixth and seventh bytes divided by 100 )
701 -
702 -0xA5 02 0A 02 ~-~- AT+WMOD=2,10,2  (AT+WMOD = second byte, third byte, fourth byte)
703 -
704 -0xA5 FF ~-~- After the device receives it, upload the current alarm configuration (FPORT=8). Such as 01 0A 11 94 29 04 or 02 0A 02.
705 -
706 -
707 -
708 -
709 709  == 2.5 Show data on Datacake ==
710 710  
711 711  
... ... @@ -753,7 +753,6 @@
753 753  [[image:image-20220523000825-10.png||_mstalt="450619" _mstvisible="3" height="413" width="728"]]
754 754  
755 755  
756 -
757 757  == 2.6 Datalog Feature ==
758 758  
759 759  
... ... @@ -762,15 +762,22 @@
762 762  )))
763 763  
764 764  
765 -
766 766  === 2.6.1 Ways to get datalog via LoRaWAN ===
767 767  
768 768  
769 769  There are two methods:
770 770  
771 -1. IoT Server sends a downlink LoRaWAN command to [[poll the value>>||anchor="H2.6.4Pollsensorvalue"]] for specifying time range.
772 -1. Set [[PNACKMD=1>>||anchor="H4.13AutoSendNone-ACKmessages"]], LHT65N will wait for ACK for every uplink, when there is no LoRaWAN network, LHT65N will mark these records with non-ack message and store the sensor data, and it will send all messages (10s interval) after the network recovery. note: a) LHT65N will do ack check for data records sending to make sure every data arrive server. b) LHT65N will send data in CONFIRMED Mode when PNACKMD=1, but it won't re-transmit the same packet , it will just mark it as NONE-ACK and resend after network is detected.
612 +(% style="color:blue" %)**Method 1:** (%%)IoT Server sends a downlink LoRaWAN command to [[poll the value>>||anchor="H2.6.4Pollsensorvalue"]] for specified time range.
773 773  
614 +
615 +(% style="color:blue" %)**Method 2: **(%%)Set [[PNACKMD=1>>||anchor="H4.13AutoSendNone-ACKmessages"]], LHT65N will wait for ACK for every uplink, when there is no LoRaWAN network, LHT65N will mark these records with non-ack messages and store the sensor data, and it will send all messages (10s interval) after the network recovery.
616 +
617 +
618 +(% style="color:red" %)**Note for method 2:**
619 +
620 +* a) LHT65N will do an ACK check for data records sending to make sure every data arrive server.
621 +* b) LHT65N will send data in **CONFIRMED Mode** when PNACKMD=1, but LHT65N won't re-transmit the packet if it doesn't get ACK, it will just mark it as a NONE-ACK message. In a future uplink if LHT65N gets a ACK, LHT65N will consider there is a network connection and resend all NONE-ACK Message.
622 +
774 774  Below is the typical case for the auto-update datalog feature (Set PNACKMD=1)
775 775  
776 776  
... ... @@ -793,19 +793,19 @@
793 793  
794 794  [[image:image-20220523001219-12.png||_mstalt="450827" _mstvisible="3" height="298" width="720"]]
795 795  
645 +
796 796  So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25
797 797  
798 798  
799 -
800 800  === 2.6.3 Set Device Time ===
801 801  
802 802  
803 803  (((
804 -There are two ways to set device's time:
653 +(% style="color:blue" %)**There are two ways to set device's time:**
805 805  )))
806 806  
807 807  (((
808 -**~1. Through LoRaWAN MAC Command (Default settings)**
657 +**1.  Through LoRaWAN MAC Command (Default settings)**
809 809  )))
810 810  
811 811  (((
... ... @@ -820,10 +820,8 @@
820 820  (% style="color:red" %)**Note: LoRaWAN Server need to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature, Chirpstack,TTN V3 v3 and loriot support but TTN V3 v2 doesn't support. If server doesn't support this command, it will through away uplink packet with this command, so user will lose the packet with time request for TTN V3 v2 if SYNCMOD=1.**
821 821  )))
822 822  
823 -(((
824 -
825 -)))
826 826  
673 +
827 827  (((
828 828  **2. Manually Set Time**
829 829  )))
... ... @@ -833,7 +833,6 @@
833 833  )))
834 834  
835 835  
836 -
837 837  === 2.6.4 Poll sensor value ===
838 838  
839 839  
... ... @@ -851,348 +851,83 @@
851 851  Uplink Internal =5s,means LHT65N will send one packet every 5s. range 5~~255s.
852 852  
853 853  
854 -
855 855  === 2.6.5 Datalog Uplink payload ===
856 856  
857 857  
858 -(% _msthash="315267" _msttexthash="2245087" _mstvisible="1" %)
859 859  The Datalog poll reply uplink will use below payload format.
860 860  
861 -(% _mstvisible="1" %)
862 -(((
863 -(% _mstvisible="2" %)
864 -
705 +**Retrieval data payload:**
865 865  
866 -(% _mstvisible="2" %)
867 -(% _msthash="506080" _msttexthash="451581" _mstvisible="4" %)**Retrieval data payload**
868 -)))
707 +(% border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:480px" %)
708 +|=(% style="width: 60px;" %)(((
709 +**Size(bytes)**
710 +)))|=(% style="width: 90px;" %)**2**|=(% style="width: 90px;" %)**2**|=(% style="width: 70px;" %)**2**|=(% style="width: 100px;" %)**1**|=(% style="width: 70px;" %)**4**
711 +|(% style="width:97px" %)**Value**|(% style="width:123px" %)[[External sensor data>>||anchor="H2.4.6Extvalue"]]|(% style="width:108px" %)[[Built In Temperature>>||anchor="H2.4.3Built-inTemperature"]]|(% style="width:133px" %)[[Built-in Humidity>>||anchor="H2.4.4Built-inHumidity"]]|(% style="width:159px" %)Poll message flag & Ext|(% style="width:80px" %)[[Unix Time Stamp>>||anchor="H2.6.2UnixTimeStamp"]]
869 869  
870 -(% _mstvisible="1" border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %)
871 -(% _mstvisible="3" %)|=(% _mstvisible="4" style="width: 93px;" %)(% _mstvisible="5" %)
872 -(((
873 -(% _mstvisible="6" %)
874 -(((
875 -(% _mstvisible="7" %)
876 -(% _msthash="2224750" _msttexthash="161122" _mstvisible="9" %)**Size(bytes)**
877 -)))
878 -)))|=(% _mstvisible="4" style="width: 71px;" %)(% _mstvisible="5" %)
879 -(((
880 -(% _mstvisible="6" %)
881 -(((
882 -(% _mstvisible="7" %)
883 -(% _msthash="2224751" _msttexthash="4550" _mstvisible="9" %)**2**
884 -)))
885 -)))|=(% _mstvisible="4" style="width: 102px;" %)(% _mstvisible="5" %)
886 -(((
887 -(% _mstvisible="6" %)
888 -(((
889 -(% _mstvisible="7" %)
890 -(% _msthash="2224752" _msttexthash="4550" _mstvisible="9" %)**2**
891 -)))
892 -)))|=(% _mstvisible="4" style="width: 86px;" %)(% _mstvisible="5" %)
893 -(((
894 -(% _mstvisible="6" %)
895 -(((
896 -(% _mstvisible="7" %)
897 -(% _msthash="2224753" _msttexthash="4550" _mstvisible="9" %)**2**
898 -)))
899 -)))|=(% _mstvisible="4" style="width: 86px;" %)(% _mstvisible="5" %)
900 -(((
901 -(% _mstvisible="6" %)
902 -(((
903 -(% _mstvisible="7" %)
904 -(% _msthash="2224754" _msttexthash="4459" _mstvisible="9" %)**1**
905 -)))
906 -)))|=(% _mstvisible="4" style="width: 48px;" %)(% _mstvisible="5" %)
907 -(((
908 -(% _mstvisible="6" %)
909 -(((
910 -(% _mstvisible="7" %)
911 -(% _msthash="2224755" _msttexthash="4732" _mstvisible="9" %)**4**
912 -)))
913 -)))
914 -(% _mstvisible="3" %)|(% _mstvisible="4" style="width:93px" %)(% _mstvisible="5" %)
915 -(((
916 -(% _mstvisible="6" %)
917 -(((
918 -(% _mstvisible="7" %)
919 -(% _msthash="2224756" _msttexthash="60203" _mstvisible="9" %)**Value**
920 -)))
921 -)))|(% _mstvisible="4" style="width:71px" %)(% _mstvisible="5" %)
922 -(((
923 -(% _mstvisible="6" %)
924 -(((
925 -(% _mstvisible="7" %)
926 -[[External sensor data>>||anchor="H2.4.6Extvalue" _msthash="2224757" _msttexthash="386672" _mstvisible="8"]]
927 -)))
928 -)))|(% _mstvisible="4" style="width:102px" %)(% _mstvisible="5" %)
929 -(((
930 -(% _mstvisible="6" %)
931 -(((
932 -(% _mstvisible="7" %)
933 -(((
934 -(% _mstvisible="8" %)
935 -[[Built In>>||anchor="H2.4.3Built-inTemperature" _msthash="2671864" _msttexthash="91065" _mstvisible="9"]]
936 -)))
937 -)))
713 +**Poll message flag & Ext:**
938 938  
939 -(% _mstvisible="6" %)
940 -(((
941 -(% _mstvisible="7" %)
942 -(((
943 -(% _mstvisible="8" %)
944 -[[Temperature>>||anchor="H2.4.3Built-inTemperature" _msthash="2671865" _msttexthash="184041" _mstvisible="9"]]
945 -)))
946 -)))
947 -)))|(% _mstvisible="4" style="width:86px" %)(% _mstvisible="5" %)
948 -(((
949 -(% _mstvisible="6" %)
950 -(((
951 -(% _mstvisible="7" %)
952 -(((
953 -(% _mstvisible="8" %)
954 -[[Built-in>>||anchor="H2.4.4Built-inHumidity" _msthash="2671866" _msttexthash="105872" _mstvisible="9"]]
955 -)))
956 -)))
957 -
958 -(% _mstvisible="6" %)
959 -(((
960 -(% _mstvisible="7" %)
961 -(((
962 -(% _mstvisible="8" %)
963 -[[Humidity>>||anchor="H2.4.4Built-inHumidity" _msthash="2671867" _msttexthash="117429" _mstvisible="9"]]
964 -)))
965 -)))
966 -)))|(% _mstvisible="4" style="width:86px" %)(% _mstvisible="5" %)
967 -(((
968 -(% _mstvisible="6" %)
969 -(((
970 -(% _msthash="2224758" _msttexthash="390390" _mstvisible="7" %)
971 -Poll message flag & Ext
972 -)))
973 -)))|(% _mstvisible="4" style="width:48px" %)(% _mstvisible="5" %)
974 -(((
975 -(% _mstvisible="6" %)
976 -(((
977 -(% _mstvisible="7" %)
978 -(((
979 -(% _mstvisible="8" %)
980 -[[Unix Time Stamp>>||anchor="H2.6.2UnixTimeStamp" _msthash="2671868" _msttexthash="227175" _mstvisible="9"]]
981 -)))
982 -)))
983 -
984 -(% _mstvisible="6" %)
985 -(((
986 -(% _mstvisible="7" %)
987 -(((
988 -(% _mstvisible="8" %)
989 -
990 -)))
991 -)))
992 -)))
993 -
994 -(% _mstvisible="1" %)
995 -(% _msthash="315268" _msttexthash="390390" _mstvisible="3" %)**Poll message flag & Ext**
996 -
997 -(% _mstvisible="1" %)
998 -(((
999 -(% _mstvisible="2" %)
1000 -(((
1001 -(% _msthash="736723" _msttexthash="2005003" _mstvisible="3" %)
1002 -(((
1003 1003  [[image:image-20221006192726-1.png||height="112" width="754"]]
1004 1004  
1005 -(% class="mark" %)No ACK Message(%%): 1: This message means this payload is fromn Uplink Message which doesn't get ACK from the server before ( for [[PNACKMD=1>>||anchor="H4.13AutoSendNone-ACKmessages"]] feature)
717 +(% style="color:blue" %)**No ACK Message**(%%):  1: This message means this payload is fromn Uplink Message which doesn't get ACK from the server before ( for [[PNACKMD=1>>||anchor="H4.13AutoSendNone-ACKmessages"]] feature)
1006 1006  
1007 -(% class="mark" %)Poll Message Flag(%%): 1: This message is a poll message reply.
719 +(% style="color:blue" %)**Poll Message Flag**(%%): 1: This message is a poll message reply.
1008 1008  
1009 -
1010 -)))
1011 -)))
1012 -)))
721 +* Poll Message Flag is set to 1.
1013 1013  
1014 -(% _mstvisible="1" %)
1015 -* (% _mstvisible="3" %)
1016 -(((
1017 -(% _mstvisible="4" %)
1018 -(((
1019 -(% _msthash="1197157" _msttexthash="561548" _mstvisible="5" %)
1020 -(((
1021 -Poll Message Flag is set to 1.
1022 -)))
1023 -)))
1024 -)))
1025 -* (% _mstvisible="3" %)
1026 -(((
1027 -(% _mstvisible="4" %)
1028 -(((
1029 -(% _msthash="1197158" _msttexthash="9284964" _mstvisible="5" %)
1030 -(((
1031 -Each data entry is 11 bytes, to save airtime and battery, devices will send max bytes according to the current DR and Frequency bands.
1032 -)))
1033 -)))
1034 -)))
723 +* Each data entry is 11 bytes, to save airtime and battery, devices will send max bytes according to the current DR and Frequency bands.
1035 1035  
1036 -(% _mstvisible="1" %)
1037 -(((
1038 -(% _mstvisible="2" %)
1039 -(((
1040 -(% _msthash="736724" _msttexthash="2242344" _mstvisible="3" %)
1041 -(((
1042 -
1043 -)))
1044 -
1045 -(% _msthash="736724" _msttexthash="2242344" _mstvisible="3" %)
1046 -(((
1047 1047  For example, in US915 band, the max payload for different DR is:
1048 -)))
1049 -)))
1050 -)))
1051 1051  
1052 -(% _mstvisible="1" %)
1053 -(((
1054 -(% _mstvisible="2" %)
1055 -(((
1056 -(% _msthash="736725" _msttexthash="1065532" _mstvisible="3" %)
1057 -(((
1058 -a) DR0: max is 11 bytes so one entry of data
1059 -)))
1060 -)))
1061 -)))
727 +(% style="color:blue" %)**a) DR0:** (%%)max is 11 bytes so one entry of data
1062 1062  
1063 -(% _mstvisible="1" %)
1064 -(((
1065 -(% _mstvisible="2" %)
1066 -(((
1067 -(% _msthash="736726" _msttexthash="3265665" _mstvisible="3" %)
1068 -(((
1069 -b) DR1: max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
1070 -)))
1071 -)))
1072 -)))
729 +(% style="color:blue" %)**b) DR1:**(%%) max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
1073 1073  
1074 -(% _mstvisible="1" %)
1075 -(((
1076 -(% _mstvisible="2" %)
1077 -(((
1078 -(% _msthash="736727" _msttexthash="1454115" _mstvisible="3" style="text-align: left;" %)
1079 -(((
1080 -c) DR2: total payload includes 11 entries of data
1081 -)))
1082 -)))
1083 -)))
731 +(% style="color:blue" %)**c) DR2:**(%%) total payload includes 11 entries of data
1084 1084  
1085 -(% _mstvisible="1" %)
1086 -(((
1087 -(% _mstvisible="2" %)
1088 -(((
1089 -(% _msthash="736728" _msttexthash="1483924" _mstvisible="3" style="text-align: left;" %)
1090 -(((
1091 -d) DR3: total payload includes 22 entries of data.
1092 -)))
1093 -)))
1094 -)))
733 +(% style="color:blue" %)**d) DR3: **(%%)total payload includes 22 entries of data.
1095 1095  
1096 -(% _mstvisible="1" %)
1097 -(((
1098 -(% _mstvisible="2" %)
1099 -(((
1100 -(% _msthash="736729" _msttexthash="5848349" _mstvisible="3" style="text-align: left;" %)
1101 -(((
1102 -If devise doesn’t have any data in the polling time. Device will uplink 11 bytes of 0   
1103 -)))
1104 -)))
1105 -)))
735 +If devise doesn't have any data in the polling time. Device will uplink 11 bytes of 0   
1106 1106  
1107 1107  
1108 -(% _mstvisible="1" style="text-align: left;" %)
1109 -(% _msthash="315269" _msttexthash="104767" _mstvisible="3" %)**Example:**
738 +**Example:**
1110 1110  
1111 -(% _msthash="315270" _msttexthash="913822" _mstvisible="1" style="text-align: left;" %)
1112 1112  If LHT65N has below data inside Flash:
1113 1113  
1114 -(% _mstvisible="1" %)
1115 1115  [[image:image-20220523144455-1.png||_mstalt="430040" _mstvisible="3" height="335" width="735"]]
1116 1116  
1117 -(% _mstvisible="1" %)
1118 -(((
1119 -(% _msthash="506081" _msttexthash="1663961" _mstvisible="2" style="text-align: left;" %)
1120 -If user sends below downlink command: (% _mstvisible="3" style="background-color:yellow" %)3160065F9760066DA705
1121 -)))
1122 1122  
1123 -(% _mstvisible="1" %)
1124 -(((
1125 -(% _msthash="506082" _msttexthash="1092494" _mstvisible="2" style="text-align: left;" %)
1126 - Where : Start time: 60065F97 = time 21/1/19 04:27:03
1127 -)))
745 +If user sends below downlink command: (% style="background-color:yellow" %)3160065F9760066DA705
1128 1128  
1129 -(% _mstvisible="1" %)
1130 -(((
1131 -(% _msthash="506083" _msttexthash="737269" _mstvisible="2" style="text-align: left;" %)
1132 - Stop time 60066DA7= time 21/1/19 05:27:(% _msthash="903005" _msttexthash="9672" _mstvisible="2" %)03
1133 -)))
747 +Where : Start time: 60065F97 = time 21/1/19 04:27:03
1134 1134  
1135 -(% _mstvisible="1" %)
1136 -(((
1137 -(% _mstvisible="2" %)
1138 -
1139 -)))
749 + Stop time: 60066DA7= time 21/1/19 05:27:03
1140 1140  
1141 -(% _mstvisible="1" %)
1142 -(((
1143 -(% _msthash="506084" _msttexthash="751218" _mstvisible="2" style="text-align: left;" %)
1144 -LHT65N will uplink this payload.
1145 -)))
1146 1146  
1147 -(% _mstvisible="1" %)
752 +**LHT65N will uplink this payload.**
753 +
1148 1148  [[image:image-20220523001219-13.png||_mstalt="451204" _mstvisible="3" height="421" style="text-align:left" width="727"]]
1149 1149  
1150 1150  
1151 -(% _msthash="315271" _msttexthash="12012546" _mstvisible="1" style="text-align: left;" %)
1152 -(((
1153 -7FFF089801464160065F977FFF088E014B41600660097FFF0885014E41600660667FFF0875015141600662BE7FFF086B015541600665167FFF08660155416006676E7FFF085F015A41600669C67FFF0857015D4160066C1E
1154 -)))
757 +__**7FFF089801464160065F97**__ **__7FFF__ __088E__ __014B__ __41__ __60066009__** 7FFF0885014E41600660667FFF0875015141600662BE7FFF086B015541600665167FFF08660155416006676E7FFF085F015A41600669C67FFF0857015D4160066C1E
1155 1155  
1156 -(% _msthash="315237" _msttexthash="1385839" %)
1157 -(((
1158 1158  Where the first 11 bytes is for the first entry:
1159 -)))
1160 1160  
1161 -(% _msthash="315238" _msttexthash="274846" %)
1162 -(((
1163 1163  7FFF089801464160065F97
1164 -)))
1165 1165  
1166 -(% _msthash="315239" _msttexthash="617435" %)
1167 -(((
1168 1168  Ext sensor data=0x7FFF/100=327.67
1169 -)))
1170 1170  
1171 -(% _msthash="315240" _msttexthash="270543" %)
1172 -(((
1173 -Temp=0x0898/100=22.00
1174 -)))
765 +Temp=0x088E/100=22.00
1175 1175  
1176 -(% _msthash="315241" _msttexthash="211783" %)
1177 -(((
1178 -Hum=0x0146/10=32.6
1179 -)))
767 +Hum=0x014B/10=32.6
1180 1180  
1181 -(% _msthash="315242" _msttexthash="1569776" %)
1182 -(((
1183 1183  poll message flag & Ext=0x41,means reply data,Ext=1
1184 -)))
1185 1185  
1186 -(% _msthash="315243" _msttexthash="1120509" %)
1187 -(((
1188 -Unix time is 0x60065F97=1611030423s=21/1/19 04:27:03
1189 -)))
771 +Unix time is 0x60066009=1611030423s=21/1/19 04:27:03
1190 1190  
1191 1191  
774 +== 2.7 Alarm Mode & Feature "Multi sampling, one uplink" ==
1192 1192  
1193 -== 2.7 Alarm Mode ==
1194 1194  
1195 -
1196 1196  (((
1197 1197  when the device is in alarm mode, it checks the built-in sensor temperature for a short time. if the temperature exceeds the preconfigured range, it sends an uplink immediately.
1198 1198  )))
... ... @@ -1200,17 +1200,148 @@
1200 1200  (((
1201 1201  (% style="color:red" %)**Note: alarm mode adds a little power consumption, and we recommend extending the normal read time when this feature is enabled.**
1202 1202  
1203 -
1204 -)))
1205 1205  
785 +=== 2.7.1 ALARM MODE ( Since v1.3.1 firmware) ===
786 +
787 +
788 +**Internal GXHT30 temperature alarm(Acquisition time: fixed at one minute)**
789 +
1206 1206  (((
1207 -**AT COMMAND FOR ALARM MODE:**
791 +(% class="box infomessage" %)
792 +(((
793 +**AT+WMOD=3**:  Enable/disable alarm mode. (0: Disabled, 1: Enabled Temperature Alarm for onboard temperature sensor)
794 +
795 +**AT+CITEMP=1**:  The interval between checking the alarm temperature. (In minutes)
796 +
797 +**AT+ARTEMP**:  Gets or sets the alarm range of the internal temperature sensor
798 +
799 +**AT+ARTEMP=? **:  Gets the alarm range of the internal temperature sensor(% _mstvisible="3" style="display:none" %)
800 +
801 +**AT+ARTEMP=45,105**:  Set the internal temperature sensor alarm range from 45 to 105.
802 +
803 +**AT+LEDALARM=1** :       Enable LED visual Alarm.
1208 1208  )))
805 +)))
1209 1209  
807 +(% style="color:#4f81bd" %)**Downlink Command:**
808 +
809 +AT+WMOD=1:  A501  ,  AT+WMOD=0 :  A600
810 +
811 +AT+CITEMP=1 : A60001
812 +
813 +AT+ARTEMP=1,60  :  A70001003C
814 +
815 +AT+ARTEMP=-16,60 :  A7FFF0003C
816 +
817 +AT+LEDALARM=1  :  3601
818 +
819 +
820 +(% style="color:#4f81bd" %)**Downlink Command: AAXXXXXXXXXXXXXX**
821 +
822 +Total bytes: 8 bytes
823 +
824 +**Example: **AA0100010001003C
825 +
826 +WMOD=01
827 +
828 +CITEMP=0001
829 +
830 +TEMPlow=0001
831 +
832 +TEMPhigh=003C
833 +
834 +
835 +**DS18B20 and TMP117 Threshold Alarm**
836 +
837 +**~ AT+WMOD=1,60,-10,20**
838 +
839 +(% style="color:#4f81bd" %)**Downlink Command:**
840 +
841 +**Example: **A5013CFC180014
842 +
843 +MOD=01
844 +
845 +CITEMP=3C(S)
846 +
847 +TEMPlow=FC18
848 +
849 +TEMPhigh=0014
850 +
851 +
852 +**Fluctuation alarm for DS18B20 and TMP117(Acquisition time: minimum 1s)**
853 +
854 +**AT+WMOD=2,60,5** 
855 +
856 +(% style="color:#4f81bd" %)**Downlink Command:**
857 +
858 +**Example: **A5023C05
859 +
860 +MOD=02
861 +
862 +CITEMP=3C(S)
863 +
864 +temperature fluctuation=05
865 +
866 +
867 +==== **Sampling multiple times and uplink together** ====
868 +
869 +**AT+WMOD=3,1,60,20,-16,32,1**   
870 +
871 +Explain:
872 +
873 +* Set Working Mode to **Mode 3**
874 +* Sampling Interval is **60**s.
875 +* When there is **20** sampling dats, Device will send these data via one uplink. (max value is 60, means max 60 sampling in one uplink)
876 +* Temperature alarm range is **-16** to **32**°C,
877 +* **1** to enable temperature alarm, **0** to disable the temperature alarm. If alarm is enabled, a data will be sent immediately  if temperate exceeds the Alarm range.
878 +
879 +(% style="color:#4f81bd" %)**Downlink Command:**
880 +
881 +**Example: **A50301003C14FFF0002001
882 +
883 +MOD=03
884 +
885 +EXT=01
886 +
887 +CITEMP=003C(S)
888 +
889 +Total number of acquisitions=14
890 +
891 +TEMPlow=FFF0
892 +
893 +TEMPhigh=0020
894 +
895 +ARTEMP=01
896 +
897 +
898 +**Uplink payload( Fport=3)**
899 +
900 +**Example: CBEA**01**0992**//0A41//**09C4**
901 +
902 +BatV=CBEA
903 +
904 +EXT=01
905 +
906 +Temp1=0992  ~/~/ 24.50℃
907 +
908 +Temp2=0A41  ~/~/ 26.25℃
909 +
910 +Temp3=09C4  ~/~/ 25.00℃
911 +
912 +
913 +(% style="color:red" %)**Note: This uplink will automatically select the appropriate DR according to the data length**
914 +
915 +(% style="color:red" %)** In this mode, the temperature resolution of ds18b20 is 0.25℃ to save power consumption**
916 +)))
917 +
918 +
919 +=== 2.7.2 ALARM MODE ( Before v1.3.1 firmware) ===
920 +
921 +
1210 1210  (% _mstvisible="1" class="box infomessage" %)
1211 1211  (((
1212 1212  (((
1213 -**AT+WMOD=1**:  Enable/disable alarm mode. (0: Disabled, 1: Enabled)
925 +**AT+WMOD=1**:  Enable/disable alarm mode. (0: Disabled, 1: Enabled Temperature Alarm for onboard temperature sensor)
1214 1214  )))
1215 1215  
1216 1216  (((
... ... @@ -1245,7 +1245,6 @@
1245 1245  TEMPhigh=003C
1246 1246  
1247 1247  
1248 -
1249 1249  == 2.8 LED Indicator ==
1250 1250  
1251 1251  
... ... @@ -1269,10 +1269,8 @@
1269 1269  [[image:image-20220516231650-1.png||_mstalt="428597" _mstvisible="3" height="436" width="428"]]
1270 1270  
1271 1271  
1272 -
1273 1273  = 3. Sensors and Accessories =
1274 1274  
1275 -
1276 1276  == 3.1 E2 Extension Cable ==
1277 1277  
1278 1278  
... ... @@ -1303,8 +1303,6 @@
1303 1303  [[image:image-20220619092421-3.png||height="371" width="529"]]
1304 1304  
1305 1305  
1306 -
1307 -
1308 1308  == 3.2 E3 Temperature Probe ==
1309 1309  
1310 1310  
... ... @@ -1368,7 +1368,6 @@
1368 1368  )))
1369 1369  
1370 1370  
1371 -
1372 1372  == 4.1 Set Transmit Interval Time ==
1373 1373  
1374 1374  
... ... @@ -1384,11 +1384,11 @@
1384 1384  
1385 1385  Format: Command Code (0x01) followed by 3 bytes time value.
1386 1386  
1387 -If the downlink payload=0100003C, it means set the END Nodes Transmit Interval to 0x00003C=60(S), while type code is 01.
1093 +If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
1388 1388  
1389 -* **Example 1**: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds
1095 +* **Example 1**: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
1390 1390  
1391 -* **Example 2**: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds
1097 +* **Example 2**: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
1392 1392  
1393 1393  
1394 1394  
... ... @@ -1465,7 +1465,6 @@
1465 1465  No downlink command for this feature.
1466 1466  
1467 1467  
1468 -
1469 1469  == 4.5 Quit AT Command ==
1470 1470  
1471 1471  
... ... @@ -1482,7 +1482,6 @@
1482 1482  No downlink command for this feature.
1483 1483  
1484 1484  
1485 -
1486 1486  == 4.6 Set to sleep mode ==
1487 1487  
1488 1488  
... ... @@ -1515,10 +1515,9 @@
1515 1515  
1516 1516  (% _msthash="315254" _msttexthash="298038" style="color:#4f81bd" %)**Downlink Command:**
1517 1517  
1518 -0x306007806000  ~/~/ Set timestamp to 0x(6007806000),Same as AT+TIMESTAMP=1611104352
1222 +0x306007806000  ~/~/  Set timestamp to 0x(6007806000),Same as AT+TIMESTAMP=1611104352
1519 1519  
1520 1520  
1521 -
1522 1522  == 4.8 Set Time Sync Mode ==
1523 1523  
1524 1524  
... ... @@ -1543,7 +1543,6 @@
1543 1543  0x28 00  ~/~/  Same As AT+SYNCMOD=0
1544 1544  
1545 1545  
1546 -
1547 1547  == 4.9 Set Time Sync Interval ==
1548 1548  
1549 1549  
... ... @@ -1557,10 +1557,9 @@
1557 1557  
1558 1558  (% _msthash="315257" _msttexthash="298038" style="color:#4f81bd" %)**Downlink Command:**
1559 1559  
1560 -**0x29 0A** ~/~/ Same as AT+SYNCTDC=0x0A
1262 +**0x29 0A**  ~/~/ Same as AT+SYNCTDC=0x0A
1561 1561  
1562 1562  
1563 -
1564 1564  == 4.10 Print data entries base on page. ==
1565 1565  
1566 1566  
... ... @@ -1577,7 +1577,6 @@
1577 1577  No downlink commands for feature
1578 1578  
1579 1579  
1580 -
1581 1581  == 4.11 Print last few data entries. ==
1582 1582  
1583 1583  
... ... @@ -1594,7 +1594,6 @@
1594 1594  No downlink commands for feature
1595 1595  
1596 1596  
1597 -
1598 1598  == 4.12 Clear Flash Record ==
1599 1599  
1600 1600  
... ... @@ -1608,7 +1608,7 @@
1608 1608  
1609 1609  (% style="color:#4f81bd" %)**Downlink Command: 0xA3**
1610 1610  
1611 -* Example: 0xA301 ~/~/Same as AT+CLRDTA
1310 +* Example: 0xA301  ~/~/  Same as AT+CLRDTA
1612 1612  
1613 1613  
1614 1614  
... ... @@ -1615,52 +1615,94 @@
1615 1615  == 4.13 Auto Send None-ACK messages ==
1616 1616  
1617 1617  
1618 -(% _msthash="315394" _msttexthash="51837149" _mstvisible="1" %)
1619 1619  Feature: LHT65N will wait for ACK for each uplink, If LHT65N doesn't get ACK from the IoT server, it will consider the message doesn't arrive server and store it. LHT65N keeps sending messages in normal periodically. Once LHT65N gets ACK from a server, it will consider the network is ok and start to send the not-arrive message.
1620 1620  
1621 1621  
1622 1622  (% style="color:#4f81bd" %)**AT Command: AT+PNACKMD**
1623 1623  
1624 -(% _msthash="315396" _msttexthash="734682" _mstvisible="1" %)
1625 1625  The default factory setting is 0
1626 1626  
1627 -(% _mstvisible="1" border="1" style="background-color:#ffffcc; color:green; width:450px" %)
1628 -(% _mstvisible="3" %)|=(% _mstvisible="4" style="width: 171px;" %)(% _msthash="1231737" _msttexthash="251862" _mstvisible="6" %)**Command Example**|=(% _mstvisible="4" style="width: 219px;" %)(% _msthash="1231738" _msttexthash="116025" _mstvisible="6" %)**Function**|=(% _mstvisible="4" style="width: 119px;" %)(% _msthash="1231739" _msttexthash="116831" _mstvisible="6" %)**Response**
1629 -(% _mstvisible="3" %)|(% _msthash="1231321" _msttexthash="130455" _mstvisible="4" style="width:171px" %)AT+PNACKMD=1|(% _msthash="1231322" _msttexthash="377026" _mstvisible="4" style="width:219px" %)Poll None-ACK message|(% _msthash="1231323" _msttexthash="14989" _mstvisible="4" style="width:119px" %)OK
1324 +(% border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:367px" %)
1325 +|=(% style="width: 158px;" %)**Command Example**|=(% style="width: 118px;" %)**Function**|=(% style="width: 87px;" %)**Response**
1326 +|(% style="width:158px" %)AT+PNACKMD=1|(% style="width:118px" %)Poll None-ACK message|(% style="width:87px" %)OK
1630 1630  
1631 1631  (% style="color:#4f81bd" %)**Downlink Command: 0x34**
1632 1632  
1633 -* Example: 0x3401 ~/~/Same as AT+PNACKMD=1
1330 +* Example: 0x3401  ~/~/  Same as AT+PNACKMD=1
1634 1634  
1635 1635  
1636 1636  
1637 -= 5. Battery & How to replace =
1334 +== 4.14 Modified WMOD command for external sensor TMP117 or DS18B20 temperature alarm(Since firmware 1.3.0) ==
1638 1638  
1639 1639  
1337 +Feature: Set internal and external temperature sensor alarms.
1338 +
1339 +(% border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:500px" %)
1340 +|=(% style="width: 250px;" %)**Command Example**|=(% style="width: 200px;" %)**Function**|=(% style="width: 50px;" %)**Response**
1341 +|(% style="width:268px" %)AT+WMOD=parameter1,parameter2,parameter3,parameter4|(% style="width:255px" %)Set internal and external temperature sensor alarms|(% style="width:181px" %)OK
1342 +
1343 +(% style="color:#037691" %)**AT+WMOD=parameter1,parameter2,parameter3,parameter4**
1344 +
1345 +(% style="color:#037691" %)**Parameter 1**(%%):  Alarm mode:
1346 +
1347 +0): Cancel
1348 +
1349 +1): Threshold alarm
1350 +
1351 +2): Fluctuation alarm
1352 +
1353 +
1354 +(% style="color:#037691" %)** Parameter 2**(%%):  Sampling time. Unit: seconds, up to 255 seconds.
1355 +
1356 +(% style="color:red" %)**Note: When the collection time is less than 60 seconds and always exceeds the set alarm threshold, the sending interval will not be the collection time, but will be sent every 60 seconds.**
1357 +
1358 +
1359 +(% style="color:#037691" %) **Parameter 3 and parameter 4:**
1360 +
1361 +1):  If Alarm Mode is set to 1: Parameter 3 and parameter 4 are valid, as before, they represent low temperature and high temperature.
1362 +
1363 +Such as AT+WMOD=1,60,45,105, it means high and low temperature alarm.
1364 +
1365 +
1366 +2):  If Alarm Mode is set to 2: Parameter 3 is valid, which represents the difference between the currently collected temperature and the last uploaded temperature.
1367 +
1368 +Such as AT+WMOD=2,10,2,it means that it is a fluctuation alarm.
1369 +
1370 +If the difference between the current collected temperature and the last Uplin is ±2 degrees, the alarm will be issued.
1371 +
1372 +
1373 +(% style="color:#4f81bd" %)**Downlink Command: 0xA5**
1374 +
1375 +0xA5 00 ~-~- AT+WMOD=0.
1376 +
1377 +0xA5 01 0A 11 94 29 04 ~-~- AT+WMOD=1,10,45,105  (AT+WMOD = second byte, third byte, fourth and fifth bytes divided by 100, sixth and seventh bytes divided by 100 )
1378 +
1379 +0XA5 01 0A F9 C0 29 04 ~-~-AT+WMOD=1,10,-16,105(Need to convert -16 to -1600 for calculation,-1600(DEC)=FFFFFFFFFFFFF9C0(HEX)  FFFFFFFFFFFFF9C0(HEX) +10000(HEX)=F9C0(HEX))
1380 +
1381 +0xA5 02 0A 02 ~-~- AT+WMOD=2,10,2  (AT+WMOD = second byte, third byte, fourth byte)
1382 +
1383 +0xA5 FF ~-~- After the device receives it, upload the current alarm configuration (FPORT=8). Such as 01 0A 11 94 29 04 or 02 0A 02.
1384 +
1385 +
1386 += 5. Battery & How to replace =
1387 +
1640 1640  == 5.1 Battery Type ==
1641 1641  
1642 1642  
1643 1643  (((
1644 -(((
1645 1645  LHT65N is equipped with a 2400mAH Li-MnO2 (CR17505) battery . The battery is an un-rechargeable battery with low discharge rate targeting for up to 8~~10 years use. This type of battery is commonly used in IoT devices for long-term running, such as water meters.
1646 1646  )))
1647 -)))
1648 1648  
1649 1649  (((
1650 -
1651 -)))
1652 -
1653 -(((
1654 -(((
1655 1655  The discharge curve is not linear so can't simply use percentage to show the battery level. Below is the battery performance.
1397 +
1398 +
1656 1656  [[image:image-20220515075034-1.png||_mstalt="428961" _mstvisible="4" height="208" width="644"]]
1657 1657  )))
1658 -)))
1659 1659  
1660 1660  The minimum Working Voltage for the LHT65N is ~~ 2.5v. When battery is lower than 2.6v, it is time to change the battery.
1661 1661  
1662 1662  
1663 -
1664 1664  == 5.2 Replace Battery ==
1665 1665  
1666 1666  
... ... @@ -1677,9 +1677,6 @@
1677 1677  [[https:~~/~~/www.dragino.com/downloads/downloads/LoRa_End_Node/Battery_Analyze/DRAGINO_Battery_Life_Guide.pdf>>https://www.dragino.com/downloads/downloads/LoRa_End_Node/Battery_Analyze/DRAGINO_Battery_Life_Guide.pdf]]
1678 1678  )))
1679 1679  
1680 -(((
1681 -
1682 -)))
1683 1683  
1684 1684  (((
1685 1685  A full detail test report for LHT65N on different frequency can be found at : [[https:~~/~~/www.dropbox.com/sh/r2i3zlhsyrpavla/AAB1sZw3mdT0K7XjpHCITt13a?dl=0>>https://www.dropbox.com/sh/r2i3zlhsyrpavla/AAB1sZw3mdT0K7XjpHCITt13a?dl=0]]
... ... @@ -1686,10 +1686,8 @@
1686 1686  )))
1687 1687  
1688 1688  
1689 -
1690 1690  = 6. FAQ =
1691 1691  
1692 -
1693 1693  == 6.1 How to use AT Command? ==
1694 1694  
1695 1695  
... ... @@ -1703,7 +1703,6 @@
1703 1703  * (% style="background-color:yellow" %)**USB to TTL GND <~-~->GND**
1704 1704  * (% style="background-color:yellow" %)**USB to TTL RXD <~-~-> D+**
1705 1705  * (% style="background-color:yellow" %)**USB to TTL TXD <~-~-> A11**
1706 -* (% style="background-color:yellow" %)**USB to TTL 3.3V <~-~-> D-**
1707 1707  
1708 1708  (((
1709 1709  In PC, User needs to set serial tool(such as [[**putty**>>https://www.chiark.greenend.org.uk/~~sgtatham/putty/latest.html]], SecureCRT) baud rate to (% style="color:green" %)**9600**(%%) to access to access serial console for LHT65N. The AT commands are disable by default and need to enter password (default:(% style="color:green" %)**123456**) (%%)to active it. Timeout to input AT Command is 5 min, after 5-minute, user need to input password again. User can use AT+DISAT command to disable AT command before timeout.
... ... @@ -1911,7 +1911,6 @@
1911 1911  AT+PID:  Get or set the PID
1912 1912  
1913 1913  
1914 -
1915 1915  == 6.2 Where to use AT commands and Downlink commands ==
1916 1916  
1917 1917  
... ... @@ -1951,7 +1951,6 @@
1951 1951  [[image:image-20220615092939-4.png||_mstalt="434460" height="448" width="894"]]
1952 1952  
1953 1953  
1954 -
1955 1955  == 6.3 How to change the uplink interval? ==
1956 1956  
1957 1957  
... ... @@ -1958,7 +1958,6 @@
1958 1958  Please see this link: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/How%20to%20set%20the%20transmit%20time%20interval/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20set%20the%20transmit%20time%20interval/||_msthash="506137" _msttexthash="5712018" style="background-color: rgb(255, 255, 255);"]]
1959 1959  
1960 1960  
1961 -
1962 1962  == 6.4 How to use TTL-USB to connect a PC to input AT commands? ==
1963 1963  
1964 1964  
... ... @@ -1977,7 +1977,6 @@
1977 1977  [[image:image-20220615154519-3.png||height="672" width="807"]]
1978 1978  
1979 1979  
1980 -
1981 1981  == 6.5 How to use TTL-USB to connect PC to upgrade firmware? ==
1982 1982  
1983 1983  
... ... @@ -2020,7 +2020,6 @@
2020 2020  Finally, unplug the DuPont cable on port4, and then use the DuPont cable to short circuit port3 and port1 to reset the device.
2021 2021  
2022 2022  
2023 -
2024 2024  == 6.6 Using USB-TYPE-C to connect to the computer using the AT command ==
2025 2025  
2026 2026  
... ... @@ -2040,7 +2040,6 @@
2040 2040  [[image:image-20220615154519-3.png||height="672" width="807"]]
2041 2041  
2042 2042  
2043 -
2044 2044  == 6.7 How to use  USB-TYPE-C to connect PC to upgrade firmware? ==
2045 2045  
2046 2046  
... ... @@ -2062,7 +2062,7 @@
2062 2062  [[image:image-20220623113959-5.png||height="528" width="397"]]
2063 2063  
2064 2064  (% _msthash="506146" _msttexthash="52173160" %)
2065 -Press and hold the start key to restart and enter  (% _mstvisible="1" %)bootlaod(%%) mode.
1794 +Connect A8 and GND with Dupont wire for a while and then separate,enter reset mode
2066 2066  
2067 2067  
2068 2068  
... ... @@ -2079,10 +2079,9 @@
2079 2079  [[image:image-20220620160723-8.png]]
2080 2080  
2081 2081  
2082 -Finally,restart reset device again
1811 +Finally,Disconnect 3.3v,Connect A8 and GND with Dupont wire for a while and then separate,exit reset mode
2083 2083  
2084 2084  
2085 -
2086 2086  = 7. Order Info =
2087 2087  
2088 2088  
... ... @@ -2104,7 +2104,6 @@
2104 2104  * (% style="color:red" %)**E3**(%%): External Temperature Probe
2105 2105  
2106 2106  
2107 -
2108 2108  = 8. Packing Info =
2109 2109  
2110 2110  
... ... @@ -2115,11 +2115,10 @@
2115 2115  
2116 2116  **Dimension and weight**:
2117 2117  
2118 -* Device Size:  10 x 10 x 3.5 cm
1845 +* Device Size:  10 x 10 x 3.5 mm
2119 2119  * Device Weight: 120.5g
2120 2120  
2121 2121  
2122 -
2123 2123  = 9. Reference material =
2124 2124  
2125 2125  
... ... @@ -2126,7 +2126,6 @@
2126 2126  * [[Datasheet, photos, decoder, firmware>>https://www.dropbox.com/sh/una19zsni308dme/AACOKp6J2RF5TMlKWT5zU3RTa?dl=0||_msthash="504975" _msttexthash="51420512"]]
2127 2127  
2128 2128  
2129 -
2130 2130  = 10. FCC Warning =
2131 2131  
2132 2132