hoffmation-base 1.1.0 → 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.
Files changed (33) hide show
  1. package/lib/models/deviceSettings/wledSettings.d.ts +2 -2
  2. package/lib/models/deviceSettings/wledSettings.js +2 -2
  3. package/lib/server/devices/baseDeviceInterfaces/iActuator.d.ts +1 -0
  4. package/lib/server/devices/baseDeviceInterfaces/iButtonSwitch.d.ts +2 -1
  5. package/lib/server/devices/baseDeviceInterfaces/iDimmableLamp.d.ts +1 -0
  6. package/lib/server/devices/baseDeviceInterfaces/iLamp.d.ts +3 -5
  7. package/lib/server/devices/baseDeviceInterfaces/iShutter.d.ts +1 -0
  8. package/lib/server/devices/groups/lampenGroup.js +1 -1
  9. package/lib/server/devices/hmIPDevices/hmIpLampe.d.ts +3 -0
  10. package/lib/server/devices/hmIPDevices/hmIpLampe.js +10 -1
  11. package/lib/server/devices/hmIPDevices/hmIpRoll.d.ts +1 -0
  12. package/lib/server/devices/hmIPDevices/hmIpRoll.js +5 -0
  13. package/lib/server/devices/hmIPDevices/hmIpTaster.d.ts +2 -1
  14. package/lib/server/devices/hmIPDevices/hmIpTaster.js +19 -7
  15. package/lib/server/devices/hmIPDevices/hmIpWippe.d.ts +2 -1
  16. package/lib/server/devices/hmIPDevices/hmIpWippe.js +14 -4
  17. package/lib/server/devices/wledDevice.d.ts +10 -2
  18. package/lib/server/devices/wledDevice.js +38 -5
  19. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.d.ts +1 -0
  20. package/lib/server/devices/zigbee/BaseDevices/ZigbeeActuator.js +4 -0
  21. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.d.ts +1 -0
  22. package/lib/server/devices/zigbee/BaseDevices/zigbeeShutter.js +5 -0
  23. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.d.ts +2 -1
  24. package/lib/server/devices/zigbee/BaseDevices/zigbeeSwitch.js +5 -0
  25. package/lib/server/devices/zigbee/zigbeeAqaraOpple3Switch.js +17 -11
  26. package/lib/server/devices/zigbee/zigbeeIlluDimmer.d.ts +3 -0
  27. package/lib/server/devices/zigbee/zigbeeIlluDimmer.js +10 -1
  28. package/lib/server/devices/zigbee/zigbeeIlluLampe.js +1 -1
  29. package/lib/server/services/dbo/iPersist.d.ts +4 -2
  30. package/lib/server/services/dbo/postgreSqlPersist.d.ts +4 -2
  31. package/lib/server/services/dbo/postgreSqlPersist.js +61 -8
  32. package/lib/tsconfig.tsbuildinfo +1 -1
  33. package/package.json +1 -1
@@ -4,6 +4,7 @@ exports.PostgreSqlPersist = void 0;
4
4
  const models_1 = require("../../../models");
5
5
  const pg_1 = require("pg");
6
6
  const log_service_1 = require("../log-service");
