这里基于树莓派,用python(Python2)来进行ssh,其它系统应该也差不多。
具体步骤:
0、Domoticz中新建虚拟设备,类型选择温度,然后到设备列表记住该设备的IDX,后面要用。
1、开启路由SSH。路由器管理界面,系统管理>系统设置,Enable SSH选择LAN only,仅允许局域网访问,其它默认。 2、安装python的ssh模块paramiko(这一步需要安装的依赖项目挺多了,请耐心等待):
代码: 全选
sudo pip install paramiko
代码: 全选
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import paramiko
import urllib2
import re
#Domoticz服务器
domoticzserver = "127.0.0.1:8080"
#设备IDX
idx = "44"
#此方法向Domoticz服务器发送请求
def domoticzrequest (url):
request = urllib2.Request(url)
response = urllib2.urlopen(request)
return response.read()
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#路由IP格式:192.168.1.1
ssh.connect(hostname='路由IP地址', port=22, username='路由登录用户名', password='登录密码')
cmd = 'cat /proc/dmu/temperature'
stdin, stdout, stderr = ssh.exec_command(cmd)
result = stdout.read()
temp = re.findall(u'(\d+)',result)
domoticzrequest("http://"+domoticzserver+"/json.htm?type=command¶m=udevice&idx="+idx+"&nvalue=0&svalue="+temp[0])
代码: 全选
sudo chmod +x router.py
4、设置定期(例如每隔15分钟)执行脚本。执行:
代码: 全选
sudo crontab -e
代码: 全选
*/15 * * * * /home/pi/domoticz/scripts/python/router.py