Page 5 sur 16

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

Publié : 19 sept. 2017, 11:36
par Wospi
Bonjour !
Y'a pas... je n'arrive pas à faire fonctionner Speedup.
Je suis sûr que je rate une toute petite chose, un rien du tout ! Mais quoi ?

J'ai fait ce script :

Code : Tout sélectionner

-- chargement des modules
dofile('/home/pi/domoticz/scripts/lua/modules.lua')

commandArray = {}
valeur_lux = (otherdevices_svalues['Luminosité cuisine'])
          valeur_lux=tonumber(valeur_lux)
          print(valeur_lux)
          
if(valeur_lux < 1000) then 
    if(otherdevices['PIR_entree'] == 'On') then
   switchOnFor('Spots cuisine', '30')
end
end
return commandArray
Et dans les logs j'obtiens ceci :

Code : Tout sélectionner

[Error: EventSystem: in Spots cuisine: /home/pi/domoticz/scripts/lua/modules.lua:447: attempt to concatenate field '?' (a nil value)/code]

Je pense que ça vient du lien URL qui se crée pour l'occasion. 

J'ai défini l'adresse IP de domoticz ainsi que son port, j'ai fait en sorte que je n'ai pas besoin de mot de passe quand je suis sur le réseau (mais j'ai aussi essayé en mettant mon id et mdp dans modules.lua). Je n'ai pas mis de passcode pour les interrupteurs protégés car je n'en ai pas. 
J'ai aussi commenté les lignes concernant la passerelle SMS car je n'en ai pas non plus. 

Des idées ?  :roll:

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

Publié : 19 sept. 2017, 11:44
par vil1driver
Salut,

Je n'aurais pas écris le script de cette façon mais cela n'est pas lié à ton erreur donc on y reviendra plus tard..

Quelle est la ligne 447 ? La commande os.execute ?
Si oui fais voir la partie USER SETTINGS de ton modules.lua

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

Publié : 19 sept. 2017, 11:58
par Wospi
vil1driver a écrit :Salut,

Je n'aurais pas écris le script de cette façon mais cela n'est pas lié à ton erreur donc on y reviendra plus tard..

Quelle est la ligne 447 ? La commande os.execute ?
Si oui fais voir la partie USER SETTINGS de ton modules.lua
Oui je l'ai écrit à la va-vite pour tester de nouveau Speedup, je reviendrais dessus après ;)

Ligne concernée :

Code : Tout sélectionner

		os.execute(curl..'-u '..domoticzUSER..':'..domoticzPSWD..' "'..domoticzURL..'/json.htm?type=command&param=switchlight&idx='..otherdevices_idx[device]..'&switchcmd=On&passcode='..domoticzPASSCODE..'" &')
Elle provient de cet endroit :

Code : Tout sélectionner

-- switch On a device and set level if dimmmable
function switchOn(device,level)
	if level ~= nil then
		os.execute(curl..'-u '..domoticzUSER..':'..domoticzPSWD..' "'..domoticzURL..'/json.htm?type=command&param=switchlight&idx='..otherdevices_idx[device]..'&switchcmd=Set%20Level&level='..level..'&passcode='..domoticzPASSCODE..'" &')
	else	
		os.execute(curl..'-u '..domoticzUSER..':'..domoticzPSWD..' "'..domoticzURL..'/json.htm?type=command&param=switchlight&idx='..otherdevices_idx[device]..'&switchcmd=On&passcode='..domoticzPASSCODE..'" &')
	end	
end

-- switch On a devive for x secondes 
function switchOnFor(device, secs)
   switchOn(device)
   commandArray[device] = "Off AFTER "..secs
end

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

Publié : 19 sept. 2017, 12:02
par Wospi
J'ai oublié ma partie settings :

Code : Tout sélectionner

--------------------------------
------ 	  USER SETTINGS	  ------
--------------------------------

-- domoticz
domoticzIP = '192.168.XX.XX'	--'127.0.0.1'
domoticzPORT = '8080'
domoticzUSER = ''		-- nom d'utilisateur
domoticzPSWD = ''		-- mot de pass
domoticzPASSCODE = ''	-- pour interrupteur protégés
domoticzURL = 'http://'..domoticzIP..':'..domoticzPORT

-- passerelle SMS
--smsGatewayIP = '192.168.22.171'
--smsGatewayPORT = '41047'
--smsGatewayURL = 'http://'..smsGatewayIP..':'..smsGatewayPORT

--admin = 'xxxxxxxxxxxxx'
J'ai essayé en mettant domoticzUSER et domoticzPSWD aussi
Ici le seul changement que j'ai fait c'est domoticzIP.

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

Publié : 19 sept. 2017, 12:52
par vil1driver
D'accord

Dans ton script de test supprime la ligne switchOnFor et met à la place

Code : Tout sélectionner

print('chemin vers curl:'.. curl) 

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

Publié : 19 sept. 2017, 14:27
par Wospi
Hum je viens d'essayer avec un autre device, ça a fonctionné puis retour avec le device que je voulais utiliser de base et tout fonctionne...
Je n'ai pas compris le problème.
Le print curl t'intéresse toujours ?

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

Publié : 29 sept. 2017, 09:21
par deennoo
Petite question est ce que module.lua gere la priorité d'envoie des commande comme le fait :

Code : Tout sélectionner

commandArray = {}
 commandArray[1]={['OpenURL']='www.cam1.com/api/movecamtopreset.cgi' }
 commandArray[2]={['OpenURL']='www.cam2.com/api/movecamtopreset.cgi' }
 commandArray[3]={['OpenURL']='www.cam3.com/api/movecamtopreset.cgi' }
 return commandArray
si je fais :

Code : Tout sélectionner

    switchOn('Eclairage Terrasse')
    groupOn('Eclairage Exterieure')
    switchOff('Lum ext auto')
    
Il envoie les ordres de haut en bas ou de bas en haut ou en vrac ?

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

Publié : 29 sept. 2017, 14:25
par vil1driver
Ordres envoyés dans l'ordre de lecture ;)
De haut en bas donc..
L'intervalle entre les envois étant très court, on pourrait presque dire que tout part en même temps.
Donc rien n'empêche dans la pratique un ordre d'arriver avant le précédent (je pense)
La Probabilité est vraiment faible je pense mais je ne m'aventurerai pas à le garantir.
Je ne suis pas suffisamment connaisseur du fonctionnement de la pile tcp/ip..

Après au niveau du traitement des ordres reçus par domoticz, je pense qu'il fait les choses dans l'ordre.

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

Publié : 29 sept. 2017, 19:06
par deennoo
vil1driver a écrit :Ordres envoyés dans l'ordre de lecture ;)
De haut en bas donc..
L'intervalle entre les envois étant très court, on pourrait presque dire que tout part en même temps.
Donc rien n'empêche dans la pratique un ordre d'arriver avant le précédent (je pense)
La Probabilité est vraiment faible je pense mais je ne m'aventurerai pas à le garantir.
Je ne suis pas suffisamment connaisseur du fonctionnement de la pile tcp/ip..

Après au niveau du traitement des ordres reçus par domoticz, je pense qu'il fait les choses dans l'ordre.
Merci chef

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

Publié : 29 oct. 2017, 18:13
par sphinxou
bonsoir

peut on faire cette commande switchOffFor('ma lampe', '30') ???