Перейти к содержанию

Как передавать данные виртуального компонента через дополнение Shelly LoRa

Материал из База знаний Shelly
Версия от 13:07, 11 марта 2026; imported>Unknown user
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Обзор

[править]

Это решение объясняет, как передавать состояние BT Home / Виртуального компонента

с одного устройства Shelly (передатчика)

Sender ) на другое (приемника) Receiver ) по радиосвязи LoRa дальнего действия. Подключив Shelly LoRa Add-on к каждому устройству Gen 3 / Gen 4, вы можете передавать виртуальное состояние «открыто/закрыто», «вкл/выкл» или числовое значение на расстояние до 5 км в открытом пространстве, даже там, где Wi-Fi или BLE недоступны. Скрипт Shelly на передатчике отслеживает виртуальный компонент и, всякий раз, когда его значение изменяется, шифрует новое состояние и передает его по LoRa.

Сопутствующий скрипт на приемнике расшифровывает пакет и обновляет локальный виртуальный компонент (или запускает любую другую логику по вашему выбору).

Эта настройка позволяет безопасно передавать состояние виртуального компонента с одного устройства Shelly на другое по LoRa, имитируя передачу данных с датчиков, таких как состояние двери/окна, с помощью пользовательского виртуального компонента и скриптов Shelly.

Предварительные условия

[править]
  • 2 дополнения Shelly LoRa (одно для отправителя, одно для получателя)
  • 2 устройства Shelly, поддерживающие дополнения LoRa

Пошаговая инструкция

[править]

1. Создайте виртуальный компонент на устройстве отправителя

[править]
  • Откройте локальный веб-интерфейс устройства отправителя.
  • Перейдите в раздел «Компоненты».
  • Создайте нужный компонент BTHome/виртуальный компонент и подключите соответствующий датчик.

Пример: Если вы имитируете датчик двери/окна Shelly BLU, состояния обычно будут «открыто» и «закрыто».

2. Установка значения виртуального компонента

[править]

Используйте следующую функцию для установки состояния виртуального компонента: Virtual.prototype.setValue(new_value);

См. документацию API: https://shelly-api-docs.shelly.cloud/gen2/Scripts/ShellyScriptLanguageFeatures/#virtualprototypesetvaluenew_value

3. Установка и изменение скрипта отправителя

[править]

Используйте скрипт, доступный здесь: 👉 [1] [2]

Измените скрипт:

  • Добавьте Shelly.addStatusHandler() для отслеживания изменений от датчика.
  • Укажите правильный ID компонента для точного отслеживания обновлений. Этот ID можно найти в локальном веб-интерфейсе в подробных сведениях о соответствующем компоненте.

4. Установка и изменение скрипта приемника

[править]

Используйте скрипт, доступный здесь: 👉 https://github.com/ALLTERCO/shelly-script-examples/blob/main/lora-encrypted-communication/lora-receive-encrypted-msg.js

Отредактируйте следующую строку в скрипте приемника, чтобы обрабатывать и записывать в лог полученное состояние датчика: console.log("Сообщение получено: ", decryptedMessage); Этот вывод будет отражать текущее состояние виртуального компонента (например, "открыто" или "закрыто").

Мы ценим ваши отзывы!

[править]

Спасибо, что уделили время прочтению нашей статьи! Была ли она полезной или интересной?

Ваши замечания помогут нам улучшить нашу работу. Мы будем благодарны за любые отзывы. Если у вас есть минутка, пожалуйста, поделитесь ими с нами по следующему адресу электронной почты: Integration@shelly.com

Используемые устройства:

[править]
  • Дополнение Shelly LoRa