homebridge-midea-platform 1.2.5 → 1.2.6-beta.1

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.
@@ -0,0 +1,43 @@
1
+ /***********************************************************************
2
+ * Midea Fresh Air Appliance Device message handler class
3
+ *
4
+ * Copyright (c) 2025 Kovalovszky Patrik, https://github.com/kovapatrik
5
+ *
6
+ * With thanks to https://github.com/georgezhao2010/midea_ac_lan
7
+ *
8
+ */
9
+ import { MessageBody, MessageRequest, MessageResponse, MessageType } from '../../core/MideaMessage.js';
10
+ declare abstract class MessageCEBase extends MessageRequest {
11
+ constructor(device_protocol_version: number, message_type: MessageType, body_type: number);
12
+ }
13
+ export declare class MessageQuery extends MessageCEBase {
14
+ constructor(device_protocol_version: number);
15
+ get _body(): Buffer;
16
+ }
17
+ export declare class MessageSet extends MessageCEBase {
18
+ [key: string]: any;
19
+ power: boolean;
20
+ mode: number;
21
+ auto_set_mode: boolean;
22
+ silent_mode: boolean;
23
+ silent_mode_level: number;
24
+ target_temperature: number;
25
+ constructor(device_protocol_version: number);
26
+ get _body(): Buffer;
27
+ }
28
+ export declare class CEGeneralMessageBody extends MessageBody {
29
+ power: boolean;
30
+ auto_set_mode: boolean;
31
+ silent_mode: boolean;
32
+ mode: number;
33
+ silent_mode_level: number;
34
+ target_temperature: number;
35
+ current_temperature: number;
36
+ error_code: number;
37
+ run_mode_under_auto_control: number;
38
+ constructor(body: Buffer);
39
+ }
40
+ export declare class MessageCEResponse extends MessageResponse {
41
+ constructor(message: Buffer);
42
+ }
43
+ export {};
@@ -0,0 +1,84 @@
1
+ /***********************************************************************
2
+ * Midea Fresh Air Appliance Device message handler class
3
+ *
4
+ * Copyright (c) 2025 Kovalovszky Patrik, https://github.com/kovapatrik
5
+ *
6
+ * With thanks to https://github.com/georgezhao2010/midea_ac_lan
7
+ *
8
+ */
9
+ import { DeviceType } from '../../core/MideaConstants.js';
10
+ import { MessageBody, MessageRequest, MessageResponse, MessageType } from '../../core/MideaMessage.js';
11
+ class MessageCEBase extends MessageRequest {
12
+ constructor(device_protocol_version, message_type, body_type) {
13
+ super(DeviceType.FRESH_AIR_APPLIANCE, message_type, body_type, device_protocol_version);
14
+ }
15
+ }
16
+ export class MessageQuery extends MessageCEBase {
17
+ constructor(device_protocol_version) {
18
+ super(device_protocol_version, MessageType.QUERY, 0x01);
19
+ }
20
+ get _body() {
21
+ return Buffer.alloc(0);
22
+ }
23
+ }
24
+ export class MessageSet extends MessageCEBase {
25
+ power;
26
+ mode;
27
+ auto_set_mode;
28
+ silent_mode;
29
+ silent_mode_level;
30
+ target_temperature;
31
+ constructor(device_protocol_version) {
32
+ super(device_protocol_version, MessageType.SET, 0x01);
33
+ this.power = false;
34
+ this.mode = 4; // auto
35
+ this.auto_set_mode = false;
36
+ this.silent_mode = false;
37
+ this.silent_mode_level = 0;
38
+ this.target_temperature = 25;
39
+ }
40
+ get _body() {
41
+ const power = this.power ? 0x01 : 0x00;
42
+ const auto_set_mode = this.auto_set_mode ? 0x02 : 0x00;
43
+ const silent_mode = this.silent_mode ? 0x04 : 0x00;
44
+ // biome-ignore format: easier to read
45
+ return Buffer.from([
46
+ power | auto_set_mode | silent_mode,
47
+ this.mode,
48
+ this.silent_mode_level,
49
+ this.target_temperature
50
+ ]);
51
+ }
52
+ }
53
+ export class CEGeneralMessageBody extends MessageBody {
54
+ power;
55
+ auto_set_mode;
56
+ silent_mode;
57
+ mode;
58
+ silent_mode_level;
59
+ target_temperature;
60
+ current_temperature;
61
+ error_code;
62
+ run_mode_under_auto_control;
63
+ constructor(body) {
64
+ super(body);
65
+ this.power = (body[1] & 0x01) > 0;
66
+ this.auto_set_mode = (body[1] & 0x02) > 0;
67
+ this.silent_mode = (body[1] & 0x04) > 0;
68
+ this.mode = body[2];
69
+ this.silent_mode_level = body[3];
70
+ this.target_temperature = body[4];
71
+ this.current_temperature = body[5] >= 128 ? 256 - body[5] : body[5];
72
+ this.error_code = body[6];
73
+ this.run_mode_under_auto_control = body[7];
74
+ }
75
+ }
76
+ export class MessageCEResponse extends MessageResponse {
77
+ constructor(message) {
78
+ super(message);
79
+ if (([MessageType.QUERY, MessageType.SET].includes(this.message_type) && this.body_type === 0x01) || this.message_type === MessageType.NOTIFY1) {
80
+ this.set_body(new CEGeneralMessageBody(this.body));
81
+ }
82
+ }
83
+ }
84
+ //# sourceMappingURL=MideaCEMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MideaCEMessage.js","sourceRoot":"","sources":["../../../src/devices/ce/MideaCEMessage.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ export type DeviceConfig = {
21
21
  AC_options: ACOptions;
