Miroir connecté

L'idée est d'utiliser le Banana Pi qui gère Domoticz pour faire un affichage personnalisé.

Premiers essai

Il y a plein de descriptions de smart mirror sur le WEB, mais pour moi il faut qu'il fonctionne ne parallèle avec Domoticz.
Je pars donc d'une install de base avec Domoticz installe suivant mon précédent tread.

Je connecte un écran au BananaPi, puis j'installe un serveur X et Chromium-browser.
Pour le serveur X :

apt install xserver-xorg xinit xserver-xorg-video-fbdev

Mais le X ne fonctionne pas !
il manque :

apt install xserver-xorg-legacy

Et hop X fonctionne.
Ensuite on install Chomium :

apt install chromium-browser

Un petit test sous ssh -X …, ça baigne !

Pour le reste je vais me baser sur ces pages :
http://michaelteeuw.nl/post/84026273526/and-there-it-is-the-end-result-of-the-magic
Depuis un version 2 a été mise en ligne :
github.com/MichMich/MagicMirror/blob/master/README.md
Je me baserais sur cette dernière.

Là je me rend compte que partir depuis un tty n'est pas adapté, je pense qu'il me faut installer lxde.
Je vais tenter de suivre le lien, j'améliorerais plus tard mon affichage.

Pour commencer, j'install un lxde minimal :

apt install lightdm lxde-core xfonts-base xserver-xorg

Ensuite on configure pi en auto-login, on décommente ces 2 lignes dans lightdm.conf :

vi /etc/lightdm/lightdm.conf
...
#  ...
autologin-user = pi #User to log in with by default (overrides autologin-guest)
autologin-user-timeout = 0 #Number of seconds to wait before loading default user
...

Je vais avoir besoin de nodejs.
il vaut mieux charger le dernier :

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Premier MagicMirror

On reste sous l'utilisateur pi on clone le repo :

git clone https://github.com/MichMich/MagicMirror
cd MagicMirror/

On installe et démarre l'appli :

npm install && npm start 

En mode serveur seulement

npm install && node serveronly

ATTENTION :
L'étape d'installation pour l'installation de npm prendra beaucoup de temps, souvent avec peu ou pas de réponse du terminal!
Pour le RPi3 c'est ~ 10 minutes et pour le Rpi2 ~ 25 minutes.
N'interrompez pas ou vous risquez d'obtenir un broken_heart par Raspberry Jam.

Notez également que:

Le démarrage npm ne fonctionne pas via SSH. Mais vous pouvez utiliser DISPLAY =: 0 nohup npm start & à la place.
Cela démarre le miroir sur l'affichage à distance.
Si vous voulez déboguer sur Raspberry Pi, vous pouvez utiliser npm start dev qui démarrera MM avec Dev Tools activé.
Pour accéder au menu de la barre d'outils en mode miroir, appuyez sur la touche ALT.
Pour basculer les outils de développement (Web) à partir du mode miroir, utilisez CTRL-MAJ-I ou ALT et sélectionnez Affichage.

Serveur seulement

Dans certains cas, vous souhaitez démarrer l'application sans fenêtre d'application réelle. Dans ce cas, vous pouvez démarrer MagicMirror² en mode serveur uniquement en exécutant manuellement le noeud serveronly ou en utilisant Docker.
Cela va démarrer le serveur, après quoi vous pouvez ouvrir l'application dans votre navigateur de choix.

Description détaillée ci-dessous.

Important: Assurez-vous de mettre en liste blanche l'interface / ip (ipWhitelist) dans la configuration du serveur à laquelle vous souhaitez que le client se connecte,
sinon il ne sera pas autorisé à se connecter au serveur.
Vous devez également définir le champ d'adresse de l'hôte local sur 0.0.0.0 pour que le RPi puisse écouter sur toutes les interfaces et pas seulement localhost (par défaut).

var config = {

address: "0.0.0.0",	// default is "localhost"
port: 8080,		// default
ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:172.17.0.1"], // default -- need to add your IP here
...

};

Client seulement

C'est quand vous avez déjà un serveur fonctionnant à distance et voulez que votre RPi se connecte en tant que client autonome à cette instance, pour montrer le MM à partir du serveur.
Puis à partir de votre RPi, vous l'exécutez avec: node clientonly –adresse 192.168.1.5 –port 8080. (Spécifiez l'adresse IP et le numéro de port du serveur)

Bilan

Ben ça marche pas !
lors du npn install, il va exécuter un yon install et yon n'existe pas…
Je vais me fendre d'un mail à l'auteur en espérant que …

Deuxième MagicMirror

J'ai trouvé un autre moyen de l'installer sous pi :

mv MagiMirror MagicMirror.old
npm install electron
curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh | bash
cd /MagicMirror
npm start

Ensuite il faut configurer son bananapi :
github.com/MichMich/MagicMirror/wiki/Configuring-the-Raspberry-Pi

Configuration

Ceci est une traduction de ce qui se trouve dans :
https://github.com/MichMich/MagicMirror#configuration

Les liens wiki suivants sont utiles pour la configuration initiale de votre système d'exploitation MagicMirror²:

Configuration du Raspberry Pi
Démarrage automatique MagicMirror

Général

Copiez config / config.js.sample dans config / config.js.
Remarque: Si vous avez utilisé le script d'installation. Cette étape est déjà faite pour vous.

Modifiez vos paramètres requis
Note: Vous pouvez vérifier votre configuration en exécutant

npm run config: check.

Les propriétés suivantes peuvent être configurées:

Description de l'option

OptionsDescriptions
port
adresse Adresse IP de l'interface sur laquelle accepter les connexions. La valeur par défaut est localhost, ce qui évite d'exposer le serveur Web intégré aux machines sur le réseau local. Pour l'exposer à d'autres machines, utilisez: 0.0.0.0.
ipWhitelist La liste des adresses IP à partir desquelles vous êtes autorisé à accéder au MagicMirror². La valeur par défaut est [“127.0.0.1”, “:: ffff: 127.0.0.1”, “:: 1”], qui provient uniquement de localhost. Ajoutez votre adresse IP si nécessaire. Vous pouvez également spécifier des plages IP avec des masques de sous-réseau ([“127.0.0.1”, “127.0.0.1/24”]) ou directement avec ([“127.0.0.1”, [“192.168.0.1”, “192.168.0.100”] ]). Définissez [] pour autoriser toutes les adresses IP. Pour plus d'informations voir: follow post ipWhitelist HowTo
zoom Ceci permet de mettre à l'échelle le contenu du miroir avec un facteur de zoom donné. La valeur par défaut est 1.0
langue Le langage de l'interface. (Remarque: tous les éléments ne seront pas localisés.) Les valeurs possibles sont en, nl, ru, fr, etc., mais la valeur par défaut est en.
timeFormat La forme de la notation temporelle qui sera utilisée. Les valeurs possibles sont 12 ou 24. La valeur par défaut est 24.
unités Les unités qui seront utilisées dans les modules météo par défaut. Les valeurs possibles sont métriques ou impériales. La valeur par défaut est la métrique.
modules Un tableau de modules actifs. Le tableau doit contenir des objets. Voir le tableau suivant ci-dessous pour plus d'informations.
electronOptions Un tableau optionnel d'options Electron (navigateur). Cela permet une configuration de par ex. la taille et la position de l'écran du navigateur (exemple: electronOptions: {fullscreen: false, width: 800, height: 600}). Le mode kiosque peut être activé en définissant kiosk = true, autoHideMenuBar = false et fullscreen = false. Plus d'options peuvent être trouvées ici.
customCss Le chemin de la feuille de style custom.css. La valeur par défaut est css / custom.css.

Configuration du module:

Description de l'option

OptionsDescriptions
module Le nom du module. Cela peut également contenir le sous-dossier. Les exemples valides incluent clock, default / calendar et custommodules / mymodule.
position Emplacement du module dans lequel le module sera chargé. Les valeurs possibles sont top_bar, top_left, top_center, top_right, upper_third, middle_center, lower_third, bottom_left, bottom_center, bottom_right, bottom_bar, fullscreen_above et fullscreen_below. Ce champ est facultatif mais la plupart des modules nécessitent ce champ pour définir. Consultez la documentation du module pour plus d'informations. Plusieurs modules avec la même position seront commandés en fonction de la commande dans le fichier de configuration.
classes Des classes supplémentaires qui sont passées au module. Le champ est facultatif.
En-tête Pour afficher un texte d'en-tête au-dessus du module, ajoutez la propriété d'en-tête. Ce champ est facultatif.
désactivé Défini désactivé à true pour ignorer la création du module. Ce champ est facultatif.
config Un objet avec les propriétés de configuration du module. Consultez la documentation du module pour plus d'informations. Ce champ est facultatif, sauf si le module nécessite une configuration supplémentaire.

Quelques autres projets

MagicMirror décrit ci dessus avec son plugin domoticz

Avec une reconnaissance faciale

MirrorMirror

SmartMirror (python)

SmartConnectedMirror (nodejs / Fork MagicMirror)

HomeMirror (javascript)

Un fait maison

Une solution "clé en main"

banana/miroir.txt · Dernière modification : 2024/12/23 14:49 de 127.0.0.1
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0