Перейти к основному содержимому

Навык iRidi для VK Маруся

VK Маруся - голосовой помощник от компании VK.

документация обновлена 01.01.2024

Маруся - это дружелюбный голосовой помощник от VK, работающий с Капсулой и Капсулой Мини и прочими устройствами других производителей.

Поддерживает устройства с установленным приложением Маруся:

  • на смартфон;
  • на планшет.

Маруся понимает только русский язык. Через колонку, Маруся может управлять умным домом через iRidi Cloud и сервер iRidi. Вы можете произнести команду "Включи свет", и лампочка загорится. Произнесите "Выключи свет" и лампочка погаснет. Всё просто!

Mail_Marusya_v3.jpg

Построить умную систему голосового управления просто:

Установите приложение "Маруся" на смартфон или планшет.

Запустите навык "Иридий", который научит Марусю взаимодействовать c iRidi. Подключитесь к объекту в облаке iRidi Cloud.

Создайте умный дом на основе iRidi Server, добавьте необходимые устройства и настройте логику проекта.

Попробуйте поработать с Марусей бесплатно в триальном режиме!

Работа в iRidi Studio​

  1. Создайте серверный проект.
примечание

Для корректного отображения устройств, установите последнюю версию iRidi Studio с нашего сайта.

  1. Добавьте драйвер VK Marusia в проект.

VK_Marusia5.png

  1. Щелкните правой кнопкой по VK Marusia и добавьте умные устройства в проект (Add subdevice).

VK_Marusia1.png

  1. Переименуйте необходимые устройства, для удобства при использовании. Установите параметр Use name - Same as device name , если хотите использовать поле Name в качестве имени устройства, или укажите Use name - Enter custom , если хотите задать имя устройства в отдельном поле (Device name ).

VK_Marusia6.png

Важно
  • В качестве имени устройства разрешено использовать только кириллицу (без цифр, спец символов и буквы "ё").

  • Поле Device name позволяет создавать устройства с одинаковыми названиями в разных комнатах, для корректной работы приложения не используйте устройства с одинаковыми названиями в одной комнате.

  • По умолчанию параметр Use name имеет значение Same as device name - используется имя устройства введенное в поле Name . Имя устройства (Name ) должно быть уникальным и не может быть присвоено нескольким устройствам в проекте!

  • Переименовывать обратные связи устройств нельзя, так как они несут строго определенный смысл.

  1. Задайте значение Room, в дальнейшем оно позволит управлять группой устройств в заданной комнате.

VK_Marusia7.png

Важно
  • Название комнат распознает регистр, не называйте комнаты одноименно, для предотвращения появления двух комнат с одним и тем же названием (например, “кухня” и “Кухня”).

  • Переименовать комнату можно из приложения Маруся или в iRidi Studio . Чтобы переименовать комнату в iRidi Studio , удалите устройство в приложении Маруся , переименуйте комнату в серверном проекте и обновите проект на сервере и на облаке. Затем выполните процедуру обновления списка устройств в приложении Маруся .

Описание устройств и обратных связей​

Устройства Маруси - это не реальные устройства, а только лишь интерфейс между реальными устройствами и Марусей. Вы должны реализовать функционал этих устройств в iRidi Server или обеспечить связи с соответствующими физическими устройствами по тому или иному протоколу. iRidi предоставляет интерфейс с различными типами устройств:

Однако, это не ограничивает вас в возможностях работы с другими устройствами. Например, вы можете реализовать управление реле, используя бинарное устройство типа "Выключатель".

Вам необязательно использовать все обратные связи устройств, используйте только те, которые вам нужны.

Устройства​

Лампа​

Обратная связьОписаниеЗначениеПримеры голосовых команд
On/OffВкл / Выкл.1 / 0"Маруся, включи лампу."
"Маруся, выключи лампу."
BrightnessУстановить яркость лампы.от 0 до 100"Маруся, установи яркость лампы на 10"
"Маруся, убавь яркость лампы"
"Маруся, сделай яркость 40 у лампы".
ColorTemperatureСделать свет теплее, холоднее.2000-9000"Маруся, сделай свет лампы теплее"
"Маруся, сделай холоднее свет у лампы"
"Маруся, установи у лампы дневной свет"
"Маруся, установи у лампы туманный свет".
BacklightУправление подсветкой1 / 0"Маруся, включи подсветку у лампы"
"Маруся, выключи подсветку у лампы".
примечание

