2016-09-02 79 views
0

作为示例测试,我只想通过WiFi使用OpenHab打开/关闭灯泡。因此,我在openhab配置中连接hivemq服务器和openhab,如下所示。将MQTT服务器连接到OpenHab

mqtt:broker.url=tcp://127.0.0.1:1883 
mqtt:broker.clientId=openhab 

因此,当启动openhab我可以看到在控制台中的以下内容。

2016-09-01 19:18:11.692 [INFO ] [.io.transport.mqtt.MqttService] - MQTT Service initialization completed. 
2016-09-01 19:18:11.695 [INFO ] [o.i.t.m.i.MqttBrokerConnection] - Starting MQTT broker connection 'broker' 
2016-09-01 19:18:13.092 [INFO ] [penhab.io.rest.RESTApplication] - Started REST API at /rest 

所以看起来openhab和hivemq连接成功。然后我在openhab发行版上创建了以下文件。

home.sitemap

sitemap home label="My House" 
{ 
    Frame label="ESP Module"{ 
     Group item=FF_Bed label="Front Porch" 
    } 
} 

home.items

Group All 
Group gGF  (All) 
Group gFF  (All) 

Group GF_Living  "Living Room" <video>  (gGF) 
Group FF_Bed  "Bedroom"  <bedroom> (gFF) 

Dimmer Light_GF_Living_Table  "Table"   (GF_Living, Lights)  {mqtt="<[mybroker:/myHome/Table:command:ON]"} 
Switch Light_FF_Bed_Ceiling   "Ceiling"  (FF_Bed, Lights)  {mqtt="<[mybroker:/myHome/doorbell:command:ON]"} 

/* Locations */ 
Location HomeLocation MyHome 

esp-pic.map

0=Still 
1=Motion 

我可以看到我的openhab网站上面指定的项目。但是,当我点击灯光时,MQTT服务器没有更新。但是我可以在OpenHab控制台上看到以下内容。

2016-09-02 12:00:35.484 [INFO ] [runtime.busevents    ] - Light_FF_Bed_Ceiling received command ON 

那么为什么它不将这个改变发布到HiveMQ主题?

谢谢。

回答

2

您只能在openHAB中拥有入站或出站mqtt消息。

由于“<”符号,您在home.items中的当前配置为入站。 如果您想要点击交换机将mqtt消息发布给代理,则必须将其更改为“>” - 符号。

仅供参考具有看看这个页面上:https://github.com/openhab/openhab/wiki/MQTT-Binding和搜索入站或出站邮件

+0

好,我就把它改成了“>”,但我仍然无法找到MQTT主题。 – lsc

+0

嗨,谢谢你的回答。随着建议的变化和具有org.openhab.binding.mqtt-1.8.3.jar的插件(更早我只有org.openhab.action.mqtt-1.8.3.jar),这工作正常。 – lsc