homebridge-plugin-klares4 1.1.1-beta.5 โ†’ 1.1.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.
package/README.md CHANGED
@@ -15,7 +15,6 @@ Plugin completo per sistemi Ksenia Lares4 che integra zone di sicurezza, luci, t
15
15
  - ๐Ÿ”„ **Aggiornamenti Real-time**: Connessione WebSocket con riconnessione automatica
16
16
  - โš™๏ธ **Configurazione UI**: Interfaccia grafica completa in Homebridge UI
17
17
  - ๐ŸŽฏ **Personalizzazione**: Nomi personalizzati ed esclusione selettiva di entitร 
18
- - ๐Ÿ“ก **Bridge MQTT**: Pubblicazione stati e ricezione comandi via MQTT (opzionale)
19
18
 
20
19
  ## ๐Ÿ“‹ Prerequisiti
21
20
 
@@ -137,88 +136,6 @@ Il plugin puรฒ essere configurato completamente tramite l'interfaccia grafica di
137
136
  - **Dati**: Temperatura, Umiditร , Luminositร 
138
137
  - **Aggiornamenti**: Real-time
139
138
 
140
- ## ๐Ÿ“ก Bridge MQTT (Opzionale)
141
-
142
- Il plugin include un bridge MQTT che permette di pubblicare gli stati degli accessori e ricevere comandi via MQTT.
143
-
144
- ### ๐Ÿš€ Configurazione MQTT
145
-
146
- Abilita il bridge MQTT nella sezione "MQTT Bridge" della configurazione:
147
-
148
- ```json
149
- {
150
- "mqtt": {
151
- "enabled": true,
152
- "broker": "mqtt://192.168.1.100:1883",
153
- "username": "mqtt_user",
154
- "password": "mqtt_password",
155
- "clientId": "homebridge-klares4",
156
- "topicPrefix": "homebridge/klares4",
157
- "qos": 1,
158
- "retain": true
159
- }
160
- }
161
- ```
162
-
163
- ### ๐Ÿ“ค Pubblicazione Stati
164
-
165
- Gli stati degli accessori vengono pubblicati sui seguenti topic:
166
-
167
- - **Luci**: `homebridge/klares4/light/{id}/state`
168
- - **Tapparelle**: `homebridge/klares4/cover/{id}/state`
169
- - **Termostati**: `homebridge/klares4/thermostat/{id}/state`
170
- - **Sensori**: `homebridge/klares4/sensor/{id}/state`
171
- - **Zone**: `homebridge/klares4/zone/{id}/state`
172
- - **Scenari**: `homebridge/klares4/scenario/{id}/state`
173
-
174
- ### ๐Ÿ“ฅ Ricezione Comandi
175
-
176
- Invia comandi agli accessori sui seguenti topic:
177
-
178
- - **Luci**: `homebridge/klares4/light/{id}/set`
179
- - **Tapparelle**: `homebridge/klares4/cover/{id}/set`
180
- - **Termostati**: `homebridge/klares4/thermostat/{id}/set`
181
- - **Scenari**: `homebridge/klares4/scenario/{id}/set`
182
-
183
- ### ๐Ÿ’ก Esempi di Utilizzo
184
-
185
- #### Accendere una luce:
186
-
187
- ```bash
188
- mosquitto_pub -h 192.168.1.100 -t "homebridge/klares4/light/1/set" -m '{"on": true, "brightness": 80}'
189
- ```
190
-
191
- #### Muovere una tapparella:
192
-
193
- ```bash
194
- mosquitto_pub -h 192.168.1.100 -t "homebridge/klares4/cover/2/set" -m '{"position": 50}'
195
- ```
196
-
197
- #### Impostare temperatura termostato:
198
-
199
- ```bash
200
- mosquitto_pub -h 192.168.1.100 -t "homebridge/klares4/thermostat/3/set" -m '{"targetTemperature": 22, "mode": "heat"}'
201
- ```
202
-
203
- #### Attivare uno scenario:
204
-
205
- ```bash
206
- mosquitto_pub -h 192.168.1.100 -t "homebridge/klares4/scenario/4/set" -m '{"active": true}'
207
- ```
208
-
209
- ### ๐Ÿ“Š Formato Payload Stati
210
-
211
- ```json
212
- {
213
- "id": "1",
214
- "name": "Luce Sala",
215
- "type": "light",
216
- "on": true,
217
- "brightness": 80,
218
- "timestamp": "2025-09-15T15:00:00.000Z"
219
- }
220
- ```
221
-
222
139
  ## ๐Ÿ”ง Risoluzione Problemi
