[LUA] Speedup accélérer la réactivité de domoticz
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Speedup accélérer la réactivité de domoticz
Ah tu utilises https...
Tu as mis un certificat ?
Tu as mis un certificat ?
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
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: Speedup accélérer la réactivité de domoticz
non j'ai pas réussi à mettre de certificatvil1driver a écrit :Ah tu utilises https...
Tu as mis un 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'
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Speedup accélérer la réactivité de domoticz
L'intérêt dans des scripts ?
Essai juste http
Essai juste http
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
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: Speedup accélérer la réactivité de domoticz
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
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
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
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Speedup accélérer la réactivité de domoticz
car pour le coup, json n'utilise pas le pourcentage mais le niveau soit 15 maxi dans ton cas
ps : poster du code = le placer entre balises [ Code] mon code [ /Code] (les boutons au dessus de la zone de saisie) 
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
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
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: Speedup accélérer la réactivité de domoticz
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.
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
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.Sopalin a écrit :Merci beaucoup pour ces fonctions. Qui aurait cru que passer par l'API serait plus rapide que du code direct lua...
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
Heu ... d'ailleurs ça ne serait pas ton problème ici viewtopic.php?f=10&t=6329#p52866 ???
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
Re: Speedup accélérer la réactivité de domoticz
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 :
- lua avec commandArray :
- lua avec curl :
Autre curiosité, quand j'utilise le script avec curl, je n'ai pas de log du type
Pour info, voici les deux scripts :
commandArray :
curl :
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)
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) 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) Code : Tout sélectionner
EventSystem: blablacommandArray :
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 commandArrayCode : 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
Bonjour,
J'ai un petit soucis avec mes tests de modules.lua
Je fais ceci :
j'obtiens le massage suivant :
Quelqu'un peu éclairer ma lanterne ?

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
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)RaspberryPi - RFLink - Zwave - WH2600
Domoticz : 2020.2 | Dashticz : V3.12 Master | dzvents : 3.0.2 | Python : 3.7.3
Domoticz : 2020.2 | Dashticz : V3.12 Master | dzvents : 3.0.2 | Python : 3.7.3