La store eedomus

De eedomus - Documentación

La Store eedomus es un espacio donde la comunidad eedomus puede compartir desarrollos.

Cualquier usuario puede proponer un "objeto conectado" diseñado en base a llamadas HTTP, scripts eedomus e iconos personalizados, con vistas a su publicación en la store.

Puede consultar la lista actual de los periféricos disponibles en la Store eedomus.

Contenido

¿Cómo añadir en eedomus un periférico disponible en la Store eedomus?

Identifíquese en el portal eeedomus, vaya a Configuración / Añadir o eliminar un periférico / Store eedomus y finalmente haga clic en el periférico que quiera añadir para obtener más información.

Puede descargar las fuentes del periférico si desea saber cómo está diseñado, o aportarle mejoras y proponerlo de nuevo con vistas a su publicación en la Store en su versión mejorada, o incluso inspirarse en él para crear su propio periférico y ofrecerlo en la Store para su publicación.

En algunos casos se ofrece un enlace a un hilo del foro oficial eedomus donde la comunidad eedomus intercambia opiniones sobre este periférico en concreto.

Finalmente, pulse en Crear para añadir el periférico a su controlador eedomus.

¿Cómo crear un periférico para la Store eedomus?

Estructura de un periférico de la Store eedomus

Un periférico de la store eedomus se compone de varios elementos:

  • 1 archivo JSON denominado eedomus_plugin.json en el que se describen los periféricos que se van a crear.
  • 0 o varios scripts PHP eedomus.
  • 0 o varias imágenes en formato PNG 128x128 en el subdirectorio /img

Ejemplo de structura del periférico Cumpleaños:

eedomus_plugin.json

Es el archivo principal, el que contiene la descripción de su periférico.

El nombre de este archivo debe ser necesariamente eedomus_plugin.json

Ejemplo de archivo eedomus_plugin.json para la gestión de cumpleaños:

Es posible crear actuadores HTTP y periféricos de múltiples "canales". Para ello, puede inspirarse en los scripts Smarter Coffee o Alertas meteorológicas.

Para asegurarse de que el contenido de su archivo JSON es válido, puede usar una herramienta online como ésta: https://jsonlint.com/

Estructura del archivo JSON

parameters

Esta sección describe los parámetros del formulario que parece en pantalla al crear el periférico.

parameter

Nombre del parámetro. Debe ser único y se puede usar después mediante plugin.parameter.xxx

description

Texto que aparece a la izquierda del parámetro.

default_value

Valor por defecto ya introducido en el campo.

xtype

Tipo de campo: textfield, numberfield, combo, displayfield, checkbox

field

Configuración del contenido del campo. Ejemplo: with:400, allowBlank:false

Ejemplo de uso de expresiones regulares en un "textfield"

{
 "parameter": "MAC",
 "description": "Dirección Mac del equipo",
 "xtype": "textfield",
 "default_value": "",
 "field": "allowBlank: false , maskRe:/[0-9A-Da-d:]/, maxLength:17, minLength:17, width: 250,
 regex:/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/, regexText:'Adresse MAC invalide, format AA:AA:AA:AA:AA:AA'"
}

Ejemplo de uso de un "numberfield"

{
 "parameter": "PORT",
 "description": "Puerto HTTP",
 "xtype": "numberfield",
 "default_value": "80",
 "field": "minValue:0, allowDecimals:false, width:60, allowBlank:false"
},

Detalle para la creación de listas (Combo)

Nuevo: Ahora se pueden crear listas con valores predefinidos. Ejemplo:

{
 "parameter": "ZONE_EJP",
 "description": "Zona EJP",
 "xtype": "combo",
 "field": "width:200, allowBlank:false, store:[['nord', 'Nord'], ['ouest', 'Ouest'], ['paca', 'PACA'], ['sud', 'Sud']], triggerAction: 'all'"
}

Si quiere que aparezcan todos los periféricos debe usar /json/list_all.php

Esta lista se puede acotar con parámetros que se pueden añadir en la URL.

Ejemplo de parámetros

value_type=float
value_type=list
filter_unit=W,kW
actuator_only=1
sensor_only=1

devices

Tabla con los periféricos que se deben crear.

device_id

Identificador único del periférico, con letras y cifras en minúsculas.

parent_id

Identificador padre del periférico. Permite vincular distintos periféricos entre sí para que sea más fácil gestionarlos creando un "canal"

module_id

Tipo de periférico que se debe crear
11 estado genérico
51 sensor HTTP
41 actuador HTTP
31 geolocalización

