使用Domoticz通过mqtt来控制灯的开关。

在orangepi zero上跑的debian,然后安装的domoticz。

硬件用的是esp82266,开发环境用的是Visual studio code加PlatformIO,使用arduino开发。

domoticz关于mqtt的文档如下:

https://www.domoticz.com/wiki/MQTT

传送的格式为json的,然后在arduino上使用了PubSubClient和ArduinoJson的库。Pubsubclient问mqtt的库,arduinojson为解析json格式数据的库。

调试mqtt使用了simulate-device.exe这个调试软件工具,后面我把源码文件和用到的调试工具都放在云盘里面,做个链接,大家看了多多纠正。源码文件直接用visual studio code开发环境直接打开下载下来的文件夹就可以了,库文件都放在里面了。

Mqtt服务器直接使用sudo apt-get install mosquitto命令安装的,然后也没有配置什么,直接在1883这个端口上连接,就可以使用了,先跑起来再说,先看到效果,这样也有继续玩下去的信心。再说了,什么密码、安全之类的,如果家里的路由器已经被别人破解了,那其他的什么东西都可以被别人控制了。

记录一下在测试过程中的记录:

domoticz在mqtt上,发布的主题为:domoticz/out;订阅的主题为:domoticz/in。我的理解,domoticz如果要往外输出数据,则通过发布domoticz/out主题,将数据发送出去,例如:给开关发数据。如果要获得数据,则通过订阅domoticz/in主题,得到数据,例如:温湿度传感器的数据。

以下为使用mqtt软件调试工具得到的数据:

调试工具通过订阅domoticz/out主题,到domoticz的灯打开时,接收到:

{

"Battery" : 255,

"RSSI" : 12,

"description" : "",

"dtype" : "Light/Switch",

"id" : "00014051",

"idx" : 1,

"name" : "light2",

"nvalue" : 1,

"stype" : "Switch",

"svalue1" : "0",

"switchType" : "On/Off",

"unit" : 1

}

灯关闭时,接收到:

{

"Battery" : 255,

"RSSI" : 12,

"description" : "",

"dtype" : "Light/Switch",

"id" : "00014051",

"idx" : 1,

"name" : "light2",

"nvalue" : 0,

"stype" : "Switch",

"svalue1" : "0",

"switchType" : "On/Off",

"unit" : 1

}

就是:nvalue这个值在变化。我把这个值提出来,做个判断就可以了。然后idx是这个设备的标签,这个需要一一对应,是自己的,才能接收数据做动作,不是自己的就不要动作,不然就乱了。

代码和调试工具下载链接:

https://pan.baidu.com/s/1mIiWq-wPjAs95pbNKzpcvw

domoticz 使用esp8266通过mqtt控制灯开关相关推荐

  1. 基于Domoticz智能家居系统(十四)用ESP8266做MQTT客户端实验

    基于Domoticz智能家居系统(十四)用ESP8266做MQTT客户端实验 用ESP8266做MQTT客户端 一些前期的准备 第一步 设置ESP8266开发板的BSP的搜索引擎链接 第二步 下载安装 ...

  2. 手机控制的esp8266利用mqtt协议接入百度云智能插座

    手机控制的esp8266利用mqtt协议接入百度云智能插座 19年的春节,相信大家和我一样都待在家里,利用在家的时间现学现卖,制作了一款手机控制的智能插座,网上资料很多,我在查询资料中发现,esp82 ...

  3. 合宙NB-IOT模块Air302连接Tlink云平台,APP和微信控制灯开关

    先注册Tlink云平台账号(网址),注册成功后找到开发者中心,查看Tlink云平台的MQTT协议说明.添加一个设备,把模块的电压,信号强度和灯状态上传云平台,Tlink提供的APP和微信控制灯开关,连 ...

  4. ESP8266的MQTT客户端搭建教程(基于NONS_SDK_v2.0)

    前言 MQTT是IBM开发的一个即时通讯协议,面向M2M和物联网的连接,采用轻量级发布和订阅消息传输机制,并且有可能成为物联网的重要组成部分. ESP8266是一款物美价廉的Wi-Fi芯片,集成Ten ...

  5. esp8266原理图_ESP32/ESP8266使用MicroPython控制DHT11/DHT22

    背景知识视频教程 高级ESP32 - 国外课栈​viadean.com 使用NodeMCU(由ESP8266支持),MicroPython和PyCharm进行物联网 - 国外课栈​viadean.co ...

  6. MQTT 控制报文类型、功能及格式(报文结构) - 第2章

    目录 2.1 MQTT 控制报文的结构 2.2 固定报头 2.2.1 控制报文的类型 2.2.2 控制报文类型的标志位 2.2.3 剩余长度 2.3 可变报头 2.4 有效载荷 2.1 MQTT 控制 ...

  7. 用米思齐mixly和APP INVENTOR 2通过MQTT控制灯亮和熄

    用米思齐mixly和APP INVENTOR 2通过MQTT控制灯亮和熄,如下图所示:

  8. 【ESP8266】ESP8266的MQTT客户端搭建教程(基于NONS_SDK_v2.0)

    前言 MQTT是IBM开发的一个即时通讯协议,面向M2M和物联网的连接,采用轻量级发布和订阅消息传输机制,并且有可能成为物联网的重要组成部分. ESP8266是一款物美价廉的Wi-Fi芯片,集成Ten ...

  9. MQTT协议详解 三、MQTT控制包(CONNECT)

    文章目录 系列文章目录 前言 CONNECT(客户端请求连接服务端) 一.固定包头(2字节) 二.可变包头(10字节) 协议名字(6字节) 协议等级(1字节) 连接标识(1字节) Clean Sess ...

最新文章

  1. CSS控制字体在一行内显示不换行
  2. IOS中类和对象还有,nil/Nil/NULL的区别
  3. python 统计2^2^2^2^2的各数字出现次数
  4. Android中的常量 DEFAULT_KEYS_SHORTCUT
  5. PHP获取MySQL执行sql语句的查询时间
  6. RecyclerView高级控件-附实例【android专题】
  7. HTTP简介,http是一个属于应用层的面向对象的协议
  8. 干货|对某杀猪盘的渗透测试
  9. 从一个点云里面创建一个深度图
  10. android intent-filter category,android intent-filter category.DEFAULT
  11. (转)编码剖析Spring管理Bean的原理
  12. 微信公众号的文章中添加历史文章链接
  13. c++拷贝构造之深拷贝
  14. 亲密关系-【沟通目标】如何建立有效的谈话目标
  15. 前端js获取本项目的项目根地址
  16. Python 之 异常检测/异常点搜索
  17. 测试方案包含哪些内容?
  18. 服务架构演变~超详细
  19. 中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡问题”:一只公鸡值5钱,一只母鸡值3钱,三只小鸡值1钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只?
  20. java的h2是什么_什么是H2数据库

热门文章

  1. 【方法】Chrome如何下载视频
  2. cad2017单段线_CAD将线段分成多段线的方法步骤
  3. MYSQL 金额转大写中文
  4. 《长安十二时辰》,作为程序员,看完我震惊了!涉及通信、云计算、大数据等!...
  5. Kubernetes集群容器运行日志收集
  6. 汽车智造(一)| 移动机器人(AGV AMR)如何赋能汽车行业制造升级
  7. windows下的虚拟化
  8. HBase【付诸实践 01】hbase shell 常用命令详解(表操作+数据增删改查+2种查询操作)(hbase-2.4.5 单机版standalone模式)
  9. 【算法专题】数独问题详解
  10. 2019年,你必须知道的7个企业服务趋势