Amazonのアソシエイトとして、ラズパイダ(raspida.com)は適格販売により収入を得ています。詳しくは当サイトの プライバシーポリシーをご覧ください。
Raspberry Piでマジックミラーは随分前に流行りました。ただ、マジックミラーに使う鏡はその辺で簡単に買えません。大きいとそれなりの価格になります。
そこで、単純に情報表示として使うのもアリだなと思っています。
有名な「MagicMirror2」も2019年に少しご紹介しました。 インストールから利用まで備忘録としてザッと残しておきます。
マジックミラー(ハーフミラー)はこういうモノです
インストール
公式サイトでは、インストール方法は手動でインストールしてね、とあります。保証外ではありますけど、便利なスクリプトも公開されています。
多くの人はスクリプトの利用かと思いますが、今回は手動のインストールで試しました。
手動のインストール
手順は以下を順番に実行すれば良いことになります。
注意したいのは、Raspberry Pi OSはデスクトップ版を用意することです。GUIが無いliteではダメなんです。
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejs
git clone https://github.com/MichMich/MagicMirror
cd MagicMirror/
npm run install-mm
cp config/config.js.sample config/config.js
npm run start
5行目のインストールの後、バージョンアップの表示があったので、ついでにアップデートもしてみました。
npm notice New major version of npm available! 8.19.3 -> 9.6.2 npm notice Changelog: https://github.com/npm/cli/releases/tag/v9.6.2 npm notice Run npm install -g npm@9.6.2 to update!
sudo npm install -g npm@9.6.2
ここではsudoを付けないとエラーでした。
他はユーザー権限でOKです。
自動スクリプト
もう1つはスクリプトです。一応、これは公式ではありません。(詳しくはgithubページ)
これ一行だけですから、こちらのスクリプトの利用でも構いません。
bash -c "$(curl -sL https://raw.githubusercontent.com/sdetweil/MagicMirror_scripts/master/raspberry.sh)"
この記事はこれを使わずにマニュアルインストール方法です。
起動後
起動はnpmコマンド
npm run start
MagicMirror2を起動した直後はこんな感じ。

デバッグモードで動作させたい場合は、:devを付けます。
npm run start:dev

終了するには
SSH経由で実行させた場合、ターミナルにCtrl + C で終了させられます。
一方で、Raspberry Pi 側に繋いだキーボードで操作ができます。
キーボードショットカット

Altキーでメニューバーが出ます。どのOSでも大体Altキーでメニューバーを操作できますから同じです。
ショートカットキー
Ctrl + SHIFT + I でデバッグモードの切り替え
Ctrl + Q で終了
つまり、メニューをマウスで操作するのと同じです。
実はChromium(Webブラウザ)が出ているだけなんですよね。
configファイルで設定
設定はすべてjson形式のconfig.jsファイルに書いていきます。MacgicMirrorフォルダ内にあります。
最初から入っているコアモジュール以外、追加したいモジュールは別途インストールが必要になります。
導入するgithubなどのページに従って記述していきましょう。
nano config/config.js
自動起動の設定
Raspberry Pi の電源を入れた後、MagicMirror2が自動的に起動するようにします。
pm2というアプリを使います。
PM2 は、アプリケーションを24時間365 日オンラインで管理および維持するのに役立つデーモンプロセス マネージャーです。
インストールして起動時にpm2が起動するようにします。
sudo npm install -g pm2
pm2 startup

