Page 3 sur 16

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

Publié : 12 déc. 2016, 18:24
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

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

Publié : 21 déc. 2016, 13:15
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 ;)

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

Publié : 23 mars 2017, 17:42
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

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

Publié : 23 mars 2017, 19:14
par vil1driver
Merci ;)

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

Publié : 17 avr. 2017, 18:59
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 .

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

Publié : 17 avr. 2017, 19:20
par vil1driver
Dans notepad++ vérifie bien que tu es en utf8

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

Publié : 17 avr. 2017, 19:36
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.

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

Publié : 17 avr. 2017, 19:40
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

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

Publié : 17 avr. 2017, 21:10
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.

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

Publié : 17 avr. 2017, 21:15
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"