[LUA] Bibliothèque de fonctions
Re: bibliothèque de fonctions pour scripts LUA
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
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
Hello vil1driver.
As-tu deja vu mon probleme, pour ce code:
Le retour des timestamps suivants:
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
endC'est assez embêtant.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)
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
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
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 ?
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
/!\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
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
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
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 ?
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
/!\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
J'ai la date en temps reel dans le dispositifs.vil1driver a écrit :Et sans parler de la table otherdevices_lastupdate, lorsque tu vas voir dans les dispositifs, c'est pareil ?
Effectivement j'avais avant un device du meme nom que j'ai renommé.Tu n'aurais pas un autre dispositif du même nom ?
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
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
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.
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
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
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
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: bibliothèque de fonctions pour scripts LUA
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.
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: bibliothèque de fonctions pour scripts LUA
je ne savais pas que dzvent pouvait de la sorte s'intégrer à un scrpt lua
en tout cas pas ici
merci
en tout cas pas ici
une histoire de version ?attempt to index global 'domoticz' (a nil value)
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
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien