Updated external content (Jenkins build 1341)

pull/2077/head
openHAB Build Server 2023-02-05 04:56:25 +00:00
parent d489efb1ee
commit d62231752a
10 changed files with 218 additions and 63 deletions

File diff suppressed because one or more lines are too long

View File

@ -75,7 +75,7 @@ The settings that start with "dynamic" can be changed frequently, the others are
|---------------------------------------------|--------------------------|----------|------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|
| state#smartCharging | Switch | no | | |
| state#cableLocked | Switch | no | | |
| state#chargerOpMode | Number | no | | |
| state#chargerOpMode | Number | no | 0=Offline, 1=Disconnected, 2=AwaitingStart, 3=Charging, 4=Completed, 5=Error, 6=ReadyToCharge | |
| state#totalPower | Number:Power | no | current session total power (all phases) | |
| state#sessionEnergy | Number:Energy | no | current session | |
| state#dynamicCircuitCurrentP1 | Number:ElectricCurrent | no | | |

View File

@ -51,11 +51,12 @@ WebOS TV has three configuration parameters.
Parameters:
| Name | Description |
|------------|-----------------------------------------------------------------------------------------------------|
| host | Hostname or IP address of TV |
| key | Key exchanged with TV after pairing (enter it after you paired the device) |
| macAddress | The MAC address of your TV to turn on via Wake On Lan (WOL). The binding will attempt to detect it. |
| Name | Description |
|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| host | Hostname or IP address of TV |
| key | Key exchanged with TV after pairing (enter it after you paired the device) |
| macAddress | The MAC address of your TV to turn on via Wake On Lan (WOL). The binding will attempt to detect it. |
| useTLS | Enable Transport Layer Security. This is required by latest firmware versions and should work with older versions as well. In case of compatibility issues it can be disabled. |
### Configuration in .things file

View File

@ -104,11 +104,11 @@ This binding includes rule actions for sending email.
Six different actions available:
- `boolean success = sendMail(String recipient, String subject, String text)`
- `boolean success = sendMailWithAttachment(String recipient, String subject, String text, String URL)`
- `boolean success = sendMailWithAttachments(String recipient, String subject, String text, List<String> URL)`
- `boolean success = sendMailWithAttachment(String recipient, String subject, String text, String url)`
- `boolean success = sendMailWithAttachments(String recipient, String subject, String text, List<String> urlList)`
- `boolean success = sendHtmlMail(String recipient, String subject, String htmlContent)`
- `boolean success = sendHtmlMailWithAttachment(String recipient, String subject, String htmlContent, String URL)`
- `boolean success = sendHtmlMailWithAttachments(String recipient, String subject, String htmlContent, List<String> URL)`
- `boolean success = sendHtmlMailWithAttachment(String recipient, String subject, String htmlContent, String url)`
- `boolean success = sendHtmlMailWithAttachments(String recipient, String subject, String htmlContent, List<String> urlList)`
The `sendMail(...)` send a plain text mail (with attachments if supplied).
The `sendHtmlMail(...)` send a HTML mail (with attachments if supplied).

View File

