markushaug / homify
模块化智能家居系统
Requires
- php: >=7.0.0
- atnic/laravel-light-bootstrap-dashboard: ^0.2.1
- fideloper/proxy: ~3.3
- laravel/framework: 5.5.*
- laravel/tinker: ~1.0
- markushaug/homify-module-installer: 1.0
- nwidart/laravel-modules: ^2.6
- sqmk/phue: ^1.7
Requires (Dev)
- filp/whoops: ~2.0
- fzaninotto/faker: ~1.4
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~6.0
- reliese/laravel: ^0.0.13
This package is not auto-updated.
Last update: 2022-11-12 18:45:19 UTC
README
基于PHP (Laravel) 的开源智能家居平台。
目录
关于Homify
Homify采用模块化方法构建,因此可以轻松实现支持其他设备或操作。请参阅以下READ.me中的创建您自己的插件部分。
关键特性
- 通过GUI简单地管理您的物联网设备
- 立即查看您的设备是否在线
- 使用规则自动化您的家庭
- 安装插件
- Homify采用模块化方法构建,因此可以轻松实现支持其他设备或操作。
- 中央房间管理
- 房间平板视图
特色插件
设置
要安装和运行此应用程序,您需要在您的计算机上安装Composer和PHP7。
Composer
# Download & install Homify with its dependencies
$ composer create-project markushaug/homify
$ composer update
数据库
在.env文件中设置数据库和邮件设置,然后运行
# Creating tables and inserting their default values to them
$ php artisan migrate
$ php artisan db:seed
Web服务器
- 将Web服务器的webroot设置为public文件夹
- 授予homify文件夹权限。
- 如果应用程序遇到问题,请在homify目录内尝试以下命令:
chmod -R 777 storage。
- 如果应用程序遇到问题,请在homify目录内尝试以下命令:
PI用户注意事项
强烈推荐使用nginx或lighttp。Apache2在Raspberry PI上使用太多的CPU和RAM。
规则
Homify支持规则来自动化您的家庭。您可以通过Homify的Web界面创建规则。
特性
- 为同一件事定义多个规则。
每个规则通过逻辑或扩展各自项目的整个规则库。
IF <RULE1> === TRUE || <RULE2> === TRUE || ... ThingController每次触发事件时都会调用RuleParser,并在规则库中扫描定义的规则。- 时间控制事件被构建为一个cron作业,用于触发执行块。(尚未实现)
结构
每个规则具有以下结构
{
"rule": "rule name (unique)",
"if": {
/*<TRIGGER CONDITION>*/
},
"then": {
/*
<EXECUTION_BLOCK1>
*/
}
}
示例
以下是一个具有时间控制事件的规则的示例,该事件触发定义的实体的通道。
{
"rule": "goodEvening",
"if": {
"time": "20:00:00"
},
"then": {
"thing": {
"name": "Play1",
"channel": "off"
}
}
}
HTTP-API
Homify提供了一个http-api来访问您的实体。您可以使用以下HTTP-GET请求来访问您的实体
https://<server_ip>/thing/<thing_name>/<channel>
例如
https://10.10.3.1/thing/Sonos:Play1/on
即将推出
- 用于中央房间管理和设备管理的WebGUI
- 单间房间的平板电脑视图
- HAP-协议(HomeKit)集成
- 用于时间触发规则的任务计划程序作业
插件开发
每个插件都继承自实体类型(Light、Switch、Speaker等)。每个实体类型都继承自抽象实体类。因此,每个实体都有所需的函数。
如果您正在为Homify创建插件,您必须继承自实体类型。或者您创建一个额外的实体类型。每个实体都需要一个<Thing>.php、Create<Thing>.php和一个Update<Thing>.php文件。您可以将现有的插件之一作为模板。
常见问题/联系/故障排除
如果在使用Homify或组件开发过程中遇到问题,请使用以下选项之一
- 在右侧使用github的问题报告器,以便其他人也可以搜索这些问题
- 给我发电子邮件 mh@haugmarkus.de (可能需要几天时间)
贡献
如果您愿意为此项目做出贡献,我将非常感激。如果您对此感兴趣,请随时联系我。我可以向您介绍程序的核心和主要概念。(中级)Laravel技能是可取的。
有关更多信息,请阅读我们的贡献指南
主页 haugmarkus.de · GitHub @markushaug · Twitter @markushaug