homebridge-tasmota-control 0.18.3 → 0.19.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.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.19.0] - (28.10.2024)
9
+
10
+ ## Changes
11
+
12
+ - added remote temperature sensor state
13
+ - config.schema update
14
+ - cleanup
15
+
8
16
  ## [0.18.1] - (24.10.2024)
9
17
 
10
18
  ## Changes
package/README.md CHANGED
@@ -98,8 +98,9 @@ Homebridge plugin for Tasmota flashed devices.
98
98
  | `miElHvac.heatDryFanMode` | Here select the operatiing mode for `Heat`, only for Mitsubishio AC. |
99
99
  | `miElHvac.coolDryFanMode` | Here select the operatiing mode for `Cool`, only for Mitsubishio AC. |
100
100
  | `miElHvac.autoDryFanMode` | Here select the operatiing mode for `Auto`, only for Mitsubishio AC. |
101
- | `miElHvac.temperatureSensor` | This enable extra `Room` temperature sensors to use with automations in HomeKit app. |
102
- | `miElHvac.temperatureSensorOutdoor` | This enable extra `Outdoor` temperature sensors to use with automations in HomeKit app. |
101
+ | `miElHvac.temperatureSensor` | This enable extra `Room` temperature sensor to use with automations in HomeKit app. |
102
+ | `miElHvac.temperatureSensorOutdoor` | This enable extra `Outdoor` temperature sensor to use with automations in HomeKit app. |
103
+ | `miElHvac.remoteTemperatureStateSensor` | This enable extra `Remote` temperature state sensor to use with automations in HomeKit app. |
103
104
  | `miElHvac.presets` | Array of presets sensors. |
104
105
  | `miElHvac.presets.name` | Here You can schange the `Preset Name` which is exposed to the `Homebridge/HomeKit`. |
105
106
  | `miElHvac.presets.mode` | Here set the operation mode. |
@@ -176,6 +176,13 @@
176
176
  "description": "This enable extra outdoor temperature sensor to use with automations in HomeKit app.",
177
177
  "required": false
178
178
  },
179
+ "remoteTemperatureStateSensor": {
180
+ "title": "Remote",
181
+ "type": "boolean",
182
+ "default": false,
183
+ "description": "This enable extra remote temperature sensor state to use with automations in HomeKit app.",
184
+ "required": false
185
+ },
179
186
  "presets": {
180
187
  "title": "Presets",
181
188
  "type": "array",
@@ -923,7 +930,8 @@
923
930
  "expanded": false,
924
931
  "items": [
925
932
  "devices[].miElHvac.temperatureSensor",
926
- "devices[].miElHvac.temperatureSensorOutdoor"
933
+ "devices[].miElHvac.temperatureSensorOutdoor",
934
+ "devices[].miElHvac.remoteTemperatureStateSensor"
927
935
  ],
928
936
  "description": "In this section You can enable extra temperature sensors."
929
937
  },
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "Tasmota Control",
3
3
  "name": "homebridge-tasmota-control",
4
- "version": "0.18.3",
4
+ "version": "0.19.0",
5
5
  "description": "Homebridge plugin to control Tasmota flashed devices.",
6
6
  "license": "MIT",
7
7
  "author": "grzegorz914",
@@ -38,6 +38,7 @@
38
38
  },
39
39
  "HVACSetTemp": "HVACSetTemp%20",
40
40
  "HVACRemoteTemp": "HVACRemoteTemp%20",
