@fastybird/smart-panel-backend 1.1.0-alpha.12 → 1.1.0-alpha.13

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 (106) hide show
  1. package/dist/migrations/1000000000026-AddHardwareInputCategories.d.ts +7 -0
  2. package/dist/migrations/1000000000026-AddHardwareInputCategories.js +364 -0
  3. package/dist/migrations/1000000000026-AddHardwareInputCategories.js.map +1 -0
  4. package/dist/modules/devices/controllers/channels.controller.d.ts +5 -1
  5. package/dist/modules/devices/controllers/channels.controller.js +34 -2
  6. package/dist/modules/devices/controllers/channels.controller.js.map +1 -1
  7. package/dist/modules/devices/controllers/channels.properties.controller.js +5 -0
  8. package/dist/modules/devices/controllers/channels.properties.controller.js.map +1 -1
  9. package/dist/modules/devices/controllers/devices.channels.controller.d.ts +5 -1
  10. package/dist/modules/devices/controllers/devices.channels.controller.js +38 -2
  11. package/dist/modules/devices/controllers/devices.channels.controller.js.map +1 -1
  12. package/dist/modules/devices/controllers/devices.channels.properties.controller.js +5 -0
  13. package/dist/modules/devices/controllers/devices.channels.properties.controller.js.map +1 -1
  14. package/dist/modules/devices/devices.constants.d.ts +6 -0
  15. package/dist/modules/devices/devices.constants.js +6 -0
  16. package/dist/modules/devices/devices.constants.js.map +1 -1
  17. package/dist/modules/devices/devices.module.js +6 -0
  18. package/dist/modules/devices/devices.module.js.map +1 -1
  19. package/dist/modules/devices/devices.openapi.d.ts +3 -1
  20. package/dist/modules/devices/devices.openapi.js +7 -0
  21. package/dist/modules/devices/devices.openapi.js.map +1 -1
  22. package/dist/modules/devices/dto/channel-input-occurrence.dto.d.ts +10 -0
  23. package/dist/modules/devices/dto/channel-input-occurrence.dto.js +99 -0
  24. package/dist/modules/devices/dto/channel-input-occurrence.dto.js.map +1 -0
  25. package/dist/modules/devices/models/channel-input-capabilities.model.d.ts +20 -0
  26. package/dist/modules/devices/models/channel-input-capabilities.model.js +111 -0
  27. package/dist/modules/devices/models/channel-input-capabilities.model.js.map +1 -0
  28. package/dist/modules/devices/models/channel-input-occurrence.model.d.ts +22 -0
  29. package/dist/modules/devices/models/channel-input-occurrence.model.js +154 -0
  30. package/dist/modules/devices/models/channel-input-occurrence.model.js.map +1 -0
  31. package/dist/modules/devices/services/channel-input-deduplication.service.d.ts +17 -0
  32. package/dist/modules/devices/services/channel-input-deduplication.service.js +88 -0
  33. package/dist/modules/devices/services/channel-input-deduplication.service.js.map +1 -0
  34. package/dist/modules/devices/services/channel-input-occurrences.service.d.ts +21 -0
  35. package/dist/modules/devices/services/channel-input-occurrences.service.js +163 -0
  36. package/dist/modules/devices/services/channel-input-occurrences.service.js.map +1 -0
  37. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.d.ts +19 -3
  38. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js +514 -50
  39. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js.map +1 -1
  40. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.d.ts +2 -0
  41. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js +10 -2
  42. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js.map +1 -1
  43. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js +3 -2
  44. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js.map +1 -1
  45. package/dist/plugins/devices-shelly-ng/mappings/definitions/inputs.yaml +80 -0
  46. package/dist/plugins/devices-shelly-ng/mappings/mapping-loader.service.js +7 -1
  47. package/dist/plugins/devices-shelly-ng/mappings/mapping-loader.service.js.map +1 -1
  48. package/dist/plugins/devices-shelly-ng/mappings/mapping.types.d.ts +6 -3
  49. package/dist/plugins/devices-shelly-ng/mappings/schema/mapping-schema.json +5 -0
  50. package/dist/plugins/devices-shelly-ng/services/device-manager.service.js +130 -7
  51. package/dist/plugins/devices-shelly-ng/services/device-manager.service.js.map +1 -1
  52. package/dist/plugins/devices-shelly-ng/services/poll-placement-diagnostics.service.js +3 -2
  53. package/dist/plugins/devices-shelly-ng/services/poll-placement-diagnostics.service.js.map +1 -1
  54. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js +1 -1
  55. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js.map +1 -1
  56. package/dist/plugins/devices-shelly-ng/services/shelly-rpc-client.service.js +3 -0
  57. package/dist/plugins/devices-shelly-ng/services/shelly-rpc-client.service.js.map +1 -1
  58. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.d.ts +1 -0
  59. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js +13 -1
  60. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js.map +1 -1
  61. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.constants.d.ts +2 -0
  62. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.constants.js +66 -4
  63. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.constants.js.map +1 -1
  64. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.plugin.js +2 -0
  65. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.plugin.js.map +1 -1
  66. package/dist/plugins/devices-shelly-v1/platforms/shelly-v1.device.platform.js +7 -0
  67. package/dist/plugins/devices-shelly-v1/platforms/shelly-v1.device.platform.js.map +1 -1
  68. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.d.ts +3 -1
  69. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.js +20 -2
  70. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.js.map +1 -1
  71. package/dist/plugins/devices-shelly-v1/services/shelly-v1-input-tracker.service.d.ts +16 -0
  72. package/dist/plugins/devices-shelly-v1/services/shelly-v1-input-tracker.service.js +107 -0
  73. package/dist/plugins/devices-shelly-v1/services/shelly-v1-input-tracker.service.js.map +1 -0
  74. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.d.ts +7 -1
  75. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.js +98 -3
  76. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.js.map +1 -1
  77. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.d.ts +3 -0
  78. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.js +41 -5
  79. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.js.map +1 -1
  80. package/dist/plugins/devices-zigbee2mqtt/interfaces/zigbee2mqtt.interface.d.ts +7 -1
  81. package/dist/plugins/devices-zigbee2mqtt/mappings/config-driven.converter.js +16 -15
  82. package/dist/plugins/devices-zigbee2mqtt/mappings/config-driven.converter.js.map +1 -1
  83. package/dist/plugins/devices-zigbee2mqtt/mappings/definitions/remotes.yaml +505 -74
  84. package/dist/plugins/devices-zigbee2mqtt/mappings/schema/mapping-schema.json +3 -3
  85. package/dist/plugins/devices-zigbee2mqtt/mappings/transformers/transformer.types.d.ts +1 -1
  86. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.d.ts +8 -2
  87. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.js +6 -5
  88. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.js.map +1 -1
  89. package/dist/plugins/devices-zigbee2mqtt/services/device-adoption.service.js +18 -11
  90. package/dist/plugins/devices-zigbee2mqtt/services/device-adoption.service.js.map +1 -1
  91. package/dist/plugins/devices-zigbee2mqtt/services/device-mapper.service.d.ts +9 -3
  92. package/dist/plugins/devices-zigbee2mqtt/services/device-mapper.service.js +166 -3
  93. package/dist/plugins/devices-zigbee2mqtt/services/device-mapper.service.js.map +1 -1
  94. package/dist/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.js +5 -2
  95. package/dist/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.js.map +1 -1
  96. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.d.ts +1 -0
  97. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.js +44 -4
  98. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.js.map +1 -1
  99. package/dist/spec/channels.d.ts +51 -1
  100. package/dist/spec/channels.js +64 -1
  101. package/dist/spec/channels.js.map +1 -1
  102. package/dist/spec/devices.d.ts +155 -2
  103. package/dist/spec/devices.js +161 -2
  104. package/dist/spec/devices.js.map +1 -1
  105. package/dist/tsconfig.build.tsbuildinfo +1 -1
  106. package/package.json +2 -2
