npm package: @inclouded/amsmart2-device
Description: ``` npm install --save @inclouded/amsmart2-device ```
Latest version: 1.3.3

# Amsmart2-Device SDK

```
npm install --save @inclouded/amsmart2-device
```

## Introduction

In the repository the Amsmart2-Device SDK can be found in an installable form. The SDK can be installed for every Ionic or Node.js project. The SDK accomplishes the necessary http requests.

## Usage

1. For using the SDK an Ionic or Node.js project is needed.

2. Interfaces:

```javascript
export interface zwnode_get_ep_listData {
  url: string,
  deviceId: string,
  cfUrl: string,
  noded: number
}

export interface zwep_get_if_listData {
  url: string,
  deviceId: string,
  cfUrl: string,
  epd: number
}


export interface zwif_basic_setData {
  url: string,
  deviceId: string,
  cfUrl: string,
  intf_desc: string,
  value?: number
}

export interface zwif_basic_selectData {
  url: string,
  deviceId: string,
  cfUrl: string,
  intf_desc: string
}

export interface zwif_switch_setData {
  url: string,
  deviceId: string,
  cfUrl: string,
  intf_desc: string,
  value?: number
}

export interface zwif_switch_selectData {
  url: string,
  deviceId: string,
  cfUrl: string,
  intf_desc: string
}

export interface loginToZwareData {
  url: string,
  deviceId: string,
  cfUrl: string,
  usrname: string,
  passwd: string
}

export interface logoutToZwareData {
  url: string,
  deviceId: string,
  cfUrl: string
}

export interface loginFromCrowData {
  username: string,
  password: string,
  email: string
}

export interface GetMeasurementsByDeviceData {
  duration: string
}

export interface TakePictureCrowData {
  client_secret: string;
}

export interface updateDeviceData {
  id: number,
  device_type: string,
  zone: number,
  additional_info: {
    owner: number,
    partitions: number[]
  }
}

export interface removeDeviceData {
  device_type: string,
  zone: number
}

export interface enrollDeviceData {
  enrollment_id: number,
  zone: number,
  additional_info: {
    partitions: number[],
    owner: number
  }
}

export interface wifiConnectData {
  ssid: string,
  password: string
}

export interface wifiEnableDisableData {
  enable: boolean
}

export interface disablePgmData {
  id: number
}

export interface editPgmData {
  type: string,
  options: {
    timing: number,
    true_output: boolean,
    timed_output: boolean,
    code_required: boolean,
    partitions: number[]
  }
}

export interface setPgmTypeData {
  id: number,
  type: string
}

export interface sendHomeAutCommandData {
  id: number,
  value: string,
  time: number
}

export interface zWaveResetDriverData {
  mode: string
}

export interface zWaveSetNodeLocationData {
  node_id: number,
  location_id: number
}

export interface zWaveSetValueData {
  node_id: number,
  value:
  {
    node:
    {
      id: number,
      value:
      {
        class:
        {
          command:
          {
            id: number,
            version: number
          }
        },
        index: number,
        instance: number,
        data: string
      }
    }
  }
}

export interface zWaveStartNodeInfoData {
  node_id: number
}

export interface zWaveDeleteModeData {
  enable: boolean,
  timeout: number
}

export interface zWaveEnrollModeData {
  enable: boolean,
  timeout: number
}

export interface zWaveEnableDriverData {
  mode: boolean,
  driver_path: string
}

export interface setIpCamLocationData {
  camera_id: number,
  location_id: number
}

export interface addIpCamData {
  camera_id: number,
  location_id: number,
  connection_type: string
}

export interface setDateTimeData {
  time: string
}

export interface sendPrivateEmailData {
  text: string
}

export interface updateVodModeData {
  mode: string
}

export interface setPanelNameData {
  class: string,
  id: number,
  name: string
}

export interface setUserCodeData {
  user_code: number,
  user_id: number
}

export interface setUserPartitionsData {
  partitions: number[],
  user_id: number
}

export interface makeVideoData {
  camera_id: number
}

export interface getPushOptionsData {
  Simple: boolean
}

export interface emailNotificationsData {
  Simple: boolean
}

export interface registerEmailNotificationData {
  mode?: number,
  Simple: boolean,
  data?: {
    ALERT: boolean,
    ALARM: boolean,
    RESTORE: boolean,
    SECURITY_OPEN_CLOSE: boolean,
    CAMERA_BEING_VIEWED: boolean,
    CAMERA_TROUBLE: boolean,
    X10_ON_OFF: boolean,
    X10_TROUBLE: boolean,
    ONLINE: boolean,
    OFFLINE: boolean,
    NOTICE: boolean
  }
}

export interface bypassDataCrow {
  bypass: boolean
}

export interface bypassDataTyco {
  zone: number,
  set: boolean
}

export interface smartDeviceAssignData {
  zone: number
}

export interface disabelSirenData {
  mode: string
}

export interface panelLoginData {
  panel_serial: string,
  user_code: string,
  app_id: string
}

export interface authToTycoData {
  email: string,
  password: string,
  app_id: string
}

export interface getStateData {
  unt_id: number,
  batch_id?: string
}

export interface editData {
  unt_id: number,
  form: {
    unt_account: string,
    unt_serial: string,
    unt_sim_number: string,
    utg_id: number,
    _unt_module_bb: boolean,
    _unt_module_gprs: boolean
  }
}

export interface editInfoData {
  unt_id: number,
  form: {
    unt_contact_address: string,
    unt_contact_email: string,
    unt_contact_name: string,
    unt_contact_phone: any,
    unt_remark: any
  }
}

export interface createReportData {
  name: string,
  schedule: {
    pattern: string,
    schedule: string,
    settings: any
  },
  num_rows: number,
  export: string[],
  allPanels: boolean,
  sendTo: any,
  unt_id: number[]
}

export interface initiateinspectionData {
  unt_id: number[],
  batch_id?: string
}

export interface remoteinspectionScheduleData {
  unt_id: number[],
  schedule: string,
  date?: string,
  repetition?: number
}

export interface saveLocationData {
  unt_id: number,
  locations: any[],
  batch_id?: string
}

export interface refreshLogData {
  unt_id: number,
  log: string,
  batch_id?: string
}

export interface disableKeypadData {
  unt_id: number
}

export interface enableKeypadData {
  unt_id: number
}

export interface zoneremoveData {
  utz_id: number,
  batch_id?: string
}

export interface zoneaddData {
  unt_id: number,
  form: {
    deviceId: string,
    zoneId: string,
    partitions: string[],
    batch_id?: string
  }
}

export interface walkteststopData {
  unt_id: number
}

export interface walkteststartData {
  unt_id: number,
  batch_id?: string
}

export interface uploadData {
  unit_id: number,
  diff: any[][],
  version: number,
  batch_id?: string
}

export interface setLabelData {
  entityClass: string,
  entityId: number,
  name: string,
  unitId: number,
  batch_id?: string
}

export interface rarelyusedData {
  unt_id: number,
  utz_id: number,
  utz_rarely_used: boolean
}

export interface setSoakzoneData {
  enabled: boolean,
  utz_id: number,
  batch_id?: string
}

export interface rebootData {
  unt_id: number,
  timeout: number
}

export interface zonerssiData {
  unt_id: number,
  batch_id?: string
}

export interface restrictionDataForm {
  unitId: number,
  state: boolean
}

export interface quirestrictionData {
  form: {
    data: restrictionDataForm[]
  }
}

export interface installerapprestrictionData {
  form: {
    data: restrictionDataForm[]
  }
}

export interface discoveryData {
  form: {
    unt_id: number[]
  }
}

export interface refreshData {
  unt_id: number
}

export interface eventprocessorData {
  evt_id: number[]
}

export interface setStateData {
  partition: number,
  state: string,
  options: any[]
}

export interface changeCrowPasswordData {
  new_password1: any,
  new_password2: any,
  old_password: string
}

export interface authenticateToCrowData {
  username: any,
  password: any,
  grant_type: string,
  client_id: string,
  client_secret: string
}

export interface registerToCrowData {
  password1: string,
  password2: string,
  last_name: string,
  first_name: string,
  email: string
}

export interface changeZoneConfigData {
  name: string
}

export interface addUserData {
  name?: string,
  pendant_id?: number,
  phone_number?: number,
  user_code?: string,
  remote?: boolean,
  disarm?: boolean,
  stay?: boolean,
  arm?: boolean,
  disarm_stay?: boolean,
  can_edit_himself?: boolean,
  can_edit_all_users?: boolean,
  areas?: any
}

export interface updateUserData {
  name?: string,
  pendant_id?: number,
  phone_number?: number,
  remote?: boolean,
  disarm?: boolean,
  stay?: boolean,
  arm?: boolean,
  disarm_stay?: boolean,
  can_edit_himself?: boolean,
  can_edit_all_users?: boolean,
  areas?: any
}

export interface updateAuthUserData {
  first_name?: string,
  last_name?: string
}

export interface updatePanelByIdData {
  name?: string,
  notifications_filter?: {
    alarm?: boolean
  },
  control_panel?: {
    mac?: string,
    notifications_filter?: {
      troubles?: boolean,
      arm?: boolean
    }
  }
}

export interface setMaintenanceData {
  control_panel_mac: string
}

export interface updateCommunicationDectsData {
  phone: any
}

export interface updatePanelNameDataCrow {
  name: string,
  control_panel: {
    mac: string
  }
}

export interface updatePanelNameDataTyco {
  panel_serial: string,
  alias: string
}

export interface updatePanelLocationData {
  name: string,
  control_panel: {
    longitude: any,
    latitude: any,
    mac: string
  }
}

export interface createScheduleData {
  action: string,
  created: string,
  disabled: boolean,
  days_of_week: any[],
  hour: number,
  minute: number,
  id: number,
  next_schedule: string,
  params: any,
  control_panel_user: any,
  timezone: string,
  updated: string
}

export interface updateNotificationsByEmailData {
  key: string,
  receive_pictures?: boolean,
  notifications_filter: {
    troubles: boolean,
    arm: boolean,
    alarm: boolean,
    information: boolean,
    configuration: boolean,
    take_picture: boolean,
    user_association: boolean,
    all: boolean
  }
}

export interface addEmailData {
  key: string
}

export interface changeAreaConfigurationData {
  name: string,
  exit_delay: string,
  stay_exit_delay: string
}

export interface addPanelDataCrow {
  name: string;
  user_code: string,
  control_panel: {
    mac: string;
    remote_access_password: string
  }
}

export interface addPanelDataTyco {
  alias: string,
  panel_serial: string,
  access_proof: string,
  master_user_code: string
}

export interface changeToPanicStateData {
  point: {
    longitude: number,
    latitude: number
  }
}

export interface CrowOutputParam {
  control_panel_mac?: string;
  output_id?: string;
  pageSize?: number;
  page?: number;
  type?: string;
  ordering?: string;
  interface_id?: string;
  from?: string;
  to?: string;
  email?: string;
  pw?: string;
  body?: addPanelDataCrow | changeToPanicStateData | changeAreaConfigurationData | addEmailData | updateNotificationsByEmailData | createScheduleData |
  updatePanelLocationData | updatePanelByIdData | updateAuthUserData | addUserData | updateUserData | changeZoneConfigData | registerToCrowData |
  authenticateToCrowData | changeCrowPasswordData | updatePanelNameDataCrow | bypassDataCrow | GetMeasurementsByDeviceData | loginFromCrowData | any;
  personalCode?: string;
  token?: string;
  phone?: any;
  http?: any;
  https?: any;
  sToken?: string;
  uToken?: string;
  format?: string;
  set?: string;
  url?: string;
  apiVersion?: string;
}

export interface TycoOutputParam {
  panel?: string;
  id?: string;
  id2?: string;
  pageSize?: number;
  page?: number;
  type?: string;
  ordering?: string;
  interface_id?: string;
  from?: string;
  to?: string;
  email?: string;
  pw?: string;
  body?: refreshData | setStateData | eventprocessorData | discoveryData | installerapprestrictionData | quirestrictionData | rebootData | setSoakzoneData | rarelyusedData | setLabelData | walkteststartData | walkteststopData | zoneaddData | zoneremoveData | enableKeypadData | disableKeypadData | refreshLogData | saveLocationData | remoteinspectionScheduleData | initiateinspectionData | createReportData | editInfoData | editData | panelLoginData | authToTycoData | updatePanelNameDataCrow | addPanelDataTyco | disabelSirenData | smartDeviceAssignData | bypassDataTyco | registerEmailNotificationData | setUserCodeData | setUserPartitionsData | setPanelNameData | updateVodModeData | sendPrivateEmailData | setDateTimeData | addIpCamData | setIpCamLocationData | zWaveEnableDriverData | zWaveEnrollModeData | zWaveStartNodeInfoData | zWaveSetValueData | zWaveSetNodeLocationData | zWaveResetDriverData | zWaveDeleteModeData | setPgmTypeData | editPgmData | disablePgmData | wifiEnableDisableData | wifiConnectData | enrollDeviceData | removeDeviceData | updateDeviceData | getPushOptionsData | emailNotificationsData | loginToZwareData | logoutToZwareData | zwif_basic_setData | zwif_basic_selectData | zwif_switch_setData | zwif_switch_selectData | zwnode_get_ep_listData | zwep_get_if_listData | any;
  personalCode?: string;
  token?: string;
  phone?: any;
  http?: any;
  https?: any;
  sToken?: string;
  uToken?: string;
  format?: string;
  set?: string;
  period?: string;
  zones?: string;
  metrics?: string;
  url: string;
  apiVersion: string;
}

```

### Ionic:

3. The SDK can be used in a Service in the following way:

```javascript
import { Injectable, NgZone } from '@angular/core';
import { TroubleApi, BatchApi, UnitApi, AuthApi, OutputsApi, AreasApi, CamerasApi, ZonesApi, CrowOutputParam, TycoOutputParam, DeviceTypes, EventsApi, MeasurementsApi, KeypadsApi, UsersApi, ModuleApi, NotificationApi, PanelApi, ScheduleApi } from '@inclouded/amsmart2-device'
import { HttpClient } from '@angular/common/http';
import { Platform } from '@ionic/angular';

@Injectable()
export class Amsmart2DeviceService {
    AreasApi: AreasApi;
    AuthApi: AuthApi;
    AuthApiTyco: AuthApi;
    BatchApiTyco: BatchApi;
    CamerasApi: CamerasApi;
    CamerasApiTyco: CamerasApi;
    CommunicationApi: CommunicationApi;
    DetectorApiTyco: DetectorApi;
    EventsApi: EventsApi;
    EventsApiTyco: EventsApi;
    KeyfobsApiTyco: KeyfobsApi;
    KeypadsApi: KeypadsApi;
    MaintenanceApi: MaintenanceApi;
    MeasurementsApi: MeasurementsApi;
    ModuleApi: ModuleApi;
    ModuleApiTyco: ModuleApi;
    NotificationApi: NotificationApi;
    NotificationApiTyco: NotificationApi;
    OutputsApi: OutputsApi;
    PanelApi: PanelApi;
    PanelApiTyco: PanelApi;
    PmaxconfigApiTyco: PmaxconfigApi;
    ProcessApiTyco: ProcessApi;
    ScheduleApi: ScheduleApi;
    SystemApiTyco: SystemApi;
    TroubleApi: TroubleApi;
    TroubleApiTyco: TroubleApi;
    UnitApiTyco: UnitApi;
    UsersApi: UsersApi;
    UsersApiTyco: UsersApi;
    ZonesApi: ZonesApi;
    ZonesApiTyco: ZonesApi;
    ZwareApiTyco: ZwareApi;
    
    constructor(private http: HttpClient, private zone: NgZone, private platform: Platform) {
        this.AreasApi = new AreasApi(DeviceTypes.crow);
        this.AuthApi = new AuthApi(DeviceTypes.crow);
        this.AuthApiTyco = new AuthApi(DeviceTypes.tyco);
        this.BatchApiTyco = new BatchApi(DeviceTypes.tyco);
        this.CamerasApi = new CamerasApi(DeviceTypes.crow);
        this.CamerasApiTyco = new CamerasApi(DeviceTypes.tyco);
        this.CommunicationApi = new CommunicationApi(DeviceTypes.crow);
        this.DetectorApiTyco = new DetectorApi(DeviceTypes.tyco);
        this.EventsApi = new EventsApi(DeviceTypes.crow);
        this.EventsApiTyco = new EventsApi(DeviceTypes.tyco);
        this.KeyfobsApiTyco = new KeyfobsApi(DeviceTypes.tyco);
        this.KeypadsApi = new KeypadsApi(DeviceTypes.crow);
        this.MaintenanceApi = new MaintenanceApi(DeviceTypes.crow);
        this.MeasurementsApi = new MeasurementsApi(DeviceTypes.crow);
        this.ModuleApi = new ModuleApi(DeviceTypes.crow);
        this.ModuleApiTyco = new ModuleApi(DeviceTypes.tyco);
        this.NotificationApi = new NotificationApi(DeviceTypes.crow);
        this.NotificationApiTyco = new NotificationApi(DeviceTypes.tyco);
        this.OutputsApi = new OutputsApi(DeviceTypes.crow);
        this.PanelApi = new PanelApi(DeviceTypes.crow);
        this.PanelApiTyco = new PanelApi(DeviceTypes.tyco);
        this.PmaxconfigApiTyco = new PmaxconfigApi(DeviceTypes.tyco);
        this.ProcessApiTyco = new ProcessApi(DeviceTypes.tyco);
        this.ScheduleApi = new ScheduleApi(DeviceTypes.crow);
        this.SystemApiTyco = new SystemApi(DeviceTypes.tyco);
        this.TroubleApi = new TroubleApi(DeviceTypes.crow);
        this.TroubleApiTyco = new TroubleApi(DeviceTypes.tyco);
        this.UnitApiTyco = new UnitApi(DeviceTypes.tyco);
        this.UsersApi = new UsersApi(DeviceTypes.crow);
        this.UsersApiTyco = new UsersApi(DeviceTypes.tyco);
        this.ZonesApi = new ZonesApi(DeviceTypes.crow);
        this.ZonesApiTyco = new ZonesApi(DeviceTypes.tyco);
        this.ZwareApiTyco = new ZwareApi(DeviceTypes.tyco);
    }

    GetTroubles(params: CrowOutputParam | TycoOutputParam) {
        return this.TroubleApi.GetTroubles(params);
    }

    // ...
}

/*
Example params:

import { HttpClient, HttpHeaders } from '@angular/common/http';

constructor(private http: HttpClient, ...) {
  ...
    }

const paramsCrow: CrowOutputParam = {
    control_panel_mac: '<panel_mac>',
    output_id: '<id>',
    pageSize: '<pageSize>',
    page: '<page>',
    // ordering: 'asc',
    interface_id: '<interface_id>',
    body: {},
    token: '<token>',
    http: this.http
  };

const paramsTyco: TycoOutputParam = {
    panel: '<panel_mac>',
    url: 'ipalarm.no',
    apiVersion: '8.0',
    id: '<id>',
    pageSize: '<pageSize>',
    page: '<page>',
    // ordering: 'asc',
    interface_id: '<interface_id>',
    http: this.http,
    sToken: '<stoken>',
    uToken: '<utoken>',
    body: {}
  };
*/

```