41
+ "HVACRemoteTempClearTime": "HVACRemoteTempClearTime%20",
41
42
  "HVACSetSwingV": {
42
43
  "auto": "HVACSetSwingV%20auto",
43
44
  "up": "HVACSetSwingV%20up",
@@ -39,6 +39,7 @@ class TasmotaDevice extends EventEmitter {
39
39
  this.autoDryFanMode = miElHvac.autoDryFanMode || 1; //NONE, COOL, DRY, FAN
40
40
  this.temperatureSensor = miElHvac.temperatureSensor || false;
41
41
  this.temperatureSensorOutdoor = miElHvac.temperatureSensorOutdoor || false;
42
+ this.remoteTemperatureStateSensor = miElHvac.remoteTemperatureStateSensor || false;
42
43
  this.presets = miElHvac.presets || [];
43
44
  this.buttons = miElHvac.buttonsSensors || [];
44
45
 
@@ -271,6 +272,7 @@ class TasmotaDevice extends EventEmitter {
271
272
  const swingMode = vaneVerticalDirection === 'swing' && vaneHorizontalDirection === 'swing' ? 1 : 0;
272
273
  const defaultCoolingSetTemperature = parseFloat(await this.readData(this.defaultCoolingSetTemperatureFile));
273
274
  const defaultHeatingSetTemperature = parseFloat(await this.readData(this.defaultHeatingSetTemperatureFile));
275
+ const remoteTemperatureSensor = miElHvac.RemoteTemperatureSensor ?? false; //ON, OFF
274
276
 
275
277
  const modelSupportsHeat = true;
276
278
  const modelSupportsDry = true;
@@ -304,6 +306,7 @@ class TasmotaDevice extends EventEmitter {
304
306
  operationEnergy: operationEnergy,
305
307
  defaultCoolingSetTemperature: defaultCoolingSetTemperature,
306
308
  defaultHeatingSetTemperature: defaultHeatingSetTemperature,
309
+ remoteTemperatureSensor: remoteTemperatureSensor,
307
310
  modelSupportsHeat: modelSupportsHeat,
308
311
  modelSupportsDry: modelSupportsDry,
309
312
  modelSupportsCool: modelSupportsCool,
@@ -435,6 +438,11 @@ class TasmotaDevice extends EventEmitter {
435
438
  .updateCharacteristic(Characteristic.CurrentTemperature, outdoorTemperature)
436
439
  };
437
440
 
441
+ if (this.remoteTemperatureStateSensorService) {
442
+ this.remoteTemperatureStateSensorService
443
+ .updateCharacteristic(Characteristic.ContactSensorState, remoteTemperatureSensor)
444
+ };
445
+
438
446
  //update presets state
439
447
  if (this.presetsConfigured.length > 0) {
440
448
  for (let i = 0; i < this.presetsConfigured.length; i++) {
@@ -1095,7 +1103,7 @@ class TasmotaDevice extends EventEmitter {
1095
1103
  //temperature sensor services
1096
1104
  if (this.temperatureSensor && this.accessory.roomTemperature !== null) {
1097
1105
  const debug = this.enableDebugMode ? this.emit('debug', `Prepare room temperature sensor service`) : false;
1098
- this.roomTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Room`, `Room Temperature Sensor ${deviceId}`);
1106
+ this.roomTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Room`, `Room Temperature Sensor`);
1099
1107
  this.roomTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
1100
1108
  this.roomTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Room`);
1101
1109
  this.roomTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
@@ -1111,9 +1119,9 @@ class TasmotaDevice extends EventEmitter {
1111
1119
  accessory.addService(this.roomTemperatureSensorService);
1112
1120
  };
1113
1121
 
1114
- if (this.temperatureSensorOutdoor && hasOutdoorTemperature && this.accessory.outdoorTemperature !== null) {
1122
+ if (this.temperatureSensorOutdoor && this.accessory.hasOutdoorTemperature && this.accessory.outdoorTemperature !== null) {
1115
1123
  const debug = this.enableDebugMode ? this.emit('debug', `Prepare outdoor temperature sensor service`) : false;
1116
- this.outdoorTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Outdoor`, `Outdoor Temperature Sensor ${deviceId}`);
1124
+ this.outdoorTemperatureSensorService = new Service.TemperatureSensor(`${serviceName} Outdoor`, `Outdoor Temperature Sensor`);
1117
1125
  this.outdoorTemperatureSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
1118
1126
  this.outdoorTemperatureSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Outdoor`);
1119
1127
  this.outdoorTemperatureSensorService.getCharacteristic(Characteristic.CurrentTemperature)
@@ -1129,6 +1137,19 @@ class TasmotaDevice extends EventEmitter {
1129
1137
  accessory.addService(this.outdoorTemperatureSensorService);
1130
1138
  };
1131
1139
 
1140
+ if (this.remoteTemperatureStateSensor) {
1141
+ const debug = this.enableDebugMode ? this.emit('debug', `Prepare remote temperature state sensor service`) : false;
1142
+ this.remoteTemperatureStateSensorService = new Service.ContactSensor(`${serviceName} Remote Sensor State`, `Remote Temperature State Sensor`);
1143
+ this.remoteTemperatureStateSensorService.addOptionalCharacteristic(Characteristic.ConfiguredName);
1144
+ this.remoteTemperatureStateSensorService.setCharacteristic(Characteristic.ConfiguredName, `${accessoryName} Remote Sensor State`);
1145
+ this.remoteTemperatureStateSensorService.getCharacteristic(Characteristic.ContactSensorState)
1146
+ .onGet(async () => {
1147
+ const state = this.accessory.remoteTemperatureSensor;
1148
+ return state;
1149
+ })
1150
+ accessory.addService(this.remoteTemperatureStateSensorService);
1151
+ };
1152
+
1132
1153
  //presets services
1133
1154
  if (this.presetsConfiguredCount > 0) {
1134
1155
  const debug = this.enableDebugMode ? this.emit('debug', `Prepare presets services`) : false;