智能“公寓”

大家好! 最后,公寓的大修已经结束,在这方面,我想与您分享实施的智能公寓项目,该项目具有控制照明,加热地板下供暖,控制室温和湿度以及其他优点的基本功能。 描述性部分将以手册的形式制作(更易于陈述或其他内容)。

图片

配套设备


考虑到以下事实:我原则上希望将所有自动化组装到执行器和控制设备的现成的,但预算决定中,因此(一个人)做出了一个一致的决定,以使用以下设备清单:

管理服务器-Raspberry Pi 3 + OpenHAB 2-1pc(3000 rub。)
多功能控制器-MegaD-2561-1pc(3480擦。)
具有14个继电器输出的执行单元-MegaD-14-R-1个(4480卢布)
温湿度传感器DHT22(AM2303)-4个(1960擦)
温度传感器1-Wire DS18B20防水-2个(180擦)
电源12V DR-60-12-1pc(1420擦。)
Dsen-Box传感器的外壳-4个(1000擦)
用于管理和显示参数的平板电脑-已经存在(3000-10000r。)
大多数列表可以在ALI上购买。

介绍性


自动化系统运行的基本原理之一是不间断运行和功能冗余。 就是说,即使所有的低电流自动化都被烧死了,我们也不应失去控制照明和其他重要的执行设备的功能。 因此,照明控制解决方案将在所谓的“步行系统”上实施。 房间中的开关将通过漫游,第二个开关的作用将由MegaD-14-R执行单元中的继电器承担。 当然,前提是卷轴本身不会烧坏,如果自动化单元发生故障,我们也不会失去功能。 因此,通过所有2通和2键的Legrand Etika交换机安装在所有房间中(与Valenoy相比,它们看上去不错)。

连接方式


DHT22温度和湿度传感器安装在Dsen-Box机柜中,距离每个房间的地面约2米。 不要忘记对公寓进行了大修,并且所有电线都从屏蔽层到传感器和设备的位置都经过精心布置。
电缆几乎被SFTP 4x2x0.5屏蔽了。 DS18B20温度传感器是在安装地暖时安装的。

图片

图片

图片

我们将MegaD设备安装在仪表板上,将它们与34pin本地电缆配对,然后连接到以太网。 我们以192.168.0.14/sec的速度进入Web界面。 在“配置”部分中,设置所需的地址或将其保留为默认值,请确保指定Openhab服务器的地址(我们稍后将在树莓派上部署Openhab映像或立即将其写入并在树莓派上进行更改时会发现)。 我们根据同一条线连接开关中的所有传感器和电线。
图片

图片

在MegaD设备的端口设置中,设置类型(OUT-如果是继电器,IN或Dsen-如果传感器输入)。 如果您在连接的传感器的端口上指示正确的类型,那么我们将立即看到当前读数。
图片

伺服器


我们收集服务器。 覆盆子的外壳由有故障的电源制成,可方便地安装在DIN导轨上(当然,有一种特殊情况,但这与我们无关))。 不要忘记自然地插入USB闪存驱动器和以太网电缆。 为了避免安装麻烦 ,我决定下载完整的OpenHabian映像-在那里详细描述了安装和配置服务器的整个过程,并归结为将映像部署到USB闪存驱动器,启动树莓派并等待15-45分钟。 (是),在第一个配置中。 OpenHab准备好了!

如果我们不想更改服务器配置中的任何内容(有关如何打开设置的详细信息,请参见openhab.org),请连接到Openhab openhabianpi :8080,选择Paper UI图形界面,然后开始雕刻所需的一切。

图片

客制化


绑定


首先,您需要连接OH服务器(openhab)和MegaD。 使用设备定义的协议和规则将服务器上的设备集成到现成的文件中,即所谓的“绑定”。 下载MegaD设备的最新绑定。 我们将其拖放到服务器上的/ srv / openhab2-addons文件夹中(可以使用WinSCP),因此我们将在“绑定”纸张UI中看到此绑定。

