Forum Francophone Home Assistant

Command_line le retour

bonjour,

j’ai déjà fait avec votre aide une ligne de commande dans le configuration.yalm pour lire la température CPU de mon kodi du style :

command: ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -q root@192.168.20.19 cat /sys/class/thermal/thermal_zone0/temp

qui fonctionne parfaitement,

maintenant j’ai besoin d’envoyer une autre commande dans une automatisation
je voudrais envoyer des sms via gammu sur une clé branchée en distant
donc je cherche dans les services mais je n’ai pas ‹ command_line › pour envoyer ma commande, je n’ai que command_line.reload
alors comment je pourrais faire pour que mon automatisation puisse envoyer ma commande, sachant qu’elle sera différente a chaque fois car j’aurais un message et un n° de tél

une idée ?

Bonjour,

Arrives tu à envoyer un message depuis une URL ? en utilisant gammu ? Je ne connais pas, jamais utilisé :wink:
Pourquoi gammu ?

non,
ce n’est pas via une URL mais une commande ssh :

ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -q moi@192.168.20.96 « echo ‹ hello world › | gammu --sendsms TEXT 06XXXX »

j’ai repris le même principe que sur ma commande de température
et ma commande ssh fonctionne bien en mode terminal

le seul souci c’est que je n’ai pas de service ‹ commande_line › pour la lancer dans une automatisation

le pourquoi ce tout cela
j’ai une clé usb huawei avec une carte sim free pour envoyer des sms
j’ai essayé l’intégration ‹ sms › de HA mais j’ai un plantage systématique entre 2mn et 24h sans raison,
je me suis donc dit que je pourrais passer ma clé sur un autre PC pour tester et d’envoyer une commande pour envoyer mon SMS !
oui c’est un peu compliqué mais j’y suis depuis des mois avec ce foutu SMS et tout ce que j’essaye foire a un moment ou a un autre !

Bonjour,

J’ai compris, c’est bien pour un lundi :wink:

Je pense que tu confonds « command_line » et « shell_command »

command_line
-> un sensor,
-> Recuperer des valeurs en ssh

shell_command :
-> crée un service utilisable dans « action »
-> commande en ssh

Ta commande ssh fonctionnant déjà avec un terminal tu n’as plus qu’à te creer un template avec

ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -q [moi@192.168.20.96](mailto:moi@192.168.20.96) « echo ‹ hello world › | gammu --sendsms TEXT 06XXXX »

Deviens :

ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -q [moi@192.168.20.96](mailto:moi@192.168.20.96) « echo ‹ hello world › | gammu --sendsms {{ message }} {{ tel }} »

Et dans ton automation :

action:
  service: shell_command.lenom
     data:
       message: mon message à envoyer
       tel: 1234567891
1 J'aime

super,

oui c’est exactement cela que je veut faire
juste j’ai un message d’erreur quand je lance ma commande :

 Error running command: `ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -q stephane@192.168.20.96 echo '{{ message }}' | gammu --sendsms TEXT {{ tel }}`, return code: 2 

alors j’ai essayé avec ou sans guillemets après le echo mais toujours err code 2

j’ai essayé dans les outils de développement avec :

data:
message: hello world
tel: 06XXX

petite remarque :
j’ai mis cela dans mon configuration.yaml :

shell_command:
  send_sms: ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -q stephane@192.168.20.96 "echo '{{ message }}' | gammu --sendsms TEXT {{ tel }}"
  test_sms: ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -q stephane@192.168.20.96 "echo 'hello world' | gammu --sendsms TEXT 06XXXX"

et avec la commande test_sms sans paramète, j’ai bien le message
avec la commande send_sms, j’ai le message d’erreur

avec le service : shell_command.send_sms
et en données :

data:
  message: hello world
  tel: 06XXXX

pour le moment j’ai testé en outils de développement…

voilà la solution enfin trouvée :

dans configuration.yaml :

shell_command:
  send_sms: ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no -q stephane@192.168.20.96 'gammu --sendsms TEXT {{ tel }} -text "{{ message }}"'

et dans mon automatisation:

data:
  message: Essai de SMS !
  tel: 06XXXX
service: shell_command.send_sms

voilà avec tout cela j’ai ce que je cherchais …
merci pour votre aide !
Stéphane

1 J'aime

Salut,

Excellent,
T’as été obligé de rajouter une option « - text »

Suggestion à tester, personnellement pas testé avec une shell_command.
Tes lignes de commande sont plutot longues, alors pour garder de la visibilité utiliser le fichier secret puis dans
send_sms: !secret cmdsms

De rien, mais tu as tout fait :wink: