[Plugin Tiers] Plugin Jailbreak

Salut Flobul,
Paquet Play installé depuis Cydia, sous supprimer le paquet Playcli.
Faut-il supprimer le paquet Playcli ?

Résultat :

  • ça fonctionne correctement avec la ligne de commande « wget -O /var/root/jailed/songs/test.mp3 https://github.com/Flobul/Jailbreak/raw/master/sncf.mp3 --no-check-certificate && play /var/root/jailed/songs/test.mp3 »

  • ça fonctionne également si je change le lien depuis une autre source. Exemple « wget -O /var/root/jailed/songs/Bonjour.mp3 http://192.168.x.xx/plugins/Jailbreak/ressources/audio/Bonjour.mp3 --no-check-certificate && play /var/root/jailed/songs/Bonjour.mp3 »

  • Pour cela fonctionne ta ligne de commande demande à ce que le fichier soit déposé dans l’iPad. Quelle commande puis-je utiliser pour une lecture depuis un lien http sans stocker le fichier sur l’iPad ?

  • La commande Stop ne fonctionne. Cela n’interrompe pas la lecture en cours, probablement car encore liée au paquet Playcli.

  • La commande Play et PlayURL ne fonctionne pas, probablement car encore liées au paquet Playcli.

Dans la mesure où l’on pourrait diffuser un son depuis un lien, et donc commandes personnalisées dans un scénario la commande Play (et sa liste déroulante) me parait peu utile. Hormis pour connaître peut-être la liste des fichiers déposés dans le dossier. Mais dans ce cas si cette commande est maintenue il serait intéressant de sélectionner le fichier dans la liste déroulante directement dans un scénario, et non plus dans l’onglet commande de base du plugin.

Merci Flobul, c’est déjà une excellente nouvelle !! Tu gères.

Merci pour ce retour.

Tu peux le supprimer.

Non implémenté dans le paquet play.
Je regarde pour l’ajouter si je peux.

Je peux regarder pour l’implémenter, mais actuellement « télécharger, lire, supprimer » est l’équivalent.

Je viens de supprimer le paquet Playcli depuis Cydia. OK.
Par contre c’est surprenant, le paquet Play 1.0 n’apparait pas dans la liste de paquets installés dans Cydia.

Je me suis peut-être mal exprimé, et voici comment je l’interprète :

  • La commande PlayURL permet de lire un fichier son depuis un lien HTTP. Si j’indique un lien depuis mon serveur Jeedom cela ne fonctionne pas (sur mon explorateur windows oui, donc le lien est bon). Si je saisi le lien pour lire le même fichier test déjà stocké sur l’ipad ça ne fonctionne pas (exemple : « http://192.168.x.xxx/var/root/jailed/songs/test.mp3 » mais peut-être le lien n’est pas bon ?

  • La commande Play permet de lire un fichier stocké sur l’iPad et propose un menu déroulant pour le sélectionner. Avec le paquet Play ça ne fonctionne pas non plus.

Du coup pour simplifier l’utilisation de la lecture d’un fichier son ce que je souhaite savoir c’est s’il est possible d’indiquer uniquement le lien du fichier son pour le lire (iPad ou depuis une machine sur le réseau local) depuis le Plugin mais surtout depuis un scénario.
Si avec ça ça fonctionne c’est parfait pour moi.
:slight_smile:

Salut.

J’avais bien compris, mais fallait recoder entièrement le paquet play pour arriver à lire en streaming une URL.

Ce que je viens de faire dans le paquet play v1.1. :sunglasses:

Poussé sur mon repo : paquet play en v1.1
Pour l’installer :

  • depuis Cydia, sur mon repo, Cliquer sur play V1.1 et l’installer.
  • depuis ssh ou une commande action du plugin : apt-get update && apt-get install com.flobul.play && killall backboardd

J’ai mis à jour en conséquence le plugin en beta :

  • Commande playurl fonctionne sur le Dashboard, depuis la page commande de base du plugin ou depuis un scénario. Il suffit d’entrer une url comme telle : https://blabla.com/xxxxx et envoyer. Il peut y avoir une légère tempo avant la lecture (du à l’envoie de la commande puis lecture depuis le site de streaming du lien)
  • Commande play fonctionne comme avant sur le fichier listés dans /var/root/jailed/songs/
  • Commande stop idem, coupe la lecture de play.
    En revanche, impossible de couper la lecture de playurl, une fois que c’est lancé, ça va se terminer à la fin du fichier son. La commande stop n’aura aucun effet.

Excellentissime Flobul.
L’installation du nouveau paquet Play v1.1 a refait planté mon Jailbreak. Je viens de re-Jailbreak et ça fonctionne.

A présent je peux lancer une commande pour lire un fichier son depuis un autre appareil et depuis mon réseau local ! C’est génial.

Mon impression sur l’évolution du plugin pour la partie son :

  • Depuis le Dashboard, la commande PlayURL fonctionne parfaitement pour lire un son depuis un adresse locale. Et contrairement à ce que tu dis la commande Stop arrête bien la lecture. Si la bande son est trop courte en effet ce n’est pas perceptible.

  • Depuis le plugin, dans l’onglet « Commandes de base » la commande PlayUrl ne fonctionne pas si j’insère le même lien. D’ailleurs si je coche ou décoche « afficher » ça n’a aucun effet sur le Dashboard, je me demande donc s’il s’agit de la même commande que celle qui apparait sur le Dashboard.

  • Depuis un scénario la commande PlayUrl fonctionne correctement, mais fait apparaitre deux champs à remplir (« TITRE » il n’a aucun intérêt peut-on le supprimer ? et « MESSAGE » pour le lien du fichier, celui-ci pourrait être remplacé par « LIEN » ?)

  • Depuis le Dashboard, je ne vois pas la commande Play, même si celle la case « Afficher » est cochée. Par contre si je créé une commande depuis le Dashboard et que j’ajoute manuellement la commande Play elle apparait bien et elle fonctionne. Il semblerait qu’il y ait un soucis à propos de l’activation / désactivation de l’affichage de certaines commandes dans le plugin et sur le Dash.

  • Depuis un scénario la commande Play fonctionne et lance bien la lecture du fichier sélectionné dans la liste.

  • Depuis un scénario la commande Play ne permet pas de choisir le fichier depuis un menu déroulant. Est-ce envisageable Stp ?

  • Préciser dans la documentation le lien à indiquer dans la commande PlayURL pour lire un fichier son depuis l’iPad. J’ai essayé « /private/var/root/jailed/songs/xxx.mp3 » et ça fonctionne.

Un autre point, cela concerne la gestion de l’alimentation de l’iPad, car tout l’intérêt de ton plugin fonctionne sur le maintien de son fonctionnement pour ne pas perdre le Jailbreak. Pour palier à ça j’ai un scénario qui pilote la commande d’alimentation du chargeur de l’iPad lorsque le niveau de batterie est inférieur à 10%. Jusque là tout fonctionne. A 100% le chargeur se coupe tout seul. La surveillance et la charge est automatique. Par contre lorsque je réalise des mises à jour sur mon switch et points d’accès WiFi je perds la commucation entre Jeedom et l’iPad. Le plugin remonte alors un niveau de batterie à « nul ». Cette valeur vide génère le déclenchement du scénario de charge de l’iPad. Lors de la perte de la connection WiFi de l’iPad est-il possible depuis le plugin de conserver les dernières valeurs connues ?
Sinon il faudra que j’indique une condition dans mon scénario pour préciser que si la valeur est vide aucune action n’est à faire, mais je n’ai pas d’idée.

Merci encore pour ton travail, c’est super appréciable.

Etrange. Ca devrait pas.

Tant mieux si ça fonctionne :slight_smile:

Je corrigerai ça.

C’est lié au fait que la commande est de type message, il faudra que je la change en défaut string effectivement.

Je l’ai pas encore implémentée. Il faut une liste déroulante, mais j’ai peur qu’à chaque chargement de Dashboard, ça demande trop de temps et de ressources de traitement.
Je pense que je vais inclure un tampon sur cette commande et on lira le tampon plus rapidement.

Play fonctionne ou fonctionne pas dans un scénario, normalement non je dirais.
Ce sera inclus avec le fichier tampon, sinon temps de chargement trop long.

Je suis en train de refondre la doc.
Je l’inclurai, merci.

Pour moi, ca n’a pas lieu d’être. Ou alors quelques fois dans le mois.
Depuis iOS 11 (et quelques…), Apple a inclus une gestion de la batterie pour les appareils en constant chargement.
Contrairement aux autres appareils, une fois l’iPad chargé à 100% pendant un lapse de temps, sa batterie n’est plus ou rarement sollicitée.
D’ailleurs on peut remarquer qu’en laissant l’iPad branché un certains temps, sa batterie a légèrement baissé. (95%) n’étant plus sollicité en charge, elle se vide lentement d’elle même.
Du coup, couper l’alimentation à 100% et remettre le jus à 10% revient à lui faire un cycle complet et donc user la batterie.
Je la décharge 1 à 2 fois dans le mois complètement.
J’ai un iPad avec la batterie complètement flinguée (elle tient 2 heures max), imagine si je devais créer un scénario pour la couper à 100% et remettre le jus à 10%, 12 cycles par jours.

Il faut que je vérifie ce point, mais quand un appareil n’est plus accessible en ssh, le plugin passe la commande info Connexion_ssh à 0 ce qui affecte le Dashboard en supprimant les commandes dont la valeur n’a pas été mise à jour, et c’est tout. Les autres commandes ne sont pas touchées.

Du coup, tu suggères de laisser l’alimentation de l’iPad en permanence ? Ou bien de le recharger à partir de quel niveau de batterie ?
Dans mon cas une décharge jusqu’à 10% me prend parfois 1semaine. Je m’en sers très peu.

En tout cas, je conseille de ne pas attendre que la batterie soit à 5% pour la recharger, c’est pas le but des batteries lithium. 10% ou 20%, c’est bien.

Ah oui, bien :slight_smile:
1 fois par semaine, c’est raisonnable dans ce cas.

Salut Flobul,

J’ai eu une idée (probablement merdique lol mais tu me diras).
Le plugin JeeXplorer permet d’accéder à la machine qui héberge Jeedom. En terme de praticité c’est canon.

Penses-tu que cela soit possible d’utilises ce plugin pour accéder au dossier de l’iPad ? L’idée de déposer des fichiers son personnalisés en mp3 et surtout en local dans l’iPad c’est idéal pour un temps de réponse rapide.
Personnellement je personnalise mes propres fichiers son car j’ai la possibilité de faire mes propres enregistrements + effets sur la voix. C’est quand même plus sympa et plus fluide que le TTS.

Pour la gestion des fichiers son pour l’iPad il y a des outils mais ça oblige à utiliser à travailler en local, tandis que JeeXplorer permis un accès à l’extérieur.

Probablement que ça obligerait JeeXplorer à créer un accès pour Jeedom et un autre pour une autre machine présent sur le réseau local.

Si c’est trop complexe à mettre en place, je me contenterai de la méthode tradi :smiley:

Salut, FabEy.

Trop lourd à gérer et je ne vois pas trop comment l’intégrer, trop peu d’intérêt pour le plugin.
Il y a des alternatives existantes pour accéder directement aux données de l’ipad via http : iFile par exemple.
Il y a des scripts ou une simple ligne de commande ensuite pour envoyer directement via http sur l’ipad.
Tout dépend à partir d’où tu souhaites envoyer les fichiers.

Sinon plus simplement sans iFile : la commande scp depuis Linux/mac
Tes fichiers audio modifiés que tu souhaites transférer se trouvent sur une machine windows, linux, mac ?

Je comprends !
Sur une machine Windows. J’utilise WinSCP pour accéder aux dossiers de l’iPad.
Mais pour ma culture perso si tu as des lignes de commandes à envoyer depuis le Plugin je suis preneur.

Nouvelle maj au marché en beta.

Petit coquille pour le lien urlplay de la commande playurl qui ne fonctionnait pas dans Commande de base.
Correction de l’affichage des commandes action sur Dashboard.

En fait, depuis un scénario, c’est normal que Titre s’affiche.
Il n’y pas d’autre solution. C’est fixé par le sous-type de la commande.

Modification commande play : il faut la supprimer, et Sauvegarder 2 fois.
Gestion de la liste play depuis le scénario. Et mise en cache des valeurs.
Affichage de play sur le Dashboard avec sa liste.
Et affichage du bouton Stop sur le Dashboard.

Correction des valeurs en cas de déconnexion de l’appareil.
La dernière valeur est conservée, et une valeur nulle n’est plus forcée (c’était un bug).

Correction du décalage de l’affichage Dashboard en cas de connexion SSH KO.

Aperçu du Dashboard pour iPad :

Merci pour ces retours @FabEY :slight_smile:

Doc mise à jour :wink:

J’attends ton retour, @FabEY et je fermerai ce sujet.

Flobul, tu es fantastique !
La liste fonctionne parfaitement depuis le Dashboard, ça c’est franchement canon.
Quelques observations :

  • La commande Play depuis un scénario ne fait pas appel à cette liste tampon. Si c’est toujours possible la partie son du plugin prend vraiment tout son sens pour envoyer des bandes sons avec les scénarios.
  • Depuis le Dashboard la taille des caractères de la liste de la commande Play est vraiment grande, possible dans la réduire ?
  • Juste pour info, si je lance une bande son assez longue depuis la commande Play (Dashboard) celle-ci est interrompue proprement (même avec un fondue, j’ai été surpris) lors de l’envoi d’une seconde bande son avant la fin de la première. ça c’est propre.

Flobul,

Nous n’avons pas parlé du TTS, mais voici de mon côté ce que j’ai.
Les commandes Rate, Volume, Pitch fonctionnent correctement.
En revanche pour les voix je ne peux utiliser deux voix :

  • Thomas (la version basique) si je ne saisi pas de commande -v
  • Une voix de femme en anglais si je saisi la commande -v 1

Sur l’iPad voici les voix que j’ai installé + reboot :

  • En Français → Audrey, Aurélie, Siri Femme, Siri Homme, Thomas. Et toutes les voix en Premium
  • Quelques voix étrangères pour tester.

Je n’arrive pas à faire appel aux autres voix française, ni à la voix premium de Thomas.
J’ai essayé ça et rien ne sort.

  • -v Thomas(Enhanced) Test
  • -v « Thomas(Enhanced) » Test

Une idée ?

Dans la doc tu précises " listez les voix installées avec la commande say -v ?" Où dois-je saisir cette commande et où voit-on le résultat ?

Je ne comprends pas, elle est bien présente.
Je viens de supprimer la commande, sauvegarder 2 fois.
Et je l’ajoute dans un scénario :

Uniquement sur la première ligne quand la liste est fermée ?
Ou également, une fois la liste ouverte, l’ensemble des titres ?
Je viens de forcer la première ligne à 12px qui paraissait un peu trop grande (14px).
Capture d’écran 2020-10-25 à 08.32.47

Ce n’est pas voulu, c’est le mode d’arrêt par défaut de la session AV, mais tant mieux. :+1:

Alors pour le TTS, j’ai volontairement « copié » le fonctionnement de la commande déjà existante de base sur les Mac qui s’appelle say. Afin de pouvoir l’intégrer aisément dans le plugin Homeptalk.
Les points capricieux sont les voix effectivement.
Pour afficher la liste des voix, il faut aller sur la commande « Liste des voix » :


Et afficher la liste (ça correspond à la commande say -v ? en ssh sur l’iPad.)

Par défaut, ce qu’il y a sélectionnez dans Accessibilité > VoiceOver > Parole > Voix.

Toute voix qu’il ne connait pas, il va forcer la voix pas défaut de l’appareil = Samantha

Amélie : OK (Canada)
Audrey : KO
Aurélie : Aurelie(Enhanced). KO aussi chez moi :frowning:
Siri H ou F : Siri n’est pas exploitable, bloqué par Apple malgré la liste.
Thomas : OK
Thomas(Enhanced) : KO
Toutes les voix étrangères fonctionnent sauf Enhanced.

Je ne vois pas trop d’où vient le problème, parce que je force l’affichage de la voix sélectionnée à chaque fin de commande say et à chaque fois, je vois qu’il la trouve et l’utilise. Sauf qu’en sortie, ce n’est pas la bonne. Comme si l’iPad n’avait pas le droit de l’utiliser et utilisait la voix par défaut (FR Thomas)

-v Thomas\(Enhanced\) Test

ou

-v "Thomas(Enhanced)" Test

Je te confirme que de mon côté la commande Play n’ouvre pas de champ à droit pour sélectionner un titre depuis la liste tampon. J’ai supprimé la commande + sauvegarde 2x. Pas de changement.

Uniquement sur la première ligne quand la liste est fermée ?
Ou également, une fois la liste ouverte, l’ensemble des titres ?
Je viens de forcer la première ligne à 12px qui paraissait un peu trop grande (14px).
Capture d’écran 2020-10-25 à 08.32.47
Texte en gros sur la première ligne et dans la liste.

Cette commande est bien affichée par défaut, mais n’apparait pas sur le Dashboard (tout comme Liste des App). J’ai l’impression qu’un certain nombre d’info cochées « Afficher » n’ont pas d’influence sur le Dashboard.

Par contre dans la configuration de la commande Liste des voix j’ai ça. C’est peut-être exploitable ? Dommage j’étais bien chaud pour tester un petit Yamete Kudasai Sensei en Jap haha

Tu peux aller dans la configuration de la commande play, Capture d’écran 2020-10-25 à 10.23.15, puis le bouton information en haut a droite Capture d’écran 2020-10-25 à 10.24.04 et me copier/coller le champ configuration ?

C’est voulu, les 2 listes sont trop longue et n’ont que peu d’intérêt sur le DB. C’est juste pour info et avoir la liste des langues dispo quelque part.

Oui, c’est exploitable.
Si tu cliques sur Tester de la commande Liste des voix, tu as dans le bandeau alert en haut de page la même liste qui s’affiche.

-v Kyoko "Yamete Kudasai Sensei"

Fonctionne.

HaHa ne rigole pas !

La loose pour moi elle ne dit que Sensei, et pas le début. D’ailleurs pour d’autres textes j’ai remarqué un comportement étrange avec les " ".

Effectivement, j’ai corrigé ça.
Ca marche désormais comme ce ci :

-v Kyoko Yamete Kudasai Sensei
-v Kyoko "Yamete Kudasai Sensei"
-r 0.2 -V 1 -v Kyoko Yamete Kudasai Sensei
-r 0.2 -V 1 -v Kyoko "Yamete Kudasai Sensei"
-r 0.1 -V 0.4 -p 1 -v Kyoko Yamete Kudasai Sensei
-r 0.1 -V 0.4 -p 1 -v Kyoko "Yamete Kudasai Sensei"

Les guillemets n’ont que peu d’importance tant que la chaine à lire est en fin de ligne.

Tu as bien la liste dans configuration et elle s’affiche sur le Dashboard. Elle devrait également s’afficher dans un scenario.
Est-ce que tu as bien la liste qui s’affiche comme ici dans valeur possibles (Configuration de commande play) :

Pour la taille de police, je poste une amélioration pour la première ligne, mais je pense que c’est le navigateur qui fixe la taille. Je ne reproduis pas le problème sur Chrome et Safari.