Alarme Diagral et API Jeedom

Ma question

Bonjour,

Dans le cadre de la migration de mon Jeedom vers HA, je souhaite interagir avec mon alarme Diagral via l’API Jeedom (vu qu’aucun intégration n’existe).
Récupérer le statut en rest et les actions avec les services rest devrait être ok.

Je vois dans l’exemple de la configuration par exemple alarm_control_panel.alarm_arm_away qui semble être un service, qui appelle une entité.
J’ai du mal à comprendre comment ça fonctionne exactement ?
Quelqu’un peu me donner un peu plus de détail, en gardant à l’esprit que le moyen de déclencher une action sur l’alarme, se fait par un call API sur le Jeedom, même chose pour récupérer le statut.

Ma configuration


System Information

version core-2023.4.5
installation_type Home Assistant Supervised
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.10.10
os_name Linux
os_version 5.10.0-21-amd64
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4992
Installed Version 1.32.1
Stage running
Available Repositories 1269
Downloaded Repositories 4
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Debian GNU/Linux 11 (bullseye)
update_channel stable
supervisor_version supervisor-2023.04.1
agent_version 1.5.1
docker_version 23.0.4
disk_total 194.4 GB
disk_used 11.3 GB
healthy true
supported true
supervisor_api ok
version_api ok
installed_addons Studio Code Server (5.5.6), Samba Backup (5.2.0), AppDaemon (0.12.1)
Dashboards
dashboards 1
resources 1
views 5
mode storage
Recorder
oldest_recorder_run 21 avril 2023 à 08:15
current_recorder_run 26 avril 2023 à 19:39
estimated_db_size 9.51 MiB
database_engine sqlite
database_version 3.38.5
___

Bonjour,

Pour ceux que cela pourrait intéresser, voici le package pour faire cela :

alarm_diagral:
  binary_sensor:
    # Statut de l'alarme
    - platform: rest
      scan_interval: 10
      unique_id: ba8236bb-d160-4c40-8647-f231126308ea
      name: alarm_diagral_status
      resource: !secret jeedom_alarm_diagral_status
      verify_ssl: false
      device_class: lock
    # Déclenchement de l'alarme
    - platform: rest
      scan_interval: 10
      unique_id: 17cb9212-c29b-42e4-9789-e6e63c6e1aae
      name: alarm_diagral_triggerd
      resource: !secret jeedom_alarm_diagral_triggered
      verify_ssl: false
      device_class: safety

  sensor:
    # Mode de l'alarme
    - platform: rest
      scan_interval: 10
      unique_id: a60ec389-9339-4d15-a489-89c7fd1e6ec8
      name: alarm_diagral_mode
      resource: !secret jeedom_alarm_diagral_mode
      verify_ssl: false
      value_template: >-
        {%- if value == 'off' %}
          disarmed
        {% elif value == 'presence' %}
          armed_home
        {% elif value == 'group' %}
          armed_away
        {% elif value == 'tempogroup' %}
          arming
        {% else %}
          unknown
        {% endif %}
    # Groupe Actif de l'alarme
    - platform: rest
      scan_interval: 10
      unique_id: 7c06acfc-90cf-4076-b0fe-7cf88cb9a918
      name: alarm_diagral_enabled_group
      resource: !secret jeedom_alarm_diagral_enabled_group
      verify_ssl: false

  rest_command:
    # Activation de l'alarme en mode Absent
    alarm_diagral_arm_away:
      url: !secret jeedom_alarm_diagral_arm_away
      verify_ssl: false
      timeout: 30
    # Activation de l'alarme en mode Present
    alarm_diagral_arm_home:
      url: !secret jeedom_alarm_diagral_arm_home
      verify_ssl: false
      timeout: 30
    # Désctivation de l'alarme
    alarm_diagral_disarm:
      url: !secret jeedom_alarm_diagral_disarm
      verify_ssl: false
      timeout: 30

  alarm_control_panel:
    - platform: template
      panels:
        alarm_diagral:
          unique_id: 9f1c9d8a-4796-41be-8737-29a29ec20e04
          value_template: "{{ states('sensor.alarm_diagral_mode') }}"
          # Mode Absent
          arm_away:
            service: rest_command.alarm_diagral_arm_away
          # Mode Present
          arm_home:
            service: rest_command.alarm_diagral_arm_home
          # Mode désarmé
          disarm:
            service: rest_command.alarm_diagral_disarm
