本帖介绍手动编写脚本控制博联设备,仅供大家了解脚本及博联的控制方式。
实际使用建议用插件来控制博联设备,更加方便。
插件使用过程中遇到任何问题都可以在博联专区发帖讨论。
【Domoticz】基于v3.7974 Beta 博联专版
[Domoticz插件]Broadlink MP1/MP2 兼容 鸿雁8340J
[Domoticz插件]Broadlink SP mini
RMPro中内置的温度传感器数据通过一个sh脚本获取。
①首先在Domoticz中创建一个虚拟设备 ②然后增加虚拟传感器,传感器类型为温度。 ③切换到设备菜单(设置->设备),找到刚才添加的温度虚拟传感器的idx ④ssh登录树莓派后执行以下代码创建sh脚本
代码: 全选
sudo nano /home/pi/domoticz/scripts/getRMProTemp.sh
代码: 全选
#!/bin/bash
# -*- coding: UTF-8 -*-
DOMO_IP="127.0.0.1" # DomoticzIP地址
DOMO_PORT="8080" # Domoticz端口号
TEMP_IDX="40" # 虚拟温度传感器的idx
cd /home/pi/python-broadlink # 这里是python-broadlink库的目录
function sensore() {
python - << EOF
import broadlink
import time
device = broadlink.rm(host=("RMPro的IP地址",80), mac=bytearray.fromhex("RMPro的IP地址mac地址"))
device.auth()
sensor = device.check_temperature()
print sensor
EOF
}
# 获取温度数据
SENSORE=$(sensore)
#echo Sensore: $SENSORE
temperature=$(echo $SENSORE | cut -d' ' -f8 - | tr -d ,)
#echo $temperature
#将温度数据发送到Domoticz
if [ $(echo "$temperature <= 100"|bc) = 1 ]; #实际运行中发现有时会收到异常数据,温度大于100,所以这里将异常数据过滤掉
then curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command¶m=udevice&idx=$TEMP_IDX&svalue=$temperature";
fi
因为是在本机运行,所以DomoticzIP地址直接填写127.0.0.1,Domoticz如果设置了密码,别忘了在信任网络中添加127.0.0.1
RMPro的IP地址例子:"192.168.1.123"
RMPro的mac地址例子:"b4 43 0d c7 39 ec"
⑤测试脚本
修改sh脚本的权限以允许执行
代码: 全选
sudo chmod 777 /home/pi/domoticz/scripts/getRMProTemp.sh
代码: 全选
sudo sh /home/pi/domoticz/scripts/getRMProTemp.sh
linux的计划任务使用crontab命令
运行
代码: 全选
sudo crontab -e
代码: 全选
*/5 * * * * /home/pi/domoticz/scripts/getRMProTemp.py
保存并退出后,会提示"crontab: installing new crontab",这时计划任务已经生效了,每隔5分钟,会自动向Domoticz发送RMPro的温度数据。