![MagicMirror²:开源模块化智能镜像平台。]
MagicMirror²是一个开源模块化智能镜像平台。随着可安装模块的增加,MagicMirror²允许您将走廊或浴室镜子转换为您的个人助理。MagicMirror²由[原始MagicMirror]的创建者在[不断增长的贡献者社区]的帮助下构建。
MagicMirror²专注于模块化插件系统,并使用[Electron]作为应用程序包装器。因此不再需要安装Web服务器或浏览器!
请注意,您需要安装Raspbian的最新完整版本,不要使用Lite版本。
在Raspberry Pi上执行以下命令以安装MagicMirror²:
bash -c“$(curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh)”
1.下载并安装最新的* Node.js *版本:
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs
git clone https:// github.com / MichMich / MagicMirror
cd MagicMirror /
npm install && npm start
npm install && node serveronly
。:警告:重要!
另请注意:
npm start
不能**通过SSH工作。但你可以使用DISPLAY =:0 nohup npm start&
代替。npm start dev
,它将启用MM并启用* Dev Tools *。Developer Tools
,使用CTRL-SHIFT-I
或ALT
并选择View
。在某些情况下,您希望在没有实际应用程序窗口的情况下启动应用程序。在这种情况下,您可以通过手动运行node serveronly
或使用Docker在仅服务器模式下启动MagicMirror²。这将启动服务器,之后您可以在您选择的浏览器中打开该应用程序。详细说明如下。
重要事项: 确保将服务器配置中的接口/ ip(ipWhitelist
)列入白名单,以便客户端连接到该服务器,否则将不允许连接到服务器。您还需要将本地主机“地址”字段设置为“0.0.0.0”,以便RPi监听所有接口,而不仅仅是“localhost”(默认)。
var config = {
地址:“0.0.0.0”,//默认为“localhost”
port:8080,//默认
ipWhitelist:[“127.0.0.1”,“:: ffff:127.0.0.1”,“:: 1”,“:: ffff:172.17.0.1”],//默认 - 需要在这里添加你的IP
...
};
这时您已经有一台远程运行的服务器,并希望您的RPi作为独立客户端连接到此实例,以便从服务器显示MM。然后从你的RPi中运行它:node clientonly --address 192.168.1.5 --port 8080
。(指定服务器的IP地址和端口号)
可以使用[Docker]部署仅服务器模式的MagicMirror²。成功[Docker安装]后,您只需在shell中执行以下命令:
docker run -d \
--publish 80:8080 \
- 总是
--volume~ / magic_mirror / config:/ opt / magic_mirror / config \
--volume~ / magic_mirror / modules:/ opt / magic_mirror / modules \
--name magic_mirror \
bastilimbach /搬运工-magicmirror
要获得有关可用Dockerfile版本和配置的更多信息,请转到相应的[GitHub存储库]
以下wiki链接有助于MagicMirror²操作系统的初始配置:
1.将/ home / pi / MagicMirror / config / config.js.sample
复制到/ home / pi / MagicMirror / config / config.js
。
**注意:**如果您使用了安装程序脚本。此步骤已经为您完成。
2.修改所需的设置。
注意:您可以在/ home / pi / MagicMirror
中检查运行npm run config:check
的配置。
可以配置以下属性:
选项 | 说明 |
---|---|
port | 运行MagicMirror²服务器的端口。默认值为“8080”。 |
地址 | 要接受连接的* interface * ip地址。默认为“localhost”,这会阻止将内置Web服务器暴露给本地网络上的计算机。要将其公开给其他计算机,请使用:0.0.0.0 。 |
ipWhitelist | 允许您访问MagicMirror²的IP列表。默认值为[“127.0.0.1”,“:: ffff:127.0.0.1”,“:: 1”] ,它仅来自localhost 。需要时添加您的IP。您还可以使用子网掩码([“127.0.0.1”,“127.0.0.1/24”] )或直接使用([“127.0.0.1”,[“192.168.0.1”,“192.168]指定IP范围。 0.100" ]] )。设置[] 以允许所有IP地址。 |
zoom | 这允许使用给定的缩放因子缩放镜像内容。默认值为“1.0” |
language | 界面的语言。(注意:并非所有元素都会被本地化。)可能的值是en ,nl ,ru ,fr 等,但默认值是en 。 |
timeFormat | 将使用的时间表示法的形式。可能的值是“12”或“24”。默认值为“24”。 |
units | 将在默认天气模块中使用的单位。可能的值是“metric”或“imperial”。默认值为“metric”。 |
modules | 一系列活动模块。数组必须包含对象。有关详细信息,请参阅下表。 |
electronOptions | 可选的Electron(浏览器)选项数组。这允许配置例如浏览器屏幕大小和位置(例如:electronOptions:{fullscreen:false,width:800,height:600} )。 |
customCss | custom.css 样式表的路径。默认为css / custom.css 。 |
模块配置:
选项 | 说明 |
---|---|
module | 模块的名称。这也可以包含子文件夹。有效的例子包括clock ,default / calendar 和custommodules / mymodule 。 |
position | 模块将加载到的模块的位置。可能的值是top_bar ,top_left ,top_center ,top_right ,upper_third ,middle_center ,lower_third ,bottom_left ,bottom_center ,bottom_right ,bottom_bar ,fullscreen_above ,和fullscreen_below 。此字段是可选的,但大多数模块都需要设置此字段。有关更多信息,请查看模块的文档。将根据配置文件中的顺序对具有相同位置的多个模块进行排序。 |
classes | 传递给模块的其他类。该字段是可选的。 |
header | 要在模块上方显示标题文本,请添加标题属性。该字段是可选的。 |
disabled | 将disabled设置为“true”以跳过创建模块。该字段是可选的。 |
config | 具有模块配置属性的对象。有关更多信息,请查看模块的文档。除非模块需要额外配置,否则此字段是可选的。 |
默认情况下安装以下模块。
有关更多可用模块,请查看Wiki页面[MagicMirror²第三方模块](https://github.com/MichMich/MagicMirror/wiki/3rd-party-modules)。如果您想构建自己的模块,请查看[MagicMirror²模块开发文档](模块),不要忘记将其添加到wiki和[论坛]!
如果要将MagicMirror²更新到最新版本,请使用终端转到Magic Mirror文件夹并键入以下命令:
git pull && npm install
如果您只更改配置或模块,这应该没有任何问题。
键入git status
以查看您的更改,如果有,您可以使用git reset --hard
重置它们。在那之后,git pull应该是可能的。
MagicMirror²周围的社区不断发展壮大。我们现在甚至有一个[论坛],您可以分享您的想法,提出问题,帮助他人并获得其他建设者的启发。我们很想见到你!
欢迎各种贡献,不仅是代码形式,还有bug报告和文档。
请记住以下几点:
感谢您帮助MagicMirror²做得更好!
一份真正的宣言仍有待撰写。直到那时,迈克尔对[其中一个存储库问题]的回应给出了一个很好的总结:
“…我开始将这个项目作为Raspberry Pi爱好者的最终启动项目。事实上,对于大多数贡献者来说,MagicMirror项目是他们贡献的第一个开源项目。这是其中一个项目。 MagicMirror项目在几个RasPi杂志中出现的原因。
该项目有很多改进的机会。我们可以使用像Vue这样强大的框架来提高开发速度。我们可以使用SASS来实现更好/更简单的css。我们可以使它成为NPM可安装包。正如你所说,我们可以把它捆绑起来。这些变化的最大缺点是它使事情变得复杂:用户不再能够打开一个文件并进行小的修改,看看它是如何工作的。
当然,捆绑版本可以与常规的非捆绑版本互补。我相信很多(新)用户会选择捆绑版本。但这意味着那些用户不会被激励去偷看。他们将只是“用户”。他们不会成为贡献者,更糟糕的是:他们没有动力在软件开发中迈出第一步。
说实话:激励好奇的用户走出他们的舒适区并采取这些第一步是我在这个项目中的动力。因此,我的最终目标是让这个项目尽可能地保持可访问性。“
~Michael Teeuw