aide pour réalisation script en lua

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: aide pour réalisation script en lua

Message 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.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
fredclo
Messages : 121
Inscription : 28 févr. 2015, 16:57

Re: aide pour réalisation script en lua

Message par fredclo »

merci pour cette précision. J'en apprends tous les jours
RPi sur powerbank, bouton off/reset, domoticz (début avec Fhem sur dockstar), 4 sondes 1wire via rj45, ctrl des volets, tv/fbx, lumière, détecteurs d'ouverture, karotz, multiroom via pifm, ecodevice, ATI RF, et prg du mode arrêt des radiateurs via FP
vr6man
Messages : 627
Inscription : 18 juil. 2017, 12:15

Re: aide pour réalisation script en lua

Message 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'
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: aide pour réalisation script en lua

Message 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.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
vr6man
Messages : 627
Inscription : 18 juil. 2017, 12:15

Re: aide pour réalisation script en lua

Message 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
Dernière modification par vr6man le 10 mai 2020, 14:10, modifié 3 fois.
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: aide pour réalisation script en lua

Message 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
Dernière modification par Keros le 10 mai 2020, 14:12, modifié 1 fois.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: aide pour réalisation script en lua

Message par thier »

@keros
Effectivement erreur de ma part il faut échapper tout les ' dans les print.
ça donne print('otherdevices[\'UV\'] '..otherdevices['UV'])
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
vr6man
Messages : 627
Inscription : 18 juil. 2017, 12:15

Re: aide pour réalisation script en lua

Message 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
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: aide pour réalisation script en lua

Message 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.
Dernière modification par Keros le 10 mai 2020, 14:18, modifié 1 fois.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: aide pour réalisation script en lua

Message 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.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
Répondre