Método HTTP (cadena) de creación de 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 creación de dispositivos virtuales en LUA no funcionará en Home Center Lite.
En esta breve descripción, nos estamos centrando en la creación de dispositivos virtuales virtuales basados ​​en el método de comunicación HTTP con el uso del complemento Firebug para Mozilla Firefox. De esta forma, podemos encontrar todos los comandos enviados por el navegador web a otros dispositivos para sistemas de audio y video, cámaras, etc.

Requisitos   

 

Interfaz de usuario del dispositivo virtual   
    1. Si tenemos todos los requisitos para crear nuestro primer dispositivo virtual, comience con el inicio de sesión en nuestra puerta de enlace de Fibaro como Superusuario.
    2. 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.
    3. 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.
    4. Aparecerá una nueva ventana del dispositivo como se muestra a continuación.

01

Descripción del menú:
• Nombre: el nombre del dispositivo virtual
• Sala: sala a la que se asignará el dispositivo virtual
• Dirección IP: dirección de protocolo de Internet del dispositivo host
• Puerto TCP: Protocolo de control de transmisión del dispositivo host

    1. Luego haga clic en la pestaña “Avanzado” para ver la ventana a continuación.

02

En opciones avanzadas, podemos elegir un conjunto de botones que serán visibles como nuestro Dispositivo Virtual. Después de marcar casillas 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 ícono para 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 la siguiente configuración:

• Etiqueta de botón : mensaje dinámico basado en texto. Se puede utilizar como respuesta dinámica con estados de dispositivos o cualquier otro contenido de texto basado en red.
03

• Botón – Cada botón se puede utilizar como un disparador de la escena o como un disparador para enviar el comando de cadena.
04

• Control deslizante : se puede usar para el cambio dinámico de parámetros.
05

• Etiqueta : define la descripción del botón específico (p. Ej., ENCENDIDO, APAGADO). Ese texto será visible en la interfaz de VD.
06

• ID : define una ID única para usar en escenas LUA o escenas en bloque.
07

• Vacío : permite ocultar un botón en particular.
08

• Principal : botón particular será visible en la pestaña Tu casa.
09

• 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 termina la ejecución del código del bucle principal. Las variables que se definen en el ciclo principal no se pueden reutilizar en los botones.
10

• Depuración : opción en el bucle principal o botón para ejecutar el código.
11

• Cambiar icono : opción de cargar el icono propio que será visible después de presionar este botón. Un icono debe tener 128 × 128 píxeles, con fondo transparente.
12

 

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 el código para cada botón. Comience abriendo el navegador web con el complemento Firebug y regístrese como Superusuario en nuestro portal Fibaro. Gracias a Firebug podremos ver qué comandos envía el controlador, luego los copiaremos y pegaremos en nuestro código para dispositivos virtuales.

    1. El ícono de Firebug se coloca en la esquina superior derecha. Haz clic para comenzar.

13

    1. Para saber qué comandos envía el controlador, abra la pestaña “Consola” , luego “Persistir” y “Todos” . Recuerde también limpiar la consola de datos no deseados haciendo clic en el botón “Borrar” .

14

    1. 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 “ON” en la interfaz de Fibaro Wall Plug. Haga clic en “Borrar” en la consola de Firebug antes de hacer clic en el Enchufe de pared de Fibaro para borrar la información no deseada.

15

    1. Después de encender el Enchufe de pared de Fibaro a través de la interfaz web, vemos algunos comandos que aparecen en la consola de Firebug. Es fácil encontrar el código apropiado. Apunte con el mouse hacia la línea y use el botón derecho para copiar. Entonces puedes pegarlo en cualquier lugar. En nuestro caso, el comando es: http://10.1.6.210/api/devices/1513/action/turnOn

dieciséis

    1. Antes de pasar al siguiente paso, es conveniente verificar si el comando envía argumentos adicionales. Para hacerlo, debe abrirse una lista desplegable después de hacer clic en una de las líneas de comando. Si en el comando “Publicar” en “Fuente” aparece “{” args “: []}”, entonces no hay argumentos para enviar. De lo contrario, todo lo que se encuentre en “Fuente” también debe copiarse.

