comment feriez vous ?

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
papoo
Messages : 2009
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

comment feriez vous ?

Message par papoo »

Je souhaite mettre à jour l'état d'un device nommé 'volet douche' ( interrupteur Venitian EU) qui commande un volet par un script dz et son dashboard et un autre système indépendant. l'action via dz agit sur le système tiers et inverse la commande dz (commande impulsionnelle)
le système tiers met à jour un device bouton poussoir (switch push on) dans dz appelé '$ impulsion volet douche' qui via un script doit mettre à jour l'état du volet

Je souhaitais simplement utiliser la commande silent () dans le cas exclusif d'une commande initiée par le système tiers sans renvoyer de nouvelle commande a ce système.

j'ai tenté un script avec lastupdate sur le device 'volet douche' mais cela ne fonctionne pas correctement

un brin d'analyse fonctionnelle :
-si le volet est activé directement par le système tiers, mise à jour du device correspondant dans dz, sans commande au volet, via le retour du système tiers et le device '$ impulsion volet douche' ...
- si le volet est contrôlé par dz, aucune action le device 'volet douche' a déjà changé d'état sur le dashboard


je vais essayer avec les historiques, mais si vous avez une idée je suis preneur
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

vil1driver
Messages : 5455
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: comment feriez vous ?

Message par vil1driver »

salut,

je ne suis certain de tout saisir..
le system tier possède sa propre commande manuelle ?
si oui peut-être voir à ce que '$ impulsion volet douche' ne soit mis à jour que dans ce cas (commande manuelle)?
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 : 2009
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: comment feriez vous ?

Message par papoo »

je reformule
toutes les commandes pour actionner les volets passent par le système tiers même les commandes émanant de dz. Chaque action sur le volet génère une impulsion d'information que je récupère sur dz via le device '$impulsion volet douche'
la commande via dz se fait par action sur le device nommé 'volet douche' (de type interrupteur Venitian EU) et un script qui surveille les actions de ce device.
je souhaite donc mettre au point un deuxième script actionné par la surveillance du device '$impulsion volet douche' qui modifia l’état du device 'volet douche' sans déclenchement du script associé en cas de commande générée en dehors de dz via la commande silent() de dzvents.
mon soucis est de trouver l'information pertinente pour bloquer le script et ne mettre à jour que l'etat du device si ce n'est pas une commande dz
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

vil1driver
Messages : 5455
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: comment feriez vous ?

Message par vil1driver »

un updatedevice (je crois que cela revient à silent() en dzvent) permet de mettre à jour un status sans déclencher l'action, mais je ne sais pas si ça déclenche ou non un script associé (je crois que malheureusement si)
c'est ce que tu as testé ?

désolé mais j'ai encore un point que je ne saisi pas bien
papoo a écrit :
31 mars 2020, 16:34
(...) en cas de commande générée en dehors de dz via la commande silent() de dzvents.(...)
en dehors ? tu distingue le widget 'volet douche' de l'interface et un script ?
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 : 2009
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: comment feriez vous ?

Message par papoo »

j'envois la commande dz via un script dzvents (l’équivalent de script_device en lua) au système tiers car si je le fais directement je ne peux pas dissocier la mise à jour virtuel du device et la commande.
je n'ai pas de soucis si je n'actionne le volet que par dz, cela fonctionne parfaitement.
je cherche à informer dz que le volet à changé de position en cas de commande hors dz. sans générer une nouvelle commande
mon soucis est : quel est le critique a prendre en compte pour mettre à jour le device sans envoyer de nouvelle commande
deux devices à ma disposition
une commande dz et une impulsion en cas de commande exterieure à dz (la commande dz envoyant une impulsion sur la commande exterieure)
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

vil1driver
Messages : 5455
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: comment feriez vous ?

Message par vil1driver »

Mon idée
20200331_175145.jpg
20200331_175145.jpg (640.96 Kio) Vu 1151 fois
Le script A se lance sur MAJ de 'Volet douche'
Passe '$ impulsion volet douche' à Off
Puis commande le module.

Le script B se lance sur MAJ de '$ impulsion volet douche'
QUE s'il vaut On
ET que son précédent status était déjà On
et met à jour 'Volet douche'

comme cela, le script B sait s'il doit ou non mettre à jour 'volet douche'

c'est le plus simple que je vois
j'ai bon ?
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 : 2009
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: comment feriez vous ?

Message par papoo »

'$impulsion volet douche' est un push on button il ne reçoit qu'une impulsion , il repasse à off quasi instantanément
'volet douche' est un device on/stop/off chaque action sur ce device envoi la meme commande, une impulsion au systeme tiers, qui peut recevoir des commandes extérieures à domoticz

le système de commande de volet (le fameux système tiers) fonctionne comme ceci :
Une seule entrée permet toutes les actions séquentiellement par impulsion successive (fermeture du contact)
1er IMP le volet MONTE pendant 30 secondes si pas d'impulsion dans ce délai
2eme IMP le volet STOP si impulsion dans les 30 secondes
3eme IMP le volet descend pendant 30 secondes si pas d'impulsion dans ce délai
4eme IMP le volet STOP si impulsion dans les 30 secondes
5eme IMP le volet MONTE pendant 30 secondes si pas d'impulsion dans ce délai
etc
chaque impulsion est reçu par domoticz sur le device '$impulsion volet douche'
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

papoo
Messages : 2009
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: comment feriez vous ?

Message par papoo »

mon petit schéma mais tu as compris l'essentiel
IMG_8080.jpg
IMG_8080.jpg (757.07 Kio) Vu 1126 fois
reste à trouver /créer l'info qui permettra de différencier une cmd intérieure ou extérieure à dz
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

papoo
Messages : 2009
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: comment feriez vous ?

Message par papoo »

vil1driver a écrit : un push-on ne repasse pas à off tout seul en principe (1)
je ne te suis pas sur ce point,

ton system est super tordu :mrgreen: (2)

si tu fais 2 fois STOP sur 'volet douche'
le module reçoit 2 IMP et donc ne respect plus le souhait initial..(3)
1) il passe à On et je surveille le changement
2) oui effectivement, mais en période de confinement je fais avec ce que j'ai :)
3) je gère les impulsions avant 30 secondes et après 30 secondes différemment
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

vil1driver
Messages : 5455
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: comment feriez vous ?

Message par vil1driver »

sans ces commandes externes, le script B n'aurait pas lieu d'être, on est d'accord ?
si oui je trouve mon idée pas si mal
MAJ de l'état que s'il y a remontée d'impultion sans être passé avant par le script A
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