Script Lua ouverture de porte et SMS

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 <\>.
poopeye
Messages : 41
Inscription : 13 janv. 2016, 19:28

Script Lua ouverture de porte et SMS

Message par poopeye »

Bonjour,
Après avoir fait un script bloky, j'arrive à recevoir un sms sur l'ouverture et la fermeture d'une porte. Dès que le capteur change d'état, je reçoit le SMS. Mais le problème, que j'ai d'ailleurs expliqué dans un autre post, est que j'ai régulièrement des "changements" d'état de ce capteur. Je m'explique la porte est fermée, le capteur est à off. Puis quelques minutes ou heures ou secondes après, le log du capteur m'affiche encore un off (sans qu'il soit passé à on avant puis que je n'ai pas ouvert la porte). Donc je reçois à chaque fois des SMS me disant que ma porte est fermée!!
N'arrivant pas à règler ce problème qui s'apparente à des mises à jour d'état de capteurs par Domoticz, j'aimerais le contourner via un script Lua du genre : "SI mon capteur passe à ON alors qu'il était à OFF, ALORS j'envoie le SMS. S'il passe à ON alors qu'il était dejà à ON, ALORS je n'envoie pas de SMS"
Idem dans l'autre sens : "SI mon capteur passe à OFF alors qu'il était à ON, ALORS j'envoie le SMS. S'il passe à OFF alors qu'il était dejà à OFF, ALORS je n'envoie pas de SMS"
Le problème est que je débute complètement en LUA. Bloky ça va, mais LUA...
Si une âme charitable pouvait me donner un petit coup de pouce, ça serait top!
Dans l'attente, je continue mes recherches!!
V 2.3530
rimram31
Messages : 659
Inscription : 04 oct. 2015, 11:22
Localisation : Toulouse

Re: Script Lua ouverture de porte et SMS

Message par rimram31 »

J'ai vu ton autre post, l'électronique n'est pas ma spécialité mais tes répétitions On/Off pourraient être dues a des micro changements d'etat: interférences ? Ca vaut peut-être le coup d'analyser plus en détail ce qu'il se passe sur cette gpio, j'utilise par exemple les outils pigpio/piscope pour avoir une sorte de scope (ils ont le défaut de demander l'installation de gtk)

Coté script (plus mon dada :D ), tu peux peut-être te passer de script ou quasiment. La difficulté est d'avoir l'etat antérieur de ton switch, si tu utilises un script au changement d'etat (script_device_xxx) tu n'auras pas (je ne pense pas) l'état précédent.

Tu pourrais utiliser une variable domoticz mais je pense qu'il y a peut-être plus simple si on passe par un switch virtuel additionnel. Tu créé un switch virtuel "toto" et, via blocky ou un script tout simple, tu mets a jour ce switch virtuel lorsque ton switch réel passe a On/Off mais en vérifiant bien le changement d'etat.

Par exemple:

Code : Tout sélectionner

--
-- /domoticz/scripts/lua/script_device_poopeye.lua
--

commandArray = {}

local real = 'le nom de ton device reel'
local virtual = 'le nom de ton device virtuel'

if (devicechanged[real]) then
    if (devicechanged[real] ~= otherdevices[virtual]) then
        commandArray[virtual] = devicechanged[real]
    end
end

return commandArray
Ensuite, tu réutilises ton ancien blocky tel quel mais sur le device virtuel.

Attention a bien utiliser un "smart script" LUA, a déposer dans le répertoire scritps/lua de domoticz et a nommer "comme il faut", différent d'un script lua que l'on appellerait sur une action comme un shell script.
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
poopeye
Messages : 41
Inscription : 13 janv. 2016, 19:28

Re: Script Lua ouverture de porte et SMS

Message par poopeye »

Merci pour ton idée!!
Je viens de mettre ça en place mais je n'ai pas utilisé ton script LUA car je n'ai pas compris la dernière phrase de ta réponse:
"Attention a bien utiliser un "smart script" LUA, a déposer dans le répertoire scritps/lua de domoticz et a nommer "comme il faut", différent d'un script lua que l'on appellerait sur une action comme un shell script." (Je pars de 0 mais je compte vraiement m'y mettre pour d'autres idées...)
J'ai donc écrit 4 blokys qui se résument ainsi:
Si capteur réel = ouvert, alors capteur virtuel = ON
Si capteur réel = fermé, alors capteur virtuel = OFF
Si capteur virtuel = ON, alors envois de SMS "la porte vient de s'ouvrir"
Si capteur virtuel = OFF, alors envois de SMS "la porte vient de se fermer".

Ca marche en testant mais je n'ai encore pas eu les OFF (ou ON) à répétitions du capteur réel. Reste à scruter les log de ces 2 capteurs (réel et virtuel) pour voir si tout est OK. Reste également à règler ce problème d'interférences éventuelles!

En tous cas merci beaucoup pour l'idée.
V 2.3530
rimram31
Messages : 659
Inscription : 04 oct. 2015, 11:22
Localisation : Toulouse

Re: Script Lua ouverture de porte et SMS

Message par rimram31 »

poopeye a écrit :...je n'ai pas utilisé ton script LUA car je n'ai pas compris la dernière phrase de ta réponse...
Désolé, je parlais des scripts LUA appelés de façon "transparente" par domoticz: http://easydomoticz.com/point-scripts-lua de la même façon qu'un blockly je suppose. Précision inutile car on n'utilise ici sous domoticz que ce type de script.
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
poopeye
Messages : 41
Inscription : 13 janv. 2016, 19:28

Re: Script Lua ouverture de porte et SMS

Message par poopeye »

Salut, j'ai compris ton scrit LUA mais je l'ai traduit en blokys... Mon post précédent était faux d'ailleurs. Mais maintenant ça le fait!
Merci!!
V 2.3530
Répondre