Wiki

Clone wiki

MBoard / API

Приложение MBOARD получает команды API через вебсокет. Сервер отправляет массив с данными запроса в топик MBOARD.

Массив с данными должен содержать параметры:

  • COMMAND - команда
  • SESSION - идентификатор сессии экземпляра окна MBOARD (опционально), при установке данного параметра - команда будет выполнена только экземпляром с указанной сессией
  • параметры команды

Пример реализации

$data = array();
$data["COMMAND"] = "ViewInfo";
$data["INFO"] = array(
    "title"=>"API: Тест Информации", 
    "text"=>"Test notify", 
    "icon"=> "fas fa-bolt",
    "color"=>"red");
$res = postToWebSocket("MBOARD", $data , "PostEvent");

Команды (параметр COMMAND)

OpenPanel

Переключает на панель

Параметры

PANEL - имя панели для открытия

$data = array();
$data["COMMAND"'] = "OpenPanel";
$data["PANEL"] = "dom";
$res = postToWebSocket("MBOARD", $data , "PostEvent");

UpdateWidget

Обновляет данные в виджете

Параметры

WIDGET - идентификатор виджета (id)

$data = array();
$data["COMMAND"] = "UpdateWidget";
$data["WIDGET"] = "EKYN-cYV8";
$res = postToWebSocket("MBOARD", $data , "PostEvent");

ViewNotify

Показывает уведомление в нижней части окна MBOARD

Параметры

NOTIFY - массив данных

  • text - текст уведомления
  • icon - FontAwessome иконка (fas fa-bolt)
  • color - цвет иконки
$data = array();
$data["COMMAND"] = "ViewNotify";
$data["NOTIFY"] = array(
    "text"=>"Уведомление", 
    "icon"=> "fas fa-bolt", 
    "color"=>"red");
$res = postToWebSocket("MBOARD", $data , "PostEvent");

ViewInfo

Открывает окно информации

Параметры

INFO - массив данных

  • id - идентификатор окна информации (опционально)
  • title - заголовок окна информации
  • text - текст (поддерживает HTML синтаксис)
  • icon - FontAwessome иконка в заголовке (fas fa-bolt)
  • color - цвет окна информации
  • coloricon - цвет иконки в заголовке
$uniq_id = uniqid();
$data = array();
$data["COMMAND"] = "ViewInfo";
$data["INFO"] = array(
    "id"=>$uniq_id, 
    "title"=>"API: Тест Информации", 
    "text"=>"Информационный <b>текст</b>", 
    "icon"=> "fas fa-bolt", 
    "color"=>"red");
$res = postToWebSocket("MBOARD", $data , "PostEvent");

ViewQuery

Открывает окно запроса

Параметры

QUERY - массив данных

  • id - идентификатор окна запроса(опционально)
  • title - заголовок окна запроса
  • text - текст (поддерживает HTML синтаксис)
  • icon - FontAwessome иконка в заголовке (fas fa-bolt)
  • color - цвет окна запроса
  • coloricon - цвет иконки в заголовке
  • buttons - массив описания кнопок
    • key - текст кнопки
    • value - выполняемое действие, выполняется только одно действи указанное в параметрах
      • property - свойство обьекта
      • value - устанавливаемое значение для property
      • method - выполняемый метод
      • script - выполняемый скрипт
      • close - закрыть окно запроса
$uniq_id = uniqid();
$data = array();
$data["COMMAND"] = "ViewQuery";
$data["INFO"] = array(
    'id'=>$uniq_id ,
    'title'=>"API: Тест запроса", 
    'text'=> "<p  style='text-align:center'><img src='/img/icon.png' width='150' height='150' / ></p><div       style='color:black'>Диалог позволяет вывести некоторую информацию с запросом на действие пользователя<br>Запрос может содержать <b>несколько</b> вариантов ответа<br>На каждый вариант можно задать свои реакции:<br><ul><li>установка значения <b>setGlobal</b></li><li>вызов метода</li><li>запуск скрипта</li></ul><br>P.S. есть поддержка <u>тегов</u> в тексте диалога",
    'buttons'=>array(
        "Да_setGlobal"=>array("property"=>"Relay01.asas",'value'=>"1"),
        "Незнаю_runMethod"=>array("method"=>"Relay01.switch"),
        "Нет_runScript"=>array("script"=>"mboard_event_test"),
        "Отмена"=>array("close"=>""),
    ),
    'color' => "#FF7F50",
    'icon' => "fas fa-bolt",
    'coloricon' => 'red'
);
$res = postToWebSocket("MBOARD", $data , "PostEvent");

OpenDialog ( >= 0.8.147)

Открывает окно ввода данных

Параметры

DIALOG - массив данных

  • id - идентификатор окна(опционально)
  • title - заголовок окна
  • icon - FontAwessome иконка в заголовке (fas fa-bolt)
  • color - цвет окна
  • coloricon - цвет иконки в заголовке
  • data - массив параметров
    • key - имя параметра
    • value - описание параметра или значение
      • type - тип параметра (text, checkbox, slider, select, date, time)
      • label - описание параметра
      • value - занчение параметра по-умолчанию
      • readonly - только чтение
      • min - минимальное значение (slider)
      • max - максимальное значение (slider)
      • items - массив значений (select)
        • text - описание значения
        • value - значение
  • buttons - массив кнопок она диалога
    • key - текст кнопки
    • value - выполняемое действие, выполняется только одно действие указанное в параметрах
      • method - выполняемый метод
      • script - выполняемый скрипт
      • post - url ссылка

Выходные данные

Результат передается в виде json строки

{"id":12345, "name":"123","name2":"Текст для редактирования 33","visible":true,"visible2":false,"speed":5,"mode":"1","mode2":"0","begin_date":"","begin_time":""}

$data = array();
$data['COMMAND'] = "OpenDialog";
$data['DIALOG'] = array(
    'title'=>"API: Тест ввода", 
    'data'=>array(
        "id"=> 12345,
        "name"=>array("type"=>"text","label"=>"Текстовое поле","value"=>""),
        "name2"=>array("type"=>"text","label"=>"Текстовое поле 2","value"=>"Текст для редактирования","readonly"=>true),
        "visible"=>array("type"=>"checkbox","label"=>"Чекбокс","value"=>true),
        "visible2"=>array("type"=>"checkbox","label"=>"Чекбокс 2","value"=>false,"readonly"=>true),
        "speed"=>array("type"=>"slider","label"=>"Слайдер","value"=>"5", "max"=>"10","readonly"=>true),
        "mode"=>array("type"=>"select","label"=>"Select","value"=>"1",  "items"=>array(array("text"=>"No","value"=>"0"),array("text"=>"Yes","value"=>"1")),"readonly"=>true),
        "mode2"=>array("type"=>"select","label"=>"Select mode","value"=>"0", "items"=>array(array("text"=>"Eco","value"=>"0"),array("text"=>"On","value"=>"1"))),
        "begin_date"=>array("type"=>"date","label"=>"Дата","value"=>"","readonly"=>true),
        "begin_time"=>array("type"=>"time","label"=>"Время","value"=>"","readonly"=>true),
    ),
    'buttons'=>array(
        "Метод"=>array("method"=>"Relay01.switch"),
        "Скрипт"=>array("script"=>"mboard_event_test"),
        "HTTP POST"=>array("post"=>"http://site.com/api"),
    ),
    'icon'=> "fas fa-bolt",
);
$res = postToWebSocket("MBOARD", $data , "PostEvent");

CloseInfo

Закрывает окно информации

Параметры

INFO.id - идентификатор окна информации

$data = array();
$data["COMMAND"] = "CloseInfo";
$data["INFO"] = array("id"=>$uniq_id);
$res = postToWebSocket("MBOARD", $data , "PostEvent");

CloseQuery

Закрывает окно запроса

Параметры

QUERY.id - идентификатор окна запроса

$data = array();
$data["COMMAND"] = "CloseQuery";
$data["QUERY"] = array("id"=>$uniq_id);
$res = postToWebSocket("MBOARD", $data , "PostEvent");

Theme

Переключает цветовую тему

Параметры

THEME - dark"=темная или "light"=светлая

$data = array();
$data["COMMAND"] = "Theme";
$data["THEME"] = "dark";
$res = postToWebSocket("MBOARD", $data , "PostEvent");

ViewHistory

Открывает оно с историей

Параметры

HISTORY

  • object_value - свойство обьекта с историей
  • title - заголовок окна истории
  • color - цвет графика
  • step_graph - ступенчатый график
  • statuses - массив статусов для истории Timeline (опционально)
    • status - значение статуса
    • title - описание статуса
    • color - цвет статуса
$statuses = array();
$statuses[] = array("status"=>0, 'title'=> "Нет движения", "color"=>"#f59342");
$statuses[] = array("status"=>1, 'title'=> "Движение", "color"=>"#42f575");
$data = array();
$data['COMMAND'] = "ViewHistory";
$data['SESSION'] = $session;
$data['HISTORY'] = array(
    "object_value"=>"Sensor1.value",
    'title'=> "Датчик движения", 
    "color"=>"green",
    "step_graph"=>true, 
        "statuses" => $statuses);
$res = postToWebSocket("MBOARD", $data , "PostEvent");

HideHistory

Закрывает окно истории

$data = array();
$data["COMMAND"] = "HideHistory";
$res = postToWebSocket("MBOARD", $data , "PostEvent");

UpdateTodoer

Обновление данных в календаре Todoer

$data = array();
$data['COMMAND'] = "UpdateTodoer";
$res = postToWebSocket("MBOARD", $data , "PostEvent");

ViewTaskTodoer

Открыть информацию по задаче

Параметры

ID - идентификатор задачи

$data = array();
$data['COMMAND'] = "ViewTaskTodoer";
$data['ID'] = $id;
$res = postToWebSocket("MBOARD", $data , "PostEvent");

EditTaskTodoer

Открыть окно редактирования задачи

Параметры

ID - идентификатор задачи

$data = array();
$data['COMMAND'] = "EditTaskTodoer";
$data['ID'] = $id;
$res = postToWebSocket("MBOARD", $data , "PostEvent");

Updated