Page 7 sur 8

Re: bibliothèque de fonctions pour scripts LUA

Publié : 15 avr. 2019, 10:20
par vil1driver
A tester

Code : Tout sélectionner

-- script_device_remote.lua


-- chargement des modules (http://easydomoticz.com/forum/viewtopic.php?f=17&t=3940)
dofile('/home/pi/domoticz/scripts/lua/modules.lua')

local debug = false  -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir

function groupToggle(group) 
   if otherdevices_scenesgroups[group] ~= 'Off' then
      groupOff(group) 
   else
      groupOn(group) 
   end           
end

commandArray = {} 
--------------------------------
------ Tableau à éditer ------
--------------------------------

   local bt={}
   
	--bt['switch name'] = { 'action On' , 'action Off' }
      bt['test']={'switch("Lumiere Garage")'}
      bt['test 2']={'groupToggle("Lumiere Salon Blanc")'}
	  
    -- etc.. 

--------------------------------
-- Fin du tableau à éditer --
--------------------------------



   for bouton, action in pairs(bt) do
		if (devicechanged[bouton] == 'On') then
			log('REMOTE: '..bouton..' switched On > '..action[1],debug)
			load(action[1])()
			break
		elseif (devicechanged[bouton] == 'Off') then
			log('REMOTE: '..bouton..' switched Off > '..action[2],debug)
			load(action[2])()
			break
		end
   end

return commandArray


Re: bibliothèque de fonctions pour scripts LUA

Publié : 15 avr. 2019, 13:44
par vulbas
Merci vil1driver, t'es au top, ça marche nickel.

Re: bibliothèque de fonctions pour scripts LUA

Publié : 15 avr. 2019, 18:45
par vil1driver
;)

Re: bibliothèque de fonctions pour scripts LUA

Publié : 24 mai 2019, 07:57
par denis_brasseur
J'utilise la bibliothèque de fonctions pour script LUA, personnalisé avec mes propres fonctions.
La fonction creaVar me pose problème depuis quelques jours :

Code : Tout sélectionner

-- création de variable utilisateur
-- usage
-- creaVar('toto','10') -- pour créer une variable nommée toto comprenant la valeur 10
function creaVar(name,value)
	local api = '/json.htm?type=command&param=saveuservariable'
	local name = '&vname='..url_encode(name)
	local vtype = '&vtype=2'
	local value = '&vvalue='..url_encode(value)
	api = api..name..vtype..value
	os.execute(curl..'-u '..domoticzUSER..':'..domoticzPSWD..' "'..domoticzURL..api..'" &')
end
En regardant dans la console et en créant une variable depuis l'interface, la commande envoyé est celle ci :

Code : Tout sélectionner

http://192.168.1.6:8060/json.htm?type=command&param=adduservariable&vname=test&vtype=2&vvalue=essai
Retour si envoi depuis le navigateur :
{
"status" : "OK",
"title" : "AddUserVariable"
}
et non pas

Code : Tout sélectionner

http://192.168.1.6:8060/json.htm?type=command&param=saveuservariable&vname=test&vtype=2&vvalue=essai
Retour si envoi depuis le navigateur :
{
"status" : "ERR"
}
Cela fonctionne ensuite en remplaçant saveuservariable par adduservariable dans la fonction.

Error Updating Variable with version 4.10298 (solved in 4.10299)

Re: bibliothèque de fonctions pour scripts LUA

Publié : 24 mai 2019, 09:26
par vil1driver
Ahh les mises à jour.. :?

Merci de ton retour.

Re: bibliothèque de fonctions pour scripts LUA

Publié : 24 nov. 2019, 20:41
par garycooper
Un problème sur la fonction arrondir ?

En utilisation du script PID chauffage, j'ai un défaut qui revient systématiquement dans les logs :
/home/pi/domoticz/scripts/lua/modules.lua:376: attempt to perform arithmetic on local 'num' (a nil value)

Code : Tout sélectionner

-- arrondire
function round(num, dec)
   if num == 0 then
	 return 0
   else
	 local mult = 10^(dec or 0)
	 return math.floor(num * mult + 0.5) / mult
   end
end
Une idée de l'origine du message d'erreur ?

Re: bibliothèque de fonctions pour scripts LUA

Publié : 24 nov. 2019, 20:57
par papoo
d'après ton log le contenu de la variable num est nil.
cela ne vient pas de la fonction mais des variables passées à la fonction

Re: bibliothèque de fonctions pour scripts LUA

Publié : 25 nov. 2019, 05:31
par denis_brasseur
un print(num..'-'..dec) avant d'utiliser la fonction round(num, dec) dans ton code devrait te permettre de trouver le coupable.

Re: bibliothèque de fonctions pour scripts LUA

Publié : 25 nov. 2019, 23:43
par vil1driver
Vérifie que tu n'as pas à nouveau un soucis de casse.
Vérifie également que tous tes dispositifs ont bien un nom unique !

Re: [LUA] Bibliothèque de fonctions

Publié : 24 août 2023, 19:23
par DomoTiBI
Bonjour,

Séduit par l'idée, je viens de passer pas mal de temps à tenter d’utiliser ces fonction dans un script Dzvents.
Et puis j'ai relu le titre.

Ôtez moi d'un doute. C'est pas possible ?