TESLiOT BLE Sensors: различия между версиями

Материал из Wiren Board
(не показана 21 промежуточная версия 2 участников)
Строка 1: Строка 1:
{{DISPLAYTITLE: Использование BLE-датчиков TESLiOT с контроллером Wiren Board}}
{{DISPLAYTITLE: Использование BLE-датчиков TESLiOT с контроллером Wiren Board}}
== Общая информация ==
== Общая информация ==
[[Image: Tesliot sensor.jpg |300px|thumb|right| Пример представления устройства TESLiOT в интерфейсе]]
Беспроводные датчики TESLiOT имеют на борту разнообразные датчики состояния среды и имеют заявленный батарейное питание со сроком работы от батареи от 6 месяцев до трёх лет в зависимости от типа.  
Беспроводные датчики [https://tesla-smart.ru/ TESLiOT] имеют на борту разнообразные сенсоры состояния среды и имеют батарейное питание с заявленным сроком работы от батареи от шести месяцев до пяти лет в зависимости от типа и ёмкости элементов питания в датчиках.


Протокол поддерживает следующие типы данных:
Протокол подразумевает возможность получать следующие данные как:
* напряжение питания датчика;
* Напряжение питания датчика
* факт удара;
* Факт удара
* ускорения по осям X, Y и Z;
* Ускорения по осям X, Y и Z
* интенсивность магнитного поля;
* Интенсивность магнитного поля
* освещённость;
* Освещённость
* влажность;
* Влажность
* температура;
* Температура
* метка времени в момент передачи данных.
* Метка времени в момент передачи данных


== Подключение к контроллеру Wiren Board ==
== Подключение к контроллеру Wiren Board==
Датчики TESLiOT отправляют в эфир широковещательные сообщения по каналу BLE, которые контроллер [[Wiren Board]] может получать и обрабатывать. Делает он это с помощью драйвера [https://github.com/wirenboard/wb-ble-tesliot wb-ble-tesliot], который периодически запускает скрипт сканирования сети и получает свежие данные с датчиков.
Датчики TESLiOT подключаются к контроллерам Wirenboard по каналу BLE посредством широковещания параметров GAP Advertising.
Со стороны контроллера движок правил [wb-rules] периодически запускает скрипт сканирования сети, от которого получает свежие данные с датчиков.


== Установка и настройка ==
Чтобы получать данные с датчиков, нужно проделать следующее:
{{SupportedSinceRelease
* Загрузить на контроллер [https://github.com/wirenboard/wb-ble-tesliot/blob/main/tesliot.sh скрипт сканирования BLE], например в <code>/mnt/data/root/</code>
| release = wb-2304
* Назначить его исполняемым: <code>chmod +x /mnt/data/root/tesliot.sh</code>
|content=
* Загрузить на контроллер правило, запускающее этот скрипт [https://github.com/wirenboard/wb-ble-tesliot/blob/main/tesliot-example.js пример для двух датчиков в том же репозитории]
Для работы с TESLiOT нужно установить и настроить драйвер:
# Подключитесь к контроллеру по [[SSH]].
# Установите драйвер <code>wb-ble-tesliot</code>:
#:<syntaxhighlight lang="bash">
apt update && apt install wb-ble-tesliot
</syntaxhighlight>
# Заполните массив датчиков в файле <code>/etc/wb-ble-tesliot.conf</code>:
#*Откройте файл для редактирования:
#*:<syntaxhighlight lang="bash">
nano /etc/wb-ble-tesliot.conf
</syntaxhighlight>
#*Впишите mac-адрес датчиков, а также идентификатор и имя создаваемого устройства <syntaxhighlight lang="json">
{"config":
  [
      {
        "dev_id":"tesliot_1", // устройство будет доступно по топику /devices/tesliot_1
        "title":"TESLiOT Test Sensor 1", // видимое имя устройства
        "mac":"FF:FF:FF:FF:FF:FF" // mac-адрес устройства
      },
      {
        "dev_id":"tesliot_2",
        "title":"TESLiOT Test Sensor 2",
        "mac":"FE:FE:FE:FE:FE:FE"
      }
  ]
}
</syntaxhighlight>
#* Сохраните изменения и закройте редактор клавишами <kbd>Ctrl</kbd>+<kbd>O</kbd> и <kbd>Ctrl</kbd>+<kbd>X</kbd>.
# Чтобы изменения вступили в силу, перезапустите wb-rules:
#:<syntaxhighlight lang="bash">
systemctl restart wb-rules
</syntaxhighlight>
 
Теперь датчики должны появиться в веб-интерфейсе контроллера на вкладке '''Устройства'''. Дальше вы можете использовать их в скриптах автоматизации, при создании дашбордов или отправлять данные в систему верхнего уровня.


}}
В скрипте заполнить массив датчиков, указав их mac-адреса (<code>mac</code>), желаемые названия mqtt-топиков (<code>dev_id</code>) и заголовки виртуальных устройств (<code>title</code>), например:


== Удаление драйвера ==
<syntaxhighlight lang="ecmascript">
Чтобы удалить драйвер, выполните команды:
dev_id : "tesliot_temp_hum_sensor_1",
<syntaxhighlight lang="bash">
  title : "TESLiOT Sensor (temperature and humidity)",
apt purge wb-ble-tesliot && systemctl restart wb-rules
mac : "C0:00:0D:92:9E:59"}
</syntaxhighlight>
</syntaxhighlight>
Карточки датчиков на вкладке '''Устройства''' должны удалиться автоматически.


== Полезные ссылки ==
Результат должен выглядеть так:
* [https://github.com/wirenboard/wb-ble-tesliot Исходные коды драйвера wb-ble-tesliot]
[[Image: Tesliot sensor.jpg |300px|thumb|left| Пример представления устройства TESLiOT в интерфейсе]]
* [https://tesla-smart.ru/ Сайт компании TESLiOT]

Версия 21:00, 30 ноября 2022

Общая информация

Беспроводные датчики TESLiOT имеют на борту разнообразные датчики состояния среды и имеют заявленный батарейное питание со сроком работы от батареи от 6 месяцев до трёх лет в зависимости от типа.

Протокол подразумевает возможность получать следующие данные как:

  • Напряжение питания датчика
  • Факт удара
  • Ускорения по осям X, Y и Z
  • Интенсивность магнитного поля
  • Освещённость
  • Влажность
  • Температура
  • Метка времени в момент передачи данных

Подключение к контроллеру Wiren Board

Датчики TESLiOT подключаются к контроллерам Wirenboard по каналу BLE посредством широковещания параметров GAP Advertising. Со стороны контроллера движок правил [wb-rules] периодически запускает скрипт сканирования сети, от которого получает свежие данные с датчиков.

Чтобы получать данные с датчиков, нужно проделать следующее:

В скрипте заполнить массив датчиков, указав их mac-адреса (mac), желаемые названия mqtt-топиков (dev_id) и заголовки виртуальных устройств (title), например:

dev_id : "tesliot_temp_hum_sensor_1",
  title : "TESLiOT Sensor (temperature and humidity)",
mac : "C0:00:0D:92:9E:59"}

Результат должен выглядеть так:

Пример представления устройства TESLiOT в интерфейсе