ordre script

Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
sphinxou
Messages : 231
Inscription : 03 déc. 2016, 13:37

ordre script

Message 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        
Domoticz 4.9700/ rfxcom /sonde diy/raspberry pi3+HDD/cirusms/contact de porte diy
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: ordre script

Message 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
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
sphinxou
Messages : 231
Inscription : 03 déc. 2016, 13:37

Re: ordre script

Message 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
Domoticz 4.9700/ rfxcom /sonde diy/raspberry pi3+HDD/cirusms/contact de porte diy
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: ordre script

Message 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
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
sphinxou
Messages : 231
Inscription : 03 déc. 2016, 13:37

Re: ordre script

Message par sphinxou »

j'ai compris concaténater mais comment?
Domoticz 4.9700/ rfxcom /sonde diy/raspberry pi3+HDD/cirusms/contact de porte diy
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: ordre script

Message 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.
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
sphinxou
Messages : 231
Inscription : 03 déc. 2016, 13:37

Re: ordre script

Message 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
Domoticz 4.9700/ rfxcom /sonde diy/raspberry pi3+HDD/cirusms/contact de porte diy
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: ordre script

Message 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 !!
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
sphinxou
Messages : 231
Inscription : 03 déc. 2016, 13:37

Re: ordre script

Message par sphinxou »

oui concatener est la meilleur solution

par contre comment l'envoyer par mail ??

merci
Domoticz 4.9700/ rfxcom /sonde diy/raspberry pi3+HDD/cirusms/contact de porte diy
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: ordre script

Message 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
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Répondre