Если устройство поддерживает только один температурный режим, необходимо выбрать наиболее близкое значение из таблицы и передавать его. Маруся переключает и устанавливает значение света в соответствии с таблицей.

Температура, КЦветЗначение по умолчанию
Мягкий белый2700Нет
Тёплый белый3400Нет
Белый4500Да
Дневной белый5600Нет
Холодный белый6500Нет

Если передать значение или диапазон значений, которые не пересекаются с таблицей, пользователю будет предложен вариант по умолчанию (белый цвет со значением 4500 К).

Датчик открытия/закрытия​

Обратная связьОписаниеЗначениеПримеры голосовых команд
On/OffВкл / Выкл.1 / 0"Маруся, включи датчик открытия закрытия"
"Маруся, выключи датчик закрытия открытия".
StatusСостояние датчикаopened — открыто
closed — закрыто
"Маруся, как открыт датчик открытия закрытия".

Датчик температуры​

Обратная связьОписаниеЗначениеПримеры голосовых команд
On/OffВкл / Выкл.1 / 0"Маруся, включи датчик температуры"
"Маруся, выключи датчик температуры".
ValueСостояние датчикаValue (°C)"Маруся, температура датчика температуры".

Датчик влажности​

Обратная связьОписаниеЗначениеПримеры голосовых команд
On/OffВкл / Выкл.1 / 0"Маруся, включи датчик влажности"
"Маруся, выключи датчик влажности".
ValueСостояние датчика0 - 100 %"Маруся, влажность датчика влажности".

Датчик протечки​

Обратная связьОписаниеЗначениеПримеры голосовых команд
On/OffВкл / Выкл.1 / 0"Маруся, включи датчик протечки", "Маруся, выключи датчик протечки".
StatusСостояние датчика"dry — нет протечки,
leak — протечка"
—

Датчик дыма​

Обратная связьОписаниеЗначениеПримеры голосовых команд
On/OffВкл / Выкл.1 / 0"Маруся, включи датчик дыма", "Маруся, выключи датчик дыма".
StatusСостояние датчика"detected — обнаружено,
not detected — не обнаружено,
high — высокий уровень."

Датчик движения​

Обратная связьОписаниеЗначениеПримеры голосовых команд
On/OffВкл / Выкл.1 / 0"Маруся, включи датчик движения", "Маруся, выключи датчик движения".
StatusСостояние датчика"detected — обнаружено,
not detected — не обнаружено."

Датчик наличия газа​

Обратная связьОписаниеЗначениеПримеры голосовых команд
On/OffВкл / Выкл.1 / 0"Маруся, включи датчик наличия газа", "Маруся, выключи датчик наличия газа".
StatusСостояние датчика"detected — обнаружено,
not detected — не обнаружено,
high — высокий уровень"

Вентилятор​

Обратная связьОписаниеЗначениеПримеры голосовых команд
On/OffВкл / Выкл.1 / 0"Маруся, включи вентилятор"
"Маруся, выключи вентилятор".
BacklightУправление подсветкой1 / 0"Маруся, включи подсветку у вентилятора"
"Маруся, выключи подсветку у вентилятора".
BlockБлокировка1 / 0"Маруся, включи блокировку у вентилятора"
"Маруся, выключи блокировку у вентилятора".
OscillationПрименить “вращение”1 / 0"Маруся, включи вращение у вентилятора"
"Маруся, выключи вращение у вентилятора".
Fan ModeУправление скоростью вентилятораlow - низкая скорость
medium - средняя скорость
high - высокая скорость
"Маруся, включи режим вентиляции у вентилятора на автоматический"
"Маруся, включи режим вентиляции у вентилятора на высокую скорость"
"Маруся, включи режим вентиляции у вентилятора на низкую скорость".

Термостат​

