Wiki
Clone wikiMBoard / 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