<
From version < 6.1 >
edited by Edwin Chen
on 2023/04/09 00:33
To version < 5.1 >
edited by Edwin Chen
on 2023/04/09 00:22
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -196,14 +196,14 @@
196 196  * The First 6 bytes: has fix meanings for every LHT65N-PIR.
197 197  * The 7th byte (EXT #): defines the external sensor model. It can be (% class="mark" %)0x05 or 0x09(%%) for LHT65N-PIR
198 198  * The 7^^th^^ byte: Alarm Bit (if this uplink is from periodically or movement)
199 -* The 8^^th^^ ~~ 11st  byte: Movement Detect Count.
199 +* The 8^^th^^ ~~ 11st  byte: Movement Detect Count. Each
200 200  
201 201  === 2.4.1 Decoder in TTN V3 ===
202 202  
203 203  
204 -When the uplink payload arrives TTNv3, it shows HEX format and not friendly to read. We can add LHT65N-PIR decoder in TTNv3 for friendly reading.
204 +When the uplink payload arrives TTNv3, it shows HEX format and not friendly to read. We can add LHT65N-E5 decoder in TTNv3 for friendly reading.
205 205  
206 -Below is the position to put the decoder and LHT65N-PIR decoder can be download from here: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
206 +Below is the position to put the decoder and LHT65N-E5 decoder can be download from here: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
207 207  
208 208  
209 209  [[image:image-20220522234118-10.png||_mstalt="451464" height="353" width="729"]]
... ... @@ -220,12 +220,11 @@
220 220  [[image:image-20220522235639-1.png||_mstalt="431392" height="139" width="727"]]
221 221  
222 222  
223 -Check the battery voltage for LHT65N-PIR.
223 +Check the battery voltage for LHT65N-E5.
224 224  
225 -* BAT status=(0xcba4>>14)&0xFF=11(B),very good
225 +* BAT status=(0Xcba4>>14)&0xFF=11(B),very good
226 226  * Battery Voltage =0xCBF6&0x3FFF=0x0BA4=2980mV
227 227  
228 -
229 229  === 2.4.3 Built-in Temperature ===
230 230  
231 231  
... ... @@ -263,6 +263,71 @@
263 263   The last 2 bytes of data are meaningless
264 264  
265 265  
265 +
266 +==== 2.4.5.2 Ext~=0x85, E5 sensor with Unix Timestamp ====
267 +
268 +
269 +(((
270 +Timestamp mode is designed for LHT65N-E5 with E3 probe, it will send the uplink payload with Unix timestamp. With the limitation of 11 bytes (max distance of AU915/US915/AS923 band), the time stamp mode will be lack of BAT voltage field, instead, it shows the battery status. The payload is as below:
271 +)))
272 +
273 +(((
274 +
275 +)))
276 +
277 +(% border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:535px" %)
278 +|=(% style="width: 88px;" %)(((
279 +**Size(bytes)**
280 +)))|=(% style="width: 93px;" %)(((
281 +**2**
282 +)))|=(% style="width: 94px;" %)(((
283 +**2**
284 +)))|=(% style="width: 117px;" %)(((
285 +**2**
286 +)))|=(% style="width: 54px;" %)(((
287 +**1**
288 +)))|=(% style="width: 79px;" %)(((
289 +**4**
290 +)))
291 +|(% style="width:88px" %)(((
292 +**Value**
293 +)))|(% style="width:93px" %)(((
294 +[[External temperature>>||anchor="H4.2SetExternalSensorMode"]]
295 +)))|(% style="width:94px" %)(((
296 +[[Built-In Temperature>>||anchor="H2.4.3Built-inTemperature"]]
297 +)))|(% style="width:117px" %)(((
298 +BAT Status &
299 +Illumination
300 +)))|(% style="width:54px" %)(((
301 +Status & Ext
302 +)))|(% style="width:79px" %)(((
303 +[[Unix Time Stamp>>||anchor="H2.6.2UnixTimeStamp"]]
304 +)))
305 +
306 +* **Battery status & Built-in Humidity**
307 +
308 +(% border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:461px" %)
309 +|=(% style="width: 67px;" %)Bit(bit)|=(% style="width: 256px;" %)[15:14]|=(% style="width: 132px;" %)[11:0]
310 +|(% style="width:67px" %)Value|(% style="width:256px" %)(((
311 +BAT Status
312 +00(b): Ultra Low ( BAT <= 2.50v)
313 +01(b): Low  (2.50v <=BAT <= 2.55v)
314 +10(b): OK   (2.55v <= BAT <=2.65v)
315 +11(b): Good   (BAT >= 2.65v)
316 +)))|(% style="width:132px" %)(((
317 +Illumination
318 +)))
319 +
320 +* **Status & Ext Byte**
321 +
322 +(% border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:500px" %)
323 +|=(% 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]**
324 +|=(% 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)
325 +
326 +* (% style="color:blue" %)**Poll Message Flag**:(%%)  1: This message is a poll message reply, 0: means this is a normal uplink.
327 +* (% style="color:blue" %)**Sync time OK**: (%%) 1: Set time ok,0: N/A. After time SYNC request is sent, LHT65N-E5 will set this bit to 0 until got the time stamp from the application server.
328 +* (% style="color:blue" %)**Unix Time Request**:(%%)  1: Request server downlink Unix time, 0 : N/A. In this mode, LHT65N-E5 will set this bit to 1 every 10 days to request a time SYNC. (AT+SYNCMOD to set this)
329 +
266 266  == 2.5 Show data on Datacake ==
267 267  
268 268  
... ... @@ -308,11 +308,239 @@
308 308  [[image:image-20221224161957-6.png||height="306" width="852"]]
309 309  
310 310  
375 +== 2.6 Datalog Feature ==
311 311  
377 +
378 +(((
379 +Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, LHT65N-E5 will store the reading for future retrieving purposes. There are two ways for IoT servers to get datalog from LHT65N-E5.
380 +)))
381 +
382 +
383 +=== 2.6.1 Ways to get datalog via LoRaWAN ===
384 +
385 +
386 +There are two methods:
387 +
388 +(% style="color:blue" %)**Method 1:** (%%)IoT Server sends a downlink LoRaWAN command to [[poll the value>>||anchor="H2.6.4Pollsensorvalue"]] for specified time range.
389 +
390 +
391 +(% style="color:blue" %)**Method 2: **(%%)Set [[PNACKMD=1>>||anchor="H4.13AutoSendNone-ACKmessages"]], LHT65N-E5 will wait for ACK for every uplink, when there is no LoRaWAN network, LHT65N-E5 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.
392 +
393 +
394 +(% style="color:red" %)**Note for method 2:**
395 +
396 +* a) LHT65N-E5 will do an ACK check for data records sending to make sure every data arrive server.
397 +* b) LHT65N-E5 will send data in **CONFIRMED Mode** when PNACKMD=1, but LHT65N-E5 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-E5 gets a ACK, LHT65N-E5 will consider there is a network connection and resend all NONE-ACK Message.
398 +
399 +Below is the typical case for the auto-update datalog feature (Set PNACKMD=1)
400 +
401 +
402 +[[image:image-20220703111700-2.png||_mstalt="426244" height="381" width="1119"]]
403 +
404 +
405 +=== 2.6.2 Unix TimeStamp ===
406 +
407 +
408 +LHT65N-E5 uses Unix TimeStamp format based on
409 +
410 +
411 +[[image:image-20220523001219-11.png||_mstalt="450450" height="97" width="627"]]
412 +
413 +
414 +
415 +User can get this time from link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
416 +
417 +Below is the converter example
418 +
419 +[[image:image-20220523001219-12.png||_mstalt="450827" height="298" width="720"]]
420 +
421 +
422 +So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25
423 +
424 +
425 +=== 2.6.3 Set Device Time ===
426 +
427 +
428 +(((
429 +(% style="color:blue" %)**There are two ways to set device's time:**
430 +)))
431 +
432 +(((
433 +**1.  Through LoRaWAN MAC Command (Default settings)**
434 +)))
435 +
436 +(((
437 +User need to set SYNCMOD=1 to enable sync time via MAC command.
438 +)))
439 +
440 +(((
441 +Once LHT65N-E5 Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to LHT65N-E5. If LHT65N-E5 fails to get the time from the server, LHT65N-E5 will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days).
442 +)))
443 +
444 +(((
445 +(% 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.**
446 +)))
447 +
448 +
449 +(((
450 +**2. Manually Set Time**
451 +)))
452 +
453 +(((
454 +User needs to set SYNCMOD=0 to manual time, otherwise, the user set time will be overwritten by the time set by the server.
455 +)))
456 +
457 +
458 +=== 2.6.4 Poll sensor value ===
459 +
460 +
461 +User can poll sensor value based on timestamps from the server. Below is the downlink command.
462 +
463 +[[image:image-20220523152302-15.png||_mstalt="451581"]]
464 +
465 +
466 +Timestamp start and Timestamp end use Unix TimeStamp format as mentioned above. Devices will reply with all data log during this time period, use the uplink interval.
467 +
468 +For example, downlink command (% _mstmutation="1" %)**31 5FC5F350 5FC6 0160 05**(%%)
469 +
470 +Is to check 2020/12/1 07:40:00 to 2020/12/1 08:40:00’s data
471 +
472 +Uplink Internal =5s,means LHT65N-E5 will send one packet every 5s. range 5~~255s.
473 +
474 +
475 +=== 2.6.5 Datalog Uplink payload ===
476 +
477 +
478 +The Datalog poll reply uplink will use below payload format.
479 +
480 +**Retrieval data payload:**
481 +
482 +(% border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:480px" %)
483 +|=(% style="width: 60px;" %)(((
484 +**Size(bytes)**
485 +)))|=(% style="width: 90px;" %)**2**|=(% style="width: 90px;" %)**2**|=(% style="width: 70px;" %)**2**|=(% style="width: 100px;" %)**1**|=(% style="width: 70px;" %)**4**
486 +|(% 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"]]
487 +
488 +**Poll message flag & Ext:**
489 +
490 +[[image:image-20221006192726-1.png||_mstalt="430508" height="112" width="754"]]
491 +
492 +(% 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)
493 +
494 +(% style="color:blue" %)**Poll Message Flag**(%%): 1: This message is a poll message reply.
495 +
496 +* Poll Message Flag is set to 1.
497 +
498 +* Each data entry is 11 bytes, to save airtime and battery, devices will send max bytes according to the current DR and Frequency bands.
499 +
500 +For example, in US915 band, the max payload for different DR is:
501 +
502 +(% style="color:blue" %)**a) DR0:** (%%)max is 11 bytes so one entry of data
503 +
504 +(% style="color:blue" %)**b) DR1:**(%%) max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
505 +
506 +(% style="color:blue" %)**c) DR2:**(%%) total payload includes 11 entries of data
507 +
508 +(% style="color:blue" %)**d) DR3: **(%%)total payload includes 22 entries of data.
509 +
510 +If devise doesn't have any data in the polling time. Device will uplink 11 bytes of 0   
511 +
512 +
513 +**Example:**
514 +
515 +If LHT65N-E5 has below data inside Flash:
516 +
517 +[[image:image-20220523144455-1.png||_mstalt="430040" height="335" width="735"]]
518 +
519 +
520 +If user sends below downlink command: (% style="background-color:yellow" %)3160065F9760066DA705
521 +
522 +Where : Start time: 60065F97 = time 21/1/19 04:27:03
523 +
524 + Stop time: 60066DA7= time 21/1/19 05:27:03
525 +
526 +
527 +**LHT65N-E5 will uplink this payload.**
528 +
529 +[[image:image-20220523001219-13.png||_mstalt="451204" height="421" style="text-align:left" width="727"]]
530 +
531 +
532 +__**7FFF089801464160065F97**__ **__7FFF__ __088E__ __014B__ __41__ __60066009__** 7FFF0885014E41600660667FFF0875015141600662BE7FFF086B015541600665167FFF08660155416006676E7FFF085F015A41600669C67FFF0857015D4160066C1E
533 +
534 +Where the first 11 bytes is for the first entry:
535 +
536 +7FFF089801464160065F97
537 +
538 +Ext sensor data=0x7FFF/100=327.67
539 +
540 +Temp=0x088E/100=22.00
541 +
542 +Hum=0x014B/10=32.6
543 +
544 +poll message flag & Ext=0x41,means reply data,Ext=1
545 +
546 +Unix time is 0x60066009=1611030423s=21/1/19 04:27:03
547 +
548 +
549 +== 2.7 Alarm Mode ==
550 +
551 +(((
552 +
553 +
554 +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.
555 +)))
556 +
557 +(((
558 +(% style="color:red" %)**Note: alarm mode adds a little power consumption, and we recommend extending the normal read time when this feature is enabled.**
559 +
560 +
561 +)))
562 +
563 +=== 2.7.1 ALARM MODE ===
564 +
565 +
566 +(% class="box infomessage" %)
567 +(((
568 +(((
569 +**AT+WMOD=1**:  Enable/disable alarm mode. (0: Disabled, 1: Enabled Temperature Alarm for onboard temperature sensor)
570 +)))
571 +
572 +(((
573 +**AT+CITEMP=1**:  The interval between checking the alarm temperature. (In minutes)
574 +)))
575 +
576 +(((
577 +**AT+ARTEMP**:  Gets or sets the alarm range of the internal temperature sensor
578 +)))
579 +
580 +(((
581 +(% _mstmutation="1" %)**AT+ARTEMP=? **(%%):  Gets the alarm range of the internal temperature sensor(% style="display:none" %)
582 +)))
583 +
584 +(((
585 +**AT+ARTEMP=45,105**:  Set the internal temperature sensor alarm range from 45 to 105.
586 +)))
587 +)))
588 +
589 +(% style="color:#4f81bd" %)**Downlink Command: AAXXXXXXXXXXXXXX**
590 +
591 +Total bytes: 8 bytes
592 +
593 +**Example:**AA0100010001003C
594 +
595 +WMOD=01
596 +
597 +CITEMP=0001
598 +
599 +TEMPlow=0001
600 +
601 +TEMPhigh=003C
602 +
603 +
312 312  == 2.8 LED Indicator ==
313 313  
314 314  
315 -The LHT65N-PIR has a triple color LED which for easy showing different stage .
607 +The LHT65 has a triple color LED which for easy showing different stage .
316 316  
317 317  While user press ACT button, the LED will work as per LED status with ACT button.
318 318  
... ... @@ -323,7 +323,6 @@
323 323  * RED LED when external sensor is not connected
324 324  * For each success downlink, the PURPLE LED will blink once
325 325  
326 -
327 327  == 2.9 installation ==
328 328  
329 329  
... ... @@ -344,13 +344,19 @@
344 344  Use for AT Command
345 345  )))
346 346  * (((
347 -Update firmware for LHT65N-PIR
638 +Update firmware for LHT65N-E5
348 348  )))
640 +* (((
641 +Exposed All pins from the LHT65N Type-C connector.
349 349  
643 +
644 +
645 +)))
646 +
350 350  [[image:image-20220619092421-3.png||_mstalt="430547" height="371" width="529"]]
351 351  
352 352  
353 -= 4. Configure LHT65N-PIR via AT command or LoRaWAN downlink =
650 += 4. Configure LHT65N-E5 via AT command or LoRaWAN downlink =
354 354  
355 355  
356 356  (((
... ... @@ -461,8 +461,127 @@
461 461  
462 462  * There is no downlink command to set to Sleep mode.
463 463  
761 +== 4.4 Set system time ==
762 +
763 +
764 +Feature: Set system time, unix format. [[See here for format detail.>>||anchor="H2.6.2UnixTimeStamp"]]
765 +
766 +
767 +(% style="color:#4f81bd" %)**AT Command:**
768 +
769 +[[image:image-20220523151253-8.png||_mstalt="430677"]]
770 +
771 +
772 +(% style="color:#4f81bd" %)**Downlink Command:**
773 +
774 +0x306007806000  ~/~/  Set timestamp to 0x(6007806000),Same as AT+TIMESTAMP=1611104352
775 +
776 +
777 +== 4.5 Set Time Sync Mode ==
778 +
779 +
780 +(((
781 +Feature: Enable/Disable Sync system time via LoRaWAN MAC Command (DeviceTimeReq), LoRaWAN server must support v1.0.3 protocol to reply this command.
782 +)))
783 +
784 +(((
785 +SYNCMOD is set to 1 by default. If user want to set a different time from LoRaWAN server, user need to set this to 0.
786 +
464 464  
788 +)))
465 465  
790 +(% style="color:#4f81bd" %)**AT Command:**
791 +
792 +[[image:image-20220523151336-9.png||_mstalt="431717"]]
793 +
794 +
795 +(% style="color:#4f81bd" %)**Downlink Command:**
796 +
797 +0x28 01  ~/~/  Same As AT+SYNCMOD=1
798 +0x28 00  ~/~/  Same As AT+SYNCMOD=0
799 +
800 +
801 +== 4.6 Set Time Sync Interval ==
802 +
803 +
804 +Feature: Define System time sync interval. SYNCTDC default value: 10 days.
805 +
806 +
807 +(% style="color:#4f81bd" %)**AT Command:**
808 +
809 +[[image:image-20220523151411-10.png||_mstalt="449696"]]
810 +
811 +
812 +(% style="color:#4f81bd" %)**Downlink Command:**
813 +
814 +**0x29 0A**  ~/~/ Same as AT+SYNCTDC=0x0A
815 +
816 +
817 +== 4.7 Print data entries base on page. ==
818 +
819 +
820 +Feature: Print the sector data from start page to stop page (max is 416 pages).
821 +
822 +
823 +(% style="color:#4f81bd" %)**AT Command: AT+PDTA**
824 +
825 +[[image:image-20220523151450-11.png||_mstalt="451035"]]
826 +
827 +
828 +(% style="color:#4f81bd" %)**Downlink Command:**
829 +
830 +No downlink commands for feature
831 +
832 +
833 +== 4.8 Print last few data entries. ==
834 +
835 +
836 +Feature: Print the last few data entries
837 +
838 +
839 +(% style="color:#4f81bd" %)**AT Command: AT+PLDTA**
840 +
841 +[[image:image-20220523151524-12.png||_mstalt="452101"]]
842 +
843 +
844 +(% style="color:#4f81bd" %)**Downlink Command:**
845 +
846 +No downlink commands for feature
847 +
848 +
849 +== 4.9 Clear Flash Record ==
850 +
851 +
852 +Feature: Clear flash storage for data log feature.
853 +
854 +
855 +(% style="color:#4f81bd" %)**AT Command: AT+CLRDTA**
856 +
857 +[[image:image-20220523151556-13.png||_mstalt="454129"]]
858 +
859 +
860 +(% style="color:#4f81bd" %)**Downlink Command: 0xA3**
861 +
862 +* Example: 0xA301  ~/~/  Same as AT+CLRDTA
863 +
864 +== 4.10 Auto Send None-ACK messages ==
865 +
866 +
867 +Feature: LHT65N-E5 will wait for ACK for each uplink, If LHT65N-E5 doesn't get ACK from the IoT server, it will consider the message doesn't arrive server and store it. LHT65N-E5 keeps sending messages in normal periodically. Once LHT65N-E5 gets ACK from a server, it will consider the network is ok and start to send the not-arrive message.
868 +
869 +
870 +(% style="color:#4f81bd" %)**AT Command: AT+PNACKMD**
871 +
872 +The default factory setting is 0
873 +
874 +(% border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:367px" %)
875 +|=(% style="width: 158px;" %)**Command Example**|=(% style="width: 118px;" %)**Function**|=(% style="width: 87px;" %)**Response**
876 +|(% style="width:158px" %)AT+PNACKMD=1|(% style="width:118px" %)Poll None-ACK message|(% style="width:87px" %)OK
877 +
878 +(% style="color:#4f81bd" %)**Downlink Command: 0x34**
879 +
880 +* Example: 0x3401  ~/~/  Same as AT+PNACKMD=1
881 +
466 466  = 5. Battery & How to replace =
467 467  
468 468  == 5.1 Battery Type ==
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0