223
140
 
224
141
  ### Connessione WebSocket
@@ -10,23 +10,20 @@
10
10
  "name": {
11
11
  "title": "Nome Piattaforma",
12
12
  "type": "string",
13
- "default": "Lares4",
14
- "required": true
13
+ "default": "Lares4"
15
14
  },
16
15
  "ip": {
17
16
  "title": "Indirizzo IP",
18
17
  "type": "string",
19
18
  "format": "ipv4",
20
- "placeholder": "192.168.1.100",
21
- "required": true
19
+ "placeholder": "192.168.1.100"
22
20
  },
23
21
  "port": {
24
22
  "title": "Porta",
25
23
  "type": "integer",
26
24
  "default": 443,
27
25
  "minimum": 1,
28
- "maximum": 65535,
29
- "required": true
26
+ "maximum": 65535
30
27
  },
31
28
  "https": {
32
29
  "title": "Usa HTTPS",
@@ -36,13 +33,11 @@
36
33
  "sender": {
37
34
  "title": "Sender ID",
38
35
  "type": "string",
39
- "default": "homebridge",
40
- "required": true
36
+ "default": "homebridge"
41
37
  },
42
38
  "pin": {
43
39
  "title": "PIN Sistema",
44
- "type": "string",
45
- "required": true
40
+ "type": "string"
46
41
  },
47
42
  "debug": {
48
43
  "title": "Debug Mode",
@@ -90,121 +85,9 @@
90
85
  "items": {
91
86
  "type": "string"
92
87
  }
93
- },
94
- "mqtt": {
95
- "type": "object",
96
- "properties": {
97
- "enabled": {
98
- "title": "Abilita MQTT",
99
- "type": "boolean",
100
- "default": false
101
- },
102
- "broker": {
103
- "title": "Broker MQTT",
104
- "type": "string",
105
- "placeholder": "mqtt://192.168.1.100:1883",
106
- "condition": {
107
- "functionBody": "return model.mqtt && model.mqtt.enabled === true;"
108
- }
109
- },
110
- "username": {
111
- "title": "Username",
112
- "type": "string",
113
- "condition": {
114
- "functionBody": "return model.mqtt && model.mqtt.enabled === true;"
115
- }
116
- },
117
- "password": {
118
- "title": "Password",
119
- "type": "string",
120
- "condition": {
121
- "functionBody": "return model.mqtt && model.mqtt.enabled === true;"
122
- }
123
- },
124
- "clientId": {
125
- "title": "Client ID",
126
- "type": "string",
127
- "placeholder": "homebridge-klares4",
128
- "condition": {
129
- "functionBody": "return model.mqtt && model.mqtt.enabled === true;"
130
- }
131
- },
132
- "topicPrefix": {
133
- "title": "Prefisso Topic",
134
- "type": "string",
135
- "default": "homebridge/klares4",
136
- "condition": {
137
- "functionBody": "return model.mqtt && model.mqtt.enabled === true;"
138
- }
139
- },
140
- "qos": {
141
- "title": "QoS",
142
- "type": "integer",
143
- "default": 1,
144
- "enum": [0, 1, 2],
145
- "condition": {
146
- "functionBody": "return model.mqtt && model.mqtt.enabled === true;"
147
- }
148
- },
149
- "retain": {
150
- "title": "Retain Messages",
151
- "type": "boolean",
152
- "default": true,
153
- "condition": {
154
- "functionBody": "return model.mqtt && model.mqtt.enabled === true;"
155
- }
156
- }
157
- }
158
- },
159
- "roomMapping": {
160
- "type": "object",
161
- "properties": {
162
- "enabled": {
163
- "title": "Abilita Mappatura Stanze",
164
- "type": "boolean",
165
- "default": false,
166
- "description": "Abilita la mappatura dei dispositivi nelle stanze per topic MQTT personalizzati"
167
- },
168
- "rooms": {
169
- "title": "Configurazione Stanze",
170
- "type": "array",
171
- "items": {
172
- "type": "object",
173
- "properties": {
174
- "roomName": {
175
- "title": "Nome Stanza",
176
- "type": "string",
177
- "placeholder": "Es: sala, cucina, camera"
178
- },
179
- "devices": {
180
- "title": "Dispositivi",
181
- "type": "array",
182
- "items": {
183
- "type": "object",
184
- "properties": {
185
- "deviceId": {
186
- "title": "ID Dispositivo",
187
- "type": "string"
188
- },
189
- "deviceName": {
190
- "title": "Nome Dispositivo",
191
- "type": "string",
192
- "readonly": true
193
- }
194
- },
195
- "required": ["deviceId"]
196
- }
197
- }
198
- },
199
- "required": ["roomName"]
200
- },
201
- "condition": {
202
- "functionBody": "return model.roomMapping && model.roomMapping.enabled === true;"
203
- }
204
- }
205
- }
206
88
  }
207
- }
89
+ },
90
+ "required": ["name", "ip", "port", "sender", "pin"]
208
91
  },
209
92
  "layout": [
210
93
  {
@@ -314,97 +197,6 @@
314
197
  ]
315
198
  }
316
199
  ]
317
- },
318
- {
319
- "type": "section",
320
- "title": "MQTT Bridge",
321
- "expandable": true,
322
- "expanded": false,
323
- "items": [
324
- {
325
- "type": "help",
326
- "helpvalue": "<div class='alert alert-warning'><h5>๐Ÿšง Funzionalitร  Sperimentale</h5><p>Il bridge MQTT permette di:</p><ul><li>๐Ÿ“ค <strong>Pubblicare</strong> gli stati degli accessori su MQTT</li><li>๐Ÿ“ฅ <strong>Ricevere</strong> comandi da MQTT per controllare gli accessori</li></ul><p><strong>Formato Topic:</strong></p><ul><li>Stati: <code>homebridge/klares4/{type}/{id}/state</code></li><li>Comandi: <code>homebridge/klares4/{type}/{id}/set</code></li></ul></div>"
327
- },
328
- "mqtt.enabled",
329
- "mqtt.broker",
330
- "mqtt.username",
331
- "mqtt.password",
332
- "mqtt.clientId",
333
- "mqtt.topicPrefix",
334
- "mqtt.qos",
335
- "mqtt.retain"
336
- ]
337
- },
338
- {
339
- "type": "section",
340
- "title": "Mappatura Stanze MQTT",
341
- "expandable": true,
342
- "expanded": false,
343
- "items": [
344
- {
345
- "type": "help",
346
- "helpvalue": "<div class='alert alert-info'><h5>๐Ÿ  Mappatura Stanze MQTT</h5><p>Organizza i dispositivi per stanza nei topic MQTT:</p><ul><li>๐Ÿ”ง <strong>Disabilitato:</strong> <code>homebridge/klares4/{type}/{id}/state</code></li><li>๐Ÿ  <strong>Abilitato:</strong> <code>homebridge/{stanza}/{type}/{id}/state</code></li></ul><p><strong>Esempio:</strong></p><ul><li><code>homebridge/sala/sensor/sensor_temp_1/state</code></li><li><code>homebridge/cucina/light/light_9/state</code></li></ul><p>๐Ÿ’ก I dispositivi non assegnati useranno <code>klares4</code> come stanza predefinita.</p></div>"
347
- },
348
- {
349
- "type": "help",
350
- "helpvalue": "<div class='alert alert-primary'><h5>๐Ÿ“‹ Dispositivi del Tuo Sistema</h5><p>๐Ÿ’ก <strong>Il plugin genera automaticamente la lista dei tuoi dispositivi:</strong></p><ol><li><strong>Avvia il plugin</strong> una volta per scoprire tutti i dispositivi</li><li><strong>Controlla i log</strong> per vedere l'elenco completo con ID e nomi</li><li><strong>Apri i file generati:</strong><ul><li><code>~/.homebridge/klares4-devices.json</code> - Lista completa dispositivi</li><li><code>~/.homebridge/klares4-room-mapping-example.json</code> - Esempio configurazione</li></ul></li><li><strong>Copia gli ID</strong> dai file e usali nei campi sottostanti</li></ol><p><strong>๐ŸŽฏ Vantaggi:</strong></p><ul><li>โœ… Lista sempre aggiornata con i tuoi dispositivi reali</li><li>โœ… Nomi originali dal sistema Lares4</li><li>โœ… Esempio di configurazione pronto all'uso</li><li>โœ… Nessun hardcoding - tutto dinamico!</li></ul></div>"
351
- },
352
- "roomMapping.enabled",
353
- {
354
- "key": "roomMapping.rooms",
355
- "type": "array",
356
- "orderable": true,
357
- "buttonText": "๐Ÿ  Aggiungi Nuova Stanza",
358
- "condition": {
359
- "functionBody": "return model.roomMapping && model.roomMapping.enabled === true;"
360
- },
361
- "items": [
362
- {
363
- "type": "div",
364
- "displayFlex": true,
365
- "flex-direction": "column",
366
- "items": [
367
- {
368
- "key": "roomMapping.rooms[].roomName",
369
- "title": "Nome Stanza",
370
- "placeholder": "Es: sala, cucina, camera, studio"
371
- },
372
- {
373
- "key": "roomMapping.rooms[].devices",
374
- "title": "Dispositivi in questa stanza",
375
- "type": "array",
376
- "orderable": false,
377
- "buttonText": "๐Ÿ“ฑ Aggiungi Dispositivo",
378
- "items": [
379
- {
380
- "type": "div",
381
- "displayFlex": true,
382
- "flex-direction": "column",
383
- "items": [
384
- {
385
- "key": "roomMapping.rooms[].devices[].deviceId",
386
- "title": "ID Dispositivo",
387
- "type": "string",
388
- "placeholder": "Es: light_9, sensor_temp_1, cover_1, zone_18",
389
- "description": "Inserisci l'ID del dispositivo (vedi lista sopra per esempi)",
390
- "pattern": "^(light_|cover_|sensor_temp_|sensor_hum_|sensor_light_|zone_|thermostat_|scenario_)[0-9]+$"
391
- },
392
- {
393
- "key": "roomMapping.rooms[].devices[].deviceName",
394
- "title": "Nome Dispositivo",
395
- "type": "string",
396
- "readonly": true,
397
- "description": "Nome automatico basato sull'ID (verrร  popolato dal plugin)"
398
- }
399
- ]
400
- }
401
- ]
402
- }
403
- ]
404
- }
405
- ]
406
- }
407
- ]
408
200
  }
