Конфигурирование макрокоманд

Получение списка всех макрокоманд

POST http://IP-адрес:порт/префикс/grpc

Тело запроса:

{
 "method":"ITV.bl.logic.LogicService.ListMacros",
 "data": {
  "view": "VIEW_MODE_FULL"
   }
}


VIEW_MODE_FULL - полная информация;

VIEW_MODE_STRIPPED - только базовая информация о макрокомандах без условий запуска и действия.

Получение полной информации по одной/нескольким макрокомандам

{
 "method":"ITV.bl.logic.LogicService.BatchGetMacros",
 "data":{
  "macros_ids" : ["cfd41b18-c983-4a48-aaa1-ca7e666e6e49"]
   }
}

Создание/удаление/изменение макрокоманды

Запросы на создание и изменение макрокоманды должны содержать всю ее структуру.

Создание:

{
"method": "ITV.bl.logic.LogicService.ChangeMacros",
"data": {
  "added_macros": {
   "guid": "3303abb2-181e-4183-8987-8a06c309a741",
   "name": "TEST_MACRO",
   "mode": {
    "enabled": true,
    "user_role": "",
    "is_add_to_menu": true,
    "common": {}
   },
   "conditions": {
    "0": {
     "path": "/C:0",
     "archive_write": {
      "camera": "hosts/SERVER1/DeviceIpint.1/SourceEndpoint.video:0:0",
      "state": "ON"
     }
    },
     "1": {
     "path": "/C:0",
     "archive_write": {
      "camera": "hosts/SERVER1/DeviceIpint.1/SourceEndpoint.video:0:0",
      "state": "ON"
     }
    }
   },
   "rules": {
    "0": {
     "path": "/E:0",
     "action": {
      "timeout_ms": 60000,
      "cancel_conditions": {},
      "action": {
       "raise_alert": {
        "zone": "",
        "archive": "",
        "offset_ms": 0,
        "mode": "RAM_AlwaysIfNoActiveAlert"
       }
      }
     }
    },
    "1": {
     "path": "/E:0",
     "action": {
      "timeout_ms": 60000,
      "cancel_conditions": {},
      "action": {
       "raise_alert": {
        "zone": "",
        "archive": "",
        "offset_ms": 0,
        "mode": "RAM_AlwaysIfNoActiveAlert"
       }
      }
     } 
    }
   }
  }
 }
}

Изменение (удаление правил и условий):

В группах conditions и rules необходимо оставить пустые фигурные скобки { }.


{
 "method": "ITV.bl.logic.LogicService.ChangeMacros",
 "data": {
   "modified_macros": {
   "guid": "3303abb2-181e-4183-8987-8a06c309a741",
   "mode": {
    "common": {}
   },
   "conditions": {
    "0": {}
   },   
   "rules": {
    "1": {}
   }
  }
 }
}

Удаление всей макрокоманды:

{
 "method":"ITV.bl.logic.LogicService.ChangeMacros",
 "data":{
  "removed_macros" : ["3303abb2-181e-4183-8987-8a06c309a741"]
   }
}

Запуск макрокоманды

{
 "method":"ITV.bl.logic.LogicService.LaunchMacro",
 "data":{
  "macro_id" : "caef76f0-37e9-43b0-aba6-c2a2f32ccd2f"
   }
}

Примеры

  1. Получение информации об автоматическом правиле

    Ответ:


    {
     "items": [
      {
       "guid": "4932bbc7-c702-4a18-b050-2898b1b61738",
       "name": "534k_1.Camera. Детектор движения",
       "mode": {
        "enabled": true,
        "user_role": "",
        "is_add_to_menu": false,
        "autorule": {
         "zone_ap": "hosts/Server1/DeviceIpint.6/SourceEndpoint.video:0:0",
         "only_if_armed": false,
         "timezone_id": "00000000-0000-0000-0000-000000000000"
        }
       },
       "conditions": {
        "0": {
         "path": "/C:0",
         "detector": {
          "event_type": "MotionDetected",
          "source_ap": "hosts/Server1/AVDetector.4/EventSupplier",
          "state": "BEGAN",
          "details": []
         }
        }
       },
       "rules": {
        "1": {
         "path": "/E:1",
         "action": {
          "timeout_ms": 0,
          "cancel_conditions": {
           "0": {
            "path": "/E:1/C:0",
            "detector": {
             "event_type": "MotionDetected",
             "source_ap": "hosts/Server1/AVDetector.4/EventSupplier",
             "state": "ENDED",
             "details": []
            }
           }
          },
          "action": {
           "raise_alert": {
            "zone": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
            "archive": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage",
            "offset_ms": 0,
            "mode": "RAM_AlwaysIfNoActiveAlert"
           }
          }
         }
        },
        "0": {
         "path": "/E:0",
         "action": {
          "timeout_ms": 0,
          "cancel_conditions": {
           "0": {
            "path": "/E:0/C:0",
            "detector": {
             "event_type": "MotionDetected",
             "source_ap": "hosts/Server1/AVDetector.6/EventSupplier",
             "state": "BEGAN",
             "details": []
            }
           }
          },
          "action": {
           "write_archive": {
            "camera": "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
            "archive": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage",
            "min_prerecord_ms": 0,
            "post_event_timeout_ms": 0
           }
          }
         }
        }
       }
      }
     ]
    }



  2. Создание макрокоманды.


{
 "method":"ITV.bl.logic.LogicService.ChangeMacros",
 "data":{
  "added_macros" : {
   "guid": "b55c118a-f902-43ec-b55a-67ee062640b2",
   "name": "MacroEmail",
   "mode": {
    "enabled": true,
    "user_role": "",
    "is_add_to_menu": false,
    "continuous": {
     "server": "Server1",
     "timezone_id": "00000000-0000-0000-0000-000000000000",
     "heartbeat_ms": 0,
     "random": true
    }
   },
   "conditions": {},
   "rules": {
    "0": {
     "path": "/E:0",
     "check": {
      "check": {
       "camera": "99f72952-d8b8-4590-90e8-7e0e78bcd719",
       "archive": "",
       "depth_ms": 5400000,
       "type": "CT_CHECK_RECORD"
      },
      "success_rules": {},
      "failure_rules": {
       "0": {
        "path": "/E:0/T:0",
        "action": {
         "timeout_ms": 0,
         "cancel_conditions": {},
         "action": {
          "email_notification": {
           "notifier": "hosts/Server1/EMailModule.1",
           "recipients": [
            "mail@server.com"
           ],
           "subject": "Notification: Attention, automatic rule is triggered.",
           "msg_text": "На сервере: {cameraNode} по камере {cameraName} проблемы с записью в архив.\nДата: {dateTime}",
           "atach_video": false,
           "export_agent": "",
           "span_ms": 0,
           "camera": "",
           "archive": ""
          }
         }
        }
       }
      }
     }
    }
   }
  }
 }
}


"camera": "99f72952-d8b8-4590-90e8-7e0e78bcd719"  - это id группы камер.