Endpoint configuration
El objeto endpoint configuration la configuración inicial de un endpoint, típicamente en el script de configuración de un modelo de dispositivo.
Los objetos de este tipo son creados a través del método add() del objeto endpoint configuration collection.
Propiedades
### address (string) La propiedad address representa la dirección del endpoint, como texto.
Ejemplos
Este ejemplo muestra la dirección de un endpoint, a través de la consola de log.
env.log('Endoint address: ', endpoint.address);### defaultDescription (string o multi-language literal) La propiedad defaultDescription representa la descripción que se utilizará al crear el endpoint. Puede ser un string, o bien un objeto multi-language literal.
Ejemplos
Este ejemplo muestra la descripción de un endpoint, a través de la consola de log.
env.log('Endoint description: ', endpoint.defaultDescription);### endpointType (int enum) La propiedad endpointType indica el tipo de endpoint. Los valores posibles para esta propiedad, son los mismos que los de la propiedad endpointType del objeto endpoint.
Ejemplos
Este ejemplo muestra el tipo de un endpoint, a través de la consola de log.
env.log('Endoint type: ', endpoint.endpointType);### endpointSubType (int enum) La propiedad endpointSubType indica el subtipo de endpoint. Los valores posibles para esta propiedad, son los mismos que los de la propiedad endpointSubType del objeto endpoint.
Ejemplos
Este ejemplo muestra el subtipo de un endpoint, a través de la consola de log.
env.log('Endoint subtype: ', endpoint.endpointSubType);### variableTypeId (int enum) La propiedad variableTypeId indica el tipo de variable custom que está asociada al endpoint. Esta propiedad aplica únicamente a los endpoints de tipo endpointType.genericSensor, y endpointType.genericFlowSensor.
Ejemplos
Este ejemplo crea un endpoint de tipo sensor de flujo, y le asigna la variable con ID 1071.
var e = endpoints.addEndpoint("1", "My generic sensor", endpointType.genericSensor);
e.variableTypeId = 1071;### accessType (int enum) La propiedad accessType indica el tipo de acceso que se aplica al endpoint. Por defecto, el acceso será read only. Los valores posibles para esta propiedad, son los mismos que los de la propiedad accessType del objeto endpoint.
Ejemplos
Este ejemplo crea un endpoint de tipo sensor genérico, y le asigna acceso read-write.
var e = endpoints.addEndpoint("1", "My generic sensor", endpointType.genericSensor);
e.accessType = endpointAccessType.readWrite;### operationSecurityLevel (int enum) La propiedad operationSecurityLevel indica el nivel de seguridad asociado a la operación del endpoint. Por defecto, el nivel de seguridad será simple. Los valores posibles para esta propiedad, son los mismos que los de la propiedad operationSecurityLevel del objeto endpoint.
Ejemplos
Este ejemplo crea un endpoint de tipo sensor genérico, y le asigna nivel de seguridad medium.
var e = endpoints.addEndpoint("1", "My generic sensor", endpointType.genericSensor);
e.operationSecurityLevel = endpointOperationSecurityLevel.medium;### operationWarningMessage (string o multi-language literal) La propiedad operationWarningMessage representa el mensaje de advertencia que se mostrará cuando se intente operar el dispositivo manualmente, si el nivel de seguridad en la propiedad operationSecurityLevel es medium o high. Puede ser un string, o bien un objeto multi-language literal.
Ejemplos
Este ejemplo crea un endpoint de tipo sensor genérico, y le asigna un mensaje de advertencia multi idioma.
var e = endpoints.addEndpoint("1", "My generic sensor", endpointType.genericSensor);
e.operationWarningMessage = {en: "This is a critical operation. Continue?", es: "Esta es una operación crítica. ¿Continuar?"};### range (endpoint range) La propiedad range permite indicar el rango de valores permitido para un endpoint. Sólo es aplicable a los endpoints de tipo escalar. El rango se expresa como un objeto de tipo endpoint range. El valor por defecto para esta propiedad es null, indicando que cualquier valor es aceptable.
Ejemplos
Este ejemplo crea un endpoint de tipo sensor genérico, y le asigna un rango de valores que va desde -100 hasta +100.
var e = endpoints.addEndpoint("1", "My generic sensor", endpointType.genericSensor);
e.range = {lowestValue: -100, highestValue: 100};### summationAutoResetThreshold (int or null)
La propiedad summationAutoResetThreshold controla el comportamiento del endpoint en caso de recibir un valor acumulado inferior al último recibido. Esta propiedad aplica únicamente a los endpoints de tipo endpointType.flowSensor, endpointType.genericFlowSensor, endpointType.peopleFlowSensor, y endpointType.energyMeter.
Al recibirse un valor acumulado inferior al anterior, la plataforma debe decidir cómo interpretar el nuevo valor. Típicamente, algunos dispositivos pueden enviar un valor inferior si realmente ha habido un consumo “negativo”, por ejemplo:
- Cuando un sensor de flujo es capaz de medir flujo en el sentido contrario al normal.
- Cuando un medidor de energía es capaz de medir energía generada, en lugar de medir únicamente energía consumida.
Sin embargo, muchos otros dispositivos informan un valor inferior al último al ser reiniciados o apagados, porque sólo conservan el valor acumulado en memoria volátil. Al ser reiniciados o apagados, pierden la cuenta acumulada, volviendo ésta a cero.
La propiedad summationAutoResetThreshold puede tomar cualquiera de los siguientes valores:
- null: indica que no se utiliza un umbral para el valor acumulado. Si se recibe un valor inferior al último, se considerará que ha existido un consumo “negativo”.
- 0 (cero): indica que cuando se reciba un valor inferior al último, debe considerarse que el dispositivo ha reiniciado el valor acumulado, porque ha perdido el valor anterior. El nuevo valor es entonces considerado como un valor de consumo positivo.
- Cualquier valor mayor a cero: al recibir un acumulado inferior al último recibido, la plataforma considerará que se ha reiniciado el acumulado sólo si la diferencia entre el valor anterior y el nuevo valor es mayor o igual al umbral indicado. Si la diferencia es menor a este umbral, se considerará que ha ocurrido un consumo negativo.
Se recomienda que para todos los dispositivos que no son capaces de medir flujos negativos, el valor de esta propiedad se establezca en cero.
Ejemplos
Este ejemplo crea un endpoint de tipo sensor genérico, y le asigna el valor cero a la propiedad summationAutoResetThreshold.
var e = endpoints.addEndpoint("1", "My flow sensor", endpointType.flowSensor);
e.summationAutoResetThreshold = 0;### tags (array) La propiedad tags indica el conjunto de tags que se aplica al endpoint. Esta propiedad es un array de strings, cada uno de los cuales indica un tag.
Ejemplos
Este ejemplo crea un endpoint de tipo sensor genérico, y le asigna tres tags correspondientes a los textos "sensor", "generic", y "customer1".
var e = endpoints.addEndpoint("1", "My generic sensor", endpointType.genericSensor);
e.tags = ["sensor", "generic", "customer1"];### requiresElectricalCircuit (boolean)
La propiedad requiresElectricalCircuit indica si el endpoint debe crear automáticamente un circuito eléctrico asociado al registrarse el dispositivo en la plataforma.
Esta propiedad solo aplica a endpoints del tipo **endpointType.voltageSensor**.
Para todos los demás tipos de endpoints, la propiedad se ignora y su comportamiento permanece sin cambios.
El valor predeterminado de esta propiedad es false, lo que significa que no se creará un circuito eléctrico a menos que se indique explícitamente.
Ejemplos
Este ejemplo crea un endpoint de tipo sensor de voltaje y configura la propiedad para que se cree automáticamente un circuito eléctrico en la plataforma:
var voltageSensor = endpoints.addEndpoint("2", "Battery", endpointType.voltageSensor);
voltageSensor.requiresElectricalCircuit = true;Métodos
### addAlert() El método addAlert() permite crear una nueva alerta relacionada con el endpoint. El método devuelve un objeto alert que debe ser configurado con los parámetros correspondientes.
Resultado
El resultado de este método es un objeto alert, que debe ser configurado a través de las siguientes propiedades:
- variableTypeId (int): indica el tipo de variable asociado a la alerta. Debe corresponder a un tipo de variable soportado por el endpoint. Puede utilizarse el identificador de cualquier variable custom, o cualquiera de los tipos de variable predefinidos, siempre que sean soportados por el endpoint. Los valores correspondientes a los tipos de variable predefinidos son los siguientes:
- variableType.temperature (1)
- variableType.humidity (2)
- variableType.lightLevel (3)
- variableType.setPoint (4)
- variableType.volume (5)
- variableType.activeEnergy (6)
- variableType.runTime (7)
- variableType.discreteSensorState (8)
- variableType.dimmerization (9)
- variableType.weight (10)
- variableType.flow (11)
- variableType.voltage (12)
- variableType.current (13)
- variableType.activePower (14)
- variableType.reactivePower (15)
- variableType.apparentPower (16)
- variableType.cosPhi (17)
- variableType.pressure (18)
- variableType.frequency (19)
- variableType.ppmConcentration (20)
- variableType.mvConcentration (21)
- variableType.aqi (22)
- variableType.peopleFlow (23)
- variableType.peopleCount (24)
- variableType.reactiveEnergy (25)
- variableType.apparentEnergy (26)
- variableType.location (27)
- conditionType (enum): indica el tipo de condición que se utiliza para disparar la alerta. Puede ser uno de los valores siguientes:
- conditionType.equal (1): indica que el valor debe ser igual al indicado.
- conditionType.notEqual (2): indica que el valor debe ser distinto del indicado.
- conditionType.greater (3): indica que el valor debe ser mayor al indicado.
- conditionType.greaterOrEqual (4): indica que el valor debe ser mayor o igual al indicado.
- conditionType.lower (5): indica que el valor debe ser menor al indicado.
- conditionType.lowerOrEqual (6): indica que el valor debe ser menor o igual al indicado.
- threshold (double): indica el valor que se utiliza para disparar la alerta, de acuerdo al tipo de condición.
- normalConditionType (enum): indica el tipo de condición que se utiliza para cerrar la alerta. Los valores son los mismos que los del campo conditionType.
- normalThreshold (double): indica el valor que se utiliza para cerrar la alerta, de acuerdo al tipo de condición normal.
- minimumDurationSeconds (int): indica que es necesario que la condición de disparo se mantenga durante un cierto tiempo, especificado en segundos, para que la alerta se dispare. El valor por defecto es cero, indicando que la alerta se dispara inmediatamente.
- severity (enum): indica la severidad de la alerta. Puede ser uno de los valores siguientes:
- alarmSeverity.Information (0): alerta informativa.
- alarmSeverity.low (1): alerta de severidad baja.
- alarmSeverity.medium (2): alerta de severidad media.
- alarmSeverity.high (3): alerta de severidad alta.
- geoZoneId (int): identificador de la geo zona, en caso de que la alerta se refiera al ingreso o egreso de una geo zona.
- notificationEmails (string[]): array de strings indicando las direcciones de email de las personas que deben ser notificadas cuando la alerta se dispara o se cierra. Es posible indicar contactos utilizando la forma “@ab:id” donde “id” indica el identificador del contacto en la libreta de direcciones.
- notificationSmsNumbers (string[]): array de strings indicando los números de teléfono de las personas que deben ser notificadas por SMS cuando la alerta se dispara o se cierra. Es posible indicar contactos utilizando la forma “@ab:id” donde “id” indica el identificador del contacto en la libreta de direcciones.
- notificationVoiceNumbers (string[]): array de strings indicando los números de teléfono de las personas que deben ser notificadas por llamada de voz cuando la alerta se dispara o se cierra. Es posible indicar contactos utilizando la forma “@ab:id” donde “id” indica el identificador del contacto en la libreta de direcciones.
- emailTemplates (object): objeto opcional que indica el template utilizado para email, tanto para la apertura como para el cierre de la alerta.
Permite el uso de variables y tiene las siguientes propiedades:- openSubjectTemplate (string): template a utilizar para el subject para la apertura de la alerta. Si se deja en blanco, o se utiliza el valor null, se utilizará el subject por defecto.
- openTemplate (string): template para la apertura de la alerta. Si se deja en blanco, o se utiliza el valor null, se utilizará el template por defecto.
- closeSubjectTemplate (string): template a utilizar para el subject para el cierre de la alerta. Si se deja en blanco, o se utiliza el valor null, se utilizará el subject por defecto.
- closeTemplate (string): template para el cierre de la alerta. Si se deja en blanco, o se utiliza el valor null, se utilizará el template por defecto.
- smsTemplates (object): objeto opcional que indica el template utilizado para mensajes de texto, tanto para la apertura como para el cierre de la alerta. Tiene las mismas propiedades que el objeto emailTemplates. Las propiedades openSubjectTemplate y closeSubjectTemplate serán ignoradas.
- voiceTemplates (object): objeto opcional que indica el template utilizado para llamadas de voz, tanto para la apertura como para el cierre de la alerta. Tiene las mismas propiedades que el objeto emailTemplates. Las propiedades openSubjectTemplate y closeSubjectTemplate serán ignoradas.
- tags (string[]): array de strings indicando opcionalmente tags para la alerta.
Ejemplo 1
Este ejemplo muestra la creación de una alerta para un endpoint.
var alert = myEndpoint.addAlert();
alert.variableTypeId = variableType.temperature;
alert.conditionType = conditionType.greater;
alert.threshold = 25;
alert.normalConditionType = conditionType.lowerOrEqual;
alert.normalThreshold = 20;
alert.severity = alarmSeverity.medium;
alert.notificationEmails = ['someone@somedomain.com', 'someone_else@somedomain.com'];
alert.tags = ['alert', 'test'];
alert.emailTemplates = [ openTemplate: "correo@email.com", closeTemplate: "correo2@email.com" ];Endpoint configuration collection
El objeto endpoint configuration collection representa una colección de endpoints para los cuales se busca establecer la configuración inicial, típicamente en...
Device UI rules
El objeto device UI rules representa las reglas de interfaz de usuario que se aplican a un dispositivo, típicamente empleado en los scripts de configuración de...