我如何使用Node-RED自动化公寓的故事。第一部分

在过去的一年中,我为繁忙的道路旁的一间小公寓组装并设置了自动化设备。在本文中,我将讨论气候系统,照明,多媒体和软件中使用的解决方案。



我想做什么


  1. 在紧急情况下自动关闭水源。
  2. 着火时请关闭通风。
  3. 报告紧急情况。
  4. ( , , , ).
  5. (, ).
  6. .
  7. ( , , «» ).


有几种用于管理家庭自动化的基本系统。有付费解决方案和免费解决方案-都取决于平台。它可以是FPGA(可编程逻辑集成电路),路由器形式的控制器,也可以是软件。

最初,我将完成的FIBARO Home Center 2控制器视为主要集线器。尽管界面漂亮而且设置很多,但是硬件却很薄弱。根据评论判断,该固件有时会出现故障。其他类型的协议很难连接。

在免费选项中,我回顾了OpenHUB家庭助理。。 OpenHUB似乎加载太重并且难以扩展:例如,如果新的Z-Wave模块不在OpenHUB配置中,则很难添加它。 Home Assistant易于扩展,但是在集成时,只能用YAML编写自动化程序,这很难调试和维护。在Home Assistant中与Z-Wave的集成引起了疑问。因此,我选择了另一个免费的类似物,稍后再讨论。我选择

Node-RED作为后端解决方案,因为它提供了许多现成的,使用不同协议的集成,是免费的,并且允许您直接在浏览器中的JavaScript中编写自动化逻辑,而无需重新编译。有了它,就可以使用debug和inject调试脚本。

Node-RED脚本编辑窗口
Node-RED脚本编辑窗口

Node-RED在后台使用NodeJS,因此其余的绑定也都写在它上面。Node-RED只是各种协议的脚本编辑器和集成器。控件的前部(例如在Home Assistant中)丢失了。有几个插件可以通过浏览器控制设备,但是它们配置起来并不方便,并且还需要在浏览器中编写前端代码(node-red-dashboard)。

我系统中的每个流程都是自主的,并且不同流程之间的所有通信都是通过MQTT总线进行的我还可以将加载的Flow移到单独的服务器上进行分布式处理。

与终端设备的通信协议


我的公寓不是很大,特别是没有地方可以放置交换单元,因此我决定使用无线模块。

系统使用隐藏的控制继电器使物理按钮与插座保持在同一系列中。直接控制和中央控制器发生故障时都需要物理按钮。我在Z-Wave和ZigBee无线系统之间进行选择。

在系统集成时,Z-Wave技术拥有所需设备的最完整集合。在不同的国家/地区,Z-Wave使用不同的工作频率,在俄罗斯,您可以正式使用869 MHz的频率。自从我在俄罗斯购买了大多数传感器以来,我决定对整个系统使用官方频率。

除Z-Wave外,系统还使用BroadLink IR模块和Modbus TCP。

为了将Z-Wave集成到Node-RED中,我选择了OpenZWave C ++库node-red-contrib-openzwave事件处理Z-Wave 集成Modbus使用node-red-contrib-modbus,管理BroadLink- node-red-contrib-broadlink-control

Z-Wave事件处理




数据库


我选择MongoDB作为主要数据库:传感器和终端设备的当前读数都写入那里,它还存储了空调和多媒体的IR代码。

InfluxDB用作存储时间序列的基础。根据这些数据,您可以看到湿度,温度的图表,并进行任何分组。一个月的室外温度读数




前端


我决定自己编写前一部分,以实现最大的系统灵活性。使用仪表板时,使用两个辅助系统:

  • 基于伊蚊的 MQTT服务器;
  • 授权服务器。

授权服务器通过登录名和密码或通过属于本地网络来发出JWT令牌,此后,MQTT服务器每次为前端系统发送或接收消息时都会检查该令牌。

前端是用ReactJS编写的,并且WebSockets上的MQTT(MQTT.JS)被用作服务器通信协议。使用MobX作为状态。也使用TypeScript,并且所有这些都编译webpack。

该应用程序包含两个页面:Z-Wave设备的“

Dashboard
仪表板

Z-Wave-
管理”面板

在管理面板上,您可以添加和删除设备,配置其参数和关联。

FGD212
FGD212调光器设置

在“仪表板”页面上,您可以添加新页面并根据需要组合设备小部件。

从软件的角度来看,每个设备都是一个单独的模块,可通过接口(Typescript)输入到系统中。这样可以很容易地扩展和在仪表板上轻松集成新设备。

设备


