[LUA] Bibliothèque de fonctions

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
arno16
Messages : 2
Inscription : 10 déc. 2017, 22:56

Re: bibliothèque de fonctions pour scripts LUA

Message par arno16 »

Hello,
Mes conclusions sur le problème que j'ai soulevé un peu plus haut.
Il me semble impossible de faire un appel synchrone depuis un script device executé par domoticz vers l'API de domoticz.
Apparemment l'appel et la réponse sont gérés par la même thread d'où le lock.

J'ai résolu le pb en faisant un appel asynchrone (& à la fin du curl) et sauvé le résultat dans un fichier temporaire pour la prochaine exécution. Le script utilise ce fichier temporaire pour récupérer les plannings définis.
Vu que les plannings d'un device ne change pas souvent, ce n'est pas trop dérangent, mais un changement de planning sera pris en compte qu'au 2eme appel du script.

Cdt,
Arnauld
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: bibliothèque de fonctions pour scripts LUA

Message par landaisbenj »

Hello vil1driver.

As-tu deja vu mon probleme, pour ce code:

Code : Tout sélectionner

if devicechanged['Trappe']=='On' then
dofile('/home/limabravo/domoticz/scripts/lua/modules.lua') ; local debug = true -- true pour voir les logs dans la console
    if lastSeen('Trappe')>90 then
        sms(script..'SMS:  Diff: '..difference..' Timestamp: '..otherdevices_lastupdate['Trappe'])
        info(script..'SMS:  Diff: '..difference..' Timestamp: '..otherdevices_lastupdate['Trappe'])
    else
        warn(script..'lastSeen superieur inferieur a 90 SMS:  Diff: '..difference..' Timestamp: '..otherdevices_lastupdate['Trappe'],debug)
    end
end
Le retour des timestamps suivants:
2018-03-02 10:24:53.878 dzVents: [LUA: Device] SMS: Diff: 52752 Timestamp: 2018-03-01 19:45:41
2018-03-02 10:24:53.882 (RFLink) Light/Switch (Trappe)
2018-03-02 10:24:54.880 (RFLink) Light/Switch (Trappe)
2018-03-02 10:24:59.031 dzVents: [LUA: Device] SMS: Diff: 52758 Timestamp: 2018-03-01 19:45:41
2018-03-02 10:24:59.036 (RFLink) Light/Switch (Trappe)
2018-03-02 10:25:00.053 (RFLink) Light/Switch (Trappe)
2018-03-02 10:25:12.231 dzVents: [LUA: Device] SMS: Diff: 52771 Timestamp: 2018-03-01 19:45:41
2018-03-02 10:25:12.235 (RFLink) Light/Switch (Trappe)
2018-03-02 10:25:12.717 (RFLink) Light/Switch (Trappe)
C'est assez embêtant.
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: bibliothèque de fonctions pour scripts LUA

Message par vil1driver »

Le script étant lancé par la mise à jour de 'trappe' en principe lastseen('trappe') ne devrait valoir que le temps qu'à mis domoticz à lancer le script, soit à priori que quelque milisecondes..

Mieux vaudrait partir sur un script de type TIME..
Et contrôler un lastseen sup à 30 ET inf à 100 par exemple

Ton problème c'est que trappe ne semble pas avoir de lastupdate correct ?
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
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: bibliothèque de fonctions pour scripts LUA

Message par landaisbenj »

:(

Ouais, l'execution du script en lui meme m'importe peu en final vu qu'il ne s'agit que d'exclure les multi declenchement.

Mais je pensé trouver une aide sur le timestamp bizarre que me retourne trappe.
Je vais ouvrir un post sur le fofo us pour voir.
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: bibliothèque de fonctions pour scripts LUA

Message par vil1driver »

Et sans parler de la table otherdevices_lastupdate, lorsque tu vas voir dans les dispositifs, c'est pareil ?

Tu n'aurais pas un autre dispositif du même nom ?
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
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: bibliothèque de fonctions pour scripts LUA

Message par landaisbenj »

vil1driver a écrit :Et sans parler de la table otherdevices_lastupdate, lorsque tu vas voir dans les dispositifs, c'est pareil ?
J'ai la date en temps reel dans le dispositifs.

Tu n'aurais pas un autre dispositif du même nom ?
Effectivement j'avais avant un device du meme nom que j'ai renommé.

Celui la etait en Motion entree je l'ai renommé en trappe
Et le trappe je l'ai renommé en test. Je vais creuser cette idée.
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: bibliothèque de fonctions pour scripts LUA

Message par landaisbenj »

Oui je viens de trouver un autre device du meme nom. J'ai modifié et ca a l'air de fonctionner.

Je ne m'etais jamais retrouvé dans ce cas de figure. Merci beaucoup pour ton aide.
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: bibliothèque de fonctions pour scripts LUA

Message par vil1driver »

;) pas de quoi
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
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: bibliothèque de fonctions pour scripts LUA

Message par papoo »

une petite fonction DZvents pour les notifications via telegram

Code : Tout sélectionner

local function telegram(msg) 
domoticz.openURL('https://api.telegram.org/bot'..TELEGRAM_API_key..'/sendMessage?chat_id='..chat_ID .. '&text=' .. msg) 
Dernière modification par papoo le 03 mars 2018, 17:33, modifié 2 fois.
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: bibliothèque de fonctions pour scripts LUA

Message par vil1driver »

je ne savais pas que dzvent pouvait de la sorte s'intégrer à un scrpt lua
en tout cas pas ici
attempt to index global 'domoticz' (a nil value)
une histoire de version ?

merci
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