script pour fermer un volet
Re: script pour fermer un volet
Ok, je comprends en gros le problème. Il me reste à creuser.
J'ai compris comment fonctionnent les scripts sur les changements de valeur d'une variable, j'ai fait pas mal de tests concluants. J'ai un script qui a l'air de bien fonctionner pour la fermeture des mes volets en fonction de la température extérieure, où pour l'instant il n'agit pas sur la fermeture du volet mais il change juste la valeur d'une variable qui s'affiche dans les logs à chaque relevé de température (script device donc), et mon idée est de dire qu'en fonction de la valeur de cette variable le script commande mon volet.
Déjà, je sais qu'apparemment commandArray['store salle à manger terrasse'] = 'Off' est la bonne ligne de commande pour fermer mon volet. Il me reste donc à savoir comment lui envoyer l'info qu'une seule fois.
J'ai compris comment fonctionnent les scripts sur les changements de valeur d'une variable, j'ai fait pas mal de tests concluants. J'ai un script qui a l'air de bien fonctionner pour la fermeture des mes volets en fonction de la température extérieure, où pour l'instant il n'agit pas sur la fermeture du volet mais il change juste la valeur d'une variable qui s'affiche dans les logs à chaque relevé de température (script device donc), et mon idée est de dire qu'en fonction de la valeur de cette variable le script commande mon volet.
Déjà, je sais qu'apparemment commandArray['store salle à manger terrasse'] = 'Off' est la bonne ligne de commande pour fermer mon volet. Il me reste donc à savoir comment lui envoyer l'info qu'une seule fois.
Dz version 2020.2 installé sur Raspberry - USB300 Enocean
dzVents Version 3.0.2
Python Version 3.7.3
dzVents Version 3.0.2
Python Version 3.7.3
Re: script pour fermer un volet
En fait, mon script pour agir sur mes volets est de type device car il relève la température toutes les dix minutes.
Donc je me disais que ça ne servait à rien de lancer un script time toutes les minutes puisque la température ne changera pas au moins neuf fois de suite. Je pensais bêtement n'agir sur le volet que toutes les dix minutes lors du relevé, donc de type device. Mais c'était sans compter sur le device volet qui lui aussi change.
Donc si je comprends bien, même si c'est inutile de relever la température toutes les minutes, je suis obligé de passer par un script time ?
Je me pose alors une question. Si je voulais attribuer un script de fermeture de volet au bouton d'un interrupteur virtuel ou physique, le script devrait être également un script time ? Ca me paraît complètement illogique, car sans conditions, le volet se fermer toutes les minutes. Ou alors il ne faut pas utiliser LUA pour ce type de script (mais je ne connais pas les ficelles des autres langages, déjà que j'ai du mal avec celui-là
).
Donc je me disais que ça ne servait à rien de lancer un script time toutes les minutes puisque la température ne changera pas au moins neuf fois de suite. Je pensais bêtement n'agir sur le volet que toutes les dix minutes lors du relevé, donc de type device. Mais c'était sans compter sur le device volet qui lui aussi change.
Donc si je comprends bien, même si c'est inutile de relever la température toutes les minutes, je suis obligé de passer par un script time ?
Je me pose alors une question. Si je voulais attribuer un script de fermeture de volet au bouton d'un interrupteur virtuel ou physique, le script devrait être également un script time ? Ca me paraît complètement illogique, car sans conditions, le volet se fermer toutes les minutes. Ou alors il ne faut pas utiliser LUA pour ce type de script (mais je ne connais pas les ficelles des autres langages, déjà que j'ai du mal avec celui-là
Dz version 2020.2 installé sur Raspberry - USB300 Enocean
dzVents Version 3.0.2
Python Version 3.7.3
dzVents Version 3.0.2
Python Version 3.7.3
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: script pour fermer un volet
Peut-être en lui disant de ne fermer le volet que si il est ouvert ?Le-Steph a écrit : 21 juin 2020, 19:17 Il me reste donc à savoir comment lui envoyer l'info qu'une seule fois.
Concernant les scripte de type time, exécuté toute les minutes, tu peux lui dire également, avec une condition adaptée, toutes les 5 ou 10 minutes, voir toutes les heures.
Mais ton problème n'est pas là.
Si tu as bien lu les liens de keros, tu sais maintenant que la détection du changement d'état d'un device ne peux pas se faire avec un script time, mais avec un script device.Le-Steph a écrit : 21 juin 2020, 19:38 Je me pose alors une question. Si je voulais attribuer un script de fermeture de volet au bouton d'un interrupteur virtuel ou physique, le script devrait être également un script time ? Ca me paraît complètement illogique, car sans conditions, le volet se fermer toutes les minutes. Ou alors il ne faut pas utiliser LUA pour ce type de script (mais je ne connais pas les ficelles des autres langages, déjà que j'ai du mal avec celui-là).
Dernière modification par denis_brasseur le 21 juin 2020, 19:55, modifié 1 fois.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Re: script pour fermer un volet
Ah oui on peut définir l'intervalle de temps dans un script time, merci.
Alors justement, depuis que j'ai Domoticz, je ne comprends pas comment récupérer l'état de mon volet. Mon idée est bien sûr de n'exécuter mon script que quand le volet est ouvert, mais je ne sais absolument pas récupérer l'info. J'ai bien compris que ça sera grâce à un script device, mais je ne sais pas quoi lui mettre dedans. Il y a une commande particulière pour interroger l'état ?
Alors justement, depuis que j'ai Domoticz, je ne comprends pas comment récupérer l'état de mon volet. Mon idée est bien sûr de n'exécuter mon script que quand le volet est ouvert, mais je ne sais absolument pas récupérer l'info. J'ai bien compris que ça sera grâce à un script device, mais je ne sais pas quoi lui mettre dedans. Il y a une commande particulière pour interroger l'état ?
Dz version 2020.2 installé sur Raspberry - USB300 Enocean
dzVents Version 3.0.2
Python Version 3.7.3
dzVents Version 3.0.2
Python Version 3.7.3
Re: script pour fermer un volet
si mon volet est ouvert alors je fais...
if otherdevices ['le nom de ton volet'] == 'On' then
if otherdevices ['le nom de ton volet'] == 'On' then
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
Re: script pour fermer un volet
Merci beaucoup ! Je testerai demain.
Dz version 2020.2 installé sur Raspberry - USB300 Enocean
dzVents Version 3.0.2
Python Version 3.7.3
dzVents Version 3.0.2
Python Version 3.7.3
Re: script pour fermer un volet
Je ne comprends pas ce qui se passe.
Voici un script tout bête :
Et rien dans les logs. J'ai tenté avec Off, idem, rien. Donc le test ne se fait pas 
Voici un script tout bête :
Code : Tout sélectionner
commandArray = {}
if otherdevices ['store salle à manger terrasse'] == 'On' then
print("store ouvert")
end
return commandArrayDz version 2020.2 installé sur Raspberry - USB300 Enocean
dzVents Version 3.0.2
Python Version 3.7.3
dzVents Version 3.0.2
Python Version 3.7.3
Re: script pour fermer un volet
A ce moment là, il faut continuer le débogage :
Rien ne s'affiche : est-ce que c'est ton programme qui ne s’exécute pas ou est ce que c'est ta condition qui n'est pas valide.
Rien ne s'affiche : est-ce que c'est ton programme qui ne s’exécute pas ou est ce que c'est ta condition qui n'est pas valide.
- rajoute un else avec un autre print > tu vérifieras que ton programme s'exécute et tu sauras quel est le résultat du IF
- Fait un print de la valeur du device : tu vérifieras que ta syntaxe pour récupérer l'info du device est bonne.
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: script pour fermer un volet
Mais oui ! Donc le statut d'un volet ouvert est 'Open'.
Là où je vais devenir fou, c'est que qu'elle que soit la position de mon volet, il est tout le temps 'Open'
Là où je vais devenir fou, c'est que qu'elle que soit la position de mon volet, il est tout le temps 'Open'
Dz version 2020.2 installé sur Raspberry - USB300 Enocean
dzVents Version 3.0.2
Python Version 3.7.3
dzVents Version 3.0.2
Python Version 3.7.3
Re: script pour fermer un volet
Si je passe mon script en device, les logs n'apparaissent qu'avec le bouton de Domoticz.
Si j'utilise l'interrupteur mural ou la télécommande, il n'y a pas de log. Si je ferme le store dans Dz, il y a rapidement un état 'Closed' qui apparaît et redevient de suite à 'Open'
Si j'utilise l'interrupteur mural ou la télécommande, il n'y a pas de log. Si je ferme le store dans Dz, il y a rapidement un état 'Closed' qui apparaît et redevient de suite à 'Open'
Dz version 2020.2 installé sur Raspberry - USB300 Enocean
dzVents Version 3.0.2
Python Version 3.7.3
dzVents Version 3.0.2
Python Version 3.7.3