KBSA: Cómo transmitir datos de componentes virtuales mediante SH

LoRa Add-on article.png

Descripción general

Esta solución explica cómo transmitir el estado de un componente BT Home / virtual desde un dispositivo Shelly (el emisor) a otro (el receptor) mediante radio LoRa de largo alcance. Al conectar un complemento Shelly LoRa a cada dispositivo Gen 3 / Gen 4, puedes enviar un valor virtual de “open/closed”, “on/off” o numérico hasta 5 km en espacios abiertos, incluso en lugares fuera del alcance de Wi-Fi o BLE.

Un script de Shelly en el emisor supervisa un componente virtual y, cada vez que cambia su valor, cifra el nuevo estado y lo transmite por LoRa.
Un script complementario en el receptor descifra el paquete y actualiza un componente virtual local (o activa cualquier otra lógica que elijas).

Esta configuración permite enviar de forma segura el estado de un componente virtual de un dispositivo Shelly a otro mediante LoRa, simulando la transmisión de datos de sensores, como el estado de una puerta o ventana, mediante un componente virtual personalizado y scripts de Shelly.

Requisitos previos

  • 2× complementos Shelly LoRa (uno para el emisor y otro para el receptor)

  • 2× dispositivos Shelly compatibles con complementos LoRa

Instrucciones paso a paso

1. Crea el componente virtual en el dispositivo emisor

  • Abre la interfaz web local del dispositivo emisor.

  • Ve a Componentes.

  • Crea el componente BTHome / virtual que desees y vincula el sensor de notificación correspondiente.

Ejemplo: si estás simulando un sensor Shelly BLU de puerta/ventana, los estados normalmente serán "open" y "closed".

2. Establece el valor del componente virtual

Usa la siguiente función para establecer el estado del componente virtual:

Virtual.prototype.setValue(new_value);

Consulta la documentación de la API: https://shelly-api-docs.shelly.cloud/gen2/Scripts/ShellyScriptLanguageFeatures/#virtualprototypesetvaluenew_value

3. Instala y modifica el script del emisor

Usa el script disponible aquí:

👉 https://github.com/ALLTERCO/shelly-script-examples/blob/main/lora-encrypted-communication/lora-send-encrypted-msg.js

Modifica el script:

  • Añade un Shelly.addStatusHandler() para supervisar los cambios del sensor.

  • Especifica el ID correcto del componente para realizar un seguimiento preciso de las actualizaciones. Puedes encontrar este ID en la interfaz web local, dentro de los detalles del componente correspondiente.

4. Instala y modifica el script del receptor

Usa el script disponible aquí:

👉 https://github.com/ALLTERCO/shelly-script-examples/blob/main/lora-encrypted-communication/lora-receive-encrypted-msg.js

Edita la siguiente línea del script del receptor para gestionar y registrar el estado del sensor recibido:

console.log("Mensaje recibido: ", decryptedMessage);

Esta salida reflejará el estado actual del componente virtual (por ejemplo, "open" o "closed").


¡Valoramos tus comentarios!

¡Gracias por dedicar tiempo a leer nuestro artículo! ¿Te ha resultado útil o interesante?

Tus comentarios pueden ayudarnos a mejorar. Agradeceríamos cualquier opinión. Si tienes un momento,

compártelo con nosotros en la siguiente dirección de correo electrónico:

Integration@shelly.com


Dispositivos utilizados: