@jakobgoerke/ac-infinity-client 0.2.1 → 0.3.0

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.
@@ -1,40 +1,137 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ControllerSchema = exports.ControllerDeviceInfoSchema = exports.ControllerPortSchema = exports.ControllerDeviceType = void 0;
3
+ exports.ControllerSchema = exports.ControllerDeviceInfoSchema = exports.ControllerPortSchema = exports.ControllerSensorSchema = exports.SensorType = exports.ControllerDeviceType = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const Device_1 = require("./Device");
6
6
  var ControllerDeviceType;
7
7
  (function (ControllerDeviceType) {
8
+ ControllerDeviceType[ControllerDeviceType["CONTROLLER_67"] = 1] = "CONTROLLER_67";
9
+ ControllerDeviceType[ControllerDeviceType["CONTROLLER_69"] = 7] = "CONTROLLER_69";
10
+ ControllerDeviceType[ControllerDeviceType["CONTROLLER_69_WIFI"] = 8] = "CONTROLLER_69_WIFI";
8
11
  ControllerDeviceType[ControllerDeviceType["UIS_CONTROLLER_69_PRO"] = 11] = "UIS_CONTROLLER_69_PRO";
9
- ControllerDeviceType[ControllerDeviceType["UIS_CONTROLLER_69_PRO_PLUS"] = 10] = "UIS_CONTROLLER_69_PRO_PLUS";
12
+ ControllerDeviceType[ControllerDeviceType["UIS_CONTROLLER_69_PRO_PLUS"] = 18] = "UIS_CONTROLLER_69_PRO_PLUS";
13
+ ControllerDeviceType[ControllerDeviceType["UIS_CONTROLLER_AI_PLUS"] = 20] = "UIS_CONTROLLER_AI_PLUS";
10
14
  })(ControllerDeviceType || (exports.ControllerDeviceType = ControllerDeviceType = {}));
