Page 13 sur 16
Re: Speedup accélérer la réactivité de domoticz
Publié : 03 avr. 2018, 19:56
par vil1driver
Ah tu utilises https...
Tu as mis un certificat ?
Re: Speedup accélérer la réactivité de domoticz
Publié : 03 avr. 2018, 20:04
par beuz33
vil1driver a écrit :Ah tu utilises https...
Tu as mis un certificat ?
non j'ai pas réussi à mettre de certificat
par contre, j'utilise déjà des commandes comme ça dans d'autres scripts et ça marche
commandArray['OpenURL']='
https://192.168.1.10:8443/json.htm?type ... &svalue=33'
Re: Speedup accélérer la réactivité de domoticz
Publié : 03 avr. 2018, 20:12
par vil1driver
L'intérêt dans des scripts ?
Essai juste http
Re: Speedup accélérer la réactivité de domoticz
Publié : 03 avr. 2018, 20:14
par beuz33
vil1driver a écrit :L'intérêt dans des scripts ?
Essai juste http
aucun intérêts tu as raison et en plus ça fonctionne en http.
MERCI

Re: Speedup accélérer la réactivité de domoticz
Publié : 03 avr. 2018, 23:31
par beuz33
Bonsoir tout le monde,
j'ai une petite question, vil1driver m'a aidé a faire un script pour faire varier une intensité avec le cube xiaomi, ça fonctionne très bien mais quand je passe par le "speedup" l'intensité augmente au lieu de diminuer
if ((devicechanged[cube] == 'anti_clock_wise') and (otherdevices[lumiere] ~= 'Off')) then
local newLevel = math.floor(100*(otherdevices_svalues[lumiere]-1)/15)
if newLevel < 10 then newLevel = 10 end
commandArray[lumiere]='Set Level '.. newLevel
end
==>intensité diminue
if ((devicechanged[cube] == 'anti_clock_wise') and (otherdevices[lumiere] ~= 'Off')) then
local newLevel = math.floor(100*(otherdevices_svalues[lumiere]-1)/15)
if newLevel < 10 then newLevel = 10 end
switchOn(lumiere,newLevel)
end
==>intensité augmente
quelqu'un peut m'expliquer
merci
Re: Speedup accélérer la réactivité de domoticz
Publié : 04 avr. 2018, 17:55
par vil1driver
car pour le coup, json n'utilise pas le pourcentage mais le niveau soit 15 maxi dans ton cas
Code : Tout sélectionner
if ((devicechanged[cube] == 'anti_clock_wise') and (otherdevices[lumiere] ~= 'Off')) then
local newLevel = otherdevices_svalues[lumiere]-1
if newLevel < 1 then newLevel = 1 end
switchOn(lumiere,newLevel)
end
ps : poster du code = le placer entre balises [ Code] mon code [ /Code] (les boutons au dessus de la zone de saisie)

