Page 2 sur 5
Re: Recevoir SMS après un évènement
Publié : 01 mars 2017, 11:06
par OyyoDams
Si ça peut aider, et que tu veux passer par du lua, voici comment j'ai fait pour recevoir un sms quand on sonne chez moi:
- Faire un lua qui réagit à ton bouton, avec un appel à ton script python:
Code : Tout sélectionner
os.execute('/domoticz/scripts/sendsms.py "On sonne dans la rue"')
- Le fichier sendsms.py (qui doit être exécutable):
Code : Tout sélectionner
#!/usr/bin/python
import sys
import os
import datetime
now = datetime.datetime.now()
text = "["+now.strftime("%d/%m/%Y @ %H:%M")+"] "+sys.argv[1]
phone_numbers = ["+336xxxxxxxx"]
for number in phone_numbers:
command = "sudo -u gammu gammu-smsd-inject TEXT "+number+" -text \""+text+"\""
os.system(command)
Note j'aurais pu faire un peu plus simple, mais ça me permet d'ajouter un autre téléphone si je veux.
Re: Recevoir SMS après un évènement
Publié : 01 mars 2017, 16:20
par gueguette14
Il y a peut être un problème de passage en administrateur ? C'est possible que l'on soit obligé d'être en su ?
Et si oui, connaissez-vous les lignes dans un script lua qui nous font passer en admin ?
Merci encore.
Re: Recevoir SMS après un évènement
Publié : 07 mars 2017, 15:52
par gueguette14
J'ai enfin réussi à recevoir un SMS après l'ouverture d'une porte.
J'ai laissé tombé le lua et les scénarios avec événements. J'ai procédé de la manière suivante :
A l'ouverture de la porte, la donnée est envoyé sur le 1er script shell via domoticz avec le "Action On".
J'ai modifié légèrement ce script shell. Et bizarrement ça a fonctionné.
Je vous remercie de votre aide.
Maintenant mon objectif est d'envoyer un SMS à domoticz afin d'allumer une lumière. J'ai donc pensé au JSON. J'ai fait un script de base mais je ne suis pas sûr d'être parti sur la bonne voie.
Du coup, si vous avez des idées, ça m’intéresserait assez fortement.
Merci encore de votre aide.
Re: Recevoir SMS après un évènement
Publié : 07 mars 2017, 16:48
par OyyoDams
gueguette14 a écrit :Maintenant mon objectif est d'envoyer un SMS à domoticz afin d'allumer une lumière. J'ai donc pensé au JSON. J'ai fait un script de base mais je ne suis pas sûr d'être parti sur la bonne voie.
Si tu utilises gammu, c'est simple. Dans le fichier
/etc/gammu-smsdrc tu as une ligne qui indique le fichier exécuté à la réception d'un sms:
Dans ce fichier
receivesms.sh, tu peux appeler du json ou d'autres scripts shell ou python. Voici un exemple pour avoir un retour d'état dans Domoticz de mon alarme EPS:
Code : Tout sélectionner
#!/bin/bash
from=$SMS_1_NUMBER
message=$SMS_1_TEXT
#Messages en provenance d'EPS
if [[ $message == *"du clavier ENTREE"* ]]
then
if [[ $message == *"en marche"* ]]
then
if [[ $message == *"mode partiel"* ]]
then
/root/gammu/alarme_partiel.py
else
/root/gammu/alarme_on.py
fi
elif [[ $message == *"l'arret"* ]]
then
/root/gammu/alarme_off.py
fi
exit 0
fi
Ensuite les scripts en python font du json. Exemple:
Code : Tout sélectionner
#!/usr/bin/python
import urllib2
import json
import subprocess
import shlex
urllib2.urlopen("http://127.0.0.1:8080/json.htm?type=command¶m=updateuservariable&vname=EtatAlarme&vtype=2&vvalue=Total")
urllib2.urlopen("http://127.0.0.1:8080/json.htm?type=command¶m=switchlight&idx=24&switchcmd=On)
Re: Recevoir SMS après un évènement
Publié : 07 mars 2017, 16:59
par gueguette14
J'ai compris le code. Juste EPS ça veut dire quoi déjà ?
Merci de ces scripts, je retrouve pas mal de chose que j'avais en tête. J'ai pas les scripts actuellement sur moi. Mais je vais tester ça ce soir. Merci.
Si j'ai bien compris, cette partie là :
from=$SMS_1_NUMBER
message=$SMS_1_TEXT
je suis censé le transformer ou je laisse en l'état ? Car j'imagine que je dois rentrer en paramètre mon numéro de téléphone ?
Pour le moment j'ai essayé de travailler avec ça :
https://easydomoticz.com/manipuler-les- ... -en-shell/
Merci

Re: Recevoir SMS après un évènement
Publié : 07 mars 2017, 17:05
par OyyoDams
Alors je ne veux pas faire de pub, mais EPS est une alarme télésurveillée:
https://www.eps-telesurveillance.fr
$SMS_1_NUMBER et $SMS_1_TEXT sont des variables de gammu qui contiennent le numéro de l'expéditeur et le texte du message.
Si tu veux que Domoticz ne réagisse qu'à ton tel, tu peux mettre ça:
Re: Recevoir SMS après un évènement
Publié : 10 mars 2017, 14:38
par gueguette14
Salut,
J'ai un peu avancé. C'est pas tout à fait terminé. Mais je suis la bonne voie.
Je voulais juste savoir comment on archive les SMS reçues par Domoticz ?
Est-ce qu'il y a un endroit où on peut les voir en interface ou juste avec une ligne de commande ?
Comme ça, je pourrais parser le SMS pour ensuite mettre ON ou OFF avec les noms des objets.
Merci encore.
Re: Recevoir SMS après un évènement
Publié : 10 mars 2017, 17:31
par OyyoDams
Dans le fichier /etc/gammu-smsdrc, il est dit que par défaut les textos reçus sont stockés dans /var/spool/gammu/inbox:
Code : Tout sélectionner
# Paths where messages are stored
inboxpath = /var/spool/gammu/inbox/
Les messages sont stockés sous la forme IN20170309_150539_00_+336xxxxxxxx_00.txt avec dans le nom du fichier, la date, l'heure et le numéro de l'expéditeur. Le contenu du fichier est le message.
Mais ça me paraît compliqué ton histoire. Pourquoi vouloir parser les textos déjà reçus et archivés ? Le mieux est de faire réagir Domoticz à l'instant T quand tu reçois le texto, non ?
Re: Recevoir SMS après un évènement
Publié : 11 mars 2017, 18:19
par gueguette14
C'est la seule chose que j'ai trouvé.
Je récupère le message. Je prends un terme et là je fais marcher un script ou je ne sais pas quoi.
Mais comment tu peux faire intéragir domoticz ? Avec le blocky ? un script (shell ou lua) ? ou autre ?
Je serais curieux de savoir.
Re: Recevoir SMS après un évènement
Publié : 11 mars 2017, 19:43
par OyyoDams
J'ai fait un tuto complet sur le blog de mon ami Deenoo ici:
http://domo-attitude.fr/communiquer-sms ... em-usb-3g/