### Node.js:

3. The SDK can be used in the following way:

```javascript

import { TroubleApi, BatchApi, UnitApi, AuthApi, OutputsApi, AreasApi, CamerasApi, ZonesApi, CrowOutputParam, TycoOutputParam, DeviceTypes, EventsApi, MeasurementsApi, KeypadsApi, UsersApi, ModuleApi, NotificationApi, PanelApi, ScheduleApi, setStateData, addEmailData, createScheduleData } from '@inclouded/amsmart2-device';

const https = require('https');

const paramsCrow: CrowOutputParam = {
    control_panel_mac: '<panel_mac>',
    output_id: '<id>',
    pageSize: '<pageSize>',
    page: '<page>',
    // ordering: 'asc',
    interface_id: '<interface_id>',
    body: {},
    token: '<token>',
    https: https
  };

const paramsTyco: TycoOutputParam = {
    panel: '<panel_mac>',
    url: 'ipalarm.no',
    apiVersion: '8.0',
    id: '<id>',
    pageSize: '<pageSize>',
    page: '<page>',
    // ordering: 'asc',
    interface_id: '<interface_id>',
    https: https,
    sToken: '<stoken>',
    uToken: '<utoken>',
    body: {}
  };

// Few examples

const AreasApi = new AreasApi(DeviceTypes.crow);
const AuthApi = new AuthApi(DeviceTypes.crow);
const AuthApiTyco = new AuthApi(DeviceTypes.tyco);
const BatchApiTyco = new BatchApi(DeviceTypes.tyco);
const CamerasApi = new CamerasApi(DeviceTypes.crow);
const CamerasApiTyco = new CamerasApi(DeviceTypes.tyco);
const CommunicationApi = new CommunicationApi(DeviceTypes.crow);
const DetectorApiTyco = new DetectorApi(DeviceTypes.tyco);
const EventsApi = new EventsApi(DeviceTypes.crow);
const EventsApiTyco = new EventsApi(DeviceTypes.tyco);
const KeyfobsApiTyco = new KeyfobsApi(DeviceTypes.tyco);
const KeypadsApi = new KeypadsApi(DeviceTypes.crow);
const MaintenanceApi = new MaintenanceApi(DeviceTypes.crow);
const MeasurementsApi = new MeasurementsApi(DeviceTypes.crow);
const ModuleApi = new ModuleApi(DeviceTypes.crow);
const ModuleApiTyco = new ModuleApi(DeviceTypes.tyco);
const NotificationApi = new NotificationApi(DeviceTypes.crow);
const NotificationApiTyco = new NotificationApi(DeviceTypes.tyco);
const OutputsApi = new OutputsApi(DeviceTypes.crow);
const PanelApi = new PanelApi(DeviceTypes.crow);
const PanelApiTyco = new PanelApi(DeviceTypes.tyco);
const PmaxconfigApiTyco = new PmaxconfigApi(DeviceTypes.tyco);
const ProcessApiTyco = new ProcessApi(DeviceTypes.tyco);
const ScheduleApi = new ScheduleApi(DeviceTypes.crow);
const SystemApiTyco = new SystemApi(DeviceTypes.tyco);
const TroubleApi = new TroubleApi(DeviceTypes.crow);
const TroubleApiTyco = new TroubleApi(DeviceTypes.tyco);
const UnitApiTyco = new UnitApi(DeviceTypes.tyco);
const UsersApi = new UsersApi(DeviceTypes.crow);
const UsersApiTyco = new UsersApi(DeviceTypes.tyco);
const ZonesApi = new ZonesApi(DeviceTypes.crow);
const ZonesApiTyco = new ZonesApi(DeviceTypes.tyco);
const ZwareApiTyco = new ZwareApi(DeviceTypes.tyco);

// tyco

function getPanelStatus() {
    try {
      paramsTyco.body = {
        email: '<email>',
        password: '<password>',
        app_id: 'xxxxxx'
      }
      AuthApi.Authenticate(paramsTyco).subscribe((result: any) => {
        console.log('result: ', result);
        console.log('resulttoken: ', result.user_token);
        paramsTyco.uToken = result.user_token;
        paramsTyco.body = {
          panel_serial: '<panel_serial>',
          user_code: '<user_code>',
          app_id: 'xxxxxx'
        }
        console.log(paramsTyco);
        PanelApiTyco.PanelLogin(paramsTyco).subscribe((result: any) => {
          console.log('result: ', result);
          console.log('resultsession: ', result.session_token);
          paramsTyco.sToken = result.session_token;
          PanelApiTyco.GetPanelStatus(paramsTyco).subscribe((result: any) => {
            console.log('GetPanelStatus: ', result);
          });
        });
      });
    } catch (err) {
      console.log(err);
    }
  }

  // crow

  function GetZones() {
    try {
      ZonesApi.GetZones(paramsCrow).subscribe((result: any) => {
        console.log('result: ', result);
      });
    } catch (err) {
      console.log(err);
    }
  }

```

