mclimate-payload-helper 1.2.13 → 1.2.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -212,24 +212,40 @@ export const Co2PirLiteEnums = {
212
212
  const GeneralCommandSchemas = {
213
213
  customHexCommand: z.object({
214
214
  command: z.string().regex(/^[0-9A-Fa-f]+$/, 'Must be a valid hex string'),
215
+ commandNumber: z.string().optional(),
215
216
  }),
216
217
  setKeepAlive: z.object({
217
218
  time: z.number().int().min(1).max(255),
219
+ commandNumber: z.string().optional().default('02'),
220
+ }),
221
+ getKeepAlive: z.object({
222
+ commandNumber: z.string().optional().default('12'),
218
223
  }),
219
- getKeepAlive: z.object({}),
220
224
  setJoinRetryPeriod: z.object({
221
225
  period: z.number().int().min(1).max(21),
226
+ commandNumber: z.string().optional().default('10'),
227
+ }),
228
+ getJoinRetryPeriod: z.object({
229
+ commandNumber: z.string().optional().default('19'),
222
230
  }),
223
- getJoinRetryPeriod: z.object({}),
224
231
  setUplinkType: z.object({
225
232
  type: z.enum(['01', '00']),
233
+ commandNumber: z.string().optional().default('11'),
234
+ }),
235
+ getUplinkType: z.object({
236
+ commandNumber: z.string().optional().default('1b'),
226
237
  }),
227
- getUplinkType: z.object({}),
228
238
  setWatchDogParams: z.object({
229
239
  confirmedUplinks: z.number().int().min(0).max(255),
230
240
  unconfirmedUplinks: z.number().int().min(0).max(255),
241
+ commandNumber: z.string().optional().default('1c'),
242
+ }),
243
+ getWatchDogParams: z.object({
244
+ commandNumber: z.string().optional().default('1d'),
245
+ }),
246
+ getRegion: z.object({
247
+ commandNumber: z.string().optional().default('a4'),
231
248
  }),
232
- getWatchDogParams: z.object({}),
233
249
  }
234
250
 
235
251
  export namespace GeneralCommandTypes {
@@ -245,8 +261,11 @@ export namespace GeneralCommandTypes {
245
261
  const ChildLockCommandSchemas = {
246
262
  setChildLock: z.object({
247
263
  enabled: z.boolean(),
264
+ commandNumber: z.string().optional().default('07'),
265
+ }),
266
+ getChildLock: z.object({
267
+ commandNumber: z.string().optional().default('14'),
248
268
  }),
249
- getChildLock: z.object({}),
250
269
  }
251
270
 
252
271
  export namespace ChildLockCommandTypes {
@@ -259,8 +278,11 @@ const TemperatureCommandSchemas = {
259
278
  setTemperatureRange: z.object({
260
279
  min: z.number().min(5).max(30),
261
280
  max: z.number().min(5).max(30),
281
+ commandNumber: z.string().optional().default('08'),
282
+ }),
283
+ getTargetTemperature: z.object({
284
+ commandNumber: z.string().optional().default('2f'),
262
285
  }),
263
- getTargetTemperature: z.object({}),
264
286
  }
265
287
 
266
288
  export namespace TemperatureCommandTypes {
@@ -272,28 +294,46 @@ export namespace TemperatureCommandTypes {
272
294
  const PIRCommandSchemas = {
273
295
  setPIRSensorStatus: z.object({
274
296
  state: z.number().min(0).max(1), // 0: disabled, 1: enabled
297
+ commandNumber: z.string().optional().default('3c'),
298
+ }),
299
+ getPIRSensorStatus: z.object({
300
+ commandNumber: z.string().optional().default('3d'),
275
301
  }),
276
- getPIRSensorStatus: z.object({}),
277
302
  setPIRSensorSensitivity: z.object({
278
303
  sensitivity: z.number().min(12).max(255),
304
+ commandNumber: z.string().optional().default('3e'),
305
+ }),
306
+ getPIRSensorSensitivity: z.object({
307
+ commandNumber: z.string().optional().default('3f'),
279
308
  }),
280
- getPIRSensorSensitivity: z.object({}),
281
309
  setPIRInitPeriod: z.object({
282
310
  time: z.number().min(0).max(255),
311
+ commandNumber: z.string().optional().default('46'),
283
312
  }),
284
313
  setPIRMeasurementPeriod: z.object({
285
314
  time: z.number().min(3).max(255),
315
+ commandNumber: z.string().optional().default('48'),
286
316
  }),
287
317
  setPIRCheckPeriod: z.object({
288
318
  time: z.number().min(0).max(65535),
319
+ commandNumber: z.string().optional().default('4a'),
289
320
  }),
290
321
  setPIRBlindPeriod: z.object({
291
322
  time: z.number().min(15).max(65535),
323
+ commandNumber: z.string().optional().default('4c'),
324
+ }),
325
+ getPIRInitPeriod: z.object({
326
+ commandNumber: z.string().optional().default('47'),
327
+ }),
328
+ getPIRMeasurementPeriod: z.object({
329
+ commandNumber: z.string().optional().default('49'),
330
+ }),
331
+ getPIRCheckPeriod: z.object({
332
+ commandNumber: z.string().optional().default('4b'),
333
+ }),
334
+ getPIRBlindPeriod: z.object({
335
+ commandNumber: z.string().optional().default('4d'),
292
336
  }),
293
- getPIRInitPeriod: z.object({}),
294
- getPIRMeasurementPeriod: z.object({}),
295
- getPIRCheckPeriod: z.object({}),
296
- getPIRBlindPeriod: z.object({}),
297
337
  }
298
338
 
299
339
  export namespace PIRCommandTypes {
@@ -310,23 +350,36 @@ export namespace PIRCommandTypes {
310
350
  const DisplayCommandSchemas = {
311
351
  setDisplayRefreshPeriod: z.object({
312
352
  period: z.number().min(1).max(24),
353
+ commandNumber: z.string().optional().default('33'),
354
+ }),
355
+ getDisplayRefreshPeriod: z.object({
356
+ commandNumber: z.string().optional().default('34'),
313
357
  }),
314
- getDisplayRefreshPeriod: z.object({}),
315
358
  setDeepSleepMode: z.object({
316
359
  state: z.number().min(1).max(1),
360
+ commandNumber: z.string().optional().default('3b'),
317
361
  }),
318
362
  setHumidityVisibility: z.object({
319
363
  state: z.number().min(0).max(1), // 0: hide, 1: show
364
+ commandNumber: z.string().optional().default('42'),
365
+ }),
366
+ getHumidityVisibility: z.object({
367
+ commandNumber: z.string().optional().default('43'),
320
368
  }),
321
- getHumidityVisibility: z.object({}),
322
369
  setLightIntensityVisibility: z.object({
323
370
  state: z.number().min(0).max(1), // 0: hide, 1: show
371
+ commandNumber: z.string().optional().default('44'),
372
+ }),
373
+ getLightIntensityVisibility: z.object({
374
+ commandNumber: z.string().optional().default('45'),
324
375
  }),
325
- getLightIntensityVisibility: z.object({}),
326
376
  setCurrentTemperatureVisibility: z.object({
327
377
  state: z.number().min(0).max(1), // 0: hide, 1: show
378
+ commandNumber: z.string().optional().default('40'),
379
+ }),
380
+ getCurrentTemperatureVisibility: z.object({
381
+ commandNumber: z.string().optional().default('41'),
328
382
  }),
329
- getCurrentTemperatureVisibility: z.object({}),
330
383
  }
331
384
 
332
385
  export namespace DisplayCommandTypes {
@@ -350,123 +403,198 @@ const VickiCommandSchemas = {
350
403
  delta: z.number().min(0).max(15),
351
404
  closeTime: z.number().min(0).max(51),
352
405
  motorPosition: z.number().int().min(0).max(800),
406
+ commandNumber: z.string().optional().default('06'),
407
+ }),
408
+ getOpenWindowParams: z.object({
409
+ commandNumber: z.string().optional().default('13'),
410
+ }),
411
+ recalibrateMotor: z.object({
412
+ commandNumber: z.string().optional().default('03'),
413
+ }),
414
+ forceClose: z.object({
415
+ commandNumber: z.string().optional().default('0b'),
353
416
  }),
354
- getOpenWindowParams: z.object({}),
355
- recalibrateMotor: z.object({}),
356
- forceClose: z.object({}),
357
417
  setInternalAlgoParams: z.object({
358
418
  period: z.number().int().min(0).max(255),
359
419
  pFirstLast: z.number().int().min(0).max(255),
360
420
  pNext: z.number().int().min(0).max(255),
421
+ commandNumber: z.string().optional().default('0c'),
422
+ }),
423
+ getInternalAlgoParams: z.object({
424
+ commandNumber: z.string().optional().default('16'),
361
425
  }),
362
- getInternalAlgoParams: z.object({}),
363
426
  setOperationalMode: z.object({
364
427
  mode: z.enum(['00', '01', '02']),
428
+ commandNumber: z.string().optional().default('0d'),
429
+ }),
430
+ getOperationalMode: z.object({
431
+ commandNumber: z.string().optional().default('18'),
365
432
  }),
366
- getOperationalMode: z.object({}),
367
433
  setTargetTemperature: z.object({
368
434
  targetTemperature: z.number().min(5).max(30),
435
+ commandNumber: z.string().optional().default('0e'),
369
436
  }),
370
437
  setExternalTemperature: z.object({
371
438
  temp: z.number().int().min(0).max(255),
439
+ commandNumber: z.string().optional().default('0f'),
440
+ }),
441
+ getExternalTemperature: z.object({
442
+ commandNumber: z.string().optional().default('44'),
372
443
  }),
373
- getExternalTemperature: z.object({}),
374
444
  setInternalAlgoTdiffParams: z.object({
375
445
  cold: z.number().int().min(0).max(255),
376
446
  warm: z.number().int().min(0).max(255),
447
+ commandNumber: z.string().optional().default('1a'),
448
+ }),
449
+ getInternalAlgoTdiffParams: z.object({
450
+ commandNumber: z.string().optional().default('17'),
377
451
  }),
378
- getInternalAlgoTdiffParams: z.object({}),
379
452
  setPrimaryOperationalMode: z.object({
380
453
  mode: z.enum(['00', '01']),
454
+ commandNumber: z.string().optional().default('1e'),
455
+ }),
456
+ getPrimaryOperationalMode: z.object({
457
+ commandNumber: z.string().optional().default('1f'),
381
458
  }),
382
- getPrimaryOperationalMode: z.object({}),
383
459
  setBatteryRangesBoundaries: z.object({
384
460
  Boundary1: z.number().int().min(0).max(65535),
385
461
  Boundary2: z.number().int().min(0).max(65535),
386
462
  Boundary3: z.number().int().min(0).max(65535),
463
+ commandNumber: z.string().optional().default('20'),
387
464
  }),
388
465
  setBatteryRangesOverVoltage: z.object({
389
466
  Range1: z.number().int().min(0).max(255),
390
467
  Range2: z.number().int().min(0).max(255),
391
468
  Range3: z.number().int().min(0).max(255),
469
+ commandNumber: z.string().optional().default('22'),
392
470
  }),
393
471
  setOvac: z.object({
394
472
  ovac: z.number().int().min(0).max(255),
473
+ commandNumber: z.string().optional().default('26'),
474
+ }),
475
+ getOvac: z.object({
476
+ commandNumber: z.string().optional().default('27'),
395
477
  }),
396
- getOvac: z.object({}),
397
478
  setProportionalAlgorithmParameters: z.object({
398
479
  coefficient: z.number().min(0).max(20),
399
480
  period: z.number().int().min(0).max(255),
481
+ commandNumber: z.string().optional().default('2a'),
482
+ }),
483
+ getProportionalAlgorithmParameters: z.object({
484
+ commandNumber: z.string().optional().default('29'),
400
485
  }),
401
- getProportionalAlgorithmParameters: z.object({}),
402
486
  setTemperatureControlAlgorithm: z.object({
403
487
  algorithm: z.enum(['00', '01', '02']),
488
+ commandNumber: z.string().optional().default('2c'),
489
+ }),
490
+ getTemperatureControlAlgorithm: z.object({
491
+ commandNumber: z.string().optional().default('2b'),
404
492
  }),
405
- getTemperatureControlAlgorithm: z.object({}),
406
493
  setMotorPositionOnly: z.object({
407
494
  position: z.number().int().min(0).max(800),
495
+ commandNumber: z.string().optional().default('2d'),
496
+ }),
497
+ deviceReset: z.object({
498
+ commandNumber: z.string().optional().default('30'),
408
499
  }),
409
- deviceReset: z.object({}),
410
500
  setTargetTemperatureAndMotorPosition: z.object({
411
501
  motorPosition: z.number().int().min(0).max(800),
412
502
  targetTemperature: z.number().min(5).max(30),
503
+ commandNumber: z.string().optional().default('31'),
413
504
  }),
414
505
  setChildLockBehavior: z.object({
415
506
  behavior: z.number().min(0).max(1),
507
+ commandNumber: z.string().optional().default('35'),
508
+ }),
509
+ getChildLockBehavior: z.object({
510
+ commandNumber: z.string().optional().default('34'),
416
511
  }),
417
- getChildLockBehavior: z.object({}),
418
512
  setProportionalGain: z.object({
419
513
  proportionalGain: z.number().int().min(0).max(127),
514
+ commandNumber: z.string().optional().default('37'),
515
+ }),
516
+ getProportionalGain: z.object({
517
+ commandNumber: z.string().optional().default('36'),
420
518
  }),
421
- getProportionalGain: z.object({}),
422
519
  setExternalTemperatureFloat: z.object({
423
520
  temp: z.number().min(0.1).max(255.0).multipleOf(0.1),
521
+ commandNumber: z.string().optional().default('3c'),
424
522
  }),
425
523
  setIntegralGain: z.object({
426
524
  integralGain: z.number().int().min(0).max(127),
525
+ commandNumber: z.string().optional().default('3e'),
526
+ }),
527
+ getIntegralGain: z.object({
528
+ commandNumber: z.string().optional().default('3d'),
529
+ }),
530
+ getIntegralValue: z.object({
531
+ commandNumber: z.string().optional().default('3f'),
427
532
  }),
428
- getIntegralGain: z.object({}),
429
- getIntegralValue: z.object({}),
430
533
  setPiRunPeriod: z.object({
431
534
  period: z.number().int().min(0).max(255),
535
+ commandNumber: z.string().optional().default('41'),
536
+ }),
537
+ getPiRunPeriod: z.object({
538
+ commandNumber: z.string().optional().default('40'),
432
539
  }),
433
- getPiRunPeriod: z.object({}),
434
540
  setTemperatureHysteresis: z.object({
435
541
  hysteresis: z.number().min(0.1).max(10.0).multipleOf(0.1),
542
+ commandNumber: z.string().optional().default('43'),
543
+ }),
544
+ getTemperatureHysteresis: z.object({
545
+ commandNumber: z.string().optional().default('42'),
436
546
  }),
437
- getTemperatureHysteresis: z.object({}),
438
547
  setOpenWindowPrecisely: z.object({
439
548
  enabled: z.boolean(),
440
549
  duration: z.number().min(0).max(51),
441
550
  delta: z.number().min(0.1).max(15.0).multipleOf(0.1),
551
+ commandNumber: z.string().optional().default('45'),
552
+ }),
553
+ getOpenWindowPrecisely: z.object({
554
+ commandNumber: z.string().optional().default('46'),
442
555
  }),
443
- getOpenWindowPrecisely: z.object({}),
444
556
  setForceAttach: z.object({
445
557
  enabled: z.boolean(),
558
+ commandNumber: z.string().optional().default('47'),
559
+ }),
560
+ getForceAttach: z.object({
561
+ commandNumber: z.string().optional().default('48'),
446
562
  }),
447
- getForceAttach: z.object({}),
448
563
  setAntiFreezeParams: z.object({
449
564
  activatedTemperature: z.number().min(0).max(25),
450
565
  deactivatedTemperature: z.number().min(0).max(25),
451
566
  targetTemperature: z.number().min(0).max(30),
567
+ commandNumber: z.string().optional().default('49'),
568
+ }),
569
+ getAntiFreezeParams: z.object({
570
+ commandNumber: z.string().optional().default('4a'),
452
571
  }),
453
- getAntiFreezeParams: z.object({}),
454
572
  setMaxAllowedIntegralValue: z.object({
455
573
  value: z.number().int().min(0).max(255),
574
+ commandNumber: z.string().optional().default('4c'),
575
+ }),
576
+ getMaxAllowedIntegralValue: z.object({
577
+ commandNumber: z.string().optional().default('4d'),
456
578
  }),
457
- getMaxAllowedIntegralValue: z.object({}),
458
579
  setValveOpennessInPercentage: z.object({
459
580
  value: z.number().min(0).max(100),
581
+ commandNumber: z.string().optional().default('4e'),
460
582
  }),
461
583
  setValveOpennessRangeInPercentage: z.object({
462
584
  min: z.number().min(0).max(100),
463
585
  max: z.number().min(0).max(100),
586
+ commandNumber: z.string().optional().default('4f'),
587
+ }),
588
+ getValveOpennessRangeInPercentage: z.object({
589
+ commandNumber: z.string().optional().default('50'),
464
590
  }),
465
- getValveOpennessRangeInPercentage: z.object({}),
466
591
  setTemperatureOffset: z.object({
467
592
  value: z.number().min(-5).max(5),
593
+ commandNumber: z.string().optional().default('53'),
594
+ }),
595
+ getTemperatureOffset: z.object({
596
+ commandNumber: z.string().optional().default('54'),
468
597
  }),
469
- getTemperatureOffset: z.object({}),
470
598
  setHeatingEvent: z.object({
471
599
  eventIndex: z.number().int().min(0).max(19),
472
600
  startHour: z.number().int().min(0).max(23),
@@ -481,37 +609,46 @@ const VickiCommandSchemas = {
481
609
  saturday: z.boolean(),
482
610
  sunday: z.boolean(),
483
611
  }),
612
+ commandNumber: z.string().optional().default('59'),
484
613
  }),
485
614
  setHeatingEventState: z.object({
486
615
  eventIndex: z.number().int().min(0).max(19),
487
616
  active: z.boolean(),
617
+ commandNumber: z.string().optional().default('6b'),
488
618
  }),
489
619
  setTimeRequestByMACcommand: z.object({
490
620
  enabled: z.boolean(),
621
+ commandNumber: z.string().optional().default('6d'),
491
622
  }),
492
623
  setHeatingSchedule: z.object({
493
624
  startMonth: z.number().int().min(0).max(11),
494
625
  startDay: z.number().int().min(0).max(31), // 0 disables schedule handling
495
626
  endMonth: z.number().int().min(0).max(11),
496
627
  endDay: z.number().int().min(0).max(31), // 0 disables schedule handling
628
+ commandNumber: z.string().optional().default('5b'),
497
629
  }),
498
630
  setDeviceTime: z.object({
499
631
  timestamp: z.number().int().min(0).max(4294967295), // Unsigned 32-bit integer max value
632
+ commandNumber: z.string().optional().default('5d'),
500
633
  }),
501
634
  setDeviceTimeZone: z.object({
502
635
  offsetHours: z.number().int().min(-12).max(12), // Time zone offset in hours, range [-12:12]
636
+ commandNumber: z.string().optional().default('5f'),
503
637
  }),
504
638
  setAutomaticSetpointRestore: z.object({
505
639
  time: z.number().int().min(0).max(255), // Time in 10-minute increments (0-2550 minutes), 0 disables the functionality
640
+ commandNumber: z.string().optional().default('61'),
506
641
  }),
507
642
  setOfflineTargetTemperature: z.object({
508
643
  targetTemperature: z.union([
509
644
  z.literal(0), // To disable the feature
510
645
  z.number().min(5).max(30).multipleOf(0.1), // Temperature range 5.0-30.0°C with 0.1°C increments
511
646
  ]),
647
+ commandNumber: z.string().optional().default('65'),
512
648
  }),
513
649
  setInternalAlgoTemporaryState: z.object({
514
650
  enabled: z.boolean(), // true = enable algorithm (00), false = disable algorithm temporarily (01)
651
+ commandNumber: z.string().optional().default('67'),
515
652
  }),
516
653
  setTemperatureLevels: z.object({
517
654
  scaleLevel0: z.number().min(5).max(30).multipleOf(0.1),
@@ -520,9 +657,11 @@ const VickiCommandSchemas = {
520
657
  scaleLevel3: z.number().min(5).max(30).multipleOf(0.1),
521
658
  scaleLevel4: z.number().min(5).max(30).multipleOf(0.1),
522
659
  scaleLevel5: z.number().min(5).max(30).multipleOf(0.1),
660
+ commandNumber: z.string().optional().default('69'),
523
661
  }),
524
662
  setLedIndicationDuration: z.object({
525
663
  duration: z.number().min(0.5).max(20).multipleOf(0.5), // Duration in range [0.5:20] with 0.5s resolution
664
+ commandNumber: z.string().optional().default('63'),
526
665
  }),
527
666
  }
528
667
 
@@ -580,53 +719,95 @@ const Relay16CommandSchemas = {
580
719
  setOverheatingThresholds: z.object({
581
720
  trigger: z.number().min(30).max(100),
582
721
  recovery: z.number().min(30).max(100),
722
+ commandNumber: z.string().optional().default('1e'),
723
+ }),
724
+ getOverheatingThresholds: z.object({
725
+ commandNumber: z.string().optional().default('1f'),
583
726
  }),
584
- getOverheatingThresholds: z.object({}),
585
727
  setOvervoltageThresholds: z.object({
586
728
  trigger: z.number().min(1).max(255),
587
729
  recovery: z.number().min(1).max(255),
730
+ commandNumber: z.string().optional().default('20'),
731
+ }),
732
+ getOvervoltageThresholds: z.object({
733
+ commandNumber: z.string().optional().default('21'),
588
734
  }),
589
- getOvervoltageThresholds: z.object({}),
590
735
  setOvercurrentThreshold: z.object({
591
736
  current: z.number().min(1).max(16),
737
+ commandNumber: z.string().optional().default('22'),
738
+ }),
739
+ getOvercurrentThreshold: z.object({
740
+ commandNumber: z.string().optional().default('23'),
592
741
  }),
593
- getOvercurrentThreshold: z.object({}),
594
742
  setOverpowerThreshold: z.object({
595
743
  power: z.number().min(100).max(3680),
744
+ commandNumber: z.string().optional().default('24'),
745
+ }),
746
+ getOverpowerThreshold: z.object({
747
+ commandNumber: z.string().optional().default('25'),
748
+ }),
749
+ clearAcumulatedEnergy: z.object({
750
+ commandNumber: z.string().optional(),
596
751
  }),
597
- getOverpowerThreshold: z.object({}),
598
- clearAcumulatedEnergy: z.object({}),
599
752
  setAfterOverheatingProtectionRecovery: z.object({
600
753
  state: z.number().min(0).max(1), // 0: lastState, 1: OFF
754
+ commandNumber: z.string().optional().default('59'),
755
+ }),
756
+ getAfterOverheatingProtectionRecovery: z.object({
757
+ commandNumber: z.string().optional().default('5a'),
601
758
  }),
602
- getAfterOverheatingProtectionRecovery: z.object({}),
603
759
  setLedIndicationMode: z.object({
604
760
  mode: z.number().min(0).max(1), // 0: OFF, 1: ON
761
+ commandNumber: z.string().optional().default('5b'),
762
+ }),
763
+ getLedIndicationMode: z.object({
764
+ commandNumber: z.string().optional().default('5c'),
605
765
  }),
606
- getLedIndicationMode: z.object({}),
607
766
  setRelayRecoveryState: z.object({
608
767
  state: z.number().min(0).max(2), // 0: lastState, 1: ON, 2: OFF
768
+ commandNumber: z.string().optional().default('5e'),
769
+ }),
770
+ getRelayRecoveryState: z.object({
771
+ commandNumber: z.string().optional().default('5f'),
609
772
  }),
610
- getRelayRecoveryState: z.object({}),
611
773
  setRelayState: z.object({
612
774
  state: z.boolean(), // 0: OFF, 1: ON
775
+ commandNumber: z.string().optional().default('c1'),
776
+ }),
777
+ getRelayState: z.object({
778
+ commandNumber: z.string().optional().default('b1'),
613
779
  }),
614
- getRelayState: z.object({}),
615
780
  setRelayTimerInMilliseconds: z.object({
616
781
  state: z.number().min(0).max(1), // 0: OFF, 1: ON
617
782
  time: z.number().min(0).max(65535),
783
+ commandNumber: z.string().optional().default('55'),
784
+ }),
785
+ getRelayTimerInMilliseconds: z.object({
786
+ commandNumber: z.string().optional().default('56'),
618
787
  }),
619
- getRelayTimerInMilliseconds: z.object({}),
620
788
  setRelayTimerInSeconds: z.object({
621
789
  state: z.number().min(0).max(1), // 0: OFF, 1: ON
622
790
  time: z.number().min(0).max(65535),
791
+ commandNumber: z.string().optional().default('57'),
792
+ }),
793
+ getRelayTimerInSeconds: z.object({
794
+ commandNumber: z.string().optional().default('58'),
795
+ }),
796
+ getRelayStateChangeReason: z.object({
797
+ commandNumber: z.string().optional().default('54'),
798
+ }),
799
+ getOverheatingEvents: z.object({
800
+ commandNumber: z.string().optional().default('60'),
801
+ }),
802
+ getOvervoltageEvents: z.object({
803
+ commandNumber: z.string().optional().default('61'),
804
+ }),
805
+ getOvercurrentEvents: z.object({
806
+ commandNumber: z.string().optional().default('62'),
807
+ }),
808
+ getOverpowerEvents: z.object({
809
+ commandNumber: z.string().optional().default('63'),
623
810
  }),
624
- getRelayTimerInSeconds: z.object({}),
625
- getRelayStateChangeReason: z.object({}),
626
- getOverheatingEvents: z.object({}),
627
- getOvervoltageEvents: z.object({}),
628
- getOvercurrentEvents: z.object({}),
629
- getOverpowerEvents: z.object({}),
630
811
  }
631
812
 
632
813
  export namespace Relay16CommandTypes {
@@ -651,36 +832,61 @@ const Relay16DryCommandSchemas = {
651
832
  setOverheatingThresholds: z.object({
652
833
  trigger: z.number().min(30).max(100),
653
834
  recovery: z.number().min(30).max(100),
835
+ commandNumber: z.string().optional().default('1e'),
836
+ }),
837
+ getOverheatingThresholds: z.object({
838
+ commandNumber: z.string().optional().default('1f'),
654
839
  }),
655
- getOverheatingThresholds: z.object({}),
656
840
  setAfterOverheatingProtectionRecovery: z.object({
657
841
  state: z.number().min(0).max(1), // 0: lastState, 1: OFF
842
+ commandNumber: z.string().optional().default('59'),
658
843
  }),
659
844
  setRelayTimerInMilliseconds: z.object({
660
845
  state: z.number().min(0).max(1), // 0: OFF, 1: ON
661
846
  time: z.number().min(0).max(65535),
847
+ commandNumber: z.string().optional().default('55'),
848
+ }),
849
+ getRelayTimerInMilliseconds: z.object({
850
+ commandNumber: z.string().optional().default('56'),
662
851
  }),
663
- getRelayTimerInMilliseconds: z.object({}),
664
852
  setRelayTimerInSeconds: z.object({
665
853
  state: z.number().min(0).max(1), // 0: OFF, 1: ON
666
854
  time: z.number().min(0).max(65535),
855
+ commandNumber: z.string().optional().default('57'),
856
+ }),
857
+ getRelayTimerInSeconds: z.object({
858
+ commandNumber: z.string().optional().default('58'),
859
+ }),
860
+ getRelayStateChangeReason: z.object({
861
+ commandNumber: z.string().optional().default('54'),
862
+ }),
863
+ getAfterOverheatingProtectionRecovery: z.object({
864
+ commandNumber: z.string().optional().default('5a'),
667
865
  }),
668
- getRelayTimerInSeconds: z.object({}),
669
- getRelayStateChangeReason: z.object({}),
670
- getAfterOverheatingProtectionRecovery: z.object({}),
671
866
  setLedIndicationMode: z.object({
672
867
  mode: z.number().min(0).max(1), // 0: OFF, 1: ON
868
+ commandNumber: z.string().optional().default('5b'),
869
+ }),
870
+ getLedIndicationMode: z.object({
871
+ commandNumber: z.string().optional().default('5c'),
673
872
  }),
674
- getLedIndicationMode: z.object({}),
675
873
  setRelayRecoveryState: z.object({
676
874
  state: z.number().min(0).max(2), // 0: lastState, 1: ON, 2: OFF
875
+ commandNumber: z.string().optional().default('5e'),
876
+ }),
877
+ getRelayRecoveryState: z.object({
878
+ commandNumber: z.string().optional().default('5f'),
677
879
  }),
678
- getRelayRecoveryState: z.object({}),
679
880
  setRelayState: z.object({
680
881
  state: z.boolean(), // 0: OFF, 1: ON
882
+ commandNumber: z.string().optional().default('c1'),
883
+ }),
884
+ getRelayState: z.object({
885
+ commandNumber: z.string().optional().default('b1'),
886
+ }),
887
+ getOverheatingEvents: z.object({
888
+ commandNumber: z.string().optional().default('60'),
681
889
  }),
682
- getRelayState: z.object({}),
683
- getOverheatingEvents: z.object({}),
684
890
  }
685
891
 
686
892
  // ------------------------------------------------ T-VALVE COMMANDS ------------------------------------------------
@@ -690,12 +896,16 @@ const TValveCommandSchemas = {
690
896
  setOpenCloseTime: z.object({
691
897
  openingTime: z.number().min(1).max(255),
692
898
  closingTime: z.number().min(1).max(255),
899
+ commandNumber: z.string().optional().default('01'),
900
+ }),
901
+ getOpenCloseTime: z.object({
902
+ commandNumber: z.string().optional(),
693
903
  }),
694
- getOpenCloseTime: z.object({}),
695
904
  setLED: z.object({
696
905
  ledId: z.number().min(1).max(4),
697
906
  behavior: z.number().min(0).max(4),
698
907
  seconds: z.number().min(1).max(255),
908
+ commandNumber: z.string().optional().default('02'),
699
909
  }),
700
910
  setBuzzer: z.object({
701
911
  volume: z.number().min(1).max(255),
@@ -703,54 +913,81 @@ const TValveCommandSchemas = {
703
913
  activeTime: z.number().min(1).max(255),
704
914
  onTime: z.number().min(1).max(255),
705
915
  offTime: z.number().min(1).max(255),
916
+ commandNumber: z.string().optional().default('03'),
706
917
  }),
707
918
  setEmergencyOpenings: z.object({
708
919
  maxOpenings: z.number().min(1).max(15),
920
+ commandNumber: z.string().optional().default('04'),
921
+ }),
922
+ getEmergencyOpenings: z.object({
923
+ commandNumber: z.string().optional().default('0f'),
709
924
  }),
710
- getEmergencyOpenings: z.object({}),
711
925
  setManualControl: z.object({
712
926
  enableOpen: z.boolean(),
713
927
  enableClose: z.boolean(),
928
+ commandNumber: z.string().optional().default('05'),
714
929
  }),
715
930
  setFloodAlarmTime: z.object({
716
931
  time: z.number().min(1).max(255),
932
+ commandNumber: z.string().optional().default('06'),
933
+ }),
934
+ getFloodAlarmTime: z.object({
935
+ commandNumber: z.string().optional().default('10'),
717
936
  }),
718
- getFloodAlarmTime: z.object({}),
719
937
  setKeepAliveTValve: z.object({
720
938
  time: z.number().min(1).max(255),
939
+ commandNumber: z.string().optional().default('02'),
721
940
  }),
722
941
  setWorkingVoltage: z.object({
723
942
  voltage: z.number().min(1840).max(2500),
943
+ commandNumber: z.string().optional().default('09'),
944
+ }),
945
+ getWorkingVoltage: z.object({
946
+ commandNumber: z.string().optional().default('11'),
724
947
  }),
725
- getWorkingVoltage: z.object({}),
726
948
  setValveState: z.object({
727
949
  state: z.number().min(0).max(1), // 0: open, 1: close
950
+ commandNumber: z.string().optional().default('0c'),
728
951
  }),
729
952
  setOpenCloseTimeExtended: z.object({
730
953
  openingTime: z.number().min(1).max(65535),
731
954
  closingTime: z.number().min(1).max(65535),
955
+ commandNumber: z.string().optional().default('0d'),
956
+ }),
957
+ getOpenCloseTimeExtended: z.object({
958
+ commandNumber: z.string().optional().default('0e'),
732
959
  }),
733
- getOpenCloseTimeExtended: z.object({}),
734
960
  setSingleTimeValveState: z.object({
735
961
  state: z.number().min(0).max(1), // 0: open, 1: close
736
962
  time: z.number().min(1).max(65535),
963
+ commandNumber: z.string().optional().default('14'),
737
964
  }),
738
965
  setDeviceFloodSensor: z.object({
739
966
  enabled: z.boolean(),
967
+ commandNumber: z.string().optional().default('0a'),
968
+ }),
969
+ getDeviceFloodSensor: z.object({
970
+ commandNumber: z.string().optional().default('13'),
740
971
  }),
741
- getDeviceFloodSensor: z.object({}),
742
972
  setJoinRetryPeriodTValve: z.object({
743
973
  period: z.number().min(1).max(21),
974
+ commandNumber: z.string().optional().default('10'),
744
975
  }),
745
976
  setUplinkTypeTValve: z.object({
746
977
  type: z.enum(['01', '00']), // 01: confirmedUplinks, 00: unconfirmedUplinks
978
+ commandNumber: z.string().optional().default('11'),
747
979
  }),
748
980
  setWatchDogTValveParams: z.object({
749
981
  confirmedUplinks: z.number().min(0).max(255),
750
982
  unconfirmedUplinks: z.number().min(0).max(255),
983
+ commandNumber: z.string().optional().default('1c'),
984
+ }),
985
+ getWatchDogTValveParams: z.object({
986
+ commandNumber: z.string().optional(),
987
+ }),
988
+ requestFullData: z.object({
989
+ commandNumber: z.string().optional().default('08'),
751
990
  }),
752
- getWatchDogTValveParams: z.object({}),
753
- requestFullData: z.object({}),
754
991
  }
755
992
 
756
993
  export namespace TValveCommandTypes {
@@ -778,157 +1015,271 @@ const FanCoilThermostatCommandSchemas = {
778
1015
  ...TemperatureCommandSchemas,
779
1016
  setDisplayRefreshPeriod: z.object({
780
1017
  period: z.number().min(1).max(24),
1018
+ commandNumber: z.string().optional().default('33'),
1019
+ }),
1020
+ getDisplayRefreshPeriod: z.object({
1021
+ commandNumber: z.string().optional().default('34'),
781
1022
  }),
782
- getDisplayRefreshPeriod: z.object({}),
783
1023
  setHumidityVisibility: z.object({
784
1024
  state: z.number().min(0).max(1), // 0: hide, 1: show
1025
+ commandNumber: z.string().optional().default('42'),
1026
+ }),
1027
+ getHumidityVisibility: z.object({
1028
+ commandNumber: z.string().optional().default('43'),
785
1029
  }),
786
- getHumidityVisibility: z.object({}),
787
1030
  setCurrentTemperatureVisibility: z.object({
788
1031
  state: z.number().min(0).max(1), // 0: hide, 1: show
1032
+ commandNumber: z.string().optional().default('40'),
1033
+ }),
1034
+ getCurrentTemperatureVisibility: z.object({
1035
+ commandNumber: z.string().optional().default('41'),
789
1036
  }),
790
- getCurrentTemperatureVisibility: z.object({}),
791
1037
  setTargetTemperatureStep: z.object({
792
1038
  value: z.number().min(0.1).max(10).multipleOf(0.1),
1039
+ commandNumber: z.string().optional().default('03'),
1040
+ }),
1041
+ getTargetTemperatureStep: z.object({
1042
+ commandNumber: z.string().optional().default('05'),
793
1043
  }),
794
- getTargetTemperatureStep: z.object({}),
795
1044
  setKeysLock: z.object({
796
1045
  value: z.number().min(0).max(5),
1046
+ commandNumber: z.string().optional().default('07'),
1047
+ }),
1048
+ getKeysLock: z.object({
1049
+ commandNumber: z.string().optional().default('14'),
797
1050
  }),
798
- getKeysLock: z.object({}),
799
1051
  setTargetTemperature: z.object({
800
1052
  targetTemperature: z.number().min(5).max(99),
1053
+ commandNumber: z.string().optional().default('0e'),
801
1054
  }),
802
1055
  setValveOpenCloseTime: z.object({
803
1056
  value: z.number().min(1).max(255),
1057
+ commandNumber: z.string().optional().default('31'),
1058
+ }),
1059
+ getValveOpenCloseTime: z.object({
1060
+ commandNumber: z.string().optional().default('32'),
804
1061
  }),
805
- getValveOpenCloseTime: z.object({}),
806
1062
  setExtAutomaticTemperatureControl: z.object({
807
1063
  value: z.number().min(0).max(1), // 0: deactivated, 1: activated
1064
+ commandNumber: z.string().optional().default('35'),
1065
+ }),
1066
+ getExtAutomaticTemperatureControl: z.object({
1067
+ commandNumber: z.string().optional().default('36'),
808
1068
  }),
809
- getExtAutomaticTemperatureControl: z.object({}),
810
1069
  setFanSpeed: z.object({
811
1070
  value: z.number().min(0).max(6),
1071
+ commandNumber: z.string().optional().default('44'),
1072
+ }),
1073
+ getFanSpeed: z.object({
1074
+ commandNumber: z.string().optional().default('45'),
812
1075
  }),
813
- getFanSpeed: z.object({}),
814
1076
  setFanSpeedLimit: z.object({
815
1077
  value: z.number().min(0).max(3),
1078
+ commandNumber: z.string().optional().default('46'),
1079
+ }),
1080
+ getFanSpeedLimit: z.object({
1081
+ commandNumber: z.string().optional().default('47'),
816
1082
  }),
817
- getFanSpeedLimit: z.object({}),
818
1083
  setEcmVoltageRange: z.object({
819
1084
  min: z.number().min(0).max(10),
820
1085
  max: z.number().min(0).max(10),
1086
+ commandNumber: z.string().optional().default('48'),
1087
+ }),
1088
+ getEcmVoltageRange: z.object({
1089
+ commandNumber: z.string().optional().default('49'),
821
1090
  }),
822
- getEcmVoltageRange: z.object({}),
823
1091
  setEcmStartUpTime: z.object({
824
1092
  value: z.number().min(0).max(20),
1093
+ commandNumber: z.string().optional().default('4a'),
1094
+ }),
1095
+ getEcmStartUpTime: z.object({
1096
+ commandNumber: z.string().optional().default('4b'),
825
1097
  }),
826
- getEcmStartUpTime: z.object({}),
827
1098
  setEcmRelay: z.object({
828
1099
  value: z.number().min(0).max(1), // 0: deactivated, 1: activated
1100
+ commandNumber: z.string().optional().default('4c'),
1101
+ }),
1102
+ getEcmRelay: z.object({
1103
+ commandNumber: z.string().optional().default('4d'),
829
1104
  }),
830
- getEcmRelay: z.object({}),
831
1105
  setFrostProtection: z.object({
832
1106
  value: z.number().min(0).max(1), // 0: OFF, 1: ON
1107
+ commandNumber: z.string().optional().default('4e'),
1108
+ }),
1109
+ getFrostProtection: z.object({
1110
+ commandNumber: z.string().optional().default('4f'),
833
1111
  }),
834
- getFrostProtection: z.object({}),
835
1112
  setFrostProtectionSettings: z.object({
836
1113
  threshold: z.number().min(4).max(20),
837
1114
  setpoint: z.number().min(4).max(20),
1115
+ commandNumber: z.string().optional().default('50'),
1116
+ }),
1117
+ getFrostProtectionSettings: z.object({
1118
+ commandNumber: z.string().optional().default('51'),
838
1119
  }),
839
- getFrostProtectionSettings: z.object({}),
840
1120
  setFctOperationalMode: z.object({
841
1121
  value: z.number().min(0).max(2), // 0: ventilation, 1: heating, 2: cooling
1122
+ commandNumber: z.string().optional().default('52'),
842
1123
  }),
843
1124
  setAllowedOperationalModes: z.object({
844
1125
  value: z.number().min(0).max(2),
1126
+ commandNumber: z.string().optional().default('54'),
1127
+ }),
1128
+ getAllowedOperationalModes: z.object({
1129
+ commandNumber: z.string().optional().default('55'),
845
1130
  }),
846
- getAllowedOperationalModes: z.object({}),
847
1131
  setCoolingSetpointNotOccupied: z.object({
848
1132
  value: z.number().min(5).max(30),
1133
+ commandNumber: z.string().optional().default('56'),
1134
+ }),
1135
+ getCoolingSetpointNotOccupied: z.object({
1136
+ commandNumber: z.string().optional().default('57'),
849
1137
  }),
850
- getCoolingSetpointNotOccupied: z.object({}),
851
1138
  setHeatingSetpointNotOccupied: z.object({
852
1139
  value: z.number().min(5).max(30),
1140
+ commandNumber: z.string().optional().default('58'),
1141
+ }),
1142
+ getHeatingSetpointNotOccupied: z.object({
1143
+ commandNumber: z.string().optional().default('59'),
853
1144
  }),
854
- getHeatingSetpointNotOccupied: z.object({}),
855
1145
  setTempSensorCompensation: z.object({
856
1146
  compensation: z.number().min(0).max(1),
857
1147
  temperature: z.number().min(-5).max(5).multipleOf(0.1),
1148
+ commandNumber: z.string().optional().default('5a'),
1149
+ }),
1150
+ getTempSensorCompensation: z.object({
1151
+ commandNumber: z.string().optional().default('5b'),
858
1152
  }),
859
- getTempSensorCompensation: z.object({}),
860
1153
  setFanSpeedNotOccupied: z.object({
861
1154
  value: z.number().min(0).max(2), // 0: low, 1: automatic, 2: dontChange
1155
+ commandNumber: z.string().optional().default('5c'),
1156
+ }),
1157
+ getFanSpeedNotOccupied: z.object({
1158
+ commandNumber: z.string().optional().default('5d'),
862
1159
  }),
863
- getFanSpeedNotOccupied: z.object({}),
864
1160
  setAutomaticChangeover: z.object({
865
1161
  value: z.number().min(0).max(1), // 0: deactivated, 1: activated
1162
+ commandNumber: z.string().optional().default('5e'),
1163
+ }),
1164
+ getAutomaticChangeover: z.object({
1165
+ commandNumber: z.string().optional().default('5f'),
866
1166
  }),
867
- getAutomaticChangeover: z.object({}),
868
1167
  setWiringDiagram: z.object({
869
1168
  value: z.number().min(0).max(6),
1169
+ commandNumber: z.string().optional().default('60'),
1170
+ }),
1171
+ getWiringDiagram: z.object({
1172
+ commandNumber: z.string().optional().default('61'),
870
1173
  }),
871
- getWiringDiagram: z.object({}),
872
1174
  setOccFunction: z.object({
873
1175
  value: z.number().min(0).max(7),
1176
+ commandNumber: z.string().optional().default('62'),
1177
+ }),
1178
+ getOccFunction: z.object({
1179
+ commandNumber: z.string().optional().default('63'),
874
1180
  }),
875
- getOccFunction: z.object({}),
876
1181
  setAutomaticChangeoverThreshold: z.object({
877
1182
  coolingThreshold: z.number().min(5).max(20),
878
1183
  heatingThreshold: z.number().min(30).max(60),
1184
+ commandNumber: z.string().optional().default('64'),
1185
+ }),
1186
+ getAutomaticChangeoverThreshold: z.object({
1187
+ commandNumber: z.string().optional().default('65'),
879
1188
  }),
880
- getAutomaticChangeoverThreshold: z.object({}),
881
1189
  setDeviceStatus: z.object({
882
1190
  value: z.number().min(0).max(1), // 0: off, 1: on
1191
+ commandNumber: z.string().optional().default('66'),
1192
+ }),
1193
+ getDeviceStatus: z.object({
1194
+ commandNumber: z.string().optional().default('67'),
883
1195
  }),
884
- getDeviceStatus: z.object({}),
885
1196
  setReturnOfPowerOperation: z.object({
886
1197
  value: z.number().min(0).max(2), // 0: lastStatus, 1: on, 2: off
1198
+ commandNumber: z.string().optional().default('68'),
1199
+ }),
1200
+ getReturnOfPowerOperation: z.object({
1201
+ commandNumber: z.string().optional().default('69'),
887
1202
  }),
888
- getReturnOfPowerOperation: z.object({}),
889
1203
  setDeltaTemperature1: z.object({
890
1204
  value: z.number().min(0.5).max(10).multipleOf(0.5),
1205
+ commandNumber: z.string().optional().default('6a'),
1206
+ }),
1207
+ getDeltaTemperature1: z.object({
1208
+ commandNumber: z.string().optional().default('6b'),
891
1209
  }),
892
- getDeltaTemperature1: z.object({}),
893
1210
  setDeltaTemperature2and3: z.object({
894
1211
  deltaTemperature2: z.number().min(0.5).max(10).multipleOf(0.5),
895
1212
  deltaTemperature3: z.number().min(0.5).max(10).multipleOf(0.5),
1213
+ commandNumber: z.string().optional().default('6c'),
1214
+ }),
1215
+ getDeltaTemperature2and3: z.object({
1216
+ commandNumber: z.string().optional().default('6d'),
1217
+ }),
1218
+ getFrostProtectionStatus: z.object({
1219
+ commandNumber: z.string().optional().default('6e'),
1220
+ }),
1221
+ getOccupancySensorStatusSetPoint: z.object({
1222
+ commandNumber: z.string().optional().default('70'),
1223
+ }),
1224
+ getOccupancySensorStatus: z.object({
1225
+ commandNumber: z.string().optional().default('71'),
1226
+ }),
1227
+ getDewPointSensorStatus: z.object({
1228
+ commandNumber: z.string().optional().default('72'),
1229
+ }),
1230
+ getFilterAlarm: z.object({
1231
+ commandNumber: z.string().optional().default('73'),
896
1232
  }),
897
- getDeltaTemperature2and3: z.object({}),
898
- getFrostProtectionStatus: z.object({}),
899
- getOccupancySensorStatusSetPoint: z.object({}),
900
- getOccupancySensorStatus: z.object({}),
901
- getDewPointSensorStatus: z.object({}),
902
- getFilterAlarm: z.object({}),
903
1233
  setHeatingCoolingTargetTempRanges: z.object({
904
1234
  heatingTempMin: z.number().min(5).max(30),
905
1235
  heatingTempMax: z.number().min(5).max(30),
906
1236
  coolingTempMin: z.number().min(5).max(30),
907
1237
  coolingTempMax: z.number().min(5).max(30),
1238
+ commandNumber: z.string().optional().default('16'),
1239
+ }),
1240
+ getHeatingCoolingTargetTempRanges: z.object({
1241
+ commandNumber: z.string().optional().default('17'),
908
1242
  }),
909
- getHeatingCoolingTargetTempRanges: z.object({}),
910
1243
  setHeatingCoolingTargetTempRangesUnoccupied: z.object({
911
1244
  heatingTempMin: z.number().min(5).max(30),
912
1245
  heatingTempMax: z.number().min(5).max(30),
913
1246
  coolingTempMin: z.number().min(5).max(30),
914
1247
  coolingTempMax: z.number().min(5).max(30),
1248
+ commandNumber: z.string().optional().default('76'),
1249
+ }),
1250
+ getHeatingCoolingTargetTempRangesUnoccupied: z.object({
1251
+ commandNumber: z.string().optional().default('77'),
915
1252
  }),
916
- getHeatingCoolingTargetTempRangesUnoccupied: z.object({}),
917
1253
  setFanOffDelayTime: z.object({
918
1254
  time: z.number().min(0).max(255),
1255
+ commandNumber: z.string().optional().default('78'),
1256
+ }),
1257
+ getFanOffDelayTime: z.object({
1258
+ commandNumber: z.string().optional().default('79'),
919
1259
  }),
920
- getFanOffDelayTime: z.object({}),
921
1260
  setAdditionalFanMode: z.object({
922
1261
  mode: z.number().min(0).max(2), // 0: TurnOffOnTargetReach, 1: KeepOnTargetReach, 2: FanAlwaysOn
1262
+ commandNumber: z.string().optional().default('7a'),
1263
+ }),
1264
+ getAdditionalFanMode: z.object({
1265
+ commandNumber: z.string().optional().default('7b'),
1266
+ }),
1267
+ getInternalTemperatureSensorError: z.object({
1268
+ commandNumber: z.string().optional().default('7c'),
1269
+ }),
1270
+ getExternalTemperatureSensorError: z.object({
1271
+ commandNumber: z.string().optional().default('7d'),
923
1272
  }),
924
- getAdditionalFanMode: z.object({}),
925
- getInternalTemperatureSensorError: z.object({}),
926
- getExternalTemperatureSensorError: z.object({}),
927
1273
  setUserInterfaceLanguage: z.object({
928
1274
  value: z.number().min(0).max(3), // 0: English, 1: French, 2: German, 3: Spanish
1275
+ commandNumber: z.string().optional().default('9a'),
1276
+ }),
1277
+ getUserInterfaceLanguage: z.object({
1278
+ commandNumber: z.string().optional().default('9b'),
1279
+ }),
1280
+ restartDevice: z.object({
1281
+ commandNumber: z.string().optional().default('a5'),
929
1282
  }),
930
- getUserInterfaceLanguage: z.object({}),
931
- restartDevice: z.object({}),
932
1283
  }
933
1284
 
934
1285
  export namespace FanCoilThermostatCommandTypes {
@@ -986,8 +1337,11 @@ const OpenCloseSensorCommandSchemas = {
986
1337
  ...GeneralCommandSchemas,
987
1338
  setNotificationBlindTime: z.object({
988
1339
  time: z.number().min(1).max(255),
1340
+ commandNumber: z.string().optional().default('1e'),
1341
+ }),
1342
+ getNotificationBlindTime: z.object({
1343
+ commandNumber: z.string().optional().default('1f'),
989
1344
  }),
990
- getNotificationBlindTime: z.object({}),
991
1345
  }
992
1346
 
993
1347
  export namespace OpenCloseSensorCommandTypes {
@@ -998,46 +1352,75 @@ export namespace OpenCloseSensorCommandTypes {
998
1352
  const WirelessThermostatCommandSchemas = {
999
1353
  ...GeneralCommandSchemas,
1000
1354
  ...TemperatureCommandSchemas,
1001
- getTemperatureRange: z.object({}),
1355
+ getTemperatureRange: z.object({
1356
+ commandNumber: z.string().optional().default('15'),
1357
+ }),
1002
1358
  ...DisplayCommandSchemas,
1003
1359
  ...PIRCommandSchemas,
1004
1360
  ...ChildLockCommandSchemas,
1005
1361
  setTargetTemperature: z.object({
1006
1362
  targetTemperature: z.number().min(5).max(99),
1363
+ commandNumber: z.string().optional().default('0e'),
1364
+ }),
1365
+ getTargetTemperature: z.object({
1366
+ commandNumber: z.string().optional().default('2f'),
1007
1367
  }),
1008
- getTargetTemperature: z.object({}),
1009
1368
  setHeatingStatus: z.object({
1010
1369
  status: z.number().min(0).max(1), // 0: disabled, 1: enabled
1370
+ commandNumber: z.string().optional().default('31'),
1371
+ }),
1372
+ getHeatingStatus: z.object({
1373
+ commandNumber: z.string().optional().default('32'),
1011
1374
  }),
1012
- getHeatingStatus: z.object({}),
1013
1375
  setDisplayRefreshPeriod: z.object({
1014
1376
  period: z.number().min(1).max(24),
1377
+ commandNumber: z.string().optional().default('33'),
1378
+ }),
1379
+ getDisplayRefreshPeriod: z.object({
1380
+ commandNumber: z.string().optional().default('34'),
1015
1381
  }),
1016
- getDisplayRefreshPeriod: z.object({}),
1017
1382
  setTargetSendDelay: z.object({
1018
1383
  time: z.number().min(0).max(255),
1384
+ commandNumber: z.string().optional().default('35'),
1385
+ }),
1386
+ getTargetSendDelay: z.object({
1387
+ commandNumber: z.string().optional().default('36'),
1019
1388
  }),
1020
- getTargetSendDelay: z.object({}),
1021
1389
  setAutomaticHeatingStatus: z.object({
1022
1390
  state: z.number().min(0).max(1), // 0: turnOffAutomaticMode, 1: turnOnAutomaticMode
1391
+ commandNumber: z.string().optional().default('37'),
1392
+ }),
1393
+ getAutomaticHeatingStatus: z.object({
1394
+ commandNumber: z.string().optional().default('38'),
1023
1395
  }),
1024
- getAutomaticHeatingStatus: z.object({}),
1025
1396
  setSensorMode: z.object({
1026
1397
  state: z.number().min(0).max(1), // 0: turnOffSensorMode, 1: turnOnSensorMode
1398
+ commandNumber: z.string().optional().default('39'),
1399
+ }),
1400
+ getSensorMode: z.object({
1401
+ commandNumber: z.string().optional().default('3a'),
1027
1402
  }),
1028
- getSensorMode: z.object({}),
1029
1403
  setTemperatureHysteresis: z.object({
1030
1404
  hysteresis: z.number().min(0.1).max(25.5).multipleOf(0.1),
1405
+ commandNumber: z.string().optional().default('43'),
1406
+ }),
1407
+ getTemperatureHysteresis: z.object({
1408
+ commandNumber: z.string().optional().default('42'),
1031
1409
  }),
1032
- getTemperatureHysteresis: z.object({}),
1033
1410
  setTargetTemperaturePrecisely: z.object({
1034
1411
  targetTemperature: z.number().min(5).max(99).multipleOf(0.1),
1412
+ commandNumber: z.string().optional().default('50'),
1413
+ }),
1414
+ getTargetTemperaturePrecisely: z.object({
1415
+ commandNumber: z.string().optional().default('51'),
1035
1416
  }),
1036
- getTargetTemperaturePrecisely: z.object({}),
1037
1417
  setTargetTemperatureStep: z.object({
1038
1418
  value: z.number().min(0.1).max(10).multipleOf(0.1),
1419
+ commandNumber: z.string().optional().default('03'),
1420
+ }),
1421
+ getTargetTemperatureStep: z.object({
1422
+ commandNumber: z.string().optional().default('05'),
1039
1423
  }),
1040
- getTargetTemperatureStep: z.object({}),
1041
1424
  }
1042
1425
 
1043
1426
  export namespace WirelessThermostatCommandTypes {
@@ -1062,24 +1445,36 @@ const CO2SensorCommandSchemas = {
1062
1445
  setCo2BoundaryLevels: z.object({
1063
1446
  good_medium: z.number().min(0).max(1500),
1064
1447
  medium_bad: z.number().min(0).max(1500),
1448
+ commandNumber: z.string().optional().default('1e'),
1449
+ }),
1450
+ getCo2BoundaryLevels: z.object({
1451
+ commandNumber: z.string().optional().default('1f'),
1065
1452
  }),
1066
- getCo2BoundaryLevels: z.object({}),
1067
1453
  setCo2AutoZeroValue: z.object({
1068
1454
  ppm: z.number().min(0).max(1500),
1455
+ commandNumber: z.string().optional().default('20'),
1456
+ }),
1457
+ getCo2AutoZeroValue: z.object({
1458
+ commandNumber: z.string().optional().default('21'),
1069
1459
  }),
1070
- getCo2AutoZeroValue: z.object({}),
1071
1460
  setNotifyPeriod: z.object({
1072
1461
  good_zone: z.number().min(0).max(255),
1073
1462
  medium_zone: z.number().min(0).max(255),
1074
1463
  bad_zone: z.number().min(0).max(255),
1464
+ commandNumber: z.string().optional().default('22'),
1465
+ }),
1466
+ getNotifyPeriod: z.object({
1467
+ commandNumber: z.string().optional().default('23'),
1075
1468
  }),
1076
- getNotifyPeriod: z.object({}),
1077
1469
  setCo2MeasurementPeriod: z.object({
1078
1470
  good_zone: z.number().min(0).max(255),
1079
1471
  medium_zone: z.number().min(0).max(255),
1080
1472
  bad_zone: z.number().min(0).max(255),
1473
+ commandNumber: z.string().optional().default('24'),
1474
+ }),
1475
+ getCo2MeasurementPeriod: z.object({
1476
+ commandNumber: z.string().optional().default('25'),
1081
1477
  }),
1082
- getCo2MeasurementPeriod: z.object({}),
1083
1478
  setBuzzerNotification: z.object({
1084
1479
  duration_good_beeping: z.number().min(0).max(255),
1085
1480
  duration_good_loud: z.number().min(0).max(255),
@@ -1090,8 +1485,11 @@ const CO2SensorCommandSchemas = {
1090
1485
  duration_bad_beeping: z.number().min(0).max(255),
1091
1486
  duration_bad_loud: z.number().min(0).max(255),
1092
1487
  duration_bad_silent: z.number().min(0).max(255),
1488
+ commandNumber: z.string().optional().default('26'),
1489
+ }),
1490
+ getBuzzerNotification: z.object({
1491
+ commandNumber: z.string().optional().default('27'),
1093
1492
  }),
1094
- getBuzzerNotification: z.object({}),
1095
1493
  setCo2Led: z.object({
1096
1494
  red_good: z.number().min(0).max(255),
1097
1495
  green_good: z.number().min(0).max(255),
@@ -1105,12 +1503,18 @@ const CO2SensorCommandSchemas = {
1105
1503
  green_bad: z.number().min(0).max(255),
1106
1504
  blue_bad: z.number().min(0).max(255),
1107
1505
  duration_bad: z.number().min(0).max(255),
1506
+ commandNumber: z.string().optional().default('28'),
1507
+ }),
1508
+ getCo2Led: z.object({
1509
+ commandNumber: z.string().optional().default('29'),
1108
1510
  }),
1109
- getCo2Led: z.object({}),
1110
1511
  setCo2AutoZeroPeriod: z.object({
1111
1512
  hours: z.number().min(0).max(255),
1513
+ commandNumber: z.string().optional().default('2a'),
1514
+ }),
1515
+ getCo2AutoZeroPeriod: z.object({
1516
+ commandNumber: z.string().optional().default('2b'),
1112
1517
  }),
1113
- getCo2AutoZeroPeriod: z.object({}),
1114
1518
  }
1115
1519
 
1116
1520
  export namespace CO2SensorCommandTypes {
@@ -1131,34 +1535,52 @@ const CO2DisplayCommandSchemas = {
1131
1535
  ...ChildLockCommandSchemas,
1132
1536
  setCo2MeasurementBlindTime: z.object({
1133
1537
  time: z.number().min(0).max(255),
1538
+ commandNumber: z.string().optional().default('81'),
1539
+ }),
1540
+ getCo2MeasurementBlindTime: z.object({
1541
+ commandNumber: z.string().optional().default('80'),
1134
1542
  }),
1135
- getCo2MeasurementBlindTime: z.object({}),
1136
1543
  setCo2BoundaryLevels: z.object({
1137
1544
  good_medium: z.number().min(0).max(1500),
1138
1545
  medium_bad: z.number().min(0).max(1500),
1546
+ commandNumber: z.string().optional().default('1e'),
1547
+ }),
1548
+ getCo2BoundaryLevels: z.object({
1549
+ commandNumber: z.string().optional().default('1f'),
1139
1550
  }),
1140
- getCo2BoundaryLevels: z.object({}),
1141
1551
  setCo2AutoZeroValue: z.object({
1142
1552
  ppm: z.number().min(0).max(1500),
1553
+ commandNumber: z.string().optional().default('20'),
1554
+ }),
1555
+ getCo2AutoZeroValue: z.object({
1556
+ commandNumber: z.string().optional().default('21'),
1143
1557
  }),
1144
- getCo2AutoZeroValue: z.object({}),
1145
1558
  setCo2MeasurementPeriod: z.object({
1146
1559
  good_zone: z.number().min(0).max(255),
1147
1560
  medium_zone: z.number().min(0).max(255),
1148
1561
  bad_zone: z.number().min(0).max(255),
1562
+ commandNumber: z.string().optional().default('24'),
1563
+ }),
1564
+ getCo2MeasurementPeriod: z.object({
1565
+ commandNumber: z.string().optional().default('25'),
1149
1566
  }),
1150
- getCo2MeasurementPeriod: z.object({}),
1151
1567
  setCo2AutoZeroPeriod: z.object({
1152
1568
  hours: z.number().min(0).max(255),
1569
+ commandNumber: z.string().optional().default('2a'),
1570
+ }),
1571
+ getCo2AutoZeroPeriod: z.object({
1572
+ commandNumber: z.string().optional().default('2b'),
1153
1573
  }),
1154
- getCo2AutoZeroPeriod: z.object({}),
1155
1574
 
1156
1575
  setCo2ImagesVisibility: z.object({
1157
1576
  chart: z.boolean(),
1158
1577
  digital_value: z.boolean(),
1159
1578
  emoji: z.boolean(),
1579
+ commandNumber: z.string().optional().default('82'),
1580
+ }),
1581
+ getCo2ImagesVisibility: z.object({
1582
+ commandNumber: z.string().optional().default('83'),
1160
1583
  }),
1161
- getCo2ImagesVisibility: z.object({}),
1162
1584
  }
1163
1585
 
1164
1586
  export namespace CO2DisplayCommandTypes {
@@ -1174,33 +1596,53 @@ const CO2DisplayLiteCommandSchemas = {
1174
1596
  setCo2BoundaryLevels: z.object({
1175
1597
  good_medium: z.number().min(0).max(1500),
1176
1598
  medium_bad: z.number().min(0).max(1500),
1599
+ commandNumber: z.string().optional().default('1e'),
1600
+ }),
1601
+ getCo2BoundaryLevels: z.object({
1602
+ commandNumber: z.string().optional().default('1f'),
1177
1603
  }),
1178
- getCo2BoundaryLevels: z.object({}),
1179
1604
  setCo2AutoZeroValue: z.object({
1180
1605
  ppm: z.number().min(0).max(1500),
1606
+ commandNumber: z.string().optional().default('20'),
1607
+ }),
1608
+ getCo2AutoZeroValue: z.object({
1609
+ commandNumber: z.string().optional().default('21'),
1181
1610
  }),
1182
- getCo2AutoZeroValue: z.object({}),
1183
1611
  setCo2MeasurementPeriod: z.object({
1184
1612
  good_zone: z.number().min(0).max(255),
1185
1613
  medium_zone: z.number().min(0).max(255),
1186
1614
  bad_zone: z.number().min(0).max(255),
1615
+ commandNumber: z.string().optional().default('24'),
1616
+ }),
1617
+ getCo2MeasurementPeriod: z.object({
1618
+ commandNumber: z.string().optional().default('25'),
1187
1619
  }),
1188
- getCo2MeasurementPeriod: z.object({}),
1189
1620
  setCo2AutoZeroPeriod: z.object({
1190
1621
  hours: z.number().min(0).max(255),
1622
+ commandNumber: z.string().optional().default('2a'),
1623
+ }),
1624
+ getCo2AutoZeroPeriod: z.object({
1625
+ commandNumber: z.string().optional().default('2b'),
1191
1626
  }),
1192
- getCo2AutoZeroPeriod: z.object({}),
1193
1627
  setCo2ImagesVisibility: z.object({
1194
1628
  chart: z.boolean(),
1195
1629
  digital_value: z.boolean(),
1196
1630
  emoji: z.boolean(),
1631
+ commandNumber: z.string().optional().default('82'),
1632
+ }),
1633
+ getCo2ImagesVisibility: z.object({
1634
+ commandNumber: z.string().optional().default('83'),
1197
1635
  }),
1198
- getCo2ImagesVisibility: z.object({}),
1199
1636
  setUplinkSendingOnButtonPress: z.object({
1200
1637
  value: z.number().min(0).max(1),
1638
+ commandNumber: z.string().optional().default('2e'),
1639
+ }),
1640
+ getUplinkSendingOnButtonPress: z.object({
1641
+ commandNumber: z.string().optional().default('2f'),
1642
+ }),
1643
+ restartDevice: z.object({
1644
+ commandNumber: z.string().optional().default('a5'),
1201
1645
  }),
1202
- getUplinkSendingOnButtonPress: z.object({}),
1203
- restartDevice: z.object({}),
1204
1646
  }
1205
1647
 
1206
1648
  export namespace CO2DisplayLiteCommandTypes {
@@ -1214,13 +1656,19 @@ const HTSensorCommandSchemas = {
1214
1656
  setTemperatureCompensation: z.object({
1215
1657
  negativeCompensation: z.boolean(), // true: negative compensation, false: positive compensation
1216
1658
  compensation: z.number().min(0).max(25.5).multipleOf(0.1),
1659
+ commandNumber: z.string().optional().default('31'),
1660
+ }),
1661
+ getTemperatureCompensation: z.object({
1662
+ commandNumber: z.string().optional().default('32'),
1217
1663
  }),
1218
- getTemperatureCompensation: z.object({}),
1219
1664
  setHumidityCompensation: z.object({
1220
1665
  negativeCompensation: z.boolean(), // true: negative compensation, false: positive compensation
1221
1666
  compensation: z.number().min(0).max(255).multipleOf(0.1),
1667
+ commandNumber: z.string().optional().default('33'),
1668
+ }),
1669
+ getHumidityCompensation: z.object({
1670
+ commandNumber: z.string().optional().default('34'),
1222
1671
  }),
1223
- getHumidityCompensation: z.object({}),
1224
1672
  }
1225
1673
 
1226
1674
  export namespace HTSensorCommandTypes {
@@ -1238,6 +1686,7 @@ const AQICommandSchemas = {
1238
1686
  greenDuration: z.number(),
1239
1687
  blueBehavior: z.number(),
1240
1688
  blueDuration: z.number(),
1689
+ commandNumber: z.string().optional().default('05'),
1241
1690
  }),
1242
1691
  }
1243
1692
 
@@ -1248,23 +1697,37 @@ export namespace AQICommandTypes {
1248
1697
  /* --------------------------------------- T-FLOOD COMMANDS --------------------------------------- */
1249
1698
  const TFloodCommandSchemas = {
1250
1699
  ...GeneralCommandSchemas,
1251
- getTemperature: z.object({}),
1700
+ getTemperature: z.object({
1701
+ commandNumber: z.string().optional().default('01'),
1702
+ }),
1252
1703
  setFloodAlarmTime: z.object({
1253
1704
  time: z.number().min(0).max(255),
1705
+ commandNumber: z.string().optional().default('06'),
1706
+ }),
1707
+ getFloodAlarmTime: z.object({
1708
+ commandNumber: z.string().optional().default('10'),
1254
1709
  }),
1255
- getFloodAlarmTime: z.object({}),
1256
1710
  setKeepAlive: z.object({
1257
1711
  time: z.number().min(1).max(14400),
1712
+ commandNumber: z.string().optional().default('02'),
1713
+ }),
1714
+ getDeviceVersion: z.object({
1715
+ commandNumber: z.string().optional().default('04'),
1258
1716
  }),
1259
- getDeviceVersion: z.object({}),
1260
1717
  setFloodEventSendTime: z.object({
1261
1718
  time: z.number().min(0).max(255),
1719
+ commandNumber: z.string().optional().default('08'),
1720
+ }),
1721
+ getFloodEventSendTime: z.object({
1722
+ commandNumber: z.string().optional().default('09'),
1262
1723
  }),
1263
- getFloodEventSendTime: z.object({}),
1264
1724
  setFloodEventUplinkType: z.object({
1265
1725
  type: z.enum(['01', '00']), // 01: confirmedUplinks, 00: unconfirmedUplinks
1726
+ commandNumber: z.string().optional().default('13'),
1727
+ }),
1728
+ getFloodEventUplinkType: z.object({
1729
+ commandNumber: z.string().optional().default('14'),
1266
1730
  }),
1267
- getFloodEventUplinkType: z.object({}),
1268
1731
  }
1269
1732
 
1270
1733
  export namespace TFloodCommandTypes {
@@ -1278,15 +1741,18 @@ export namespace TFloodCommandTypes {
1278
1741
  const TringThermostatCommandSchemas = {
1279
1742
  setThermostatTarget: z.object({
1280
1743
  target: z.number(),
1744
+ commandNumber: z.string().optional().default('01'),
1281
1745
  }),
1282
1746
  setThermostatConfig: z.object({
1283
1747
  time: z.number(),
1284
1748
  temp_span: z.number(),
1285
1749
  temp_sampling: z.number(),
1286
1750
  target: z.number(),
1751
+ commandNumber: z.string().optional().default('02'),
1287
1752
  }),
1288
1753
  setKeepAlive: z.object({
1289
1754
  time: z.number(),
1755
+ commandNumber: z.string().optional().default('02'),
1290
1756
  }),
1291
1757
  }
1292
1758
 
@@ -1300,12 +1766,15 @@ export namespace TringThermostatCommandTypes {
1300
1766
  const DSKDeviceCommandSchemas = {
1301
1767
  setVrvStatus: z.object({
1302
1768
  status: z.number(),
1769
+ commandNumber: z.string().optional().default('1e'),
1303
1770
  }),
1304
1771
  setVrvOnTime: z.object({
1305
1772
  time: z.number(),
1773
+ commandNumber: z.string().optional().default('20'),
1306
1774
  }),
1307
1775
  setVrvOffTime: z.object({
1308
1776
  time: z.number(),
1777
+ commandNumber: z.string().optional().default('21'),
1309
1778
  }),
1310
1779
  }
1311
1780
 
@@ -1320,15 +1789,27 @@ const ButtonCommandSchemas = {
1320
1789
  ...GeneralCommandSchemas,
1321
1790
  setSendEventLater: z.object({
1322
1791
  value: z.number().min(0).max(1), // 1: send later when allowed, 0: Don't send later when allowed
1792
+ commandNumber: z.string().optional().default('1e'),
1793
+ }),
1794
+ getSendEventLater: z.object({
1795
+ commandNumber: z.string().optional().default('1f'),
1323
1796
  }),
1324
- getSendEventLater: z.object({}),
1325
1797
  clearPressEventCounter: z.object({
1326
1798
  value: z.number().min(1).max(3),
1799
+ commandNumber: z.string().optional().default('20'),
1800
+ }),
1801
+ restartDevice: z.object({
1802
+ commandNumber: z.string().optional().default('a5'),
1803
+ }),
1804
+ getSinglePressEventCounter: z.object({
1805
+ commandNumber: z.string().optional().default('b1'),
1806
+ }),
1807
+ getDoublePressEventCounter: z.object({
1808
+ commandNumber: z.string().optional().default('b2'),
1809
+ }),
1810
+ getTriplePressEventCounter: z.object({
1811
+ commandNumber: z.string().optional().default('b3'),
1327
1812
  }),
1328
- restartDevice: z.object({}),
1329
- getSinglePressEventCounter: z.object({}),
1330
- getDoublePressEventCounter: z.object({}),
1331
- getTriplePressEventCounter: z.object({}),
1332
1813
  }
1333
1814
 
1334
1815
  export namespace ButtonCommandTypes {
@@ -1341,21 +1822,35 @@ const HTPirLiteCommandSchemas = {
1341
1822
  ...GeneralCommandSchemas,
1342
1823
  setUplinkSendingOnButtonPress: z.object({
1343
1824
  value: z.number().min(0).max(1),
1825
+ commandNumber: z.string().optional().default('2e'),
1826
+ }),
1827
+ getUplinkSendingOnButtonPress: z.object({
1828
+ commandNumber: z.string().optional().default('2f'),
1829
+ }),
1830
+ restartDevice: z.object({
1831
+ commandNumber: z.string().optional().default('a5'),
1344
1832
  }),
1345
- getUplinkSendingOnButtonPress: z.object({}),
1346
- restartDevice: z.object({}),
1347
1833
  setPIRSensorState: z.object({
1348
1834
  state: z.number().min(0).max(1), // 0: disabled, 1: enabled
1835
+ commandNumber: z.string().optional().default('36'),
1836
+ }),
1837
+ getPIRSensorState: z.object({
1838
+ commandNumber: z.string().optional().default('37'),
1349
1839
  }),
1350
- getPIRSensorState: z.object({}),
1351
1840
  setPIRSensorSensitivity: z.object({
1352
1841
  sensitivity: z.number().min(12).max(255),
1842
+ commandNumber: z.string().optional().default('3e'),
1843
+ }),
1844
+ getPIRSensorSensitivity: z.object({
1845
+ commandNumber: z.string().optional().default('3f'),
1353
1846
  }),
1354
- getPIRSensorSensitivity: z.object({}),
1355
1847
  setOccupancyTimeout: z.object({
1356
1848
  timeout: z.number().min(15).max(65535), // in seconds, between 15 and 65535
1849
+ commandNumber: z.string().optional().default('38'),
1850
+ }),
1851
+ getOccupancyTimeout: z.object({
1852
+ commandNumber: z.string().optional().default('39'),
1357
1853
  }),
1358
- getOccupancyTimeout: z.object({}),
1359
1854
  }
1360
1855
 
1361
1856
  export namespace HTPirLiteCommandTypes {
@@ -1375,36 +1870,59 @@ const Co2PirLiteCommandSchemas = {
1375
1870
  ...GeneralCommandSchemas,
1376
1871
  setPIRSensorState: z.object({
1377
1872
  state: z.number().min(0).max(1), // 0: disabled, 1: enabled
1873
+ commandNumber: z.string().optional().default('36'),
1874
+ }),
1875
+ getPIRSensorState: z.object({
1876
+ commandNumber: z.string().optional().default('37'),
1378
1877
  }),
1379
- getPIRSensorState: z.object({}),
1380
1878
  setPIRSensorSensitivity: z.object({
1381
1879
  sensitivity: z.number().min(12).max(255),
1880
+ commandNumber: z.string().optional().default('3e'),
1881
+ }),
1882
+ getPIRSensorSensitivity: z.object({
1883
+ commandNumber: z.string().optional().default('3f'),
1382
1884
  }),
1383
- getPIRSensorSensitivity: z.object({}),
1384
1885
  setOccupancyTimeout: z.object({
1385
1886
  timeout: z.number().min(15).max(65535), // in seconds, between 15 and 65535
1887
+ commandNumber: z.string().optional().default('38'),
1888
+ }),
1889
+ getOccupancyTimeout: z.object({
1890
+ commandNumber: z.string().optional().default('39'),
1891
+ }),
1892
+ restartDevice: z.object({
1893
+ commandNumber: z.string().optional().default('a5'),
1386
1894
  }),
1387
- getOccupancyTimeout: z.object({}),
1388
- restartDevice: z.object({}),
1389
1895
  setCo2BoundaryLevels: z.object({
1390
1896
  good_medium: z.number().min(0).max(1500),
1391
1897
  medium_bad: z.number().min(0).max(1500),
1898
+ commandNumber: z.string().optional().default('1e'),
1899
+ }),
1900
+ getCo2BoundaryLevels: z.object({
1901
+ commandNumber: z.string().optional().default('1f'),
1392
1902
  }),
1393
- getCo2BoundaryLevels: z.object({}),
1394
1903
  setCo2AutoZeroValue: z.object({
1395
1904
  ppm: z.number().min(0).max(1500),
1905
+ commandNumber: z.string().optional().default('20'),
1906
+ }),
1907
+ getCo2AutoZeroValue: z.object({
1908
+ commandNumber: z.string().optional().default('21'),
1396
1909
  }),
1397
- getCo2AutoZeroValue: z.object({}),
1398
1910
  setCo2MeasurementPeriod: z.object({
1399
1911
  good_zone: z.number().min(0).max(255),
1400
1912
  medium_zone: z.number().min(0).max(255),
1401
1913
  bad_zone: z.number().min(0).max(255),
1914
+ commandNumber: z.string().optional().default('24'),
1915
+ }),
1916
+ getCo2MeasurementPeriod: z.object({
1917
+ commandNumber: z.string().optional().default('25'),
1402
1918
  }),
1403
- getCo2MeasurementPeriod: z.object({}),
1404
1919
  setCo2AutoZeroPeriod: z.object({
1405
1920
  hours: z.number().min(0).max(255),
1921
+ commandNumber: z.string().optional().default('2a'),
1922
+ }),
1923
+ getCo2AutoZeroPeriod: z.object({
1924
+ commandNumber: z.string().optional().default('2b'),
1406
1925
  }),
1407
- getCo2AutoZeroPeriod: z.object({}),
1408
1926
  }
1409
1927
 
1410
1928
  export namespace Co2PirLiteCommandTypes {
@@ -1423,6 +1941,7 @@ const MelissaCommandSchemas = {
1423
1941
  setIrCodeRecording: z.object({
1424
1942
  time: z.number().min(0).max(255),
1425
1943
  position: z.number().min(0).max(10),
1944
+ commandNumber: z.string().optional().default('09'),
1426
1945
  }),
1427
1946
  }
1428
1947
 
@@ -1435,42 +1954,70 @@ const MultiSensorCommandSchemas = {
1435
1954
  ...GeneralCommandSchemas,
1436
1955
  setLightState: z.object({
1437
1956
  enabled: z.boolean(),
1957
+ commandNumber: z.string().optional().default('1e'),
1958
+ }),
1959
+ getLightState: z.object({
1960
+ commandNumber: z.string().optional().default('1f'),
1438
1961
  }),
1439
- getLightState: z.object({}),
1440
1962
  setHallState: z.object({
1441
1963
  enabled: z.boolean(),
1964
+ commandNumber: z.string().optional().default('20'),
1965
+ }),
1966
+ getHallState: z.object({
1967
+ commandNumber: z.string().optional().default('21'),
1442
1968
  }),
1443
- getHallState: z.object({}),
1444
1969
  setHallBlindPeriod: z.object({
1445
1970
  period: z.number().min(0).max(65535),
1971
+ commandNumber: z.string().optional().default('22'),
1972
+ }),
1973
+ getHallBlindPeriod: z.object({
1974
+ commandNumber: z.string().optional().default('23'),
1446
1975
  }),
1447
- getHallBlindPeriod: z.object({}),
1448
1976
  setMicrophoneState: z.object({
1449
1977
  enabled: z.boolean(),
1978
+ commandNumber: z.string().optional().default('24'),
1979
+ }),
1980
+ getMicrophoneState: z.object({
1981
+ commandNumber: z.string().optional().default('25'),
1450
1982
  }),
1451
- getMicrophoneState: z.object({}),
1452
1983
  setMicrophoneSamplingPeriod: z.object({
1453
1984
  period: z.number().min(0).max(65535),
1985
+ commandNumber: z.string().optional().default('26'),
1986
+ }),
1987
+ getMicrophoneSamplingPeriod: z.object({
1988
+ commandNumber: z.string().optional().default('27'),
1454
1989
  }),
1455
- getMicrophoneSamplingPeriod: z.object({}),
1456
1990
  setGasState: z.object({
1457
1991
  enabled: z.boolean(),
1992
+ commandNumber: z.string().optional().default('28'),
1993
+ }),
1994
+ getGasState: z.object({
1995
+ commandNumber: z.string().optional().default('29'),
1458
1996
  }),
1459
- getGasState: z.object({}),
1460
1997
  setGasMeasurementPeriod: z.object({
1461
1998
  minutes: z.number().min(0).max(255),
1999
+ commandNumber: z.string().optional().default('2a'),
2000
+ }),
2001
+ getGasMeasurementPeriod: z.object({
2002
+ commandNumber: z.string().optional().default('2b'),
1462
2003
  }),
1463
- getGasMeasurementPeriod: z.object({}),
1464
2004
  setPirState: z.object({
1465
2005
  enabled: z.boolean(),
2006
+ commandNumber: z.string().optional().default('2c'),
2007
+ }),
2008
+ getPirState: z.object({
2009
+ commandNumber: z.string().optional().default('2d'),
1466
2010
  }),
1467
- getPirState: z.object({}),
1468
2011
  setPirActiveReportingPeriod: z.object({
1469
2012
  time: z.number().min(0).max(65535),
2013
+ commandNumber: z.string().optional().default('2e'),
2014
+ }),
2015
+ getPirActiveReportingPeriod: z.object({
2016
+ commandNumber: z.string().optional().default('2f'),
2017
+ }),
2018
+ restart: z.object({
2019
+ commandNumber: z.string().optional().default('a5'),
1470
2020
  }),
1471
- getPirActiveReportingPeriod: z.object({}),
1472
- getRegion: z.object({}),
1473
- restart: z.object({}),
1474
2021
  }
1475
2022
 
1476
2023
  export namespace MultiSensorCommandTypes {