作为控制器,我使用在其上部署了Ubuntu Server Intel NUC NUC7PJYH为了与Z-Wave网络通信,我选择了USB记忆棒Z-Wave.Me

作为智能家居的主要遥控器,使用了Android平板电脑,我在Alibaba.com上订购了该平板电脑平板电脑是从工厂直接购得的:带有Vesa支架,PoE电源和电源插头(非USB)。数位板由位于控制柜中DIN导轨上的12V电源供电。数位板中没有电池,以免出现持续充电的问题。

我根据规格订购了平板电脑。


遥控

气候系统


为了保持舒适的气候,系统使用:

  • 在三个区域中进行电地暖。
  • 居住区的空调。
  • 中央通风。
  • 加湿器。
  • 暖气。

通风


由于房子位于繁忙的高速公路旁,我根本不想打开窗户,因此我使用通风系统。

,
窗户上的黑尘大约在三个月内累积,

研究了不打开窗户就解决通风问题的不同方法,我列出了三个选项的简短清单:

  • 在每个房间安装通气孔。
  • 安装室外机并在外墙上布线。
  • 中央通风系统。

呼吸器被立即拒绝,因为必须将它们放在每个房间中,我认为它们对于正常的空气交换非常嘈杂。对我来说重要的条件之一是低噪音和快速通风的能力。使用通气孔时,带有过滤器和风扇的砖块直接悬挂在房间内的墙上,这会占用公寓中的额外空间。

许多安装人员都提供安装外部通风装置或向阳台安装电源的功能。但是我没有阳台,墙上的外部设备看起来很笨重。鉴于已经有两个空调机组挂在墙上,这样的设计就不会通过批准。因此,我选择了中央通风系统。

由于公寓的空间有限,并且不想降低整个公寓的天花板,因此流入量安装在降低天花板的走廊上,而输入则来自儿童房。


通风输入

使用金刚石钻在外壁上钻一个直径为160毫米的孔,并用外部格栅镀锌。进水管用K-flex绝缘材料绝缘。然后,管道沿着厨房的墙壁穿过,进入主通风单元。

Breezart 550 lux
Breezart 550 lux通风装置和可选过滤器

装置通风装置由Breezart选择。在选择时,我考虑了安装成本,尺寸以及连接到自动化系统的能力。该装置的最大容量为每小时550立方米:
该系统具有一个10速静音风扇和一个电空气加热器。入口处安装有机电阀,当设备关闭时,该阀会关闭,以免冷空气在公寓内走动。在电子方面,该装置提供了三个Modbus端口,温度传感器和压力传感器,以确定过滤器是否脏污。安装中包括一个粗滤器G4。


使用六个月后

的粗过滤器使用一年后,粗过滤器堵塞了70%,但根据CO 2传感器判断,通风不再以低速运转。直到12月20日-过滤器堵塞,12月20日之后-新的过滤器,速度相同

20  —  ,  20  —  ,


通风安装后,有一个细过滤器F7。对于我的情况,使用更精细的过滤器(例如HEPA),我认为这是不合适的:它们会迅速堵塞并且安装将无法推动它们。另外,制造商也不建议超过过滤器的压降,因为这会增加风扇的负载,并且过滤器上的污物可能会开始吹入房间。


在细过滤器之后,安装了两个机械空气流量调节器,然后是通向房间的几条SONODEC柔性空气导管。选择这种类型的风管,以免放置笨重的消声器,同时又淹没了设备的噪音。关闭天花板后,只能以走廊8的速度(每小时440立方米)开始听到通风系统的声音。通风口处有两个方向可调的格栅。 安装在


天花板上的通风系统通风


输出到其中一个房间

该套件的遥控器连接到一个Modbus端口,一个Modbus TCP HF2211服务器连接到第二个。

Modbus RTU — Modbus TCP converter HF2211
Modbus RTU-Modbus TCP转换器HF2211

该服务器一方面允许您通过Wi-Fi或以太网连接到内部网络,另一方面可以通过Modbus RTU设备连接。然后,可以在服务器上进行必要的设置,并已通过网络访问通风设备。每300毫秒轮询一次安装:检查错误和校验和,然后才允许将一些数据写入寄存器。与安装的通信通过node-red-contrib-modbus插件进行通过Modbus从通风装置接收和发送参数的方案通过Modbus从通风装置接收和发送参数 的厂商网站上有Modbus寄存器的详细参考信息一般说明

modbus


modbus