name

Nombre del periférico. Con plugin.name podrá usar el nombre introducido por el usuario al crear el periférico.

Nuevo: Los campos create y enable, que pueden tener el valor 0 o 1 o el valor de plugin.parameters.xxx, permiten crear o activar únicamente los canales deseados para un periférico.

Se puede invertir el valor con el carácter "!". Ejemplo: !plugin.parameters.xxx

De esta forma puede añadir un parámetro de tipo combo cuyo valor servirá para crear/visualizar o no un canal opcional del periférico.

create

1 o 0. Crea o no el periférico

enable

1 o 0. El periférico se crea pero se puede activar o no (cuando el periférico está desactivado, no aparece)

rules

Nuevo: Ahora se pueden crear automáticamente reglas desde el JSON (puede ver un ejemplo en el script denominado Doble detección).

Ejemplo:

"rules": [
     {
       "name_fr": "plugin.name - Sincro Detector 1 - plugin.parameters.NAME1",
       "criterias":
       [
         { "device_id": "plugin.parameters.API1", "type": "c" }
       ],
       "actions":
       [
         { "device_id": "plugin.devices.detect1", "type": "other", "action": "plugin.parameters.API1"}
       ]
     }
   ]

name_fr

Nombre de la regla. Puede contener tags de tipo plugin.name o plugin.parameters.xxx

criterias

Tabla con los criterios de las reglas. Puede contener 0 a N valores (0 valor para una regla de tipo CRON, se implementará en el futuro).
device_id
Códido API del periférico. Entero o plugin.parameters.xxx
type
e está
t ahora es
u se vuelve
d ahora se vuelve
a no ha
c cambia de valor
i fue
criteria
== igual a
< de menos de
> mayor que
! es diferente de
M== igual al periférico
M< inferior al periférico
M> mayor que el periférico
M! es diferente del periférico
ch cambiado desde
hb contactado con el servidor desde
g< de menos de
g> mayor que
macro en curso de macro
macr! no en curso de macro
target
Valor objetivo o código API del periférico. Entero o plugin.parameters.xxx
operation
AND Y (por defecto si no está indicado en el JSON)
OR o

actions

Tabla con las acciones que se deben ejecutar cuando los criterios se cumplen. Puede contener 1 a N valores.
device_id
Códido API del periférico. Entero o plugin.parameters.xxx
type
direct Acción directa (ejemplo: 0 para Off)
macro Ejecutar una macro
other El periférico toma el valor de otro periférico
action
Valor objetivo o código API del periférico o código API de la macro. Entero o plugin.parameters.xxx

Script(s)

Su periférico puede llamar a varios scripts eedomus o a ninguno.

Consulte la documentación relativa a los scripts para saber cómo crearlos o inspírese en los periféricos ya disponibles en la Store descargando las fuentes correspondientes.

Imágenes

Las imágenes referenciadas en eedomus_plugin.json pueden ser imágenes a las que tiene acceso cualquier usuario de eedomus (en el navegador, haga clic con el botón derecho en Copiar la dirección de la imagen y conserve únicamente el nombre que va después de "/").

Ejemplo para:

El enlace original es https://secure.eedomus.com/img/mdm/01/smoke_ok.png''. En '''eedomus_plugin.json' la imagen será smoke_ok.png

También es posible cargar imágenes en el directorio /img del zip. En ese caso, basta con referenciarlas en eedomus_plugin.json por su nombre.

¿Cómo proponer un script con vistas a su publicación en la Store?

En la store eedomus, haga clic en el enlace Publicar en la store (arriba a la derecha).

Luego haga clic en Examinar y elija el archivo con extensión .zip que contiene su periférico. Finalmente, haga clic en Enviar.

El script estará disponible inmediatamente en modo Privado para el usuario, por lo que puede usarlo para sus propias necesidades.

Después puede proponer el script con vistas a su publicación haciendo clic en Publicar.

El equipo de eedomus revisará su solicitud de publicación lo antes posible y le informará por mail de la publicación de su script. Si el script no se puede publicar tal cual, el equipo de eedomus se pondrá en contacto con usted por mail para discutir sobre los ajustes necesarios.

Una vez publicado, las modificaciones posteriores del script (correcciones de errores, mejoras) ya no necesitarán validación por parte del equipo de eedomus ya que usted es el autor original del script.

En otras palabras, puede corregir o mejorar sin problema cualquier script del que usted no sea el autor, pero en ese caso se requiere una validación previa por motivos de seguridad.