Re: Speedup accélérer la réactivité de domoticz
Publié : 13 avr. 2018, 14:41
par Sopalin
Merci beaucoup pour ces fonctions. Qui aurait cru que passer par l'API serait plus rapide que du code direct lua,bref.
Ayant configuré Domoticz en HTTPS pour la gestion via Alexa, j'ai ajouté l'option -k dans le curl pour bypasser le contrôle du certificat si vous utilisé un certificat auto-signé comme moi.
C'était mon gravier à l'édifice.
Re: Speedup accélérer la réactivité de domoticz
Publié : 14 avr. 2018, 09:43
par rimram31
Sopalin a écrit :Merci beaucoup pour ces fonctions. Qui aurait cru que passer par l'API serait plus rapide que du code direct lua...
Ce n'est pas le souci, le problème vient de l'implémentation même de domoticz. Domoticz permet l'appel de scripts lua et a prévu qu'ils puissent retourner une liste qui est traitée comme une liste de commandes a exécuter.
Le problème c'est que ces commandes ne sont pas exécutées de façon synchrone et même pas "dans la foulée" mais mis dans une "queue" pour être exécutées ensuite de façon asynchrone. Mais les tempos et autres boucles prennent un temps fou d'ou cette mauvaise réactivité quand on veut une action/réaction.
La solution (que je découvre depuis

) permet d'appeler de façon parfaitement synchrone ... Attention quand même a pas nous faire partir dz en boucle infinie avec des appels réentrants
Heu ... d'ailleurs ça ne serait pas ton problème ici
viewtopic.php?f=10&t=6329#p52866 ???
Re: Speedup accélérer la réactivité de domoticz
Publié : 15 avr. 2018, 21:37
par Globulus
Bonjour à tous,
Quelque chose doit m'échapper : l'utilisation de modules.lua n'accélère pas du tout mes scripts. Le temps d'exécution est même plus important à base de curl ... j'ai du louper un truc ou alors mon pb est ailleurs.
Exemple :
Pour un enchaînement appui bouton allumage de lampe, j'ai :
- blocky : 1 seconde 400 ms
- lua avec commandArray : 1 sec 080 ms
- lua avec curl : 1 sec 220 ms
Je m'attendais à ce que l'ordre soit inverse entre commandArray et curl ?
Les logs :
- blocky :
Code : Tout sélectionner
2018-04-15 21:20:18.223 EventSystem: Event triggered: Eclairage Ch Vincent X_1
2018-04-15 21:20:18.620 (Xiaomi) Light/Switch (Chambre Vincent switch X)
2018-04-15 21:20:18.621 {"cmd":"report","model":"sensor_switch.aq2","sid":"158d0001b8701c","short_id":62380,"data":"{\"status\":\"click\"}"}
2018-04-15 21:20:19.629 (rfx) Lighting 2 (Leds Chambre Vincent)
- lua avec commandArray :
Code : Tout sélectionner
2018-04-15 21:22:06.302 EventSystem: Script event triggered: Eclairage Ch Vincent X 3
2018-04-15 21:22:06.313 (Xiaomi) Light/Switch (Chambre Vincent switch X)
2018-04-15 21:22:06.313 {"cmd":"report","model":"sensor_switch.aq2","sid":"158d0001b8701c","short_id":62380,"data":"{\"status\":\"click\"}"}
2018-04-15 21:22:07.385 (rfx) Lighting 2 (Leds Chambre Vincent)
- lua avec curl :
Code : Tout sélectionner
2018-04-15 21:28:18.308 (Xiaomi) Light/Switch (Chambre Vincent switch X)
2018-04-15 21:28:18.309 {"cmd":"report","model":"sensor_switch.aq2","sid":"158d0001b8701c","short_id":62380,"data":"{\"status\":\"click\"}"}
2018-04-15 21:28:18.431 User: Admin initiated a switch command (34/Leds Chambre Vincent/On)
2018-04-15 21:28:19.527 (rfx) Lighting 2 (Leds Chambre Vincent)
Autre curiosité, quand j'utilise le script avec curl, je n'ai pas de log du type
Pour info, voici les deux scripts :
commandArray :
Code : Tout sélectionner
commandArray = {}
if (devicechanged['Chambre Vincent switch X'] == 'Click') then
commandArray['Leds Chambre Vincent']='On'
elseif (devicechanged['Chambre Vincent switch X'] == 'Double Click') then
commandArray['Leds Chambre Vincent']='Off'
end
return commandArray
curl :
Code : Tout sélectionner
-- chargement des modules
dofile('/home/pi/domoticz/scripts/lua/modules.lua')
commandArray = {}
if (devicechanged['Chambre Vincent switch X'] == 'Click') then
switchOn('Leds Chambre Vincent')
elseif (devicechanged['Chambre Vincent switch X'] == 'Double Click') then
switchOff('Leds Chambre Vincent')
end
return commandArray
Re: Speedup accélérer la réactivité de domoticz
Publié : 09 mai 2018, 11:48
par Doudy
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 ?