Обратная связьОписаниеЗначениеПримеры голосовых команд
On/OffВкл / Выкл.1 / 0"Маруся, включи термостат"
"Маруся, выключи термостат".
Thermostat ModeУстановить режим работы нагревателя:
Вентиляция(fan_only)
Осушение(dry)
Охлаждение(cool)
Обогрев(heat)
Автоматический режим(auto)
Эко-режим (eco)
fan_only
dry
cool
heat
auto
eco
"Маруся, переведи обогреватель в режим эко."
"Маруся, переведи электровентилятор в режим охлаждения."
Fan ModeУстановить скорость вентилятора:
Минимальная
Средняя
Максимальная
Автоматический режим(auto)
low
medium
high
auto
"Маруся, включи высокую скорость вентиляции."
"Маруся, выключи минимальную скорость вентиляции на вентиляторе."
Heat ModeРежим нагрева:
Авто
Максимальный
Минимальный
auto
max
min
"Маруся, включи максимальный нагрев."
Temperature CelsiusУстановить температуру на необходимое значение.Value (°C)"Маруся, выставь температуру водонагревателя на 23 градуса."
OscillationПрименить вращение1 / 0"Маруся, включи вращение на вентиляторе"
HumidityВключить увлажнение0 - 100 %"Маруся, поставь максимальную влажность."
"Маруся, установи влажность термостата на 45%."

Шторы​

Обратная связьОписаниеЗначениеПримеры голосовых команд
On/OffВкл / Выкл.1 / 0"Маруся, открой шторы."
"Маруся, закрой шторы."
Work SpeedСкорость работы:
Авто
Средняя
Быстрый
Медленный
Турбо
auto
medium
fast
slow
turbo
"Маруся, включи быструю скорость работы на шторах."
"Маруся, включи медленную скорость работы на шторах."
RangeПозиция штор0 - 100 %"Маруся, открой штору на треть."
"Маруся, открой штору на 50 процентов."

Обогреватель​

Обратная связьОписаниеЗначениеПримеры голосовых команд
On/OffВкл / Выкл.1 / 0"Маруся, включи обогреватель."
"Маруся, выключи обогреватель."
SoundВкл / Выкл.1 / 0"Маруся, включи звук у обогревателя."
"Маруся, выключи звук у обогревателя."
BlockВкл / Выкл.1 / 0"Маруся, включи блокировку у обогревателя"
"Маруся, выключи блокировку у обогревателя".
TemperatureУстановить температуру на необходимое значение.Value (°C)"Маруся, установи температуру обогревателя на 10"
"Маруся, сделай температуру 40 у обогревателя"
"Маруся, убавь температуру обогревателя"
"Маруся, увеличь температуру обогревателя".

Выключатель​

Обратная связьОписаниеЗначениеПримеры голосовых команд
On/OffВкл / Выкл.1 / 0"Маруся, включи выключатель"
"Маруся, выключи выключатель".

Розетка​

Обратная связьОписаниеЗначениеПримеры голосовых команд
On/OffВкл / Выкл.1 / 0"Маруся, включи розетку"
"Маруся, выключи розетки в зале".
BacklightУправление подсветкой1 / 0"Маруся, включи подсветку у розетки"
"Маруся, выключи подсветку у розетки".
ColorRGBУстановить цветовое значение0 - 16777215"Маруся, смени цвет подсветки на синий."

Лампа РГБ​

Обратная связьОписаниеЗначениеПримеры голосовых команд
On/OffВкл / Выкл1 / 0"Маруся, включи люстру."
"Маруся, выключи ночник."
BrightnessУстановить максимум\минимум.0 - 100%"Маруся, установи яркость ночника на минимум."
"Маруся, установи яркость светильника на максимум."
"Маруся, убавь яркость люстры."
"Маруся, прибавь яркость люстры."
RGBУстановить цветовое значение.0 - 16777215"Маруся, включи на торшере зеленый."
"Маруся, включи оранжевый свет."
BacklightУправление подсветкой1 / 0"Маруся, включи подсветку лампы."

Чтобы конвертировать значение от Маруси для работы с шинами, где имеются отдельные каналы для работы с RGB, воспользуйтесь скриптом.

var Marusia = IR.GetDevice("VK Marusia");
var device = IR.GetDevice("Modbus TCP");

IR.AddListener(IR.EVENT_TAG_CHANGE, Marusia, function(in_sName, in_sValue)
{
if (in_sName == "Лампа:RGB") {
var valueR = (in_sValue >> 24) & 0xFF;
var commandR = "Red"; //
setRGB(commandR, valueR);


var valueG = (in_sValue >> 16) & 0xFF; //Получение зеленого
var commandG = "Green"; //Имя канала в которой передается значение
setRGB(commandG, valueG); //Функция отправки значения

var valueB = (in_sValue >> 8) & 0xFF;
var commandB = "Blue";
setRGB(commandB, valueB);
}

IR.Log(" Красный " + valueR + " Зеленый " + valueG + " Синий " + valueB);

});

