From 03af0b8c06d0d3c6ccdf1e02a9ac13f0889846f1 Mon Sep 17 00:00:00 2001 From: Pierre CLEMENT Date: Mon, 19 Feb 2018 21:10:27 +0100 Subject: [PATCH] fix(configurator): use internalModel as filter type --- src/devices/GatewayMessage.ts | 2 ++ src/devices/GatewaySubdevice.ts | 8 +++++--- .../gateway-subdevices/GatewaySubdevice.ejs | 9 ++++----- src/nodes/gateway-subdevices/index.ejs | 20 +++++++++---------- src/nodes/gateway/GatewayConfigurator.ejs | 15 ++++++++------ 5 files changed, 30 insertions(+), 24 deletions(-) diff --git a/src/devices/GatewayMessage.ts b/src/devices/GatewayMessage.ts index 8e2931e..00d457a 100644 --- a/src/devices/GatewayMessage.ts +++ b/src/devices/GatewayMessage.ts @@ -25,6 +25,7 @@ export class GatewayMessage { | MessageData.GatewayMessageReadAckReportWeatherData | MessageData.GatewayMessageDefaultSubdeviceData | any; + timestamp: number; constructor(raw: GatewayRawMessage) { Object.assign(this, raw); @@ -34,6 +35,7 @@ export class GatewayMessage { if (raw.data) { this.data = JSON.parse(raw.data) || raw.data; } + this.timestamp = +new Date; } isHeartbeat(): boolean { diff --git a/src/devices/GatewaySubdevice.ts b/src/devices/GatewaySubdevice.ts index ca3cd17..f389616 100644 --- a/src/devices/GatewaySubdevice.ts +++ b/src/devices/GatewaySubdevice.ts @@ -20,7 +20,9 @@ export abstract class GatewaySubdevice extends events.EventEmitter { } handleMessage(msg: GatewayMessage): void { - this.voltage = ( msg.data).voltage; + if (( msg.data).voltage) { + this.voltage = ( msg.data).voltage; + } this.message = msg; } @@ -31,8 +33,8 @@ export abstract class GatewaySubdevice extends events.EventEmitter { abstract get internalModel(): string; toJSON() { - let json:any = {}; - for(let prop of Object.keys(this)) { + let json: any = {}; + for (let prop of Object.keys(this)) { json[prop] = this[prop]; } delete json._events; diff --git a/src/nodes/gateway-subdevices/GatewaySubdevice.ejs b/src/nodes/gateway-subdevices/GatewaySubdevice.ejs index bbb7d4f..066baed 100644 --- a/src/nodes/gateway-subdevices/GatewaySubdevice.ejs +++ b/src/nodes/gateway-subdevices/GatewaySubdevice.ejs @@ -25,13 +25,12 @@ var configNodeID = $('#node-input-gateway').val(); if (configNodeID) { var configNode = RED.nodes.node(configNodeID); - console.log(model, configNode); if(configNode) { $('#node-input-sid').empty(); - for (key in configNode.deviceList) { - var device = configNode.deviceList[key]; - if (device.type === model) { - $('#node-input-sid').append(''); + for (sid in configNode.deviceList) { + var device = configNode.deviceList[sid]; + if (device.internalModel === model) { + $('#node-input-sid').append(''); } } if(node.sid) { diff --git a/src/nodes/gateway-subdevices/index.ejs b/src/nodes/gateway-subdevices/index.ejs index 73e206d..5305aee 100644 --- a/src/nodes/gateway-subdevices/index.ejs +++ b/src/nodes/gateway-subdevices/index.ejs @@ -4,13 +4,13 @@ <%# ---------------------------------- Magnet ---------------------------------- %> <%- include('./GatewaySubdevice', { type: "magnet", - label: "contact", + label: "magnet", icon: "door-icon", - filterType: "magnet", + filterType: "mi.magnet", docTitle: "The Xiaomi contact", incomingSample: `{ cmd: "read_ack" - model: "sensor_magnet.aq2" + model: "magnet" sid: "158d000112fb5d" short_id: 50301 data: { @@ -24,10 +24,10 @@ <%# ---------------------------------- Motion ---------------------------------- %> <%- include('./GatewaySubdevice', { - type: "motion", + type: "mi.motion", label: "motion", icon: "motion-icon", - filterType: "motion", + filterType: "mi.motion", docTitle: "The Xiaomi body motion", incomingSample: `{ cmd: "read_ack" @@ -44,10 +44,10 @@ <%# ---------------------------------- Sensor HT ---------------------------------- %> <%- include('./GatewaySubdevice', { - type: "ht", - label: "sensor HT", + type: "mi.weather", + label: "weather", icon: "thermometer-icon", - filterType: "sensor_ht", + filterType: "mi.weather", docTitle: "The Xiaomi Humidity & Temperature", incomingSample: `{ cmd: "read_ack" @@ -67,10 +67,10 @@ <%# ---------------------------------- Switch ---------------------------------- %> <%- include('./GatewaySubdevice', { - type: "switch", + type: "mi.switch", label: "switch", icon: "mi-switch", - filterType: "switch", + filterType: "mi.switch", docTitle: "The Xiaomi Switch", incomingSample: `{ cmd: "report" diff --git a/src/nodes/gateway/GatewayConfigurator.ejs b/src/nodes/gateway/GatewayConfigurator.ejs index 74ab316..419fb33 100644 --- a/src/nodes/gateway/GatewayConfigurator.ejs +++ b/src/nodes/gateway/GatewayConfigurator.ejs @@ -33,7 +33,7 @@ $('