玩玩智能家居1:Domoticz

1. 什么是 Domoticz

第一次知道 Domoticz 是在 smzdm 上的一篇原创文章《开源IoT平台domoticz与百搭wifi模块esp8266 篇三:空气站 Weather Station》里,以及知道了 ESP8266 模块这个好东西。

Domoticz 支持众多 USB 以及串口设备,可以通过将 Domoticz 安装在树莓派上,直接读取和操作连接在树莓派上的设备,例如 RFLink 或者 I2C 接口的 BME280 传感器。

当然,Domoticz 还支持通过局域网控制的设备和有网络 API 的设备,例如小米网关或者 Netatmo Weather Station。

2. 主要功能

传感器

Domoticz 可以直观的展示各种传感器状态以及历史,常用的有温度、湿度、二氧化碳浓度等。

对于 Domoticz 没有内置类型的传感器,也可以使用 Custom Sensor 来展示,可以自定义单位,同样可以查看历史。

开关

对于灯、遥控器等,都可以通过 Domoticz 开关类型设备来实现控制。对于遥控器,Selector Switch 是个好选择。

事件

Domoticz 内建了事件系统,对于事件的处理,简单的方法可以使用 Blockly 图形化编程来实现各个传感器和设备间的联动,如果有复杂逻辑,可以直接使用 Lua 脚本来处理。这给用户带来更大的自由度。

3. 对比其他 Home Automation System

当然,开源 Home Automation System 有很多,但是对比使用了一下其他系统之后,觉得相对而言还是 Domoticz 更简单易用一些。

openHAB

openHAB 是一个使用 Java 编写的开源 Home Automation System。它也支持相当多的设备,很容易配置连接 Amazon Dash Button、Philips Hue 等设备,还支持连接 Kodi 这个多媒体中心。

但是在使用的时候,openHAB 添加设备并不是特别直观,也没有弄明白自己怎么样去添加一个自定义的传感器设备。另外怎么查阅传感器历史数据也没有找到入口。

Home Assistant

Home Assistant 是一个开源的,使用 Python 3 编写的 Home Automation Platform。

对于我来说,最不喜欢 Home Assistant 的一点就是,它的设备都是需要使用 YML 配置文件的方式来配置,这在使用过程中感觉不是很方便。

4. 优缺点

对于我来说,第一步需要做的是使用 ESP8266 构建家庭传感器网络,在对比了几个系统之后,最终选择 Domoticz 作为 Home Automation System。

Domoticz 的优点

  • 直接在网页界面配置设备
  • 很容易添加自定义传感器设备
  • ESPEasy 内置 Domoticz 数据传送支持
  • Lua 事件处理比较强大

Domoticz 缺点

  • 界面不够现代,虽然 elemental 主题稍微好一点
  • 官方 App 功能不够完全
  • Homebridge 插件 homebridge-eDomoticz 功能不完善

有些缺点其实也是可以克服的,官方 App 可以用网页版代替,Domoticz 的主题本身带有移动设备支持,而 homebridge-eDomoticz 插件的问题,就只能靠自己改代码来完善了。

5. 安装

Domoticz 官方提供了 Windows、macOS 以及 Linux 的二进制文件,对树莓派也提供了编译好的二进制包,所以安装起来还是很方便的。另外官方还提供了树莓派和 Ubuntu 的一键安装脚本,比使用压缩包更省事。

因为不想另外找个树莓派或者开一台虚拟机,我就在 DSM 的 Docker 中部署了 Domoticz。Domoticz 的 Image 在 Docker Hub 上很容易找到。

6. 添加设备

Domoticz 提供了很多类型的硬件,其中一些很便于扩展使用自己的设备。

虚拟设备

在 Hardware 中添加一个 Dummy 的硬件,然后从这个硬件就可以创建各种虚拟传感器了,在 ESPEasy 中可以很方便的更新这些虚拟传感器的数据。

HTTP/HTTPS Poller

使用 HTTPS Poller 这个设备就可以很方便的去拉取一些外部数据来显示在 Domoticz 内部了,比如去获取外部的 AQI 指数。

小米网关

在去年年底,Domoticz 加入了小米多功能网关的支持,通过 Xiaomi Gateway 这个硬件,可以自动的将小米多功能网关的子设备(例如温湿度传感器、门窗传感器、人体活动传感器以及小米智能插座)添加到 Domoticz 中。

7. 事件

借助于 Blockly 或者 Lua,可以很方便地实现家中设备的联动,例如开门时自动打开小米智能插座。

8. 参考资料

  1. 5 open source home automation tools
  2. 开源IoT平台domoticz与百搭wifi模块esp8266 篇三:空气站 Weather Station
  3. openHAB
  4. Home Assistant

未经许可,禁止转载

--- EOF ---

发表评论?

2 条评论。

  1. 也准备弄一个空气质量到domoticz上,不太熟悉lua,能否共享一下aqicn_pares.lua 。谢谢!


    • s = request['content'];
      local ts = domoticz_applyJsonPath(s,'.rxs.obs[0].msg.time.s')
      local aqi = domoticz_applyJsonPath(s,'.rxs.obs[0].msg.aqi')
      print ('Update Hangzhou AQI ' .. aqi .. ' at ' .. tostring(ts))
      domoticz_updateDevice(39, '0', aqi)

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>