@@ -0,0 +1,7 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class AddHardwareInputCategories1000000000026 implements MigrationInterface {
3
+ name: string;
4
+ transaction: boolean;
5
+ up(queryRunner: QueryRunner): Promise<void>;
6
+ down(queryRunner: QueryRunner): Promise<void>;
7
+ }
@@ -0,0 +1,364 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddHardwareInputCategories1000000000026 = void 0;
4
+ class AddHardwareInputCategories1000000000026 {
5
+ constructor() {
6
+ this.name = 'AddHardwareInputCategories1000000000026';
7
+ this.transaction = false;
8
+ }
9
+ async up(queryRunner) {
10
+ await queryRunner.query('PRAGMA foreign_keys = OFF');
11
+ let transactionStarted = false;
12
+ try {
13
+ if (!queryRunner.isTransactionActive) {
14
+ await queryRunner.startTransaction();
15
+ transactionStarted = true;
16
+ }
17
+ await queryRunner.query(`CREATE TABLE "temporary_devices_module_devices" (
18
+ "id" varchar PRIMARY KEY NOT NULL,
19
+ "createdAt" datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
20
+ "updatedAt" datetime,
21
+ "category" varchar CHECK( "category" IN ('generic','air_conditioner','air_dehumidifier','air_humidifier','air_purifier','av_receiver','alarm','camera','door','doorbell','fan','game_console','heating_unit','input_controller','lighting','lock','media','outlet','projector','pump','robot_vacuum','sensor','set_top_box','speaker','sprinkler','streaming_service','switcher','television','terminal','thermostat','valve','water_heater','window_covering') ) NOT NULL DEFAULT ('generic'),
22
+ "identifier" varchar,
23
+ "name" varchar NOT NULL,
24
+ "description" varchar,
25
+ "enabled" boolean NOT NULL DEFAULT (1),
26
+ "roomId" varchar,
27
+ "password" varchar,
28
+ "hostname" varchar,
29
+ "haDeviceId" varchar,
30
+ "canonicalMac" varchar,
31
+ "hasEthernet" boolean DEFAULT (0),
32
+ "autoSimulate" boolean DEFAULT (0),
33
+ "simulateInterval" integer DEFAULT (5000),
34
+ "behaviorMode" varchar DEFAULT ('default'),
35
+ "serviceAddress" varchar,
36
+ "variant" varchar,
37
+ "type" varchar NOT NULL,
38
+ "hidden" boolean NOT NULL DEFAULT (0),
39
+ "hiddenBy" varchar,
40
+ "mac" varchar,
41
+ CONSTRAINT "UQ_devices_identifier_type" UNIQUE ("identifier", "type"),
42
+ CONSTRAINT "UQ_e8561dbd95ee5d195842749f322" UNIQUE ("canonicalMac"),
43
+ CONSTRAINT "FK_9c2fa00cfe1d7964da6b8ad4976" FOREIGN KEY ("roomId") REFERENCES "spaces_module_spaces" ("id") ON DELETE SET NULL ON UPDATE NO ACTION
44
+ )`);
45
+ await queryRunner.query(`INSERT INTO "temporary_devices_module_devices" (
46
+ "id", "createdAt", "updatedAt", "category", "identifier", "name", "description",
47
+ "enabled", "roomId", "password", "hostname", "haDeviceId", "canonicalMac",
48
+ "hasEthernet", "autoSimulate", "simulateInterval", "behaviorMode", "serviceAddress",
49
+ "variant", "type", "hidden", "hiddenBy", "mac"
50
+ ) SELECT "id", "createdAt", "updatedAt", "category", "identifier", "name", "description",
51
+ "enabled", "roomId", "password", "hostname", "haDeviceId", "canonicalMac",
52
+ "hasEthernet", "autoSimulate", "simulateInterval", "behaviorMode", "serviceAddress",
53
+ "variant", "type", "hidden", "hiddenBy", "mac" FROM "devices_module_devices"`);
54
+ await queryRunner.query(`DROP TABLE "devices_module_devices"`);
55
+ await queryRunner.query(`ALTER TABLE "temporary_devices_module_devices" RENAME TO "devices_module_devices"`);
56
+ await queryRunner.query(`CREATE INDEX "IDX_2e587b2a8bcb55f468bb6ec6fe" ON "devices_module_devices" ("identifier")`);
57
+ await queryRunner.query(`CREATE INDEX "IDX_b6aa1841ab84616391d34cd5cf" ON "devices_module_devices" ("enabled")`);
58
+ await queryRunner.query(`CREATE INDEX "IDX_9c2fa00cfe1d7964da6b8ad497" ON "devices_module_devices" ("roomId")`);
59
+ await queryRunner.query(`CREATE UNIQUE INDEX "IDX_36ec1c9bafc04373563cfb5f83" ON "devices_module_devices" ("haDeviceId")`);
60
+ await queryRunner.query(`CREATE INDEX "IDX_de1447169fa1df5ea8d41bf02a" ON "devices_module_devices" ("type")`);
61
+ await queryRunner.query(`CREATE INDEX "IDX_devices_hidden" ON "devices_module_devices" ("hidden")`);
62
+ await queryRunner.query(`CREATE INDEX "IDX_devices_hiddenBy" ON "devices_module_devices" ("hiddenBy")`);
63
+ await queryRunner.query(`CREATE UNIQUE INDEX "UQ_devices_wled_mac_type" ON "devices_module_devices" ("mac", "type") WHERE "mac" IS NOT NULL AND "type" = 'devices-wled'`);
64
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_devices_insert"
65
+ AFTER INSERT ON "devices_module_devices"
66
+ BEGIN
67
+ INSERT INTO "home_context_entity_search_fts" ("entity_kind", "entity_id", "name", "identifier", "context")
68
+ VALUES ('device', NEW."id", COALESCE(NEW."name", ''), COALESCE(NEW."identifier", ''), COALESCE(NEW."type", '') || ' ' || COALESCE(NEW."category", '') || ' ' || COALESCE(NEW."roomId", ''));
69
+ END`);
70
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_devices_update"
71
+ AFTER UPDATE OF "id", "name", "identifier", "type", "category", "roomId" ON "devices_module_devices"
72
+ BEGIN
73
+ DELETE FROM "home_context_entity_search_fts" WHERE "entity_kind" = 'device' AND "entity_id" = OLD."id";
74
+ INSERT INTO "home_context_entity_search_fts" ("entity_kind", "entity_id", "name", "identifier", "context")
75
+ VALUES ('device', NEW."id", COALESCE(NEW."name", ''), COALESCE(NEW."identifier", ''), COALESCE(NEW."type", '') || ' ' || COALESCE(NEW."category", '') || ' ' || COALESCE(NEW."roomId", ''));
76
+ END`);
77
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_devices_delete"
78
+ AFTER DELETE ON "devices_module_devices"
79
+ BEGIN
80
+ DELETE FROM "home_context_entity_search_fts" WHERE "entity_kind" = 'device' AND "entity_id" = OLD."id";
81
+ END`);
82
+ await queryRunner.query(`CREATE TABLE "temporary_devices_module_channels" (
83
+ "id" varchar PRIMARY KEY NOT NULL,
84
+ "createdAt" datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
85
+ "updatedAt" datetime,
86
+ "category" varchar CHECK( "category" IN ('generic','accelerometer','air_particulate','air_quality','alarm','analog_input','battery','binary_input','button','buzzer','camera','carbon_dioxide','carbon_monoxide','contact','cooler','dehumidifier','device_information','door','doorbell','electrical_energy','electrical_generation','electrical_power','fan','filter','flow','gas','heater','humidifier','humidity','illuminance','indicator','leak','light','lock','media_input','media_playback','microphone','motion','nitrogen_dioxide','occupancy','outlet','ozone','pressure','projector','robot_vacuum','smoke','speaker','sulphur_dioxide','switcher','television','temperature','thermostat','valve','volatile_organic_compounds','window_covering') ) NOT NULL DEFAULT ('generic'),
87
+ "identifier" varchar,
88
+ "name" varchar NOT NULL,
89
+ "description" varchar,
90
+ "parentId" varchar,
91
+ "type" varchar NOT NULL,
92
+ "deviceId" varchar,
93
+ CONSTRAINT "UQ_channels_identifier_type" UNIQUE ("identifier", "deviceId"),
94
+ CONSTRAINT "FK_e5e83bd86799131ff462ba199bd" FOREIGN KEY ("deviceId") REFERENCES "devices_module_devices" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
95
+ CONSTRAINT "FK_4ff87e5bef5426c24fe7f0ff6c2" FOREIGN KEY ("parentId") REFERENCES "devices_module_channels" ("id") ON DELETE SET NULL ON UPDATE NO ACTION
96
+ )`);
97
+ await queryRunner.query(`INSERT INTO "temporary_devices_module_channels" (
98
+ "id", "createdAt", "updatedAt", "category", "identifier", "name", "description",
99
+ "parentId", "type", "deviceId"
100
+ ) SELECT "id", "createdAt", "updatedAt", "category", "identifier", "name", "description",
101
+ "parentId", "type", "deviceId" FROM "devices_module_channels"`);
102
+ await queryRunner.query(`DROP TABLE "devices_module_channels"`);
103
+ await queryRunner.query(`ALTER TABLE "temporary_devices_module_channels" RENAME TO "devices_module_channels"`);
104
+ await queryRunner.query(`CREATE INDEX "IDX_38441e91ae9be25547912ebc44" ON "devices_module_channels" ("identifier")`);
105
+ await queryRunner.query(`CREATE INDEX "IDX_4ff87e5bef5426c24fe7f0ff6c" ON "devices_module_channels" ("parentId")`);
106
+ await queryRunner.query(`CREATE INDEX "IDX_a654e0cabea37168a1a967ab5d" ON "devices_module_channels" ("type")`);
107
+ await queryRunner.query(`CREATE TABLE "temporary_devices_module_channels_properties" (
108
+ "id" varchar PRIMARY KEY NOT NULL,
109
+ "createdAt" datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
110
+ "updatedAt" datetime,
111
+ "category" varchar CHECK( "category" IN ('generic','acceleration_x','acceleration_y','acceleration_z','active','alarm_state','album','angle','artist','artwork_url','aqi','average_power','balance','bass','brightness','change_needed','child_lock','color_blue','color_green','color_red','color_temperature','color_white','command','connection_type','consumption','current','concentration','defrost_active','detected','direction','distance','duration','event','fault','fault_description','firmware_revision','frequency','grid_export','grid_import','hardware_revision','hue','humidity','in_use','infrared','last_event','level','life_remaining','link_quality','locked','illuminance','manufacturer','media_type','mist_level','model','mode','mute','natural_breeze','obstruction','on','orientation','over_current','over_voltage','over_power','pan','peak_level','percentage','position','power','pressure','production','rate','remaining','repeat','reset','remote_key','saturation','siren','serial_number','shuffle','source','source_label','state','speed','status','swing','tampered','temperature','tilt','timer','treble','triggered','track','type','unit','value','voltage','volume','warm_mist','water_tank_empty','water_tank_full','water_tank_level','zoom') ) NOT NULL DEFAULT ('generic'),
112
+ "identifier" varchar,
113
+ "name" varchar,
114
+ "permissions" text NOT NULL DEFAULT ('ro'),
115
+ "dataType" varchar CHECK( "dataType" IN ('char','uchar','short','ushort','int','uint','float','bool','string','enum','unknown') ) NOT NULL DEFAULT ('unknown'),
116
+ "format" json,
117
+ "invalid" text,
118
+ "step" real,
119
+ "haEntityId" varchar,
120
+ "haAttribute" varchar,
121
+ "haTransformer" varchar,
122
+ "type" varchar NOT NULL,
123
+ "channelId" varchar,
124
+ "valueOrigin" varchar,
125
+ "sourcePropertyId" varchar REFERENCES "devices_module_channels_properties" ("id") ON DELETE SET NULL,
126
+ "energyClaimPropertyId" varchar REFERENCES "devices_module_channels_properties" ("id") ON DELETE SET NULL,
127
+ "homeyCapabilityId" varchar,
128
+ "homeyMappingName" varchar,
129
+ CONSTRAINT "UQ_channels_properties_identifier_type" UNIQUE ("identifier", "channelId"),
130
+ CONSTRAINT "FK_25ddb149b40ce110e482ccd2a3d" FOREIGN KEY ("channelId") REFERENCES "devices_module_channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
131
+ )`);
132
+ await queryRunner.query(`INSERT INTO "temporary_devices_module_channels_properties" (
133
+ "id", "createdAt", "updatedAt", "category", "identifier", "name", "permissions",
134
+ "dataType", "format", "invalid", "step", "haEntityId", "haAttribute", "haTransformer",
135
+ "type", "channelId", "valueOrigin", "sourcePropertyId", "energyClaimPropertyId",
136
+ "homeyCapabilityId", "homeyMappingName"
137
+ ) SELECT "id", "createdAt", "updatedAt", "category", "identifier", "name", "permissions",
138
+ "dataType", "format", "invalid", "step", "haEntityId", "haAttribute", "haTransformer",
139
+ "type", "channelId", "valueOrigin", "sourcePropertyId", "energyClaimPropertyId",
140
+ "homeyCapabilityId", "homeyMappingName" FROM "devices_module_channels_properties"`);
141
+ await queryRunner.query(`DROP TABLE "devices_module_channels_properties"`);
142
+ await queryRunner.query(`ALTER TABLE "temporary_devices_module_channels_properties" RENAME TO "devices_module_channels_properties"`);
143
+ await queryRunner.query(`CREATE INDEX "IDX_869661aed3457e1949b0e7e335" ON "devices_module_channels_properties" ("identifier")`);
144
+ await queryRunner.query(`CREATE INDEX "IDX_98ffd1e6ff9c4463c3e7d9a9c7" ON "devices_module_channels_properties" ("type")`);
145
+ await queryRunner.query(`CREATE INDEX "IDX_channels_properties_sourcePropertyId" ON "devices_module_channels_properties" ("sourcePropertyId")`);
146
+ await queryRunner.query(`CREATE UNIQUE INDEX "UQ_channels_properties_energyClaim" ON "devices_module_channels_properties" ("energyClaimPropertyId") WHERE "energyClaimPropertyId" IS NOT NULL`);
147
+ await queryRunner.query(`CREATE UNIQUE INDEX "UQ_homey_capability_mapping_channel" ON "devices_module_channels_properties" ("homeyCapabilityId", "homeyMappingName", "channelId") WHERE "type" = 'devices-homey' AND "homeyCapabilityId" IS NOT NULL AND "homeyMappingName" IS NOT NULL`);
148
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_properties_insert"
149
+ AFTER INSERT ON "devices_module_channels_properties"
150
+ BEGIN
151
+ INSERT INTO "home_context_entity_search_fts" ("entity_kind", "entity_id", "name", "identifier", "context")
152
+ VALUES ('property', NEW."id", COALESCE(NEW."name", ''), COALESCE(NEW."identifier", ''), COALESCE(NEW."type", '') || ' ' || COALESCE(NEW."category", '') || ' ' || COALESCE(NEW."dataType", '') || ' ' || COALESCE(NEW."permissions", '') || ' ' || COALESCE(NEW."channelId", ''));
153
+ END`);
154
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_properties_update"
155
+ AFTER UPDATE OF "id", "name", "identifier", "type", "category", "dataType", "permissions", "channelId" ON "devices_module_channels_properties"
156
+ BEGIN
157
+ DELETE FROM "home_context_entity_search_fts" WHERE "entity_kind" = 'property' AND "entity_id" = OLD."id";
158
+ INSERT INTO "home_context_entity_search_fts" ("entity_kind", "entity_id", "name", "identifier", "context")
159
+ VALUES ('property', NEW."id", COALESCE(NEW."name", ''), COALESCE(NEW."identifier", ''), COALESCE(NEW."type", '') || ' ' || COALESCE(NEW."category", '') || ' ' || COALESCE(NEW."dataType", '') || ' ' || COALESCE(NEW."permissions", '') || ' ' || COALESCE(NEW."channelId", ''));
160
+ END`);
161
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_properties_delete"
162
+ AFTER DELETE ON "devices_module_channels_properties"
163
+ BEGIN
164
+ DELETE FROM "home_context_entity_search_fts" WHERE "entity_kind" = 'property' AND "entity_id" = OLD."id";
165
+ END`);
166
+ if (transactionStarted) {
167
+ await queryRunner.commitTransaction();
168
+ }
169
+ }
170
+ catch (error) {
171
+ if (transactionStarted) {
172
+ await queryRunner.rollbackTransaction();
173
+ }
174
+ throw error;
175
+ }
176
+ finally {
177
+ await queryRunner.query('PRAGMA foreign_keys = ON');
178
+ }
179
+ }
180
+ async down(queryRunner) {
181
+ await queryRunner.query('PRAGMA foreign_keys = OFF');
182
+ let transactionStarted = false;
183
+ try {
184
+ if (!queryRunner.isTransactionActive) {
185
+ await queryRunner.startTransaction();
186
+ transactionStarted = true;
187
+ }
188
+ await queryRunner.query(`CREATE TABLE "temporary_devices_module_devices" (
189
+ "id" varchar PRIMARY KEY NOT NULL,
190
+ "createdAt" datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
191
+ "updatedAt" datetime,
192
+ "category" varchar CHECK( "category" IN ('generic','air_conditioner','air_dehumidifier','air_humidifier','air_purifier','av_receiver','alarm','camera','door','doorbell','fan','game_console','heating_unit','lighting','lock','media','outlet','projector','pump','robot_vacuum','sensor','set_top_box','speaker','sprinkler','streaming_service','switcher','television','terminal','thermostat','valve','water_heater','window_covering') ) NOT NULL DEFAULT ('generic'),
193
+ "identifier" varchar,
194
+ "name" varchar NOT NULL,
195
+ "description" varchar,
196
+ "enabled" boolean NOT NULL DEFAULT (1),
197
+ "roomId" varchar,
198
+ "password" varchar,
199
+ "hostname" varchar,
200
+ "haDeviceId" varchar,
201
+ "canonicalMac" varchar,
202
+ "hasEthernet" boolean DEFAULT (0),
203
+ "autoSimulate" boolean DEFAULT (0),
204
+ "simulateInterval" integer DEFAULT (5000),
205
+ "behaviorMode" varchar DEFAULT ('default'),
206
+ "serviceAddress" varchar,
207
+ "variant" varchar,
208
+ "type" varchar NOT NULL,
209
+ "hidden" boolean NOT NULL DEFAULT (0),
210
+ "hiddenBy" varchar,
211
+ "mac" varchar,
212
+ CONSTRAINT "UQ_devices_identifier_type" UNIQUE ("identifier", "type"),
213
+ CONSTRAINT "UQ_e8561dbd95ee5d195842749f322" UNIQUE ("canonicalMac"),
214
+ CONSTRAINT "FK_9c2fa00cfe1d7964da6b8ad4976" FOREIGN KEY ("roomId") REFERENCES "spaces_module_spaces" ("id") ON DELETE SET NULL ON UPDATE NO ACTION
215
+ )`);
216
+ await queryRunner.query(`INSERT INTO "temporary_devices_module_devices" (
217
+ "id", "createdAt", "updatedAt", "category", "identifier", "name", "description",
218
+ "enabled", "roomId", "password", "hostname", "haDeviceId", "canonicalMac",
219
+ "hasEthernet", "autoSimulate", "simulateInterval", "behaviorMode", "serviceAddress",
220
+ "variant", "type", "hidden", "hiddenBy", "mac"
221
+ ) SELECT "id", "createdAt", "updatedAt",
222
+ CASE WHEN "category" = 'input_controller' THEN 'generic' ELSE "category" END AS "category",
223
+ "identifier", "name", "description",
224
+ "enabled", "roomId", "password", "hostname", "haDeviceId", "canonicalMac",
225
+ "hasEthernet", "autoSimulate", "simulateInterval", "behaviorMode", "serviceAddress",
226
+ "variant", "type", "hidden", "hiddenBy", "mac" FROM "devices_module_devices"`);
227
+ await queryRunner.query(`DROP TABLE "devices_module_devices"`);
228
+ await queryRunner.query(`ALTER TABLE "temporary_devices_module_devices" RENAME TO "devices_module_devices"`);
229
+ await queryRunner.query(`CREATE INDEX "IDX_2e587b2a8bcb55f468bb6ec6fe" ON "devices_module_devices" ("identifier")`);
230
+ await queryRunner.query(`CREATE INDEX "IDX_b6aa1841ab84616391d34cd5cf" ON "devices_module_devices" ("enabled")`);
231
+ await queryRunner.query(`CREATE INDEX "IDX_9c2fa00cfe1d7964da6b8ad497" ON "devices_module_devices" ("roomId")`);
232
+ await queryRunner.query(`CREATE UNIQUE INDEX "IDX_36ec1c9bafc04373563cfb5f83" ON "devices_module_devices" ("haDeviceId")`);
233
+ await queryRunner.query(`CREATE INDEX "IDX_de1447169fa1df5ea8d41bf02a" ON "devices_module_devices" ("type")`);
234
+ await queryRunner.query(`CREATE INDEX "IDX_devices_hidden" ON "devices_module_devices" ("hidden")`);
235
+ await queryRunner.query(`CREATE INDEX "IDX_devices_hiddenBy" ON "devices_module_devices" ("hiddenBy")`);
236
+ await queryRunner.query(`CREATE UNIQUE INDEX "UQ_devices_wled_mac_type" ON "devices_module_devices" ("mac", "type") WHERE "mac" IS NOT NULL AND "type" = 'devices-wled'`);
237
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_devices_insert"
238
+ AFTER INSERT ON "devices_module_devices"
239
+ BEGIN
240
+ INSERT INTO "home_context_entity_search_fts" ("entity_kind", "entity_id", "name", "identifier", "context")
241
+ VALUES ('device', NEW."id", COALESCE(NEW."name", ''), COALESCE(NEW."identifier", ''), COALESCE(NEW."type", '') || ' ' || COALESCE(NEW."category", '') || ' ' || COALESCE(NEW."roomId", ''));
242
+ END`);
243
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_devices_update"
244
+ AFTER UPDATE OF "id", "name", "identifier", "type", "category", "roomId" ON "devices_module_devices"
245
+ BEGIN
246
+ DELETE FROM "home_context_entity_search_fts" WHERE "entity_kind" = 'device' AND "entity_id" = OLD."id";
247
+ INSERT INTO "home_context_entity_search_fts" ("entity_kind", "entity_id", "name", "identifier", "context")
248
+ VALUES ('device', NEW."id", COALESCE(NEW."name", ''), COALESCE(NEW."identifier", ''), COALESCE(NEW."type", '') || ' ' || COALESCE(NEW."category", '') || ' ' || COALESCE(NEW."roomId", ''));
249
+ END`);
250
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_devices_delete"
251
+ AFTER DELETE ON "devices_module_devices"
252
+ BEGIN
253
+ DELETE FROM "home_context_entity_search_fts" WHERE "entity_kind" = 'device' AND "entity_id" = OLD."id";
254
+ END`);
255
+ await queryRunner.query(`CREATE TABLE "temporary_devices_module_channels" (
256
+ "id" varchar PRIMARY KEY NOT NULL,
257
+ "createdAt" datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
258
+ "updatedAt" datetime,
259
+ "category" varchar CHECK( "category" IN ('generic','accelerometer','air_particulate','air_quality','alarm','battery','button','buzzer','camera','carbon_dioxide','carbon_monoxide','contact','cooler','dehumidifier','device_information','door','doorbell','electrical_energy','electrical_generation','electrical_power','fan','filter','flow','gas','heater','humidifier','humidity','illuminance','indicator','leak','light','lock','media_input','media_playback','microphone','motion','nitrogen_dioxide','occupancy','outlet','ozone','pressure','projector','robot_vacuum','smoke','speaker','sulphur_dioxide','switcher','television','temperature','thermostat','valve','volatile_organic_compounds','window_covering') ) NOT NULL DEFAULT ('generic'),
260
+ "identifier" varchar,
261
+ "name" varchar NOT NULL,
262
+ "description" varchar,
263
+ "parentId" varchar,
264
+ "type" varchar NOT NULL,
265
+ "deviceId" varchar,
266
+ CONSTRAINT "UQ_channels_identifier_type" UNIQUE ("identifier", "deviceId"),
267
+ CONSTRAINT "FK_e5e83bd86799131ff462ba199bd" FOREIGN KEY ("deviceId") REFERENCES "devices_module_devices" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
268
+ CONSTRAINT "FK_4ff87e5bef5426c24fe7f0ff6c2" FOREIGN KEY ("parentId") REFERENCES "devices_module_channels" ("id") ON DELETE SET NULL ON UPDATE NO ACTION
269
+ )`);
270
+ await queryRunner.query(`INSERT INTO "temporary_devices_module_channels" (
271
+ "id", "createdAt", "updatedAt", "category", "identifier", "name", "description",
272
+ "parentId", "type", "deviceId"
273
+ ) SELECT "id", "createdAt", "updatedAt",
274
+ CASE WHEN "category" IN ('binary_input', 'analog_input') THEN 'generic' ELSE "category" END AS "category",
275
+ "identifier", "name", "description",
276
+ "parentId", "type", "deviceId" FROM "devices_module_channels"`);
277
+ await queryRunner.query(`DROP TABLE "devices_module_channels"`);
278
+ await queryRunner.query(`ALTER TABLE "temporary_devices_module_channels" RENAME TO "devices_module_channels"`);
279
+ await queryRunner.query(`CREATE INDEX "IDX_38441e91ae9be25547912ebc44" ON "devices_module_channels" ("identifier")`);
280
+ await queryRunner.query(`CREATE INDEX "IDX_4ff87e5bef5426c24fe7f0ff6c" ON "devices_module_channels" ("parentId")`);
281
+ await queryRunner.query(`CREATE INDEX "IDX_a654e0cabea37168a1a967ab5d" ON "devices_module_channels" ("type")`);
282
+ await queryRunner.query(`CREATE TABLE "temporary_devices_module_channels_properties" (
283
+ "id" varchar PRIMARY KEY NOT NULL,
284
+ "createdAt" datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
285
+ "updatedAt" datetime,
286
+ "category" varchar CHECK( "category" IN ('generic','acceleration_x','acceleration_y','acceleration_z','active','alarm_state','album','angle','artist','artwork_url','aqi','average_power','balance','bass','brightness','change_needed','child_lock','color_blue','color_green','color_red','color_temperature','color_white','command','connection_type','consumption','current','concentration','defrost_active','detected','direction','distance','duration','event','fault','fault_description','firmware_revision','frequency','grid_export','grid_import','hardware_revision','hue','humidity','in_use','infrared','last_event','level','life_remaining','link_quality','locked','illuminance','manufacturer','media_type','mist_level','model','mode','mute','natural_breeze','obstruction','on','orientation','over_current','over_voltage','over_power','pan','peak_level','percentage','position','power','pressure','production','rate','remaining','repeat','reset','remote_key','saturation','siren','serial_number','shuffle','source','source_label','state','speed','status','swing','tampered','temperature','tilt','timer','treble','triggered','track','type','voltage','volume','warm_mist','water_tank_empty','water_tank_full','water_tank_level','zoom') ) NOT NULL DEFAULT ('generic'),
287
+ "identifier" varchar,
288
+ "name" varchar,
289
+ "permissions" text NOT NULL DEFAULT ('ro'),
290
+ "dataType" varchar CHECK( "dataType" IN ('char','uchar','short','ushort','int','uint','float','bool','string','enum','unknown') ) NOT NULL DEFAULT ('unknown'),
291
+ "format" json,
292
+ "invalid" text,
293
+ "step" real,
294
+ "haEntityId" varchar,
295
+ "haAttribute" varchar,
296
+ "haTransformer" varchar,
297
+ "type" varchar NOT NULL,
298
+ "channelId" varchar,
299
+ "valueOrigin" varchar,
300
+ "sourcePropertyId" varchar REFERENCES "devices_module_channels_properties" ("id") ON DELETE SET NULL,
301
+ "energyClaimPropertyId" varchar REFERENCES "devices_module_channels_properties" ("id") ON DELETE SET NULL,
302
+ "homeyCapabilityId" varchar,
303
+ "homeyMappingName" varchar,
304
+ CONSTRAINT "UQ_channels_properties_identifier_type" UNIQUE ("identifier", "channelId"),
305
+ CONSTRAINT "FK_25ddb149b40ce110e482ccd2a3d" FOREIGN KEY ("channelId") REFERENCES "devices_module_channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
306
+ )`);
307
+ await queryRunner.query(`INSERT INTO "temporary_devices_module_channels_properties" (
308
+ "id", "createdAt", "updatedAt", "category", "identifier", "name", "permissions",
309
+ "dataType", "format", "invalid", "step", "haEntityId", "haAttribute", "haTransformer",
310
+ "type", "channelId", "valueOrigin", "sourcePropertyId", "energyClaimPropertyId",
311
+ "homeyCapabilityId", "homeyMappingName"
312
+ ) SELECT "id", "createdAt", "updatedAt",
313
+ CASE WHEN "category" IN ('unit', 'value') THEN 'generic' ELSE "category" END AS "category",
314
+ "identifier", "name", "permissions",
315
+ "dataType", "format", "invalid", "step", "haEntityId", "haAttribute", "haTransformer",
316
+ "type", "channelId", "valueOrigin", "sourcePropertyId", "energyClaimPropertyId",
317
+ "homeyCapabilityId", "homeyMappingName" FROM "devices_module_channels_properties"`);
318
+ await queryRunner.query(`DROP TABLE "devices_module_channels_properties"`);
319
+ await queryRunner.query(`ALTER TABLE "temporary_devices_module_channels_properties" RENAME TO "devices_module_channels_properties"`);
320
+ await queryRunner.query(`CREATE INDEX "IDX_869661aed3457e1949b0e7e335" ON "devices_module_channels_properties" ("identifier")`);
321
+ await queryRunner.query(`CREATE INDEX "IDX_98ffd1e6ff9c4463c3e7d9a9c7" ON "devices_module_channels_properties" ("type")`);
322
+ await queryRunner.query(`CREATE INDEX "IDX_channels_properties_sourcePropertyId" ON "devices_module_channels_properties" ("sourcePropertyId")`);
323
+ await queryRunner.query(`CREATE UNIQUE INDEX "UQ_channels_properties_energyClaim" ON "devices_module_channels_properties" ("energyClaimPropertyId") WHERE "energyClaimPropertyId" IS NOT NULL`);
324
+ await queryRunner.query(`CREATE UNIQUE INDEX "UQ_homey_capability_mapping_channel" ON "devices_module_channels_properties" ("homeyCapabilityId", "homeyMappingName", "channelId") WHERE "type" = 'devices-homey' AND "homeyCapabilityId" IS NOT NULL AND "homeyMappingName" IS NOT NULL`);
325
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_properties_insert"
326
+ AFTER INSERT ON "devices_module_channels_properties"
327
+ BEGIN
328
+ INSERT INTO "home_context_entity_search_fts" ("entity_kind", "entity_id", "name", "identifier", "context")
329
+ VALUES ('property', NEW."id", COALESCE(NEW."name", ''), COALESCE(NEW."identifier", ''), COALESCE(NEW."type", '') || ' ' || COALESCE(NEW."category", '') || ' ' || COALESCE(NEW."dataType", '') || ' ' || COALESCE(NEW."permissions", '') || ' ' || COALESCE(NEW."channelId", ''));
330
+ END`);
331
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_properties_update"
332
+ AFTER UPDATE OF "id", "name", "identifier", "type", "category", "dataType", "permissions", "channelId" ON "devices_module_channels_properties"
333
+ BEGIN
334
+ DELETE FROM "home_context_entity_search_fts" WHERE "entity_kind" = 'property' AND "entity_id" = OLD."id";
335
+ INSERT INTO "home_context_entity_search_fts" ("entity_kind", "entity_id", "name", "identifier", "context")
336
+ VALUES ('property', NEW."id", COALESCE(NEW."name", ''), COALESCE(NEW."identifier", ''), COALESCE(NEW."type", '') || ' ' || COALESCE(NEW."category", '') || ' ' || COALESCE(NEW."dataType", '') || ' ' || COALESCE(NEW."permissions", '') || ' ' || COALESCE(NEW."channelId", ''));
337
+ END`);
338
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_properties_delete"
339
+ AFTER DELETE ON "devices_module_channels_properties"
340
+ BEGIN
341
+ DELETE FROM "home_context_entity_search_fts" WHERE "entity_kind" = 'property' AND "entity_id" = OLD."id";
342
+ END`);
343
+ const hasSearchFts = await queryRunner.hasTable('home_context_entity_search_fts');
344
+ if (hasSearchFts) {
345
+ await queryRunner.query(`UPDATE "devices_module_devices" SET "category" = "category"`);
346
+ await queryRunner.query(`UPDATE "devices_module_channels_properties" SET "category" = "category"`);
347
+ }
348
+ if (transactionStarted) {
349
+ await queryRunner.commitTransaction();
350
+ }
351
+ }
352
+ catch (error) {
353
+ if (transactionStarted) {
354
+ await queryRunner.rollbackTransaction();
355
+ }
356
+ throw error;
357
+ }
358
+ finally {
359
+ await queryRunner.query('PRAGMA foreign_keys = ON');
360
+ }
361
+ }
362
+ }
363
+ exports.AddHardwareInputCategories1000000000026 = AddHardwareInputCategories1000000000026;
364
+ //# sourceMappingURL=1000000000026-AddHardwareInputCategories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1000000000026-AddHardwareInputCategories.js","sourceRoot":"","sources":["../../src/migrations/1000000000026-AddHardwareInputCategories.ts"],"names":[],"mappings":";;;AAEA,MAAa,uCAAuC;IAApD;QACC,SAAI,GAAG,yCAAyC,CAAC;QACjD,gBAAW,GAAG,KAAK,CAAC;IAmbrB,CAAC;IAjbO,KAAK,CAAC,EAAE,CAAC,WAAwB;QACvC,MAAM,WAAW,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACrD,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAE/B,IAAI,CAAC;YACJ,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC;gBACtC,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBACrC,kBAAkB,GAAG,IAAI,CAAC;YAC3B,CAAC;YAGF,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2BtB,CAAC,CAAC;YAEJ,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;gFAQsD,CAAC,CAAC;YAEhF,MAAM,WAAW,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAC/D,MAAM,WAAW,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAC;YAE7G,MAAM,WAAW,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;YACpH,MAAM,WAAW,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;YACjH,MAAM,WAAW,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAC;YAChH,MAAM,WAAW,CAAC,KAAK,CACtB,iGAAiG,CACjG,CAAC;YACF,MAAM,WAAW,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;YAC9G,MAAM,WAAW,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;YACpG,MAAM,WAAW,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;YACxG,MAAM,WAAW,CAAC,KAAK,CACtB,gJAAgJ,CAChJ,CAAC;YAEF,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;OAKnB,CAAC,CAAC;YAEP,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;OAMnB,CAAC,CAAC;YAEP,MAAM,WAAW,CAAC,KAAK,CAAC;;;;OAInB,CAAC,CAAC;YAGP,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;;;;IActB,CAAC,CAAC;YAEJ,MAAM,WAAW,CAAC,KAAK,CAAC;;;;iEAIuC,CAAC,CAAC;YAEjE,MAAM,WAAW,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAChE,MAAM,WAAW,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;YAE/G,MAAM,WAAW,CAAC,KAAK,CACtB,2FAA2F,CAC3F,CAAC;YACF,MAAM,WAAW,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;YACnH,MAAM,WAAW,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;YAG/G,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;IAwBtB,CAAC,CAAC;YAEJ,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;qFAQ2D,CAAC,CAAC;YAErF,MAAM,WAAW,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YAC3E,MAAM,WAAW,CAAC,KAAK,CACtB,2GAA2G,CAC3G,CAAC;YAEF,MAAM,WAAW,CAAC,KAAK,CACtB,sGAAsG,CACtG,CAAC;YACF,MAAM,WAAW,CAAC,KAAK,CACtB,gGAAgG,CAChG,CAAC;YACF,MAAM,WAAW,CAAC,KAAK,CACtB,sHAAsH,CACtH,CAAC;YACF,MAAM,WAAW,CAAC,KAAK,CACtB,sKAAsK,CACtK,CAAC;YACF,MAAM,WAAW,CAAC,KAAK,CACtB,gQAAgQ,CAChQ,CAAC;YAEF,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;OAKnB,CAAC,CAAC;YAEP,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;OAMnB,CAAC,CAAC;YAEP,MAAM,WAAW,CAAC,KAAK,CAAC;;;;OAInB,CAAC,CAAC;YAEN,IAAI,kBAAkB,EAAE,CAAC;gBACxB,MAAM,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACvC,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,kBAAkB,EAAE,CAAC;gBACxB,MAAM,WAAW,CAAC,mBAAmB,EAAE,CAAC;YACzC,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;gBAAS,CAAC;YACV,MAAM,WAAW,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACrD,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACzC,MAAM,WAAW,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACrD,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAE/B,IAAI,CAAC;YACJ,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC;gBACtC,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBACrC,kBAAkB,GAAG,IAAI,CAAC;YAC3B,CAAC;YAGF,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2BtB,CAAC,CAAC;YAEJ,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;gFAUsD,CAAC,CAAC;YAEhF,MAAM,WAAW,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAC/D,MAAM,WAAW,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAC;YAE7G,MAAM,WAAW,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;YACpH,MAAM,WAAW,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;YACjH,MAAM,WAAW,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAC;YAChH,MAAM,WAAW,CAAC,KAAK,CACtB,iGAAiG,CACjG,CAAC;YACF,MAAM,WAAW,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;YAC9G,MAAM,WAAW,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;YACpG,MAAM,WAAW,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;YACxG,MAAM,WAAW,CAAC,KAAK,CACtB,gJAAgJ,CAChJ,CAAC;YAEF,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;OAKnB,CAAC,CAAC;YAEP,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;OAMnB,CAAC,CAAC;YAEP,MAAM,WAAW,CAAC,KAAK,CAAC;;;;OAInB,CAAC,CAAC;YAGP,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;;;;IActB,CAAC,CAAC;YAEJ,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;iEAMuC,CAAC,CAAC;YAEjE,MAAM,WAAW,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAChE,MAAM,WAAW,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;YAE/G,MAAM,WAAW,CAAC,KAAK,CACtB,2FAA2F,CAC3F,CAAC;YACF,MAAM,WAAW,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;YACnH,MAAM,WAAW,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;YAG/G,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;IAwBtB,CAAC,CAAC;YAEJ,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;qFAU2D,CAAC,CAAC;YAErF,MAAM,WAAW,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YAC3E,MAAM,WAAW,CAAC,KAAK,CACtB,2GAA2G,CAC3G,CAAC;YAEF,MAAM,WAAW,CAAC,KAAK,CACtB,sGAAsG,CACtG,CAAC;YACF,MAAM,WAAW,CAAC,KAAK,CACtB,gGAAgG,CAChG,CAAC;YACF,MAAM,WAAW,CAAC,KAAK,CACtB,sHAAsH,CACtH,CAAC;YACF,MAAM,WAAW,CAAC,KAAK,CACtB,sKAAsK,CACtK,CAAC;YACF,MAAM,WAAW,CAAC,KAAK,CACtB,gQAAgQ,CAChQ,CAAC;YAEF,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;OAKnB,CAAC,CAAC;YAEP,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;OAMnB,CAAC,CAAC;YAEP,MAAM,WAAW,CAAC,KAAK,CAAC;;;;OAInB,CAAC,CAAC;YAEN,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;YAClF,IAAI,YAAY,EAAE,CAAC;gBAClB,MAAM,WAAW,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;gBACvF,MAAM,WAAW,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;YACpG,CAAC;YAED,IAAI,kBAAkB,EAAE,CAAC;gBACxB,MAAM,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACvC,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,kBAAkB,EAAE,CAAC;gBACxB,MAAM,WAAW,CAAC,mBAAmB,EAAE,CAAC;YACzC,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;gBAAS,CAAC;YACV,MAAM,WAAW,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACrD,CAAC;IACF,CAAC;CACD;AArbD,0FAqbC"}
@@ -1,14 +1,18 @@
1
1
  import { FastifyRequest as Request, FastifyReply as Response } from 'fastify';
2
+ import { ChannelInputCapabilitiesResponseModel } from '../models/channel-input-capabilities.model';
2
3
  import { ChannelResponseModel, ChannelsResponseModel } from '../models/devices-response.model';
4
+ import { ChannelInputOccurrencesService } from '../services/channel-input-occurrences.service';
3
5
  import { ChannelsTypeMapperService } from '../services/channels-type-mapper.service';
4
6
  import { ChannelsService } from '../services/channels.service';
5
7
  export declare class ChannelsController {
6
8
  private readonly channelsService;
7
9
  private readonly channelsMapperService;
10
+ private readonly channelInputOccurrencesService;
8
11
  private readonly logger;
9
- constructor(channelsService: ChannelsService, channelsMapperService: ChannelsTypeMapperService);
12
+ constructor(channelsService: ChannelsService, channelsMapperService: ChannelsTypeMapperService, channelInputOccurrencesService: ChannelInputOccurrencesService);
10
13
  findAll(): Promise<ChannelsResponseModel>;
11
14
  findOne(id: string): Promise<ChannelResponseModel>;
15
+ getInputCapabilities(id: string): Promise<ChannelInputCapabilitiesResponseModel>;
12
16
  create(createDto: {
13
17
  data: object;
14
18
  }, res: Response, req: Request): Promise<ChannelResponseModel>;
@@ -25,13 +25,16 @@ const devices_constants_1 = require("../devices.constants");
25
25
  const devices_exceptions_1 = require("../devices.exceptions");
26
26
  const create_channel_dto_1 = require("../dto/create-channel.dto");
27
27
  const update_channel_dto_1 = require("../dto/update-channel.dto");
28
+ const channel_input_capabilities_model_1 = require("../models/channel-input-capabilities.model");
28
29
  const devices_response_model_1 = require("../models/devices-response.model");
30
+ const channel_input_occurrences_service_1 = require("../services/channel-input-occurrences.service");
29
31
  const channels_type_mapper_service_1 = require("../services/channels-type-mapper.service");
30
32
  const channels_service_1 = require("../services/channels.service");
31
33
  let ChannelsController = class ChannelsController {
32
- constructor(channelsService, channelsMapperService) {
34
+ constructor(channelsService, channelsMapperService, channelInputOccurrencesService) {
33
35
  this.channelsService = channelsService;
34
36
  this.channelsMapperService = channelsMapperService;
37
+ this.channelInputOccurrencesService = channelInputOccurrencesService;
35
38
  this.logger = (0, extension_logger_service_1.createExtensionLogger)(devices_constants_1.DEVICES_MODULE_NAME, 'ChannelsController');
36
39
  }
37
40
  async findAll() {
@@ -50,6 +53,16 @@ let ChannelsController = class ChannelsController {
50
53
  response.data = channel;
51
54
  return response;
52
55
  }
56
+ async getInputCapabilities(id) {
57
+ this.logger.debug(`Fetching input capabilities for channel id=${id}`);
58
+ const capabilities = await this.channelInputOccurrencesService.getInputCapabilities(id);
59
+ if (!capabilities) {
60
+ throw new common_1.NotFoundException(`Channel with ID ${id} was not found.`);
61
+ }
62
+ const response = new channel_input_capabilities_model_1.ChannelInputCapabilitiesResponseModel();
63
+ response.data = capabilities;
64
+ return response;
65
+ }
53
66
  async create(createDto, res, req) {
54
67
  this.logger.debug('Incoming request to create a new channel');
55
68
  const type = 'type' in createDto.data && typeof createDto.data.type === 'string' ? createDto.data.type : undefined;
@@ -192,6 +205,24 @@ __decorate([
192
205
  __metadata("design:paramtypes", [String]),
193
206
  __metadata("design:returntype", Promise)
194
207
  ], ChannelsController.prototype, "findOne", null);
208
+ __decorate([
209
+ (0, swagger_1.ApiOperation)({
210
+ tags: [devices_constants_1.DEVICES_MODULE_API_TAG_NAME],
211
+ summary: 'Retrieve input capabilities of a specific channel',
212
+ description: 'Fetches input capabilities and supported event interactions for a channel.',
213
+ operationId: 'get-devices-module-channel-input-capabilities',
214
+ }),
215
+ (0, swagger_1.ApiParam)({ name: 'id', type: 'string', format: 'uuid', description: 'Channel ID' }),
216
+ (0, api_documentation_decorator_1.ApiSuccessResponse)(channel_input_capabilities_model_1.ChannelInputCapabilitiesResponseModel, 'Input capabilities of the channel successfully retrieved.'),
217
+ (0, api_documentation_decorator_1.ApiBadRequestResponse)('Invalid UUID format'),
218
+ (0, api_documentation_decorator_1.ApiNotFoundResponse)('Channel not found'),
219
+ (0, api_documentation_decorator_1.ApiInternalServerErrorResponse)('Internal server error'),
220
+ (0, common_1.Get)(':id/input-capabilities'),
221
+ __param(0, (0, common_1.Param)('id', new common_1.ParseUUIDPipe({ version: '4' }))),
222
+ __metadata("design:type", Function),
223
+ __metadata("design:paramtypes", [String]),
224
+ __metadata("design:returntype", Promise)
225
+ ], ChannelsController.prototype, "getInputCapabilities", null);
195
226
  __decorate([
196
227
  (0, swagger_1.ApiOperation)({
197
228
  tags: [devices_constants_1.DEVICES_MODULE_API_TAG_NAME],
@@ -256,6 +287,7 @@ exports.ChannelsController = ChannelsController = __decorate([
256
287
  (0, swagger_1.ApiTags)(devices_constants_1.DEVICES_MODULE_API_TAG_NAME),
257
288
  (0, common_1.Controller)('channels'),
258
289
  __metadata("design:paramtypes", [channels_service_1.ChannelsService,
259
- channels_type_mapper_service_1.ChannelsTypeMapperService])
290
+ channels_type_mapper_service_1.ChannelsTypeMapperService,
291
+ channel_input_occurrences_service_1.ChannelInputOccurrencesService])
260
292
  ], ChannelsController);
261
293
  //# sourceMappingURL=channels.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"channels.controller.js","sourceRoot":"","sources":["../../../../src/modules/devices/controllers/channels.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channels.controller.js","sourceRoot":"","sources":["../../../../src/modules/devices/controllers/channels.controller.ts"],"names":[],"mappings":"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"}
@@ -167,6 +167,11 @@ let ChannelsPropertiesController = class ChannelsPropertiesController {
167
167
  const commandValue = dtoInstance.value;
168
168
  const effectivePropertyUpdate = { ...dtoInstance };
169
169
  let commandReceipt = null;
170
+ if (typeof commandValue !== 'undefined' && commandValue !== null) {
171
+ if (!property.permissions.some((permission) => [devices_constants_1.PermissionType.READ_WRITE, devices_constants_1.PermissionType.WRITE_ONLY].includes(permission))) {
172
+ throw new common_1.BadRequestException([JSON.stringify({ field: 'value', reason: 'Property is not writable.' })]);
173
+ }
174
+ }
170
175
  if (typeof commandValue !== 'undefined' &&
171
176
  commandValue !== null &&
172
177
  (await this.propertyCommandService.usesAuthoritativePropertyReadback(channel.device, property, effectivePropertyUpdate))) {