[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.
Wospi
Messages : 110
Inscription : 21 avr. 2017, 08:54

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

Message 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:
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 »

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
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
Wospi
Messages : 110
Inscription : 21 avr. 2017, 08:54

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

Message 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
Wospi
Messages : 110
Inscription : 21 avr. 2017, 08:54

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

Message 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.
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 »

D'accord

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

Code : Tout sélectionner

print('chemin vers curl:'.. curl) 
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
Wospi
Messages : 110
Inscription : 21 avr. 2017, 08:54

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

Message 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 ?
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

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

Message 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 ?
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 »

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.
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
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 :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
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
sphinxou
Messages : 231
Inscription : 03 déc. 2016, 13:37

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

Message par sphinxou »

bonsoir

peut on faire cette commande switchOffFor('ma lampe', '30') ???
Domoticz 4.9700/ rfxcom /sonde diy/raspberry pi3+HDD/cirusms/contact de porte diy
Répondre