Domoticz 插件开发教程

2023-02-24 15:47:51 浏览数 (1)

虽然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-插件开发教程/

* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 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插件

0 人点赞