22
22
  A1_options: A1Options;
23
23
  C3_options: C3Options;
24
+ CE_options: CEOptions;
24
25
  DB_options: DBOptions;
25
26
  E1_options: E1Options;
26
27
  E2_options: E2Options;
@@ -91,6 +92,13 @@ type C3Options = {
91
92
  silentSwitch: boolean;
92
93
  tbhSwitch: boolean;
93
94
  };
95
+ type CEOptions = {
96
+ silentMode: boolean;
97
+ autoSetModeSwitch: boolean;
98
+ minTemp: number;
99
+ maxTemp: number;
100
+ tempStep: number;
101
+ };
94
102
  type DBOptions = unknown;
95
103
  type E1Options = unknown;
96
104
  type E2Options = {
@@ -82,6 +82,13 @@ export const defaultDeviceConfig = {
82
82
  silentSwitch: false,
83
83
  tbhSwitch: false,
84
84
  },
85
+ CE_options: {
86
+ autoSetModeSwitch: false,
87
+ minTemp: 16,
88
+ maxTemp: 30,
89
+ tempStep: 1,
90
+ silentMode: false,
91
+ },
85
92
  DB_options: {},
86
93
  E1_options: {},
87
94
  E2_options: {
@@ -1 +1 @@
1
- {"version":3,"file":"platformUtils.js","sourceRoot":"","sources":["../src/platformUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platformUtils.js","sourceRoot":"","sources":["../src/platformUtils.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,aAAa,GAAW;IACnC,eAAe,EAAE,EAAE;IACnB,iBAAiB,EAAE,EAAE;IACrB,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,EAAE;CACZ,CAAC;AA2BF,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,0BAAa,CAAA;IACb,kCAAqB,CAAA;IACrB,sCAAyB,CAAA;IACzB,0BAAa,CAAA;AACf,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AAED,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,mCAAqB,CAAA;IACrB,uCAAyB,CAAA;AAC3B,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAED,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,8CAA2B,CAAA;IAC3B,oDAAiC,CAAA;AACnC,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AA0FD,MAAM,CAAC,MAAM,mBAAmB,GAAiB;IAC/C,EAAE,EAAE,CAAC;IACL,IAAI,EAAE,EAAE;IACR,gBAAgB,EAAE;QAChB,EAAE,EAAE,EAAE;QACN,KAAK,EAAE,EAAE;QACT,GAAG,EAAE,EAAE;QACP,OAAO,EAAE,KAAK;QACd,oBAAoB,EAAE,IAAI;QAC1B,sBAAsB,EAAE,IAAI;QAC5B,iBAAiB,EAAE,KAAK;KACzB;IACD,UAAU,EAAE;QACV,KAAK,EAAE;YACL,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,cAAc,EAAE,KAAK;YACrB,gBAAgB,EAAE,UAAU,CAAC,QAAQ;SACtC;QACD,cAAc,EAAE,IAAI;QACpB,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,KAAK;QACpB,eAAe,EAAE,KAAK;QACtB,gBAAgB,EAAE,KAAK;QACvB,aAAa,EAAE;YACb,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,KAAK;SACf;QACD,kBAAkB,EAAE,KAAK;QACzB,eAAe,EAAE,KAAK;QACtB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,KAAK;QACjB,iBAAiB,EAAE,KAAK;QACxB,YAAY,EAAE,KAAK;KACpB;IACD,UAAU,EAAE;QACV,iBAAiB,EAAE,KAAK;QACxB,YAAY,EAAE,KAAK;QACnB,cAAc,EAAE,KAAK;QACrB,UAAU,EAAE,KAAK;QACjB,eAAe,EAAE,eAAe,CAAC,IAAI;QACrC,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,CAAC;KAClB;IACD,UAAU,EAAE;QACV,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,KAAK;QACnB,SAAS,EAAE,KAAK;KACjB;IACD,UAAU,EAAE;QACV,iBAAiB,EAAE,KAAK;QACxB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,KAAK;KAClB;IACD,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,EAAE;IACd,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC;QACX,qBAAqB,EAAE,KAAK;QAC5B,sBAAsB,EAAE,KAAK;KAC9B;IACD,UAAU,EAAE;QACV,eAAe,EAAE,KAAK;QACtB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC;QACX,kBAAkB,EAAE,KAAK;QACzB,gBAAgB,EAAE,KAAK;QACvB,mBAAmB,EAAE,KAAK;QAC1B,mBAAmB,EAAE,KAAK;QAC1B,iBAAiB,EAAE,KAAK;KACzB;IACD,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,EAAE;CACf,CAAC"}
package/docs/ce.md ADDED
@@ -0,0 +1,19 @@
1
+ # Fresh Air Appliance
2
+
3
+ Providing Fresh Air Appliance settings is optional and the whole section or individual options may be ommitted and default values (noted below) will be used. Within the *devices.config* object the following air conditioner specific options.
4
+
5
+ ```json
6
+ "CE_options": {
7
+ "autoSetModeSwitch": false,
8
+ "minTemp": 16,
9
+ "maxTemp": 30,
10
+ "tempStep": 1,
11
+ "silentMode": false,
12
+ }
13
+ ```
14
+ ## Options
15
+ - **autoSetModeSwitch** *(optional)*: Toggles if the auto set mode switch is created with the accessory. Default is `false`
16
+ - **minTemp** *(optional)*: The minimum temperature that the unit can be set for. Default is `16 celsius`
17
+ - **maxTemp** *(optional)*: The maximum temperature that the unit can be set for. Default is `30 celsius`
18
+ - **tempStep** *(optional)*: Increment in which the temperature setting can be changed, may be set to either 0.5 or 1 degree celsius. The default is `1 degree`.
19
+ - **silentMode** *(optional)*: Toggles if the silent mode switch alongside the level slider is created with the accessory. Default is `false`
@@ -14,7 +14,7 @@ import {
14
14
  import Discover from "../dist/core/MideaDiscover.js";
15
15
  import CloudFactory from "../dist/core/MideaCloud.js";
16
16
  import {
17
- DeviceType,
17
+ DeviceTypeToName,
18
18
  TCPMessageType,
19
19
  ProtocolVersion,
20
20
  Endianness,
@@ -316,38 +316,7 @@ class UiServer extends HomebridgePluginUiServer {
316
316
  discover.startDiscover();
317
317
 
318
318
  discover.on("device", async (device) => {
319
- switch (device.type) {
320
- case DeviceType.AIR_CONDITIONER:
321
- device.displayName = "Air Conditioner";
322
- break;
323
- case DeviceType.DEHUMIDIFIER:
324
- device.displayName = "Dehumidifier";
325
- break;
326
- case DeviceType.HEAT_PUMP_WIFI_CONTROLLER:
327
- device.displayName = "Heat Pump WiFi Controller";
328
- case DeviceType.FRONT_LOAD_WASHER:
329
- device.displayName = "Front Load Washer";
330
- break;
331
- case DeviceType.DISHWASHER:
332
- device.displayName = "Dishwasher";
333
- break;
334
- case DeviceType.ELECTRIC_WATER_HEATER:
335
- device.displayName = "Electric Water Heater";
336
- break;
337
- case DeviceType.GAS_WATER_HEATER:
338
- device.displayName = "Gas Water Heater";
339
- break;
340
- case DeviceType.FAN:
341
- device.displayName = "Fan";
342
- break;
343
- case DeviceType.HUMIDIFIER:
344
- device.displayName = "Humidifier";
345
- break;
346
- case DeviceType.UNKNOWN:
347
- default:
348
- device.displayName = "Unknown";
349
- break;
350
- }
319
+ device.displayName = DeviceTypeToName[device.type] ?? "Unknown";
351
320
  devices.push(device);
352
321
  // too verbose to post every device as found...
353
322
  // this.pushEvent('showToast', { success: true, msg: `Discovered ${device.name} at ${device.ip}`, device: device });
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "displayName": "Homebridge Midea Platform",
3
3
  "name": "homebridge-midea-platform",
4
4
  "type": "module",
5
- "version": "1.2.5",
5
+ "version": "1.2.6-beta.1",
6
6
  "description": "Homebridge plugin for Midea devices",
7
7
  "license": "Apache-2.0",
8
8
  "repository": {