Как передавать данные виртуального компонента через дополнение Shelly LoRa
Обзор
[править]Это решение объясняет, как передавать состояние 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
