Device to Device(D2D) (обновлено: 30 Mar 2021, 14:48:06)

Обмен данными и управление между модулями по собственному протоколу wifi-iot с возможностью шифрования AES-128. Передача данных датчиков на сразу все модули в сети. Продвинутая замена устаревших опций Virtual sensors и Virtual GPIO.

Практически не требуется настройка опции: Автоматическое добавление найденных устройств в сети, автоматическое определение типа метрики принятых датчиков. Управление удаленными GPIO/PWM.


Опция основана на протоколе UDP и по этому надежная доставка информации не гарантирована ! Интервал отправки 20 секунд и по событию INPUT EVENT..

Доступ из систем модуля

Вывод данных в текстовых опциях (конструктор строк и прочие):

GPIO - стандартно _GPIOx_, где номер берем со вкладки MAP GPIO колонка local. Аналогично и с pwm.


Датчики - _D2Dxxyy_, где xx - двухзначное число номера устройства, yy - двухзначный номер метрики на устройстве.


Пример: _D2D0202_ - это D2D 2   2: Humidity: 68.0 %

 

Interpreter

Чтение/управление GPIO удаленных модулей - стандартно через функции gpioset и gpioget.

До 6.02.21: Чтение датчиков через переменную  d2d[x][y], где x - номер устройства считая от нуля, y - номер метрики на устройстве считая от нуля.

После 6.02.21: Чтение датчиков через переменную   d2dYYXX , где ХХ - номер метрики считая от 1, YY - номер устройства считая от 1

Переменные, имеющие несколько знаков после запятой соответственно тут умножены на 10,100 или 1000 до целого числа.

Narodmon.ru

Все данные датчиков и состояние GPIO/PWM передаются на сервер - только в Pro режиме. Доступно управление GPIO/PWM. 

Другие системы модуля

На данный момент выбор датчиков в устаревшей опции Logic не доступен!

Вывод данных на другие сервисы не предусмотрен.

Метрики доступны на всех дисплеях, а так же в опциях Logic2, Термостат, ПИД.

Настройка опции

Для более надежной работы опции рекомендуется на RTOS прошивках настроить опцию Power saving в режим none и перезагрузить устройство!

В шестеренке включаются:



Передача данных - требуется для отправки другим модулям данных с датчиков и состояния GPIO/PWM, на которых включена опция приема данных D2D.

Прием данных - требуется для приема данных с других модулей датчиков и состояния/управления GPIO/PWM , на которых включена опция передачи данных D2D.

Опции могут использоваться одновременно на одном модуле. По умолчанию включены обе.

Там же можно указать максимальное возможное количество принимаемых модулей для приема данных. Чем больше их количество задано, тем меньше на каждый модуль будет доступных GPIO в GPIO MAP!

Шифрование - Опция по умолчанию выключена. Используется алгоритм AES-128. В ESP32/ESP32S2 он аппаратный. Алгоритм шифрования закрыт.

Ключ на данный момент один на всех, но с возможностью в будущем его менять пользователю. Требуется включать шифрование сразу на всех модулях в сети. Хотя прием не шифрованных данных на модуле на данный момент допускается.


В веб модуля настраивается:

Настройка передающего модуля - не требуется (Устройство передает все данные с включенных опций модуля).

Настройка принимающего модуля - (Страница настройки опции ниже:)


Enable auto added device -найденные модули автоматически добавляются в список ниже в первое пустое поле. Можно добавить имя удаленного модуля и вручную. В сети не должны быть устройства с одинаковым именами!

Size map step GPIO/PWM - установка задает максимальное количество GPIO/PWM зарезервированных на локальном модуле на каждый удаленный модуль, большой шаг уменьшает свободное количество локальных GPIO и не дает управлять локальными опциями, использующие данные GPIO. Маленький шаг не дает управлять удаленными GPIO выше этого предела - на карте эти GPIO будут с прочерком в локальной нумерации. Использование старой VGPIO смещает номера D2D опции. Установка параметра в ноль выключает управление удаленными модулями. Максимальное количество шага рассчитывается исходя из установленного количества приемных модулей.

Фильтр датчиков - это колонка в списке устройств, где указываются через запятую или дефис номера датчиков, которые требуется скрыть на главной странице. Если датчиков с одного устройства принимается больше чем 64, то выше 64 датчики скрыть не возможно!

Ограничения и особенности опции

1. Включение/выключение датчика или gpio на передающих модулях смещает их список, нужно учитывать это на приемных модулях.

2. Не все датчики передают ошибку - это постепенно будет исправлено по отзывам пользователей.

3. Количество метрик датчиков с одного модуля ограничено до 255, а так же размером пакета UDP. Сейчас он установлен в 256 байт.

4. Прием большого количества удаленных датчиков может вызвать перегруз (зависание) главной страницы на модулях ESP8266, на RTOS прошивках этого быть не должно. Включение конструктора главной страницы исключает (контролирует) такую проблему. Так же для ограничения вывода можно воспользоваться фильтром датчиков на вкладке D2D.

5. Качество работы опции зависит от надежности и загруженности сети и возможны потери пакетов приемником, если на нем работают ресурсоёмкие задачи, например - BLE HUB.

6. В отличии от VSENS данная опция может передавать данные даже с модуля, который находится в спящем режиме (не проверено), но не работает через Интернет.

7. Опция не совместима с VGPIO v2 (расширение VGPIO), т.к. опция его заменяет. С обычной базовой VGPIO проблем в совместимости нет, но он занимает карту GPIO.

8. Управление GPIO и PWM идет по HTTP GET запросу и на удаленном модуле не должна быть включена опция Full Security

Карта GPIO/PWM


Для определения соответствия  номеров GPIO и PWM с удаленного модуля на модуле локальном в веб интерфейсе можно посмотреть их список зайдя в настройки опции D2D на вкладку Map GPIO/PWM.

Кроме обычных GPIO и расширителей портов, там будут присутствовать и GPIO, которые предназначены для вызова определенных функций (тип Control), например вызов SMS шаблона для отправки в Телеграмм или управление радио или камерой. GPIO, использующие эти номера можно посмотреть в документации на эти опции, в некоторых опциях данный параметр может настраиваться в шестеренке.

PWM на удаленных модулях - это могут быть как реальные PWM так и внешние PWM или димер, а так же контроль управления, например громкостью радио. Номера PWM не соответствуют номерам GPIO !!

Возможны совпадения номеров GPIO у нескольких опций и в этом случае требуется настройка данных опций (в шестеренке), если есть возможность, если нет - то сообщаем о конфликте GPIO разработчику проекта.