Mi alarma AJAX completamente integrada con Home Assistant

Cómo integré mi alarma AJAX en Home Assistant

Tal y como comenté hace unas semanas en mi post Movistar Prosegur Alarmas: un paso atrás en la integración con Home Assistant, he instalado una alarma AJAX en mi domicilio.

Y, pese a las voces que decían que no era posible, la tengo ya conectada tanto a una Central Receptora de Alarmas (CRA) como a mi central domótica de Home Assistant.

Desde mi panel de control domótico puedo conectarla y desconectarla fácilmente, así como conocer el estado tanto de la central de la alarma como de los sensores de apertura en tiempo real, así como datos de temperaturas medidas por los sensores de movimiento.

Imagen del estado de mi alarma en mi Home Assistant doméstico

Todo ello, sin necesidad de hackear un mando de la alarma para conectarlo a un ESP32 para su control desde ESPHome, y sólo gastándome 8 € en la adquisición del plugin oficial de Jeedom para la conexión con alarmas AJAX (plugin que, por cierto, tiene licencia AGPL, por lo que es open source y libre).

Cómo lo he conseguido

Tenía claro que quería integrar la alarma AJAX completamente en mi ecosistema inteligente. Inicialmente parecía un reto complicado, porque AJAX no tiene integración directa con Home Assistant (y parece que, a corto plazo no la va a tener a no ser que Nabu Casa, oficialmente, dé los pasos necesarios).

La única integración existente emplea el protocolo SIA de seguridad, que es uno de los que utiliza la alarma AJAX para conectarse con la central receptora de alarmas (CRA). Esta alternativa permite monitorizar el estado de alarma y recibir saltos de alarma generados por los sensores cuando la alarma está armada. Sin embargo, tuve que descartar esta opción completamente, ya que no es posible usarla si la alarma AJAX se conecta a una CRA externa, ya que sólo se permite la conexión con una única central receptora.

Por suerte, tras investigar y experimentar, encontré una solución: usar Jeedom y MQTT como puentes intermedios.

Jeedom

Jeedom es otra plataforma domótica abierta, similar en cuanto alcance a Home Assistant, pero mucho menos popular. Sin embargo, cuenta con un plugin específico para AJAX que se conecta a la alarma a través de la nube de AJAX, empleando un sistema similar al usado por las app móviles de AJAX. Este plugin es de pago (8€ en un único pago).

La existencia de este componente fue clave, porque permitió conectar la alarma AJAX fácilmente y tener acceso inmediato al estado de los sensores y de la alarma, todo ello sin emplear la interfaz SIA de interconexión a CRAs .

Así que lo primero fue configurar una instalación nueva de Jeedom en mi servidor doméstico de máquinas virtuales (donde ya ejecuto, entre otros, mi instalación de Frigate). Basada en Debian 11, tener un Jeedom arrancado fue sencillo.

Después, conectarlo a mi alarma AJAX no fue demasiado complicado. Simplemente, comprar el plugin en el market de Jeedom con mi usuario y seguir las instrucciones que, básicamente implican:

  • Crear un nuevo usuario en la central AJAX que será el empleado por la domótica, y darle los permisos oportunos.
  • En la configuración del plugin, emplear las credenciales de este nuevo usuario recién creado.
  • Invitar a [email protected] como usuario de la alarma (paso necesario para poder recibir eventos desde la nube de AJAX).
  • Muy importante, configurar el acceso externo al sistema Jeedom, de manera que pueda accederse a él desde Internet (sin esto, los eventos desde la nube de AJAX no podrán recibirse).

Tras configurar esto, y pulsar el correspondiente botón de sincronización, todos los equipos AJAX aparecerán en Jeedom.

Envío de datos de Jeedom a Home Assistant

A partir de ahí, solo quedaba lograr que la información viajara hasta Home Assistant. Aquí es donde entra MQTT, un protocolo ligero de comunicación ampliamente utilizado en domótica.

Configuré en Jeedom el plugin gratuito MQTT Manager para que se conectara al servidor MQTT Mosquitto que tengo configurado en mi sistema Home Assistant y que ya recibía el estado de mis equipos Tasmota, mi caldera que comunica mediante Ebusd, y todos mis equipos Zigbee mediante Zigbee2MQTT. También configuré que publicara automáticamente todos los eventos generados en todos los dispositivos mediante MQTT.

Luego, configuré manualmente en el fichero de configuración yaml de sensores MQTT todos los botones para la gestión del estado de la alarma, así como los binary_sensors y los sensors para recibir los distintos estados.

