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
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.
Description de l'option
Options | Descriptions |
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
Options | Descriptions |
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"