Domoticz 插件开发教程

虽然domoticz官网提供了一个插件开发教程,但是在实际的开发过程中就会发现有很多内容写的不够详细,无法参考。 官网教程链接: https://en.domoticz.cn/wiki/Developing_a_Python_plugin 国内的中文wiki页面比较陈旧,文档也不是最新的,不建议参考。

其实真个插件主要分为两个部分:

  • 插件模板

  • 插件代码

插件模板主要就是插件的定义,以及相关的参数配置选项,格式为xml:

<plugin key="BabyWeatherPlugin" name="Baby Weather Plugin" author="obaby" version="1.0.0" wikilink="http://www.h4ck.org.cn" externallink="https://www.h4ck.org.cn/">
    <description>
        <h2>Baby Weather Plugin</h2><br />
        支持从国内的天气服务器获取天气信息
        <h3>Features</h3>
        <ul style="list-style-type:square">
            <li>支持和风天气</li>
            <li>支持彩云天气</li>
            <li>支持今天明天的天气预报信息</li>
        </ul>
        <h3>Devices</h3>
        <ul style="list-style-type:square">
            <li>Temperature - 当前温度</li>
            <li>Feeling Temperature - 当前体感温度</li>
            <li>Humidity - 湿度</li>
            <li>Pressure - 气压</li>
        </ul>
        <h3>Configuration</h3>
        API KEY请自行注册相关的开发者账号,然后获取key。
        技术支持:http://www.h4ck.org.cn
        彩云天气:https://open.caiyunapp.com/
        和风天气:https://dev.heweather.com/
    </description>
    <params>
    <param field="Mode1" label="服务器" width="100px"/>
        <options>
            <option label="彩云天气" value="Caiyun"></option>
            <option label="和风天气" value="heweather"></option>
        </options>
 
    <param field="Mode2" label="API KEY" width="600px" required="true" default="**********************"/>
    <param field="Mode3" label="经度" width="600px" required="true" default="116.40"/>
    <param field="Mode4" label="纬度" width="600px" required="true" default="39.915156"/>
    <param field="Mode5" label="更新频率(分钟)" width="60px" required="true" default="60"/>
    <param field="Mode6" label="Debug" width="75px"/>
        <options>
            <option label="True" value="Debug"></option>
            <option label="False" value="Normal"  default="true"></option>
        </options>
 
    </params>
</plugin>
Continue Reading

Domoticz Baby Weather Plugin

支持彩云天气,和风天气,需要注册开发者账号之后添加apikey之后才能使用。
彩云天气:https://open.caiyunapp.com/
和风天气:https://dev.heweather.com/

支持信息:

  • Temperature – 当前温度
  • Feeling Temperature – 当前体感温度
  • Humidity – 湿度
  • Pressure – 气压
  • PM25 – 当前PM25浓度
  • PM10 – 当前PM10浓度
  • SO2 – 当前PSO2浓度
  • Weather forecast(Today) – 今天天气
  • Weather forecast(Tomorrow) – 明天天气
  • 等等

安装方法:

  1. 下载zip之后解压缩,放入Domoticz/plugins目录下,重启服务端。去网页端添加硬件即可。
  2. 切换到插件目录下,git clone https://github.com/obaby/baby_weather_plugin 重启服务端。去网页端添加硬件即可。
Continue Reading

BroadlinkRM2 Domotizc Plugin插件

每次异常断电树莓派就挂了,之前以为是读写问题,这次停电前主动关机,然后,tm依然挂了。用fsck修复,无数的错误,修复完没有效果。于是重装,重装之后主要就是重新弄好domoticz的博联插件,于是就折腾了一番,把插件的问题进行了修复。

插件原始的wiki页面http://www.domoticz.com/wiki/plugins/BroadlinkRM2.html,已经无法访问了。 并且网上随便一搜,关于这个插件的文章都是四年以前的。新的内容基本没有,我不是插件的原始作者,只是进行了修改和完善。 感谢原作者开发的插件。 虽然一直在用这个插件,但是这个插件配置起来却一点都不轻松,插件依赖于broadlink库。 而这个库在树莓派上安装的时候,虽然能安装成功。但是安装 成功之后多数时间会找不到这个库,从而导致插件启动失败。
插件项目地址:
https://github.com/mjg59/python-broadlink 看项目简介现在已经支持Broadlink RM2, RM3 and RM4 series controllers 。
其实要解决库找不到的问题也简单,不要用pip之类的安装。直接将python-broadlink的broadlink目录拷贝到BroadlinkRM2目录下就可以解决这个问题。
插件进行库搜索的时候会搜索当前插件目录下的库,所以没有必要安装之后再去进行拷贝。 我这里集成的是旧版本的python-broadlink库,如果需要可以替换为新版的库。新版本我没有测试,如果测试ok可以提交个补丁进行说明。

Continue Reading

domoticz 检测设备在线状态

最近又开始折腾语音控制相关的东西,比较郁闷的是家里的电视机和机顶盒貌似并不能直接接入。于是每次想要开关电视和机顶盒就需要知道设备的在线状态。那么为了获取在线状态,最简单的办法就是创建一个开关,标记当前设备的状态:

设备类型如下:

如果不能手工添加开关,现在硬件页面创建一个Dummy类型的设备,新增加的开关类型为Dummy。

Continue Reading