Script Lua sms automatique GAMMU

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Yzahak
Messages : 34
Inscription : 01 mai 2020, 15:29

Script Lua sms automatique GAMMU

Message par Yzahak »

Bonjour,

Je poste ce message concernant un script LUA que j'utilise avec GAMMU pour gérer ma domotique via sms.

Le script dont je parle est visible ici : viewtopic.php?t=596

Pour cette partie tout est OK .

J'ai dans mon script intégré 2 liste de la manière suivante :

Code : Tout sélectionner

liste['Statut'] = 			[[	reponse = 	''..otherdevices['acces']..'\n'..
											'L\' alarme est sur '..otherdevices['control_alarme']..'\n'..
											'La porte sectionelle est '..otherdevices['Etat_Porte_Sectionelle']..'\n'..
											'A la maison '..otherdevices['Control_Maison']  ]]
liste['Températures'] = 			[[	reponse = 	'Pièce de vie : '..string.sub(otherdevices_svalues['Temp_PDV'],1,4)..'C'..'\n'..
											'Chambre de Nathan : '..string.sub(otherdevices_svalues['Temp_chambre_Nathan'],1,4)..'C'..'\n'..
											'Salle de bain : '..string.sub(otherdevices_svalues['Température SDB'],1,4)..'C'..'\n'..
											'Salle de douche : '..string.sub(otherdevices_svalues['Température SDD'],1,4)..'C' ]]
Ca fonctionne très bien. J'envoie mon SMS et en reçois 1 en retour avec la liste de mes devices.

Je veux maintenant programmer l'envoie de ces 2 SMS de manière automatique (création d'un dummy avec planning).

La problématique est la suivante :

Je créé un deuxième script LUA pour cette automatisation mais n'arrive pas à faire la liste sur 1 seul SMS (je déclenche plusieurs sms pour obtenir le résultat au lieux d'1 seul qui reprends l'ensemble de ma demande).

le script :

Code : Tout sélectionner

commandArray = {}

if (otherdevices['SMS_Auto_Temp'] == 'On') then
    
    os.execute ('sudo -u gammu gammu-smsd-inject TEXT "+336XXXXXXXX" -text "Pièce de vie :  '..string.sub(otherdevices_svalues['Temp_PDV'],1,4)..'  C "')
    os.execute ('sudo -u gammu gammu-smsd-inject TEXT "+336XXXXXXXX" -text "Chambre de Nathan:  '..string.sub(otherdevices_svalues['Temp_chambre_Nathan'],1,4)..'  C "')
    os.execute ('sudo -u gammu gammu-smsd-inject TEXT "+336XXXXXXXX" -text "Salle de bain:  '..string.sub(otherdevices_svalues['Température SDB'],1,4)..'  C "')
    os.execute ('sudo -u gammu gammu-smsd-inject TEXT "+336XXXXXXXX" -text "Salle de douche:  '..string.sub(otherdevices_svalues['Température SDD'],1,4)..'  C "')
end

if (otherdevices['SMS_Auto_Statut'] == 'On') then
    
    os.execute ('sudo -u gammu gammu-smsd-inject TEXT "+336XXXXXXXX" -text "'..otherdevices['acces']..' "') 
    os.execute ('sudo -u gammu gammu-smsd-inject TEXT "+336XXXXXXXX" -text "L\' alarme est sur '..otherdevices['control_alarme']..' "') 
    os.execute ('sudo -u gammu gammu-smsd-inject TEXT "+336XXXXXXXX" -text "La porte sectionelle est '..otherdevices['Etat_Porte_Sectionelle']..' "') 
    os.execute ('sudo -u gammu gammu-smsd-inject TEXT "+336XXXXXXXX" -text "A la maison '..otherdevices['Control_Maison']..' "') 
end

return commandArray
Je comprend que la répétition de os.execute déclenche plusieurs sms mais n'arrive pas à faire le même regroupement que dans mon premier script.

Quelqu'un peut-il m'aider ?

Merci à tous par avance et meilleurs voeux :D .
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Script Lua sms automatique GAMMU

Message par Keros »

Oui quand tu fais plusieurs os.execute cela envoi plusieurs SMS. Le SMS doit être contenu dans un seul os.execute.

Tu as essayé de concaténer les infos :

Code : Tout sélectionner

