前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Domoticz 插件开发教程

Domoticz 插件开发教程

作者头像
obaby
发布2023-02-24 15:47:51
4870
发布2023-02-24 15:47:51
举报
文章被收录于专栏:obaby@mars

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

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

  • 插件模板
  • 插件代码

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

代码语言:javascript
复制
        Baby Weather Plugin

        支持从国内的天气服务器获取天气信息
        Features
        
            支持和风天气
            支持彩云天气
            支持今天明天的天气预报信息
        
        Devices
        
            Temperature - 当前温度
            Feeling Temperature - 当前体感温度
            Humidity - 湿度
            Pressure - 气压
        
        Configuration
        API KEY请自行注册相关的开发者账号,然后获取key。
        技术支持:http://www.h4ck.org.cn
        彩云天气:https://open.caiyunapp.com/
        和风天气:https://dev.heweather.com/

这里面的定义需要注意的是参数的名称并不能自己随意定义, 仅能使用如下的参数名称:

  • SerialPort – used by ‘serial’ transports
  • Address – used by non-serial transports
  • Port – used by non-serial transports
  • Mode1 – General purpose
  • Mode2 – General purpose
  • Mode3 – General purpose
  • Mode4 – General purpose
  • Mode5 – General purpose
  • Mode6 – General purpose
  • Username – Username for authentication
  • Password – Password for authentication

例如 <param field=”Mode3″ label=”经度” width=”600px” required=”true” default=”116.40″/>修改为 <param field=”GpsLong” label=”经度” width=”600px” required=”true” default=”116.40″/> 然后就挂了,提示找不到属性。

除此之外,定义部分其他的内容文档里写的都比较清楚了。在代码中取参数的数值通过Mode3获取。

在代码部分,需要注意的是Update函数:

代码语言:javascript
复制
 Devices[Unit].Update(nValue=nValue, sValue=str(sValue), SignalLevel=5, Image=8)

对于部分Device的sValue参数文档中给出了说明,要传递的数值: Wind sensor (sValue: “<WindDirDegrees>;<WindDirText>;<WindAveMeterPerSecond_10>;<WindGustMeterPerSecond_10>;<Temp_c>;<WindChill_c>”) 但是这个文档的数值并不是全部的内容:

Filling is in progress, table doesn’t contain full available list yet

https://github.com/Xorfor/Domoticz-API/wiki/Device 这个页面提供了更详细的说明,在更新sValue的时候需要注意要传的并不是一个字符串,而是多个;分隔的字符串。

Device/Sensor

nvalue

svalue

Example

Alert sensor

LEVEL

TEXT

Barometer

BAR

BAR_FOR

dev.update(1020, “3”)

Counter

COUNTER

Custom sensor

0

VALUE

Distance

0

DISTANCE

Electricity (instant and counter)

0

POWER;ENERGY

Electricity Current/Ampere 3 Phase

0

AMPERE1;AMPERE2;AMPERE3

Electricity P1 smart meter

0

USAGE1;USAGE2;RETURN1;RETURN2;CONS;PROD

Gas

0

USAGE

Humidity

HUM

HUM_STAT

dev.update(45, “2”)

Lux

LUX

Moisture (Soil)

MOISTURE

Percentage

0

PERCENTAGE

Pressure

0

BAR

Rain

0

RAINRATE;RAINCOUNTER

Temperature

0

TEMP

dev.update(0, “20.3″)

Temperature/humidity

0

TEMP;HUM;HUM_STAT

Temperature/humidity/barometer

0

TEMP;HUM;HUM_STAT;BAR;BAR_FOR

Temperature/barometer

0

TEMP;BAR;BAR_FOR;ALTITUDE

Text

0

TEXT

UV

0

UV;TEMP

Visibility

0

VISIBILITY

Voltage

0

VOLTAGE

Wind

0

BEARING;DIRECTION;WS;WG;TEMP;CHILL

在线xls 转markdown :https://tableconvert.com

例如更新wind Device需要更新如下参数:

代码语言:javascript
复制
if wind_speed and wind_direction:
            self.update_device_value(8, 0, str(wind_direction)
                                     + ";" + self.getWindDirection(wind_direction)
                                     + ";" + str(round(float(wind_speed) * 10))
                                     + ";" + str(round(float(wind_speed) * 10))
                                     + ";0;0")

<

p class=”md-end-block md-p md-focus”>参考链接: https://github.com/Xorfor/Domoticz-API/wiki/Device#examples https://en.domoticz.cn/wiki/Developing_a_Python_plugin

☆文章版权声明☆

* 网站名称:obaby@mars

* 网址:https://h4ck.org.cn/

* 本文标题: 《Domoticz 插件开发教程》

* 本文链接:https://h4ck.org.cn/2020/06/domoticz-%e6%8f%92%e4%bb%b6%e5%bc%80%e5%8f%91%e6%95%99%e7%a8%8b/

* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


分享文章:

相关文章:

  1. domoticz 检测设备在线状态
  2. Domoticz Baby Weather Plugin
  3. ‘WebElement’ object has no attribute ‘sendKeys’
  4. S.H.E – SHERO
  5. IDA Pro Plugin wizard for vs2013
  6. rsrcExtractor IDA Plugin
  7. 奥巴马身后的黑衣美女王紫菲
  8. 《3》–布兰妮 斯皮尔斯(Britney Spears)
  9. OSX pip3 install mysqlclient
  10. BroadlinkRM2 Domotizc Plugin插件
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年6月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 相关文章:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档