Как передавать данные виртуального компонента через дополнение 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
