Présentation et besoin d'aide sur mon projet

Bonjour à tous,

Alors voilà, je me suis lancé dans un petit projet d’automatisation. J’ai réussi à force de lecture (merci à tous ceux qui partage leur connaissance ici et ailleurs ) et de test.
Mais voilà, cela reste un peu bancale et pas très optimisé. Mais j’ai réussi :slight_smile:
Du coup, si des personnes ont des avis pour optimiser mon fonctionnement, merci d’avance.

Alors j’explique (désolé pour le pavé…), mon but est de redonner vie à un vieux jukebox, il ne reste plus rien comme mécanisme sauf les 15 boutons.

L’idée est donc après avoir sélectionné le morceau, une touche lettre ( A,B,C,D ou E) et deux touches Chiffres ( 1,3,5,7 ou 9) suivi de (0,2,4,6 ou 8 ) que le titre choisi soit écouté.
J’ai rajouté un petit écran lcd, qui permet de voir la lettre et les chiffres sélectionnés, de mettre la pochette de l’artiste choisit pendant l’écoute ainsi que le temps restant de la chanson.
Voilà pour l’idée.

J’ai donc installé jeedom sur un raspberry 3B sur lequel j’ai installé un rabian.

J’ai créer un clavier virtuel semblable au jukebox :

J’ai câblé les touches physiques sur un mega arduino et installé le plugin jeedouino.
Pas de soucis majeur.
J’ai créer un scénario pour dire que si une touche physique était appuyé alors la même sur le clavier virtuel était active également.

J’ai créer 3 variables, Lettre, Dizaine et Unité, avec 6 valeurs dans chaque
Créer 3 Widgets également pour la lettre, la dizaine et l’unité, avec des images correspondants aux lettres et aux chiffres.

Ainsi après avoir créer un design, et mis les widget dessus, lorsque j’appuie sur une touche, apparait la lettre/chiffre à l’écran.
J’ai créer la même chose pour un texte d’attente qui est remplacé par la pochette de l’album du titre sélectionné.

Mais je pense que mon idée n’est pas la meilleure solution, car j’ai de la latence sur l’affichage des lettres/chiffres.

Après j’ai créer un scénario qui d’après le code sélectionné joue la musique (avec omxplayer )

Pour l’instant je teste avec 5 morceaux, donc ça va à programmer mais je ne trouve pas d’idée pour rendre cela plus simple avec 100 titres…

J’ai également créer une variable « validation » qui à deux valeurs : 0 ou 100, qui permet de désactiver le clavier virtuel et donc de ne pas pouvoir changer en cours de route.
Et aussi une variable time qui correspond au temps de la chanson.
Je me suis aidé de cela pour le décompte :
https://community.jeedom.com/t/decompte-a-la-seconde-widgets-v4/10658/31

Alors voilà cela fonctionne, mais il y a de la latence, cela ne me semble pas très fiable.
Donc si des personnes ont réussi à lire jusqu’au bout ce message et peuvent me conseiller, et bien merci d’avance.
Bonne journée à vous.

MnX

Bonjour,

Je ne connais pas OMXplayer, pour quelle raison ce choix ?
Un changement de player faciliterait il ?

Bonjour,

Pourquoi omxplayer? et bien car au départ de mon projet, je voulais faire le décompte avec un fichier vidéo, et en cherchant les serveur media pour les raspberry et bien j’ai trouvé celui-ci (il est de plus capable de lire plusieurs vidéo simultanément, si je veux également mettre le clip de la chanson). j’ai égalementi essayé kodi ( mais trop compliqué pour ce que j’ai à faire)
De plus il est déjà intégré sur debian, je n’ai pas eu besoin de l’installer.
Mais oui, pourquoi pas changer.
Après c’est surtout ma logique qui je pense n’est pas bonne, peut-être que j’utilise mal les variables, les sleep…
Je fais faire une petite vidéo pour que cela soit plus clair mon problème de latence.

Merci
MnX

test

Voici une petite vidéo pour vous montrer le petit soucis que j’ai.
Le temps entre l’appuie d’une touche et l’affichage de la lettre/chiffre est très aléatoire.

Cdt

MnX

Bonjour,

Et voici le log du scénario qui déclenche la lecture du morceau.

faut-il mieux créer cent variable correspondant à un titre, et déclencher la lecture suivant celle-ci?
Car là on voit bien que si je rentre les cent possibilité de combinaison, et bien cela va être encore plus long…
Désolé, mais je ne sais pas sur quelle logique m’orienter.
Je me suis mis à jeedom en m’achetant une smart pour gérer mes 3 volets et mes 2 lumières…, j’ai appris pas mal depuis, mais là je coince…pas de logique de programmateur.

Merci

Mnx

bonjour,
qu’est ce qui déclenche ton 2eme screen ?

de se que je vois

