Todas las colecciones
Sin Categoría
Código en Python Ejemplo para Panel AXPRO de HIKVISION usando Receiver API
Código en Python Ejemplo para Panel AXPRO de HIKVISION usando Receiver API

El Panel AXPRO es un HUB IoT que soporta dispositivos hasta 2 KM de distancia con soporte para repetidores

Jorge Saad avatar
Escrito por Jorge Saad
Actualizado hace más de una semana

Para utilizar las 12 funciones de la API en Python, primero necesitarás instalar la biblioteca requests. Si no la tienes, instálala usando pip:

pip install requests


A continuación, se presenta un ejemplo en Python que utiliza las 12 funciones de la API en un script paso a paso:

import requests
from requests.auth import HTTPDigestAuth

# Reemplaza con la dirección del host y la contraseña de tu sistema de alarma
host = "http://192.168.1.100"
contrasena = "tu_contraseña"

# Autenticación digest
auth = HTTPDigestAuth("admin", contrasena)

# Encabezados para solicitudes JSON
headers = {
"Content-Type": "application/json",
"Accept": "application/json"
}

# 1. Agregar dispositivo
url_agregar_dispositivo = f"{host}/ISAPI/ContentMgmt/DeviceMgmt/addDevice?format=json"
data_agregar_dispositivo = {
"DeviceInList": [
{
"Device": {
"protocolType": "ehomeV5",
"EhomeParams": {
"EhomeID": "A000001",
"EhomeKey": "12345abc"
},
"devName": "Panel Alarma 1",
"devType": "SecurityCP"
}
}
]
}
response = requests.post(url_agregar_dispositivo, json=data_agregar_dispositivo, auth=auth, headers=headers)
print("Agregar dispositivo:", response.json())

# 2. Lista de dispositivos
url_lista_dispositivos = f"{host}/ISAPI/ContentMgmt/DeviceMgmt/deviceList?format=json"
data_lista_dispositivos = {
"SearchDescription": {
"position": 0,
"maxResult": 100
}
}
response = requests.post(url_lista_dispositivos, json=data_lista_dispositivos, auth=auth, headers=headers)
print("Lista de dispositivos:", response.json())

# Asume que el primer dispositivo de la lista es el que queremos usar
dispositivo = response.json()["DeviceMgmt.DeviceList"][0]
devIndex = dispositivo["devIndex"]

# 3. Obtener capacidades
url_obtener_capacidades = f"{host}/ISAPI/SecurityCP/control/capabilities?format=json&devIndex={devIndex}"
response = requests.get(url_obtener_capacidades, auth=auth, headers=headers)
print("Obtener capacidades:", response.json())

# 4. Estatus de periféricos
url_estatus_perifericos = f"{host}/ISAPI/SecurityCP/status/exDevStatus?format=json&devIndex={devIndex}"
response = requests.get(url_estatus_perifericos, auth=auth, headers=headers)
print("Estatus de periféricos:", response.json())

# 5. Estatus de las zonas
url_estatus_zonas = f"{host}/ISAPI/SecurityCP/status/zones?format=json&devIndex={devIndex}"
response = requests.get(url_estatus_zonas, auth=auth, headers=headers)
print("Estatus de las zonas:", response.json())

# 6. Estatus de las particiones
url_estatus_particiones = f"{host}/ISAPI/SecurityCP/status/subSystems?format=json&devIndex={devIndex}"
response = requests.get(url_estatus_particiones, auth=auth, headers=headers)
print("Estatus de las particiones:", response.json())

# 7. Controlar relay
url_controlar_relay = f"{host

}/ISAPI/SecurityCP/control/exDevice?format=json&devIndex={devIndex}"
data_controlar_relay = {
"ExDevice": {
"channelID": 1,
"command": "open"
}
}
response = requests.put(url_controlar_relay, json=data_controlar_relay, auth=auth, headers=headers)
print("Controlar relay:", response.json())

8. Configurar zona
url_configurar_zona = f"{host}/ISAPI/SecurityCP/config/zones?format=json&devIndex={devIndex}"
data_configurar_zona = {
"Zones": {
"channelID": 1,
"zoneType": "Alarm",
"zoneName": "Zona 1",
"enabled": True
}
}
response = requests.put(url_configurar_zona, json=data_configurar_zona, auth=auth, headers=headers)
print("Configurar zona:", response.json())

9. Configurar partición
url_configurar_particion = f"{host}/ISAPI/SecurityCP/config/subSystems?format=json&devIndex={devIndex}"
data_configurar_particion = {
"SubSystems": {
"subSystemID": 1,
"subSystemName": "Partición 1",
"enabled": True
}
}
response = requests.put(url_configurar_particion, json=data_configurar_particion, auth=auth, headers=headers)
print("Configurar partición:", response.json())

10. Armado de partición
url_armado_particion = f"{host}/ISAPI/SecurityCP/control/subSystem?format=json&devIndex={devIndex}"
data_armado_particion = {
"SubSystem": {
"subSystemID": 1,
"command": "arm"
}
}
response = requests.put(url_armado_particion, json=data_armado_particion, auth=auth, headers=headers)
print("Armado de partición:", response.json())

11. Desarmado de partición
url_desarmado_particion = f"{host}/ISAPI/SecurityCP/control/subSystem?format=json&devIndex={devIndex}"
data_desarmado_particion = {
"SubSystem": {
"subSystemID": 1,
"command": "disarm"
}
}
response = requests.put(url_desarmado_particion, json=data_desarmado_particion, auth=auth, headers=headers)
print("Desarmado de particición:", response.json())

12. Eventos de alarma
url_eventos_alarma = f"{host}/ISAPI/Event/notification/alertStream?format=json"
data_eventos_alarma = {
"ChannelID": 1,
"reportType": "realTime",
"maxResults": 10
}
response = requests.post(url_eventos_alarma, json=data_eventos_alarma, auth=auth, headers=headers)
print("Eventos de alarma:", response.json())

¿Ha quedado contestada tu pregunta?