Soutenez Lexpage, parce que le détournement de topics aussi mérite d'être discipline olympique    —  Myrddyn

Discussions

Affichage sur un écran via le réseau

Guybrush 8428 Bob
Bonjour,

Dans le cadre d'une idée de projet, je souhaite afficher des informations sur un écran sans avoir à y connecter directement un PC, par exemple, via le réseau, etc. L'idée serait de faire une sorte de dashboard dont la diffusion serait assurée par un serveur sur le réseau, sans autre connectique entre l'écran (ou le dispositif d'affichage) et le serveur.

Est-ce que vous connaissez des solutions de ce genre ? Ma seule idée, actuellement, et qui nécessite tout de même une "connexion" (indirecte), c'est de brancher un Rasp sur l'écran, et d'utiliser le Rasp pour afficher l'information en allant chercher le contenu sur le serveur (en réalité, sans doute ouvrir un navigateur sur une URL locale pré-enregistrée qui génère une sorte de dashboard). Vu le prix du Rasp et de l'écran, c'est une solution à moins de 200€ par poste.
Fabe 610 Geek
Une solution à base de chromecast ?
Tchou 3587 Bob
Une smartTV samsung ! :D

Quel genre d'infos tu veux afficher ? Du texte, ou du multimedia ? Et combien as-tu de slaves, un seul ou plusieurs ? Pour du multimedia, ouais, le rpi me semble la solution la moins coûteuse, un vieil écran juste dvi et roule ma poule.

Le chromecast me semble plus limité, moins bidouille, et nécessite des moyens plus lourds (le maitre doit être online et fonctionnel).
Guybrush 8428 Bob
TchouQuel genre d'infos tu veux afficher ? Du texte, ou du multimedia ?
Multimédia, mais à priori, je n'ai pas de contrainte sur le protocole. Je suis parti sur l'idée de faire du rendu via un browser, mais rien ne m'empêche de générer le rendu sur un serveur, et d'envoyer le résultat (vidéo, flux vga, ...).

L'idée est d'avoir plusieurs "panneaux d'affichage" qui affichent de l'information en provenance d'une source sur le réseau (et donc, dans mon idée, la source sur le réseau, c'est un site web sur l'intranet qui devrait être rendu dans un browser).
Tchou Et combien as-tu de slaves, un seul ou plusieurs ?
Potentiellement plusieurs.
TchouLe chromecast me semble plus limité, moins bidouille, et nécessite des moyens plus lourds (le maitre doit être online et fonctionnel).
Je vais regarder ce que Chromecast permet de faire. Mais je ne comprends pas bien. Est-ce qu'avec le Rasp, ce n'est pas la même chose ? Le serveur doit aussi être fonctionnel et online pour mettre à disposition l'information pour les slaves, non ?


Ce message a été modifié 1 fois. Dernière modification : 8 mars 2015 à 17:43 par Guybrush.

Tchou 3587 Bob
Pas forcément : si tu veux pouvoir garder une version cache car ton source n'est pas forcément online en permanence, tu peux le faire. Tu peux aussi mixer plusiers sources d'info si besoin est. C'est l'intérêt et la limite de la solution par rapport au chromecast : ça demande un poil plus de boulot, mais c'est totalement customisable.
Guybrush 8428 Bob
Ok, je vois. Disons que cela nécessite une application (ou du JS) sur le client. Cela dit, vu la puissance du Rasp (et encore plus dans la v2), ce n'est pas un souci.

Tiens, question "bête" : si je fais un appel Ajax vers une URL qui me retourne du HTML, et que j'injecte le HTML dans le dom, et que ce HTML contient du code JS, est-ce que le JS est interprété ? Et si j'enlève du JS du dom, est-ce que les fonctions de ce JS sont encore dispo, ou alors une modification du dom peut entrainer un ajout/suppression de JS ?

Pour situer la question : imaginons que je pointe dans le browser vers une page, dans laquelle se trouve du JS pour charger du contenu HTML distant (par ex, une sorte de widget), est-ce que je peux placer du JS dans cet HTML pour l'exécuter sur la page ou pas ? (Je pense que non, pour des raisons de sécurité, mais bon).
roidelapluie 339 Maitre jedi
Dashing sur le serveur et screenly sur le rasp.
www.screenlyapp.com/ose.…
dashing.io/

Mes 2 cents
PetitCalgon 2672 Bob
Guybrushet que ce HTML contient du code JS, est-ce que le JS est interprété ?
De mon expérience avec jQuery, le code HTML est simplement réécris dans le code HTML actuel, mais le JS n'est pas exécuté.

Par contre, si tu sais au départ que ton code HTML reçu contient une fonction JS, tu peux faire appel à cette fonction JS dans la boucle de réception Ajax. Je crois bien que la fonction JS sera alors appelée. A vérifier.

Par exemple:
$.get("foo.php", function( data ) {
$("#result").html(data);
fooFunction();
});
Ou fooFunction(); serait une fonction JS renvoyée par "foo.php"


Ce message a été modifié 1 fois. Dernière modification : 9 mars 2015 à 08:45 par PetitCalgon.

Guybrush 8428 Bob
RoidelapluieDashing sur le serveur et screenly sur le rasp.
Je n'ai pas pu tester Screenly (leur démo ne marche pas), mais le manque d'extensibilité (de ce que j'ai cru comprendre) pourrait être pénalisant dans mon projet. Cela dit, je vais essayer de voir comment ils goupillent tout ça sur le Rasp, il y a surement des idées à prendre.

Pour Dashing, j'étais tombé dessus (j'avais aussi trouvé des solutions Django-based) mais aucun ne m'a vraiment convaincu. Je vais développer ma propre solution de dashboard pour Django, je pense. Il faut que je me décide aussi si je fais un site centralisé pour tous les dashboards, ou si c'est une application par utilisateur(12-factor !), ou si j'héberge chaque application chez l'utilisateur (et donc en dehors du net).
PetitCalgonDe mon expérience avec jQuery, le code HTML est simplement réécris dans le code HTML actuel, mais le JS n'est pas exécuté.
Erf, zut. Ca parait logique, cela dit.
PetitCalgonPar contre, si tu sais au départ que ton code HTML reçu contient une fonction JS, tu peux faire appel à cette fonction JS dans la boucle de réception Ajax. Je crois bien que la fonction JS sera alors appelée. A vérifier.
L'idée est plutôt que chaque widget est responsable de son rendu, via une API, et que si ce rendu nécessite du JS, que ça soit chargé à la volée. Mais je vais m'orienter vers autre chose : chaque widget sera responsable de son rendu Angular en statique, et les données du widget seront chargées via l'API. De cette manière, j'ai un bon compromis entre les deux, et je peux toujours charger le rendu (Angular, sans données) à la volée avant de brancher dynamiquement un contrôleur Angular dessus pour gérer les données.


mimelex 51 Champiz
Guybrushest-ce que je peux placer du JS dans cet HTML pour l'exécuter sur la page ou pas ? (Je pense que non, pour des raisons de sécurité, mais bon).
Tu as la fonction eval() en js, si tu lui colles du code JavaScript en argument elle va l’exécuter. Après tu peux te démerder pour récupérer ton code js dans le callback de ton appel Ajax. Je ne garantis pas que ce soit très propre ceci dit :-D

Répondre

Vous devez être inscrit et identifié.