本帖介绍手动编写脚本控制博联设备,仅供大家了解脚本及博联的控制方式。
实际使用建议用插件来控制博联设备,更加方便。
插件使用过程中遇到任何问题都可以在博联专区发帖讨论。
【Domoticz】基于v3.7974 Beta 博联专版
[Domoticz插件]Broadlink MP1/MP2 兼容 鸿雁8340J
[Domoticz插件]Broadlink SP mini
智能插排以MP1为例。
首先请查看Domoticz&BroadLink(博联)连接及控制教程:(一)安装python-broadlink
MP1智能插排有三个功能:开启某个插孔、关闭某个插孔、检查某个插孔当前状态。
所有操作均通过一个python脚本实现。
一、建立控制脚本MP1.py
①进入domoticz/scripts/python目录
代码: 全选
cd /home/pi/domoticz/scripts/python
代码: 全选
sudo nano MP1.py
代码: 全选
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import broadlink
import sys
device_ip="博联设备IP"
device_port=80
device_mac="博联设备mac地址"
device_type="broadlink.mp1"
socket = str(sys.argv[1])
action = str(sys.argv[2])
device = broadlink.mp1(host=(device_ip,device_port), mac=bytearray.fromhex(device_mac))
device.auth()
#device.host
if action == "on":
if socket == "s1":
device.set_power(1,True)
elif socket == "s2":
device.set_power(2,True)
elif socket == "s3":
device.set_power(3,True)
elif socket == "s4":
device.set_power(4,True)
elif action == "off":
if socket == "s1":
device.set_power(1,False)
elif socket == "s2":
device.set_power(2,False)
elif socket == "s3":
device.set_power(3,False)
elif socket == "s4":
device.set_power(4,False)
elif action == "status":
print "on" if device.check_power()[socket] else "off"
二、通过Domoticz进行控制
①修改MP1.py权限以允许domoticz执行
代码: 全选
sudo chmod 777 /home/pi/domoticz/scripts/python/MP1.py
在Domoticz中新建虚拟设备,设置->硬件->增加新硬件,类型选择“Dummy (Does nothing, use for virtual switches only)” ③在刚才增加的设备中点击“创建虚拟传感器” 传感器类型选择“开关” ④切换到“开关菜单”,编辑新增的开关 选择喜欢的图标,图标更改方法请查看wiki:自定义Web界面图标
开触发中填入
代码: 全选
script:///home/pi/domoticz/scripts/python/MP1.py s1 on
代码: 全选
script:///home/pi/domoticz/scripts/python/MP1.py s1 off
“/home/pi/domoticz/scripts/python/MP1.py”为脚本完整路径
“s1”为要控制的插孔
“on”/“off”分别为要执行的操作“开”/“关”
其它插孔重复③④操作