![MagicMirror²:开源模块化智能镜像平台。]
MagicMirror² 是一个开源模块化智能镜像平台。随着可安装模块的增加,
MagicMirror² 允许您将走廊或浴室镜子转换为您的个人助理。
MagicMirror² 由[原始MagicMirror]的创建者在[不断增长的贡献者社区]的帮助下构建。
MagicMirror²专注于模块化插件系统,并使用[Electron]作为应用程序包装器。因此不再需要安装Web服务器或浏览器!
目录
[安装](#装置)
[Raspberry Pi](#raspberry-pi)
[一般](#general)
[仅限服务器](仅限服务器)
[仅限客户](仅限客户)
[Docker](#泊坞)
[配置](#配置)
[模块](#modules)
[更新](#更新)
[已知问题](#known-issues)
[社区](#社区)
[贡献指南](#贡献指南)
[宣言](# sprileo)
安装
Raspberry Pi
自动安装(仅限Raspberry Pi!)
Electron *,MagicMirror²的app包装器,仅支持Raspberry Pi 2/3。目前不支持Raspberry Pi 0/1。如果要在Raspberry Pi 1上运行此功能,请使用[仅服务器](仅限服务器)功能并自行设置全屏浏览器。(是的,人们已经设法在Pi0上运行MM²,所以如果你坚持,请在论坛中搜索。)
请注意,您需要安装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
2.克隆存储库并检查主分支:git clone https:// github.com / MichMich / MagicMirror
3.进入存储库:cd MagicMirror /
4.安装并运行应用程序:npm install && npm start
对于** Server Only **使用:npm install && node serveronly
。
:警告:重要!
“npm install”的安装步骤需要很长时间 ,通常很少或没有终端响应!
对于RPi3,这是** ~10 **分钟,Rpi2 **〜25 **分钟。
不要打扰你,否则你可能会遇到:broken_heart:Raspberry Jam。
另请注意:
npm start
不能**通过SSH工作。但你可以使用DISPLAY =:0 nohup npm start&
代替。
这将启动远程显示器上的镜像。
如果你想在Raspberry Pi上进行调试,可以使用npm start dev
,它将启用MM并启用* Dev Tools *。
要在镜像模式下访问工具栏菜单,请按“ALT”键。
要从镜像模式切换(web)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
可以使用[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存储库]
配置
Raspberry Specific
以下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
具有模块配置属性的对象。有关更多信息,请查看模块的文档。除非模块需要额外配置,否则此字段是可选的。
模块
默认情况下安装以下模块。
[时钟 ](模块/默认/时钟)
[日历 ](模块/默认/日历)
[当前天气 ](模块/默认/当前天气)
[天气预报 ](模块/默认/天气预报)
[新闻Feed ](模块/默认/新闻源)
[赞美 ](模块/默认/赞美)
[Hello World ](modules / default / helloworld)
[Alert ](模块/默认/警报)
有关更多可用模块,请查看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报告和文档。
请记住以下几点:
错误报告 :确保您运行的是最新版本。如果问题仍然存在:请打开一个明确标题的明确记录的问题。
小错误修复 :请发送拉取请求,明确解释问题或解决问题的链接。
主要错误修复 :在开始更改代码的大部分内容之前,请在GitHub问题中讨论您的方法。
新功能 :在开始更改大部分代码之前,请在GitHub问题中进行讨论。如果没有前面的讨论,拉取请求将不会被接受/合并。
感谢您帮助MagicMirror²做得更好!
宣言
一份真正的宣言仍有待撰写。直到那时,迈克尔对[其中一个存储库问题]的回应给出了一个很好的总结:
“…我开始将这个项目作为Raspberry Pi爱好者的最终启动项目。事实上,对于大多数贡献者来说,MagicMirror项目是他们贡献的第一个开源项目。这是其中一个项目。 MagicMirror项目在几个RasPi杂志中出现的原因。
该项目有很多改进的机会。我们可以使用像Vue这样强大的框架来提高开发速度。我们可以使用SASS来实现更好/更简单的css。我们可以使它成为NPM可安装包。正如你所说,我们可以把它捆绑起来。这些变化的最大缺点是它使事情变得复杂:用户不再能够打开一个文件并进行小的修改,看看它是如何工作的。
当然,捆绑版本可以与常规的非捆绑版本互补。我相信很多(新)用户会选择捆绑版本。但这意味着那些用户不会被激励去偷看。他们将只是“用户”。他们不会成为贡献者,更糟糕的是:他们没有动力在软件开发中迈出第一步。
说实话:激励好奇的用户走出他们的舒适区并采取这些第一步是我在这个项目中的动力。因此,我的最终目标是让这个项目尽可能地保持可访问性。“
~Michael Teeuw