17

    1. Ya hemos enviado un comando principal para encender nuestro Enchufe de pared. Ahora es el momento de crear un código que se activará al hacer clic en nuestro dispositivo virtual. En este caso, solo tendremos un botón en nuestro dispositivo virtual. Después de que establezcamos ese botón, en las opciones avanzadas deberíamos ver la ventana como se muestra a continuación.

25

Descripción de las etiquetas:
• Etiqueta: nombre de un botón; se mostrará en un botón
• ID: nombre de programación para el botón creado; la ID predeterminada aparecerá después de hacer el botón
• Cadena para enviar: un cuadro donde escribimos el código
• Código de 
 cadena / LUA: opción de cambiar el lenguaje de programación

    1. Ahora crearemos un cuerpo de código. Fibaro Home Center entiende el envío de código de cadena por cierto patrón.

La primera parte del código debe incluir una de tres operaciones :
• GET: generalmente se usa para tomar el estado / valores del dispositivo
• PUT: se usa para modificar valores
• POST: se usa para cambiar el estado / crear nuevos datos

A continuación, tendremos la dirección IP del host al que se enviará el comando. En nuestro caso, será la dirección IP de la puerta de enlace.

La última parte es la autorización de credenciales, que en este caso será el inicio de sesión y la contraseña codificada en el código base64. Para convertir apropiadamente los datos de inicio de sesión y contraseña de Superusuario a la cadena, deberíamos usar el codificador adecuado: http://www.motobit.com/util/base64/encoder .

El siguiente ejemplo muestra cómo “login: admin, password: admin” se convierte en cadena después de usar la opción “Convertir los datos de origen”.

19

Una salida (YWRtaW46YWRtaW4NCg ==) debe pegarse después del comando “Básico” en el Dispositivo Virtual.

Como resumen, el patrón de código en este caso debe verse como a continuación:
Command (GET, PUT, POST) command address without IP address HTTP/1.1
Host: IP address of Home Center
Authorization: Basic your Super User credentials login:password converted to string (see below) empty line
optional parameters to send

    1. De acuerdo con el patrón, nuestro código y ventana general deberían verse a continuación. Tenga en cuenta que si envía comandos a la API de Fibaro, la dirección IP y el puerto deben tener los números que se detallan a continuación. Si crea un dispositivo virtual para otro dispositivo, entonces la dirección IP debe tener el número de ese dispositivo en la red LAN. Lo mismo con el puerto TCP.

20

21

Después de guardar los cambios (botón de guardar en el panel derecho) podemos probar el dispositivo virtual. Si todo funciona correctamente, el Dispositivo Virtual debería enviar comandos exactos como los que se envían mediante el uso de la interfaz del navegador web. Además, ahora se puede usar como actor en escenas de bloques en Home Center.

 

Consejos para usar el lenguaje LUA en dispositivos virtuales   

 

Introducción   

Esta guía está dedicada a escribir dispositivos virtuales utilizando secuencias de comandos 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 puedes construir algoritmos avanzados para tus integraciones. Puede encontrar más información sobre LUA en http://developer.fibaro.com.

 

Requisitos   
  • Home Center 2 gateway,

 

Escritura de código   

Dentro de comenzar con 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 las escenas

fibaro:call(10, "pressButton",1)

10 – ID de dispositivo virtual
1 – botón de ID de dispositivo virtual

• Ejecución de solicitudes

En las opciones avanzadas de un dispositivo virtual, puede definir una dirección IP y un puerto de dispositivo en la red LAN a los que se enviarán los comandos. Al colocar el código debajo del bucle principal, botón o etiqueta, puede consultar la dirección IP y el 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 POSTAR, OBTENER, PONER utilizando el comando FIBARO que ya definió IP y Puerto de host. Entonces, por ejemplo, el código para enviar comandos a host se verá a continuación:

response = FIBARO:GET(setPower?power=on),

• Mostrando registro

fibaro:log(Standby')con

Este comando mostrará el mensaje “Espera principal” 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 de “Espera” en la etiqueta1

Deja una respuesta

Tu dirección de correo electrónico no será publicada.