15
+ // these controllers report pumps as PUMP instead of WATER_PUMP
16
+ const PUMP_CONTROLLERS = [ControllerDeviceType.UIS_CONTROLLER_69_PRO, ControllerDeviceType.UIS_CONTROLLER_69_PRO_PLUS];
17
+ var SensorType;
18
+ (function (SensorType) {
19
+ SensorType[SensorType["TEMPERATURE_F"] = 0] = "TEMPERATURE_F";
20
+ SensorType[SensorType["TEMPERATURE_C"] = 1] = "TEMPERATURE_C";
21
+ SensorType[SensorType["HUMIDITY"] = 2] = "HUMIDITY";
22
+ SensorType[SensorType["VPD"] = 3] = "VPD";
23
+ SensorType[SensorType["ZONE_TEMPERATURE_F"] = 4] = "ZONE_TEMPERATURE_F";
24
+ SensorType[SensorType["ZONE_TEMPERATURE_C"] = 5] = "ZONE_TEMPERATURE_C";
25
+ SensorType[SensorType["ZONE_HUMIDITY"] = 6] = "ZONE_HUMIDITY";
26
+ SensorType[SensorType["ZONE_VPD"] = 7] = "ZONE_VPD";
27
+ SensorType[SensorType["LEAF_TEMPERATURE_F"] = 8] = "LEAF_TEMPERATURE_F";
28
+ SensorType[SensorType["LEAF_TEMPERATURE_C"] = 9] = "LEAF_TEMPERATURE_C";
29
+ SensorType[SensorType["SOIL_MOISTURE"] = 10] = "SOIL_MOISTURE";
30
+ SensorType[SensorType["CO2"] = 11] = "CO2";
31
+ SensorType[SensorType["LIGHT"] = 12] = "LIGHT";
32
+ SensorType[SensorType["PH"] = 13] = "PH";
33
+ SensorType[SensorType["EC_US"] = 14] = "EC_US";
34
+ SensorType[SensorType["EC_MS"] = 15] = "EC_MS";
35
+ SensorType[SensorType["TDS_PPM"] = 16] = "TDS_PPM";
36
+ SensorType[SensorType["TDS_PPT"] = 17] = "TDS_PPT";
37
+ SensorType[SensorType["WATER_TEMPERATURE_F"] = 18] = "WATER_TEMPERATURE_F";
38
+ SensorType[SensorType["WATER_TEMPERATURE_C"] = 19] = "WATER_TEMPERATURE_C";
39
+ SensorType[SensorType["WATER_LEVEL"] = 20] = "WATER_LEVEL";
40
+ })(SensorType || (exports.SensorType = SensorType = {}));
41
+ // outlet ports report their device type with this bit set
42
+ const OUTLET_FLAG = 0x80;
43
+ // ports without an assigned device type are recognized by the id resistor in the plug, in ohms
44
+ const RESISTANCE_RANGES = [
45
+ [380, 420, Device_1.DeviceType.GROW_LIGHT],
46
+ [3135, 3465, Device_1.DeviceType.GROW_LIGHT],
47
+ [4845, 10500, Device_1.DeviceType.FAN],
48
+ [10501, 12600, Device_1.DeviceType.HUMIDIFIER],
49
+ [12601, 14385, Device_1.DeviceType.DEHUMIDIFIER],
50
+ [16591, 18900, Device_1.DeviceType.HEATER],
51
+ [18901, 21525, Device_1.DeviceType.AIR_CONDITION],
52
+ [35100, 42900, Device_1.DeviceType.DEHUMIDIFIER],
53
+ ];
54
+ const PUMP_RESISTANCE_RANGE = [1350, 1650];
55
+ const deviceTypeByResistance = (resistance, controllerType) => {
56
+ if (resistance === null) {
57
+ return Device_1.DeviceType.NONE;
58
+ }
59
+ const ohms = resistance < 0 ? resistance & 0xffff : resistance;
60
+ const [pumpMin, pumpMax] = PUMP_RESISTANCE_RANGE;
61
+ if (ohms >= pumpMin && ohms <= pumpMax) {
62
+ return PUMP_CONTROLLERS.includes(controllerType) ? Device_1.DeviceType.PUMP : Device_1.DeviceType.WATER_PUMP;
63
+ }
64
+ return RESISTANCE_RANGES.find(([min, max]) => ohms >= min && ohms <= max)?.[2] ?? Device_1.DeviceType.NONE;
65
+ };
66
+ // the vendor reports this value for a sensor that has no reading
67
+ const SENSOR_NO_DATA = -32768;
68
+ const decodeSensorValue = (data, precision) => {
69
+ if (data === SENSOR_NO_DATA) {
70
+ return null;
71
+ }
72
+ switch (precision) {
73
+ case 0:
74
+ return data * 10;
75
+ case 2:
76
+ return data / 10;
77
+ case 3:
78
+ return data / 100;
79
+ default:
80
+ return data;
81
+ }
82
+ };
83
+ exports.ControllerSensorSchema = zod_1.z
84
+ .object({
85
+ accessPort: zod_1.z.number(),
86
+ sensorType: zod_1.z.number(),
87
+ sensorPrecision: zod_1.z.number(),
88
+ sensorData: zod_1.z.number(),
89
+ })
90
+ .transform((v) => ({
91
+ port: v.accessPort,
92
+ type: v.sensorType,
93
+ value: decodeSensorValue(v.sensorData, v.sensorPrecision),
94
+ }));
11
95
  exports.ControllerPortSchema = zod_1.z
12
96
  .object({
13
97
  speak: zod_1.z.number(),
14
98
  port: zod_1.z.number().positive(),
15
99
  curMode: zod_1.z.enum(Device_1.DeviceMode),
16
- loadType: zod_1.z.enum(Device_1.DeviceType),
100
+ loadType: zod_1.z.number(),
17
101
  portName: zod_1.z.string(),
102
+ portResistance: zod_1.z.number().nullish(),
103
+ online: zod_1.z.coerce.boolean(),
104
+ remainTime: zod_1.z.number().nullish(),
18
105
  })
