Page 14 sur 16

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

Publié : 09 mai 2018, 15:03
par landaisbenj
Doudy a écrit :Bonjour,
J'ai un petit soucis avec mes tests de modules.lua
Je fais ceci :

Code : Tout sélectionner

-- chargement des modules
dofile('/home/pi/domoticz/scripts/lua/modules.lua')
commandArray = {}
	time = os.date("*t")
	print("time : " .. time)
return commandArray
j'obtiens le massage suivant :

Code : Tout sélectionner

2018-05-09 11:46:00.264 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_test.lua: /home/pi/domoticz/scripts/lua/script_time_test.lua:16: attempt to concatenate global 'time' (a table value)
Quelqu'un peu éclairer ma lanterne ?
:idea:
le format *t créé une table pour os.date. Une table c'est plusieur variable et valeur imbriquées. Ici time = os.date('*t') ressemble un peu a ca:

Code : Tout sélectionner

time = {year = 1998, month = 9, day = 16, yday = 259, wday = 4, hour = 23, min = 48, sec = 10, isdst = false}
Tu ne peux pas imprimer une table car c'est plusieur valeurs. Ils ne sait pas les intepreter a la suite. Si tu veux imprimer le temps il faut que tu change le format. En une seul valeur c'est mieux. Genre YY/MM/DD...

En fait os.date te retourne un format de temps sur le timestamp que tu lui entre. (ici tu n'en met aucun donc il s'agit du temps présent)
Essai avec les formats suivant:

Code : Tout sélectionner

	time = os.date("%X %x")
	print("time : " .. time)
La liste des formats.

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

Publié : 09 mai 2018, 15:56
par Doudy
Résultat de :

Code : Tout sélectionner

time = os.date("%X %x")
=

Code : Tout sélectionner

2018-05-09 15:54:00.303 LUA: time : 15:54:00 05/09/18
Merci pour la "La liste des formats."
J'aurais pu chercher longtemps...
;)

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

Publié : 09 mai 2018, 16:29
par vil1driver
Salut,

Comme tu charges modules.lua tu peux en utiliser ceci

Code : Tout sélectionner

print('heure : ' .. heure) 
;)

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

Publié : 09 mai 2018, 17:41
par Doudy
Ok merci
;)

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

Publié : 09 mai 2018, 20:49
par Jeff
Doudy a écrit :Résultat de :

Code : Tout sélectionner

time = os.date("%X %x")
=

Code : Tout sélectionner

2018-05-09 15:54:00.303 LUA: time : 15:54:00 05/09/18
Merci pour la "La liste des formats."
J'aurais pu chercher longtemps...
;)
Une grand découverte pour moi aussi et l'utilisation avec module.lua.
Je vais finir par comprendre quelque chose au script LUA un jour :lol:

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

Publié : 25 mars 2019, 22:37
par Hexolite
Bonjour,
Très intéressé pour accélérer mes scripts j'ai testé la mise en place de votre code.
J'ai procédé ainsi:
1) j'ai créé un fichier modules.lua sous /home/pi/domoticz/scripts/lua
2) j'ai ajouté le dofile et j'ai changé les command array par groupOn ou switchOn

Voilà mon code pour l'allumage de mes lampes:

Code : Tout sélectionner

-- heurez à laquelle on passe des ampoules au soleil
Seuil_Heure_Soir="23:00:00"
Seuil_Heure_Matin="08:30:00"
-- chargement des modules
dofile('/home/pi/domoticz/scripts/lua/modules.lua')

commandArray = {}

if (devicechanged['deCONZ - Motion Sensor'] == 'On') then
	print("mouvement 1") 
	if (tonumber(otherdevices['deCONZ - Motion Sensor (2)'])<15) then
		print("luminosité<15")
		Heure_Actuelle=os.date("%X")
		print (Heure_Actuelle)
		if Heure_Actuelle > Seuil_Heure_Matin then
			print ("il est plus de 8h30 heures")
			if Heure_Actuelle < Seuil_Heure_Soir then
				print ("il est entre 8h30 et 23 heures")
				--commandArray['Group:entree']='On' = mon ancienne commande
				groupOn('entree')
			else 
				print("il est plus de 23 heures")
				--commandArray['deCONZ - entree_soleil']='On' = mon ancienne commande
				switchOn('deCONZ - entree_soleil')
			end
		else
			print ("il est moins de 8h30 heures")
			--commandArray['deCONZ - entree_soleil']='On' = mon ancienne commande
			switchOn('deCONZ - entree_soleil')
		 end
	end
