script lua en lancement direct par device

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 <\>.
paya.aabg
Messages : 35
Inscription : 11 déc. 2015, 19:54

script lua en lancement direct par device

Message par paya.aabg »

Bonjour;
je n'arrive pas à lancer un script lua DIRECTEMENT par un switch.
j arrive à lancer des scripts python ou shell, mais pas lua.
j ai déjà vérifié les permissions, http ou https avec ou sans id+mot de passe avec // ou /// dans la ligne de commande,
impossible ERROR 32256 et ou 512

quelqu'un a t il une idée ?
Tout en WiFi et MQTT (2019)
digdogger
Messages : 213
Inscription : 16 juil. 2017, 09:21

Re: script lua en lancement direct par device

Message par digdogger »

Salut,
le script Lua se lance systématiquement si un matériel change d'état et si son nom respecte çà: "script_device_xxxxxxxxx.lua"
Dès que ton switch change d'état, le script est exécuté et il doit être tourné à peu près comme çà:

Code : Tout sélectionner

commandArray = {}
if (devicechanged['Mon_Switch'] == 'On' ) then
        print('coucou') --do something
end
return commandArray
Sinon, voir ici, c'est bien expliqué: https://easydomoticz.com/point-scripts-lua/
Raspberry Pi 3 + Raspbian Jessie Lite + Domoticz V4.9700 - RFlink USB V48 433.42MHz - Volets Somfy RTS - MySensors USB V2.1.1 - IDE Arduino 1.8.8
paya.aabg
Messages : 35
Inscription : 11 déc. 2015, 19:54

Re: script lua en lancement direct par device

Message par paya.aabg »

merci,
je découvre!!!
j'essaye
Tout en WiFi et MQTT (2019)
paya.aabg
Messages : 35
Inscription : 11 déc. 2015, 19:54

Re: script lua en lancement direct par device

Message par paya.aabg »

En fait, non, je connaissais. Je n'avais pas compris.
Je n'utilise jamais cette particularité, tous mes scripts sont déclarés par famille (time,device...) sans mention directe dans le titre (ex t_chauffage.lua) je rajoute quand meme t_ ou d_ pour m'y retrouver plus tard.
Malheureusement cela ne répond pas au problème :
comment lancer directement un script lua dans la ligne de commande d'un interrupteur ou d'un sélecteur.
par exemple j'ai sur un bouton:
dans le champ ACTION ON: script:///home/pi/433Utils/RPi_utils/otiocd_rdc 00
qui lance un script (C compilé)
impossible d arriver au même résultat avec un script LUA

Le but étant justement de court circuiter le passage par un script de type 'DEVICE'
Tout en WiFi et MQTT (2019)
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: script lua en lancement direct par device

Message par vil1driver »

Salut,
paya.aabg a écrit : 15 déc. 2018, 14:17 Le but étant justement de court circuiter le passage par un script de type 'DEVICE'
Quel intérêt ? :?
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
paya.aabg
Messages : 35
Inscription : 11 déc. 2015, 19:54

Re: script lua en lancement direct par device

Message par paya.aabg »

1- éviter de surcharger l'énumération des scripts dans DMZ .en principe on devrait pouvoir tout gérer avec un seul script 'time' et un seul script 'device', mais ça demande des MAJ compliquées. L'appel direct d'action évite cela pour des actions ponctuelles.
2- scripts plus 'généralistes' sur la gestion plus globale, non limités dans la durée (ça existe déjà en BASH ou en C)
3-scripts d'affichage 'direct' sur les selecteurs EX changement d'icone (pour l'instant je n'y arrive pas en direct, mais justement ca marche en passant par un script 'device')
4-j'aimerais comprendre aussi pourquoi j'arrive à lancer un BASH ou un programme en C compilé et PAS un LUA ???
Tout en WiFi et MQTT (2019)
paya.aabg
Messages : 35
Inscription : 11 déc. 2015, 19:54

Re: script lua en lancement direct par device

Message par paya.aabg »

PS:
c'est un reste aussi de ma formation (ancienne, très ancienne) d'économie de ressources processeur quand c'est possible...
Tout en WiFi et MQTT (2019)
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: script lua en lancement direct par device

Message par vil1driver »

Aucun soucis pour lancer un script lua ou autres langages comme tu le souhaites mais tu devras te passer des tables que domoticz fournit lorsque c'est lui qui le lance.. De même pour les actions, tout devra se faire via l'api json..
Les économies dont tu parles sont illusoires.

Un seul script device et un seul time, ca fonctionne, aucune complication niveau maj mais pas vraiment d'intérêt
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
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: script lua en lancement direct par device

Message par Neutrino »

Sinon, il suffit de renommer ton fichier avec le nom du dispositif qui l'actionne :
As of version V3.8050 device scripts can be named the same as the device to only evaluate the Lua code when this device changes. Eg. if you use script_device_switch_1.lua and you have a device named 'Switch 1', this script will only trigger when this device updates. You should only use lowercase characters in the file name for this to work. Spaces are set with an underscore (_). If you name the script randomly, eg. script_device_somethingelse.lua, and there is no such device named 'somethingelse', it will evaluate the script on all device changes, the same behavior as pre V3.8050.
https://wiki.domoticz.com/wiki/Events
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: script lua en lancement direct par device

Message par vil1driver »

Je n'ai jamais compris pourquoi ils avaient implémenté cela, entre se palucher la liste des devices pour voir si le nom du script correspond à un device existant, ou lire les 3, 4 premières ligne du script..
Je ne suis pas certain qu'il y ait un gain.
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
Répondre