Keros : Mon projet, mon matos & des infos

Décrivez votre installation de Domotique,ce que vous gérez, quels sont les points forts de votre config illustrez par des photos, partagez et faites nous envie !
Keros
Messages : 1650
Enregistré le : 23 juil. 2019, 20:57

Re: Keros : Mon projet, mon matos & des infos

Message par Keros »

Et bien voilà, la barre des 1000 messages est franchie avec celui-ci :)

Keros
Messages : 1650
Enregistré le : 23 juil. 2019, 20:57

Re: Keros : Mon projet, mon matos & des infos

Message 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.

Keros
Messages : 1650
Enregistré le : 23 juil. 2019, 20:57

Re: Keros : Mon projet, mon matos & des infos

Message 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.

Neutrino
Messages : 1660
Enregistré le : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)
Contact :

Re: Keros : Mon projet, mon matos & des infos

Message 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. :lol:
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?

Keros
Messages : 1650
Enregistré le : 23 juil. 2019, 20:57

Re: Keros : Mon projet, mon matos & des infos

Message par Keros »

Il ne me reste que le script SMS de Vil1driver en LUA ;)

Mais ça ne titille de le passer lui aussi :mrgreen:

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.

lost
Messages : 602
Enregistré le : 12 nov. 2016, 11:01

Re: Keros : Mon projet, mon matos & des infos

Message 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é.

Neutrino
Messages : 1660
Enregistré le : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)
Contact :

Re: Keros : Mon projet, mon matos & des infos

Message 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.
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?

Keros
Messages : 1650
Enregistré le : 23 juil. 2019, 20:57

Re: Keros : Mon projet, mon matos & des infos

Message 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é ;)
Modifié en dernier par Keros le 05 mai 2021, 12:59, modifié 1 fois.
Raison : Ajout point 5

Doudy
Messages : 298
Enregistré le : 07 mai 2016, 17:23

Re: Keros : Mon projet, mon matos & des infos

Message 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 ?

;)
PI 3 = RFXCOM
PI 3 + Touchscreen 7" affichage Domoticz
RFXCOM 433
Domoticz Version: 2020.2 - Python Version: 3.7.3 - dzVents Version: 3.0.2

Keros
Messages : 1650
Enregistré le : 23 juil. 2019, 20:57

Re: Keros : Mon projet, mon matos & des infos

Message 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

Répondre