409
201
  ]
410
202
  }
@@ -1,7 +1,6 @@
1
1
  import type { API, Characteristic, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service } from 'homebridge';
2
2
  import { KseniaWebSocketClient } from './websocket-client';
3
3
  import { KseniaDevice } from './types';
4
- import { MqttBridge } from './mqtt-bridge';
5
4
  export interface Lares4Config extends PlatformConfig {
6
5
  ip?: string;
7
6
  sender?: string;
@@ -39,27 +38,6 @@ export interface Lares4Config extends PlatformConfig {
39
38
  step?: number;
40
39
  };
41
40
  devicesSummaryDelay?: number;
42
- mqtt?: {
43
- enabled: boolean;
44
- broker: string;
45
- port?: number;
46
- username?: string;
47
- password?: string;
48
- clientId?: string;
49
- topicPrefix?: string;
50
- qos?: 0 | 1 | 2;
51
- retain?: boolean;
52
- };
53
- roomMapping?: {
54
- enabled: boolean;
55
- rooms?: Array<{
56
- roomName: string;
57
- devices?: Array<{
58
- deviceId: string;
59
- deviceName?: string;
60
- }>;
61
- }>;
62
- };
63
41
  }
64
42
  export declare class Lares4Platform implements DynamicPlatformPlugin {
65
43
  readonly log: Logger;
@@ -69,9 +47,8 @@ export declare class Lares4Platform implements DynamicPlatformPlugin {
69
47
  readonly Characteristic: typeof Characteristic;
70
48
  readonly accessories: Map<string, PlatformAccessory>;
71
49
  readonly discoveredCacheUUIDs: string[];
72
- readonly accessoryHandlers: Map<string, any>;
50
+ private readonly accessoryHandlers;
73
51
  wsClient?: KseniaWebSocketClient;
74
- mqttBridge?: MqttBridge;
75
52
  private discoveredDevices;
76
53
  private devicesFilePath;
77
54
  private summaryTimeout?;
@@ -80,8 +57,6 @@ export declare class Lares4Platform implements DynamicPlatformPlugin {
80
57
  private handleDeviceDiscovered;
81
58
  private saveDevicesList;
82
59
  private printDevicesSummary;
83
- private generateRoomMappingExample;
84
- private getExampleDevicesForRoom;
85
60
  private shouldExcludeDevice;
86
61
  private getCustomName;
87
62
  private handleDeviceStatusUpdate;
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
package/dist/platform.js CHANGED
@@ -38,7 +38,6 @@ const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
39
  const settings_1 = require("./settings");
40
40
  const websocket_client_1 = require("./websocket-client");
41
- const mqtt_bridge_1 = require("./mqtt-bridge");
42
41
  const light_accessory_1 = require("./accessories/light-accessory");
43
42
  const cover_accessory_1 = require("./accessories/cover-accessory");
44
43
  const sensor_accessory_1 = require("./accessories/sensor-accessory");
@@ -83,6 +82,10 @@ class Lares4Platform {
83
82
  this.log.info('๐Ÿ”Œ Inizializzazione connessione Ksenia Lares4...');
84
83
  const useHttps = this.config.https !== false; // Default true
85
84
  const port = this.config.port || (useHttps ? 443 : 80);
85
+ if (!this.config.ip || !this.config.pin) {
86
+ this.log.error('Configurazione mancante: IP e PIN sono obbligatori');
87
+ return;
88
+ }
86
89
  this.wsClient = new websocket_client_1.KseniaWebSocketClient(this.config.ip, port, useHttps, this.config.sender || 'homebridge', this.config.pin, this.log, {
87
90
  debug: this.config.debug || false,
88
91
  reconnectInterval: this.config.reconnectInterval || 5000,
@@ -92,11 +95,6 @@ class Lares4Platform {
92
95
  this.wsClient.onDeviceDiscovered = (device) => this.handleDeviceDiscovered(device);
93
96
  this.wsClient.onDeviceStatusUpdate = (device) => this.handleDeviceStatusUpdate(device);
94
97
  await this.wsClient.connect();
95
- // Inizializza MQTT se configurato
96
- if (this.config.mqtt?.enabled) {
97
- this.mqttBridge = new mqtt_bridge_1.MqttBridge(this.config.mqtt, this.log, this);
98
- this.log.info('๐Ÿš€ MQTT Bridge inizializzato');
99
- }
100
98
  this.log.info('โœ… Ksenia Lares4 inizializzato con successo');
101
99
  }
102
100
  catch (error) {
@@ -177,20 +175,20 @@ class Lares4Platform {
177
175
  printDevicesSummary(devicesList) {
178
176
  this.log.info('');
179
177
  this.log.info('๐Ÿ“‹ ========== DISPOSITIVI DISPONIBILI ==========');
180
- this.log.info('๐Ÿ’ก Per escludere dispositivi o configurare stanze MQTT, usa i seguenti ID:');
178
+ this.log.info('๐Ÿ’ก Per escludere dispositivi, usa i seguenti ID:');
181
179
  this.log.info('');
182
180
  if (devicesList.outputs.length > 0) {
183
181
  this.log.info('๐Ÿ”Œ OUTPUT (Luci, Tapparelle, Termostati):');
184
182
  devicesList.outputs.forEach((device) => {
185
183
  const icon = device.type === 'thermostat' ? '๐ŸŒก๏ธ' : device.type === 'light' ? '๐Ÿ’ก' : '๐ŸชŸ';
186
- this.log.info(` ID: ${device.fullId.padEnd(20)} - ${icon} ${device.name}`);
184
+ this.log.info(` ID: ${device.id.padEnd(3)} - ${icon} ${device.name}`);
187
185
  });
188
186
  this.log.info('');
189
187
  }
190
188
  if (devicesList.zones.length > 0) {
191
189
  this.log.info('๐Ÿšช ZONE (Sensori di Sicurezza):');
192
190
  devicesList.zones.forEach((device) => {
193
- this.log.info(` ID: ${device.fullId.padEnd(20)} - ๐Ÿšช ${device.name}`);
191
+ this.log.info(` ID: ${device.id.padEnd(3)} - ๐Ÿšช ${device.name}`);
194
192
  });
195
193
  this.log.info('');
196
194
  }
@@ -199,98 +197,21 @@ class Lares4Platform {
199
197
  devicesList.sensors.forEach((device) => {
200
198
  const icon = device.name.includes('Temperatura') ? '๐ŸŒก๏ธ' :
201
199
  device.name.includes('Umiditร ') ? '๐Ÿ’ง' : 'โ˜€๏ธ';
202
- this.log.info(` ID: ${device.fullId.padEnd(20)} - ${icon} ${device.name}`);
200
+ this.log.info(` ID: ${device.id.padEnd(3)} - ${icon} ${device.name}`);
203
201
  });
204
202
  this.log.info('');
205
203
  }
206
204
  if (devicesList.scenarios.length > 0) {
207
205
  this.log.info('๐ŸŽฌ SCENARI (Automazioni):');
208
206
  devicesList.scenarios.forEach((device) => {
209
- this.log.info(` ID: ${device.fullId.padEnd(20)} - ๐ŸŽฌ ${device.name}`);
207
+ this.log.info(` ID: ${device.id.padEnd(3)} - ๐ŸŽฌ ${device.name}`);
210
208
  });
211
209
  this.log.info('');
212
210
  }
213
211
  this.log.info('๐Ÿ“ Lista completa salvata in: ' + this.devicesFilePath);
214
212
  this.log.info('๐Ÿ”ง Usa questi ID nella configurazione per escludere dispositivi');
215
- this.log.info('๐Ÿ  Oppure per configurare le stanze MQTT in Homebridge UI');
216
213
  this.log.info('===============================================');
217
214
  this.log.info('');
218
- // Genera anche un file di configurazione di esempio per le stanze
219
- this.generateRoomMappingExample(devicesList);
220
- }
221
- generateRoomMappingExample(devicesList) {
222
- try {
223
- const examplePath = path.join(this.api.user.storagePath(), 'klares4-room-mapping-example.json');
224
- // Crea un esempio di configurazione stanze con alcuni dispositivi
225
- const exampleConfig = {
226
- "roomMapping": {
227
- "enabled": false,
228
- "rooms": [
229
- {
230
- "roomName": "sala",
231
- "devices": this.getExampleDevicesForRoom(devicesList, 'sala')
232
- },
233
- {
234
- "roomName": "cucina",
235
- "devices": this.getExampleDevicesForRoom(devicesList, 'cucina')
236
- },
237
- {
238
- "roomName": "camera",
239
- "devices": this.getExampleDevicesForRoom(devicesList, 'camera')
240
- }
241
- ]
242
- },
243
- "_note": "Questo รจ un file di esempio. Modifica roomName e devices secondo le tue necessitร .",
244
- "_availableDevices": {
245
- "outputs": devicesList.outputs.map((d) => ({ id: d.fullId, name: d.name, type: d.type })),
246
- "zones": devicesList.zones.map((d) => ({ id: d.fullId, name: d.name, type: d.type })),
247
- "sensors": devicesList.sensors.map((d) => ({ id: d.fullId, name: d.name, type: d.type })),
248
- "scenarios": devicesList.scenarios.map((d) => ({ id: d.fullId, name: d.name, type: d.type }))
249
- }
250
- };
251
- fs.writeFileSync(examplePath, JSON.stringify(exampleConfig, null, 2));
252
- this.log.info(`๐Ÿ“ Esempio configurazione stanze creato: ${examplePath}`);
253
- }
254
- catch (error) {
255
- this.log.error('โŒ Errore nella creazione del file di esempio:', error);
256
- }
257
- }
258
- getExampleDevicesForRoom(devicesList, roomName) {
259
- const devices = [];
260
- // Prendi alcuni dispositivi di esempio per ogni stanza
261
- switch (roomName) {
262
- case 'sala':
263
- // Cerca sensori temperatura/umiditร 
264
- const salaDevices = [...devicesList.sensors.slice(0, 2), ...devicesList.outputs.slice(0, 1)];
265
- salaDevices.forEach((device) => {
266
- devices.push({
267
- deviceId: device.fullId,
268
- deviceName: device.name
269
- });
270
- });
271
- break;
272
- case 'cucina':
273
- // Cerca luci e tapparelle
274
- const cucinaDevices = [...devicesList.outputs.slice(1, 3)];
275
- cucinaDevices.forEach((device) => {
276
- devices.push({
277
- deviceId: device.fullId,
278
- deviceName: device.name
279
- });
280
- });
281
- break;
282
- case 'camera':
283
- // Cerca zone e altri dispositivi
284
- const cameraDevices = [...devicesList.zones.slice(0, 1), ...devicesList.outputs.slice(3, 4)];
285
- cameraDevices.forEach((device) => {
286
- devices.push({
287
- deviceId: device.fullId,
288
- deviceName: device.name
289
- });
290
- });
291
- break;
292
- }
293
- return devices.slice(0, 3); // Massimo 3 dispositivi per esempio
294
215
  }
295
216
  shouldExcludeDevice(device) {
296
217
  const config = this.config;
@@ -341,12 +262,8 @@ class Lares4Platform {
341
262
  }
342
263
  handleDeviceStatusUpdate(device) {
343
264
  this.log.debug(`๐Ÿ”„ Aggiornamento stato dispositivo: ${device.name}`);
344
- // Aggiorna l'accessorio Homebridge
265
+ // Qui implementeremo l'aggiornamento dello stato degli accessori
345
266
  this.updateAccessory(device);
346
- // Pubblica lo stato su MQTT se abilitato
347
- if (this.mqttBridge) {
348
- this.mqttBridge.publishDeviceState(device);
349
- }
350
267
  }
351
268
  configureAccessory(accessory) {
352
269
  this.log.info('๐Ÿ”ง Caricamento accessorio dalla cache:', accessory.displayName);
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -79,15 +79,4 @@ export interface KseniaSensorData {
79
79
  UNIT?: string;
80
80
  ENABLED: string;
81
81
  }
82
- export interface MqttConfig {
83
- enabled: boolean;
84
- broker: string;
85
- port?: number;
86
- username?: string;
87
- password?: string;
88
- clientId?: string;
89
- topicPrefix?: string;
90
- qos?: 0 | 1 | 2;
91
- retain?: boolean;
92
- }
93
82
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "homebridge-plugin-klares4",
3
- "version": "1.1.1-beta.5",
3
+ "version": "1.1.3",
4
4
  "description": "Plugin completo per sistemi Ksenia Lares4 - Zone, Luci, Tapparelle, Termostati, Sensori",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -23,17 +23,15 @@
23
23
  "domotica"
24
24
  ],
25
25
  "engines": {
26
- "node": ">=14.18.1",
27
- "homebridge": ">=1.6.0"
26
+ "node": ">=20.0.0",
27
+ "homebridge": "^1.6.0 || ^2.0.0-beta.0"
28
28
  },
29
29
  "dependencies": {
30
- "ws": "^8.14.2",
31
- "mqtt": "^5.3.4"
30
+ "ws": "^8.14.2"
32
31
  },
33
32
  "devDependencies": {
34
33
  "@types/node": "^20.0.0",
35
34
  "@types/ws": "^8.5.0",
36
- "homebridge": "^1.6.0",
37
35
  "typescript": "^5.0.0"
38
36
  },
39
37
  "peerDependencies": {
@@ -56,11 +54,10 @@
56
54
  "dist",
57
55
  "config.schema.json",
58
56
  "README.md",
59
- "CHANGELOG.md",
60
57
  "LICENSE"
61
58
  ],
62
59
  "funding": {
63
60
  "type": "github",
64
61
  "url": "https://github.com/sponsors/paolo-trivi"
65
62
  }
66
- }
63
+ }
package/CHANGELOG.md DELETED
@@ -1,130 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [Unreleased]
9
-
10
- ## [1.1.1-beta.5] - 2025-09-18
11
-
12
- ### Fixed
13
-
14
- - **MQTT Bridge**: Corrected light state publishing - fixed `light.on` to `light.status?.on` mapping
15
- - Light states now correctly reflect actual on/off status in MQTT messages
16
- - Resolved issue where lights always appeared as "off" in MQTT broker
17
-
18
- ### Added
19
-
20
- - Dynamic device list generation for room mapping configuration
21
- - Auto-generated `klares4-room-mapping-example.json` file with real device data
22
- - Enhanced user interface for room mapping with actual device names and IDs
23
- - Improved logging with full device IDs for easier configuration
24
-
25
- ### Changed
26
-
27
- - Removed hardcoded device examples from config schema
28
- - Enhanced device discovery summary with full device IDs
29
- - Improved help documentation in Homebridge UI for room mapping
30
-
31
- ### Fixed
32
-
33
- - Room mapping configuration now uses actual devices from user's Lares4 system
34
-
35
- ## [1.1.1-beta.1] - 2025-09-16
36
-
37
- ### Added
38
-
39
- - **Room Mapping for MQTT**: New feature to organize devices by room in MQTT topics
40
- - Room-based MQTT topic structure: `homebridge/{room}/{type}/{id}/state`
41
- - Configurable room mapping through Homebridge UI
42
- - Backward compatibility for existing MQTT topic format
43
- - Support for both old and new command topic formats
44
-
45
- ### Changed
46
-
47
- - MQTT topic structure can now include room names when room mapping is enabled
48
- - Enhanced config schema with new "Mappatura Stanze MQTT" section
49
- - Improved MQTT bridge to support dynamic room assignment
50
-
51
- ### Technical
52
-
53
- - Added `getRoomForDevice()` function to MQTT bridge
54
- - Enhanced TypeScript types for room mapping configuration
55
- - Updated subscription logic to handle multiple topic formats
56
- - Maintained full backward compatibility
57
-
58
- ## [1.1.1-beta.0] - 2025-09-16
59
-
60
- ### Added
61
-
62
- - Initial MQTT bridge functionality
63
- - Device state publishing to MQTT topics
64
- - MQTT command reception for device control
65
- - Comprehensive device discovery and caching
66
-
67
- ### Changed
68
-
69
- - Enhanced plugin architecture for better extensibility
70
- - Improved device management and exclusion system
71
-
72
- ### Fixed
73
-
74
- - Various stability improvements
75
- - Enhanced error handling
76
-
77
- ## [1.1.0] - 2025-09-10
78
-
79
- ### Added
80
-
81
- - Complete plugin rewrite for Ksenia Lares4 systems
82
- - Support for multiple device types:
83
- - ๐Ÿ” Security zones (contact sensors)
84
- - ๐Ÿ’ก Lights with on/off control
85
- - ๐ŸชŸ Window coverings with position control
86
- - ๐ŸŒก๏ธ Thermostats with temperature and mode control
87
- - ๐Ÿ“Š Environmental sensors (temperature, humidity, light)
88
- - ๐ŸŽฌ Scenario automation triggers
89
- - Real-time WebSocket communication with Lares4 system
90
- - Configurable device exclusion system
91
- - Custom device naming support
92
- - Comprehensive Homebridge UI configuration interface
93
-
94
- ### Technical
95
-
96
- - Modern TypeScript implementation
97
- - Robust WebSocket client with auto-reconnection
98
- - Modular accessory architecture
99
- - Comprehensive logging and debugging support
100
- - Device state caching and persistence
101
-
102
- ---
103
-
104
- ## Version History Summary
105
-
106
- - **1.1.1-beta.x**: MQTT integration and room mapping features
107
- - **1.1.0**: Complete plugin rewrite with full Lares4 integration
108
- - **1.0.x**: Legacy versions (deprecated)
109
-
110
- ## Migration Guide
111
-
112
- ### From 1.1.1-beta.0 to 1.1.1-beta.1+
113
-
114
- - Room mapping is optional and disabled by default
115
- - Existing MQTT configurations continue to work unchanged
116
- - To use room mapping, enable it in the new "Mappatura Stanze MQTT" section
117
-
118
- ### From 1.0.x to 1.1.0+
119
-
120
- - Complete reconfiguration required
121
- - New device discovery process
122
- - Enhanced configuration options through Homebridge UI
123
- - Improved stability and performance
124
-
125
- ## Support
126
-
127
- For issues, feature requests, or questions:
128
-
129
- - GitHub Issues: https://github.com/paolo-trivi/homebridge-plugin-klares4/issues
130
- - Documentation: Check README.md for detailed setup instructions