/*
/ отправляем на определенную команду значение
/ command - имя команды
/ value - значение
*/
function setRGB (command ,value){
device.Set(command, value);
}

Вентиляция Роял Клима​

Обратная связьОписаниеЗначениеПримеры голосовых команд
On/OffСостояние вкл/откл.1 / 0"Маруся, включи вентиляцию."
"Маруся, выключи вентиляцию."
FanSpeedСкорость работы:
тихий
низкая
средняя
высокая
турбо
quiet
low
medium
high
turbo
"Маруся, включи низкую скорость вентиляции."
"Маруся, уменьши скорость вентиляции."
CurrentTemperatureЗначение температуры вытяжного воздуха с датчикаany value"Маруся, какая температура приточного воздуха."

Чтобы конвертировать значения скоростей приточного и вытяжного вентиляторов между Вентиляцией Royal Clima на шлюзе bus77 и устройством вентиляции от Маруси, воспользуйтесь правилом или скриптом.

Подсказка

Пример проекта с конвертацией значения скоростей приточного и вытяжного вентиляторов через скрипт:

Marusya_Script.sirpz

Скрипт, используемый в проекте-примере:

var Marusya = IR.GetDevice("VK Marusya"); // имя драйвера Маруси
var ModBus = IR.GetDevice("Bus77"); // имя драйвера

IR.AddListener(IR.EVENT_START, 0, function ()
{
IR.AddListener(IR.EVENT_TAG_CHANGE, Marusya, function(name, value)
{
IR.Log("От Marusya Name: " + name + " значение:" + value);

var NameChannelSetSupply = "";
var NameChannelSetExhaustFanSpeed = "";
var ResultForModBus = 0; //значение для МодБас
if(name == "Вентиляция Роял Клима:FanSpeed")
{
NameChannelSetSupply = "I-CAN-Modbus_тест:SupplyFanSpeed (Вентиляция Royal Clima 1)";
NameChannelSetExhaustFanSpeed = "I-CAN-Modbus_тест:ExhaustFanSpeed (Вентиляция Royal Clima 1)";
switch(value)
{
case "quiet":
{
ResultForModBus = 1;
ModBus.Set(NameChannelSetSupply, ResultForModBus);
IR.SetTimeout(100, function()
{
ModBus.Set(NameChannelSetExhaustFanSpeed, ResultForModBus);
IR.Log("Выставлено значение " + value + " В SupplyFanSpeed");
});
break;
}
case "low":
{
ResultForModBus = 2;
ModBus.Set(NameChannelSetSupply, ResultForModBus);
IR.SetTimeout(100, function()
{
ModBus.Set(NameChannelSetExhaustFanSpeed, ResultForModBus);
IR.Log("Выставлено значение " + value + " В SupplyFanSpeed");
});
break;
}
case "medium":
{
ResultForModBus = 5;
ModBus.Set(NameChannelSetSupply, ResultForModBus);
IR.SetTimeout(100, function()
{
ModBus.Set(NameChannelSetExhaustFanSpeed, ResultForModBus);
IR.Log("Выставлено значение " + value + " В SupplyFanSpeed");
});
break;
}
case "high":
{
ResultForModBus = 8;
ModBus.Set(NameChannelSetSupply, ResultForModBus);
IR.SetTimeout(100, function()
{
ModBus.Set(NameChannelSetExhaustFanSpeed, ResultForModBus);
IR.Log("Выставлено значение " + value + " В SupplyFanSpeed");
});
break;
}
case "turbo":
{
ResultForModBus = 10;
ModBus.Set(NameChannelSetSupply, ResultForModBus);
IR.SetTimeout(100, function()
{
ModBus.Set(NameChannelSetExhaustFanSpeed, ResultForModBus);
IR.Log("Выставлено значение " + value + " В SupplyFanSpeed");
});
break;
}
default:
{
IR.Log("Команда не запрограммирована!");
break;
}
}
}
});

IR.AddListener(IR.EVENT_TAG_CHANGE, ModBus, function(name, value)
{
var NameChannelSet = "";
var ResultForMarusya = 0; //значение для Маруси
IR.Log("От ModBus Name: " + name + " значение:" + value);
if(name == "I-CAN-Modbus_тест:SupplyFanSpeed (Вентиляция Royal Clima 1)" ||
name == "I-CAN-Modbus_тест:ExhaustFanSpeed (Вентиляция Royal Clima 1)")
{
NameChannelSet = "Вентиляция Роял Клима:FanSpeed";
switch(value)
{
case 1:
ResultForMarusya = "quiet";
Marusya.Set(NameChannelSet, ResultForMarusya);
break;
case 2:
ResultForMarusya = "low";
Marusya.Set(NameChannelSet, ResultForMarusya);
break;
case 3:
ResultForMarusya = "medium";
Marusya.Set(NameChannelSet, ResultForMarusya);
break;
case 7:
ResultForMarusya = "high";
Marusya.Set(NameChannelSet, ResultForMarusya);
break;
case 10:
ResultForMarusya = "turbo";
Marusya.Set(NameChannelSet, ResultForMarusya);
break;
default:
IR.Log("Команда не запрограммирована!");
}
}
IR.Log("От ModBus - Name: " + NameChannelSet + " значение:" + ResultForMarusya);
});
});
примечание