tu appuies sur 3
et tu as 15 évaluations (si)
puisque tu n’as pas de stop une fois l’évaluation ok et même si ta 1er série à déjà été sélectionné

enfin de se coté tu peux optimisé

J’ai créer un scénario pour dire que si une touche physique était appuyé alors la même sur le clavier virtuel était active également.

pas besoin de scénario pour ça

tu vas dans la configuration avancée
de tes info ou/et actionsū

–’
ensuite
si état 100 (A)
faire …
attendre « wait » … état 10
faire …
attendre « wait » …état 1

car chaque état lance ton scénario
et si 10 = 0 il s’arrête
et vu que tu appuies sur 10
il se relances pour de nouveau s’arrête
puisque 0=0
et il se relance pour cette fois continuer

sauf si le declencheur
et le 3eme état (soit 0 pour toi)

tu peux aussi faire un déclencheur unique
état100 == 1 && état10 == 1 && état1 == 1 && (tu peux ajouter si dernier changement état100 < 15secondes)
pour exemple de 1 déclencheur avec de multiple évaluation ET et OU
Dans un scénario, différence entre déclencheur valué et condition SI? - #5 par ajja17orange

on voit pas ton virtuel clavier ? tu montres l’état 100,10,1 => état A,1,0

ensuite pour ta musique
5x5x5= 125 songs
tu vas devoir toujours reste devant
donc
je vois tes questions suivantes
playlist (déjà crėe), radio.

Bonjour @ajja17orange,

Merci pour ta réponse, mais qui malheureusement ne m’aide pas vraiment, j’ai beau relire ton message, je ne comprends pas vraiment ce que tu veux dire. désolé.
Après je comprends également que je ne suis pas très clair dans mes explications.

Du coup il faut que je reparte de zéro. Que je revois ma façon d’aborder le problème…

J’ai donc 3 blocs de 5 interrupteurs physique. Et une combinaison de 3 touches doit afficher sur l’écran la lettre et les chiffres appuyé, et déclencher un scénario propre à celle-ci.

J’avais dans ma première idée créer un clavier virtuel car je n’avais pas d’arduino et cela me permettait de commencer les test. Faut-il le garder?
(J’ai cherché dans les configurations avancées, mais je n’ai pas compris ce que m’expliquait ajja17orange)

J’ai créer 4 widgets, un pour l’écran d’accueil qui devient ensuite l’image de la pochette.
et 3 autres correspondant aux lettres, aux dizaines et aux unités ( donc dans la première j’ai mis 5 png correspondant aux lettres A-B-C-D-E)

J’ai créer une variable « Lettre » que j’ai utilisé dans un scénario pour afficher la bonne lettre correspondant à la touche.

et bien sur j’ai créer un design pour y mettre le widget via un virtuel. Et j’ai fait cela pour les dizaines et pour les unités.

y-a plus simple vous pensez? je crois déjà connaitre la réponse :grinning: mais je ne sais pas comment…

Merci
Bonne Journée à ceux qui liront.

MnX

imagine un module avec protocole
zwave, rfx, etc

et tu peux voir au fils des dashboard que certains séparent « via virtuel » le modules de ses info et actions afin de regrouper en un seul module plusieurs équipements.

tu imagines faire un scénario pour ça ?
donc un virtuel info qui est assigné sur l’original (protocole)
et une(des) actions qui sont assigné aux originaux.
je pense que la doc le montrent.
j’ai pas encore migré de protocole en v4
mais en v3 ça donne

en virtuel tu as plein de possibilités
reprise ou non d’équipement
cmd scenario

Si tu ne peux pas attribué l’info de ton équipement source c’est qu’il te faut recommencé
Un autre exemple
Reprise d’un etat équipement et
Une création d’état

sinon la configuration avancée d’une action

Bonjour,

Merci pour ta réponse.

Mais j’utilise déjà des virtuels sur lesquels j’ai appliqué des widgets :

Sur cet exmple d’affichage de la lettre, une touche donne une valeur sur la variable « Lettre » et cela détermine un affichage du multistate widget.

Mais un des problèmes que je rencontre pour l’instant c’est la réactivité du système, je m’y prends mal j’imagine. Cela ne me dérange pas de lire des docs, mais vous, quelle logique, quelle méthode adopteriez-vous pour faire ce que je veux faire?
Mon message n’est peut-être pas à la bonne place, il devrait peut-être être dans la section « core de jeedom ». C’est de l’optimisation sur le fonctionnement.

ok pour la configuration avancé, de faire une action avant la commande, mais laquelle? ma commande c’est déjà d’afficher une lettre suivant la touche appuyé.

Merci

MnX

Bonjour, chez Ali, tu peux trouver un « encodeur USB arcade ». C´est une petite carte (3 à 6€) que tu connectes entre tes boutons et ta machine. Elle simule a présence d´un clavier USB. Ça pourrait considérablement alléger tes scenarii ?