Alarm panel mais pas pour une alarme!

Mon problème

Bonjour à tous,

J’aimerais utiliser un digicode pour lancer des services en fonction du code tapé.
Je m’explique: j’ai une alarme Netatmo, et j’aimerai envoyer des webhooks afin de dire quel personne est là (lié au code à taper) et un bouton avec une tempo pour activer l’alarme.

je me suis tourné vers alarmo pour la gestion de plusieurs codes mais je dois impliquer des capteurs de mouvement etc…

quelqu’un connait une card qui permet d’avoir un digicode qui peut gérer plusieurs codes et lancer des services?

merci pour votre lecture,

Salut

Tu as dans hacs restriction card
Cela t’oblige a saisir un code pour activer ou désactiver

Peut etre que cela pourrait être détourné pour répondre a tes besoins

Salut.
Sinon faire une carte perso:

  • Les chiffres déclenchent un service qui concatène la saisie dans un input_number.
  • Un bouton qui fait trigger sur l’automatisation.
  • Et à la fin de l’automatisation, reset de l’input_number

merci, justement c’est que je suis en train de faire, mais comment concaténer un chiffre dans un input_text?
là je bloque!

j’ai essayé ça:

- type: custom:button-card
    entity: input_text.security_code
    icon: mdi:numeric-0
    show_state: false
    tap_action:
      action: call-service
      service: input_text.set_value
      service_data:
        entity_id: input_text.security_code
        value: '{{ state_attr(''input_text.security_code'', ''text'') + ''0'' }}'

mais la valeur de mon input_text est '{{ state_attr(''input_text.security_code'', ''text'') + ''0'' }}'

donc ce n’est pas interprété, je deviens dingue!

merci pour votre aide

Alors un input_text n’a pas d’attribut text c’est le state directement qu’il faut prendre.
La concaténation c’est ~

Donc plus un truc du genre
'{{ states("input_text.security_code") ~ "0" }}'

Par contre, j’utilise jamais le bouton et il semble qu’il ne fasse pas de template. Le spécialiste c’est @WarC0zes

si je rentre cela , la seul valeur qu’à mon input_text c’est la même chose, pas interprété!

Bonjour,
quand je test le modèle , avec input_text.security_code avec le statut a 1234 , j’ai le résultat 12340.

{{ states("input_text.security_code") ~ "0" }}

Comme dit @Pulpy-Luke , button_card accepte du JS mais pas du jinja. Je regarderais, quand j’ai 5min.

1 « J'aime »

donc tu testes ça:

- type: custom:button-card
    entity: input_text.security_code
    icon: mdi:numeric-0
    show_state: false
    tap_action:
      action: call-service
      service: input_text.set_value
      service_data:
        entity_id: input_text.security_code
        value: {{ states("input_text.security_code") ~ "0" }}

et ça fonctionne?

car chez moi pas du tout, y a t’il quelque chose qui manque pour qu’il ne soit pas interprété?

custom:button-card ne fait que javascript.

ça c’est la bonne syntaxe yaml

moi j’ai l’erreur:
value should be a string for dictionnary value @data[‹ value ›]

Une dernière fois : il faut trouver la syntaxe équivalente en Javascript … celle en YAML (même si elle est correcte) pour HA ne fonctionne pas avec custom:button-card

C’est le même souci que mettre du diesel, dans une voiture à essence ça marche pas, même si c’est du diesel premium

1 « J'aime »

@Pulpy-Luke , peut-être lui préciser que tu as testé la syntax dans l’outil de dev (Jinja) :wink:

ahh pffffou! dsl vraiment, je débute la dedans, mais je n’avais pas compris, merci pour l’explication,

et je peux peut-être utiliser autre chose que custom:button-card?

merci pour votre aide à tous

2 « J'aime »

J’ai fais quelques test avec la carte button et template-entity-row et ca me renvoie la valeur {{ states(« input_text.security_code ») ~ « 0 » }} au lieu de 1230 exemple. Alors que dans l’outils de dev , si j’appel le service avec la même commande ca fonctionne j’ai l’entité qui affiche bien 1230.

show_name: true
show_icon: true
type: button
entity: input_text.texte_test
icon: mdi:numeric-0
show_state: true
tap_action:
  action: call-service
  service: input_text.set_value
  target:
    entity_id: input_text.texte_test
  data:
    value: "{{ states('input_text.texte_test') ~  0  }}"
type: entities
title: Default
entities:
  - type: custom:template-entity-row
    entity: input_text.texte_test
    tap_action:
      action: call-service
      service: input_text.set_value
      target:
        entity_id: input_text.texte_test
      data:
        value: "{{ states('input_text.texte_test') ~  0  }}"

il y a un truc qui cloche, mais quoi !?

Mais j’y pense par un script peu être et du button t’appel le script.
je regarderais.

2 « J'aime »

Hello @WarC0zes , je pensais justement à un script :wink:

alias: SaisiePin
sequence:
  - service: input_text.set_value
    target:
      entity_id: input_text.codepin
    data:
      value: >
        {% set current_value = states('input_text.codepin') %} {% if
        current_value != 'None' and current_value != 'unknown' %}
          {{ current_value ~ number | string }}
        {% else %}
          {{ number | string }}
        {% endif %}
mode: single

Et pour chaque élements numérique du clavier ( le 1 par exemple):

type: custom:button-card
show_name: false
show_icon: true
icon: mdi:numeric-1
tap_action:
  action: call-service.SaisiePin
  service: script.
  service_data:
    number: '1'
1 « J'aime »

ah ben on a trouvé les même sources sur le net, je suis en train de l’adapter, le seul problème c’est lorsque j’appuie sur la croix afin d’effacer input_text que ça ne fonctionne pas, quelqu’un connais un moyen de faire un reload de input_text dans un script?

Je pense que cest bon avec un script, car ca sera pas exécuter directement de la carte.

pour le reset, il suffit d’envoyer une chaine vide comme le premier essai

oui merci, je suis sur la fin, je fais le script de comparaison des pins

merci à tous!

Quelle croix ?

Si tu veux effacer l’input text totalement, il faut lui passer «  » en data

service: input_text.set_value
data:
  value: ""
target:
  entity_id: input_text.codepin

Donc un deuxième script

alias: DelSaisiePin
sequence:
  - service: input_text.set_value
    target:
      entity_id: input_text.codepin
    data:
      value: ""
mode: single

Oups, déjà répondu !