スクリプトの作成
次に、ホームディレクトリなど適当な場所にshスクリプトを作成します。(ここでは/home)
nano mm.sh
cd ./MagicMirror
DISPLAY=:0 npm start
記入は2行。
MagicMirrorはホームディレクトリにインストールしたので、./MagicMirrorに移動してスタートコマンドさせるような記述です。
忘れずに実行権限を付与します。
chmod +x mm.sh
pm2に登録と保存
このshファイルをpm2に登録&保存します。
スタートさせるとMagicMirrorが起動します。
pm2 start mm.sh
続けて保存します。
pm2 save
[PM2] Successfullyと出れば完了です。
他にもあるpm2コマンド。restartはよく使います。
pm2 restart mm
pm2 stop mm
pm2 logs mm
pm2 show mm
■Pi 5は8GBモデルがオススメ
サードパーティ製モジュール
モジュールを探すのに適しているのは次のgithubページです。
ズラズラッとMagicMirrorのモジュールが簡易的な説明と共に掲載されています。
GitHub
3rd Party Modules MagicMirror² is an open source modular smart mirror platform. With a growing list of installable modules, the MagicMirror² allows you to convert your hallway or…
日本語設定
config.jsにはLanguage箇所があります。日本語にしておきましょう。
language: "ja",
locale: "ja-JP.UTF-8",
logLevel: [],
logLevelはinfo以下削除しました。別にサンプルのままでも構いません。
カレンダー
icalを日本の祝日に変えておきました。
公開されているicalのURL
https://www.google.com/calendar/ical/ja.japanese%23holiday%40group.v.calendar.google.com/public/basic.ics
変更した箇所
{
module: "calendar",
header: "日本の祝日",
position: "top_left",
config: {
calendars: [
{
symbol: "calendar-check",
url: "https://www.google.com/calendar/ical/ja.japanese%23holiday%40group.v.calendar.google.com/public/basic.ics"
}
]
}
},
ニュースフィード
ニュースフィード部分はYahoo経済ニュースに変更してみました。
{
module: "newsfeed",
position: "top_bar",
config: {
feeds: [
{
title: "Yahoo経済ニュース",
url: "https://news.yahoo.co.jp/rss/topics/business.xml"
}
],
showSourceTitle: true,
showPublishDate: true,
broadcastNewsFeeds: true,
broadcastNewsUpdates: true
}
},
天気予報モジュール
コアモジュールとして最初から導入されている天気予報のモジュールは、config/jsファイルに都市名とLocationIDを指定し、OpenWeatherで登録したAPPID KEYSを書き換えれば変更できます。
location: "都市名",
locationID: "XXXXXXX",
apiKey: "XXXXXXXX"
{
module: "weather",
position: "top_right",
config: {
weatherProvider: "openweathermap",
type: "current",
location: "都市名",
locationID: "XXXXXXX", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
apiKey: "XXXXXXXX"
}
},
{
module: "weather",
position: "top_right",
header: "Weather Forecast",
config: {
weatherProvider: "openweathermap",
type: "forecast",
location: "都市名",
locationID: "XXXXXXXX", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
apiKey: "XXXXXXXX"
}
},
LocationIDが分からない場合は次の記事を参考にしてください。
OpenWeatherの登録
Youtube動画モジュール

Youtubeを追加
Youtubeのモジュールは複数ありますが、単に表示させるだけであれば「Embed Youtube Module for MagicMirror」が簡単でした。
Video_idに再生したい動画URL末尾の文字列を入れるだけで済みます。
modules: [
{
module: 'MMM-EmbedYoutube', // Path to youtube module from modules folder Exmaple: MagicMirror/modules/custom/MMM-EmbedYoutube/ so it's custom/MMM-EmbedYoutube
position: 'bottom_bar', // This can be any of the regions.
config: {
// See 'Configuration options' in README.md for more information.
video_id: 'w3jLJU7DT5E',
loop: true,
},
},
]
モジュールを~/MagicMirror/modulesでgit cloneしました。
cd ~/MagicMirror/modules
git clone https://github.com/nitpum/MMM-EmbedYoutube.git
cd MMM-EmbedYoutube
npm install
~/MagicMirror/modules/MMM-EmbedYoutubeとなります。
nano ~MagicMirror/config/config.jsで追加するには字下げに気を付けてください。
以下は実際に最後の},カンマから追記した時の場合です。※config:{オプション}は他にもあります。
{
module: 'MMM-EmbedYoutube',
position: 'bottom_bar',
config: {
video_id: 'CQtliTJ41ZE',
width: 640,
loop: true,
autoplay: true,
controls: false,
}
},
保存した後、pm2をリスタートさせればすぐに適用されます。
cd ~/
pm2 restart mm.sh
GitHub - nitpum/MMM-EmbedYoutube: Embed youtube video for MagicMirror
バックグラウンドのスライドショー
鏡として使わない前提であれば、真っ黒な背景は要りません。
モジュールを~/MagicMirror/modulesでgit cloneしました。
cd ~/MagicMirror/modules
git clone https://github.com/darickc/MMM-BackgroundSlideshow.git
cd MMM-BackgroundSlideshow
npm install
{
module: 'MMM-BackgroundSlideshow',
position: 'fullscreen_below',
config: {
imagePaths: ['modules/MMM-BackgroundSlideshow/exampleImages/'],
transitionImages: true,
randomizeImageOrder: true
}
},
GitHub - darickc/MMM-BackgroundSlideshow
スクリーンセーバーやブランクスクリーンの停止
ブランクスクリーンでモニターが消えないように設定もしておきましょう。
2つのファイルを変更します。
1.autostartに3行を追記
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
@xset s noblank
@xset s off
@xset -dpms
2.lightdm.confに追記
sudo nano /etc/lightdm/lightdm.conf
[SeatDefaults]が無ければこの2行。あればその下に。
[SeatDefaults]
xserver-command=X -s 0 -dpms
表示するモニター
マジックミラーに仕立てなくても、モニターに出力して楽しめます。
鏡じゃないから縦表示にしなくても良いですよね。

サンプルのスライドショー
モバイルモニターみたいな小さい画面に常時表示させておくのも便利ですよ。気に入ったらマジックミラーを探して取り付けてみましょう。
ハーフミラーなら
決まった大きさでもオーダーメイドもできるハーフミラーが販売されています。
細かい点は省いてありますが、これで一応は動作して、天気と時間、カレンダー、背景とYoutubeが表示されます。
RレッドLINKS






