[LUA] Speedup accélérer la réactivité de domoticz

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: RE: Re: Speedup accélérer la réactivité de domoticz

Message par deennoo »

vil1driver a écrit :une fois n'est pas coutume j'ai posté sans tester et après essai, allez savoir pourquoi ça ne fonctionne pas :o et vous ?

le Off AFTER n'est pris en compte que si je ne passe pas la lampe à On avant :?
est ce que la commande Off AFTER serait passée avant la commande On et donc annulée par cette dernière ? :?
Pas essayer non plus...pas eu le temps je suis sur les ampoules yeelight.

Une histoire de
Commandarray[1]=
CommandArray[2]=

Etc qui force l'orde
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Speedup accélérer la réactivité de domoticz

Message par vil1driver »

bon, c'est résolu, la faute au script send twice qui renvoyait la commande On et désactivait du coups le Off AFTER.

donc ça fonctionne au poil ;)
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
OyyoDams
Messages : 71
Inscription : 24 mars 2015, 15:07

Re: Speedup accélérer la réactivité de domoticz

Message par OyyoDams »

Salut vil1driver,

Pour ma part j'utilise pas mal le mode "protégé" pour des inter virtuels sensibles. Or ton script ne sais pas les gérer, car quand on passe par un json dans ce cas il faut ajouter "&passcode=XXXX" en remplaçant XXXX par le mot de passe choisi dans "Protection Luminaires/Interrupteurs".

Je te propose donc une nouvelle version qui prend en compte ce paramètre:

Code : Tout sélectionner

-- /!\ require Domoticz v3.5776 and after /!\

curl = '/usr/bin/curl ' -- don't forgot the final space

domoticzIP = '127.0.0.1'
domoticzPORT = '8080'
domoticzURL = 'http://'..domoticzIP..':'..domoticzPORT
domoticzPASSCODE = 'XXXX'

