本文是先前提出
的乡间别墅
监视系统主题的逻辑延续。 对于尚未阅读上一篇文章的人,本文中的某些想法可能看起来很奇怪。 让我提醒您:已经在设计和选择基本组件的过程中,很明显,对乡间别墅系统工作的监视不会结束,您不仅需要监视,还需要建立智能房屋的基础。 现在让我们看看事件是如何发展的。 和以前一样,我不会提供程序的完整清单或详细的图表。 我的任务是展示思路,并可能发起讨论。

您想从智能家居中得到什么?
首先,您需要了解,但在智能家居中什么才是真正的智能。 这不是关于任何规范的定义,而是关于您手中拥有如此强大的工具集时
想到的事情 ,如上一篇文章中所述:
openHAB + Arduino / nFR24L01 +。 我得到以下主要“愿望清单”列表:
- 学会根据房屋和街道上的温度来控制电锅炉的功率,甚至在考虑天气预报的情况下更好。 在此之前,锅炉功率只能通过锅炉本身的机械开关来设置,并且锅炉的运行在网络负载和由于阳光导致的节能方面都不是最佳的( 请参见此处 )。
- 不包括手动操作开/关泵(供水,DHW再循环),加热的毛巾架,散热器恒温器等。 到达/离开时。 好了,当然,请查看这些设备的状态。
- 学会根据一天和一年中的时间,屋主在场的情况以及其他一些因素来打开和关闭灯,喷泉和其他设备。 用一种更为笼统的方式-对常规控制的设备进行算法控制和自动化控制,以排除传统开关的单调咔嗒声,尤其是在黑暗中。 一切都应该自动打开和关闭。
- 使用节省能源的算法。 例如,长时间打开锅炉的第一阶段将使其比从返回管线的温度定期打开/关闭的2-3个阶段从太阳接收更多的能量成为可能。 即 通过更周到的负载可以节省能源。
- 此时诞生的监视和控制系统足以实现这些需求中的一部分。 例如,已经可以分步控制锅炉,但是尚不清楚哪种算法,要考虑到用电量的限制,要考虑到供暖和准备热水的优先级之间的平衡。 此外,该系统的第一个版本不包括所有必需的执行器,例如,没有泵控制装置,并且房屋中的所有照明都不是自动化的。 还有其他特定要求,例如“使图片突出显示”。 此外,该请求本身被转换为“根据一天中的时间,照明和其他因素自动打开和关闭图片的背光灯”。
总计:有可扩展的基础,有目标。 我们分析缺少哪些数据。 首先,电气参数不足,至少不能满足以下条件:房屋的电流消耗,从太阳获得的电力。 其次,天气预报不足。 另外,没有足够的紧凑型致动器。 我注意到,上一篇文章中描述的带有执行器(继电器)的终端控制器都是多功能的,并且不是很紧凑。 除了自制。 例如,某些设备本身在暖气片上执行恒温控制头,完全没有意义,您需要购买它们。
接收电参数
因此,我们从电气参数开始。 首先想到的是基于霍尔效应放置电流传感器,已经有一个220V的传感器,可以用来测量面板和电池上的电压。 一切都可以在单独的传感器上完成。 但是,所有这些测量都已经由基于
Xantrex逆变器和
MPPT控制器的发电厂完成。 我们记得,这些设备被组合到专有的Xanbus总线中,该总线是通过Modbus协议进行设备交互的传输方式。 对她来说,还有一个特殊的TCP-Modbus网关
Conext ComBox ,它使您可以在本地网络上读取和设置系统参数。 这就是您所需要的! 反过来,对于openHAB,有一个特殊的绑定TCP-Modbus,它仍然可以连接和配置。 因此,已经购买了网关,已经研究了文档,连接并配置了与openHAB的绑定,定义了项目,编写了基本规则。 结果,以下参数开始到达智能家居:网络和发电机输入上的电压,逆变器输出上的电压,负载电流,W和VA上的负载功率,太阳能电池板和电池上的电压,MPPT控制器输入和输出上的电流,电流电池电量,给定的太阳能接收的功率,给系统的收集的太阳能量,并返回给网络。 甚至可以读取电池的温度,这有助于避免过热。
参与openHAB的开发在调试期间,在TCP-Modbus网关的功能中检测到错误。 通过论坛,openHAB进入了开发人员以及其他测试人员。 结果,绑定已经完成了多次迭代,并且已经工作了两年多。
TCP-Modbus网关,用于读取连接到Xanbus网络的Shneider Electric(Xantrex)设备的参数。接收天气预报
下一个 您可以通过多种方式获得天气预报,例如,注册提供商。

