homebridge-easy-mqtt 1.4.0-beta.16 → 1.4.0-beta.3

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.
Files changed (79) hide show
  1. package/CHANGELOG.md +7 -10
  2. package/README.md +25 -246
  3. package/config.schema.json +400 -1991
  4. package/dist/accessory/abstract/base.js +2 -2
  5. package/dist/accessory/abstract/base.js.map +1 -1
  6. package/dist/accessory/abstract/helper.d.ts +0 -1
  7. package/dist/accessory/abstract/helper.js +0 -19
  8. package/dist/accessory/abstract/helper.js.map +1 -1
  9. package/dist/accessory/abstract/mqtt.d.ts +26 -15
  10. package/dist/accessory/abstract/mqtt.js +148 -29
  11. package/dist/accessory/abstract/mqtt.js.map +1 -1
  12. package/dist/accessory/climate/{temperatureControl.d.ts → climate.d.ts} +2 -3
  13. package/dist/accessory/climate/{temperatureControl.js → climate.js} +5 -7
  14. package/dist/accessory/climate/climate.js.map +1 -0
  15. package/dist/accessory/climate/heaterCooler.d.ts +6 -2
  16. package/dist/accessory/climate/heaterCooler.js +37 -5
  17. package/dist/accessory/climate/heaterCooler.js.map +1 -1
  18. package/dist/accessory/climate/thermostat.d.ts +2 -2
  19. package/dist/accessory/climate/thermostat.js +2 -3
  20. package/dist/accessory/climate/thermostat.js.map +1 -1
  21. package/dist/accessory/lock.d.ts +2 -2
  22. package/dist/accessory/lock.js +3 -3
  23. package/dist/accessory/lock.js.map +1 -1
  24. package/dist/accessory/sensor/sensor.js +2 -2
  25. package/dist/accessory/sensor/sensor.js.map +1 -1
  26. package/dist/homebridge/platform.js +3 -5
  27. package/dist/homebridge/platform.js.map +1 -1
  28. package/dist/homebridge-ui/public/index.html +1 -1
  29. package/dist/homebridge-ui/public/ui.js +1 -1
  30. package/dist/i18n/en.d.ts +0 -155
  31. package/dist/i18n/en.js +1 -156
  32. package/dist/i18n/en.js.map +1 -1
  33. package/dist/i18n/fr.d.ts +0 -155
  34. package/dist/i18n/i18n.d.ts +1 -157
  35. package/dist/i18n/i18n.js +0 -6
  36. package/dist/i18n/i18n.js.map +1 -1
  37. package/dist/i18n/template.d.ts +0 -155
  38. package/dist/model/enums.d.ts +2 -39
  39. package/dist/model/enums.js +0 -39
  40. package/dist/model/enums.js.map +1 -1
  41. package/dist/model/mqtt.d.ts +4 -5
  42. package/dist/model/mqtt.js +25 -41
  43. package/dist/model/mqtt.js.map +1 -1
  44. package/dist/model/types.d.ts +24 -115
  45. package/package.json +1 -1
  46. package/dist/accessory/abstract/common.d.ts +0 -42
  47. package/dist/accessory/abstract/common.js +0 -158
  48. package/dist/accessory/abstract/common.js.map +0 -1
  49. package/dist/accessory/addons/addon.d.ts +0 -24
  50. package/dist/accessory/addons/addon.js +0 -52
  51. package/dist/accessory/addons/addon.js.map +0 -1
  52. package/dist/accessory/addons/filter.d.ts +0 -11
  53. package/dist/accessory/addons/filter.js +0 -37
  54. package/dist/accessory/addons/filter.js.map +0 -1
  55. package/dist/accessory/climate/active.d.ts +0 -11
  56. package/dist/accessory/climate/active.js +0 -44
  57. package/dist/accessory/climate/active.js.map +0 -1
  58. package/dist/accessory/climate/fan2.d.ts +0 -20
  59. package/dist/accessory/climate/fan2.js +0 -122
  60. package/dist/accessory/climate/fan2.js.map +0 -1
  61. package/dist/accessory/climate/purifier.d.ts +0 -19
  62. package/dist/accessory/climate/purifier.js +0 -114
  63. package/dist/accessory/climate/purifier.js.map +0 -1
  64. package/dist/accessory/climate/temperatureControl.js.map +0 -1
  65. package/dist/accessory/garage.d.ts +0 -17
  66. package/dist/accessory/garage.js +0 -110
  67. package/dist/accessory/garage.js.map +0 -1
  68. package/dist/accessory/sensor/air.d.ts +0 -14
  69. package/dist/accessory/sensor/air.js +0 -94
  70. package/dist/accessory/sensor/air.js.map +0 -1
  71. package/dist/accessory/valve.d.ts +0 -14
  72. package/dist/accessory/valve.js +0 -71
  73. package/dist/accessory/valve.js.map +0 -1
  74. package/dist/i18n/ro.d.ts +0 -846
  75. package/dist/i18n/ro.js +0 -381
  76. package/dist/i18n/ro.js.map +0 -1
  77. package/dist/tools/properties.d.ts +0 -11
  78. package/dist/tools/properties.js +0 -73
  79. package/dist/tools/properties.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,21 +2,18 @@
2
2
 
3
3
  All notable changes to homebridge-dummy will be documented in this file.
4
4
 
5
- ## 1.4.0-beta.16 (2025-09-26)
5
+ ## 1.4.0-beta.3 (2025-09-18)
6
6
 
7
7
  ### Added
8
- - `Air Purifier`, `Air Quality Sensor`, `Fanv2`, `GarageDoorOpener`, `HeaterCooler`, `LightSensor`, and `Valve`
9
- - Broker, username, and password can be set via environment variables ([documentation](https://github.com/mpatfield/homebridge-easy-mqtt#environment-variables))
10
- - Publish arbitrary MQTT messages on connect ([documentation] (https://github.com/mpatfield/homebridge-easy-mqtt#mqtt-onconnect))
11
- - Traduceri în limba română. Mulțumesc, [@rursache](https://github.com/sponsors/rursache)!
8
+ - Support for HeaterCooler
9
+ - Support for LightSensor
12
10
 
13
11
  ### Changed
14
- - ⚠️ All accessory states are now saved across plugin/Homebridge restarts
15
- - If you want to keep the old behavior, select the `Reset on Restart` option for each accessory you want to reset
16
- - MQTT `options` JSON can now also include publish options, such as `retain`, in addition to client options
17
12
  - Optimized MQTT connections by sharing across multiple accessories when possible
18
- - Previously, every accessory always had its own connection
19
- - Better field validation in config UI (Thank you, [@justjam2013](https://github.com/sponsors/justjam2013) for teaching me this!)
13
+ - Previously, every accessory had its own connection
14
+
15
+ ### Fixed
16
+ - Config UI rendering issue when migrating deprecated fields
20
17
 
21
18
  ### Notes
22
19
  Would you like to see Homebridge Easy MQTT in your language? Please consider [getting involved](https://github.com/mpatfield/homebridge-easy-mqtt/issues/4). No coding experience required!
package/README.md CHANGED
@@ -25,18 +25,12 @@ This plugin is designed to be a simple replacement for the fantastic [homebridge
25
25
 
26
26
  **HomebridgeEasyMQTT** currently supports the following accessory types but will be expanded over time as more use cases are requested. If there is an accessory type you'd like to see supported, please [create an issue in GitHub](https://github.com/mpatfield/homebridge-easy-mqtt/issues/new/choose).
27
27
 
28
- - `AirPurifier`
29
- - `AirQualitySensor`
30
28
  - `CarbonDioxideSensor`
31
29
  - `CarbonMonoxideSensor`
32
30
  - `ContactSensor`
33
- - `Fanv2`
34
- - `GarageDoorOpener`
35
- - `HeaterCooler`
36
31
  - `HumiditySensor`
37
32
  - `LeakSensor`
38
33
  - `Lightbulb`
39
- - `LightSensor`
40
34
  - `LockMechanism`
41
35
  - `MotionSensor`
42
36
  - `OccupancySensor`
@@ -46,7 +40,6 @@ This plugin is designed to be a simple replacement for the fantastic [homebridge
46
40
  - `Switch`
47
41
  - `TemperatureSensor`
48
42
  - `Thermostat`
49
- - `Valve`
50
43
 
51
44
  ## Configuration
52
45
 
@@ -71,14 +64,7 @@ Using the Homebridge Config UI is the easiest way to set up this plugin. However
71
64
  "broker": "string",
72
65
  "username": "string",
73
66
  "password": "string",
74
- "options": "string",
75
- "onConnect": [
76
- {
77
- "topic": "string",
78
- "message": "string",
79
- }
80
-
81
- ]
67
+ "options": "string"
82
68
  },
83
69
  "customCharacteristics": [
84
70
  {
@@ -89,7 +75,6 @@ Using the Homebridge Config UI is the easiest way to set up this plugin. However
89
75
  }
90
76
 
91
77
  ],
92
- "resetOnRestart": false,
93
78
  "disableLogging": false,
94
79
  … // See Topics & Values below for additional attributes for each accessory type
95
80
  ],
@@ -103,7 +88,7 @@ Required fields are marked with an asterisk (*)
103
88
  ### Info
104
89
  - `id*` - A unique ID to identify this accessory. Changing this value will result in a new accessory.
105
90
  - `name*` - The display name for the accessory in HomeKit
106
- - `type*` - The type of accessory. See list of currently supported types above.
91
+ - `type*` - The type of accessory, currently Lightbulb, LockMechanism, Outlet, SecuritySystem, Switch, and Temperature Sensor are supported
107
92
  - `group` - Items sharing the same group name will be grouped together in the Home app UI
108
93
  - ⚠️ Changing the group name will require you to reconfigure any HomeKit scenes/automations for those accessories
109
94
  - `manufacturer` - The accessory manufacturer which will display in HomeKit device details
@@ -112,21 +97,10 @@ Required fields are marked with an asterisk (*)
112
97
  - `version` - The accessory software version which will display in HomeKit device details
113
98
 
114
99
  ### MQTT:
115
- - `broker` - The URL and port to use for communicating with your MQTT device, defaults to `mqtt://127.0.0.1:1883/`
100
+ - `broker*` - The URL and port to use for communicating with your MQTT device
116
101
  - `username` - Username
117
102
  - `password` - Password
118
103
  - `options` - See [MQTT Options](#mqtt-options) below
119
- - `onConnect` - See [MQTT OnConnect](#mqtt-onconnect) below
120
-
121
- #### Environment Variables
122
-
123
- Alternatively, you may set the following environment variables for broker, username, and password:
124
-
125
- - `EASYMQTT_BROKER` - expects a fully formed url, `protocol://host:port/` where port is optional
126
- - `EASYMQTT_USERNAME`
127
- - `EASYMQTT_PASSWORD`
128
-
129
- Note that setting the this information in the JSON config will override the environment variables.
130
104
 
131
105
  ## Topics & Values
132
106
 
@@ -136,8 +110,6 @@ You may define topics using a JSONPath dot notation to assist the parser in find
136
110
 
137
111
  As with topics, you will also need to populate the appropriate values based on the type. Note that while they are defined as strings, they will be auto-converted to the appropriate primitives (e.g. boolean or number) where appropriate.
138
112
 
139
- These values are used for both determining current state and, where appropriate, publishing the new state to MQTT
140
-
141
113
  ### General Purpose
142
114
  - `topicGetStatusActive` - Whether or not the accessory is connected/reachable
143
115
  - `topicGetBatteryLow` - Wether or not the accessory has a low battery
@@ -146,12 +118,12 @@ These values are used for both determining current state and, where appropriate,
146
118
  - `valueBatteryLow` - Accessory has a low battery level
147
119
 
148
120
  ### On/Off Accessories
149
-
150
- #### Lightbulb
151
121
  - `topicGetOn*` - The current state of the outlet, i.e. on/off
152
122
  - `topicSetOn*` - For setting the state of the outlet
153
123
  - `valueOn*` - Turned on, e.g. "true", or "1", or "On"
154
124
  - `valueOff*` - Turned off, e.g. "false", or "0", or "Off"
125
+
126
+ #### Lightbulb
155
127
  - `topicGetBrightness` - The current brightness as a percent
156
128
  - `topicSetBrightness` - For setting the brightness
157
129
  - `topicGetColorTemperature` - The current color temperature of the lightbulb
@@ -162,37 +134,15 @@ These values are used for both determining current state and, where appropriate,
162
134
  - `topicSetSaturation` - For setting the saturation setting of the lightbulb
163
135
 
164
136
  #### Outlet
165
- - `topicGetOn*` - The current state of the outlet, i.e. on/off
166
- - `topicSetOn*` - For setting the state of the outlet
167
- - `valueOn*` - Turned on, e.g. "true", or "1", or "On"
168
- - `valueOff*` - Turned off, e.g. "false", or "0", or "Off"
169
137
  - `topicGetOutletInUse` - Whether or not the outlet is currently being used
170
138
  - `valueOutletInUse` - Currently being used, e.g. "true", or "1", or "On"
171
139
 
172
140
  #### Switch
173
- - `topicGetOn*` - The current state of the outlet, i.e. on/off
174
- - `topicSetOn*` - For setting the state of the outlet
175
- - `valueOn*` - Turned on, e.g. "true", or "1", or "On"
176
- - `valueOff*` - Turned off, e.g. "false", or "0", or "Off"
141
+ -
177
142
 
178
143
  ### Sensors
179
-
180
- #### AirQualitySensor
181
- - `topicGetAirQuality*` - Get air quality
182
- - `topicGetNitrogenDioxideDensity` - Get nitrogen dioxide density in µg/m³
183
- - `topicGetOzoneDensity` - Get ozone density in µg/m³
184
- - `topicGetPM2_5Density` - Get PM2.5 density in µg/m³
185
- - `topicGetPM10Density` - Get PM10 density in µg/m³
186
- - `topicGetSulphurDioxideDensity` - Get sulphur dioxide density in µg/m³
187
- - `topicGetVOCDensity` - Get VOC density in µg/m³
188
144
  - `topicGetStatusFault` - Whether or not the sensor has a generic fault
189
145
  - `topicGetStatusTampered` - Whether or not the sensor has been tampered with
190
- - `valueAQExcellent` - Air quality excellent
191
- - `valueAQGood` - Air quality good
192
- - `valueAQFair` - Air quality fair
193
- - `valueAQInferior` - Air quality inferior
194
- - `valueAQPoor` - Air quality poor
195
- - `valueAQUnknown` - Air quality unknown
196
146
  - `valueFault` - Accessory has a fault
197
147
  - `valueTampered` - Accessory has been tampered with
198
148
 
@@ -200,187 +150,63 @@ These values are used for both determining current state and, where appropriate,
200
150
  - `topicGetCarbonDioxideDetected*` - Whether or not the sensor has detected carbon dioxide
201
151
  - `topicGetCarbonDioxideLevel` - The current carbon dioxide level
202
152
  - `topicGetCarbonDioxidePeakLevel` - The peak carbon dioxide level
203
- - `topicGetStatusFault` - Whether or not the sensor has a generic fault
204
- - `topicGetStatusTampered` - Whether or not the sensor has been tampered with
205
153
  - `valueCarbonDioxideDetected*` - Accessory has detected carbon dioxide
206
- - `valueFault` - Accessory has a fault
207
- - `valueTampered` - Accessory has been tampered with
208
154
 
209
155
  #### CarbonMonoxideSensor
210
156
  - `topicGetCarbonMonoxideDetected*` - Whether or not the sensor has detected carbon monoxide
211
157
  - `topicGetCarbonMonoxideLevel` - The current carbon monoxide level
212
158
  - `topicGetCarbonMonoxidePeakLevel` - The peak carbon monoxide level
213
- - `topicGetStatusFault` - Whether or not the sensor has a generic fault
214
- - `topicGetStatusTampered` - Whether or not the sensor has been tampered with
215
159
  - `valueCarbonMonoxideDetected*` - Accessory has detected carbon monoxide
216
- - `valueFault` - Accessory has a fault
217
- - `valueTampered` - Accessory has been tampered with
218
160
 
219
161
  #### ContactSensor
220
162
  - `topicGetContactSensorState*` - Whether or not sensor has detected contact
221
- - `topicGetStatusFault` - Whether or not the sensor has a generic fault
222
- - `topicGetStatusTampered` - Whether or not the sensor has been tampered with
223
163
  - `valueContactDetected*` - Accessory has detected contact
224
- - `valueFault` - Accessory has a fault
225
- - `valueTampered` - Accessory has been tampered with
226
164
 
227
165
  ### HumiditySensor
228
- - `topicGetCurrentRelativeHumidity*` - The current relatively humidity
229
- - `topicGetStatusFault` - Whether or not the sensor has a generic fault
230
- - `topicGetStatusTampered` - Whether or not the sensor has been tampered with
231
- - `valueFault` - Accessory has a fault
232
- - `valueTampered` - Accessory has been tampered with
166
+ - `topicGetCurrentRelativeHumidity` - The current relatively humidity
233
167
 
234
168
  #### LeakSensor
235
169
  - `topicGetLeakDetected*` - Whether or not sensor has detected a leak
236
- - `topicGetStatusFault` - Whether or not the sensor has a generic fault
237
- - `topicGetStatusTampered` - Whether or not the sensor has been tampered with
238
170
  - `valueLeakDetected*` - Accessory has detected a leak
239
- - `valueFault` - Accessory has a fault
240
- - `valueTampered` - Accessory has been tampered with
241
171
 
242
172
  #### LightSensor
243
- - `topicGetCurrentAmbientLightLevel*` - The current light level in lux units
244
- - `topicGetStatusFault` - Whether or not the sensor has a generic fault
245
- - `topicGetStatusTampered` - Whether or not the sensor has been tampered with
246
- - `valueFault` - Accessory has a fault
247
- - `valueTampered` - Accessory has been tampered with
173
+ - `topicGetCurrentAmbientLightLevel` - The current light level in lux units
248
174
 
249
175
  #### MotionSensor
250
176
  - `topicGetMotionDetected*` - Whether or not sensor has detected motion
251
- - `topicGetStatusFault` - Whether or not the sensor has a generic fault
252
- - `topicGetStatusTampered` - Whether or not the sensor has been tampered with
253
177
  - `valueMotionDetected*` - Accessory has detected motion
254
- - `valueFault` - Accessory has a fault
255
- - `valueTampered` - Accessory has been tampered with
256
178
 
257
179
  #### OccupancySensor
258
180
  - `topicGetOccupancyDetected*` - Whether or not sensor has detected occupancy
259
- - `topicGetStatusFault` - Whether or not the sensor has a generic fault
260
- - `topicGetStatusTampered` - Whether or not the sensor has been tampered with
261
181
  - `valueOccupancyDetected*` - Accessory has detected occupancy
262
- - `valueFault` - Accessory has a fault
263
- - `valueTampered` - Accessory has been tampered with
264
182
 
265
183
  #### SmokeSensor
266
184
  - `topicGetSmokeDetected*` - Whether or not sensor has detected smoke
267
- - `topicGetStatusFault` - Whether or not the sensor has a generic fault
268
- - `topicGetStatusTampered` - Whether or not the sensor has been tampered with
269
185
  - `valueSmokeDetected*` - Accessory has detected smoke
270
- - `valueFault` - Accessory has a fault
271
- - `valueTampered` - Accessory has been tampered with
272
186
 
273
187
  #### TemperatureSensor
274
188
  - `topicGetCurrentTemperature*` - The current temperature of the sensor
275
189
  - `temperatureUnits` - The temperature units of the incoming value supplied by the sensor, `C` for Celsius (default) `F` for Fahrenheit
276
- - `topicGetStatusFault` - Whether or not the sensor has a generic fault
277
- - `topicGetStatusTampered` - Whether or not the sensor has been tampered with
278
- - `valueFault` - Accessory has a fault
279
- - `valueTampered` - Accessory has been tampered with
280
190
 
281
191
  ### Climate Controllers
282
-
283
- #### Thermostat
284
192
  - `temperatureUnits` - The temperature units of the incoming value supplied by the thermostat, `C` for Celsius (default) `F` for Fahrenheit
285
- - `topicGetCurrentTemperature*` - Get the current temperature
286
- - `topicGetCurrentHeatingCoolingState*` - Get the current mode (i.e. cooling, heating, off)
287
- - `topicGetTargetHeatingCoolingState*` - Get the target mode (i.e. auto, cooling, heating, off)
288
- - `topicSetTargetHeatingCoolingState*` - Set the target mode (i.e. auto, cooling, heating, off)
289
- - `topicGetTargetTemperature*` - Get the target temperature
290
- - `topicSetTargetTemperature*` - Set the target temperature
291
193
  - `topicGetCoolingThresholdTemperature` - Get the cooling threshold temperature
292
194
  - `topicSetCoolingThresholdTemperature` - Set the cooling threshold temparture
293
195
  - `topicGetHeatingThresholdTemperature` - Get the heating threshold temperature
294
196
  - `topicSetHeatingThresholdTemperature` - Set the heating threshold temperature
295
- - `topicGetCurrentRelativeHumidity` - Get the current humidity
296
- - `topicGetTargetRelativeHumidity` - Get the target humidity
297
- - `topicSetTargetRelativeHumidity` - Set the target humidity
298
- - `topicGetFilterChangeIndication` - Whether or not the filter needs to be changed. *Required if other filter topics are defined.
299
- - `topicGetFilterLifeLevel` - Filter life remaining as a percentage
300
- - `topicResetFilterIndication` - Used to reset the filter
301
- - `valueModeAuto` - Auto mode
302
- - `valueModeCool` - Cool mode
303
- - `valueModeHeat` - Heat mode
304
- - `valueModeOff` - Thermostat off
305
- - `valueFilterChange` - Indicates that the filter needs to be changed. *Required if `topicGetFilterChangeIndication` is defined.
306
-
307
- #### AirPurifier
308
- - `topicGetActive*` - Get whether or not the accessory is currently active
309
- - `topicSetActive*` - Set whether or not the accessory is currently active
310
- - `topicGetCurrentPurifierState*` - Get the current mode (i.e. inactive, idle, purifying)
311
- - `topicGetTargetPurifierState*` - Get the target mode (i.e. auto, manual)
312
- - `topicSetTargetPurifierState*` - Set the target mode (i.e. auto, manual)
313
- - `topicGetLockPhysicalControls` - Get whether or not the physical controls are locked
314
- - `topicSetLockPhysicalControls` - Set whether or not the physical controls are locked
315
- - `topicGetRotationSpeed` - Get the rotation speed as a percentage
316
- - `topicSetRotationSpeed` - Set the rotation speed as a percentage
317
- - `topicGetSwingMode` - Get whether or not accessory is oscillating
318
- - `topicSetSwingMode` - Set whether or not accessory is oscillating
319
- - `topicGetFilterChangeIndication` - Whether or not the filter needs to be changed. *Required if other filter topics are defined.
320
- - `topicGetFilterLifeLevel` - Filter life remaining as a percentage
321
- - `topicResetFilterIndication` - Used to reset the filter
322
- - `valueStateActive*` - Accessory is currently active
323
- - `valueStateInactive*` - Accessory is currently inactive
324
- - `valueModeAuto` - Auto target mode
325
- - `valueModeIdle` - Idle mode
326
- - `valueModeInactive` - Inactive mode
327
- - `valueModeManual` - Manual target mode
328
- - `valueModePurifying` - Purifying mode
329
- - `valueControlLock` - Physical controls are locked
330
- - `valueControlUnlock` - Physical controls are unlocked
331
- - `valueSwingEnabled` - Accessory is oscillating
332
- - `valueSwingDisabled` - Accessory is not oscillating
333
- - `valueFilterChange` - Indicates that the filter needs to be changed. *Required if `topicGetFilterChangeIndication` is defined.
334
-
335
- #### Fanv2
336
- - `topicGetActive*` - Get whether or not the accessory is currently active
337
- - `topicSetActive*` - Set whether or not the accessory is currently active
338
- - `topicGetCurrentFanState` - Get current fan mode (blowing, idle, inactive)
339
- - `topicGetTargetFanState` - Get target fan mode (auto, manual)
340
- - `topicSetTargetFanState` - Set target fan mode (auto, manual)
341
- - `topicGetLockPhysicalControls` - Get whether or not the physical controls are locked
342
- - `topicSetLockPhysicalControls` - Set whether or not the physical controls are locked
343
- - `topicGetRotationDirection` - Get the fan rotation direction (clockwise, counter clockwise)
344
- - `topicSetRotationDirection` - Set the fan rotation direction (clockwise, counter clockwise)
345
- - `topicGetRotationSpeed` - Get the rotation speed as a percentage
346
- - `topicSetRotationSpeed` - Set the rotation speed as a percentage
347
- - `topicGetSwingMode` - Get whether or not accessory is oscillating
348
- - `topicSetSwingMode` - Set whether or not accessory is oscillating
349
- - `valueStateActive*` - Accessory is currently active
350
- - `valueStateInactive*` - Accessory is currently inactive
351
- - `valueModeBlowing` - Air blowing mode
352
- - `valueModeIdle` - Idle mode
353
- - `valueModeInactive` - Inactive mode
354
- - `valueModeAuto` - Auto target mode
355
- - `valueModeManual` - Manual target mode
356
- - `valueDirectionClockwise` - Rotating clockwise
357
- - `valueDirectionCounterClockwise` - Rotating counter clockwise
358
- - `valueControlLock` - Physical controls are locked
359
- - `valueControlUnlock` - Physical controls are unlocked
360
- - `valueSwingEnabled` - Accessory is oscillating
361
- - `valueSwingDisabled` - Accessory is not oscillating
362
197
 
363
198
  #### HeaterCooler
364
- - `temperatureUnits` - The temperature units of the incoming value supplied by the thermostat, `C` for Celsius (default) `F` for Fahrenheit
365
199
  - `topicGetActive*` - Get whether or not the accessory is currently active
366
200
  - `topicSetActive*` - Set whether or not the accessory is currently active
367
- - `topicGetCurrentTemperature*` - Get the current temperature
368
201
  - `topicGetCurrentHeaterCoolerState*` - Get the current mode (i.e. inactive, idle, heating, cooling)
369
202
  - `topicGetTargetHeaterCoolerState*` - Get the target mode (i.e. auto, heat, cool)
370
203
  - `topicSetTargetHeaterCoolerState*` - Set the target mode (i.e. auto, heat, cool)
371
- - `topicGetCoolingThresholdTemperature` - Get the cooling threshold temperature
372
- - `topicSetCoolingThresholdTemperature` - Set the cooling threshold temparture
373
- - `topicGetHeatingThresholdTemperature` - Get the heating threshold temperature
374
- - `topicSetHeatingThresholdTemperature` - Set the heating threshold temperature
375
204
  - `topicGetLockPhysicalControls` - Get whether or not the physical controls are locked
376
205
  - `topicSetLockPhysicalControls` - Set whether or not the physical controls are locked
377
206
  - `topicGetRotationSpeed` - Get the rotation speed as a percentage
378
207
  - `topicSetRotationSpeed` - Set the rotation speed as a percentage
379
208
  - `topicGetSwingMode` - Get whether or not accessory is oscillating
380
209
  - `topicSetSwingMode` - Set whether or not accessory is oscillating
381
- - `topicGetFilterChangeIndication` - Whether or not the filter needs to be changed. *Required if other filter topics are defined.
382
- - `topicGetFilterLifeLevel` - Filter life remaining as a percentage
383
- - `topicResetFilterIndication` - Used to reset the filter
384
210
  - `valueStateActive*` - Accessory is currently active
385
211
  - `valueStateInactive*` - Accessory is currently inactive
386
212
  - `valueModeAuto` - Mode is auto
@@ -392,27 +218,23 @@ These values are used for both determining current state and, where appropriate,
392
218
  - `valueControlUnlock` - Physical controls are unlocked
393
219
  - `valueSwingEnabled` - Accessory is oscillating
394
220
  - `valueSwingDisabled` - Accessory is not oscillating
395
- - `valueFilterChange` - Indicates that the filter needs to be changed. *Required if `topicGetFilterChangeIndication` is defined.
396
221
 
397
- ### Others
222
+ #### Thermostat
223
+ - `topicGetCurrentHeatingCoolingState*` - Get the current mode (i.e. cooling, heating, off)
224
+ - `topicGetTargetHeatingCoolingState*` - Get the target mode (i.e. auto, cooling, heating, off)
225
+ - `topicSetTargetHeatingCoolingState*` - Set the target mode (i.e. auto, cooling, heating, off)
226
+ - `topicGetCurrentTemperature*` - Get the current temperature
227
+ - `topicGetTargetTemperature*` - Get the target temperature
228
+ - `topicSetTargetTemperature*` - Set the target temperature
229
+ - `topicGetCurrentRelativeHumidity` - Get the current humidity
230
+ - `topicGetTargetRelativeHumidity` - Get the target humidity
231
+ - `topicSetTargetRelativeHumidity` - Set the target humidity
232
+ - `valueModeAuto` - Auto mode
233
+ - `valueModeCool` - Cool mode
234
+ - `valueModeHeat` - Heat mode
235
+ - `valueModeOff` - Thermostat off
398
236
 
399
- #### GarageDoorOpener
400
- - `topicGetCurrentDoorState*` - Current state of the garage door, i.e. open/opening/closed/closing/stopped
401
- - `topicGetTargetDoorState*` - Target state of the garage door, i.e. open/closed
402
- - `topicSetTargetDoorState*` - Set the target door state, i.e. open/closed
403
- - `topicGetObstructionDetected*` - Whether or not the garage door is obstructed
404
- - `topicGetCurrentLockState` - The current state of the garage lock, i.e. locked/unlocked
405
- - `topicGetTargetLockState` - The target (i.e. desired) state of the garage lock
406
- - `topicSetTargetLockState` - For setting the target (i.e. desired) state of the garage lock
407
- - `valueDoorObstructed*` - Door is obstructed
408
- - `valueDoorStateClosed` - Door is closed
409
- - `valueDoorStateClosing` - Door is closing
410
- - `valueDoorStateOpen` - Door is open
411
- - `valueDoorStateOpening` - Door is opening
412
- - `valueDoorStateStopped` - Door is stopped
413
- - `valueLockStateJammed` - Door lock is jammed
414
- - `valueLockStateSecured` - Door is locked
415
- - `valueLockStateUnsecured` - Door is unlocked
237
+ ### Others
416
238
 
417
239
  #### LockMechanism
418
240
  - `topicGetCurrentLockState*` - The current state of the lock, i.e. locked/unlocked
@@ -436,24 +258,6 @@ These values are used for both determining current state and, where appropriate,
436
258
  - `valueFault` - Accessory has a fault
437
259
  - `valueTampered` - Accessory has been tampered with
438
260
 
439
- #### Valve
440
- - `valveType` - One of `GENERIC_VALVE` (default), `IRRIGATION`, `SHOWER_HEAD`, or `WATER_FAUCET`
441
- - `topicGetValveActive*` - For getting whether or not the valve is active
442
- - `topicSetValveActive*` - For setting whether or not the valve is active
443
- - `topicGetValveInUse*` - For getting whether or not the valve is in use
444
- - `topicGetStatusFault` - For getting whether or not there is a fault
445
- - `topicGetValveIsConfigured` - For getting wether or not valve is configured
446
- - `topicSetValveIsConfigured` - For setting wether or not valve is configured
447
- - `topicGetValveSetDuration` - For getting the set duration in seconds
448
- - `topicSetValveSetDuration` - For setting the set duration in seconds
449
- - `topicGetValveRemainingDuration` - For getting the time remaining in seconds
450
- - `valueActive*` - Valve is active, e.g. "true", or "1", or "active"
451
- - `valueInactive*` - Valve is not active e.g. "false", or "0", or "active"
452
- - `valueInUse*` - Valve is in use, e.g. "true", or "1", or "used"
453
- - `valueConfigured` - Valve is configured, e.g. "true", or "1", or "configured"
454
- - `valueNotConfigured` - Valve is not configured, e.g. "false", or "0", or "unconfigured"
455
- - `valueFault` - Valve has a fault, e.g. "error", or "-1"
456
-
457
261
  ## Logging/Debugging:
458
262
 
459
263
  By default, devices will log activity, for example when a Switch is turned on or a LockMechanism is unlocked.
@@ -468,29 +272,10 @@ You may also turn on additional logging if you'd like to see the MQTT messages p
468
272
 
469
273
  ## MQTT Options
470
274
 
471
- You are able to pass in any arbitrary MQTT options via `mqtt.options` in the config. This can be a combination of [client options](https://github.com/mqttjs/MQTT.js?tab=readme-ov-file#mqttclientstreambuilder-options) and [publish options](https://github.com/mqttjs/MQTT.js?tab=readme-ov-file#mqttclientpublishtopic-message-options-callback). Just make sure the value provided is valid JSON. For example:
275
+ You are able to pass in any arbitrary MQTT options via `mqtt.options` in the config. This can include, for example, such as clientId, protocolVersion, etc. Just make sure the value provided is valid JSON. For example:
472
276
 
473
277
  ```
474
- "options": "{ \"protocolVersion\": \"4\", \"clientId\": \"my-client-id\", \"retain\": true }"
475
- ```
476
-
477
- ## MQTT OnConnect
478
-
479
- Accessories can be configured to publish any number of arbitratry messages to the MQTT server on connect. This can be useful to invoke accessories to give updates on their current status.
480
-
481
- Each entry should have a topic and a message:
482
-
483
- ```
484
- "onConnect": [
485
- {
486
- "topic": "some/arbitrary/topic",
487
- "message": "connected",
488
- },
489
- {
490
- "topic": "another/arbitrary/topic",
491
- "message": "{ \"value\": \"can also be json\" }",
492
- }
493
- ]
278
+ "options": "{ \"protocolVersion\": \"4\", \"clientId\": \"my-client-id\", \"rejectUnauthorized\": true }"
494
279
  ```
495
280
 
496
281
  ## JSONPaths
@@ -589,12 +374,6 @@ Due to the complexity, this was intentionally left out of the plugin config UI,
589
374
 
590
375
  Since `customCharacteristics` is an array, you may define as many custom characteristics as you wish.
591
376
 
592
- ## Persistance
593
-
594
- By default, all accessory values are saved and reloaded when the plugin restarts. However, you may override this behavior by selecting `Reset on Restart` option and accessories will be reset to defaults whenever the plugin or Homebridge restarts.
595
-
596
- - `"resetOnRestart": true`
597
-
598
377
  ## Credits
599
378
 
600
379
  [@arachnetech](https://github.com/arachnetech) for the fantastic [homebridge-mqttthing](https://github.com/arachnetech/homebridge-mqttthing) plugin which serves as the main inspiration for this project