3 « J'aime »

Bonjour,

Pourrais tu nous faire un petit tuto :wink:

Bonjour,

C’est un package de configuration. Il suffit de déclarer un chemin pour ses packages

Définir tout les secrets utilisés dans le package que j’ai donné dans mon dernier message.

Et de créer un fichier avec le contenu du package de mon dernier message puis redémarrer HA.

Il faut bien évidement avoir un Jeedom avec le plugin Diagral eOne configuré et opérationnel

Bonjour,

Merci pour le retour.
ça fonctionne parfaitement pour la partie rest_command et alarm_control_panel.
Je récupère le statut de mon alarm via les notifcations de l’appli.

Re Bonjour

sensor:
    # Mode de l'alarme
    - platform: rest
      scan_interval: 10
      unique_id: a60ec389-9339-4d15-a489-89c7fd1e6ec8
      name: alarm_diagral_mode
      resource: !secret jeedom_alarm_diagral_mode
      verify_ssl: false
      value_template: >-
        {%- if value == 'off' %}
          disarmed
        {% elif value == 'presence' %}
          armed_home
        {% elif value == 'group' %}
          armed_away
        {% elif value == 'tempogroup' %}
          arming
        {% else %}
          unknown
        {% endif %}

Avec ce code tu crée un sensor et tu vas récupérer le statut de ton alarme toute les 10s sur le plugin Jeedom ?
Le refresh automatique ne peut être inférieur à 10 minutes sur ton plugin Diagral, tu récupères donc le changement de ton statut au mieux toute les 10min sur home assistant ou j’ai mal compris ?

Le refresh côté Jeedom est bien de minimum 10 minutes.
Mais entre les refresh automatique tu peux forcer un refresh ou bien activer/désactiver l’alarme ce qui force aussi un refresh.
Du coup pour pas attendre trop longtemps que HA ai le nouveau statut, je récupère l’état sur Jeedom toutes les 10 secondes.
Ça lance pas pour autant un refresh à Jeedom, c’est juste pour récupérer l’état que connaît Jeedom.

Et pour forcer le refresh sur jeedom depuis macrodroid il faut passer par le webhook :
http(s)://#jeedom-vhost#/plugins/Diagral_eOne/core/php/webhook.php?apikey=#apikey#&action=refresh&eq=#eqId#

Oui c’est dans ma doc

1 « J'aime »

Ok merci pour ton retour.

ça fonctionne parfaitement :smile:
La dernière question du jour :wink:
J’ai créé un sensor pour récupérer le déclenchement de l’alarme :

- platform: rest
    scan_interval: 10
    name: diagral_declenchement
    resource: https://xxxxx=cmd&id=7
    verify_ssl: false

Le refresh via macrodroid et le webhook va effectuer la mise à jour du sensor de 0 à 1 ?

Non. Comme l’indique la doc :

Seul les mails permettait de récupérer une alarme en cours. Mais Diagral a arrêté les mails

OK merci. J’avais bien lu :wink:

Sauf pour les « Alarme intrusion » > j’utilise le mail dans HA avec l’intégration IMAP pour une automatisation.

Ok. Dans ce cas pourquoi ne pas le gérer directement dans Jeedom ? comme la récupération des mails est directement prévu dans le plugin (même si ça s’appui sur un plugin tiers)

J’y ai effectivement pensé mais j’ai vraiment du mal avec les automatisations jeedom (pas convivial du tout). D’ailleurs c’est pareil avec jeedom en général :confused:
J’ai installé le plugin tiers pour le moment. A suivre.

Le scénario est généré automatiquement par le plugin Diagral. Tout est décrit dans la doc

Pourquoi tu ne fais pas ça avec du mqtt ?
La synchro se fait instantanément.
Installe un broker mqtt sur ton NAS ou sur ton OS directement.
Comme ça il sera aisément accessibles par jeedom et HA.

Si ça t’intéresse, je pourrai revenir ici avec un exemple de configuration.

J’ai déjà un broker Mqtt mais je souhaite juste mettre en place quelque chose de simple le temps de la migration.
Faire un publish Mqtt depuis Jeedom obligé à ajouter un plugin alors que dans ma migration, je suis plutôt en train de les retirer.
Sauf quand ils n’existent pas sous HA

Bonjour,
si je comprends bien pour intégrer diagral il faut utiliser conjointement jeedom?