Page 1 sur 2

ordre script

Publié : 21 mars 2020, 18:45
par sphinxou
bonjour
je viens d'écrire ce script il fonctionne parfaitement sauf quand plusieurs porte ou fenêtre son ouvertes je ne reçois le sms que du premier dans l'ordre du script
je ne comprend pas ????

merci

Code : Tout sélectionner

if devicechanged['ALARME'] == 'On' then
        if otherdevices['contact_fenet et porte sam_salon'] == "Open" then
            smsput('ADMIN',"le systeme à detecter une porte ou une fenetre ouverte dans le salon")
        end
       
       
        if otherdevices['contact_fenetre cuisine'] == "Open" then
            smsput('ADMIN',"le systeme à detecter la fênetre ouverte dans la cuisine")
        end
        
        if otherdevices['garage_contact'] == "Open" then
            smsput('ADMIN',"le systeme à detecter la porte du garage ouverte")
        end
        
        if otherdevices['fenetre buanderie_contact'] == "Open" then
            smsput('ADMIN',"le systeme à detecter la fenetre de la buanderie ouverte")
        end
        
        if otherdevices['porte buanderie_contact'] == "Open" then
            smsput('ADMIN',"le systeme à detecter la porte de la buanderie ouverte")
        end
        
        
        
        
        
end        

Re: ordre script

Publié : 21 mars 2020, 19:25
par vil1driver
Salut,

Il faudrait voir ce qui se cache derrière smsput.
Si c'est quelque chose qui ne tolère pas bien des actions aussi rapprochées,

Personnellement j'essaierais dans le script de concaténer les infos avant envoi

Re: ordre script

Publié : 21 mars 2020, 19:54
par sphinxou
bonsoir

concaténer les infos c'est a dire ?

Code : Tout sélectionner

function smsput(sGroup,sMsg)

    sUrl="192.168.1.2:1200/SMS&GRP=" .. sGroup .. "&MSG="
 commandArray['OpenURL']=sUrl .. string.gsub(sMsg, ' ', '%%20')
end

Re: ordre script

Publié : 21 mars 2020, 20:19
par vil1driver
Je veux dire un seul sms qui dirait par exemple "garage et buanderie ouverts"
C'est un moyen simple de contourner le problème
Le terme concaténation (substantif féminin), du latin cum (« avec ») et catena (« chaîne, liaison »), désigne l'action de mettre bout à bout au moins deux chaînes de caractères
https://fr.m.wikipedia.org/wiki/Concat%C3%A9nation

Re: ordre script

Publié : 21 mars 2020, 20:22
par sphinxou
j'ai compris concaténater mais comment?

Re: ordre script

Publié : 21 mars 2020, 20:30
par vil1driver
grossièrement

Code : Tout sélectionner


Local msg = 'Alerte: ' 
Local concat = '' 

Si garage ouvert
    msg = msg ..  'garage ouvert' 
    concat = ' et ' 

Si cuisine ouverte
    msg = msg .. concat .. 'cuisine ouverte'
    concat = ' et ' 

Si buanderie ouverte 
    msg = msg ..  concat .. 'buanderie ouverte' 
    concat = ' et ' 

Etc... 

Si msg ~= 'Alerte: ' 
    Envoi sms msg
Else
    Envoi sms 'tout est Ok chef..' 
Je pense que tu saisi le principe
Il doit même être possible d'ajouter des retours à la ligne si ton app sms le gère.

Re: ordre script

Publié : 22 mars 2020, 06:32
par sphinxou
bonjour
merci sa fonctionne






Code : Tout sélectionner

local msg = 'Alerte: '
local contact = 'et'

if devicechanged['ALARME'] == 'On' then
        if otherdevices['contact_fenet et porte sam_salon'] == "Open" then
            msg = msg .. 'fenetre ou porte ouverte salon'
        end
        
        if otherdevices['contact_fenetre cuisine'] == "Open" then
            msg = msg .. contact .. 'fenetre cuisine ouverte'
        end
        
        
        if msg ~= 'Alerte: ' then
            smsput('ADMIN',msg)
        end
end

Re: ordre script

Publié : 22 mars 2020, 06:43
par denis_brasseur
sphinxou a écrit : 21 mars 2020, 19:54 bonsoir

concaténer les infos c'est a dire ?

Code : Tout sélectionner

function smsput(sGroup,sMsg)

    sUrl="192.168.1.2:1200/SMS&GRP=" .. sGroup .. "&MSG="
 commandArray['OpenURL']=sUrl .. string.gsub(sMsg, ' ', '%%20')
end
Si tu veux avoir plusieurs SMS dans le même script, il me semble que la modif peut se faire ici :

Code : Tout sélectionner

commandArray[#commandArray+1]={['OpenURL'] = sUrl .. string.gsub(sMsg, ' ', '%%20')}
La métode de concaténation est bien la meilleure, sinon si 10 fenêtres ouvertes, 10 SMS !!

Re: ordre script

Publié : 22 mars 2020, 07:00
par sphinxou
oui concatener est la meilleur solution

par contre comment l'envoyer par mail ??

merci

Re: ordre script

Publié : 22 mars 2020, 07:15
par denis_brasseur

Code : Tout sélectionner

commandArray[#commandArray+1] = {['SendEmail'] = 'objet#message#EmailTo'}
Il te faut évidement avoir personnalisé tes paramètres mail depuis Parametres

Code : Tout sélectionner

function envoyer_mail (objet, message, EmailTo)
	commandArray[#commandArray+1] = {['SendEmail'] = objet..'#'.. message ..'#'.. EmailTo}
end