Page 8 sur 16
Re: Speedup accélérer la réactivité de domoticz
Publié : 10 nov. 2017, 16:44
par landaisbenj
oO Ok alors je sais pas ce que j'ai foutu comme test mais j'ai jamais réussi a faire ça.....
C'est pour ça que je comprend pas depuis le début.
Je viens de re tester avec un interrupteur simple et ça a l'air de fonctionner. Merci je vais donc me rajouter ca dans mon modules.lua

desolé encore
Re: Speedup accélérer la réactivité de domoticz
Publié : 10 nov. 2017, 16:46
par landaisbenj
EDIT : Le temps que je réponde, le message a disparu ?
Oui car j'ai compris que j'avias plusieur erreure. J'ai supprimer mon message de test qui etait foireux.
Re: Speedup accélérer la réactivité de domoticz
Publié : 10 nov. 2017, 16:56
par rapinou
Parfait.
Maintenant que tu as compris le truc, tu vas pouvoir créer tes propres fonction au besoin

Re: Speedup accélérer la réactivité de domoticz
Publié : 10 nov. 2017, 17:08
par landaisbenj
rapinou a écrit :Parfait.
Maintenant que tu as compris le truc, tu vas pouvoir créer tes propres fonction au besoin

Oui merci. Franchement j’étais loin de penser que c’était possible de modifier ça:
Du coup je pousse un peu le vice (mais je ne peux pas tester car avec ma beta je ne peux pas creer de selector), est ce que tu peux me dire si c'est possible avec un interrupteur sélecteur ?
Par exemple si j'ai un sélecteur et les niveaux: OFF, ENTREE, GARAGE, FENETRE; est-ce que je peux écrire ça :
?
Re: Speedup accélérer la réactivité de domoticz
Publié : 10 nov. 2017, 17:52
par vil1driver
Re: Speedup accélérer la réactivité de domoticz
Publié : 10 nov. 2017, 19:31
par landaisbenj

tu as raison. J’ai machinalement pris celui là dans mon historique. A la rigueur je peux même créer un autre topic vu que ma question concerne directement l’implantation lua domoticz. J’espère seulement qu’on viendra me repondre.
Re: Speedup accélérer la réactivité de domoticz
Publié : 21 nov. 2017, 11:06
par Phebus06
Bonjour,
Petite question sur ce script qui m'intéresse pour gagner de la rapidité pour allumer la lumière dans le couloir quand une présence est détectée.
Ce script est il toujours d'actualité ou faut il le remplacer par l'autre script Modules.lua de vil1driver beaucoup plus complet mais qui ne m'intéresse pas pour l'instant car j'apprends tout doucement et je veux comprendre ce que je fait.
Car pour moi il ne fonctionne pas avec tous les essais que j'ai pu faire. Bon en même temps pour me connecter sur mon Domoticz même en local je demande une authentification, du coup j'ai essayé de le changer légèrement afin qu'il prenne le mot de passe mais c'est peut être ça qui fait que mon scripte tout simple ne fonctionne pas.
Donc le voici que j'ai appelé script_device_Speedup.lua :
Code : Tout sélectionner
-- /!\ require Domoticz v3.5776 and after /!\
curl = '/usr/bin/curl ' -- don't forgot the final space
domoticzIP = '192.168.1.92'
domoticzPORT = '8080'
domoticzUSER = 'xxxxx' -- nom d'utilisateur
domoticzPSWD = 'xxxxx' -- mot de pass
domoticzURL = 'http://'..domoticzUSER..':'..domoticzPSWD..'@'..domoticzIP..':'..domoticzPORT
-- switch On a device and set level if dimmmable
function switchOn(device, level)
if level ~= nil then
os.execute(curl..'"'..domoticzURL..'/json.htm?type=command¶m=switchlight&idx='..otherdevices_idx[device]..'&switchcmd=Set%20Level&level='..level..'" &')
else
os.execute(curl..'"'..domoticzURL..'/json.htm?type=command¶m=switchlight&idx='..otherdevices_idx[device]..'&switchcmd=On" &')
end
end
-- switch On a devive for x seconds
-- non compatible avec le script sendTwice
function switchOnFor(device, secs)
switchOn(device)
commandArray[device] = "Off AFTER "..secs
end
-- switch Off a device
function switchOff(device)
os.execute(curl..'"'..domoticzURL..'/json.htm?type=command¶m=switchlight&idx='..otherdevices_idx[device]..'&switchcmd=Off" &')
end
-- Toggle a device
function switch(device)
os.execute(curl..'"'..domoticzURL..'/json.htm?type=command¶m=switchlight&idx='..otherdevices_idx[device]..'&switchcmd=Toggle" &')
end
-- switch On a group or scene
function groupOn(device)
os.execute(curl..'"'..domoticzURL..'/json.htm?type=command¶m=switchscene&idx='..otherdevices_scenesgroups_idx[device]..'&switchcmd=On" &')
end
-- switch Off a group
function groupOff(device)
os.execute(curl..'"'..domoticzURL..'/json.htm?type=command¶m=switchscene&idx='..otherdevices_scenesgroups_idx[device]..'&switchcmd=Off" &')
end
et mon script :
Code : Tout sélectionner
-- chargement des modules
dofile('/home/pi/domoticz/scripts/lua/Speedup.lua')
commandArray = {}
-- si le capteur de mouvement = On alors allume la lumière du couloir
if devicechanged('79') == 'On' then
switchOn('63', 50)
end
return commandArray
Il y a t'il des erreurs ?
Merci

