Page 6 sur 16
Re: Keros : Mon projet, mon matos & des infos
Publié : 20 déc. 2020, 22:12
par Keros
Et bien voilà, la barre des 1000 messages est franchie avec celui-ci

Re: Keros : Mon projet, mon matos & des infos
Publié : 17 janv. 2021, 22:16
par Keros
Je viens de rajouter des informations pour les débutants en
page 2 de ce sujet :
- Des informations supplémentaires concernant la programmation
- Un "guide" pour débuter et choisir son matériel
Ce sont des points qui reviennent assez souvent, j'ai essayé de les résumer. Je les complèterai au fur et à mesure.
Re: Keros : Mon projet, mon matos & des infos
Publié : 02 mai 2021, 22:36
par Keros
Je viens de basculer ma trentaine de script du langage LUA en DzVents.
Pourquoi ?
Le DzVents m'a permis de regrouper sous un même script des actions basées sur des devices et le temps. J'utilise souvent des prises commandées par soit un bouton, soit une horloge (le bouton me permettant de désactiver l'horloge aussi). En Lua, j'avais deux scripts : un "Device" pour le bouton et un "Time" pour l'horloge. Le DzVents permet de gérer de multiple triggers : j'ai pu ainsi regrouper les fonctions dans un même script.
Mais surtout, j'avais souvent des erreurs avec les appels Json externe (de type météo). Le DzVents permet de gérer le retour d'infos des URL.
De plus, je trouve que la programmation orientée objet permet de revenir dans un script et de le re-comprendre plus facilement.
Re: Keros : Mon projet, mon matos & des infos
Publié : 03 mai 2021, 20:07
par Neutrino
J'ai sauté sur DzVents dés sa sortie.
La facilité de certaines actions, et maintenant l'exécution asynchrone de commande rend les scripts vraiment puissant.
Je n'ai que le script de contrôle PID de vil1driver en LUA. Tout est passé en DzVents depuis très longtemps.

Re: Keros : Mon projet, mon matos & des infos
Publié : 03 mai 2021, 23:06
par Keros
Il ne me reste que le script SMS de Vil1driver en LUA
Mais ça ne titille de le passer lui aussi
Il y a aussi un avantage au DzVents : c'est le
wiki >>> Toutes les commandes sont dedans. Un coup de recherche dans la page et hop, on retrouve l'info.
Re: Keros : Mon projet, mon matos & des infos
Publié : 04 mai 2021, 09:56
par lost
Keros a écrit : 03 mai 2021, 23:06
Il y a aussi un avantage au DzVents : c'est le
wiki >>> Toutes les commandes sont dedans.
Le wiki a l'air bien suivi, mais vu de haut il semble y avoir pas mal de changements entre versions quand même (cf renvois sur le wiki)... donc de scripts à retravailler après chaque MAJ? J'ai pas fait de stat, mais les messages sur les forums concernant un script dzVent ne fonctionnant plus après une MAJ me semblent fréquents (et rarissimes en Lua), avec néanmoins Waaren qui sur le forum anglophone assure un support vraiment appréciable et semble d'une patience à toute épreuve.
Niveau structure, j'avoue également ne pas bien faire le lien entre bloc trigger et la partie execute: Le lien sur le matériel/évènement qui déclenche et ce que l'on code côté exécute ne me parait pas bien évident comparé au pur Lua.
Bref, j'avoue m'être déjà posé la question de passer ce que j'ai en Lua vers dzVent mais entre devoir potentiellement se replonger dans un truc fait plusieurs mois/années avant (tandis que Lua et son intégration à Domoticz sont bien stable) à chaque MAJ et le passage à une structure de programme très différente et (en première approche) que je trouve peu évidente, je ne me suis pas (encore?) lancé.
Re: Keros : Mon projet, mon matos & des infos
Publié : 04 mai 2021, 13:46
par Neutrino
Il n'y a pas de mise à jour cassant le code.
La seule est arrivée quand DzVents a été directement au code de domoticz alors qu'avant, c'était à côté.
Depuis, les seules modifications que j'ai faites, c'est pour intégrer des améliorations apportées par une MAJ, mais jamais pour corriger un truc cassé par une MAJ.
Re: Keros : Mon projet, mon matos & des infos
Publié : 04 mai 2021, 22:16
par Keros
@Lost, c'est vrai que le DzVents est un peu déroutant par rapport au LUA concernant le bloc Trigger. J'ai eu un petit peu de mal à l'assimiler. J'en retiens quelques petites choses :
- On peut mélanger des déclenchements par devices ou par timer dans un même script.
- Il est facile d'écrire des timers se déclenchant toutes les X minutes. Jusque-là, je bricolais en lua pour limiter les exécutions aux minutes 00. En DzVents j'écris every hours et c'est fait.
- J'avais des actions sur des compteurs pour lesquels j'étais passer via l'API Json pour récupérer et écrire des infos. Le DzVent m'évite de passer par la couche Json.
- Le DzVents permet de gérer les réponses aux appels Json. Je veux dire par là, que le programme lance l'appel, s'arrête et se relance lorsque la réponse est revenue. En Lua, j'avais les scripts qui tournait plus de 10 secondes (avec l'erreur dans les logs) car la réponse ne revenait pas rapidement.
- La fonction d'historique sur les devises m'a permis de faire 2-3 choses.
Je ne pense pas qu'il y est un langage meilleur qu'un autre. J'y ai vu quelques avantages pour moi : je me suis lancé. J'y ai trouvé mon bonheur : j'ai continué

Re: Keros : Mon projet, mon matos & des infos
Publié : 05 mai 2021, 08:58
par Doudy
Bonjour,
J'ai régulièrement (plusieurs fois par jour) le message :
Code : Tout sélectionner
2021-05-04 23:00:13.444 Error: EventSystem: Warning!, lua script /home/pi/domoticz/scripts/lua/script_time_openMeteo.lua has been running for more than 10 seconds
Si j'ai bien lu, il faudrait donc transposer ce lua en dzvents !
Y-a-t 'il un moyen aisé de le faire ?

Re: Keros : Mon projet, mon matos & des infos
Publié : 05 mai 2021, 12:57
par Keros
C'est bien ce message Doudy dont je faisais mention
Mon interprétation a été que le script tourne un moment car la réponse à l'API extérieure se fait attendre...
Le programme fonctionne, néanmoins, pour éviter ce message j'ai transformé mon script en DzVent en utilisant la fonction
httpResponses. Le wiki explique bien le principe.
Pour résumer et l'appliquer à notre cas :
- Tu as une première partie du script déclenchée par un timer. Tu y mets la partie de programme LUA jusqu'au moment de l'appel Json (il faut évidement transformer le LUA en DzVents)
- Ensuite, tu as une deuxième partie qui se déclenchera au retour de l'appel Json. Tu y mets la fin de ton programme (remplissage de widget et autres...)
Petite subtilité : le callback = 'trigger'. En fait, le retour de l'appel Json est identifié avec l'indication du callback. C'est cette indication qui déclenche le httpResponses. Par contre, si dans deux scripts différents, tu utilises la même valeur de callback, les deux httpResponses vont se lancer ... Normalement à ce moment là, tu devrais avoir une erreur
Pour éviter que cela se produise, j'ai mis le nom de mon script en callback : chaque script = son callback