Show last authors
1 (% style="text-align:center" %)
2 [[image:1652856952171-363.png]]
3
4
5
6
7
8 **Table of Contents:**
9
10 {{toc/}}
11
12
13
14 = 1. Introduction =
15
16
17 == 1.1 What is CPL01 LoRaWAN Pulse/Contact Sensor ==
18
19 (((
20
21
22 The Dragino CPL01 is a (% style="color:blue" %)**LoRaWAN Contact Sensor**(%%). It detects open/close status and uplink to IoT server via LoRaWAN network. user can see the dry contact status, open time, open counts in the IoT Server.
23 )))
24
25 (((
26 CPL01 is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), It is designed for long term use up to 10 years. (Actually Battery life depends on the use environment, update period.)
27 )))
28
29 (((
30 The CPL01 will send periodically data every day as well as for each dry contact action. It also counts the contact open times and calculate last open duration. User can also disable the uplink for each open/close event, instead, device can count each open event and uplink periodically.
31 )))
32
33 (((
34 CPL01 has the open alarm feature, user can set this feature so device will send Alarm if the contact has been open for a certain time.
35 )))
36
37 (((
38 CPL01 is designed for outdoor use. It has a weatherproof enclosure and industrial level battery to work in low to high temperatures.
39 )))
40
41 (((
42 Each CPL01 is pre-load with a set of unique keys for LoRaWAN registration, register these keys to LoRaWAN server and it will auto connect after power on.
43 )))
44
45 (((
46 *Battery life depends on how often to send data, please see [[battery analyzer>>||anchor="H4.Battery26howtoreplace"]].
47 )))
48
49
50
51 == 1.2 Features ==
52
53
54 * LoRaWAN v1.0.3 Class A protocol.
55 * Frequency Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865/RU864
56 * Open/Close detect
57 * Open/Close statistics
58 * 8500mAh industrial battery(none-rechargeable)
59 * AT Commands to change parameters
60 * Uplink on periodically and open/close event
61 * Datalog feature
62 * Remote configure parameters via LoRa Downlink
63 * Firmware upgradable via program port
64 * Wall Mountable
65 * Outdoor Use
66
67
68
69 == 1.3 Installation ==
70
71
72 Connect CPL01 to an Open Close sensor like below. So it can detect the open/close event.
73
74
75 [[image:1652857419839-473.png||height="435" width="482"]]
76
77
78 [[image:image-20221117175638-1.png||height="282" width="750"]]
79
80
81
82 == 1.4 Storage & Operation Temperature ==
83
84
85 -40°C to +85°C
86
87
88
89 == 1.5 Applications ==
90
91
92 (% class="wikigeneratedid" %)
93 (% style="display:none" %)
94
95 * Open/Close Detection
96 * Pulse meter application
97 * Dry Contact Detection
98
99
100
101 == 1.6 Mechanical ==
102
103
104 [[image:1652857762997-798.png]]
105
106
107 [[image:1652857791347-991.png]]
108
109
110
111 == 1.7 Pin Definitions and Switch ==
112
113
114 [[image:1652857867227-591.png||height="374" width="727"]]
115
116
117
118 === 1.7.1 Pin Definition ===
119
120
121 CPL01 is pre-configured to connect to two external wires. The other pins are not used. If user wants to know more about other pins, please refer to the user manual of LSN50v2 at: [[https:~~/~~/www.dropbox.com/sh/djkxs7mr17y94mi/AABVlWbM9uzK9OA3mXyAT10Za?dl=0>>https://www.dropbox.com/sh/djkxs7mr17y94mi/AABVlWbM9uzK9OA3mXyAT10Za?dl=0]]
122
123
124
125 === 1.7.2 Jumper JP2(Power ON/OFF) ===
126
127
128 Power on Device when putting this jumper.
129
130
131
132 === 1.7.3 BOOT MODE / SW1 ===
133
134
135 (((
136 1) ISP: upgrade mode, device won't have any signal in this mode. but ready for upgrade firmware. LED won't work. Firmware won't run.
137 )))
138
139 (((
140 2) Flash: work mode, the device starts to work and send out console output for further debug
141 )))
142
143
144
145 === 1.7.4 Reset Button ===
146
147
148 Press to reboot the device.
149
150
151
152 === 1.7.5 LED ===
153
154
155 It will flash:
156
157 1. Boot the device in flash mode
158 1. Send an uplink packet
159
160
161
162 = 2. Operation Mode =
163
164
165 == 2.1 How it works? ==
166
167
168 (((
169 Each CPL01 is shipped with a worldwide unique set of OTAA keys. To use CPL01 in a LoRaWAN network, user needs to input the OTAA keys in the LoRaWAN network server. So CPL01 can join the LoRaWAN network and start to transmit sensor data.
170 )))
171
172
173
174 == 2.2 Example to use for LoRaWAN network ==
175
176
177 This section shows an example of how to join the TTN V3 LoRaWAN IoT server. Usages with other LoRaWAN IoT servers are similar.
178
179
180 [[image:1652858412212-334.png||height="327" width="723"]]
181
182
183 * (((
184 In this use case, the CPL01 is connect to a dry contact sensor to detect the open/close event and send the status to the LoRaWAN server. The CPL01 will uplink different types of messages to the LoRaWAN server. See [[Uplink payload>>||anchor="H2.3UplinkPayload"]] for detail.
185 )))
186
187 (((
188 Assume the DLOS8 is already set to connect to the [[TTN V3 network >>url:https://eu1.cloud.thethings.network]]. We need to add the CPL01 device in TTN V3:
189
190
191 )))
192
193 (((
194 (% style="color:blue" %)**Step 1**(%%): Create a device in TTN V3 with the OTAA keys from CPL01.
195 )))
196
197 (((
198 Each CPL01 is shipped with a sticker with the default device EUI as below:
199 )))
200
201 [[image:1652858451221-297.png]]
202
203
204 Users can enter these keys in the LoRaWAN Server portal. Below is the TTN V3 screenshot:
205
206 Add APP EUI in the application.
207
208 [[image:1652858478050-325.png]]
209
210
211 [[image:1652858498638-881.png||height="327" width="727"]]
212
213
214 [[image:1652858507748-628.png]]
215
216 [[image:1652858520534-791.png]]
217
218
219 Add APP KEY and DEV EUI
220
221
222
223 (% style="color:blue" %)**Step 2**(%%): Power on CPL01
224
225
226 [[image:1652858584749-726.png]]
227
228
229
230 (((
231 Put the jumper to power on CPL01 and it will auto-join to the TTN V3 network. After join success, it will start to upload sensor data to TTN V3 and the user can see it in the panel.
232 )))
233
234 [[image:1652858597931-989.png||height="322" width="721"]]
235
236
237
238 == 2.3 Uplink Payload ==
239
240
241 (((
242 Uplink payloads have two types:
243 )))
244
245 * (((
246 Open/Close Status: Use FPORT=2
247 )))
248 * (((
249 Other control commands: Use other FPORT fields.
250 )))
251
252 (((
253 The application server should parse the correct value based on FPORT settings.
254 )))
255
256
257
258 === 2.3.1 Device Status, FPORT~=5 ===
259
260
261 (((
262 Include device configure status. Once CPL01 Joined the network, it will uplink this message to the server. After that, CPL01 will uplink Device Status every 12 hours.
263 )))
264
265 (((
266 Users can also use the downlink command(0x26 01) to ask CPL01 to resend this uplink. This uplink payload also includes the DeviceTimeReq to get time.
267
268 [[image:image-20220609150022-3.png]]
269 )))
270
271
272 Example parse in TTNv3
273
274 [[image:1652859749264-179.png||height="275" width="723"]]
275
276
277 * (((
278 (% style="color:#037691" %)** Sensor Model**(%%): For CPL01, this value is 0x0E
279 )))
280
281 * (((
282 (% style="color:#037691" %)** Firmware Version**(%%): 0x0100, Means: v1.0.0 version
283 )))
284
285 * (((
286 (% style="color:#037691" %)** Frequency Band**:
287 )))
288
289 (% class="box" %)
290 (((
291 *0x01: EU868
292 *0x02: US915
293 *0x03: IN865
294 *0x04: AU915
295 *0x05: KZ865
296 *0x06: RU864
297 *0x07: AS923
298 *0x08: AS923-1
299 *0x09: AS923-2
300 *0x0a: AS923-3
301 *0x0b: CN470
302 *0x0c: EU433
303 *0x0d: KR920
304 *0x0e: MA869
305 )))
306
307 * (((
308 (((
309 (% style="color:#037691" %)** Sub-Band**:
310 )))
311
312 * (((
313 AU915 and US915:value 0x00 ~~ 0x08
314 )))
315 * (((
316 CN470: value 0x0B ~~ 0x0C
317 )))
318 * (((
319 Other Bands: Always 0x00
320 )))
321 )))
322
323 * (((
324 (% style="color:#037691" %)** Battery Info:**
325 )))
326
327 (((
328 Check the battery voltage.
329 )))
330
331 (((
332 (% style="color:blue" %)** Ex1**(%%): 0x0B45 = 2885mV
333 )))
334
335 (((
336 (% style="color:blue" %)** Ex2**(%%): 0x0B49 = 2889mV
337 )))
338
339
340
341 === 2.3.2 Sensor Configuration, FPORT~=4 ===
342
343
344 CPL01 will only send this command after getting the downlink command (0x26 02) from the server.
345
346 [[image:image-20220609150109-4.png]]
347
348
349 * (((
350 (% style="color:#037691" %)** TDC: (default: 0x001C20)**
351 )))
352
353 (((
354 Uplink interval for the total pulse count, default value is 0x001C20 which is 7200 seconds = 2 hours.
355
356
357 )))
358
359 * (((
360 (% style="color:#037691" %)** Disalarm: (default: 0)**
361 )))
362
363 (((
364 (% style="color:blue" %)** If Disalarm = 1**(%%), CPL01 will only send uplink at every TDC periodically. This is normally use for pulse meter application, in this application, there are many disconnect/connect event, and platform only care about the total number of pulse.
365 )))
366
367 (((
368 (% style="color:blue" %)** If Disalarm = 0**(%%), CPL01 will send uplink at every TDC periodically.
369
370
371 )))
372
373 * (((
374 (% style="color:#037691" %)** Keep Status & Keep Time**
375 )))
376
377 (((
378 Shows the configure value of [[Alarm Base on Timeout Feature>>||anchor="H3.5AlarmBaseonTimeout"]]
379
380
381 )))
382
383 * (((
384 (% style="color:#037691" %)** Trigger mode (default: 0)**
385 )))
386
387 (((
388 (% style="color:blue" %)** If Trigger mode = 0**(%%), count close to open event.
389 )))
390
391 (((
392 (% style="color:blue" %)** If Trigger mode = 1**(%%), count open to close event.
393 )))
394
395 [[image:1652860064987-743.png||height="152" width="730"]]
396
397
398 [[image:1652860079526-831.png||height="209" width="729"]]
399
400
401
402 === 2.3.3 Real-Time Open/Close Status, Uplink FPORT~=2 ===
403
404
405 (((
406 (((
407 CPL01 will send this uplink **after** Device Status once join the LoRaWAN network successfully. And CPL01 will:
408 )))
409 )))
410
411 (((
412 (((
413 periodically send this uplink every 2 hours, this interval [[can be changed>>||anchor="H3.1SetTransmitIntervalTime"]].
414 )))
415 )))
416
417 (((
418 (((
419 Uplink Payload totals 11 bytes.
420 )))
421 )))
422
423 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %)
424 |=(% colspan="5" style="width: 723px;" %)**Real-Time Open/Close Status, FPORT=2**
425 |(% style="width:101px" %)**Size (bytes)**|(% style="width:133px" %)**1**|(% style="width:92px" %)**3**|(% style="width:247px" %)**3**|(% style="width:149px" %)**4**
426 |(% style="width:101px" %)**Value**|(% style="width:133px" %)Status & [[Alarm>>||anchor="H3.5AlarmBaseonTimeout"]]|(% style="width:92px" %)Total pulse|(% style="width:247px" %)The last open duration (unit: min)|(% style="width:149px" %)[[Unix TimeStamp>>||anchor="H2.4.1UnixTimeStamp"]]
427
428 [[image:image-20220609150155-5.png]]
429
430
431 * (((
432 (% style="color:#037691" %)** Calculate Flag**
433 )))
434
435 (((
436 The calculate flag is a user define field, IoT server can use this filed to handle different meter with different pulse factor. For example, if there are 100 water meters, meter 1 ~~50 are 1 liter/pulse and meter 51 ~~ 100 has 1.5 liter/pulse.
437 )))
438
439 (((
440 User can set calculate flag to 1 for meter 1~~50 and 2 for meter 51 ~~ 100, So IoT Server can use this field for calculation.
441 )))
442
443 (((
444 Default value: 0. 
445 )))
446
447 (((
448 Range (6 bits): (b)000000 ~~ (b) 111111
449 )))
450
451 (((
452 Refer: [[Set Calculate Flag>>||anchor="H3.9Setthecalculateflag"]]
453
454
455 )))
456
457 * (((
458 (% style="color:#037691" %)** Alarm**
459 )))
460
461 (((
462 See [[Alarm Base on Timeout>>||anchor="H3.5AlarmBaseonTimeout"]]
463
464
465 )))
466
467 * (((
468 (% style="color:#037691" %)** Contact Status**
469 )))
470
471 (((
472 0: Open
473 )))
474
475 (((
476 1: Close
477
478
479 )))
480
481 * (((
482 (% style="color:#037691" %)** Total pulse**
483 )))
484
485 (((
486 Total pulse/counting base on dry [[contact trigger event>>||anchor="H2.3.2SensorConfiguration2CFPORT3D4"]]
487 )))
488
489 (((
490 Range (3 Bytes) : 0x000000 ~~ 0xFFFFFF . Max: 16777215
491
492
493 )))
494
495 * (((
496 (% style="color:#037691" %)** The last open duration**
497 )))
498
499 (((
500 Dry Contact last open duration.
501 )))
502
503 (((
504 Unit: min.
505 )))
506
507 [[image:1652860403792-491.png||height="153" width="735"]]
508
509
510 === 2.3.4 Real-Time Open/Close Status, 3 pulse mode, Uplink FPORT~=6 ( Firmware not release) ===
511
512
513 (% style="color:red" %)**Note:**
514
515 * Firmware support for this mode is not released. If users want to test, please contact Dragino support.
516 * Users need to run (% style="color:blue" %)**AT+MOD=3**(%%) to support this model after updating the firmware.
517 * This mode doesn't support Historical Events and Datalog features.
518
519 (% style="color:blue" %)**CPL03 3 Pulse Wiring:**
520
521 [[image:image-20221013153352-1.png||height="628" width="720"]]
522
523
524 (% style="color:blue" %)**Payload:**
525
526 [[image:image-20221013153352-2.png||height="167" width="1215"]]
527
528
529 (% border="1.5" cellspacing="3" style="background-color:#ffffcc; color:green; width:447px" %)
530 |(% style="width:93px" %)**Size(bytes)**|(% style="width:59px" %)**1**|(% style="width:98px" %)**3**|(% style="width:96px" %)**3**|(% style="width:94px" %)**3**
531 |(% style="width:93px" %)**Value**|(% style="width:59px" %)Status|(% style="width:98px" %)(((
532 Port1 Total Pulse(PB14)
533 )))|(% style="width:96px" %)(((
534 Port2 Total Pulse(PB15)
535 )))|(% style="width:94px" %)(((
536 Port3 Total Pulse(PA4)
537 )))
538
539 (% style="color:blue" %)**Status:**
540
541 (% border="1.5" cellspacing="3" style="background-color:#ffffcc; color:green; width:257px" %)
542 |(% style="width:75px" %)**Size(bit)**|(% style="width:111px" %)**6**|(% style="width:68px" %)**2**
543 |(% style="width:75px" %)**Value**|(% style="width:111px" %)Calculate Flag|(% style="width:68px" %)Reserve
544
545 (% style="color:red" %)**Max COUNT for each port is 16777215. Exceed this number will reset to 1.**
546
547
548 (% style="color:blue" %)**Related AT Command:**
549
550 (% style="color:#037691" %)**AT+TTRMOD1:  Port1 count mode;  0: Signal falling edge(Default), 1: Signal raising edge**
551
552 AT+TTRMOD1=0  Downlink Command: 0xA4 01 00
553
554 AT+TTRMOD1=1  Downlink Command: 0xA4 01 01
555
556
557 (% style="color:#037691" %)**AT+TTRMOD2:  Port2 count mode;  0: Signal falling edge(Default), 1: Signal raising edge**
558
559 AT+TTRMOD1=0  Downlink Command: 0xA4 02 00
560
561 AT+TTRMOD1=1  Downlink Command: 0xA4 02 01
562
563
564 (% style="color:#037691" %)**AT+TTRMOD3:  Port3 count mode;  0: Signal falling edge(Default), 1: Signal raising edge**
565
566 AT+TTRMOD1=0  Downlink Command: 0xA4 03 00
567
568 AT+TTRMOD1=1  Downlink Command: 0xA4 03 01
569
570
571 (% style="color:#037691" %)**AT+CALCFLAG:  Calculate Flag ( Default : 0 )**
572
573 AT+CALCFLAG=aa
574
575
576 (% style="color:blue" %)**Downlink Command: 0xA5 aa**
577
578 (% style="color:#037691" %)**AT+COUNTMOD:  Accumulative Mode;  0: Accumulative (Default),1: Reset after uplink.**
579
580 AT+COUNTMOD=0 Downlink Command: 0x0B 00
581
582 AT+COUNTMOD=1 Downlink Command: 0x0B 01
583
584
585 (% style="color:#037691" %)**AT+SETCNT:  Set count value**
586
587 AT+SETCNT=1,aa  Downlink Command: 0xA6 01 aa aa aa
588
589 AT+SETCNT=2,aa  Downlink Command: 0xA6 02 aa aa aa
590
591 AT+SETCNT=3,aa  Downlink Command: 0xA6 03 aa aa aa
592
593
594 (% style="color:blue" %)**Decode:**
595
596 function Decoder(bytes, port) {
597
598 if(port==0x05)
599
600 {
601
602 var sub_band;
603
604 var freq_band;
605
606 var sensor;
607
608
609 if(bytes[0]==0x0F)
610
611 sensor= "CPL03";
612
613
614 if(bytes[4]==0xff)
615
616 sub_band="NULL";
617
618 else
619
620 sub_band=bytes[4];
621
622
623 if(bytes[3]==0x01)
624
625 freq_band="EU868";
626
627 else if(bytes[3]==0x02)
628
629 freq_band="US915";
630
631 else if(bytes[3]==0x03)
632
633 freq_band="IN865";
634
635 else if(bytes[3]==0x04)
636
637 freq_band="AU915";
638
639 else if(bytes[3]==0x05)
640
641 freq_band="KZ865";
642
643 else if(bytes[3]==0x06)
644
645 freq_band="RU864";
646
647 else if(bytes[3]==0x07)
648
649 freq_band="AS923";
650
651 else if(bytes[3]==0x08)
652
653 freq_band="AS923_1";
654
655 else if(bytes[3]==0x09)
656
657 freq_band="AS923_2";
658
659 else if(bytes[3]==0x0A)
660
661 freq_band="AS923_3";
662
663 else if(bytes[3]==0x0B)
664
665 freq_band="CN470";
666
667 else if(bytes[3]==0x0C)
668
669 freq_band="EU433";
670
671 else if(bytes[3]==0x0D)
672
673 freq_band="KR920";
674
675 else if(bytes[3]==0x0E)
676
677 freq_band="MA869";
678
679
680 var firm_ver= (bytes[1]&0x0f)+'.'+(bytes[2]>>4&0x0f)+'.'+(bytes[2]&0x0f);
681
682 var bat= (bytes[5]<<8 | bytes[6])/1000;
683
684
685 return {
686
687 SENSOR_MODEL:sensor,
688
689 FIRMWARE_VERSION:firm_ver,
690
691 FREQUENCY_BAND:freq_band,
692
693 SUB_BAND:sub_band,
694
695 BAT:bat,
696
697 };
698
699 }
700
701 else
702
703 {
704
705 var calculate_flag=(bytes[0]&0xFC)>>2;
706
707 var total_pulse1=bytes[1]<<16 | bytes[2]<<8 | bytes[3];
708
709 var total_pulse2=bytes[4]<<16 | bytes[5]<<8 | bytes[6];
710
711 var total_pulse3=bytes[7]<<16 | bytes[8]<<8 | bytes[9];
712
713
714 if(bytes.length==10)
715
716 {
717
718 return {
719
720 CALCULATE_FLAG:calculate_flag,
721
722 PORT1_TOTAL_PULSE:total_pulse1,
723
724 PORT2_TOTAL_PULSE:total_pulse2,
725
726 PORT3_TOTAL_PULSE:total_pulse3,    
727
728 };
729
730 }
731
732 }
733
734 }
735
736
737
738 === 2.3.5 Historical Door Open/Close Event, FPORT~=3 ===
739
740
741 (((
742 CPL01 stores sensor values and users can retrieve these history values via the [[downlink command>>||anchor="H2.4DatalogFeature"]].
743 )))
744
745 (((
746 The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time open/close status.
747 )))
748
749 * (((
750 Each data entry is 11 bytes and has the same structure as [[Real-Time open/close status>>||anchor="H2.3.3Real-TimeOpen2FCloseStatus2CUplinkFPORT3D2"]], to save airtime and battery, CPL01 will send max bytes according to the current DR and Frequency bands.
751 )))
752
753 (((
754 For example, in the US915 band, the max payload for different DR is:
755 )))
756
757 (((
758 a) (% style="color:blue" %)**DR0**(%%): max is 11 bytes so one entry of data
759 )))
760
761 (((
762 b) (% style="color:blue" %)**DR1**(%%): max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
763 )))
764
765 (((
766 c) (% style="color:blue" %)**DR2**(%%): total payload includes 11 entries of data
767 )))
768
769 (((
770 d) (% style="color:blue" %)**DR3**(%%): total payload includes 22 entries of data.
771 )))
772
773 (((
774 If CPL01 doesn't have any data in the polling time. It will uplink 11 bytes of 0
775
776
777 )))
778
779 (% style="color:blue" %)** Downlink:**
780
781 (% class="box" %)
782 (((
783 **0x31 61 E9 3A D4 61 E9 3D E0 05**
784 )))
785
786 [[image:1652861353248-624.png||height="189" width="720"]]
787
788
789 (% style="color:blue" %)** Uplink:**
790
791 (% class="box" %)
792 (((
793 **0E 00 23 E6 00 00 00 61 E9 3B 04 0E 00 23 E6 00 00 00 61 E9 3B 25 0D 00 00 00 00 00 00 61 E9 3B C8 0E 00 00 02 00 00 00 61 E9 3B D4 0E 00 00 06 00 00 00 61 E9 3B DB 01 00 00 00 00 00 00 61 E9 3C 91 01 00 00 00 00 00 00 61 E9 3C A1 0D 00 00 00 00 00 00 61 E9 3C BC 0E 00 00 07 00 00 00 61 E9 3C D6 00 00 00 00 00 00 00 61 E9 3D A6**
794 )))
795
796 (% style="color:#037691" %)** **
797
798 (% style="color:#037691" %)**Parsed Value:**
799
800 (((
801 [ALARM, PIN_STATUS, TOTAL_PULSE, CALCULATE_FLAG, LAST_OPEN_DURATION, TIME]
802 )))
803
804 (((
805
806 )))
807
808 (((
809 [TRUE, CLOSE, 9190, 3, 0, 2022-01-20 10:35:48],
810 )))
811
812 (((
813 [TRUE, CLOSE, 9190, 3, 0, 2022-01-20 10:36:21],
814 )))
815
816 (((
817 [FALSE, OPEN, 0, 3, 0, 2022-01-20 10:39:04],
818 )))
819
820 (((
821 [TRUE, CLOSE, 2, 3, 0, 2022-01-20 10:39:16],
822 )))
823
824 (((
825 [TRUE, CLOSE, 6, 3, 0, 2022-01-20 10:39:23],
826 )))
827
828 (((
829 [FALSE, OPEN, 0, 0, 0, 2022-01-20 10:42:25],
830 )))
831
832 (((
833 [FALSE, OPEN, 0, 0, 0, 2022-01-20 10:42:41],
834 )))
835
836 (((
837 [FALSE, OPEN, 0, 3, 0, 2022-01-20 10:43:08],
838 )))
839
840 (((
841 [TRUE, CLOSE, 7, 3, 0, 2022-01-20 10:43:34],
842 )))
843
844 (((
845 [FALSE, CLOSE, 0, 0, 0, 2022-01-20 10:47:02],
846
847
848 )))
849
850 [[image:1652861480446-216.png]]
851
852
853
854 == 2.4 Datalog Feature ==
855
856
857 When a user wants to retrieve sensor value, he can send a poll command from the IoT platform to ask the sensor to send value in the required time slot.
858
859
860
861 === 2.4.1 Unix TimeStamp ===
862
863
864 CPL01 uses Unix TimeStamp format based on
865
866 [[image:1652861618065-927.png||height="109" width="705"]]
867
868 Users can get this time from the link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
869
870 Below is the converter example
871
872 [[image:1652861637105-371.png||height="428" width="732"]]
873
874
875
876 === 2.4.2 Set Device Time ===
877
878
879 (((
880 (((
881 There are two ways to set the device's time:
882
883
884 )))
885 )))
886
887 (((
888 (((
889 (% style="color:blue" %)**1. Through LoRaWAN MAC Command (Default settings)**
890 )))
891 )))
892
893 (((
894 (((
895 Users need to set SYNCMOD=1 to enable sync time via the MAC command.
896 )))
897 )))
898
899 (((
900 (((
901 Once CPL01 Joined the LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to CPL01. If CPL01 fails to get the time from the server, CPL01 will use the internal time and wait for the next time request ~[[[via Device Status (FPORT=5)>>||anchor="H2.3.1DeviceStatus2CFPORT3D5"]]].
902
903
904 )))
905 )))
906
907 (((
908 (((
909 (% style="color:red" %)**Note: LoRaWAN Server needs to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature.**
910 )))
911
912 (((
913
914 )))
915
916 (((
917 (% style="color:blue" %)**2. Manually Set Time**
918 )))
919
920 (((
921 Users need to set SYNCMOD=0 to manual time, otherwise, the user set time will be overwritten by the time set by the server.
922 )))
923 )))
924
925
926
927 === 2.4.3 Poll sensor value ===
928
929
930 Users can poll sensor values based on timestamps. Below is the downlink command.
931
932 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:453.989px" %)
933 |=(% colspan="4" style="width: 451px;" %)**Downlink Command to poll Open/Close status (0x31)**
934 |(% style="width:59px" %)**1byte**|(% style="width:126px" %)**4bytes**|(% style="width:138px" %)**4bytes**|(% style="width:128px" %)**1byte**
935 |(% style="width:59px" %)31|(% style="width:126px" %)Timestamp start|(% style="width:138px" %)Timestamp end|(% style="width:128px" %)Uplink Interval
936
937 (((
938 Timestamp start and Timestamp end-use Unix TimeStamp format as mentioned above. Devices will reply with all data logs during this period, using the uplink interval.
939 )))
940
941 (((
942 For example, downlink command[[image:image-20220518162852-1.png]]
943 )))
944
945 (((
946 Is to check 2021/11/12 12:00:00 to 2021/11/12 15:00:00's data
947 )))
948
949 (((
950 Uplink Internal =5s,means CPL01 will send one packet every 5s. range 5~~255s.
951 )))
952
953
954
955 === 2.4.4 Decoder in TTN V3 ===
956
957
958 [[image:1652862574387-195.png||height="359" width="722"]]
959
960 (((
961 Please check the decoder from this link: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
962 )))
963
964 (((
965
966 )))
967
968
969 = 2.5 Show data on Datacake =
970
971
972 (((
973 Datacake IoT platform provides a human-friendly interface to show the sensor data, once we have sensor data in TTN V3, we can use Datacake to connect to TTN V3 and see the data in Datacake. Below are the steps:
974 )))
975
976 (((
977 (% style="color:blue" %)**Step 1**(%%): Link TTNv3 to Datacake [[https:~~/~~/docs.datacake.de/lorawan/lns/thethingsindustries#create-integration-on-tti>>url:https://docs.datacake.de/lorawan/lns/thethingsindustries#create-integration-on-tti]]
978 )))
979
980 (((
981 (% style="color:blue" %)**Step 2**(%%): Configure CPL01 in Datacake
982 )))
983
984 [[image:1652862663124-805.png]]
985
986 [[image:1652862686700-576.png]]
987
988
989
990
991 [[image:1652862716106-261.png]]
992
993 [[image:1652862734313-990.png||height="229" width="707"]]
994
995
996 [[image:1652862744310-982.png||height="380" width="715"]]
997
998
999 [[image:1652862755419-628.png||height="258" width="718"]]
1000
1001
1002 [[image:1652862763975-153.png||height="214" width="720"]]
1003
1004
1005 [[image:1652862773781-198.png||height="321" width="499"]]
1006
1007
1008 [[image:1652862794151-835.png||height="327" width="487"]]
1009
1010
1011 [[image:1652862807472-427.png||height="378" width="670"]]
1012
1013
1014
1015 = 3. Configure CPL01 via AT Command or LoRaWAN Downlink =
1016
1017
1018 (((
1019 Use can configure CPL01 via AT Command or LoRaWAN Downlink.
1020 )))
1021
1022 * (((
1023 AT Command Connection: See [[FAQ>>||anchor="H5.FAQ"]].
1024 )))
1025 * (((
1026 LoRaWAN Downlink instruction for different platforms:  [[IoT LoRaWAN Server>>doc:Main.WebHome]]
1027 )))
1028
1029 (((
1030 There are two kinds of commands to configure CPL01, they are:
1031 )))
1032
1033 * (((
1034 (% style="color:#4f81bd" %)**General Commands**.
1035 )))
1036
1037 (((
1038 These commands are to configure:
1039 )))
1040
1041 * (((
1042 General system settings like uplink interval.
1043 )))
1044 * (((
1045 LoRaWAN protocol & radio related command.
1046 )))
1047
1048 (((
1049 They are the same for all Dragino Devices which support DLWS-005 LoRaWAN Stack(Note~*~*). These commands can be found on the wiki: [[End Device AT Commands and Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]]
1050 )))
1051
1052 (((
1053
1054 )))
1055
1056 * (((
1057 (% style="color:#4f81bd" %)**Commands special design for CPL01**
1058 )))
1059
1060 (((
1061 These commands are only valid for CPL01, as below:
1062 )))
1063
1064
1065
1066 == 3.1 Set Transmit Interval Time ==
1067
1068
1069 (((
1070 Feature: Change LoRaWAN End Node Transmit Interval.
1071
1072
1073 )))
1074
1075 (((
1076 (% style="color:#4f81bd" %)**AT Command: AT+TDC**
1077 )))
1078
1079 (((
1080 [[image:image-20220609134826-1.png]]
1081 )))
1082
1083 (((
1084
1085 )))
1086
1087 (((
1088 (% style="color:#4f81bd" %)**Downlink Command: 0x01**
1089 )))
1090
1091 (((
1092 Format: Command Code (0x01) followed by 3 bytes time value.
1093 )))
1094
1095 (((
1096 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
1097 )))
1098
1099 * (((
1100 Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
1101 )))
1102 * (((
1103 Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
1104
1105
1106
1107
1108 )))
1109
1110 == 3.2 Set Password ==
1111
1112
1113 Feature: Set device password, max 9 digits
1114
1115
1116 (% style="color:#4f81bd" %)**AT Command: AT+PWORD**
1117
1118
1119 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:404.989px" %)
1120 |=(% style="width: 170px;" %)**Command Example**|=(% style="width: 123px;" %)**Function**|=(% style="width: 109px;" %)**Response**
1121 |(% style="width:170px" %)(((
1122 AT+PWORD=?
1123 )))|(% style="width:123px" %)(((
1124 Show password
1125 )))|(% style="width:109px" %)(((
1126 (((
1127 123456
1128 )))
1129
1130 (((
1131 OK
1132 )))
1133 )))
1134 |(% style="width:170px" %)(((
1135 AT+PWORD=999999
1136 )))|(% style="width:123px" %)(((
1137 Set password
1138 )))|(% style="width:109px" %)(((
1139 OK
1140 )))
1141
1142 (% style="color:#4f81bd" %)**Downlink Command:**
1143
1144 No downlink command for this feature.
1145
1146
1147
1148 == 3.3 Quit AT Command ==
1149
1150
1151 Feature: Quit AT Command mode, so user needs to input the password again before using AT Commands.
1152
1153
1154 (% style="color:#4f81bd" %)**AT Command: AT+DISAT**
1155
1156
1157 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:451.989px" %)
1158 |=(% style="width: 155px;" %)**Command Example**|=(% style="width: 198px;" %)**Function**|=(% style="width: 96px;" %)**Response**
1159 |(% style="width:155px" %)AT+DISAT|(% style="width:198px" %)Quit AT Commands mode|(% style="width:96px" %)OK
1160
1161 (% style="color:#4f81bd" %)**Downlink Command:**
1162
1163 No downlink command for this feature.
1164
1165
1166
1167 == 3.4 Enable / Disable Alarm ==
1168
1169
1170 Feature: Enable/Disable Alarm for open/close event. Default value 0.
1171
1172
1173 (% style="color:#4f81bd" %)**AT Command:**
1174
1175 (% id="cke_bm_3822S" style="display:none" %) [[image:image-20220609151041-6.png]]
1176
1177 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDS03A%20-%20Outdoor%20LoRaWAN%20OpenClose%20Door%20Sensor%20Manual/WebHome/image-20220609140712-1.png?rev=1.1||alt="image-20220609140712-1.png"]]
1178
1179
1180 (% style="color:#4f81bd" %)**Downlink Command:**
1181
1182 **0xA7 01**  ~/~/  Same As AT+DISALARM=1
1183
1184 **0xA7 00    ** ~/~/  Same As AT+DISALARM=0
1185
1186
1187 (% style="color:red" %)**Notice, This command requires setting CPL01 to LDS03A Mode first. See **(%%)**"(% style="color:blue" %)3.7 Set the sensor mode"(%%)**
1188
1189
1190
1191 == 3.5 Alarm Base on Timeout ==
1192
1193
1194 (((
1195 (((
1196 CPL01 can monitor the timeout for a status change, this feature can be used to monitor some events such as door opening too long etc. Related Parameters are:
1197
1198
1199 )))
1200 )))
1201
1202 (((
1203 (((
1204 (% style="color:#4f81bd" %)**1. Keep Status: Status to be monitor**
1205 )))
1206 )))
1207
1208 (((
1209 (((
1210 Keep Status = 1: Monitor Close to Open event
1211 )))
1212 )))
1213
1214 (((
1215 (((
1216 Keep Status = 0: Monitor Open to Close event
1217
1218
1219 )))
1220 )))
1221
1222 (((
1223 (((
1224 (% style="color:#4f81bd" %)**2. Keep Time: Timeout to send an Alarm**
1225 )))
1226 )))
1227
1228 (((
1229 (((
1230 Range 0 ~~ 65535(0xFFFF) seconds.
1231 )))
1232 )))
1233
1234 (((
1235 (((
1236 If keep time = 0, Disable Alarm Base on Timeout feature.
1237 )))
1238 )))
1239
1240 (((
1241 (((
1242 If keep time > 0, device will monitor the keep status event and send an alarm when status doesn’t change after timeout.
1243 )))
1244
1245 (((
1246
1247 )))
1248 )))
1249
1250 (((
1251 (((
1252 (% style="color:#4f81bd" %)**AT Command**(%%) to configure:
1253 )))
1254
1255 (((
1256 (% style="color:blue" %)**AT+TTRIG=1,30**(%%)  ~-~-> When the **Keep Status** change from connect to disconnect, and device remains in disconnect status for more than 30 seconds. CPL01 will send an uplink packet, the [[Alarm bit>>||anchor="H2.3.3Real-TimeOpen2FCloseStatus2CUplinkFPORT3D2"]] (the second bit of 1^^st^^ byte of payload) on this uplink packet is set to 1.
1257 )))
1258
1259 (((
1260 (% style="color:blue" %)**AT+TTIG=0,0 **(%%) ~-~-> Default Value, disable timeout Alarm.
1261 )))
1262 )))
1263
1264 (((
1265
1266 )))
1267
1268 (((
1269 (((
1270 (% style="color:#4f81bd" %)**Downlink Command**(%%) to configure:
1271 )))
1272
1273 (((
1274 **Command: 0xA9 aa bb cc**
1275 )))
1276 )))
1277
1278 (((
1279 (((
1280 A9: Command Type Code
1281 )))
1282 )))
1283
1284 (((
1285 (((
1286 aa: status to be monitored
1287 )))
1288 )))
1289
1290 (((
1291 (((
1292 bb cc: timeout.
1293 )))
1294 )))
1295
1296 (((
1297
1298 )))
1299
1300 (((
1301 (((
1302 If user send 0xA9 01 00 1E: equal to AT+TTRIG=1,30
1303 )))
1304 )))
1305
1306 (((
1307 (((
1308 Or
1309 )))
1310 )))
1311
1312 (((
1313 (((
1314 0xA9 00 00 00: Equal to AT+TTRIG=0,0. Disable timeout Alarm.
1315 )))
1316 )))
1317
1318
1319
1320 == 3.6 Clear Flash Record ==
1321
1322
1323 Feature: Clear flash storage for data log feature.
1324
1325
1326 (% style="color:#4f81bd" %)**AT Command: AT+CLRDTA**
1327
1328 [[image:image-20220609151132-7.png]]
1329
1330
1331 (((
1332 (((
1333 (% style="color:#4f81bd" %)**Downlink Command:**
1334 )))
1335
1336 (((
1337 * **Example**: 0xA301  ~/~/  Same as AT+CLRDTA
1338 )))
1339 )))
1340
1341
1342
1343
1344 == 3.7 Set the sensor mode ==
1345
1346
1347 Feature: LDS03A and CPL01 use the same firmware. User is possible to switch between this two models.
1348
1349
1350 (% style="color:#4f81bd" %)**AT Command: AT+MOD**
1351
1352 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:443.222px" %)
1353 |=(% style="width: 156px;" %)**Command Example**|=(% style="width: 195px;" %)**Function**|=(% style="width: 88px;" %)**Response**
1354 |(% style="width:156px" %)AT+MOD =1|(% style="width:195px" %)Set the sensor to LDS03A.|(% style="width:88px" %)OK
1355 |(% style="width:156px" %)AT+MOD=2|(% style="width:195px" %)Set the sensor to CPL01.|(% style="width:88px" %)OK
1356
1357 (% style="color:#4f81bd" %)**Downlink Command:**
1358
1359 * **Example**: 0x0A02  ~/~/  Same as AT+MOD=2
1360
1361
1362
1363 == 3.8 Set trigger mode ==
1364
1365
1366 Feature: Set the trigger interrupt mode.
1367
1368
1369 (% style="color:#4f81bd" %)**AT Command: AT+TTRMOD**
1370
1371 [[image:image-20220609151344-9.png]]
1372
1373
1374 (% style="color:#4f81bd" %)**Downlink Command:**
1375
1376 * **Example**: 0xA401  ~/~/  Same as AT+ TTRMOD =1
1377
1378
1379
1380 == 3.9 Set the calculate flag ==
1381
1382
1383 Feature: Set the calculate flag
1384
1385
1386 (% style="color:#4f81bd" %)**AT Command: AT+CALCFLAG**
1387
1388 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:461.222px" %)
1389 |=(% style="width: 158px;" %)**Command Example**|=(% style="width: 192px;" %)**Function**|=(% style="width: 109px;" %)**Response**
1390 |(% style="width:158px" %)AT+CALCFLAG =1|(% style="width:192px" %)Set the calculate flag to 1.|(% style="width:109px" %)OK
1391 |(% style="width:158px" %)AT+CALCFLAG =2|(% style="width:192px" %)Set the calculate flag to 2.|(% style="width:109px" %)OK
1392
1393 (% style="color:#4f81bd" %)**Downlink Command:**
1394
1395 * **Example**: 0XA501  ~/~/  Same as AT+CALCFLAG =1
1396
1397
1398
1399 == 3.10 Set count number ==
1400
1401
1402 Feature: Manually set the count number
1403
1404
1405 (% style="color:#4f81bd" %)**AT Command: AT+SETCNT**
1406
1407 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:479.989px" %)
1408 |=(% style="width: 160px;" %)**Command Example**|=(% style="width: 221px;" %)**Function**|=(% style="width: 95px;" %)**Response**
1409 |(% style="width:160px" %)AT+ SETCNT =0|(% style="width:221px" %)Set the count number to 0.|(% style="width:95px" %)OK
1410 |(% style="width:160px" %)AT+ SETCNT =100|(% style="width:221px" %)Set the count number to 100.|(% style="width:95px" %)OK
1411
1412 (% style="color:#4f81bd" %)**Downlink Command:**
1413
1414 1. **Example**: 0xA6000001  ~/~/  Same as AT+ SETCNT =1
1415 1. **Example**: 0xA6000064  ~/~/  Same as AT+ SETCNT =100
1416
1417
1418
1419 = 4. Battery & how to replace =
1420
1421
1422 == 4.1 Battery Info ==
1423
1424
1425 CPL01 is equipped with a [[8500mAH ER18505 Li-SOCI2 battery>>url:https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]]. The battery is an un-rechargeable battery with a low discharge rate targeting 8~~10 years of use. This type of battery is commonly used in IoT targets for long-term running, such as water meters.
1426
1427 (((
1428 The battery-related documents are as below:
1429 )))
1430
1431 * (((
1432 [[Battery Dimension>>https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/]],
1433 )))
1434 * (((
1435 [[Lithium-Thionyl Chloride Battery  datasheet>>https://www.dragino.com/downloads/downloads/datasheet/Battery/ER26500/ER26500_Datasheet-EN.pdf]],
1436 )))
1437 * (((
1438 [[Lithium-ion Battery-Capacitor datasheet>>https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/]], [[Tech Spec>>https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/]]
1439 )))
1440
1441 (((
1442 The discharge curve is not linear so can’t simply use percentage to show the battery level. Below is the battery performance.
1443
1444
1445 [[image:1652864571107-510.png]]
1446
1447
1448 )))
1449
1450 (((
1451 Minimum Working Voltage for the CPL01:
1452 )))
1453
1454 (((
1455 CPL01:  2.45v ~~ 3.6v
1456 )))
1457
1458
1459
1460 === 4.1.1 ​Battery Note ===
1461
1462
1463 (((
1464 The Li-SICO battery is designed for small current / long period applications. It is not good to use a high current, short period transmit method. The recommended minimum period for use of this battery is 5 minutes. If you use a shorter period to transmit LoRa, then the battery life may be decreased.
1465 )))
1466
1467
1468
1469 == 4.2 Replace Battery ==
1470
1471
1472 (((
1473 (((
1474 Any battery with a range of 2.45 ~~ 3.6v can be a replacement. We recommend using Li-SOCl2 Battery.
1475 )))
1476 )))
1477
1478 (((
1479 (((
1480 And make sure the positive and negative pins match.
1481 )))
1482 )))
1483
1484 [[image:image-20220518170657-2.png]]
1485
1486
1487
1488 == 4.3 Battery Life Analyze ==
1489
1490
1491 (((
1492 (((
1493 Dragino battery powered products are all run in Low Power mode. User can check the guideline from this link to calculate the estimate battery life:
1494 )))
1495 )))
1496
1497 (((
1498 (((
1499 [[https:~~/~~/www.dragino.com/downloads/downloads/LoRa_End_Node/Battery_Analyze/DRAGINO_Battery_Life_Guide.pdf>>url:https://www.dragino.com/downloads/downloads/LoRa_End_Node/Battery_Analyze/DRAGINO_Battery_Life_Guide.pdf]]
1500 )))
1501 )))
1502
1503
1504
1505 = 5. FAQ =
1506
1507
1508 == 5.1 How to use AT Command to configure CPL01 ==
1509
1510
1511 CPL01 UART connection photo
1512
1513 [[image:1652864909750-855.png||height="356" width="728"]]
1514
1515
1516 (((
1517 In the PC, you need to set the serial baud rate to (% style="color:green" %)**9600**(%%) to access the serial console for LSN50. LSN50 will output system info once power on as below:
1518 )))
1519
1520 [[image:1652864915792-686.png||height="508" width="726"]]
1521
1522
1523
1524 == 5.2 How to upgrade the firmware? ==
1525
1526
1527 (((
1528 (((
1529 A new firmware might be available for:
1530 )))
1531 )))
1532
1533 * (((
1534 (((
1535 Support new features
1536 )))
1537 )))
1538 * (((
1539 (((
1540 For bug fix
1541 )))
1542 )))
1543 * (((
1544 (((
1545 Change LoRaWAN bands.
1546 )))
1547 )))
1548
1549 (((
1550 (((
1551 Instruction for how to upgrade: [[Firmware Upgrade Instruction>>doc:Main.Firmware Upgrade Instruction for STM32 base products.WebHome||anchor="H2.HardwareUpgradeMethodSupportList"]]
1552 )))
1553 )))
1554
1555 (((
1556 (((
1557 Firmware location: (**​​(% style="color:red" %)same firmware as LDS03A(%%)**)[[https:~~/~~/www.dropbox.com/sh/x9rpz9ftyljg135/AAAhC5hqtQOAw9_AoEEZbl9Ca?dl=0>>https://www.dropbox.com/sh/x9rpz9ftyljg135/AAAhC5hqtQOAw9_AoEEZbl9Ca?dl=0]]
1558 )))
1559 )))
1560
1561
1562
1563 == 5.3 How to change the LoRa Frequency Bands/Region? ==
1564
1565
1566 Users can follow the introduction for how to upgrade image. When downloading the images, choose the required image file for download.
1567
1568
1569
1570 = 6. Trouble Shooting =
1571
1572
1573 == 6.1  AT Commands input doesn't work ==
1574
1575
1576 In the case if user can see the console output but can't type input to the device. Please check if you already include the (% style="color:green" %)**ENTER**(%%) while sending out the command. Some serial tool doesn't send (% style="color:green" %)**ENTER**(%%) while press the send key, user need to add ENTER in their string.
1577
1578
1579
1580 = 7. Order Info =
1581
1582
1583 (((
1584 (((
1585 Part Number: (% style="color:#4f81bd" %)**CPL01-XX**
1586 )))
1587 )))
1588
1589 (((
1590 (((
1591 (% style="color:#4f81bd" %)**XX**(%%): The default frequency band
1592 )))
1593 )))
1594
1595 * (((
1596 (% style="color:red" %)**AS923 **(%%)**:** LoRaWAN AS923 band
1597 )))
1598 * (((
1599 (% style="color:red" %)**AU915 **(%%)**: **LoRaWAN AU915 band
1600 )))
1601 * (((
1602 (% style="color:red" %)**EU433 **(%%)**:** LoRaWAN EU433 band
1603 )))
1604 * (((
1605 (% style="color:red" %)**EU868 **(%%)**:** LoRaWAN EU868 band
1606 )))
1607 * (((
1608 (% style="color:red" %)**KR920 **(%%)**:** LoRaWAN KR920 band
1609 )))
1610 * (((
1611 (% style="color:red" %)**US915 **(%%)**: **LoRaWAN US915 band
1612 )))
1613 * (((
1614 (% style="color:red" %)**IN865 **(%%)**:  **LoRaWAN IN865 band
1615 )))
1616 * (((
1617 (% style="color:red" %)**CN470 **(%%)**: **LoRaWAN CN470 band
1618
1619
1620
1621
1622 )))
1623
1624 = 8. Packing Info =
1625
1626
1627 (((
1628 **Package Includes**:
1629 )))
1630
1631 * (((
1632 CPL01 Open/Close Sensor x 1
1633
1634
1635
1636
1637 )))
1638
1639 = 9. Support =
1640
1641
1642 * (((
1643 Support is provided Monday to Friday, from 09:00 to 18:00 GMT+8. Due to different timezones we cannot offer live support. However, your questions will be answered as soon as possible in the before-mentioned schedule.
1644 )))
1645 * (((
1646 Provide as much information as possible regarding your inquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[support@dragino.com>>url:file:///D:/市场资料/说明书/LoRa/LT系列/support@dragino.com]].
1647
1648
1649
1650 )))
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0