OpenHAB-Smartthings bindings

一. 内容

将Smart Hub 集成到OpenHAB中,作为一个binding,即将Smart Hub作为一个bridge,可以通过Smart Hub连接不同的设备,可以通过OpenHAB控制Smartthings设备。

参考连接

基于github上的开源实现进行的实验:https://github.com/BobRak/OpenHAB-Smartthings

二. 环境+设备

  • Linux 16.04
  • OpenHAB 2
  • Smartthings App
  • Smart Hub
  • Outlet:三星smartthings的智能插座
  • Motion Sensor

三. 实验步骤

1. 连接设置Smartthings环境

下载Smartthings App,并使用帐号进行登录,添加Smart Hub,Outlet和Motion Sensor
按照设备和App提示连接即可,操作简单。

2.在Smartthings上安装部署OpenHAB

(1) 安装OpenHabAppV2

OpenHAB-Smartthings /target/smartthings/SmartApps目录中找到OpenHabAppV2.groovy。

  • 登录Smartthings developers tools
  • 选择My Smart Apps
  • 点击右上角的 + New SmartApp
  • 选择From Code
  • 将OpenHabAppV2.groovy的代码粘贴进去
  • 点击publish—For Me
  • SmartApp现在已准备就绪
(2)安装OpenHabDeviceHandler

在/target/smartthings/DeviceHandlers目录中找到OpenHabDeviceHandler.groovy。

  • 登录Smartthings developers tools
  • 选择My Device Handlers
  • 点击右上角的+ Create New Device Handler
  • 选择From Code
  • 将OpenHabDeviceHandler.groovy的代码粘贴进去
  • 点击publish—For Me
  • 设备处理程序已准备就绪
(3)创建设备
  • 登录Smartthings developers tools
  • 选择My Device
  • 点击右上角附近的+new Device
  • 在表格中输入以下数据:
    Name: OpenHabDevice
    Label: OpenHabDevice
    Device Network ID: 这是OpenHAB服务器的MAC地址,不能包括空格或标点符号
    Type: OpenHabDeviceHandler (这应该是列表的最后一个)
    Location: (从下拉菜单中选择)
    Hub: (从下拉菜单中选择上述Smartthings环境中部署的Hub)

  • 点击Creat按钮

  • 在Preferences选项中输入:
    ip:你的openhab服务器的IP地址
    Mac:与Device Network ID相同,但是包含“:”
    port : 8080(你的openhab服务器应用程序的端口)
(4)Smartthings App中配置
  • 在手机上启动Smartthings App
  • 从底部菜单中选择Automation
  • 从顶部菜单中选择SmartApps
  • 点击+Add a SmartApp
  • 滚动到底部并选择My Apps
  • 选择OpenHabAppV2
  • 在Input选项中选择想要和OpenHAB交互的设备,这里选择的Motion Sensor和Outlet
  • 在Device选项的Notify this virtual device中选择OpenHabDevice
  • 最后点击右上角的Save

3.在OpenHAB中添加Smartthings Binding,并部署

(1)添加Smartthings Binding

找到OpenHAB-Smartthings的/target文件夹中的org.openhab.binding.smartthings-2.1.0-SNAPSHOT.jar文件,将其复制到OpenHAB中的addons目录,在我的环境下addons目录具体在:/usr/share/openhab2/addons;
重启OpenHAB,在Paper UI界面Configuration—Bindings中可以看到添加进去的Smartthings Binding。
这里写图片描述

(2)配置thing文件

打开openhab服务器上的/etc/openhab2/things文件夹,创建smartthing.things文件。

网桥配置

首先配置Smart Hub,其作为一个设备连接到OpenHAB的网桥,基本格式如下:

Bridge smartthings:smartthings:Home    [ smartthingsIp="192.168.123.209", smartthingsPort=39500 ] 

其中:
smartthings:smartthings:Home表示这是一个名字为Home的Smartthing Hub,smartthings:smartthings:是固定的,Home为你在Smartthings中设置的Smart Hub的名称,我的这里命名为Home。
smartthingsIp是Smartthings Hub的IP地址。
smartthingsPort是Smartthings Hub监听的端口。39500是指定我的Smartthings的端口。

设备配置

每个设备必须指定设备的类型,它是Smartthings设备名称。Thing描述的格式是:

Thing < thingTypeId> name [ smartthingsName="< deviceName>" ]

其中:
thingTypeId对应于Smartthings Capabilities文档中的id字段。也可以参看OpenHabAppV2.groovy文件中CAPABILITY_MAP下的设备capability字段。
name 就是你想要调用的设备的名称,并用此来定义设备的items
deviceName是您在Smartthings App中发现并连接到设备时分配给设备的名称
这里写图片描述

(3)配置items文件

打开openhab服务器上的/etc/openhab2/items文件夹,创建smartthing.items文件。

可以参考items文件

这里最重要的是配置channel,基本格式:

{ channel="smartthings:< thingTypeId>:< hubName>:< thingName>:< channelId>" }

其中:
smartthings:规定格式,表示这是要给smartthings设备
thingTypeId表示你要连接的设备的类型,和things文件中的一致
hubName即为在smartthings中配置的smart Hub的名称
thingName在things文件中定义的设备的name
channelId即为在Smartthings Capabilities list中定义的attribute,可以参看OpenHabAppV2.groovy文件中CAPABILITY_MAP下设置的attribute字段。
这里写图片描述
图中前两个字段,分别表示,设备属性值的类型,以及该设备items的名字

(4)配置sitemap

打开openhab服务器上的/etc/openhab2/sitemaps文件夹,创建smartthing.sitemap文件。
这里写图片描述
在basicUI上显示出如下界面
这里写图片描述

至此即可通过openHab对smartthings设置进行操作,同样可以获取到设备当前的状态信息。

说明:
在openHab上进行相关操作和配置时,如果出现问题,可以通过log文件查看详细的错误信息,
log文件的路径为:/var/log/openhab2

如果出现如下错误提示:
这里写图片描述
解决方法:重启openhab2服务
sudo systemctl restart openhab2.service

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值