MeetMeUp
Программное обеспечение MeetMeUp реализует календарный график букирования переговорными.
Архитектура ПО :
- сервер с БД и rest интерфейсом;
- Интерфейс администратора, написанный на php. Обеспечивает заведение в календарь переговорной и назначение артефактов, которые могут
высвечиваться на табло в переговорке (погода, курсы валют, название переговорной, статус). - Устройства для создания расписания - планшеты с ПО пользовательских ролей.
Примечание
К сожалению, создать расписание можно только через программки на устройствах. WEB приложение не существует.
Функциональность
При наступлении времени X, которое привязано к расписанию переговорных, необходимо выполнить правила на платформе.
Правила задают работу инженерных систем и оборудования комнат.
Пример
За 15 минут до начала старта в переговорной XXX включить: ТВ, свет, вентиляцию, .....
Описание устройства Переговорная MeetMeUp
Устройство Переговорная MeetMeUp (топик устройства room
):
Атрибут | Топик | Тип параметра | Коммент |
---|---|---|---|
ORGANIZER | organizer | string | организатор мероприятия |
ROOMNAME | roomname | string | название переговорной комнаты |
BUSYSTATUS | status | signal | статус занятости переговорной комнаты |
SUMMARY | summury | string | тема события |
DESCRIPTION | description | string | описание события |
EVENTREF | eventref | string | указатель события |
EVENTAG | eventtag | string | тег события |
DTSTART | dtstart | string | время начала события |
DTEND | dtend | string | время окончания события |
TIMETOFREE | timetofree | string | время, с которого переговорная комната освободится, формат ГГГММДДТЧЧММСС |
TIMETOBUSY | timetobusy | string | время, с которого переговорная комната будет занята, формат ГГГММДДТЧЧММСС |
actionflag | actionflag | сигнал | флаг для инициализации правил |
period | period | мгновенный | время в минутах, для взведения actionflag |
При заведении Устройства MeetMeUP в схему соединения, название схемы соединения должно соответствовать следующему правилу:
Инфо
Название схемы соединения: room
, номер переговорки - в поле Адрес
Например:
Схема соединения | Адрес |
---|---|
room | 1 |
room | 4 |
такие ограничения накладывает MeetMeUP.
Алгоритм работы модуля интеграции
- Логин в MeetMeUp, получаем токен
POST http://10.3.2.152/meetmeup/external.php
Body
form-data
action gettoken
login user1
password 123456
keyscale lower
hash c0b778c08f44edf951d8ce9338cbdda38b62d163
как получился такой hash пока непонятно - запросили у MeetMeUP
- Вычитываем все устройства типа MeetMeUP из Inspark (наверное надо дать настройку названия/ID Объекта, по которому надо вычитывать roomX)
- Запрашиваем все текущие мероприятия, строим карту календарного плана для каждой roomX
POST http://10.3.2.152/meetmeup/external.php?action
Body
form-data
action getevents
token 941a3c7c9d161565b646a71c2c4348faa2867fed
type today
room roomX
запрашиваем по каждой roomX из списка п.2.
Отправляем данные в Inspark Platform первую запись из расписания переговорной, для которой,
curtime <= DTEND
. Записи, по которым curtime > DTEND
отбрасываем.
- пункт 3 выполняем периодически, проверяем условия для триггера подготовки переговорки.
Если время curtime >= (DTSTART - period)
, отправляем значение actionflag = true
, в противном случаеactionflag = false
. Отсылать только изменения значения actionflag
, если actionflag
не менялся - параметр не отсылаем.
есть возможность зарегистрировать webhook для получения начала мероприятия до XX минут, но это время одинаково для всех переговорок. Нельзя установить
webhook для конкретной roomX. Кроме того формат данных по webhook не описан.
Можно попробовать зарегистрировать несколько webhook для всех значений period, которые внесены в систему. Но нет метода как удалить webhook.
Вообщем, метод позволяет уйти от периодического опроса, но по-мойму не доделан.
- Предусмотреть периодичское подчитывание из Ispark Platform изменения по room X. Могут быть внесены/удалены roomX, и изменены
значенияperiod
.
Настройка Правил в Inspark Platform
В Inspark настраивается Триггер по контролю actionflag
. Если значение TRUE, то вздрагивает Триггер, по которому выполняются Действия.
Параметр actionflag
можно использовать в условии с другими значимыми параметрами.