button:

  # Ojo, sólo puede haber una sección sensor, una sección binary_sensor y una sección button. Si hay varias, se hará caso
  # sólo a la última

  # Botones para actuar sobre la central

  - name: "Armar alarma"
    # Ojo, el "15" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    command_topic: "jeedom/cmd/set/15" 
    unique_id: "control_arm_ajax_from_jeedom"
    payload_press: "ARM"
    retain: false
    device:
        identifiers: "Alarma AJAX via Jeedom MQTT"
        name: "Alarma AJAX"
        model: "Hub 2 Plus"
        manufacturer: "AJAX"
   
  - name: "Alarma Modo Noche"
    # Ojo, el "16" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    command_topic: "jeedom/cmd/set/16"
    unique_id: "control_night_mode_ajax_from_jeedom"
    payload_press: "NIGHT MODE"
    retain: false
    device:
        identifiers: "Alarma AJAX via Jeedom MQTT"
        name: "Alarma AJAX"
        model: "Hub 2 Plus"
        manufacturer: "AJAX"
   
  - name: "Desarmar alarma"
    # Ojo, el "17" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    command_topic: "jeedom/cmd/set/17"
    unique_id: "control_disarm_ajax_from_jeedom"
    payload_press: "DISARM"
    retain: false
    device:
        identifiers: "Alarma AJAX via Jeedom MQTT"
        name: "Alarma AJAX"
        model: "Hub 2 Plus"
        manufacturer: "AJAX"

  - name: "Parar alarma incendio"
    # Ojo, el "19" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    command_topic: "jeedom/cmd/set/19"
    unique_id: "mute_fire_detectors_ajax_from_jeedom"
    payload_press: "muteFireDetectors"
    retain: false
    device:
        identifiers: "Alarma AJAX via Jeedom MQTT"
        name: "Alarma AJAX"
        model: "Hub 2 Plus"
        manufacturer: "AJAX"

