空调IT。 第二部分

在这一部分中,我将告诉您使用WiFi <=> IR网关“简单” 集成空调 (以及通常几乎所有通过IR控制的设备)的选项。

为了使其更有趣,我选择了一个流行的网关(顺便说一下,Yandex将其用于她的Alice)。 您可以在Ali上购买一个,价格约为1200卢布(Yandex较贵)。

该设备非常紧凑(很容易放在您的手掌中),在可见的器官中有一个小的不显眼的蓝色LED和一个用于配对的按钮。 其他所有物品都隐藏在黑色红外透明盒的后面。 您可以使用任何可用的USB端口(电源,计算机等)作为电源。 网关使用microUSB电缆(随附或以任何方便的方式)连接到网关。

该设备的独特之处在于它基于esp8266“众所周知的狭窄圆圈”构建,这意味着它可以很容易地“驯服”。

选项“最小”


更换设备之前,我尝试在正常模式下使用它:我在电话上安装了TuyaSmart应用程序(有适用于Android和iPhone的版本),然后一切都很简单:

  • 在应用程序中注册,
  • 我们将通过一个小向导来连接新设备(为此,必须将网关连接到电源,并使用单个按钮将其进入“配对”模式,
  • 网关出现在应用程序中之后,我们创建一个新的“控制面板”-另一个小向导,您可以在其中选择设备的类型(在我的情况下是-空调),然后选择制造商(应用程序中没有伊莱克斯,但在选择美的时效果很好)。 我们马上想出新控制台的“名称”(我选择了“怀特先生”)。

仅此而已。 之后,手机上将显示以下遥控器:

使用它,您可以控制基本的基本功能:

  • 开/关
  • 温度设定
  • 选择运行模式(“自动”,“冷却”,“加热”,“风扇”),
  • 风扇速度选择(“自动”,“低”,“中”,“高”)。

通常,已经可以将其用于远程控制,但是“智能家居”和集成在哪里?

由于这是一种简单的方法,因此对于智能家居来说是不好的,但通过集成它会更好一些。

最初没有“美中不足”-没有与Apple HomeKit集成,因此Siri尚不可用,但是与其他竞争平台相比,一切都更加有趣:

  • 对于Amazon Alexa-有Tuya Smart技能。 激活它并在您的帐户中指示您的帐户就足够了,您在应用程序注册期间输入了该帐户-您可以语音控制空调。
  • 同样,您可以将Tuya Smart连接到Google Assistant。

在这两种情况下,均不支持俄语,但是可以轻松,轻松地控制语音。 我发现以下命令:
-Alexa,打开怀特先生
-嘿,Google,将怀特先生设置为24度
-Alexa,关闭怀特先生

让我提醒您,我已经使用Amazon Echo Dot和Google Home Mini实施了语音控制-两种设备的工作团队相同。

顺便说一句,您可以控制哪种语音命令来控制操作模式和空气流量-我没有找到。 如果有人告诉我,我将不胜感激。

然后与UD进行“半自动”集成:当房间中的温度升高到阈值以上时-UD控制器发送一条消息,要求打开空调,然后我使用TuyaSmart应用程序以所需的模式远程打开空调。

当然,解决方案是“马马虎虎”,但至少可以以某种方式使用它。

但这不是我们的方式-我们继续:

绝地之路


尸检和准备


可以选择不打开设备而使设备闪烁, 此处介绍该方法。

在我看来,这种方法不必要地复杂(动作很多,当固件仅需要4根导线进行焊接时),并且内部看起来很有趣。

不幸的是,在这个过程中,我被带走了,忘了拍照,所以我要给别人看照片:


在这里可以看到更多照片。

该照片清楚地表明使用了TYWE3S模块( 数据表在Google中非常简单)。

现在,您需要刷新模块。 原始固件被覆盖,无法还原。

固件的完成非常简单:我们采用Arduino环境(或Atom或其他产品-根据您的喜好选择)。 将带有Tasmota固件的草图下载到开发环境中 。 然后,我们通过任何USB串行连接TYWE3S RX,TX,GND,VCC模块(不要混用-您需要3.3V电源和相应的信号电平,如果有5V,则必须订购新的网关)。 在通电之前,请不要忘记将模块的GPIO0(以任何方便的方式)接地,从而使模块进入固件模式。 固件。

不需要配置固件-一切都可以“按原样”保留在代码中,我们只需要“驯服”模块即可。

如果一切都正确完成(当然,在断开固件连接线之后),请打开网关。 在您的手机或计算机上,打开对WiFi网络的搜索-应该会出现一个新网络,名称为sonoff-xxxx(其中xxxx是数字),我们的设备会使用该网络。

我们连接到该网络并转到地址: 192.168.4.1-这是网关的Web界面。

首先,在网关设置中,指定家庭WiFi网络和密码(设备将重新启动并连接到家庭网络)。 此外,所有操作都更容易在其中完成。 自然,您需要以任何方便的方式找出家庭网络中网关收到的地址。

我们转到有关Tasmota固件版本页面 。 下载两个文件-sonoff-minimal.bin和sonoff-ir.bin

现在,使用网关的Web界面,我们分两个阶段更新固件-首先缝制“最低”版本,第二步是sonoff-ir。

完成所有这些简单的操作后,我们将拥有一个具有当前固件版本的模块,仅需按以下步骤对其进行配置:



实际上,这是最低限度的必需配置-在上述示例中,我们将使用GET请求与模块进行交互(尽管也可以通过MQTT进行交互)。

您可以检查模块的操作,同时在其控制台中找到有用的内容(可从Web界面的主页上找到其链接)。 打开控制台,查看模块如何“运行”。

现在您可以开始学习空调控制界面。 为此,请从空调中拿起标准遥控器,然后按电源按钮。 如果一切顺利,则显示以下行:

19:24:09 MQT: tele/IRbridge/RESULT = {"IrReceived":{"Protocol":"COOLIX","Bits":24,"Data":"0xB29F70","DataLSB":"0x4DF90E","Repeat":0,"IRHVAC":{"Vendor":"COOLIX","Model":-1,"Power":"on","Mode":"cool","Celsius":"on","Temp":22,"FanSpeed":"min","SwingV":"off","SwingH":"off","Quiet":"off","Turbo":"off","Econo":"off","Light":"on","Filter":"off","Clean":"on","Beep":"off","Sleep":-1}}} 

模块从遥控器接收并“解析”了IR命令。 即 从控制台上可以立即看到常规空调使用哪种协议(在我的情况下为COOLIX)以及包装中编码了哪些参数。

太好了,现在您已经可以控制空调了。 为了有意义地执行此操作,最好使自己熟悉命令的描述。

要通过网关控制台进行检查,我们将发送以下命令(例如,我将提供空调的所有命令,您可能具有不同的控制协议):

 IRhvac{"Protocol":"COOLIX","Power":"On","Mode":"Cool","FanSpeed":"min","Temp":22} 

奇迹般地,空调立即以所需模式打开。 奇迹!

使用以下命令关闭空调:

 IRhvac{"Protocol":"COOLIX","Power":"Off"} 

通常,模块已准备好并经过测试。

进行整合!

空调+ Domoticz =永远的友谊!


我将Domoticz用作主要的自动化系统,因此我们将与该特定系统成为“朋友”。

工作计划如下:

  1. 创建多个虚拟设备:一个开关,两个选择器(用于选择模式和空气流速)和一个恒温器。
  2. 添加一些脚本,这些脚本通过虚拟设备的操作将命令发送到网关。
  3. 验证所有内容均按应有的方式进行管理。

虚拟设备


创建设备时,必须指定其名称。 我带来了我,您可以选择其他任何人,只是记得稍后要为他们修复脚本。

创建一个名称为“ HVAC”的常规开关(键入“ Switch”)。 此开关将用于打开/关闭一个按钮。

要选择空调的运行模式,请添加具有以下特征的虚拟开关“ HVAC-Mode”(类型“选择器开关”):


请注意,这里我仅创建了两种模式-“加热”和“冷却”。 尽管空调仍然具有“自动”和“风扇”模式,但它们对我来说毫无用处-第一个对家庭而言有些奇怪且不舒服,而第二个根本就不需要。 如果使用这些模式,则只需将它们添加到选择器中。

同样,创建“ HVAC-FanSpeed”选择器:


现在只剩下创建HVAC-Temp温控器了(设备类型为Thermostat Setpoint)。

剧本


我在某种程度上更接近Lua(设备)上的Domoticz脚本,所以我正在做对我来说更方便的事情。

为了确定性,我的家庭网络中IR网关的IP地址为10.40.20.254,并且该地址出现在脚本之一中,您需要将其固定在网关的地址上。

创建以下三个脚本。

HVACauto:

 commandArray = {} for deviceName,deviceValue in pairs(devicechanged) do if (deviceName=='HVAC-Temp') then if (tonumber(deviceValue) < tonumber(otherdevices_temperature[''])) then commandArray['HVAC-Mode'] = 'Set Level: 10' --"Cool" else commandArray['HVAC-Mode'] = 'Set Level: 20' --"Heat" end commandArray['HVAC'] = "On" end end return commandArray 

该脚本将空调的设定温度与“房间”传感器的温度进行比较,以选择正确的模式-“制冷”或“加热”。

暖通空调功率

 commandArray = {} for deviceName,deviceValue in pairs(devicechanged) do if (deviceName == 'HVAC') then if deviceValue == "Off" then print('  ') commandArray['HVAC-Mode'] = 'Set Level: 0' --"Off" else if (tonumber(otherdevices['HVAC-Temp']) < tonumber(otherdevices_temperature[''])) then commandArray['HVAC-Mode'] = 'Set Level: 10' --"Cool" else commandArray['HVAC-Mode'] = 'Set Level: 20' --"Heat" end end end end return commandArray 

该脚本监视空调“通用”开关的状态,并在打开或关闭空调时选择所需的操作模式。

最后一个HVACmain脚本:

 commandArray = {} local cmnd for deviceName,deviceValue in pairs(devicechanged) do if (deviceName=='HVAC-Mode' or deviceName=='HVAC-FanSpeed' or deviceName=='HVAC-Temp') then if (otherdevices['HVAC-Mode']=='Off') then cmnd = 'http://10.40.20.254/cm?cmnd=IRhvac{"Protocol":"COOLIX","Power":"Off"}' else cmnd = 'http://10.40.20.254/cm?cmnd=IRhvac{"Protocol":"COOLIX","Power":"On","Mode":"'..otherdevices['HVAC-Mode']..'","FanSpeed":"'..otherdevices['HVAC-FanSpeed']..'","Temp":'..otherdevices['HVAC-Temp']..'}' end print(cmnd) os.execute("wget '"..cmnd.."'") end end return commandArray 

但是这个脚本是最重要的。 它生成带有必要参数的正确命令,并向网关实施GET请求。 不要忘记在其中修复网关的IP地址。

实际上,仅此而已。 您可以将Domoticz界面切换到相应的选项卡,然后单击“按下按钮”来控制空调。 如果一切操作正确,将根据需要控制空调系统。


特色功能


通过IR网关的此选项有一个缺点-缺乏反馈。 即 如果有人使用标准遥控器,则Domoticz中的状态将不会更改,并且将显示不再相关的信息。

通常,这实际上并不会造成干扰(特别是如果您不使用IR遥控器,而仅使用UD的功能)。

当然,您可以使用IR网关监视哪些命​​令是通过IR发送的(网关通过MQTT传输此信息)并进行更多编程,以便即使在使用标准遥控器时,也可以在DD系统中设置当前状态和参数。

但是,尽管我没有时间这样做,也没有特殊需要(“看”视频监控系统并查看空调是否已打开比较容易)。

然后呢


自然,我们不止于此。

至少,当前的管理实现已经比“最小化”选项具有更多的功能。

在“转发” Domoticz中的空调之后,我还控制了Siri:

在有机会控制UD系统(尤其是通过Siri发出语音)之后,使用标准IR遥控器的需求就消失了。

在不久的将来,我们将编写一个“冬季”脚本,该脚本将在没有主人的情况下,并且在“外部”温度至少为-10的情况下,使用空调的资源为房屋供暖(此模式比电加热地板更节能,但更不舒适),以及当房主返回时,他们再次切换到地暖。

当然,会有一个“夏季”脚本,它将自动打开制冷模式并保持房屋的设定温度。

自然地,所有可能的用例仅受想象力的限制。 不要退缩;)

第三部分?


目前,已宣布的用于控制空调的WiFi模块尚未发售。

如果有时间(漫长的冬夜),我将采用另一种方法来处理空调接口模块,并仍然尝试“捕获”内部空调命令。

所以...敬请期待!

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


All Articles