homebridge-plugin-klares4 1.1.1-beta.5 โ 1.1.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.
- package/README.md +0 -83
- package/config.schema.json +7 -215
- package/dist/platform.d.ts +1 -26
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +10 -93
- package/dist/platform.js.map +1 -1
- package/dist/types.d.ts +0 -11
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -7
- package/CHANGELOG.md +0 -130
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
|
package/config.schema.json
CHANGED
|
@@ -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
|
}
|
package/dist/platform.d.ts
CHANGED
|
@@ -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
|
|
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;
|
package/dist/platform.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,GAAG,EACH,cAAc,EACd,qBAAqB,EACrB,MAAM,EACN,iBAAiB,EACjB,cAAc,EACd,OAAO,EACV,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
//
|
|
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);
|
package/dist/platform.js.map
CHANGED
|
@@ -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
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Plugin completo per sistemi Ksenia Lares4 - Zone, Luci, Tapparelle, Termostati, Sensori",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
"domotica"
|
|
24
24
|
],
|
|
25
25
|
"engines": {
|
|
26
|
-
"node": ">=
|
|
27
|
-
"homebridge": "
|
|
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",
|
|
35
|
+
"hap-nodejs": "^1.1.0",
|
|
36
36
|
"homebridge": "^1.6.0",
|
|
37
37
|
"typescript": "^5.0.0"
|
|
38
38
|
},
|
|
@@ -56,11 +56,10 @@
|
|
|
56
56
|
"dist",
|
|
57
57
|
"config.schema.json",
|
|
58
58
|
"README.md",
|
|
59
|
-
"CHANGELOG.md",
|
|
60
59
|
"LICENSE"
|
|
61
60
|
],
|
|
62
61
|
"funding": {
|
|
63
62
|
"type": "github",
|
|
64
63
|
"url": "https://github.com/sponsors/paolo-trivi"
|
|
65
64
|
}
|
|
66
|
-
}
|
|
65
|
+
}
|
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
|