此外,在“收件箱”中,我们创建了桥接MegaD传入服务器适配器,它就像服务器与设备之间的虚拟通信桥一样。 我们写下所需的端口(服务器地址和端口必须在MegaD设备本身的“ Config”中注册)。

图片

东西


创建桥之后,我们也在“收件箱”部分中创建“ MegaD绑定物”。 单独的“事物”-这是在服务器上定义特定物理设备(传感器或继电器)的方式,我们将在创建的网桥的帮助下与之交互。 在其中,我们特别规定了MegaD设备的IP地址,访问密码和设备端口(这是连接传感器的输入端口或用于设备控制的输出端口)。
为了方便按位置分配,在“位置”字段中指示位置-大厅,厨房...创建这些“事物”后,它们将出现在“配置/事物”中。 我们进入创建的“事物”,然后单击所需的类型(我们必须在MegaD设备的端口设置中指定它),将其附加到“项目”,从而创建新的“创建新项目”。

图片

物品


在服务器上和图形界面中,分别获取“项目”-这是一个元素,用作控制按钮或从传感器和其他功能输出数据。

“名称”字段应为连续的拉丁字母,但“标签”称为我们想要的。 在“项目”设置中,您需要指定类型(如果是继电器,则-SWITCH,如果是传感器,则-NUMBER,依此类推。

如果我们想将某些Item组合成组(这对于在移动应用程序中或使用Basic UI界面方便分发和查看来说是最必要的),则在“ Group”字段中指示所需的组,必须首先在“ Items”部分中创建指定“组”的类型。 完成这些操作后,我们将在Paper UI的“控件”部分中看到非常创建的“项目”,如果一切正确完成,则在单击“开关”类型的创建的“项目”时,将单击连接的设备(MegaD继电器)。

我们对所有开关和传感器执行类似的操作,正确命名它们并进行设置。

图片

用户界面


现在,所有这些当然都可以很好地工作,但并不美观且不舒服。

我们拿起平板电脑,通过openhabianpi浏览器:8080,选择Habpanel GUI并开始自定义以满足您的需求。

单击右上角的设置齿轮,单击“高级设置”,然后在设置的左侧进行必要的设置(主题,名称...),稍后在创建完成的界面后,将其保存为“将当前配置保存到新的面板配置” 。

我们从设置返回,使用滑块在界面中选择所需的瓷砖列数,然后单击“添加新的仪表板”。 在磁贴设置中,指定配色方案并显示图标。 使用这些磁贴,我们将确定设备的位置或组(例如,在我的情况下,这些是房间)。

接下来,在创建位置之后,通过单击图块转到该位置,然后在图块名称旁边的顶部单击铅笔,然后将其排列在“项目”系统中创建的图块。 点击右上角的“添加新的小部件”。 选择所需的图块类型(将鼠标悬停在光标上时,将出现提示)“ Switch”(如果是开关),“ Dummy”(如果是传感器...等)。 在创建的图块的设置中,我们将其绑定到现有的“项目”系统并配置显示-图标,颜色,大小...创建所有必要的“项目”图块后,单击左上角的“运行”,从而保存设置并启动显示模式。 这就是我们为自己创建Habpanel界面的方式。 配置完成后,如果是在Chrome中完成的,那么从浏览器设置中将Habpanel页面添加到平板电脑的桌面非常方便。

图片

图片

规则


规则(规则)-用于实现单个设备的功能或多个设备之间的交互逻辑的相同规则(脚本)。

我们实现了浴室内抽油烟机的自动控制。

为此,我们必须在系统中创建一个虚拟的“编号”类型的“项目”,在其中记录所需的湿度水平值。 另一个“开关”类型的“项目”触发自动湿度控制。 好吧,实际上是规则本身,它将处理从浴室中的传感器获得的湿度值,并检查我们设置的设定值并控制引擎盖。

要创建规则,我们需要在服务器/ etc / openhab2 / rules的文件夹中创建一个扩展名为.rules的文件,其中包含javascript内容。 这是内容的示例:

Auto_air.rules
规则“ Auto_air”
什么时候
项目Hum_H_T_sens已收到更新
然后
如果
(Hum_H_T_sens.state> Set_hum.state && Air_H_T_switch.state == OFF && Set_auto_air.state == ON){
Air_H_T_switch.sendCommand(开启)
}
别的
如果
(Hum_H_T_sens.state <Set_hum.state && Air_H_T_switch.state == ON && Set_auto_air.state == ON){
Air_H_T_switch.sendCommand(关闭)
}
结束

好吧,实际上,您需要在Habpanel的仪表板屏幕上显示创建的“ Item-s”。 对于湿度级别的“项目”设置,应用“滑块”类型。

图表


该系统的另一个不错的功能是将数据统计收集到数据库中并以图形显示。

创建图形! 首先,您需要配置数据库。

默认情况下,OpenHab提供与Rrd4j数据库一起使用的功能,但是我无法正常配置它。 因此,我开始使用MySQL(某种程度上更熟悉)。

要使用数据库,您必须在系统中安装插件。 在Paper UI的“附加组件”选项卡的“持久性”部分中,选择“ MySQL持久性(安装)”。

我们创建的基础现在正在配置。

为此,我们必须在服务器上的文件夹中创建一个文件(如果缺少):/etc/openhab2/persistence/mysql.persist,在其中必须指定数据收集策略(例如每小时,每天,每周...),并指定“ ”关于将存储哪种策略。 例如,这里是内容:

mysql.persist
//持久性策略具有名称和定义,在“项目”部分中进行了引用
策略{
//如果未为以下项目指定策略,则将使用默认列表
everyMinute:“ 0 * * * *?”
每5分钟:“ 0 * / 5 * * *?”
everyHour:“ 0 0 * * *?”
每天:“ 0 0 0 * *?”
默认值= everyChange
}

/ *
*本节中的每一行均确定应针对哪些商品和策略进行应用。
*您可以列出单个项目,对所有项目使用“ *”,对于组中的所有成员使用“ groupitem *”
*项目(不包括组项目本身)。
* /

物品{
//每天保存一次所有元素,并在每次更改时从启动时从数据库中还原它们
// *:strategy = everyChange,everyDay,restoreOnStartup

//此外,每小时还会保存所有温度和天气值
Weather_Temperature,Temp_H_LR_sens,Temp_H_BR_sens,Temp_H_T_sens,Temp_H_KT_sens,TP_H_H_sens,TP_H_KT_sens,Weather_Humidity,Hum_H_LR_sens,Hum_H_BR_sens,Hum_H_T_sens,Hum_H_KT_sens:战略= everyMinute,restoreOnStartup
}

创建文件后,系统将已经开始收集数据。 我们需要配置Habpanel仪表板以显示图形。

我们返回到Habpanel GUI,转到所需的位置,然后通过选择“图表”类型添加新的小部件。 根据需要调用,在“类型”中选择“ n3-line-chart(交互式)”,在“服务提供者”中-mysql,在“期间”中显示一天(D)。 在“系列”标签中-我们附上所需的“项目”。 瞧! 我们有一个美丽的时间表!

图片

好吧,那么纯正的主动权-我们将平板电脑安装在墙上! O_o,为此,我拿了两张em-marin格式的磁卡(非常薄的磁卡),并在卡的边缘上粘了两个钕磁铁(Uhu)。 我们将此类带有磁铁的平台附着到平板电脑背面和墙上的双面胶带(厚度很薄)上。 顺便说一下,预先在插座中安装了带有microUSB电缆的MeanWell 5V电源。 平板电脑在墙上!

图片

对于材料介绍的特殊性,我深表歉意(我以前从未写过类似的东西)。 如果该帖子至少会受欢迎,那么在下面,我将描述设置移动应用程序的功能。 我希望它派上用场。 所有智能家居)))

Source: https://habr.com/ru/post/zh-CN409179/


All Articles