7
+ const DeviceCapability_1 = require("../../devices/DeviceCapability");
7
8
  class PostgreSqlPersist {
8
9
  constructor(config) {
9
10
  this.initialized = false;
@@ -24,7 +25,7 @@ values ('${room.roomName}',${room.settings.etage})
24
25
  this.query(`
25
26
  insert into hoffmation_schema."DeviceInfo" ("deviceid", "roomname", "alldeviceskey", "customname", "devtype")
26
27
  values ('${device.id}','${device.info.room}','${device.info.allDevicesKey}','${device.info.customName}', ${device.deviceType})
27
- ON CONFLICT (name)
28
+ ON CONFLICT ("deviceid")
28
29
  DO UPDATE SET
29
30
  "roomname" = '${device.info.room}',
30
31
  "alldeviceskey" = '${device.info.allDevicesKey}',
@@ -123,6 +124,25 @@ create table "CurrentIllumination"
123
124
  alter table "CurrentIllumination"
124
125
  owner to postgres;
125
126
  END IF;
127
+
128
+ IF (SELECT to_regclass('hoffmation_schema."ButtonSwitchPresses"') IS NULL) Then
129
+ create table if not exists hoffmation_schema."ButtonSwitchPresses"
130
+ (
131
+ "deviceID" varchar(60) not null
132
+ constraint "ButtonSwitchPresses_DeviceInfo_null_fk"
133
+ references hoffmation_schema."DeviceInfo"
134
+ on delete set null,
135
+ "pressType" int,
136
+ "buttonName" varchar(30),
137
+ date timestamp not null,
138
+ constraint buttonswitchpresses_pk
139
+ primary key ("deviceID", "pressType", date)
140
+ );
141
+
142
+ alter table hoffmation_schema."ButtonSwitchPresses"
143
+ owner to postgres;
144
+ END IF;
145
+
126
146
  IF (SELECT to_regclass('hoffmation_schema."EnergyCalculation"') IS NULL) Then
127
147
  create table "EnergyCalculation"
128
148
  (
@@ -179,17 +199,17 @@ IF (SELECT to_regclass('hoffmation_schema."AcDeviceData"') IS NULL) Then
179
199
  END IF;
180
200
 
181
201
 
182
- IF (SELECT to_regclass('hoffmation_schema."LampDeviceData"') IS NULL) Then
183
- create table hoffmation_schema."LampDeviceData"
202
+ IF (SELECT to_regclass('hoffmation_schema."ActuatorDeviceData"') IS NULL) Then
203
+ create table hoffmation_schema."ActuatorDeviceData"
184
204
  (
185
205
  "deviceID" varchar(60) not null,
186
206
  "on" boolean,
187
207
  date timestamp not null,
188
- constraint lampdevicedata_pk
208
+ constraint ActuatorDeviceData_pk
189
209
  primary key ("deviceID", date)
190
210
  );
191
211
 
192
- alter table hoffmation_schema."LampDeviceData"
212
+ alter table hoffmation_schema."ActuatorDeviceData"
193
213
  owner to postgres;
194
214
  END IF;
195
215
 
@@ -206,6 +226,23 @@ IF (SELECT to_regclass('hoffmation_schema."MotionSensorDeviceData"') IS NULL) Th
206
226
  alter table hoffmation_schema."MotionSensorDeviceData"
207
227
  owner to postgres;
208
228
  END IF;
229
+
230
+ IF (SELECT to_regclass('hoffmation_schema."ShutterDeviceData"') IS NULL) Then
231
+ create table if not exists hoffmation_schema."ShutterDeviceData"
232
+ (
233
+ "deviceID" varchar(60) not null
234
+ constraint "ShutterDeviceData_DeviceInfo_null_fk"
235
+ references hoffmation_schema."DeviceInfo"
236
+ on delete set null,
237
+ "position" double precision,
238
+ date timestamp not null,
239
+ constraint shutterdevicedata_pk
240
+ primary key ("deviceID", date)
241
+ );
242
+
243
+ alter table hoffmation_schema."ShutterDeviceData"
244
+ owner to postgres;
245
+ END IF;
209
246
 
210
247
  IF (SELECT to_regclass('hoffmation_schema."TemperaturData"') IS NULL) Then
211
248
  create table "TemperaturData"
@@ -234,16 +271,32 @@ insert into hoffmation_schema."AcDeviceData" ("deviceID", "on", "date", "roomTem
234
271
  values ('${device.id}', ${device.on}, '${new Date().toISOString()}', ${device.temperature});
235
272
  `);
236
273
  }
237
- persistLamp(device) {
274
+ persistActuator(device) {
275
+ let percentage = undefined;
276
+ if (device.deviceCapabilities.includes(DeviceCapability_1.DeviceCapability.dimmablelamp)) {
277
+ percentage = device.brightness;
278
+ }
279
+ this.query(`
280
+ insert into hoffmation_schema."ActuatorDeviceData" ("deviceID", "on", "date", "percentage")
281
+ values ('${device.id}', ${device.actuatorOn}, '${new Date().toISOString()}', ${percentage !== null && percentage !== void 0 ? percentage : 'null'});
282
+ `);
283
+ }
284
+ persistSwitchInput(device, pressType, buttonName) {
238
285
  this.query(`
239
- insert into hoffmation_schema."LampDeviceData" ("deviceID", "on", "date")
240
- values ('${device.id}', ${device.lightOn}, '${new Date().toISOString()}');
286
+ insert into hoffmation_schema."ButtonSwitchPresses" ("deviceID", "pressType", "buttonName", "date")
287
+ values ('${device.id}', ${pressType}, '${buttonName}', '${new Date().toISOString()}');
241
288
  `);
242
289
  }
243
290
  persistMotionSensor(device) {
244
291
  this.query(`
245
292
  insert into hoffmation_schema."MotionSensorDeviceData" ("deviceID", "movementDetected", "date")
246
293
  values ('${device.id}', ${device.movementDetected}, '${new Date().toISOString()}');
294
+ `);
295
+ }
296
+ persistShutter(device) {
297
+ this.query(`
298
+ insert into hoffmation_schema."ShutterDeviceData" ("deviceID", "position", "date")
299
+ values ('${device.id}', ${device.currentLevel}, '${new Date().toISOString()}');
247
300
  `);
248
301
  }
249
302
  persistCurrentIllumination(data) {