Голосовое управлении скоростями приточного и вытяжного вентиляторов происходит синхронно: скорость притока равна скорости вытяжки. Отправка значений в каналы SupplyFanSpeed и ExhaustFanSpeed осуществляется с задержкой 100 мс.

Подсказка

Пример проекта с конвертацией значения скоростей приточного и вытяжного вентиляторов через правила:

Marusya_Routines.sirpz

Обработка голосовых команд с помощью перенаправления значений​

VK_Marusia4.png

Forwarding value to создает связь между каналом и фидбеком драйверов (не зависит от типа драйвера). При добавлении ссылки на другой тег создается связь между ними, которая пересылает значение в момент его записи в источник. Для добавления связи между драйвером голосового ассистента (VK Marusia) и драйвером оборудования (в нашем примере драйвер Modbus TCP) необходимо выполнить следующие шаги:

  1. Перейдите на вкладку Devices ;

  2. В настройках фидбэков драйвера VK Marusia укажите перенаправление значений в соответствующие команды драйвера Modbus TCP ;

  3. В настройках фидбэков драйвера Modbus TCP укажите перенаправление значений в соответствующие команды драйвера VK Marusia .

примечание

Если необходимо преобразовать полученное значение, то используйте Script Modifier. Подробное описание настройки перенаправления значений по ссылке

Пример скрипта:

function ThermostatMode(in_Type, in_Name, in_Value)
{
switch(in_Value) {
case 'fan_only' :
in_Value = 1;
break;
case 'dry' :
in_Value = 2;
break;
case 'cool' :
in_Value = 3;
break;
case 'heat' :
in_Value = 4;
break;
case 'auto' :
in_Value = 5;
break;
case 'eco' :
in_Value = 6;
break;
default:
IR.Log("Error!");
}

return in_Value;
}

Обработка голосовых команд с помощью скрипта​

Скрипт обеспечивает прием голосовых команд от Маруси и перенаправляет их на реальные устройства. В данном примере это устройства в сети Modbus TCP.

  1. Перейдите в редактор скрипта, нажав кнопку JS.

  2. Нажмите +, затем выберите New Script.

  3. Добавьте свой скрипт.

Пример:

var Marusia = IR.GetDevice("VK Marusia");
var Modbus = IR.GetDevice("Лампа");

//Логирование команд, отправленных драйвером Маруси:
IR.AddListener(IR.EVENT_TAG_CHANGE, Marusia, function(name, value){
IR.Log("Marusia! Device tag: " + name + " , value: " + value);

});


//Пример управления лампой:

IR.AddListener(IR.EVENT_TAG_CHANGE, Modbus, function(name, value){ //прослушиваем устройство на изменение тега.
switch (name) {
case "Feedback 1":
if (value == 1){ //устройство включено
Marusia.Set("Лампа:On/Off", 1) // отсылаем в канал драйвера Маруси значение 1 - устройство включено.
}
if (value == 0){ //устройство выключено
Marusia.Set("Лампа:On/Off", 0) // отсылаем в канал драйвера Маруси значение 0 - устройство выключено.
}
break;
case "Feedback 2":
Marusia.Set("Лампа:Brightness", value); // отсылаем в канал драйвера Маруси значение яркости лампы.
break;
}
});

