@homebridge-plugins/homebridge-smarthq 0.5.0-beta.10 → 0.5.0-beta.11

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 +1 @@
1
- {"version":3,"file":"refrigerator.d.ts","sourceRoot":"","sources":["../../src/devices/refrigerator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAKnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,mBAAoB,SAAQ,UAAU;IAM/C,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAN3D,sBAAsB,EAAG,OAAO,CAAA;IAChC,YAAY,EAAE,GAAG,CAAA;gBAGN,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;CAmJ5D"}
1
+ {"version":3,"file":"refrigerator.d.ts","sourceRoot":"","sources":["../../src/devices/refrigerator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAKnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,mBAAoB,SAAQ,UAAU;IAM/C,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAN3D,sBAAsB,EAAG,OAAO,CAAA;IAChC,YAAY,EAAE,GAAG,CAAA;gBAGN,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;CA4N5D"}
@@ -12,15 +12,81 @@ export class SmartHQRefrigerator extends deviceBase {
12
12
  this.platform = platform;
13
13
  this.device = device;
14
14
  this.debugLog(`Refrigerator Features: ${JSON.stringify(accessory.context.device.features)}`);
15
- // Refrigerator Door Sensor
16
- const doorSensorService = this.accessory.getService('Refrigerator Door') ?? this.accessory.addService(this.platform.Service.ContactSensor, 'Refrigerator Door', 'RefrigeratorDoor');
17
- doorSensorService.setCharacteristic(this.platform.Characteristic.Name, 'Refrigerator Door');
18
- doorSensorService
19
- .getCharacteristic(this.platform.Characteristic.ContactSensorState)
20
- .onGet(async () => {
15
+ // Check which doors are available on this refrigerator model
16
+ const checkDoorAvailability = async () => {
21
17
  const r = await this.readErd(ERD_TYPES.DOOR_STATUS);
22
- return r ? Number.parseInt(r) !== 0 : false;
23
- });
18
+ if (!r) {
19
+ return { fridge_right: false, fridge_left: false, freezer: false, drawer: false };
20
+ }
21
+ try {
22
+ const doorStatus = JSON.parse(r);
23
+ this.debugLog(`Initial door status check: ${JSON.stringify(doorStatus)}`);
24
+ // A door is available if the property exists and isn't 255 (NA/not available)
25
+ return {
26
+ fridge_right: doorStatus.fridge_right !== undefined && doorStatus.fridge_right !== 255,
27
+ fridge_left: doorStatus.fridge_left !== undefined && doorStatus.fridge_left !== 255,
28
+ freezer: doorStatus.freezer !== undefined && doorStatus.freezer !== 255,
29
+ drawer: doorStatus.drawer !== undefined && doorStatus.drawer !== 255,
30
+ };
31
+ }
32
+ catch (parseError) {
33
+ this.debugLog(`Door availability check failed: ${parseError}`);
34
+ return { fridge_right: false, fridge_left: false, freezer: false, drawer: false };
35
+ }
36
+ };
37
+ // Helper function to parse door status JSON
38
+ const parseDoorStatus = async (compartment) => {
39
+ const r = await this.readErd(ERD_TYPES.DOOR_STATUS);
40
+ if (!r) {
41
+ return false;
42
+ }
43
+ try {
44
+ const doorStatus = JSON.parse(r);
45
+ const state = doorStatus[compartment];
46
+ this.debugLog(`${compartment} door status: ${state}`);
47
+ return state === 1 || state === true;
48
+ }
49
+ catch (parseError) {
50
+ this.debugLog(`Door status parse error for ${compartment}, raw: ${r}`);
51
+ return false;
52
+ }
53
+ };
54
+ // Check which doors exist on this model and only create those sensors
55
+ (async () => {
56
+ const availableDoors = await checkDoorAvailability();
57
+ // Fridge Right Door Sensor (if available)
58
+ if (availableDoors.fridge_right) {
59
+ const fridgeRightDoorService = this.accessory.getService('Fridge Right Door') ?? this.accessory.addService(this.platform.Service.ContactSensor, 'Fridge Right Door', 'FridgeRightDoor');
60
+ fridgeRightDoorService.setCharacteristic(this.platform.Characteristic.Name, 'Fridge Right Door');
61
+ fridgeRightDoorService
62
+ .getCharacteristic(this.platform.Characteristic.ContactSensorState)
63
+ .onGet(async () => parseDoorStatus('fridge_right'));
64
+ }
65
+ // Fridge Left Door Sensor (if available)
66
+ if (availableDoors.fridge_left) {
67
+ const fridgeLeftDoorService = this.accessory.getService('Fridge Left Door') ?? this.accessory.addService(this.platform.Service.ContactSensor, 'Fridge Left Door', 'FridgeLeftDoor');
68
+ fridgeLeftDoorService.setCharacteristic(this.platform.Characteristic.Name, 'Fridge Left Door');
69
+ fridgeLeftDoorService
70
+ .getCharacteristic(this.platform.Characteristic.ContactSensorState)
71
+ .onGet(async () => parseDoorStatus('fridge_left'));
72
+ }
73
+ // Freezer Door Sensor (if available)
74
+ if (availableDoors.freezer) {
75
+ const freezerDoorService = this.accessory.getService('Freezer Door') ?? this.accessory.addService(this.platform.Service.ContactSensor, 'Freezer Door', 'FreezerDoor');
76
+ freezerDoorService.setCharacteristic(this.platform.Characteristic.Name, 'Freezer Door');
77
+ freezerDoorService
78
+ .getCharacteristic(this.platform.Characteristic.ContactSensorState)
79
+ .onGet(async () => parseDoorStatus('freezer'));
80
+ }
81
+ // Drawer Sensor (if available)
82
+ if (availableDoors.drawer) {
83
+ const drawerService = this.accessory.getService('Drawer') ?? this.accessory.addService(this.platform.Service.ContactSensor, 'Drawer', 'Drawer');
84
+ drawerService.setCharacteristic(this.platform.Characteristic.Name, 'Drawer');
85
+ drawerService
86
+ .getCharacteristic(this.platform.Characteristic.ContactSensorState)
87
+ .onGet(async () => parseDoorStatus('drawer'));
88
+ }
89
+ })();
24
90
  // Fridge Temperature Sensor
25
91
  const fridgeTempService = this.accessory.getService('Fridge Temperature') ?? this.accessory.addService(this.platform.Service.TemperatureSensor, 'Fridge Temperature', 'FridgeTemp');
26
92
  fridgeTempService.setCharacteristic(this.platform.Characteristic.Name, 'Fridge Temperature');
@@ -1 +1 @@
1
- {"version":3,"file":"refrigerator.js","sourceRoot":"","sources":["../../src/devices/refrigerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refrigerator.js","sourceRoot":"","sources":["../../src/devices/refrigerator.ts"],"names":[],"mappings":"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"}