4. List of the SDK functions:

- AreasApi: GetAreas(Crow), GetAreasById(Crow), Arm(Crow), Disarm(Crow), Stay(Crow), changeAreaConfiguration(Crow)
- AuthApi: Register(Crow), Authenticate(Crow, Tyco), ChangePassword(Crow, Tyco), ResetPassword(Tyco), ResetPasswordComplete(Tyco), Logout(Crow, Tyco), Login(Crow), GetVersion(Tyco)
- BatchApi: GetBatchLists(Tyco), GetMine(Tyco)
- CamerasApi: GetPictures(Crow), GetPicturesById(Crow), TakePicture(Crow), DeletePicture(Crow), GetCameras(Tyco), DemandVideo(Tyco), DemandVideoFrames(Tyco), DemandVideoStatus(Tyco), MakeVideo(Tyco), IpCameras(Tyco), UpdateIpCameras(Tyco), StartVideoIpCam(Tyco), StopVideoIpCam(Tyco), StartVideoRecordIpCam(Tyco), StopVideoRecordIpCam(Tyco), AddIpCam(Tyco), DeleteIpCam(Tyco), SetIpCamLocation(Tyco), MoveIpCamera(Tyco)
- CommunicationApi: GetCommunicationDects(Crow), UpdateCommunicationDects(Crow)
- DetectorApi: GetSmartDevices(Tyco), GetSmartDevicesSettings(Tyco), SmartDeviceAssign(Tyco)
- EventsApi: GetEvents(Crow, Tyco), Eventprocessor(Tyco), GetAlarms(Tyco), GetAlarmPreviews(Tyco), GetAlarmVideo(Tyco), GetAlarmVideoFrames(Tyco), GetAlerts(Tyco)
- KeyfobsApi: GetDevices(Tyco), EnrollDevice(Tyco), RemoveDevice(Tyco), UpdateDevice(Tyco)
- KeypadsApi: GetKeypads(Crow), changeKeypadConfig(Crow)
- MaintenanceApi: GetMaintenanceInfo(Crow), SetMaintenance(Crow), DeleteMaintenance(Crow)
- MeasurementsApi: GetMeasurements(Crow), GetMeasurementsByDevice(Crow)
- ModuleApi: GetEthernetInfo(Crow), GetWifiInfo(Crow), GetGsmInfo(Crow), GetRadioInfo(Crow), GetEthernetConfig(Crow), GetWifiConfig(Crow), GetGsmCofing(Crow), ZWaveNodesList(Tyco), ZWaveNodeInfo(Tyco), ZWaveNodeValues(Tyco), ZWaveEnableDriver(Tyco), ZWaveStartNodesList(Tyco), ZWaveEnrollMode(Tyco), ZWaveDeleteMode(Tyco), ZWaveStartNodeInfo(Tyco), ZWaveSetValue(Tyco), ZWaveSetNodeLocation(Tyco), ZWaveResetDriver(Tyco), HomeAutomationDevices(Tyco), PgmTypes(Tyco), PgmList(Tyco), SetPgmType(Tyco), SendHomeAutCommand(Tyco), SetHomeDeviceLocation(Tyco), EditPgm(Tyco), DisablePgm(Tyco)
- NotificationApi: GetNotificationsByEmail(Crow), getEmailById(Crow), AddEmail(Crow), DeleteEmail(Crow), UpdateNotificationsByEmail(Crow), GetPushOptions(Tyco), EmailNotifications(Tyco), RegisterEmailNotification(Tyco)
- OutputsApi: GetOutputs(Crow), GetOutputsById(Crow), On(Crow), Off(Crow), ChangeOutputConfig(Crow)
- PanelApi: SetState(Tyco), AddPanel(Crow, Tyco), GetConfigMode(Crow), GetDects(Crow), ChangeToPanicState(Crow), UpdatePanelLocation(Crow), UpdatePanelName(Crow, Tyco), DeletePanelConnection(Crow), ConnectToPanel(Crow), GetConnection(Crow), GetPanels(Crow, Tyco), GetPanelById(Crow), GetPanelUser(Crow), DeletePanel(Crow), GetPanelUsers(Crow), PanelLogin(Tyco), ActivateSiren(Tyco), DisabelSiren(Tyco), GetPanelInfo(Tyco), GetFeatureSet(Tyco), GetPanelLocations(Tyco), SetPanelName(Tyco), WakeupSms(Tyco), GeoRedundancyOptions(Tyco), SendPrivateEmail(Tyco), UpdateVodMode(Tyco), CurrentSessionCount(Tyco), SetDateTime(Tyco), MeteoInfo(Tyco), WifiStatus(Tyco), Advertisment(Tyco), StartRefreshMeteo(Tyco), StartWifiStatus(Tyco), WifiEnableDisable(Tyco), WifiConnect(Tyco), SwitchToProgrammingMode(Tyco), GetPanelStatus(Tyco)
- PmaxconfigApi: Refresh(Tyco), Upload(Tyco), RefreshLog(Tyco), GetLog(Tyco), GetState(Tyco)
- ProcessApi: GetProcessStatus(Tyco), GetProcesses(Tyco)
- ScheduleApi: GetSchedules(Crow), CreateSchedule(Crow), DeleteSchedule(Crow), UpdateSchedule(Crow)
- SystemApi: Reboot(Tyco)
- TroubleApi: GetTroubles(Crow, Tyco), DeleteTroubles(Crow)
- UnitApi: GetAllUnits(Tyco), GetDiagnosticFeatures(Tyco), GetFirmwareLists(Tyco), GetGeneralForms(Tyco), GetGeneralIsonlines(Tyco), GetDiagnosticLists(Tyco), GetAllRemarks(Tyco), GetDiagnosticState(Tyco), GetRemoteinspectionUnits(Tyco), GetAllReports(Tyco), Discovery(Tyco), Installerapprestriction(Tyco), Quirestriction(Tyco), Zonerssi(Tyco), SetSoakzone(Tyco), Rarelyused(Tyco), SetLabel(Tyco), Walkteststart(Tyco), GetWalktest(Tyco), Walkteststop(Tyco), Zoneadd(Tyco), Zoneremove(Tyco), EnableKeypad(Tyco), DisableKeypad(Tyco), GetLocations(Tyco), SaveLocation(Tyco), GetRemoteinspectionResults(Tyco), RemoteinspectionSchedule(Tyco), Initiateinspection(Tyco), GetReportResults(Tyco), GetReportExpectedResults(Tyco), CreateReport(Tyco), EditInfo(Tyco), Edit(Tyco)
- UsersApi: GetUsers(Crow, Tyco), GetUsersById(Crow), AuthUser(Crow), UpdateAuthUser(Crow), AddUser(Crow), DeleteUser(Crow), UpdateUser(Crow), GetUnitUsers(Tyco), SetUserCode(Tyco), SetUserPartitions(Tyco)
- ZonesApi: GetZones(Crow), GetZonesById(Crow), Bypass(Crow, Tyco). ChangeZoneConfig(Crow)
- ZwareApi: Login(Tyco), Logout(Tyco), BinarySwitchSelect(Tyco), BinarySwitchOn(Tyco), BinarySwitchOff(Tyco), BasicSelect(Tyco), BasicOn(Tyco), BasicOff(Tyco), GetNodeEndpoints(Tyco), GetNodeEndpointInterfaces(Tyco)

Note: If you use Node.js then install this dependency: https://www.npmjs.com/package/form-data

Developer: Zoltán R. Jánki (jankiz@inf.u-szeged.hu), Gábor Simon (simonovszkij@gmail.com)