sensor:

  # Sensores de la central AJAX

  - name: "Estado Alarma Ajax"
    # Ojo, el "1" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/1"
    unique_id: "estado_alarma_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    expire_after: 2629746
    device:
        identifiers: "Alarma AJAX via Jeedom MQTT"
        name: "Alarma AJAX"
        model: "Hub 2 Plus"
        manufacturer: "AJAX"

  - name: "Último evento"
    # Ojo, el "3" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/3"
    unique_id: "ultimo_evento_alarma_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    expire_after: 2629746
    device:
        identifiers: "Alarma AJAX via Jeedom MQTT"
        name: "Alarma AJAX"
        model: "Hub 2 Plus"
        manufacturer: "AJAX"

  - name: "Código último evento"
    # Ojo, el "4" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/4"
    unique_id: "codigo_ultimo_evento_alarma_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    expire_after: 2629746
    device:
        identifiers: "Alarma AJAX via Jeedom MQTT"
        name: "Alarma AJAX"
        model: "Hub 2 Plus"
        manufacturer: "AJAX"
    
  - name: "Intensidad señal móvil"
    # Ojo, el "5" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/7"
    unique_id: "gsm_signal_level_alarma_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    expire_after: 2629746
    device:
        identifiers: "Alarma AJAX via Jeedom MQTT"
        name: "Alarma AJAX"
        model: "Hub 2 Plus"
        manufacturer: "AJAX"

  - name: "Tipo red móvil"
    # Ojo, el "6" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/8"
    unique_id: "gsm_network_status_alarma_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    expire_after: 2629746
    device:
        identifiers: "Alarma AJAX via Jeedom MQTT"
        name: "Alarma AJAX"
        model: "Hub 2 Plus"
        manufacturer: "AJAX"

  - name: "Estado batería"
    # Ojo, el "13" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/13"
    unique_id: "battery_state_alarma_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    expire_after: 2629746
    device:
        identifiers: "Alarma AJAX via Jeedom MQTT"
        name: "Alarma AJAX"
        model: "Hub 2 Plus"
        manufacturer: "AJAX"
        
  - name: "Carga batería"
    # Ojo, el "14" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/14"
    unique_id: "battery_charge_level_alarma_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    expire_after: 2629746
    device:
        identifiers: "Alarma AJAX via Jeedom MQTT"
        name: "Alarma AJAX"
        model: "Hub 2 Plus"
        manufacturer: "AJAX"
        
  - name: "Puerta 1 Temperatura"
    # Ojo, el "74" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/74"
    unique_id: "temperatura_puerta_1_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    device_class: temperature
    state_class: measurement
    unit_of_measurement: "°C"
    expire_after: 2629746
    device:
        identifiers: "Puerta 1 AJAX via Jeedom MQTT"
        name: "Sensor puerta 1 AJAX"
        model: "DoorProtect"
        manufacturer: "AJAX"
      
  - name: "Puerta 2 Temperatura"
    # Ojo, el "94" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/94"
    unique_id: "temperatura_puerta_2_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    device_class: temperature
    state_class: measurement
    unit_of_measurement: "°C"
    expire_after: 2629746
    device:
        identifiers: "Puerta 2 AJAX via Jeedom MQTT"
        name: "Sensor puerta 2 AJAX"
        model: "DoorProtect"
        manufacturer: "AJAX"
    
  - name: "Puerta 3 Temperatura"
    # Ojo, el "84" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/84"
    unique_id: "temperatura_puerta_3_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    device_class: temperature
    state_class: measurement
    unit_of_measurement: "°C"
    expire_after: 2629746
    device:
        identifiers: "Puerta 3 AJAX via Jeedom MQTT"
        name: "Sensor puerta 3 AJAX"
        model: "DoorProtect"
        manufacturer: "AJAX"
    
  - name: "Detector 1 Temperatura"
    # Ojo, el "40" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/40"
    unique_id: "temperatura_detector_1_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    device_class: temperature
    state_class: measurement
    unit_of_measurement: "°C"
    expire_after: 2629746
    device:
        identifiers: "Detector 1 AJAX via Jeedom MQTT"
        name: "Detector 1 AJAX"
        model: "MotionCam (PhOD)"
        manufacturer: "AJAX"
    
  - name: "Detector 2 Temperatura"
    # Ojo, el "56" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/56"
    unique_id: "temperatura_detector_2_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    device_class: temperature
    state_class: measurement
    unit_of_measurement: "°C"
    expire_after: 2629746
    device:
        identifiers: "Detector 2 AJAX via Jeedom MQTT"
        name: "Detector 2 AJAX"
        model: "MotionCam (PhOD)"
        manufacturer: "AJAX"
    
  - name: "Detector 3 Temperatura"
    # Ojo, el "64" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/64"
    unique_id: "temperatura_detector_3_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    device_class: temperature
    state_class: measurement
    unit_of_measurement: "°C"
    expire_after: 2629746
    device:
        identifiers: "Detector 3 AJAX via Jeedom MQTT"
        name: "Detector 3 AJAX"
        model: "MotionCam (PhOD)"
        manufacturer: "AJAX"
    
  - name: "Detector 4 Temperatura"
    # Ojo, el "32" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/32"
    unique_id: "temperatura_detector_4_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    device_class: temperature
    state_class: measurement
    unit_of_measurement: "°C"
    expire_after: 2629746
    device:
        identifiers: "Detector 4 AJAX via Jeedom MQTT"
        name: "Detector 4 AJAX"
        model: "MotionCam (PhOD)"
        manufacturer: "AJAX"
    
  - name: "Detector 5 Temperatura"
    # Ojo, el "48" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/48"
    unique_id: "temperatura_detector_5_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    device_class: temperature
    state_class: measurement
    unit_of_measurement: "°C"
    expire_after: 2629746
    device:
        identifiers: "Detector 5 AJAX via Jeedom MQTT"
        name: "Detector 5 AJAX"
        model: "MotionCam (PhOD)"
        manufacturer: "AJAX"
    
  - name: "Detector 6 Temperatura"
    # Ojo, el "24" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/24"
    unique_id: "temperatura_detector_6_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    device_class: temperature
    state_class: measurement
    unit_of_measurement: "°C"
    expire_after: 2629746
    device:
        identifiers: "Detector 6 AJAX via Jeedom MQTT"
        name: "Detector 6 AJAX"
        model: "MotionCam (PhOD)"
        manufacturer: "AJAX"

binary_sensor:
  - name: "Manipulación alarma"
    # Ojo, el "5" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/5"
    unique_id: "manipulacion_alarma_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    expire_after: 2629746
    device_class: tamper
    payload_on: "1"
    payload_off: "0"
    device:
        identifiers: "Alarma AJAX via Jeedom MQTT"
        name: "Alarma AJAX"
        model: "Hub 2 Plus"
        manufacturer: "AJAX"

  - name: "Conexión red móvil"
    # Ojo, el "6" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/6"
    unique_id: "gsm_status_alarma_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    expire_after: 2629746
    device_class: connectivity
    payload_on: "1"
    payload_off: "0"
    device:
        identifiers: "Alarma AJAX via Jeedom MQTT"
        name: "Alarma AJAX"
        model: "Hub 2 Plus"
        manufacturer: "AJAX"

  - name: "Datos móviles activos"
    # Ojo, el "9" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/9"
    unique_id: "gsm_gprs_enabled_alarma_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    expire_after: 2629746
    device_class: connectivity
    payload_on: "1"
    payload_off: "0"
    device:
        identifiers: "Alarma AJAX via Jeedom MQTT"
        name: "Alarma AJAX"
        model: "Hub 2 Plus"
        manufacturer: "AJAX"

  - name: "Conexión a CRA"
    # Ojo, el "10" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/10"
    unique_id: "cms_active_channels_alarma_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    expire_after: 2629746
    device_class: connectivity
    payload_on: "1"
    payload_off: "0"
    device:
        identifiers: "Alarma AJAX via Jeedom MQTT"
        name: "Alarma AJAX"
        model: "Hub 2 Plus"
        manufacturer: "AJAX"

  - name: "Ethernet activo"
    # Ojo, el "11" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/11"
    unique_id: "ethernet_enabled_alarma_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    expire_after: 2629746
    device_class: connectivity
    payload_on: "1"
    payload_off: "0"
    device:
        identifiers: "Alarma AJAX via Jeedom MQTT"
        name: "Alarma AJAX"
        model: "Hub 2 Plus"
        manufacturer: "AJAX"

  - name: "Alimentación externa"
    # Ojo, el "12" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/12"
    unique_id: "externally_powered_alarma_ajax_from_jeedom"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    expire_after: 2629746
    device_class: power
    payload_on: "1"
    payload_off: "0"
    device:
        identifiers: "Alarma AJAX via Jeedom MQTT"
        name: "Alarma AJAX"
        model: "Hub 2 Plus"
        manufacturer: "AJAX"


  - name: "Puerta 1"
    # Ojo, el "72" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/72"
    unique_id: "estado_puerta_1_ajax_from_jeedom"
    device_class: door
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    payload_on: "0"
    payload_off: "1"
    expire_after: 2629746
    device:
        identifiers: "Puerta 1 AJAX via Jeedom MQTT"
        name: "Sensor puerta 1 AJAX"
        model: "DoorProtect"
        manufacturer: "AJAX"
    
  - name: "Puerta 2"
    # Ojo, el "92" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/92"
    unique_id: "estado_puerta_2_ajax_from_jeedom"
    device_class: door
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    payload_on: "0"
    payload_off: "1"
    expire_after: 2629746
    device:
        identifiers: "Puerta 2 AJAX via Jeedom MQTT"
        name: "Sensor puerta 2 AJAX"
        model: "DoorProtect"
        manufacturer: "AJAX"
    
  - name: "Puerta 3"
    # Ojo, el "82" corresponde al número de comando que Jeedom ha configurado para mi alarma. 
    # Cambiar por lo que corresponda
    state_topic: "jeedom/cmd/event/82"
    unique_id: "estado_puerta_3_ajax_from_jeedom"
    device_class: door
    payload_on: "0"
    payload_off: "1"
    value_template: '{% if value_json.value is defined and value_json.value != "" %}{{value_json.value}}{% else %}{{this.state}}{% endif %}'
    expire_after: 2629746
    device:
        identifiers: "Puerta 3 AJAX via Jeedom MQTT"
        name: "Sensor puerta 3 AJAX"
        model: "DoorProtect"
        manufacturer: "AJAX"


  
Expandir

Tras recargar las entidades MQTT configuradas manualmente desde Home Assistant, todos estos sensores comenzaron a mostrar información en tiempo real. Tras algunas pruebas, ajustes y correcciones menores, conseguí no solo visualizar el estado de la alarma desde mi panel de Home Assistant, sino también controlarla: armarla, desarmarla e integrarla en diversas automatizaciones.

Conclusión

Ahora puedo gestionar mi alarma AJAX desde Home Assistant con total fluidez, sin perder la confianza que me da mantener mi casa monitorizada por una CRA.

Puedo crear escenarios complejos que involucran iluminación, notificaciones avanzadas y acciones automáticas en función del estado de la alarma. También puedo detectar apertura de las puertas monitorizadas por los sensores de AJAX, sin importar que la alarma esté o no activa. La temperatura reportada por los sensores no está muy allá: parece que el umbral de generación de eventos está por encima del grado y medio, por lo que no es demasiado práctico emplear estos datos.