-- 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&param=switchlight&idx='..otherdevices_idx[device]..'&switchcmd=Set%20Leve
l&level='..level..'&passcode='..domoticzPASSCODE..'" &')
   else   
      os.execute(curl..'"'..domoticzURL..'/json.htm?type=command&param=switchlight&idx='..otherdevices_idx[device]..'&switchcmd=On&passcod
e='..domoticzPASSCODE..'" &')
   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&param=switchlight&idx='..otherdevices_idx[device]..'&switchcmd=Off&passcode=
'..domoticzPASSCODE..'" &')
end

-- Toggle a device
function switch(device)
   os.execute(curl..'"'..domoticzURL..'/json.htm?type=command&param=switchlight&idx='..otherdevices_idx[device]..'&switchcmd=Toggle&passco
de='..domoticzPASSCODE..'" &')
end

-- switch On a group or scene
function groupOn(device)
   os.execute(curl..'"'..domoticzURL..'/json.htm?type=command&param=switchscene&idx='..otherdevices_scenesgroups_idx[device]..'&switchcmd=
On&passcode='..domoticzPASSCODE..'" &')
end

-- switch Off a group
function groupOff(device)
   os.execute(curl..'"'..domoticzURL..'/json.htm?type=command&param=switchscene&idx='..otherdevices_scenesgroups_idx[device]..'&switchcmd=
Off&passcode='..domoticzPASSCODE..'" &')
end
Domoticz sur Raspberry PI 3
Interfaces: razberry, rfxtrx433e, rflink
Périphériques: DI.O, Somfy RTS, Yeelight
L'excellent blog de mon ami Deennoo: http://www.domo-attitude.fr
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Speedup accélérer la réactivité de domoticz

Message par vil1driver »

Merci ;)
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
Merangle
Messages : 81
Inscription : 18 mars 2015, 23:04

Re: Speedup accélérer la réactivité de domoticz

Message par Merangle »

Bonsoir à tous et merci pour toutes ces astuces.

J'essaye de mettre en oeuvre cette solution pour optimiser la vitesse de DZ:

j'ai donc les instructions suivantes
cmd = "/usr/bin/curl http://192.168.1.41:8080/json.htm?type= ... itchcmd=On"
print ('Tools '..cmd)
os.execute(cmd)
qui reproduit les instructions proposées par Vil1driver et j'obtiens dans la log pour le print

extrait de la chaine cmd pour la voir complètement
type=command&param=switchlight&idx=42&switchcmd=On"

2017-04-17 18:53:13.625 LUA: Tools /usr/bin/curl http://192.168.1.41:8080/json.htm?type=command¶m=switchlight&idx=42&switchcmd=On

et bien sûr la commande ne s'exécute pas.
La même commande envoyée par le browser s'exécute correctement.

Le point embêtant est la transformation de "command&param" en "command(paragraphe)m" par transformation de &par en (paragraphe).
J'utilise comme éditeur notepad++ (et même chose avec nano).

Le même type d'instruction dans un programme bash marche parfaitement.
Auriez-vous une idée pour corriger ce point bloquant ?????

Merci d'avance pour votre aide .
Synology DS212 + RFXTrx433 + AEon Stick S2
Oregon - Thgr122Nx / Chacon - module 1000w - détecteur de fumée 34131 / OWL -CM180 / Greenwave Multiprise
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Speedup accélérer la réactivité de domoticz

Message par vil1driver »

Dans notepad++ vérifie bien que tu es en utf8
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
Merangle
Messages : 81
Inscription : 18 mars 2015, 23:04

Re: Speedup accélérer la réactivité de domoticz

Message par Merangle »

Bonsoir Vil1driver

Il est en UTF8 sans BOM
Il y a l'option UTF8 seul. J'ai essayé cette option. Cela ne corrige pas le pb.

Merci pour ta suggestion.
Synology DS212 + RFXTrx433 + AEon Stick S2
Oregon - Thgr122Nx / Chacon - module 1000w - détecteur de fumée 34131 / OWL -CM180 / Greenwave Multiprise
Doume
Messages : 550
Inscription : 28 déc. 2014, 10:27
Localisation : Nord (59)
Contact :

Re: Speedup accélérer la réactivité de domoticz

Message par Doume »

Merangle a écrit :Bonsoir à tous et merci pour toutes ces astuces.

J'essaye de mettre en oeuvre cette solution pour optimiser la vitesse de DZ:

j'ai donc les instructions suivantes
cmd = "/usr/bin/curl http://192.168.1.41:8080/json.htm?type= ... itchcmd=On"
print ('Tools '..cmd)
os.execute(cmd)
qui reproduit les instructions proposées par Vil1driver et j'obtiens dans la log pour le print

extrait de la chaine cmd pour la voir complètement
type=command&param=switchlight&idx=42&switchcmd=On"

2017-04-17 18:53:13.625 LUA: Tools /usr/bin/curl http://192.168.1.41:8080/json.htm?type=command¶m=switchlight&idx=42&switchcmd=On

et bien sûr la commande ne s'exécute pas.
La même commande envoyée par le browser s'exécute correctement.

Le point embêtant est la transformation de "command&param" en "command(paragraphe)m" par transformation de &par en (paragraphe).
J'utilise comme éditeur notepad++ (et même chose avec nano).

Le même type d'instruction dans un programme bash marche parfaitement.
Auriez-vous une idée pour corriger ce point bloquant ?????

Merci d'avance pour votre aide .
Lorsque tu concatènes des chaines en PHP ( string1..string2 ) le langage n'accepte pas les caractères '&'
Ca fonctionne si tu remplaces le & par &amp
Merangle
Messages : 81
Inscription : 18 mars 2015, 23:04

Re: Speedup accélérer la réactivité de domoticz

Message par Merangle »

Bonsoir

Merci pour l'astuce de remplacer & par &amp.
Effectivement la commande cmd devient lisible.
Mais l'interrupteur ne s'allume toujours pas. Il faut que je cherche pourquoi.

En tous les cas, merci de votre aide.
Synology DS212 + RFXTrx433 + AEon Stick S2
Oregon - Thgr122Nx / Chacon - module 1000w - détecteur de fumée 34131 / OWL -CM180 / Greenwave Multiprise
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Speedup accélérer la réactivité de domoticz

Message par Neutrino »

Echange type et param :

Code : Tout sélectionner

type=command&param=switchlight&idx=42&switchcmd=On"
devient

Code : Tout sélectionner

param=switchlight&type=command&idx=42&switchcmd=On"
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
Répondre