markushaug/homify

此包已被弃用,不再维护。未建议替代包。

模块化智能家居系统

安装: 142

依赖项: 0

建议者: 0

安全: 0

星标: 46

关注者: 8

分支: 13

公开问题: 0

类型:项目

v0.2 2019-01-23 16:03 UTC

This package is not auto-updated.

Last update: 2022-11-12 18:45:19 UTC


README

基于PHP (Laravel) 的开源智能家居平台。

68747470733a2f2f7472617669732d63692e6f72672f6d61726b7573686175672f686f6d6966792e7376673f6272616e63683d6d6173746572 68747470733a2f2f6170692e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f6361663932316432376564393462363862383231373932626439353266623632 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d372d677265656e2e7376673f7374796c653d666c6174 687474703a2f2f696d672e736869656c64732e696f2f62616467652f736f757263652d6d61726b7573686175672f686f6d6966792d677265656e2e7376673f7374796c653d666c6174 68747470733a2f2f706f7365722e707567782e6f72672f6d61726b7573686175672f686f6d6966792f646f776e6c6f616473 68747470733a2f2f706f7365722e707567782e6f72672f6d61726b7573686175672f686f6d6966792f762f737461626c65

Dashboard

目录

关于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

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)集成
  • 用于时间触发规则的任务计划程序作业

插件开发

每个插件都继承自实体类型(LightSwitchSpeaker等)。每个实体类型都继承自抽象实体类。因此,每个实体都有所需的函数。

如果您正在为Homify创建插件,您必须继承自实体类型。或者您创建一个额外的实体类型。每个实体都需要一个<Thing>.phpCreate<Thing>.php和一个Update<Thing>.php文件。您可以将现有的插件之一作为模板。

ThingClass

常见问题/联系/故障排除

如果在使用Homify或组件开发过程中遇到问题,请使用以下选项之一

  • 在右侧使用github的问题报告器,以便其他人也可以搜索这些问题
  • 给我发电子邮件 mh@haugmarkus.de (可能需要几天时间)

贡献

如果您愿意为此项目做出贡献,我将非常感激。如果您对此感兴趣,请随时联系我。我可以向您介绍程序的核心和主要概念。(中级)Laravel技能是可取的。

有关更多信息,请阅读我们的贡献指南

主页 haugmarkus.de  ·  GitHub @markushaug  ·  Twitter @markushaug