Esta integración no solo mejora la seguridad, sino que también hace que la gestión de mi hogar inteligente sea más práctica y cómoda que nunca.

10 comentarios en “Mi alarma AJAX completamente integrada con Home Assistant”

  1. Buenas David,

    Gracias por el tutorial, lo he estado realizando y a pesar de que esta funcionando casi-correctamente, es posible que para la actualización de los estados en tiempo real sea necesario tener contrato el Service Pack Power contrado para poder el DNS Market del jeedom pueda acceder a tu instancia.

    En mi caso, si que lo tengo configurado para que puede acceder externamente a través de un HA-Proxy (PFsense), pero creo que es necesario tener con ellos este «Service Pack» para que se actualicen en tiempo real.

    ¿Tu tuvistes algun problema al respecto con esto?

    Saludos y gracias 😉

    1. Hola.
      En mi caso tuve problemas similares que solucioné tras configurar correctamente la URL de External access. Básicamente, desde un móvil debes poder acceder a Jeedom a través de la dirección que configures aquí.
      El Service Pack sólo es necesario para que esta gestión se realice de forma automática. Yo tuve que configurar un puerto en mi router específico para esto, aprovechando la configuración de acceso desde el exterior que ya tenía montada con DuckDNS.

      1. Gracias David. perdona que también te escribí en la parte inglesa.

        Como te comentaba, en mi caso no me funciona, no se si será alguna configuración que tenga o que, pero no me quiero funcionar.

        Entiendo que el puerto que configuraste fue el 443 y el 80, ¿o es que Jeedom tiene algun puerto en especial?

        Gracias

  2. Rafael David Aguilar Muñoz

    Buenas, estoy pensando en coger una alarma AJAX pero me tira para atrás el precio del CRA, ¿podrías decirme con quién lo has contratado y el precio mensual?

  3. Que CRA tienes contratado?¿?¿ estoy montando una alarma Ajax en mi propiedad pero no encuentro una empres CRA que me de soporte, tienes alguna que funciones bien?¿?¿

  4. Buenas David. Muchas gracias por esta entrada.

    Entiendo que tienes total seguridad en lo que hace Jeedom y el plugin que se usa no? Es que lo de pasar la alarma por ahí no sé si termino de verlo, pero parece la única opción decente sin tener que comprar un mando para sacrificarlo.

    Muchas gracias de antemano.

  5. Hola, gracias por el tutorial de integración de Ajax con Jeedom y Home Assistant.

    Con SIA en Home Assistant es posible integrar los disparos de la alarma, las alertas de activación y desactivación dentro de automatizaciones.

    En mi caso, uso las siguientes automatizaciones:

    Alarma armada → Alexa lo anuncia.

    Alarma desarmada → Alexa lo anuncia.

    Alarma armada en modo noche → Alexa lo anuncia.

    Si la alarma se dispara → Alexa repite en bucle el mensaje: “¡Atención! Hay intrusos en la casa. ¡Voy a llamar a la policía!”.
    (Esto es solo un aviso — no realiza la llamada realmente, pero el intruso no lo sabe).

    También creé otra automatización para activar una sirena Zigbee fuera de Ajax.
    Si salgo de casa sin armar la alarma, Home Assistant me envía una notificación:
    tts_text: «¡Atención! Recuerda que la alarma no se ha armado»
    media_stream: alarm_stream_max

    Con SIA, más allá de armar y desarmar, puedo crear muchas automatizaciones útiles.
    Sin embargo, la única ventaja real que veo en integrar Ajax a través de Jeedom es poder armar la alarma desde HA — pero en mi opinión, esto es innecesario e incluso reduce la seguridad de Ajax, ya que depende de dos sistemas externos.

    Código SIA:
    https://docs.google.com/spreadsheets/d/1-N-RZVS8IiwM5zuw2u4gt8Bx_5xo_JOwuagHJgSJxUw/edit?gid=1861247#gid=1861247

    1. Mi principal problema respecto a integrar la alarma Ajax con SIA es que no es posible emplear esta integración si la alarma ya está configurada para ser monitorizada por una Central Receptora de Alarmas, como es mi caso.

      Además, por SIA solo se recibe el estado de los sensores de puerta cuando la alarma está conectada. Sin embargo, con la integración a través de Jeedom se puede recibir el estado de los sensores cuando estos cambian, independientemente de la activación o desactivación de la alarma.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

veces compartido
Scroll al inicio