智能家居折腾记 篇五:打造手自一体挡位智能风扇(二)

2019-02-10 17:31:00 8点赞 58收藏 5评论

前文再续,书接上一回。

首先跟大家拜个年,祝各位年大吉!

然后给大家道个歉,懒癌发作起来真的是没救的打造手自一体挡位智能风扇(二) 这个“手自一体档位智能风扇”由构思到动手,只用了一个月左右时间,但这篇文章确实是一拖再拖。忙嘛,只是借口,一来的确是老夫懒,二来,家里环境所限,要趴在“桌子前”一两个小时却写这篇东西,也是在有点难为老夫……为何?大家看看照片就知道了

图1图1

没错,就是这么骚,平时只能在这以“高上”床铺为椅子,衣柜顶为桌子,作为唯一的工作台。要半跪在电脑前,屁股垫着座垫一两小时,老夫的老腰和老腿,基本就废了……呵呵呵呵

好了,废话不多说了,自从上次写完硬件方面的制作,总得把事情给结了,这次就跟大家分享一下Domoticz方面的配置,看怎么配合mos板子,实现自动控制风扇。只要大家跟着老夫步伐,相信都能做出来,其实真不难。同样的道理,大家可以脑洞一下,会有更多的玩法的。但各位切记,一定要注意安全,尤其涉及到强电的部分,一定要慎之又慎,毕竟自己安全第一嘛!

好,折腾开始,先循例喊个口号打个鸡血:

生命不息,折腾不止!

如果大家一直是按照老夫前面的路子一直走过来,mos上刷的代码也跟老夫的一样,那么,你的NodeMCU板子其实已经可以接受来自网络POST过来的信息了。格式如下:

http://你的板子IP地址/rpc/fanlvl

POST内容:{'num':pinnumber},其中pinnumber就是你要设置为高电平的pin口

为了实现从Domoticz控制板子的pin口,我们需要自己写一个脚本(因为老夫没研究到Domoticz怎么直接POST消息打造手自一体挡位智能风扇(二) ),该脚本能从命令行参数接收一个数字参数,然后发送post请求,将接收到的数字以post形式传出去给板子;然后从Domoticz根据不同的情形调用这个脚本,从而实现自动控制。

首先,在装了Domoticz的机子上,安装python3,这个步骤请自行百度,没有啥难度。

然后,在Domoticz的安装目录下,找到scripts/python目录,新建一个“setpin.py”文件:

sudo vi setpin.py

里面的内容如下,也可以在 网盘 下载完整代码,提取码:rv05

图2图2

保存退出后,将文件设置为可执行:

sudo chmod +x setpin.py

这里需要留意,Domoticz的用户,老夫这里的用户跟用户组是一个叫“2000”的东西,如下图:

图3图3

如果你用“ls -all”命令看到的,不是与其他文件同一个用户跟用户组,可以用下面的命令来更改文件归属:

sudo chown 2000:2000 setpin.py

上面的命令中的2000就是你需要更改的组别及用户名

接下来,就可以测试脚本是否正确了,在命令行下输入以下命令:

./setpin.py -p 12

此时风扇应该自动打开了1档,那么,恭喜你,已经成功了80%了!

系统返回截图:

图4图4

跟着,我们就要在Domoticz中增加开关,并关联相关的脚本动作,新建一个Dummy设备:

图5图5

然后新建两个个虚拟传感器,名字随便,老夫一个写“风扇档位”,另一个写“风扇定时器”;类型都选择“多段开关”,如下图:

图6图6

然后在“开关”界面,就能看到两个新增的开关,点击“风扇档位”的“编辑”按钮进入编辑界面:

图7图7

里面的设置,按照下图来:

图8图8

从上图可以看到,当执行多段控制时,其实时执行了我们刚刚写的控制脚本,通过不同的参数,实现风扇的档位控制。

接下来,我们需要做一个定时器,风扇总不能整晚吹,否则怎么“智能”呢打造手自一体挡位智能风扇(二)

在“设置”-“更多选项”-“用户变量”下面,新建一个叫“vFanTimer”的变量,类型选“整形”,如图:

图9图9

图10图10

这个用户变量的值,等于定时器的开关。

然后,再新建一个虚拟传感器,与风扇档位一样,选择“多段开关”类型:

打造手自一体挡位智能风扇(二)

放大看清楚这个开关各个段位的动作设置:

打造手自一体挡位智能风扇(二)

然后,在事件编辑器里面,新建一个dzVents脚本:

图13图13

图14图14

这里需要留意,老夫是更新到最新的Domoticz Beta版的,新建事件的方式跟旧版有点不同,而且用Chrome浏览器显示格式有点问题,用Edge却没问题打造手自一体挡位智能风扇(二)

代码如下图,不想敲的,直接 传送,提取码:9dcz

图15图15