但是,还有一种更明显的方法:直接从气象站点获取天气预报数据,例如yandex.ru/pogoda。 为此,我用C语言编写了一个实用程序,该实用程序使用
curl库将HTML页面保存到文件中。 在HTTP请求中,该实用程序向站点发送房屋的坐标。 使用数十个参数从文件中解析并提取结果文件:温度,日出和日落时间,夜间温度预报,风向和强度。 智能家居算法使用夜间温度,日落时间的预测。 其余数据仅在界面中显示信息丰富。 在openHAB中,数据由同一实用程序通过openHAB支持的便捷REST API进行传输。 反过来,每隔4个小时使用openHAB的常规工具启动C实用程序本身。 因此,一切都非常简单,主要的困难是开发一种用于解析保存的HTML页面的算法。 但是我的文章并非如此。
在图中-智能房屋的屏幕,其中包含从yandex.ru/pogoda的房屋坐标获取的天气数据自动化常规设备管理

就在获取天气预报时,一位朋友向我展示了WiFi控制的继电器以及一整个带有3个继电器和3对
USR IOT插座的电源延长线。 到现在,我已经有点掌握了openHAB,并且激动不已地开始开发新设备并将其集成到智能家居中。 继电器被定义为控制钻孔泵,而延长线位于谷仓中,用于控制池塘的照明,喷泉和谷仓中的照明。 对于USR设备,IOT在网络上找到了描述控制协议的文档,但是我仍然不得不使用
Wireshark监听网络流量。 结果,我学会了生成控制命令并解析设备的响应。 为了控制继电器,我用C语言编写了一个程序,该程序由openHAB的规则调用,然后使用TCP绑定openHAB直接连接了延长线。
在右边的照片中,带有无线网络控制插座的USRIOT延长线。仍然需要编写规则:
- 打开井下泵。 撤防房屋时,请打开泵;撤防时,请关闭泵。 这很简单,因为系统在“监视”阶段学会了从警报中读取保护状态。 并且此参数在许多规则中进一步使用。 为此,通常通过例如蓝牙标签,通过在本地网络上注册移动设备等来检测房屋中的存在。 但是,这些方法不是很稳定,在严格的规则中不希望使用。
- 打开池塘里的喷泉。 我曾经使用电子计时器,但是它们经常烧坏,并且不知道房主在房子里的身影。 现在,自动化的“新时代”已经打开。 如果房屋被撤防,街道温度(我们在“监控”阶段已学会如何测量)至少5度(冬天不需要喷泉)且时间为08:00,则喷泉会打开。 喷泉总是在23:00关闭。 即 规则有点“不对称”,非常方便。
- 池塘背光灯亮。 我必须说,背光灯本身是由于希望自动打开背光灯而出现的。 撤防房屋时,街道上的照明低于设置中指定的参数时以及在主屋或旅馆的门廊上移动时,背光灯都会亮起。 即 在主人想见她之前不会亮起。 用于控制的所有参数均出现在“监视”阶段。 始终在01:00关闭。
- 打开谷仓里的灯。 这是最有趣的规则。 如果房屋被撤防,照明水平低于预定阈值,空气温度低于15度以及检测到门廊上的移动,则灯会亮起。 5分钟后关闭,在门廊上反复移动,燃烧时间延长5分钟。 一切都只能通过常规的openHAB工具来实现。 问题是:为什么在规则中使用温度? 很简单:壁炉的柴火存放在谷仓中。 如果晚上天气凉爽,我走到门廊上,然后可能在木柴后面:),最好是在棚子里燃烧光。
需要注意的是,在所有规则中,设备都会自动打开和关闭。 但是同时,可以通过openHAB界面手动控制它们。 所描述的USR IOT设备的外壳上还具有物理控制按钮,因此了解如何读取设备状态非常重要。 更新所有执行器和传感器状态的一种方法是通过定时器(例如,每15分钟)从openHAB轮询它们。 此外,对于自制设备,必须在控制按钮/开关的状态更改时发送状态。
让我们返回上一步。 最初的任务是学习如何灵活地控制供暖,以使房屋温暖,总有热水,并且您不必定期去锅炉房来调节锅炉的运行。 并且在这种情况下,为了最大程度地减少由于启动负载限制继电器而关闭锅炉的可能性,该继电器安装在面板上,并通过断开包括锅炉和锅炉在内的非优先负载来限制电流消耗。 同时,在第一阶段,锅炉加热器关闭5分钟,如果这样做没有帮助,则锅炉也将关闭10分钟(第二阶段)。 让我提醒您,家里的消费是有限的,屋子里的所有东西都是电,没有汽油,因此您必须监控消费情况。 最好最大程度地利用太阳的能量。 以下是一些由此产生的规则。
第一组。 房屋撤防:
- 每隔20分钟检查一次房屋的温度,如果温度低于预定温度(22度),则增加一级锅炉功率。 但是,如果未超过负载电流的阈值(例如,在25.6 A时),请执行此操作。如果温度高于设定值,则每20分钟关闭锅炉一级,仅保留第一级。 结果,我们获得了加热系统的平稳“加速”,并保护自己免受由于超负荷而导致的完全关闭。 通常的逻辑是这样的:如果强大的用电者在房屋中工作,例如炉子,水壶,微波炉甚至是吸尘器,那么他们消耗的能量最终会转化为房屋中剩余的热量,为什么不追逐锅炉以使其满负荷运转。 最好让锅炉在第一阶段工作,但由于负载限制继电器,不能关闭10分钟。
- 如果锅炉中的热水温度低于35度,请打开锅炉和加热器的第一级。 如果水温超过35度,并且房屋中的空气温度高于设定的温度(23度),请关闭锅炉的第一级。 如果水温高于37度-请关闭加热器。 此外,仅当负载电流不超过25.6A时,才应包括所有夹杂物。 否则,负载限制继电器将起作用,并且在10分钟内根本无法打开任何负载。 更新热水温度传感器的读数时,请进行所有检查。 该规则确保热水的可用性,快速加热且能耗最小。
- 如果太阳能回路中的冷却液温度高于热水温度(后者高于35度),请关闭加热器的加热器。 因此,可以节省电力并且不会没有热水。
- 如果房屋温度超过设定温度(23度),并且热水温度超过35度,请完全关闭锅炉。 否则,将会消耗过多的电力,并且锅炉的自动化通常会通过回水管路中的温度将其关闭。
- 如果锅炉加热元件上没有电压,尽管它是从智能家居中打开的,则负载继电器的第一级已跳闸。 如果限制锅炉的功率,则可以避免关闭锅炉。 关闭第二步和第三步。 然后,如果需要,他们将根据其他规则打开自己。 同样,我们检查锅炉的电源电压。 如果消失,则负载继电器的第二级跳闸,我们仅离开锅炉的第一级,关闭所有其他设备,包括锅炉加热器; 它们将在以后被其他规则包括在内。 这样做是为了减少负载继电器重复运行的可能性,并确保热量最大且均匀地流入房屋。
第二组。 这房子是守卫的。
- 如果室外温度低于零下8度,请打开锅炉的第二级。 (自从安装了通用GSM控制器以来,第一个自动打开, 请参见此处的第一个窗口 )。 如果室外温度低于-15度,请打开锅炉的第三级。 这确保了加热系统的最佳运行,同时保持了房屋内给定的经济温度。 当街道温度升高时,台阶将顺序关闭。 该规则使您可以使锅炉工作更加统一和高效。
- 如果街道上光线充足,则应预防性地打开锅炉的电源,而无需等待自动设备保持经济的温度(8度)。 如果温度达到计算值,则将锅炉设置回自动模式。 通过经验公式计算得出的值,该公式使用过去一天的夜间最低温度和夜间温度的预测值。 此外,如果从太阳接收的电力降至500瓦以下,锅炉将返回自动模式。 该指标在每分钟执行的规则的多次遍历中得到平滑处理。 结果,该规则可以节省电力:由于给房屋供暖,锅炉在黑暗中的工作量将减少,并且从网络中消耗的能量也将减少。
openHAB Designer开发环境的屏幕截图,其中包含供暖和生活热水两个规则。初步结果:
- 设定的目标完全没有尘埃。 大部分劳动不是与设备有关,而是与编程有关。 从这种编程中,大部分都涉及到openHAB中规则的开发和调试。
- 在智能家居开发的早期阶段,押注“与技术无关”的解决方案是合理的。 上述规则使用从Arduino上的自制控制器接收的数据,这些数据是从Internet上从购买的TCP-Modbus网关接收的,即 来自完全不同的来源。 通过TCP / IP添加了设备管理。 所有这些都是从openHAB协调而来的。 但是,当然,使用此openHAB会成为单点故障。 这就是为什么在openHAB下使用Linux作为操作系统是正确的。 因此,随着时间的流逝,我不得不从通过WiFi将服务器连接到LAN到普通电线上转移。 尽管整个房屋都有冗余电源,但我还必须提供单独的UPS。 好吧,总而言之,我不得不将小米WiFi控制的插座放在服务器的电源上,将其连接到单独的WiFi网络,这是服务器死机时的最后一个参数。
- 人们已经意识到,物联网和智能家居确实为新的生活质量打开了视野。 真正提高了舒适度。 确实,有节省。 最后,兴奋出现了,导致了新设备的连接和新集成技术的使用。 再次带来额外的舒适感。
在下一篇文章中,我将告诉您兴奋的结果以及智能家居的发展。