Método HTTP (cadena) para crear dispositivos virtuales
Introducción
Los dispositivos virtuales pueden usar la codificación LUA o el método HTTP (cadena) para interactuar con dispositivos inteligentes en su red local. Vale la pena mencionar que el lenguaje LUA solo está disponible en Fibaro Home Center 2, por lo que la compilación de dispositivos virtuales en LUA no funcionará en Home Center Lite.
En esta breve descripción, nos enfocaremos en crear un dispositivo virtual universal basado en el método de comunicación HTTP con el uso del complemento Firebug para Mozilla Firefox. De esta manera, podemos encontrar todos los comandos enviados por el navegador web a otros dispositivos para sistemas de audio y video, cámaras, etc.
Requisitos
- Puerta de enlace Home Center Lite o Home Center 2,
- Navegador Mozilla Firefox,
- Complemento de Firefox – Firebug – https://addons.mozilla.org/pl/firefox/addon/firebug/ .
Interfaz de usuario del dispositivo virtual
- Si todos hemos requerido crear nuestro primer dispositivo virtual, comience iniciando sesión en nuestra puerta de enlace de Fibaro como un superusuario.
- Haga clic en la pestaña “Dispositivos” en el panel superior y luego en el botón “Agregar o quitar dispositivo” en la barra lateral izquierda.
- Veremos un menú desde el cual podemos agregar el dispositivo virtual o subirlo al archivo. Haga clic en el botón “Agregar” en la sección Dispositivo virtual.
- Aparecerá una nueva ventana de dispositivo como se muestra a continuación.
- Luego haga clic en la pestaña “Avanzado” para ver la ventana a continuación.
En las opciones avanzadas, podemos elegir un conjunto de botones que serán visibles como nuestro dispositivo virtual. Después de marcar los cuadros de botones, haga clic en el icono “Guardar” en el lado derecho.
Pocas características de la interfaz de usuario:
• Podemos mover hacia arriba y hacia abajo cada conjunto de botones y en cualquier momento agregar el siguiente.
• Cada clic en el botón activará la compilación del código que se le asigna.
• El nombre de cada botón se puede cambiar en cualquier momento.
• Podemos cambiar el icono de cada botón, que será visible en la interfaz de VD.
Después de configurar la composición adecuada de los botones, agregue la configuración adecuada para botones específicos. Cada botón se puede configurar por separado. Además, cada botón se puede configurar con las siguientes configuraciones:
• Etiqueta de botón : mensaje dinámico basado en texto. Se puede utilizar como retroalimentación dinámica con estados de dispositivos o cualquier otro contenido de texto basado en la red.
• Botón : cada botón se puede usar como activador de la escena o como activador del envío del comando de cadena.
• Control deslizante : se puede utilizar para el cambio dinámico de parámetros.
• Etiqueta : define la descripción del botón específico (p. Ej., ENCENDIDO, APAGADO). Ese texto será visible en la interfaz de VD.
• ID : define una identificación única para usar en escenas LUA o escenas de bloque.
• Vacío : permite ocultar un botón en particular.
• Principal : un botón en particular estará visible en la pestaña Tu casa.
• Bucle principal : como dice la descripción, cualquier código escrito aquí se ejecutará continuamente en un bucle. Vale la pena mencionar el comando fibaro: sleep que finaliza la ejecución del código del bucle principal. Las variables que se definen en el bucle principal no se pueden reutilizar en los botones.
• Depuración : opción en el bucle principal o botón para ejecutar el código.
• Cambiar icono : opción de cargar su propio icono que será visible después de presionar este botón. Un icono debe tener 128 × 128 píxeles, con fondo transparente.
Crear código detrás de la interfaz de usuario
Sabemos cómo configurar botones en nuestro dispositivo virtual, así que ahora es el momento de escribir código para cada botón. Comience abriendo el navegador web con el complemento Firebug e inicie sesión como Super Usuario en nuestra puerta de enlace de Fibaro. Gracias a Firebug podremos ver qué comandos envía el controlador, luego los copiaremos y pegaremos en nuestro código para dispositivos virtuales.
- El icono de Firebug se coloca en la esquina superior derecha. Haz clic para comenzar.
- Para averiguar qué comandos envía el controlador, abra la pestaña “Consola” , luego “Persistir” y “Todos” . También recuerde limpiar la consola de los datos no deseados haciendo clic en el botón “Borrar” .
- Ahora tenemos todo resuelto para generar código para nuestro dispositivo virtual. Como primer ejemplo, queremos ver qué código se envía después de hacer clic en “ENCENDIDO” en la interfaz de Fibaro Wall Plug. Haga clic en “Borrar” en la consola Firebug antes de hacer clic en Fibaro Wall Plug para borrar la información no deseada.
- Después de encender Fibaro Wall Plug a través de la interfaz web, vemos que aparecen pocos comandos en la consola de Firebug. Es fácil encontrar el código apropiado. Apunte el mouse hacia la línea y use el botón derecho para copiar. Luego puedes pegarlo en cualquier lugar. En nuestro caso, el comando es: http://10.1.6.210/api/devices/1513/action/turnOn
- Antes de pasar al siguiente paso, es aconsejable verificar si el comando envía argumentos adicionales. Para hacerlo, se debe abrir una lista desplegable después de hacer clic en la línea de comando. Si en el comando “Publicar” debajo de “Fuente” aparece “{” args “: []}”, entonces no hay argumentos para enviar. De lo contrario, todo lo que se encuentra debajo de “Fuente” también debe copiarse.
- Ya tenemos el comando principal enviar para encender nuestro Wall Plug. Ahora es el momento de crear código que se activará haciendo clic en nuestro Dispositivo virtual. En este caso, solo tendremos un botón en nuestro dispositivo virtual. Después de configurar ese botón, en las opciones avanzadas deberíamos ver la ventana como se muestra a continuación.
- Ahora crearemos un cuerpo de código. Fibaro Home Center comprende el código de cadena enviado por cierto patrón.
- De acuerdo con el patrón, nuestro código y la ventana general deberían verse a continuación. Tenga en cuenta que si envía algún comando a la API de Fibaro, la dirección IP y el puerto deben tener los números que se muestran a continuación. Si crea un dispositivo virtual para otro dispositivo, la dirección IP debe tener el número de ese dispositivo en la red LAN. Lo mismo con el puerto TCP.
Consejos para usar el lenguaje LUA en dispositivos virtuales
Introducción
Esta guía está dedicada a escribir dispositivos virtuales utilizando scripts LUA. Tenga en cuenta que este tipo de dispositivos virtuales está limitado a Fibaro Home Center 2 (no funcionará con Fibaro Home Center Lite).
Con el lenguaje de programación LUA puede construir algoritmos avanzados para sus integraciones. Puede encontrar más información sobre LUA en http://developer.fibaro.com.
Requisitos
- Puerta de entrada de Home Center 2,
Escritura de código
En el comienzo de esta sección, se le guiará a través de algunos conceptos básicos de LUA y su uso con dispositivos virtuales.
• Presionando el botón del dispositivo virtual en escenas
fibaro:call(10, "pressButton",1)
10 – ID de dispositivo virtual
1 – botón de ID de dispositivo virtual
• Ejecutar solicitudes
En las opciones avanzadas de un dispositivo virtual, puede definir una dirección IP y un puerto del dispositivo en la red LAN a la que se enviarán los comandos. Al colocar el siguiente código en un bucle principal, botón o etiqueta, puede hacer referencia a esa dirección IP y puerto definidos.
local device = fibaro:getSelfId();
local ipaddress = fibaro:getValue(device, "IPAddress");
local port = fibaro:getValue(device, "TCPPort");
FIBARO = Net.FHttp(ipaddress, port)
Si tenemos el código anterior como encabezado, ahora podemos POST, GET, PUT usando el comando FIBARO que ya ha definido la IP y el Puerto del Host. Entonces, por ejemplo, el código para enviar el comando al host se verá a continuación:
response = FIBARO:GET(setPower?power=on),
• Mostrando registro
fibaro:log('Standby')
Este comando mostrará el mensaje ‘Main Standby’ en el icono del dispositivo virtual cuando se activó el botón definido
• Mostrar un valor de texto en una etiqueta VD
fibaro:call(selfId, "setProperty", "ui.label1.value", "Standby")
Este comando mostrará el valor “En espera” en la etiqueta1