@ -537,13 +537,13 @@ A Novy extractor fan.
##### Channels
| Name | Channel Type | Item Type | Remarks |
| --------------- | ----------------------------------- | ------------- | ---------------------------------------------------- |
| command | [command](#channels) | Switch | |
| commandString | [commandString](#channels) | String | Options: POWER, UP, DOWN, LIGHT, LEARN, RESET_FILTER |
| fanSpeedControl | [fanspeedcontrol](#channels) | RollerShutter | Options: UP / DOWN |
| fanLight | [fanlight](#channels) | Switch | |
| signalLevel | [system.signal-strength](#channels) | Number | |
| Name | Channel Type | Item Type | Remarks |
| --------------- | ----------------------------------- | ------------- | ---------------------------------------------------------------- |
| command | [command](#channels) | Switch | |
| commandString | [commandString](#channels) | String | Options: POWER, UP, DOWN, LIGHT, LEARN, RESET_FILTER, MOOD_LIGHT |
| fanSpeedControl | [fanspeedcontrol](#channels) | RollerShutter | Options: UP / DOWN |
| fanLight | [fanlight](#channels) | Switch | |
| signalLevel | [system.signal-strength](#channels) | Number | |
##### Configuration Options

View File

@ -16,12 +16,16 @@ install: auto
This binding integrates the Simple Network Management Protocol (SNMP).
SNMP can be used to monitor or control a large variety of network equipment, e.g. routers, switches, NAS-systems.
Currently protocol version 1 and 2c are supported.
Currently, protocol version 1 and 2c are supported.
## Supported Things
Only one thing is supported: `target`.
It represents a single network device.
There are two supported things:
- `target` for SNMP v1/v2c agents
- `target3` for SNMP v3 agents
Both represent a single network device.
Things can be extended with `number`, `string` and `switch` channels.
## Binding Configuration
@ -31,7 +35,7 @@ In this case the `port` parameter defaults to `0`.
For receiving traps a port for receiving traps needs to be configured.
The standard port for receiving traps is 162, however binding to ports lower than 1024 is only allowed with privileged right on most *nix systems.
Therefore it is recommended to bind to a port higher than 1024 (e.g. 8162).
Therefore, it is recommended to bind to a port higher than 1024 (e.g. 8162).
In case the trap sending equipment does not allow to change the destination port (e.g. Mikrotik routers), it is necessary to forward the received packets to the new port.
This can be done either by software like _snmptrapd_ or by adding a firewall rule to your system, e.g. by executing
@ -54,19 +58,11 @@ port=8162
## Thing Configuration
The `target` thing has one mandatory parameter: `hostname`.
It can be set as FQDN or IP address.
### Common parameters for all thing-types
Optional configuration parameters are `community`, `version` and `refresh`.
The SNMP community can be set with the `community` parameter.
It defaults to `public`.
Currently two protocol versions are supported.
The protocol version can be set with the `protocol` parameter.
The allowed values are `v1` or `V1`for v1 and `v2c` or `V2C` for v2c.
The default is `v1`.
The `hostname` is mandatory and can be set as FQDN or IP address.
An optional configuration parameter is `refresh`.
By using the `refresh` parameter the time between two subsequent GET requests to the target can be set.
The default is `60` for 60s.
@ -81,6 +77,44 @@ A single request times out after `timeout` ms.
After `retries` timeouts the refresh operation is considered to be fails and the status of the thing set accordingly.
The default values are `timeout=1500` and `retries=2`.
### `target`
The `target` thing has two optional configuration parameters: `community` and `version`.
The SNMP community for SNMP version 2c can be set with the `community` parameter.
It defaults to `public`.
Currently two protocol versions are supported.
The protocol version can be set with the `protocol` parameter.
The allowed values are `v1` or `V1` for v1 and `v2c` or `V2C` for v2c.
The default is `v1`.
### `target3`
The `target3` thing has additional mandatory parameters: `engineId` and `user`.
The `engineId` must be given in hexadecimal notation (case-insensitive) without separators (e.g. `80000009035c710dbcd9e6`).
The allowed length is 11 to 32 bytes (22 to 64 hex characters).
If you encounter problems, please check if your agent prefixes the set engine id (e.g. Mikrotik uses `80003a8c04` and appends the set value to that).
The `user` parameter is named "securityName" or "userName" in most agents.
Optional configuration parameters are: `securityModel`, `authProtocol`, `authPassphrase`, `privProtocol` and `privPassphrase`.
The `securityModel` can be set to
- `NO_AUTH_NO_PRIV` (default) - no encryption on authentication data, no encryption on transmitted data
- `AUTH_NO_PRIV` - encryption on authentication data, no encryption on transmitted data
- `AUTH_PRIV` - encryption on authentication data, encryption on transmitted data
Depending on the `securityModel` some of the other parameters are also mandatory.
If authentication encryption is required, at least `authPassphrase` needs to be set, while `authProtocol` has a default of `MD5`.
Other possible values for `authProtocol` are `SHA`, `HMAC128SHA224`, `HMAC192SHA256`, `HMAC256SHA384` and `HMAC384SHA512`.
If encryption of transmitted data (privacy encryption) is required, at least `privPassphrase` needs to be set, while `privProtocol` defaults to `DES`.
Other possible values for `privProtocol` are `AES128`, `AES192` and `AES256`.
## Channels
The `target` thing has no fixed channels.
@ -101,7 +135,7 @@ Using`TRAP` channels requires configuring the receiving port (see "Binding confi
The `datatype` parameter is needed in some special cases where data is written to the target.
The default `datatype` for `number` channels is `UINT32`, representing an unsigned integer with 32 bit length.
Alternatively `INT32` (signed integer with 32 bit length), `COUNTER64` (unsigned integer with 64 bit length) or `FLOAT` (floating point number) can be set.
Floating point numbers have to be supplied (and will be send) as strings.
Floating point numbers have to be supplied (and will be sent) as strings.
For `string` channels the default `datatype` is `STRING` (i.e. the item's will be sent as a string).
If it is set to `IPADDRESS`, an SNMP IP address object is constructed from the item's value.
The `HEXSTRING` datatype converts a hexadecimal string (e.g. `aa bb 11`) to the respective octet string before sending data to the target (and vice versa for receiving data).
@ -113,11 +147,16 @@ In `READ`, `READ_WRITE` or `TRAP` mode they change to either `ON` or `OFF` on th
The parameters used for defining the values are `onvalue` and `offvalue`.
The `datatype` parameter is used to convert the configuration strings to the needed values.
| type | item | description |
| ------ | ------ | ------------------------------ |
| number | Number | a channel with a numeric value |
| string | String | a channel with a string value |
| switch | Switch | a channel that has two states |
`number`-type channels have a `unit` parameter.
The unit is added to the received value before it is passed to the channel.
For commands (i.e. sending), the value is first converted to the configured unit.
| type | item | description |
|----------|--------|---------------------------------|
| number | Number | a channel with a numeric value |
| string | String | a channel with a string value |
| switch | Switch | a channel that has two states |
### SNMP Exception (Error) Handling
@ -135,10 +174,10 @@ Valid values are all valid values for that channel (i.e. `ON`/`OFF` for a switch
demo.things:
```java
```
Thing snmp:target:router [ hostname="192.168.0.1", protocol="v2c" ] {
Channels:
Type number : inBytes [ oid=".1.3.6.1.2.1.31.1.1.1.6.2", mode="READ", unit="B" ]
Type number : inBytes [ oid=".1.3.6.1.2.1.31.1.1.1.6.2", mode="READ" ]
Type number : outBytes [ oid=".1.3.6.1.2.1.31.1.1.1.10.2", mode="READ" ]
Type number : if4Status [ oid="1.3.6.1.2.1.2.2.1.7.4", mode="TRAP" ]
Type switch : if4Command [ oid="1.3.6.1.2.1.2.2.1.7.4", mode="READ_WRITE", datatype="UINT32", onvalue="2", offvalue="0" ]
@ -151,7 +190,6 @@ demo.items:
```java
Number inBytes "Router bytes in [%d]" { channel="snmp:target:router:inBytes" }
Number inGigaBytes "Router gigabytes in [%d GB]" { channel="snmp:target:router:inBytes" }
Number outBytes "Router bytes out [%d]" { channel="snmp:target:router:outBytes" }
Number if4Status "Router interface 4 status [%d]" { channel="snmp:target:router:if4Status" }
Switch if4Command "Router interface 4 switch [%s]" { channel="snmp:target:router:if4Command" }

View File

@ -191,7 +191,7 @@ The `wirelessClient` information that is retrieved is available as these channel
| guest | Switch | On if this is a guest client | Read |
| ap | String | Access point (AP) the client is connected to | Read |
| essid | String | Network name (ESSID) the client is connected to | Read |
| rssi | Number | Received signal strength indicator (RSSI) of the client | Read |
| rssi | Number:Power | Received signal strength indicator (RSSI) of the client | Read |
| uptime | Number:Time | Uptime of the client (in seconds) | Read |
| lastSeen | DateTime | Date and Time the client was last seen | Read |
| experience | Number:Dimensionless | Overall health indication of the client (in percentage) | Read |
@ -262,17 +262,17 @@ Replace `$user`, `$password` and `$cid` accordingly.
items/unifi.items
```
Switch MatthewsPhone "Matthew's iPhone [MAP(unifi.map):%s]" { channel="unifi:wirelessClient:home:matthewsPhone:online" }
String MatthewsPhoneSite "Matthew's iPhone: Site [%s]" { channel="unifi:wirelessClient:home:matthewsPhone:site" }
String MatthewsPhoneMAC "Matthew's iPhone: MAC [%s]" { channel="unifi:wirelessClient:home:matthewsPhone:macAddress" }
String MatthewsPhoneIP "Matthew's iPhone: IP [%s]" { channel="unifi:wirelessClient:home:matthewsPhone:ipAddress" }
String MatthewsPhoneAP "Matthew's iPhone: AP [%s]" { channel="unifi:wirelessClient:home:matthewsPhone:ap" }
String MatthewsPhoneESSID "Matthew's iPhone: ESSID [%s]" { channel="unifi:wirelessClient:home:matthewsPhone:essid" }
Number MatthewsPhoneRSSI "Matthew's iPhone: RSSI [%d]" { channel="unifi:wirelessClient:home:matthewsPhone:rssi" }
Number:Time MatthewsPhoneUptime "Matthew's iPhone: Uptime [%1$tR]" { channel="unifi:wirelessClient:home:matthewsPhone:uptime" }
DateTime MatthewsPhoneLastSeen "Matthew's iPhone: Last Seen [%1$tH:%1$tM:%1$tS]" { channel="unifi:wirelessClient:home:matthewsPhone:lastSeen" }
Switch MatthewsPhoneBlocked "Matthew's iPhone: Blocked" { channel="unifi:wirelessClient:home:matthewsPhone:blocked" }
Switch MatthewsPhoneReconnect "Matthew's iPhone: Reconnect" { channel="unifi:wirelessClient:home:matthewsPhone:reconnect" }
Switch MatthewsPhone "Matthew's iPhone [MAP(unifi.map):%s]" { channel="unifi:wirelessClient:home:matthewsPhone:online" }
String MatthewsPhoneSite "Matthew's iPhone: Site [%s]" { channel="unifi:wirelessClient:home:matthewsPhone:site" }
String MatthewsPhoneMAC "Matthew's iPhone: MAC [%s]" { channel="unifi:wirelessClient:home:matthewsPhone:macAddress" }
String MatthewsPhoneIP "Matthew's iPhone: IP [%s]" { channel="unifi:wirelessClient:home:matthewsPhone:ipAddress" }
String MatthewsPhoneAP "Matthew's iPhone: AP [%s]" { channel="unifi:wirelessClient:home:matthewsPhone:ap" }
String MatthewsPhoneESSID "Matthew's iPhone: ESSID [%s]" { channel="unifi:wirelessClient:home:matthewsPhone:essid" }
Number:Power MatthewsPhoneRSSI "Matthew's iPhone: RSSI [%d dBm]" { channel="unifi:wirelessClient:home:matthewsPhone:rssi" }
Number:Time MatthewsPhoneUptime "Matthew's iPhone: Uptime [%1$tR]" { channel="unifi:wirelessClient:home:matthewsPhone:uptime" }
DateTime MatthewsPhoneLastSeen "Matthew's iPhone: Last Seen [%1$tH:%1$tM:%1$tS]" { channel="unifi:wirelessClient:home:matthewsPhone:lastSeen" }
Switch MatthewsPhoneBlocked "Matthew's iPhone: Blocked" { channel="unifi:wirelessClient:home:matthewsPhone:blocked" }
Switch MatthewsPhoneReconnect "Matthew's iPhone: Reconnect" { channel="unifi:wirelessClient:home:matthewsPhone:reconnect" }
```
transform/unifi.map

View File

@ -9,6 +9,10 @@
<label>Setpoint Temperature</label>
<description>Gets or sets the set point of this zone</description>
<category>heating</category>
<tags>
<tag>Setpoint</tag>
<tag>Temperature</tag>
</tags>
<state min="0.0" max="35.0" step="0.5" pattern="%.1f %unit%"/>
</channel-type>
@ -17,6 +21,10 @@
<label>Zone Temperature</label>
<description>Gets the temperature of this zone</description>
<category>heating</category>
<tags>
<tag>Measurement</tag>
<tag>Temperature</tag>
</tags>
<state readOnly="true" pattern="%.1f %unit%"/>
</channel-type>
@ -73,6 +81,10 @@
<channel-type id="powerUsage">
<item-type>Number:Power</item-type>
<label>Power Usage</label>
<tags>
<tag>Measurement</tag>
<tag>Power</tag>
</tags>
<state pattern="%.2f %unit%" readOnly="true"></state>
</channel-type>
@ -153,6 +165,10 @@
<label>Domestic Hot Water Temperature</label>
<description>Gets the temperature of the domestic hot water</description>
<category>heating</category>
<tags>
<tag>Measurement</tag>
<tag>Temperature</tag>
</tags>
<state readOnly="true" pattern="%.1f %unit%"/>
</channel-type>
@ -169,6 +185,10 @@
<label>Boiler Temperature</label>
<description>Gets the temperature of this boiler</description>
<category>heating</category>
<tags>
<tag>Measurement</tag>
<tag>Temperature</tag>
</tags>
<state readOnly="true" pattern="%.1f %unit%"/>
</channel-type>
@ -177,6 +197,10 @@
<label>Return Water Temperature</label>
<description>Gets the temperature of the return water</description>
<category>heating</category>
<tags>
<tag>Measurement</tag>
<tag>Temperature</tag>
</tags>
<state readOnly="true" pattern="%.1f %unit%"/>
</channel-type>
@ -191,7 +215,7 @@
<channel-type id="maxBoilerTemperature">
<item-type>Number:Temperature</item-type>
<label>Max Boiler Temperature</label>
<description>Gets the maximum temperature ofthis boiler</description>
<description>Gets the maximum temperature of this boiler</description>
<category>heating</category>
<state readOnly="true" pattern="%.1f %unit%"/>
</channel-type>
@ -201,6 +225,10 @@
<label>Water Pressure</label>
<description>Gets the water pressure of the boiler</description>
<category>heating</category>
<tags>
<tag>Measurement</tag>
<tag>Pressure</tag>
</tags>
<state readOnly="true" pattern="%.1f %unit%"/>
</channel-type>
@ -225,6 +253,10 @@
<label>Valve Position</label>
<description>Gets the position of the valve (0% closed, 100% open)</description>
<category>heating</category>
<tags>
<tag>Status</tag>
<tag>OpenLevel</tag>
</tags>
<state readOnly="true" pattern="%.0f"/>
</channel-type>

View File

@ -52,7 +52,92 @@
<advanced>true</advanced>
</parameter>
</config-description>
</thing-type>
<thing-type id="target3" extensible="number,string,switch">
<label>SNMP v3 Target</label>
<config-description>
<!-- required -->
<parameter name="hostname" type="text" required="true">
<label>Target Host</label>
<description>Hostname or IP address of target host</description>
<context>network-address</context>
</parameter>
<parameter name="engineId" type="text" required="true">
<label>Engine ID</label>
<description>The authorization engine ID of this target in hexadecimal notation (22-64 characters)</description>
</parameter>
<parameter name="user" type="text" required="true">
<label>Username</label>
</parameter>
<!-- optional -->
<parameter name="securityModel" type="text">
<label>Security Model</label>
<options>
<option value="NO_AUTH_NO_PRIV">No authentication and no Privacy</option>
<option value="AUTH_NO_PRIV">Authentication and no Privacy</option>
<option value="AUTH_PRIV">Authentication and Privacy</option>
</options>
<limitToOptions>true</limitToOptions>
<default>NO_AUTH_NO_PRIV</default>
</parameter>
<parameter name="authProtocol" type="text">
<label>Authentication Protocol</label>
<options>
<option value="MD5">MD5</option>
<option value="SHA">SHA</option>
<option value="HMAC128SHA224">HMAC128SHA224</option>
<option value="HMAC192SHA256">HMAC192SHA256</option>
<option value="HMAC256SHA384">HMAC256SHA384</option>
<option value="HMAC384SHA512">HMAC384SHA512</option>
</options>
<limitToOptions>true</limitToOptions>
<default>MD5</default>
</parameter>
<parameter name="authPassphrase" type="text">
<label>Authentication Passphrase</label>
<context>password</context>
</parameter>
<parameter name="privProtocol" type="text">
<label>Privacy Protocol</label>
<options>
<option value="AES128">AES128</option>
<option value="AES192">AES192</option>
<option value="AES256">AES256</option>
<option value="DES">DES</option>
</options>
<limitToOptions>true</limitToOptions>
<default>DES</default>
</parameter>
<parameter name="privPassphrase" type="text">
<label>Privacy Passphrase</label>
<context>password</context>
</parameter>
<parameter name="refresh" type="integer" min="1">
<label>Refresh Time</label>
<description>Refresh time in s (default 60s)</description>
<default>60</default>
</parameter>
<!-- optional advanced -->
<parameter name="port" type="integer">
<label>Port</label>
<default>161</default>
<advanced>true</advanced>
</parameter>
<parameter name="timeout" type="integer" min="0">
<label>Timeout</label>
<description>Timeout in ms for a single update request</description>
<default>1500</default>
<advanced>true</advanced>
</parameter>
<parameter name="retries" type="integer" min="0">
<label>Retries</label>
<description>Number of retries for an update request</description>
<default>2</default>
<advanced>true</advanced>
</parameter>
</config-description>
</thing-type>
<channel-type id="number">
@ -76,6 +161,10 @@
<default>READ</default>
<limitToOptions>true</limitToOptions>
</parameter>
<parameter name="unit" type="text">
<label>Unit</label>
<description>The unit of this value.</description>
</parameter>
<parameter name="datatype" type="text">
<label>Datatype</label>
<description>Content data type</description>
@ -99,12 +188,6 @@
<description>Value to send if an SNMP exception occurs (default: UNDEF)</description>
<advanced>true</advanced>
</parameter>
<parameter name="unit" type="text">
<label>Unit Of Measurement</label>
<description>Unit of measurement (optional). The unit is used for representing the value in the GUI as well as for
converting incoming values (like from '°F' to '°C'). Examples: "°C", "°F"</description>
<advanced>true</advanced>
</parameter>
</config-description>
</channel-type>

View File

@ -318,10 +318,11 @@
</channel-type>
<channel-type id="rssi">
<item-type>Number</item-type>
<item-type>Number:Power</item-type>
<label>Received Signal Strength Indicator</label>
<description>Received Signal Strength Indicator (RSSI) of the wireless client</description>
<state readOnly="true"></state>
<category>QualityOfService</category>
<state readOnly="true" pattern="%d %unit%"></state>
</channel-type>
<channel-type id="blocked">