Re: Speedup accélérer la réactivité de domoticz
Publié : 21 nov. 2017, 11:56
par landaisbenj
Phebus06 a écrit :Bonjour,
Ce script est il toujours d'actualité ou faut il le remplacer par l'autre script Modules.lua de vil1driver beaucoup plus complet mais qui ne m'intéresse pas pour l'instant car j'apprends tout doucement et je veux comprendre ce que je fait.
Le script est d'actualité pour ce que tu veux en faire.
Il faut comprendre que le fichier ne contient que des raccourcis vers l'API JSON afin de shunter le déroulement de domoticz. Tu peux ajouter ou retirer ce que tu veux suivant tes besoins.
Du coup, la rapidité des commandes par rapports aux commandes normal (ex: commandArray['Lampe']='On') ne se fait que grace au curl JSON.
Tu ne te sert pas du fonctionnement interne de domoticz (qui prend plus de temps que l'API JSON) mais des commandes d'activation en curl qui sont tres direct et donc plus rapide.
(Dans mon exemple:
Code : Tout sélectionner
os.execute(curl 'http://USER:MDP@ADRESSEIP:PORT/json.htm?type=command¶m=switchlight&idx=IDX&switchcmd=On')
)
Si ton besoin n'est que d’accélérer une seule commande, tu peux tout simplement te servir de la commande JSON en elle meme dans ton script a la place du commandArray ou du fichier de vil1driver.
(Dans ton exemple:
Code : Tout sélectionner
os.execute(curl 'http://USER:MDP@ADRESSEIP:PORT/json.htm?type=command¶m=switchlight&idx=IDX&switchcmd=Set%20Level&level=50')
)
Pour ton fichier:
Car pour moi il ne fonctionne pas avec tous les essais que j'ai pu faire. Bon en même temps pour me connecter sur mon Domoticz même en local je demande une authentification, du coup j'ai essayé de le changer légèrement afin qu'il prenne le mot de passe mais c'est peut être ça qui fait que mon scripte tout simple ne fonctionne pas.
Donc le voici que j'ai appelé script_device_Speedup.lua :
Code : Tout sélectionner
domoticzIP = '192.168.1.92'
domoticzPORT = '8080'
domoticzUSER = 'xxxxx' -- nom d'utilisateur
domoticzPSWD = 'xxxxx' -- mot de pass
domoticzURL = 'http://'..domoticzUSER..':'..domoticzPSWD..'@'..domoticzIP..':'..domoticzPORT
Tu vois bien ici qu'il faut que tu entre ton login mot de passe dans le fichier...
Re: Speedup accélérer la réactivité de domoticz
Publié : 21 nov. 2017, 12:22
par Phebus06
Ok, Ok je comprend mieux...
Du coup je vais essayer d'autre truc ce soir pour voir si j'ai compris le fonctionnement

...
Re: Speedup accélérer la réactivité de domoticz
Publié : 21 nov. 2017, 13:01
par landaisbenj
D'ailleurs je viens de voir ca:
Donc le voici que j'ai appelé script_device_Speedup.lua
En fait le fichier n'est pas un script. C'est juste un fichier de fonction. Comme un annuaire par exemple. Du coups il ne faut pas le nommer comme un script au risque qu'il soit lancer par domoticz.
Tu le nomme simplement, et tu l'appel comme il est nommé, par ton script a toi.
Donc tu as un fichier 'annuaire' et un script reel. Dans ton script tu viens dire:
Je veux faire référence a mon fichier annuaire au cas ou: une fonction dont j'ai besoin n'existe que dans ce fichier.
Et quand tu appels une fonction (comme switchOn) alors il ira la chercher dans ton fichier si tu as mis la bonne adresse.
Toi tu nomme ton fichier script_device_Speedup.lua mais tu appels: /home/pi/domoticz/scripts/lua/Speedup.lua
Si tu veux l'appeler normalement il faudrait /home/pi/domoticz/scripts/lua/scrip_device_Speedup.lua à la rigueur.
Nomme ton fichier comme tu veux, mais appele le par la bonne adresse. Nous c'est un fichier modules.lua que l'on appel comme ca:
Code : Tout sélectionner
-- chargement des modules
dofile('/home/pi/domoticz/scripts/lua/modules.lua')