@@ -94,7 +94,7 @@ const sonoffExtend = {
94
94
95
95
const tmpTime = Number ( Math . round ( Number ( ( value [ inchingTime as keyof typeof value ] * 2 ) . toFixed ( 1 ) ) ) . toFixed ( 1 ) ) ;
96
96
97
- const payloadValue = [ ] ;
97
+ const payloadValue : Uint8Array = new Uint8Array ( 11 ) ;
98
98
payloadValue [ 0 ] = 0x01 ; // Cmd
99
99
payloadValue [ 1 ] = 0x17 ; // SubCmd
100
100
payloadValue [ 2 ] = 0x07 ; // Length
@@ -110,8 +110,8 @@ const sonoffExtend = {
110
110
111
111
payloadValue [ 5 ] = 0x00 ; // Channel
112
112
113
- payloadValue [ 6 ] = tmpTime ; // Timeout
114
- payloadValue [ 7 ] = tmpTime >> 8 ;
113
+ payloadValue [ 6 ] = tmpTime & 0xff ; // Timeout
114
+ payloadValue [ 7 ] = ( tmpTime >> 8 ) & 0xff ;
115
115
116
116
payloadValue [ 8 ] = 0x00 ; // Reserve
117
117
payloadValue [ 9 ] = 0x00 ;
@@ -338,20 +338,21 @@ const sonoffExtend = {
338
338
const irrigationInterval : string = 'irrigation_interval' ;
339
339
// logger.debug(`to zigbee cyclic_timed_irrigation ${value[irrigationInterval as keyof typeof value]}`, NS);
340
340
341
- const payloadValue = [ ] ;
341
+ // const payloadValue = [];
342
+ const payloadValue : Uint8Array = new Uint8Array ( 11 ) ;
342
343
payloadValue [ 0 ] = 0x0a ;
343
344
payloadValue [ 1 ] = 0x00 ;
344
- payloadValue [ 2 ] = value [ totalNumber as keyof typeof value ] ;
345
+ payloadValue [ 2 ] = value [ totalNumber as keyof typeof value ] & 0xff ;
345
346
346
- payloadValue [ 3 ] = value [ irrigationDuration as keyof typeof value ] >> 24 ;
347
- payloadValue [ 4 ] = value [ irrigationDuration as keyof typeof value ] >> 16 ;
348
- payloadValue [ 5 ] = value [ irrigationDuration as keyof typeof value ] >> 8 ;
349
- payloadValue [ 6 ] = value [ irrigationDuration as keyof typeof value ] ;
347
+ payloadValue [ 3 ] = ( value [ irrigationDuration as keyof typeof value ] >> 24 ) & 0xff ;
348
+ payloadValue [ 4 ] = ( value [ irrigationDuration as keyof typeof value ] >> 16 ) & 0xff ;
349
+ payloadValue [ 5 ] = ( value [ irrigationDuration as keyof typeof value ] >> 8 ) & 0xff ;
350
+ payloadValue [ 6 ] = value [ irrigationDuration as keyof typeof value ] & 0xff ;
350
351
351
- payloadValue [ 7 ] = value [ irrigationInterval as keyof typeof value ] >> 24 ;
352
- payloadValue [ 8 ] = value [ irrigationInterval as keyof typeof value ] >> 16 ;
353
- payloadValue [ 9 ] = value [ irrigationInterval as keyof typeof value ] >> 8 ;
354
- payloadValue [ 10 ] = value [ irrigationInterval as keyof typeof value ] ;
352
+ payloadValue [ 7 ] = ( value [ irrigationInterval as keyof typeof value ] >> 24 ) & 0xff ;
353
+ payloadValue [ 8 ] = ( value [ irrigationInterval as keyof typeof value ] >> 16 ) & 0xff ;
354
+ payloadValue [ 9 ] = ( value [ irrigationInterval as keyof typeof value ] >> 8 ) & 0xff ;
355
+ payloadValue [ 10 ] = value [ irrigationInterval as keyof typeof value ] & 0xff ;
355
356
356
357
const payload = { [ 0x5008 ] : { value : payloadValue , type : 0x42 } } ;
357
358
await entity . write ( 'customClusterEwelink' , payload , defaultResponseOptions ) ;
@@ -449,20 +450,20 @@ const sonoffExtend = {
449
450
const irrigationInterval : string = 'irrigation_interval' ;
450
451
// logger.debug(`to zigbee cyclic_Quantitative_irrigation ${value[irrigationInterval as keyof typeof value]}`, NS);
451
452
452
- const payloadValue = [ ] ;
453
+ const payloadValue : Uint8Array = new Uint8Array ( 11 ) ;
453
454
payloadValue [ 0 ] = 0x0a ;
454
455
payloadValue [ 1 ] = 0x00 ;
455
- payloadValue [ 2 ] = value [ totalNumber as keyof typeof value ] ;
456
+ payloadValue [ 2 ] = value [ totalNumber as keyof typeof value ] & 0xff ;
456
457
457
- payloadValue [ 3 ] = value [ irrigationCapacity as keyof typeof value ] >> 24 ;
458
- payloadValue [ 4 ] = value [ irrigationCapacity as keyof typeof value ] >> 16 ;
459
- payloadValue [ 5 ] = value [ irrigationCapacity as keyof typeof value ] >> 8 ;
460
- payloadValue [ 6 ] = value [ irrigationCapacity as keyof typeof value ] ;
458
+ payloadValue [ 3 ] = ( value [ irrigationCapacity as keyof typeof value ] >> 24 ) & 0xff ;
459
+ payloadValue [ 4 ] = ( value [ irrigationCapacity as keyof typeof value ] >> 16 ) & 0xff ;
460
+ payloadValue [ 5 ] = ( value [ irrigationCapacity as keyof typeof value ] >> 8 ) & 0xff ;
461
+ payloadValue [ 6 ] = value [ irrigationCapacity as keyof typeof value ] & 0xff ;
461
462
462
- payloadValue [ 7 ] = value [ irrigationInterval as keyof typeof value ] >> 24 ;
463
- payloadValue [ 8 ] = value [ irrigationInterval as keyof typeof value ] >> 16 ;
464
- payloadValue [ 9 ] = value [ irrigationInterval as keyof typeof value ] >> 8 ;
465
- payloadValue [ 10 ] = value [ irrigationInterval as keyof typeof value ] ;
463
+ payloadValue [ 7 ] = ( value [ irrigationInterval as keyof typeof value ] >> 24 ) & 0xff ;
464
+ payloadValue [ 8 ] = ( value [ irrigationInterval as keyof typeof value ] >> 16 ) & 0xff ;
465
+ payloadValue [ 9 ] = ( value [ irrigationInterval as keyof typeof value ] >> 8 ) & 0xff ;
466
+ payloadValue [ 10 ] = value [ irrigationInterval as keyof typeof value ] & 0xff ;
466
467
467
468
const payload = { [ 0x5009 ] : { value : payloadValue , type : 0x42 } } ;
468
469
await entity . write ( 'customClusterEwelink' , payload , defaultResponseOptions ) ;
0 commit comments