..string.sub(otherdevices_svalues['Temp_PDV'],1,4)..'  C "').." | Chambre de Nathan:  '..string.sub(otherdevices_svalues['Temp_chambre_Nathan'],1,4)..'  C "').." | Salle de bain:  '..string.sub(otherdevices_svalues['Température SDB'],1,4)..'  C "').." | Salle de douche:  '..string.sub(otherdevices_svalues['Température SDD'],1,4)..'  C "')
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Yzahak
Messages : 34
Inscription : 01 mai 2020, 15:29

Re: Script Lua sms automatique GAMMU

Message par Yzahak »

Bonjour Keros,

Merci pour ta réponse.

Ca ne fonctionne pas.

Peut-être ai-je fait une erreur.

Code : Tout sélectionner

commandArray = {}

if (otherdevices['SMS_Auto_Temp'] == 'On') then
    
    os.execute ('sudo -u gammu gammu-smsd-inject TEXT "+336XXXXXXXX" -text "Il fait '..string.sub(otherdevices_svalues['Temp_PDV'],1,4)..'  C "').." | Chambre de Nathan:  '..string.sub(otherdevices_svalues['Temp_chambre_Nathan'],1,4)..'  C "').." | Salle de bain:  '..string.sub(otherdevices_svalues['Température SDB'],1,4)..'  C "').." | Salle de douche:  '..string.sub(otherdevices_svalues['Température SDD'],1,4)..'  C "')

end

return commandArray
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Script Lua sms automatique GAMMU

Message par Keros »

J'ai été un peu vite en écrivant tout sur la même ligne : le souci est au niveau des ' et "

On va essayer avec seulement 2 valeurs et on ajoutera les autres dans un deuxième temps.

Code : Tout sélectionner

os.execute ('sudo -u gammu gammu-smsd-inject TEXT "+336XXXXXXXX" -text "Il fait '.. string.sub(otherdevices_svalues['Temp_PDV'],1,4) ..'  C | Chambre de Nathan:  '.. string.sub(otherdevices_svalues['Temp_chambre_Nathan'],1,4) ..'  C "')
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Yzahak
Messages : 34
Inscription : 01 mai 2020, 15:29

Re: Script Lua sms automatique GAMMU

Message par Yzahak »

Keros,

J'ai réussi à tout mettre en place un grand merci :).

Est-ce que tu penses que je peux aller à la ligne ? (Pour t'expliquer mon intercom moto lis les sms avec les écouteurs et quand je vais a la ligne ca permet d'avoir une pose ><)

Le script qui fonctionne :

Code : Tout sélectionner

commandArray = {}

if (otherdevices['SMS_Auto_Temp'] == 'On') then
    
    os.execute ('sudo -u gammu gammu-smsd-inject TEXT "+336XXXXXXXX" -text "Pièce de vie :  '..string.sub(otherdevices_svalues['Temp_PDV'],1,4)..'  C | Chambre de Nathan :  '..string.sub(otherdevices_svalues['Temp_chambre_Nathan'],1,4)..'  C  | Salle de bain :  '..string.sub(otherdevices_svalues['Température SDB'],1,4)..'  C  | Salle de douche :  '..string.sub(otherdevices_svalues['Température SDD'],1,4)..'  C "')
    
end

if (otherdevices['SMS_Auto_Statut'] == 'On') then
    
    os.execute ('sudo -u gammu gammu-smsd-inject TEXT "+336XXXXXXXX" -text "'..otherdevices['acces']..' | L\' alarme est sur '..otherdevices['control_alarme']..' | La porte sectionelle est '..otherdevices['Etat_Porte_Sectionelle']..' | A la maison '..otherdevices['Control_Maison']..'  "')
    
end
return commandArray
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Script Lua sms automatique GAMMU

Message par Keros »

Le retour à la ligne est compliqué. J'ai galéré : grosso modo impossible de le faire avec le daemon mais sans daemon pas de réception de SMS :roll:
J'y suis quand même arrivé, mais se fut compliqué. Je suis en train de rédiger un tuto à ce sujet ;)
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Yzahak
Messages : 34
Inscription : 01 mai 2020, 15:29

Re: Script Lua sms automatique GAMMU

Message par Yzahak »

Super

Merci pour tout

J'irai voir
Répondre