19
106
  .transform((v) => ({
20
107
  port: v.port,
21
108
  currentLevel: v.speak,
22
109
  currentMode: v.curMode,
23
- deviceType: v.loadType,
110
+ /** NONE when no type is assigned, the controller schema then recognizes it by resistance */
111
+ deviceType: (v.loadType & ~OUTLET_FLAG),
24
112
  deviceName: v.portName,
113
+ /** id resistor of the plugged in device, in ohms */
114
+ resistance: v.portResistance ?? null,
115
+ online: v.online,
116
+ /** seconds left until the current timer, cycle or schedule step switches */
117
+ remainingTime: v.remainTime ?? null,
25
118
  }));
26
119
  exports.ControllerDeviceInfoSchema = zod_1.z
27
120
  .object({
28
121
  temperature: zod_1.z.number(),
122
+ temperatureF: zod_1.z.number().nullish(),
29
123
  humidity: zod_1.z.number(),
30
124
  vpdnums: zod_1.z.number(),
31
125
  ports: zod_1.z.array(exports.ControllerPortSchema),
126
+ sensors: zod_1.z.array(exports.ControllerSensorSchema).nullish(),
32
127
  })
33
128
  .transform((v) => ({
34
129
  temperature: v.temperature / 100,
130
+ temperatureF: v.temperatureF == null ? null : v.temperatureF / 100,
35
131
  humidity: v.humidity / 100,
36
132
  vpd: v.vpdnums / 100,
37
133
  ports: v.ports,
134
+ sensors: v.sensors ?? [],
38
135
  }));
39
136
  exports.ControllerSchema = zod_1.z
40
137
  .object({
@@ -44,17 +141,30 @@ exports.ControllerSchema = zod_1.z
44
141
  devType: zod_1.z.enum(ControllerDeviceType),
45
142
  devPortCount: zod_1.z.number().positive(),
46
143
  devVersion: zod_1.z.number(),
144
+ devMacAddr: zod_1.z.string().nullish(),
145
+ zoneId: zod_1.z.string().nullish(),
146
+ wifiName: zod_1.z.string().nullish(),
47
147
  online: zod_1.z.coerce.boolean(),
48
148
  firmwareVersion: zod_1.z.string(),
49
149
  hardwareVersion: zod_1.z.string(),
50
150
  deviceInfo: exports.ControllerDeviceInfoSchema,
51
151
  })
52
- .transform(({ devId, devCode, devName, devType, devPortCount, devVersion, ...rest }) => ({
152
+ .transform(({ devId, devCode, devName, devType, devPortCount, devVersion, devMacAddr, zoneId, wifiName, deviceInfo, ...rest }) => ({
53
153
  id: devId,
54
154
  code: devCode,
55
155
  name: devName,
56
156
  type: devType,
57
157
  totalPorts: devPortCount,
58
158
  version: devVersion,
159
+ macAddress: devMacAddr ?? null,
160
+ timeZone: zoneId ?? null,
161
+ wifiName: wifiName ?? null,
162
+ deviceInfo: {
163
+ ...deviceInfo,
164
+ ports: deviceInfo.ports.map((port) => ({
165
+ ...port,
166
+ deviceType: port.deviceType || deviceTypeByResistance(port.resistance, devType),
167
+ })),
168
+ },
59
169
  ...rest,
60
170
  }));
@@ -1,11 +1,17 @@
1
1
  import { z } from 'zod';
2
2
  export declare enum DeviceType {
3
+ NONE = 0,
3
4
  GROW_LIGHT = 1,
4
5
  HUMIDIFIER = 2,
5
6
  DEHUMIDIFIER = 3,
6
7
  HEATER = 4,
7
8
  AIR_CONDITION = 5,
8
- FAN = 6
9
+ FAN = 6,
10
+ PUMP = 8,
11
+ WATER_PUMP = 9,
12
+ CO2_GENERATOR = 10,
13
+ WATER_COOLER = 13,
14
+ WATER_HEATER = 14
9
15
  }
10
16
  export declare enum DeviceMode {
11
17
  OFF = 1,
@@ -17,6 +23,10 @@ export declare enum DeviceMode {
17
23
  SCHEDULE = 7,
18
24
  VPD = 8
19
25
  }
26
+ export declare enum TemperatureUnit {
27
+ FAHRENHEIT = 0,
28
+ CELSIUS = 1
29
+ }
20
30
  export declare const DeviceSettingsSchema: z.ZodPipe<z.ZodObject<{
21
31
  devId: z.ZodString;
22
32
  devMacAddr: z.ZodNullable<z.ZodString>;
@@ -44,7 +54,7 @@ export declare const DeviceSettingsSchema: z.ZodPipe<z.ZodObject<{
44
54
  devCh: z.ZodNumber;
45
55
  devTt: z.ZodNumber;
46
56
  devTh: z.ZodNumber;
47
- devCompany: z.ZodNumber;
57
+ devCompany: z.ZodEnum<typeof TemperatureUnit>;
48
58
  devTth: z.ZodNumber;
49
59
  vpdCth: z.ZodNumber;
50
60
  vpdCt: z.ZodNumber;
@@ -106,6 +116,30 @@ export declare const DeviceSettingsSchema: z.ZodPipe<z.ZodObject<{
106
116
  matterCode: z.ZodNullable<z.ZodString>;
107
117
  matterSta: z.ZodNullable<z.ZodUnknown>;
108
118
  }, z.core.$strip>, z.ZodTransform<{
119
+ name: string | null;
120
+ temperatureUnit: TemperatureUnit;
121
+ brightness: number;
122
+ backlight: boolean;
123
+ calibration: {
124
+ temperatureC: number;
125
+ temperatureF: number;
126
+ humidity: number;
127
+ leafTemperatureC: number;
128
+ leafTemperatureF: number;
129
+ };
130
+ transition: {
131
+ temperatureC: number;
132
+ temperatureF: number;
133
+ humidity: number;
134
+ vpd: number;
135
+ };
136
+ buffer: {
137
+ enabled: boolean;
138
+ temperatureC: number;
139
+ temperatureF: number;
140
+ humidity: number;
141
+ vpd: number;
142
+ };
109
143
  id: string;
110
144
  port: number;
111
145
  levelWhileOff: number;
@@ -138,7 +172,7 @@ export declare const DeviceSettingsSchema: z.ZodPipe<z.ZodObject<{
138
172
  devCh: number;
139
173
  devTt: number;
140
174
  devTh: number;
141
- devCompany: number;
175
+ devCompany: TemperatureUnit;
142
176
  devTth: number;
143
177
  vpdCth: number;
144
178
  vpdCt: number;
@@ -265,6 +299,69 @@ export declare const DeviceModeSettingsSchema: z.ZodPipe<z.ZodObject<{
265
299
  waterTempLowValue: z.ZodNumber;
266
300
  waterTempLowValueF: z.ZodNumber;
267
301
  }, z.core.$strip>, z.ZodTransform<{
302
+ /** seconds left until the current timer, cycle or schedule step switches */
303
+ remainingTime: number | null;
304
+ /** durations in seconds */
305
+ timer: {
306
+ toOn: number;
307
+ toOff: number;
308
+ };
309
+ /** durations in seconds */
310
+ cycle: {
311
+ on: number;
312
+ off: number;
313
+ };
314
+ /** minutes after midnight, null when not set */
315
+ schedule: {
316
+ start: number | null;
317
+ end: number | null;
318
+ };
319
+ auto: {
320
+ targetMode: boolean;
321
+ highTemperature: {
322
+ enabled: boolean;
323
+ celsius: number;
324
+ fahrenheit: number;
325
+ };
326
+ lowTemperature: {
327
+ enabled: boolean;
328
+ celsius: number;
329
+ fahrenheit: number;
330
+ };
331
+ highHumidity: {
332
+ enabled: boolean;
333
+ value: number;
334
+ };
335
+ lowHumidity: {
336
+ enabled: boolean;
337
+ value: number;
338
+ };
339
+ targetTemperature: {
340
+ enabled: boolean;
341
+ celsius: number;
342
+ fahrenheit: number;
343
+ };
344
+ targetHumidity: {
345
+ enabled: boolean;
346
+ value: number;
347
+ };
348
+ };
349
+ /** values in kPa */
350
+ vpd: {
351
+ targetMode: boolean;
352
+ high: {
353
+ enabled: boolean;
354
+ value: number;
355
+ };
356
+ low: {
357
+ enabled: boolean;
358
+ value: number;
359
+ };
360
+ target: {
361
+ enabled: boolean;
362
+ value: number;
363
+ };
364
+ };
268
365
  id: string;
269
366
  port: number;
270
367
  levelWhileOff: number;
@@ -336,7 +433,307 @@ export declare const DeviceModeSettingsSchema: z.ZodPipe<z.ZodObject<{
336
433
  waterTempLowValueF: number;
337
434
  }>>;
338
435
  export type DeviceSettings = z.infer<typeof DeviceSettingsSchema>;
436
+ export type DeviceSettingsInput = z.input<typeof DeviceSettingsSchema>;
339
437
  export type DeviceModeSettings = z.infer<typeof DeviceModeSettingsSchema>;
340
438
  export type DeviceModeSettingsInput = z.input<typeof DeviceModeSettingsSchema>;
341
- export declare function encodeDeviceModeSettings(settings: Partial<DeviceModeSettings>): Partial<DeviceModeSettingsInput>;
439
+ export declare const DeviceModeSettingsChangesSchema: z.ZodPipe<z.ZodObject<{
440
+ mode: z.ZodOptional<z.ZodEnum<typeof DeviceMode>>;
441
+ levelWhileOn: z.ZodOptional<z.ZodNumber>;
442
+ levelWhileOff: z.ZodOptional<z.ZodNumber>;
443
+ timer: z.ZodOptional<z.ZodObject<{
444
+ toOn: z.ZodOptional<z.ZodNumber>;
445
+ toOff: z.ZodOptional<z.ZodNumber>;
446
+ }, z.core.$strip>>;
447
+ cycle: z.ZodOptional<z.ZodObject<{
448
+ on: z.ZodOptional<z.ZodNumber>;
449
+ off: z.ZodOptional<z.ZodNumber>;
450
+ }, z.core.$strip>>;
451
+ schedule: z.ZodOptional<z.ZodObject<{
452
+ start: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
453
+ end: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
454
+ }, z.core.$strip>>;
455
+ auto: z.ZodOptional<z.ZodObject<{
456
+ targetMode: z.ZodOptional<z.ZodBoolean>;
457
+ highTemperature: z.ZodOptional<z.ZodObject<{
458
+ enabled: z.ZodOptional<z.ZodBoolean>;
459
+ celsius: z.ZodOptional<z.ZodNumber>;
460
+ fahrenheit: z.ZodOptional<z.ZodNumber>;
461
+ }, z.core.$strip>>;
462
+ lowTemperature: z.ZodOptional<z.ZodObject<{
463
+ enabled: z.ZodOptional<z.ZodBoolean>;
464
+ celsius: z.ZodOptional<z.ZodNumber>;
465
+ fahrenheit: z.ZodOptional<z.ZodNumber>;
466
+ }, z.core.$strip>>;
467
+ highHumidity: z.ZodOptional<z.ZodObject<{
468
+ enabled: z.ZodOptional<z.ZodBoolean>;
469
+ value: z.ZodOptional<z.ZodNumber>;
470
+ }, z.core.$strip>>;
471
+ lowHumidity: z.ZodOptional<z.ZodObject<{
472
+ enabled: z.ZodOptional<z.ZodBoolean>;
473
+ value: z.ZodOptional<z.ZodNumber>;
474
+ }, z.core.$strip>>;
475
+ targetTemperature: z.ZodOptional<z.ZodObject<{
476
+ enabled: z.ZodOptional<z.ZodBoolean>;
477
+ celsius: z.ZodOptional<z.ZodNumber>;
478
+ fahrenheit: z.ZodOptional<z.ZodNumber>;
479
+ }, z.core.$strip>>;
480
+ targetHumidity: z.ZodOptional<z.ZodObject<{
481
+ enabled: z.ZodOptional<z.ZodBoolean>;
482
+ value: z.ZodOptional<z.ZodNumber>;
483
+ }, z.core.$strip>>;
484
+ }, z.core.$strip>>;
485
+ vpd: z.ZodOptional<z.ZodObject<{
486
+ targetMode: z.ZodOptional<z.ZodBoolean>;
487
+ high: z.ZodOptional<z.ZodObject<{
488
+ enabled: z.ZodOptional<z.ZodBoolean>;
489
+ value: z.ZodOptional<z.ZodNumber>;
490
+ }, z.core.$strip>>;
491
+ low: z.ZodOptional<z.ZodObject<{
492
+ enabled: z.ZodOptional<z.ZodBoolean>;
493
+ value: z.ZodOptional<z.ZodNumber>;
494
+ }, z.core.$strip>>;
495
+ target: z.ZodOptional<z.ZodObject<{
496
+ enabled: z.ZodOptional<z.ZodBoolean>;
497
+ value: z.ZodOptional<z.ZodNumber>;
498
+ }, z.core.$strip>>;
499
+ }, z.core.$strip>>;
500
+ }, z.core.$strip>, z.ZodTransform<Partial<{
501
+ devId: string;
502
+ devMacAddr: string | null;
503
+ externalPort: number;
504
+ offSpead: number;
505
+ onSpead: number;
506
+ onSelfSpead: number;
507
+ ecUnit: number;
508
+ tdsUnit: number;
509
+ settingMode: number;
510
+ vpdSettingMode: number;
511
+ atType: DeviceMode;
512
+ acitveTimerOff: number;
513
+ acitveTimerOn: number;
514
+ activeCycleOff: number;
515
+ activeCycleOn: number;
516
+ activeHh: number;
517
+ activeHt: number;
518
+ activeHtVpd: number;
519
+ activeHtVpdNums: number;
520
+ activeLh: number;
521
+ activeLt: number;
522
+ activeLtVpd: number;
523
+ activeLtVpdNums: number;
524
+ co2FanHighSwitch: number;
525
+ co2FanHighValue: number;
526
+ co2LowSwitch: number;
527
+ co2LowValue: number;
528
+ devHh: number;
529
+ devHt: number;
530
+ devHtf: number;
531
+ devLh: number;
532
+ devLt: number;
533
+ devLtf: number;
534
+ ecTdsLowSwitchEc: number;
535
+ ecTdsLowSwitchTds: number;
536
+ ecTdsLowValueEcUs: number;
537
+ ecTdsLowValueTdsPpm: number;
538
+ isOpenAutomation: number;
539
+ modeType: number;
540
+ moistureLowSwitch: number;
541
+ moistureLowValue: number;
542
+ onlyUpdateSpeed: number;
543
+ phHighSwitch: number;
544
+ phHighValue: number;
545
+ phLowSwitch: number;
546
+ phLowValue: number;
547
+ schedEndtTime: number;
548
+ schedStartTime: number;
549
+ surplus: number | null;
550
+ targetHumi: number;
551
+ targetHumiSwitch: number;
552
+ targetTSwitch: number;
553
+ targetTemp: number;
554
+ targetTempF: number;
555
+ targetVpd: number;
556
+ targetVpdSwitch: number;
557
+ waterLevelLowSwitch: number;
558
+ waterTempHighSwitch: number;
559
+ waterTempHighValue: number;
560
+ waterTempHighValueF: number;
561
+ waterTempLowSwitch: number;
562
+ waterTempLowValue: number;
563
+ waterTempLowValueF: number;
564
+ }>, {
565
+ mode?: DeviceMode | undefined;
566
+ levelWhileOn?: number | undefined;
567
+ levelWhileOff?: number | undefined;
568
+ timer?: {
569
+ toOn?: number | undefined;
570
+ toOff?: number | undefined;
571
+ } | undefined;
572
+ cycle?: {
573
+ on?: number | undefined;
574
+ off?: number | undefined;
575
+ } | undefined;
576
+ schedule?: {
577
+ start?: number | null | undefined;
578
+ end?: number | null | undefined;
579
+ } | undefined;
580
+ auto?: {
581
+ targetMode?: boolean | undefined;
582
+ highTemperature?: {
583
+ enabled?: boolean | undefined;
584
+ celsius?: number | undefined;
585
+ fahrenheit?: number | undefined;
586
+ } | undefined;
587
+ lowTemperature?: {
588
+ enabled?: boolean | undefined;
589
+ celsius?: number | undefined;
590
+ fahrenheit?: number | undefined;
591
+ } | undefined;
592
+ highHumidity?: {
593
+ enabled?: boolean | undefined;
594
+ value?: number | undefined;
595
+ } | undefined;
596
+ lowHumidity?: {
597
+ enabled?: boolean | undefined;
598
+ value?: number | undefined;
599
+ } | undefined;
600
+ targetTemperature?: {
601
+ enabled?: boolean | undefined;
602
+ celsius?: number | undefined;
603
+ fahrenheit?: number | undefined;
604
+ } | undefined;
605
+ targetHumidity?: {
606
+ enabled?: boolean | undefined;
607
+ value?: number | undefined;
608
+ } | undefined;
609
+ } | undefined;
610
+ vpd?: {
611
+ targetMode?: boolean | undefined;
612
+ high?: {
613
+ enabled?: boolean | undefined;
614
+ value?: number | undefined;
615
+ } | undefined;
616
+ low?: {
617
+ enabled?: boolean | undefined;
618
+ value?: number | undefined;
619
+ } | undefined;
620
+ target?: {
621
+ enabled?: boolean | undefined;
622
+ value?: number | undefined;
623
+ } | undefined;
624
+ } | undefined;
625
+ }>>;
626
+ export declare const DeviceSettingsChangesSchema: z.ZodPipe<z.ZodObject<{
627
+ name: z.ZodOptional<z.ZodString>;
628
+ temperatureUnit: z.ZodOptional<z.ZodEnum<typeof TemperatureUnit>>;
629
+ brightness: z.ZodOptional<z.ZodNumber>;
630
+ backlight: z.ZodOptional<z.ZodBoolean>;
631
+ calibration: z.ZodOptional<z.ZodObject<{
632
+ temperatureC: z.ZodOptional<z.ZodNumber>;
633
+ temperatureF: z.ZodOptional<z.ZodNumber>;
634
+ humidity: z.ZodOptional<z.ZodNumber>;
635
+ }, z.core.$strip>>;
636
+ }, z.core.$strip>, z.ZodTransform<Partial<{
637
+ devId: string;
638
+ devMacAddr: string | null;
639
+ externalPort: number;
640
+ offSpead: number;
641
+ onSpead: number;
642
+ onSelfSpead: number;
643
+ ecUnit: number;
644
+ tdsUnit: number;
645
+ settingMode: number;
646
+ vpdSettingMode: number;
647
+ atType: DeviceMode;
648
+ setId: string | null;
649
+ port: number;
650
+ devName: string | null;
651
+ devLight: number;
652
+ hasBacklightSwitch: number;
653
+ backlightSwitch: number;
654
+ hasKeytoneSwitch: number;
655
+ keytoneSwitch: number;
656
+ devCth: number;
657
+ devCt: number;
658
+ devCth2: number | null;
659
+ devCt2: number | null;
660
+ devCh: number;
661
+ devTt: number;
662
+ devTh: number;
663
+ devCompany: TemperatureUnit;
664
+ devTth: number;
665
+ vpdCth: number;
666
+ vpdCt: number;
667
+ vpdTransition: number;
668
+ portResistance: number | null;
669
+ devBth: number;
670
+ devBt: number;
671
+ devBh: number;
672
+ devBvpd: number;
673
+ isFlag: number;
674
+ devTimeZone: string | null;
675
+ loadType: number;
676
+ tempCompare: number;
677
+ humiCompare: number;
678
+ onTimeSwitch: number;
679
+ onTime: number;
680
+ sensorSettingStr: string | null;
681
+ sensorSetting: unknown;
682
+ sensorTransBuffStr: string | null;
683
+ sensorTransBuff: unknown;
684
+ portParamData: string | null;
685
+ photocellSwitch: number;
686
+ isOpenDoseTime: number;
687
+ onDoseTime: number;
688
+ offDoseTime: number;
689
+ isOnMinMaxTime: number;
690
+ onMinTime: number;
691
+ onMaxTime: number;
692
+ ecOrTds: number;
693
+ interchangeSensor: number;
694
+ subDeviceId: string | null;
695
+ subDeviceVersion: string | null;
696
+ subDeviceType: number | null;
697
+ supportOta: unknown;
698
+ otaUpdating: unknown;
699
+ secFucStatus: number;
700
+ secFucDevtype: number;
701
+ secFucDevEffect: number;
702
+ secFucParamNums: number;
703
+ secFucParams: unknown;
704
+ secFucReportTime: number;
705
+ toward: unknown;
706
+ powerState: unknown;
707
+ updateAllPort: boolean;
708
+ timestamp: unknown;
709
+ calibrationTime: unknown;
710
+ fieldSet: unknown[];
711
+ plantCode: number;
712
+ potSize: number;
713
+ plantingNum: number;
714
+ devCl: unknown;
715
+ devCsm1: unknown;
716
+ devCsm2: unknown;
717
+ devCsm3: unknown;
718
+ devCsm4: unknown;
719
+ uuidSta: number;
720
+ uuidType: unknown;
721
+ uuid: string | null;
722
+ matterCode: string | null;
723
+ matterSta: unknown;
724
+ }>, {
725
+ name?: string | undefined;
726
+ temperatureUnit?: TemperatureUnit | undefined;
727
+ brightness?: number | undefined;
728
+ backlight?: boolean | undefined;
729
+ calibration?: {
730
+ temperatureC?: number | undefined;
731
+ temperatureF?: number | undefined;
732
+ humidity?: number | undefined;
733
+ } | undefined;
734
+ }>>;
735
+ export type DeviceModeSettingsChanges = z.input<typeof DeviceModeSettingsChangesSchema>;
736
+ export type DeviceSettingsChanges = z.input<typeof DeviceSettingsChangesSchema>;
737
+ export declare function encodeDeviceModeSettings(settings: DeviceModeSettingsChanges): Partial<DeviceModeSettingsInput>;
738
+ export declare function encodeDeviceSettings(settings: DeviceSettingsChanges): Partial<DeviceSettingsInput>;
342
739
  //# sourceMappingURL=Device.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../../../src/types/Device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oBAAY,UAAU;IACpB,UAAU,IAAI;IACd,UAAU,IAAI;IACd,YAAY,IAAI;IAChB,MAAM,IAAI;IACV,aAAa,IAAI;IACjB,GAAG,IAAI;CACR;AAED,oBAAY,UAAU;IACpB,GAAG,IAAI;IACP,EAAE,IAAI;IACN,IAAI,IAAI;IACR,WAAW,IAAI;IACf,YAAY,IAAI;IAChB,KAAK,IAAI;IACT,QAAQ,IAAI;IACZ,GAAG,IAAI;CACR;AA0BD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+E9B,CAAC;AAEJ,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDlC,CAAC;AAEJ,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAIhH"}
1
+ {"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../../../src/types/Device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oBAAY,UAAU;IACpB,IAAI,IAAI;IACR,UAAU,IAAI;IACd,UAAU,IAAI;IACd,YAAY,IAAI;IAChB,MAAM,IAAI;IACV,aAAa,IAAI;IACjB,GAAG,IAAI;IACP,IAAI,IAAI;IACR,UAAU,IAAI;IACd,aAAa,KAAK;IAClB,YAAY,KAAK;IACjB,YAAY,KAAK;CAClB;AAED,oBAAY,UAAU;IACpB,GAAG,IAAI;IACP,EAAE,IAAI;IACN,IAAI,IAAI;IACR,WAAW,IAAI;IACf,YAAY,IAAI;IAChB,KAAK,IAAI;IACT,QAAQ,IAAI;IACZ,GAAG,IAAI;CACR;AAED,oBAAY,eAAe;IACzB,UAAU,IAAI;IACd,OAAO,IAAI;CACZ;AAkDD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuG9B,CAAC;AAEJ,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuDnC,4EAA4E;;IAE5E,2BAA2B;;;;;IAK3B,2BAA2B;;;;;IAK3B,gDAAgD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAchD,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAOnB,CAAC;AAEJ,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACvE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AA6B/E,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqExC,CAAC;AAEL,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCpC,CAAC;AAEL,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAE9G;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAElG"}