IR.AddListener(IR.EVENT_TAG_CHANGE, Marusia, function(name, value){ //прослушиваем команду от драйвера Маруси.
switch (name) {
case "Лампа:On/Off": //если изменение прошли в теге лампы, начинаем выполнять действия.
if (value == 1){ //при отправке команды от Маруси на включение, в теге появится 1. Modbus.Set("Command 1", 1);//передаем команду от Маруси устройству 1 - включение.
}
if (value == 0) { //при отправке команды от Маруси на выключение, в теге появится 0. Modbus.Set("Command 1", 0);//передаем команду от Маруси устройству 0 - выключение.
}
break;
case "Лампа:Brightness":
Modbus.Set("Command 2", value); // передаём в команду от Маруси устройству значение яркости лампы.
break;
}
});
примечание

Обращайте внимание какое значение отсылает Маруся при обработке команды. Конвертируйте его в необходимое значение для управляемого устройства.

Загрузка проекта в iRidi Cloud и на сервер.​

  1. Авторизуйтесь на сайте iRidi.

  2. Загрузите серверный и связанный с ним панельный проект на облако iRidi Cloud.

Mail13.png

  1. При необходимости на вкладке Users and Panels добавьте в проект конечного пользователя.

Mail14.png

  1. Запустите iRidi Server.

  2. Зайдите в веб-интерфейс сервера, набрав в адресной строке браузера: IP-адрес сервера:8888

  • Если iRidi Server запускается на том же компьютере, на котором он настраивается, то наберите: 127.0.0.1:8888
  1. Наберите пароль доступа по умолчанию 2007. Нажмите кнопку "LOGIN".

Alexa_web01.png

  1. Найдите вкладку Cloud / Projects .

Alexa_web02.png

  1. Загрузите проект из облака на сервер, нажав кнопку "CLOUD SYNC" и затем "Download" напротив нужного проекта.

Mail15.png

Важно
  • Маруся работает только через iRidi Cloud, поэтому она не сможет работать, если проект будет загружен на сервер через iRidi Transfer.

Настройка Маруси​

Регистрация умной колонки​

  1. Установите приложение Маруся ;

  2. Запустите приложение и авторизуйтесь в нём через VK Connect ;

  3. Включите Капсулу Мини в розетку;

  4. Настройте Капсулу Мини с помощью приложения.

Перевести приложение в режим настройки можно двумя способами:

  1. Голосом. Нажмите на кнопку микрофона внизу экрана и скажите: "Маруся, подключи Капсулу Мини".
  2. В меню приложения. Перейдите в меню и нажмите "Подключить колонку".

Далее следуйте инструкциям по подключению.

Mail17.jpg Mail18.jpg

Установка навыка​

Навык устанавливается только в приложении Маруся .

  1. Установите приложение на мобильное устройство и авторизуйтесь в нем;

  2. На вкладке Настройки перейдите в Умный дом ;

Mail5.jpg

  1. В списке умных домов выберите iRidi ;

Mail6.jpg

  1. Вы попадёте на форму регистрации на сайте iRidi mobile. Введите данные учётной записи интегратора или конечного пользователя, с которым поделились связанным панельным проектом, и нажмите Login .

Mail7.jpg Mail8.jpg

  1. В выпадающем списке выберите продукт i3pro и объект, с которым будет работать Маруся. Нажмите Link .

Mail9.jpg

  1. Далее в выпадающем списке выберите драйвер VK Marusia .

Mail10.jpg

  1. При необходимости переименуйте устройства и разместите их в комнаты, после этого вы сможете ими управлять.

Mail11.jpg Mail12.jpg

  1. Если вы скорректируете проект, то не забудьте загрузить его в iRidi Cloud , затем обновите его в iRidi Server . После этого обновите список устройств в приложении Маруся .

Тестирование проекта​

Проект для сервера можно запустить на том же компьютере, на котором производится работа в iRidi Studio. Но проект следует загружать только через iRidi Cloud.

Произносите голосовые команды в приложении VK Marusia и ассистент передаст команды в iRidi Server, и тот, в свою очередь, исполнит команды согласно заданной логике.

примечание

Вы может использовать любой эмулятор сервера Modbus TCP, например, бесплатный Modbus PLC Simulator для тестирования проекта.