Activer script LUA selon évènement
Activer script LUA selon évènement
Bonsoir,
Est-il possible d'activer et de désactiver un script LUA en fonction d'un événement ?
J'ai un script LUA qui vient récupérer les métriques d'un serveur d'impression 3D OctoPrint. J'aimerais que ce script soit désactivé quand OctoPrint est éteint et qu'il s’exécute quand le serveur est démarré.
Merci d'avance pour vos conseils.
Est-il possible d'activer et de désactiver un script LUA en fonction d'un événement ?
J'ai un script LUA qui vient récupérer les métriques d'un serveur d'impression 3D OctoPrint. J'aimerais que ce script soit désactivé quand OctoPrint est éteint et qu'il s’exécute quand le serveur est démarré.
Merci d'avance pour vos conseils.
Re: Activer script LUA selon évènement
Non, ce n'est pas possible.
Cependant, il est facile de rajouter une condition au début du script pour empêcher l'exécution de continuer.
En dzVents :
En Lua classique :
Pour la condition, cela peut être l'état d'un dispositif, un variable utilisateur modifiée par un autre script…
Cependant, il est facile de rajouter une condition au début du script pour empêcher l'exécution de continuer.
En dzVents :
Code : Tout sélectionner
return {
on = {
-- déclencheur
},
execute = function(domoticz, item)
if not domoticz.devices('Octo').active then -- condition pour activer/désactiver le script
return
end
-- reste du script
end
}
Code : Tout sélectionner
if otherdevices['Octo'] ~= 'On' then -- condition
return {}
end
-- reste du script
-- ...
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
Re: Activer script LUA selon évènement
Et tu peux grouper ça avec le plugin Ping (je ne me souviens plus du nom exact mais je crois qu'il est par défaut dans DomoticZ).
Ce plugin fait un ping sur des adresses IP et gère un device : ON quand la connexion peut être faite & OFF quand il as perdu la connexion.
En pinggant l'IP de ton Octoprint, tu peux savoir s'il est allumé ou pas.
Il existe un plugin DomoticZ pour Octoprint. Je pense que tu peux y retrouver des infos comme le statut d'impression, etc (je ne l'ai pas testé).
Ce plugin fait un ping sur des adresses IP et gère un device : ON quand la connexion peut être faite & OFF quand il as perdu la connexion.
En pinggant l'IP de ton Octoprint, tu peux savoir s'il est allumé ou pas.
Il existe un plugin DomoticZ pour Octoprint. Je pense que tu peux y retrouver des infos comme le statut d'impression, etc (je ne l'ai pas testé).
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
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Re: Activer script LUA selon évènement
Merci à tous les deux.
J'ai essayé d'ajouter le script au début de mon script LUA, mais ça ne change rien.
Ca m'écrit toujours : "Status: EventSystem: Script event triggered: Octoprint-LUA" dans les logs, même quand le serveur OctoPrint est éteint.
Sinon, j'ai bien mis en place le ping du serveur.
Je n'arrive pas à m'en servir pour adapter le script.
J'ai essayé d'ajouter le script au début de mon script LUA, mais ça ne change rien.
Ca m'écrit toujours : "Status: EventSystem: Script event triggered: Octoprint-LUA" dans les logs, même quand le serveur OctoPrint est éteint.
Sinon, j'ai bien mis en place le ping du serveur.
Je n'arrive pas à m'en servir pour adapter le script.
Re: Activer script LUA selon évènement
Bonjour
Octoprint, qui pilote une imprimante 3D, s'exécute sur un Raspberry Pi qui est censé fonctionner en permanence, même si l'imprimante 3D est arrêtée.
Le ping sur l'IP du Pi (
)n'est donc pas une bonne piste.
Octoprint, qui pilote une imprimante 3D, s'exécute sur un Raspberry Pi qui est censé fonctionner en permanence, même si l'imprimante 3D est arrêtée.
Le ping sur l'IP du Pi (
Pi3 (prod) + Pi3(sécurité)- Dz V:3.4834 - RFLink- Prises Phenix 4000B - OWL CM180 - FOSCAM - YANA.
Re: Activer script LUA selon évènement
En lisant sa demande, je pense que la solution du ping sur le serveur répond au besoin.mattx38 a écrit : 17 sept. 2020, 22:01 J'aimerais que ce script soit désactivé quand OctoPrint est éteint et qu'il s’exécute quand le serveur est démarré.
Mattx38, avec le ping sur le serveur, tu dois avoir un device à On quand Octoprint est allumé et Off quand Octoprint est éteint. Tu as bien ce fonctionnement dans les interrupteurs de DomoticZ ?
Si ça fonctionne, alors utilises ce device dans la condition de ton script.
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
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Re: Activer script LUA selon évènement
Tout à fait.
Octoprint me sert uniquement à stopper l'imprimante une fois l'impression terminée, quand j'ai des travaux qui se terminent en pleine nuit par exemple. Du coup, le reste du temps, j'arrête le RPI.
Donc j'ai inscrit ceci :
Et j'obtiens cela comme log :
Error: EventSystem: Lua script Octoprint-LUA did not return a commandArray
Octoprint me sert uniquement à stopper l'imprimante une fois l'impression terminée, quand j'ai des travaux qui se terminent en pleine nuit par exemple. Du coup, le reste du temps, j'arrête le RPI.
Donc j'ai inscrit ceci :
Code : Tout sélectionner
if otherdevices ['OctoPrint'] ~= 'On' then -- condition
return {}
end
-- Use Lua -> Time
-- For displaying debug messages
debug=falseError: EventSystem: Lua script Octoprint-LUA did not return a commandArray
Re: Activer script LUA selon évènement
Dans les scripts Lua classiques, la première instruction devrait toujours être :mattx38 a écrit : 21 sept. 2020, 23:06 Tout à fait.
Octoprint me sert uniquement à stopper l'imprimante une fois l'impression terminée, quand j'ai des travaux qui se terminent en pleine nuit par exemple. Du coup, le reste du temps, j'arrête le RPI.
Donc j'ai inscrit ceci :
Et j'obtiens cela comme log :
Error: EventSystem: Lua script Octoprint-LUA did not return a commandArray
Code : Tout sélectionner
commandArray = {}J'ai vérifié le code et je ne sais pas si ça a toujours été comme ça, mais le système d'événement n'en a rien à péter que l'on retourne commandArray, un nombre ou la tête à Toto. Il regarde le contenu de la variable globale commandArray.
Ce message d'erreur est un mensonge ! ^^
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
Re: Activer script LUA selon évènement
Utilise la fonction de création de script dans Paramètres / Plus d'options / Évènements. Cela te créera la syntaxe de base pour tes scripts.
Tu trouveras plus d'info pour débuter en programmation dans ma signature.
Tu trouveras plus d'info pour débuter en programmation dans ma signature.
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
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos