Intégrer correctement mon alarme ? Et simple bouton?

Bonjour,

Je dispose d’une centrale d’alarme indépendante de la domotique mais je peux interagir avec cette alarme par l’intermédiaire d’un PLC avec qui HA communique en Modbus.

Les commandes dispos en modbus sont :

  • 1 bit à mettre à 1 pour armer en mode absence, le PLC se charge de remettre ce bit à 0
  • 1 bit à mettre à 1 pour armer en mode nuit, le PLC se charge de remettre ce bit à 0
    note : rien pour désarmer, seuls les claviers physiques de l’alarme ont la capacité de désarmer la centrale, c’est volontaire pour raisons de sécurité.

Les statut dispos en modbus sont :

  • 1 bit d’état armé, indépendamment que ce soit en mode absence ou en mode nuit
  • 1 bit d’état intrusion
  • 1 bit d’état incendie (la centrale d’incendie est raccordée à une zone 24h de l’alarme d’intrusion et j’en sort donc aussi l’état spécifique pour l’incendie)
  • 1 bit d’état de réserve que je n’ai pas encore exploité

J’ai donc utilisé pour le moment le template :

Comme ceci :

alarm_control_panel:
  - platform: template
    panels:
      safe_alarm_panel:
        name: "Alarme"
        unique_id: "alarm_control_panel.alarm"
        code_arm_required: false
        code_format: no_code
        value_template: >-
          {% set stateArmed = (states('sensor.WDI').split(',')[0])|int|bitwise_and(64) > 0 %}
          {% set stateTriggered = (states('sensor.WDI').split(',')[0])|int|bitwise_and(16) > 0 %}
          {% if stateTriggered %}
            triggered
          {% elif stateArmed %}
            armed_away
          {% else %}
            disarmed
          {% endif %}
        arm_away:
          - service: modbus.write_coil
            data:
              hub: "wago"
              address: 12355
              state: 1
        arm_night:
          - service: modbus.write_coil
            data:
              hub: "wago"
              address: 12362
              state: 1

ce qui me donne ce genre de panel :

image

image

Pour l’état 'incendie" je compte créer séparément un binary_sensor vu que le template ne prend en charge que l’aspect « intrusion ».

Donc ma question : est-ce que cette façon d’intégrer cela est à votre avis la meilleure ? et si pas, comment auriez vous fait ?

Deuxième question, j’avais d’abord commencé à vouloir intégrer cela sans le template alarme et là je me suis retrouvé confronté à vouloir avoir un simple bouton pour « armer » et qui doit seulement mettre à 1 le bit modbus correspondant sans plus, donc pas d’action « off » et donc l’équivalent d’une simple « action » en Jeedom et je n’ai pas trouvé directement de solution « simple » pour faire cela.
Un switch ne m’arrangeait pas pour cela vu que l’action « off » n’est pas utile et que l’état on/off ne l’est pas plus.
J’ai vu que des simples boutons pouvaient être créés mais seulement par les intégrations.
Donc quelle est la meilleure méthode pour faire un simple bouton capable de mettre par exemple à 1 un bit (coil) modbus sans plus de « fioritures » ?
Car j’en aurais besoin pour d’autres actions diverses et variées que je dois déclencher sur mon PLC simplement en passant un bit à 1 et c’est en général le PLC qui s’occupe de remettre ce bit à 0.

Merci d’avance pour vos réponses et conseils.

Le filtre bitwise_and() que tu as utilisé a son homologue bitwise_or() qui permet de mettre un bit (ou plusieurs) à 1.

Oui oui ça je sais, ma question ne porte pas sur la partie spécifiquement Modbus, j’aurais juste voulu trouver un truc comme un template « button » par exemple pour des actions unitaires au lieu d’un « switch », donc sans action ON/OFF et sans retour d’état.

Aucune idée du code qu’il faudrait y associer pour arriver à tes fins, mais pour déclencher le processus avec un « simple bouton », il y a « bouton » dans les entrées:

Je pense que c’est ce que tu cherche.
@+ Guy

Oui j’ai vu cette entité mais :

The button entities cannot be implemented manually, but can be provided by other integrations

et donc on ne peut pas le créer soi-même depuis la configuration en yaml

Tu crées un bouton dans entrée et ensuite, tu t’en serts comme déclencheur d’une automatisation.
Tu peux ensuite placer une carte de type bouton ou custom button card dans ton dashboard pour manipuler ton entrée de type Bouton qui déclenchera ton automatisation.

1 « J'aime »

C’est bien ce que j’avais compris, mais je me demandais si il n’y avait pas plus « direct » comme méthode que de devoir créer un bouton dans entrée + un script ou une automation pour simplement avoir un bouton pour effectuer une action simple.

Merci de m’avoir confirmé qu’il n’y a pas d’autre méthode :wink:

Oulahh,
Je suis loin d’être un spécialiste de HA.
Il y a peut-être plus simple et peut-être que quelqu’un de plus calé que moi ici t’en proposera une.