smiley
Octobre 24, 2023, 9:40
1
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,
jrvrcd
Octobre 25, 2023, 3:42
2
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
smiley
Octobre 25, 2023, 6:44
4
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
smiley
Octobre 25, 2023, 10:00
6
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.
I am trying to switch the charging speed toggle of my car. Unfortuanetly it needs a service call to switch so can I do that with a toggling button? Something like: show_name: true show_icon: true type: button tap_action: action: call-service ...
Reading time: 1 mins 🕑
Likes: 2 ❤
1 « J'aime »
smiley
Octobre 26, 2023, 4:20
8
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
smiley
Octobre 26, 2023, 4:44
10
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)
smiley
Octobre 26, 2023, 4:50
13
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
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 »
smiley
Octobre 26, 2023, 5:28
16
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
smiley
Octobre 26, 2023, 5:37
19
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 !