进行此安装,但是您需要检查控制器和固件的版本。通风装置由时间和CO 2 MH-Z19b传感器自动控制。流量通风自动化流量自动化通风 CO 2传感器是便携式的,在MH-Z19b传感器,两节18650电池,ESP32和IRF520 mosfet的基础上组装而成(用于在控制器睡眠时断开传感器的电源)。CO 2读数达到一个月的峰值,最高达到1800 PPM-来宾随后进行了更高转速的通风, 根据安装速度,设定了舒适的进气温度,从而加热了空气加热器。

Flow


Flow




CO₂  ,   1800 PPM —




在较高的速度下,需要较高的温度-否则会感觉到冷空气流。为了在冬天不消耗太多电,当温度在-7°C时较冷时,安装速度应限制在三档。在晚上,安装被限制为第四速度。如果没有人在家,系统将自动切换到第一速度。在命令“ Vacation”上是完全关闭。

休假后有预热模式,全速播放,并在计时器上转换为第一速度。如果系统具有CO 2传感器,则可以根据全局限制进行附加速度控制。

调理


该系统具有多个具有制冷和制热模式的空调。曾经有过放置中央空调的想法,但是所有系统都太大了,因此没有机会调节每个房间的温度。不幸的是,我的空调仅由IR控制。因此,我购买了Broadlink RM Mini3控制面板。

Broadlink RM Mini3
Broadlink RM Mini3

如果使用本机应用程序,则此远程服务器将连接到中文服务器,因此所有配置和管理命令均使用node-red-contrib-broadlink-control模块直接从Node-RED传输

由于我没有找到用于空调的清晰的IR代码,因此遥控器传输了整个状态(转速,模式,温度)-使用Broadlink将所有可能的加热和制冷状态从空调遥控器复制到数据库中。没有启用或禁用的干净命令。

但是我发现了如何使用空调定时开关机。我将它们设置10秒钟,然后将其复制到数据库中。现在,当打开时,首先发送通过计时器打开的命令,然后发送设置模式以及温度的命令。空调控制




该脚本检查外部天气,如果值可以接受(超过-7°C),则根据一天中的时间和室温打开空调进行加热或冷却。温度传感器每小时读取一次。

如果所有人都离开了房屋,空调将关闭。如果那里没有人,并且温度过高或过低,但加热电池尚未打开,则每小时进行15分钟的冷却或加热以保持室内气候。空调管理方案

空调管理方案


地暖


该系统具有三个用于地板电加热的电路。它们由三个HeatIt Z-Wave温控器控制

恒温器HeatIt
温控器HeatIt

温控器允许您为不同类型的加热元件配置不同的电阻参数,具有儿童保护功能,两种保存的加热模式以及其他次要设置。

在寒冷季节,地面温度比夏季高1°C。当家里没有人时,甚至在晚上都没有人时,为了节省能源,应关闭地板,并在早晨或有人回家时打开地板。在浴室中,地板会升高温度,如果打开灯,门就会关上,直到门关上并且湿度急剧上升为止,一直运动。一个小时后,地板将进入先前的状态或关闭(如果夜幕降临时)。

地板下控制方案
加热地板管理脚本加热地板管理脚本

地板下控制方案


暖气


由于莫斯科并不总是根据车窗外的温度随时关闭或调节供暖时间,因此决定在每个电池上放置一个Danfoss Living Connect温控器

温控器Danfoss Living Connect
温控器Danfoss Living Connect

该温控器使用Z-Wave协议由两根手指电池供电。自安装以来已经过去了一年,但电池尚未用完。最高设定温度为28°C。由于传感器位于电池旁边,并且未连接遥控器,因此有时会说谎。

在夏季,温度调节器始终处于“打开”位置,每两周一次完全关闭,以免库存变酸。当您在一周中第一次连接时,传感器已校准(由于电池定期关闭,这并没有真正令我的妻子满意),但此后一切正常。在供暖季节开始之前,检查两周的室外平均温度,如果温度低于10°C,则恒温器进入供暖模式。如果室内温度高于舒适温度,则恒温器会降低温度或完全关闭电池。

加湿器


为了加湿公寓中的空气,考虑使用中央加湿器。有两种主要类型:蒸汽和传统。蒸汽加湿器需要大量电力才能不断加热水。两种类型的加湿器都会将大量的水排入排水管,以免水溢出。有必要进行计算,以防止管道起霜和流动。还值得考虑的是中央加湿器价格昂贵并且占用大量空间。

我决定在每个房间使用超声波加湿器。它们会迅速提高湿度,但是需要纯净水,最好是在反渗透之后。湿度可以在加湿器上设置,也可以使用IR进行控制。


接口操作的示例

在本文的第二部分中,我将讨论照明,多媒体系统和安全传感器,并总结该系统的长期使用。

All Articles