domoticz的实时监控和小米无线开关在domoticz中的应用
首先非常感谢大家对我上一篇原创的支持,所以在篇头,先就上一篇文章中可能出现的问题做一些答复:
有些命令执行起来可能出现权限问题,这时候请在命令前添加"sudo "使用root权限对系统进行更改。
spmini.py 无法执行,关于这个脚本,楼主也遇到过问题,首先是在命令行里执行 python spmini.py成功,但是domoticz里就是出错。后来使用 vi spmini.py查看才发现脚本里有一大堆蓝色的^M,把这些蓝色的字符删除就好。还有就是在命令行执行时发生语法错误,这时最好的办法就是不要使用nano命令,而是用vi命令来重新新建一个脚本,基本都能过。
本来想先说的是飞利浦livingcolors的接入,不过考虑到这灯的保有量实在不高,所以就先谈谈domoticz的一些设置吧。不知道按照上一篇文章一步步搭建成功的值友有多少,也不知道大家有没有遇到一个楼主碰到的问题,就是domoticz有时候会自己关掉……,这个发生的概率很不稳定,有时候两天好好的,有时候可能隔2个小时就没了。当然,手动重启下domoticz或直接重启树莓派就可以解决这问题。但是,楼主搞智能家居是为了让自己生活方便的,而不是在用语音呼唤你之后发现你没动静,除了先要自己去手动打开设备之后,还要去查你这破烂玩意究竟怎么了。智能家居是应该给生活带来便利的,事情你来伺候爷的,不是让爷来伺候你的。所以,我们首先要解决的是如何避免domoticz自己死掉。当然,下面的解决途径来自于domoticz官方WIKI(想来你们也是自己知道自己的应用也没有那么稳定是么……)
这里要请出的应用是MONIT,看图就知道了,这是一款看门狗似的应用,它的主要作用就是监测系统和系统内的进程,当发现系统负载过高时可以重启系统,或者发现监控的某一个进程失去响应时,可以重启该进程。下面我们来说说MONIT的安装和设置。
首先还是老样子,用putty登入树莓派
什么也别管,先更新一把源。(这一步在安装软件前都操作一把,能确保你安装的软件应用都是最新版的)
sudo apt-get update
然后就是安装MONIT,只要一条命令就好。不知道大家感觉到了没,虽然linux看起来简陋,但是基本上安装软件都非常方便。
sudo apt-get install monit
对,就这么一条命令,MONIT就在我们的树莓派里安装好了。接着我们就要对MONIT进行配置,命令如下:
sudo nano /etc/monit/monitrc
然后我们就打开了monitrc的配置文件:
set daemon 300的意思是每300秒检测一次进程,设的太短会加重系统负担,设的太长有没有意义,5分钟差不多是一个合适的值,这样的话,即使domoticz死掉了,最长5分钟也会重新启动。
with start delay 300的意思是系统启动后300秒后再开始监测,这个值主要是预防一开机就开始监控的话domoticz可能还没开始运行。配置文件很长,可以设置MONIT的服务端口,邮件服务器啥的,这些这儿就不说了,大家有兴趣可以自己研究。这里只说如何将domoticz添加进MONIT
如图:我们在文件的尾部添加进如下文本:
check process domoticz with pidfile /var/run/domoticz.pid
start program = "/etc/init.d/domoticz.sh start"
stop program = "/etc/init.d/domoticz.sh stop"
if failed
url http://127.0.0.1:8080/json.htm?type=command¶m=getversion
and content = '"status" : "OK"'
for 2 cycles
then restart
if 5 restarts within 5 cycles then exec "/sbin/reboot"
然后Ctrl+X,按Y建保存之后就完成了。然后我们重启下MONIT服务,让配置生效
sudo service monit reload
然后我们在浏览器中输入树莓派的IP地址+:2812(默认端口号,可以在配置文件里修改)。例如楼主的机器就是http://192.168.10.24:2812/
这时候我们就能看到系统的运行状态和时间以及domoticz的运行状态(用户名密码使用树莓派的)。当然,但就用MONIT楼主觉得还不是很放心,因为树莓派上还装了很多其他的服务。而保持系统最稳定的方法无非是定时重启。所以我们下面要添加一个定时重启的功能,首先,我们要编写一个重启的脚本,这个脚本非常简单,就两行
我们现在想要存放脚本的目录里新建个叫reboot.sh的文件:
sudo nano reboot.sh
然后在脚本里添加如下内容:
#!/bin/bash
sudo reboot
然后Ctrl+X,按Y保存就好。
接着我们就要让这个脚本定时运行了,这里我们就用到了domoticz的事件触发器(EVENT)功能:
楼主设定的是每天凌晨3:30分重启系统,如果你觉得你的系统够稳定的话,也可以设定一个星期重启一次例如,每周一的凌晨3:30重启系统:
这个具体就看你自己高兴了。既然谈到了事件触发器,我们正好来说说如何用小米开关来控制非小米设备。
楼主一直觉得小米开关是一件非常巧妙的事情,它使得智能家居不那么智能的时候,我们可以有一种简单的方式来控制设备。例如楼主曾经写过一篇通过室内二氧化碳浓度来控制米皮新风的原创:
文中就是使用继电器来模拟人去按动小米开关来达到控制小米净化器的目的。而楼主也在床头贴了一个小米开关,通过对其双击,单击来控制网关灯和aqara墙壁开关的开合。毕竟开关就在手边,谁还会去打开手机,或是深井冰似的对着手机喊,嘿,SIRI是么,你这不是在秀智能家居,简直就是在秀智商啊。而楼主客厅的落地灯,也是用了一个无线开关贴在沙发边上,通过其控制小米智能插座的开关来实现的。这样省去了跑沙发边踩落地灯开关的麻烦,特别是现在客厅成了萌宝的天地,茶几被挪到了落地灯边上,根本就够不到开关了……。所以对于小米的无线开关,楼主真的是爱死了。而折腾出这么多,就是因为想用小米无线开关来控制博联的插座(家里有4个spmini2)。下面来说说实现过程:
首先是把小米开关添加到domoticz里。
我们可以看到,小米开关在domoticz的开关类型是一个selector类型的开关,也就是多段开关(注意,此类型开关不被homekit支持,我们也不需要他支持)。我们只要记住它的几种状态分别是:
然后我们就直接在房间区域里把它隐藏到$Hidden Devices里,这样在开关菜单里它就不会出现了。因为其只是起到一个桥接的作用,而被它控制的开关在domoticz里都有相应的开关,所以它完全没有显示的必要。
然后我们再次打开事件触发器,我们现在想要把它设置成单击开关,打开落地灯使用的博联插座。
因为刚开始的时候对if else if 的blocky的使用并没有掌握,所以把明明可以做成一个事件的联动做成了3个。后来也就懒得改了,大家将就着看:
第一第二条是当双击无线开关的时候,对博联插座进行开合操作,因为使用同一个动作来激发两种状态,所以之前要加个判断条件,判断现在插座的状态是开还是关。而最后一条是因为多段开关,如果触发了一个状态后,它就不会自己复位到off,然后根据设定的两条触发命令就会无止尽的开关。加了最后的复位事件,就是在感应到开关操作后,开关自动复位到OFF状态。
最后是想问问大家有没有人对livingcolors Gen2接入domoticz有需求,毕竟楼主觉得花千把块钱买这灯的人脑子一定被驴踢过(没错,说的就是我自己)。然后现在如果要把它接入domoticz的话,还需要一个HUE Bridge的网关,注意:Gen2有好多种版本,即使你有了网关也不一定能接入。楼主开始是在咸鱼上定了一个别人海淘套装单出的网关,要价298,不过隔了3天还没发货,结果看到狗东正好有货,而且只要199的时候,立马退了咸鱼,去狗东买了(当时天猫亚马逊最低大约是399)。
而现在狗东的价格已经变成了498:
嗯,花498再买个这玩意,脑子肯定被驴踢了不止一次,哈哈哈。如果有人有需要请评论留言。楼主会再写一篇(步骤实在太复杂,毕竟livingcolors不属于Hue系列)。
















校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案