end
return commandArray

Et pour éteindre:

Code : Tout sélectionner

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

commandArray = {}

if (devicechanged['deCONZ - Motion Sensor (2)'] == 'Off') then
	print("plus de mouvement") 
	--commandArray['Group:entree_totale']='Off'
	groupOn('entree_totale')
end
return commandArray
Je suis débutant alors j'ai sûrement loupé un truc! Merci par avance :)

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

Publié : 26 mars 2019, 04:27
par denis_brasseur
Hexolite a écrit : 25 mars 2019, 22:37 Je suis débutant alors j'ai sûrement loupé un truc! Merci par avance :)

Tu nous dis que tu a loupé un truc, mais tu ne nous dis pas ce qui ne fonctionne pas, ni même si cela fonctionne.

Au premier regard quand même, dans le code d'extinction, tu a remplacé

Code : Tout sélectionner

--commandArray['Group:entree_totale']='Off'

Code : Tout sélectionner

groupOn('entree_totale')
Ca ne serait pas plutôt un groupOff ?

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

Publié : 26 mars 2019, 22:47
par Hexolite
denis_brasseur a écrit : 26 mars 2019, 04:27
Hexolite a écrit : 25 mars 2019, 22:37 Je suis débutant alors j'ai sûrement loupé un truc! Merci par avance :)

Tu nous dis que tu a loupé un truc, mais tu ne nous dis pas ce qui ne fonctionne pas, ni même si cela fonctionne.

Au premier regard quand même, dans le code d'extinction, tu a remplacé

Code : Tout sélectionner

--commandArray['Group:entree_totale']='Off'

Code : Tout sélectionner

groupOn('entree_totale')
Ca ne serait pas plutôt un groupOff ?
Hello merci pour ton retour. Effectivement ce n'était pas du tout clair !

Effectivement là j'ai fait une erreur de copy pasta mais même le code pour l'allumage ne fonctionne pas...

Jai bien mes prints dans mon log, preuve que le script s'exécute bien. Mais ca n'allume pas mon groupe ni mon appareil selon ce qui doit s'allumer.
En bref, rien ne s'allume pour la version SpeedUp alors que ça marche avec la version de base...

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

Publié : 27 mars 2019, 03:46
par vil1driver
Salut,

Soit modules.lua est vide
Soit l'ip 127.0.0.1 doit être remplacée (voir page 1)
Soit tu as changé le port
Soit curl n'est pas installé
Soit domoticz est soumis à mot de pass (voir page 2)

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

Publié : 01 avr. 2019, 18:57
par Wolfen38
J'ai du mal a voir la vitesse dans les log, mais en réel, je vois pas trop de différence

Sans le module

Code : Tout sélectionner

2019-04-01 18:49:34.698 (Zigate) UpdateDevice - (Interrupteur couloir) 1:00
2019-04-01 18:49:34.753 (Virtualsensor) Lighting 1 (Virtuel couloir)
2019-04-01 18:49:34.774 (Sonoff_espeasy) Light/Switch (Sonoff-couloir)
2019-04-01 18:49:34.812 (Zigate) UpdateDevice - (Interrupteur couloir) 1:40
2019-04-01 18:49:34.732 Status: EventSystem: Script event triggered: /home/pi/domoticz/scripts/lua/script_device_couloir2.lua
Avec le module

Code : Tout sélectionner

2019-04-01 18:51:10.053 (Zigate) UpdateDevice - (Interrupteur couloir) 1:00
2019-04-01 18:51:10.162 (Virtualsensor) Lighting 1 (Virtuel couloir)
2019-04-01 18:51:10.176 (Sonoff_espeasy) Light/Switch (Sonoff-couloir)
2019-04-01 18:51:10.192 (Zigate) UpdateDevice - (Interrupteur couloir) 1:40
2019-04-01 18:51:10.115 Status: EventSystem: Script event triggered: /home/pi/domoticz/scripts/lua/script_device_couloir2.lua
2019-04-01 18:51:10.165 Status: User: Admin initiated a switch command (125/Sonoff-couloir/On)
D'après les log, vous voyez une grosse différence de vitesse ?