Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

Contrôle du timing de variation

Réservé à la création de scénarios dans JEEDOM
caplam
Actif
Messages : 646
Inscription : 02 déc. 2014, 15:36

Contrôle du timing de variation

Message par caplam » 29 janv. 2018, 16:34

Sous ce titre à la con se cache un besoin tout simple. :lol:

J'ai un interrupteur mural que je veux utiliser pour faire varier le volume d'une sonos.
L'interrupteur est sur le bus knx.
La sonos est commandée par le plugin squeezeboxcontrol.

Je passe sur le paramétrage de l'inter qui ne parlerait qu'aux adeptes du knx.
Je récupère dans jeedom une grandeur qui prend les valeurs suivantes:

-1 lorsque l'on appui sur l'inter pour diminuer
0 lorsque l'on relâche
1 lorsque l'on appui sur l'inter pour augmenter
0 lorsque l'on relâche

L'idée serait de déclencher un scénario par la grandeur
Tant que la valeur vaut -1 j'envoie des commandes volume- à la squeezebox
Lorsque je reçois 0 j'arrête la variation
Et inversement lorsque je reçois 1.
Sachant que je si je ne me trompe pas on n'a pas accès à la fonction while et que j'aimerais éviter l'emploi de sleep pour contrôler le timing d'envoi des commandes volume+ ou volume-, comment puis je envisager ce scénario?

edit: a priori on peut faite des boucles while dans un bloc code.
J'ai donc une question plus précise à poser.
J'ai une grandeur que je récupère come ceci:

Code : Tout sélectionner

$cmdEvent=cmd::byString('#[Salle de bains 2][Volume Sonos Sdb2][dimming volume]#');
$cmdDimming=$cmdEvent->execCmd();
cette grandeur est le déclencheur du scénario.
je veux faire une boucle while avec une condition sur cette valeur:

Code : Tout sélectionner

while ($cmdDimming ==-1
{ envoie commande volume-
usleep(10000)
$cmdEvent=cmd::byString('#[Salle de bains 2][Volume Sonos Sdb2][dimming volume]#');
$cmdDimming=$cmdEvent->execCmd();
}
est ce que ça peut marcher ?
Est ce que la valeur de $cmdDimming va être évaluée a chaque itération ?
Pour l'instant je ne vois pas d'autre soulte que le usleep.
Jeedom sur vm esxi stretch
Principaux plugins: eibd, homebridge, maxcube, icalendar

Avatar de l’utilisateur
fwehrle
Actif
Messages : 2824
Inscription : 01 juil. 2015, 11:03
Localisation : Strasbourg

Re: Contrôle du timing de variation

Message par fwehrle » 31 janv. 2018, 12:53

Perso, j'utilise un scénario qui s'appelle lui-meme en boucle, et qui teste une variable.
Quand je change cette variable lors du relâchement du bouton, le scénario s'arrête.

Envoyé de mon Nexus 6P en utilisant Tapatalk

Jeedom 3 sur Debian 9 en VM Proxmox 5 sur NUC Intel.
(Anciennement sur Docker sur Syno DS-415+ / MariaDB / DSM 6)
Teleinfo / RFXCom / Stick ZWave / IPX / Serveur Traccar / Blea

caplam
Actif
Messages : 646
Inscription : 02 déc. 2014, 15:36

Re: Contrôle du timing de variation

Message par caplam » 31 janv. 2018, 14:03

J'ai réussi à faire quelque chose de correct avec usleep(90000). J'affinerai certainement après quelque temps.
Jeedom sur vm esxi stretch
Principaux plugins: eibd, homebridge, maxcube, icalendar

flopp26
Timide
Messages : 2
Inscription : 23 déc. 2018, 12:14

Re: Contrôle du timing de variation

Message par flopp26 » 28 déc. 2018, 22:38

Salut, est ce que tu aurais ton exemple de réussite STP, je veux faire pareil et aussi en KNX :-)

Répondre

Revenir vers « Scénarios »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 13 invités