Page 2 sur 34

Re: aide pour réalisation script en lua

Publié : 10 mai 2020, 12:44
par thier
@fredclo
En fait le problème c'est quand tu dois faire plusieurs commandarray pour un même device dans un même script. dans ce cas ta proposition est celle qui faut utiliser sinon seul le dernier commandarray est exécuté.
Ce n'est pas le cas dans ce script. Il n'y a qu'une commande On ou Off. il n'y a pas d'enchainement de commande pour le 'Store Terasse'.
Tu peux mettre autant de commandarray que tu veux dans un script tant qu'il ne concerne pas un enchainement pour un même device.

Re: aide pour réalisation script en lua

Publié : 10 mai 2020, 12:49
par fredclo
merci pour cette précision. J'en apprends tous les jours

Re: aide pour réalisation script en lua

Publié : 10 mai 2020, 13:48
par vr6man
thier je viens de tester

La fermeture ne fonctionne pas pourtant Store Terrasse est bien à On et quand je passe nuit à OFF le store ne se ferme pas

Sinon j'ai ce message d'erreur

2020-05-10 13:44:54.072 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_device_store-terrasse.lua: ...pi/domoticz/scripts/lua/script_device_store-terrasse.lua:4: ')' expected near 'UV'

Re: aide pour réalisation script en lua

Publié : 10 mai 2020, 13:57
par Keros
Ca devrait fonctionner comme ça :
print("otherdevices['UV'] "..otherdevices['UV'])
Idem pour les autres lignes de print. En fait, l'apostrophe pour 'UV était considéré comme la fin du texte et le script plantait sur UV.

Re: aide pour réalisation script en lua

Publié : 10 mai 2020, 14:05
par vr6man
je viens de tester un truc simple

Code : Tout sélectionner

commandArray={}

print("otherdevices['Store Terrasse'] "..otherdevices['Store Terrasse'])
print("otherdevices['Nuit'] "..otherdevices['Nuit'])

-- Fermeture du Store Terrasse
        if(otherdevices['Store Terrasse']=='On' and devicechanged['Nuit']=='On') then
        commandArray['Store Terrasse']='Off'
        print('Fermeture Store Terrasse')
        commandArray['SendNotification']='Store Terrasse#Fermeture Store Terrasse'
end

return commandArray
et ca non plus ça ne fonctionne pas le store ne se ferme pas malgré que Store Terrasse soit à On et que je passe nuit à OFF

Re: aide pour réalisation script en lua

Publié : 10 mai 2020, 14:08
par Keros
Ton script est enregistré où ? Dans Domoticz ? Dans un fichier .lua dans ton dossier Scripts ?

Repars de la base avec l'exemple :

Code : Tout sélectionner

commandArray = {}

-- loop through all the changed devices
for deviceName,deviceValue in pairs(devicechanged) do
    print ("Device based event fired on '"..deviceName.."', value '"..tostring(deviceValue).."'");
--    if (deviceName=='myDevice') then
--        if deviceValue == "On" then
--            print("Device is On")
--        elseif deviceValue == "Off" then
--            commandArray['a device name'] = "On"
--            commandArray['another device name'] = "Off AFTER 10"
--            commandArray['Scene:MyScene'] = "Off"
--            commandArray['Group:My Group'] = "Off AFTER 30"
--        end
--    end
end

return commandArray
Et essaye déjà d'avoir un retour dans tes logs lorsque tu changes ton device Nuit

Re: aide pour réalisation script en lua

Publié : 10 mai 2020, 14:11
par thier
@keros
Effectivement erreur de ma part il faut échapper tout les ' dans les print.
ça donne print('otherdevices[\'UV\'] '..otherdevices['UV'])

Re: aide pour réalisation script en lua

Publié : 10 mai 2020, 14:13
par vr6man
voici les logs

2020-05-10 14:11:26.666 Status: LUA: otherdevices['Store Terrasse'] 16.0
2020-05-10 14:11:26.667 Status: LUA: otherdevices['Nuit'] On


oui il est dans le dossier /domoticz/script/lua

il s'appel :
script_device_store-terrasse.lua

j'ai aussi essayé en timer et ca ne change rien

Re: aide pour réalisation script en lua

Publié : 10 mai 2020, 14:17
par Keros
Le soucis que tu rencontre est le lancement de ton script.

Le type Device est bon. Il te manque for deviceName,deviceValue in pairs(devicechanged) do et la suite.

Repars de l'exemple de DomoticZ que je t'ai mis plus haut. Tu pourras y adapter ton code.

Re: aide pour réalisation script en lua

Publié : 10 mai 2020, 14:18
par thier
@vr6man
essai

Code : Tout sélectionner

commandArray={}

print('otherdevices[\'Store Terrasse\'] '..otherdevices['Store Terrasse'])
print('otherdevices[\'Nuit\'] '..otherdevices['Nuit'])

-- Fermeture du Store Terrasse
        if(otherdevices['Store Terrasse']=='On' and otherdevices['Nuit']=='On') then
        commandArray['Store Terrasse']='Off'
        print('Fermeture Store Terrasse')
        commandArray['SendNotification']='Store Terrasse#Fermeture Store Terrasse'
end

return commandArray
Tu enregistres en script_time_store.lua et tu supprime ".lua" dans le nom de ton script actuel pour qu'il ne s'exécute plus.
Tu ouvres ton store, tu mets Nuit à On et tu attends la minute suivante. il devrait se fermer. regarde tes logs.