注意第7、8行,里面的开关名,需要改为各位设置的开关名称,否则联动不了。

稍微解释以下代码,主要是每分钟判断,如果风扇档位不是0,则判断vFanTimer这个用户变量,如果为1,且风扇定时器的档位不为0,则判断vFanTimer变量的上次更新时间,如果上次更新时间距离当前时间已经超过档位设定的值,则关闭风扇,同时关闭vFanTimer开关,以及风扇定时档位复位为0。

最后,新建一个dzVents,叫“FanLevel”的,用来做你想做的智能方案,老夫的是在半夜某个时间点,判断风扇是否运行,以及根据档位进行调节,让风扇慢慢降低风量:

图16图16

这个就没有传送门了,老夫的腰已经僵了,要抓紧时间赶紧写完它,各位自己看图敲吧。

到此,从Domoticz已经可以控制/智能控制你的风扇了,但是有个问题,如果手动按风扇的按钮调节风扇档位,Domoticz上是不能反映当前的档位值的,这时需要在Domoticz上新建一个MQTT的虚拟开关,可以接受MQTT的报文,从而调整各个开关的值:

图18图18

留意红框位置,填写各位自己的MQTT服务器信息。之前在这个系列第一篇里面,就教了大家设置MQTT server,此时就用上了。

而如果你一直按照老夫的步骤走下来,NodeMCU板子上的代码中,其中有一段就是通过MQTT发送当前档位信息给Domoticz的,如下图:

图19图19

需要留意,idx是Domoticz中“风扇档位”对应的值:

图20图20

在MOS系统中,也需要设定相应的MQTT服务器,如下图:

图21图21

好了,到此,手自一体档位的智能风扇就完成了,这里面的硬件软件结合其实很灵活的,各位可以大胆发挥脑洞,做出各种好玩的东西来,此系列暂时也告一段落了,毕竟一下午下来,老夫的老腰已经好像不属于自己的了…………赶紧去找个妹妹给老夫锤锤背打造手自一体挡位智能风扇(二)





展开 收起

乐天派 人体存在传感器居基础感应控制Matter双生态多平台Mijia IOS Homekit六种数据探测 传感器

乐天派 人体存在传感器居基础感应控制Matter双生态多平台Mijia IOS Homekit六种数据探测 传感器

259元起

MIJIA 米家 MJYDOAYL 自动感应夜灯 白色

MIJIA 米家 MJYDOAYL 自动感应夜灯 白色

19.9元起

京东京造 TH1 时钟温湿度计 白色

京东京造 TH1 时钟温湿度计 白色

29.9元起

Xiaomi 小米 米家智能插座3

Xiaomi 小米 米家智能插座3

49.9元起

Xiaomi 小米 ZSWG01CM 智能中枢网关 黑色

Xiaomi 小米 ZSWG01CM 智能中枢网关 黑色

191.79元起

Xiaomi 小米 DMWG03LM 智能多模网关2 白色

Xiaomi 小米 DMWG03LM 智能多模网关2 白色

181.8元起

MIJIA 米家 1S 增强版 智能台灯 白色

MIJIA 米家 1S 增强版 智能台灯 白色

156元起

linptech 领普 智能无线开关KS1Pro屏显温湿度传感器智能联动免布线遥控开关

linptech 领普 智能无线开关KS1Pro屏显温湿度传感器智能联动免布线遥控开关

53.2元起

Xiaomi 小米 SJWS01LM 水浸卫士 白色

Xiaomi 小米 SJWS01LM 水浸卫士 白色

55元起

玺加 智能窗帘宝X3 光能充电窗帘伴侣

玺加 智能窗帘宝X3 光能充电窗帘伴侣

暂无报价

Xiaomi 小米 MCCG02HL 小米门窗传感器 2 米家

Xiaomi 小米 MCCG02HL 小米门窗传感器 2 米家

34.9元起

HUAWEI 华为 智能门锁 Plus AI 3D人脸解锁快准稳 AI指纹锁

HUAWEI 华为 智能门锁 Plus AI 3D人脸解锁快准稳 AI指纹锁

2899元起

Xiaomi 小米 无线开关 蓝牙版

Xiaomi 小米 无线开关 蓝牙版

32.9元起

米家 人体传感器2S 居 智能监测联动

米家 人体传感器2S 居 智能监测联动

61.99元起

MIJIA 米家 空调伴侣2 智能插座 白色

MIJIA 米家 空调伴侣2 智能插座 白色

68元起

卡萨帝(Casarte)掌静脉人脸识别带可视猫眼密码锁入户门带摄像头指纹锁电子锁智能门锁CFA-X70-CAU1罗曼金

卡萨帝(Casarte)掌静脉人脸识别带可视猫眼密码锁入户门带摄像头指纹锁电子锁智能门锁CFA-X70-CAU1罗曼金

6009元起
5评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
58
扫一下,分享更方便,购买更轻松