Updated external content (Jenkins build 102)

pull/1325/head
openHAB Build Server 2020-12-03 15:39:04 +00:00
parent 1f507c1fb2
commit 3caadfac22
14 changed files with 303 additions and 201 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
---
id: squeezebox
label: Logitech Squeezebox
title: Logitech Squeezebox - Bindings
label: Squeezebox
title: Squeezebox - Bindings
type: binding
description: "This binding integrates the [Logitech Media Server](https://www.mysqueezebox.com) and compatible Squeeze players."
since: 3x
@ -13,7 +13,7 @@ install: auto
{% include base.html %}
# Logitech Squeezebox Binding
# Squeezebox Binding
This binding integrates the [Logitech Media Server](https://www.mysqueezebox.com) and compatible Squeeze players.

View File

@ -48,8 +48,9 @@ The binding supports the following types of Thing.
## Discovery
To simplify the initial provisioning, the binding provides one thing which can be found by autodiscovery.
Unfortunately there is no way to discover Velux bridges themselves within the local network.
But after configuring a Velux Bridge, it is possible to discover all scenes and actuators like windows and rollershutters in that hub.
The binding will automatically discover Velux Bridges within the local network, and place them in the Inbox.
Once a Velux Bridge has been discovered, you will need to enter the `password` Configuration Parameter (see below) before the binding can communicate with it.
And once the Velux Bridge is fully configured, the binding will automatically discover all its respective scenes and actuators (like windows and rollershutters), and place them in the Inbox.
## Thing Configuration
@ -65,7 +66,7 @@ In addition there are some optional Configuration Parameters.
|-------------------------|------------------|:--------:|--------------------------------------------------------------|
| ipAddress | | Yes | Hostname or address for accessing the Velux Bridge. |
| password | velux123 | Yes | Password for authentication against the Velux Bridge.(\*\*) |
| timeoutMsecs | 500 | No | Communication timeout in milliseconds. |
| timeoutMsecs | 2000 | No | Communication timeout in milliseconds. |
| protocol | slip | No | Underlying communication protocol (http/https/slip). |
| tcpPort | 51200 | No | TCP port (80 or 51200) for accessing the Velux Bridge. |
| retries | 5 | No | Number of retries during I/O. |
@ -103,7 +104,7 @@ In addition there are some optional Configuration Parameters.
Notes:
1. To enable a complete invertion of all parameter values (i.e. for Velux windows), use the property `inverted` or add a trailing star to the eight-byte serial number. For an example, see below at item `Velux DG Window Bathroom`.
1. To enable a complete inversion of all parameter values (i.e. for Velux windows), use the property `inverted` or add a trailing star to the eight-byte serial number. For an example, see below at item `Velux DG Window Bathroom`.
2. Somfy devices do not provide a valid serial number to the Velux KLF200 gateway. The bridge reports a registration of the serial number 00:00:00:00:00:00:00:00. Therefore the binding implements a fallback to allow an item specification with a actuator `name` instead of actuator serial number whenever such an invalid serial number occurs. For an example, see below at item `Velux OG Somfy Shutter`.
@ -113,9 +114,10 @@ The Velux Bridge in API version one (firmware version 0.1.1.*) allows activating
So besides the bridge, only one real Thing type exists, namely "scene".
This type of Thing is configured by means of its scene name in the hub.
| Configuration Parameter | Default | Required | Description |
|-------------------------|------------------------|:--------:|-----------------------------------------------------------|
| sceneName | | Yes | Name of the scene in the hub. |
| Configuration Parameter | Default | Required | Description |
|-------------------------|------------------------|:--------:|-----------------------------------------------------------------------|
| sceneName | | Yes | Name of the scene in the hub. |
| velocity | | No | The speed at which the scene will be executed (deafult, silent, fast) |
### Thing Configuration for "vshutter"
@ -142,7 +144,7 @@ The supported Channels and their associated channel types are shown below.
| downtime | Number | Time interval (sec) between last successful and most recent device interaction. |
| doDetection | Switch | Command to activate bridge detection mode. |
### Channels for "window", "rollershutter" Things
### Channels for "window" / "rollershutter" Things
The supported Channels and their associated channel types are shown below.
@ -152,6 +154,15 @@ The supported Channels and their associated channel types are shown below.
| limitMinimum | Rollershutter | Minimum limit position of the window or device. |
| limitMaximum | Rollershutter | Maximum limit position of the window or device. |
The `position` Channel indicates the open/close state of the window (resp. roller shutter) in percent (0% .. 100%) as follows..
- As a general rule the display is the actual physical position.
- If it is moving towards a new target position, the display is the target position.
- After the movement has completed, the display is the final physical position.
- If a window is opened manually, the display is `UNDEF`.
- In case of errors (e.g. window jammed) the display is `UNDEF`.
- If a Somfy actuator is commanded to its 'favorite' position via a Somfy remote control, under some circumstances the display is `UNDEF`. See also Rules below.
### Channels for "actuator" Things
The supported Channels and their associated channel types are shown below.
@ -163,6 +174,8 @@ The supported Channels and their associated channel types are shown below.
| limitMinimum | Rollershutter | Minimum limit position of the window or device. |
| limitMaximum | Rollershutter | Maximum limit position of the window or device. |
See the section above for "window" / "rollershutter" Things for further information concerning the `position` Channel.
### Channels for "scene" Things
The supported Channels and their associated channel types are shown below.
@ -180,6 +193,8 @@ The supported Channel and its associated channel type is shown below.
|--------------|---------------|-----------------------------------------|
| position | Rollershutter | Position of the virtual roller shutter. |
See the section above for "window" / "rollershutter" Things for further information concerning the `position` Channel.
### Channels for "information" Thing
The supported Channel and its associated channel type is shown below.
@ -201,13 +216,13 @@ The bridge Thing provides the following properties.
| Property | Description |
|-------------------|-----------------------------------------------------------------|
| address | IP address of the Bridge |
| check | Result of the check of current item configuration |
| connectionAttempt | Date-Time of last connection attampt |
| connectionSuccess | Date-Time of last successful connection attampt |
| defaultGW | IP address of the Default Gateway of the Bridge |
| DHCP | Flag whether automatic IP configuration is enabled |
| firmware | Software version of the Bridge |
| ipAddress | IP address of the Bridge |
| products | List of all recognized products |
| scenes | List of all defined scenes |
| subnetMask | IP subnetmask of the Bridge |
@ -245,12 +260,14 @@ Frame label="Velux Windows" {
[=> download sample sitemaps file for textual configuration](./doc/conf/sitemaps/velux.sitemap)
### Rules
### Rule for closing windows after a period of time
**Rule for closing windows after a period of time**:
Especially in the colder months, it is advisable to close the window after adequate ventilation. Therefore, automatic closing after one minute is good to save on heating costs.
Especially in the colder months, it is advisable to close the window after adequate ventilation.
Therefore, automatic closing after one minute is good to save on heating costs.
However, to allow the case of intentional prolonged opening, an automatic closure is made only with the window fully open.
Example:
```java
rule "V_WINDOW_changed"
when
@ -259,14 +276,14 @@ then
logInfo("rules.V_WINDOW", "V_WINDOW_changes() called.")
// Get the sensor value
val Number windowState = V_WINDOW.state as DecimalType
logWarn("rules.V_WINDOW", "Window state is "+windowState+".")
logWarn("rules.V_WINDOW", "Window state is " + windowState + ".")
if (windowState < 80) {
if (windowState == 0) {
logWarn("rules.V_WINDOW", "V-WINDOW changed to fully open.")
var int interval = 1
createTimer(now.plusMinutes(interval)) [ |
createTimer(now.plusMinutes(interval)) [ |
logWarn("rules.V_WINDOW:event", "event-V_WINDOW(): setting V-WINDOW to 100.")
sendCommand(V_WINDOW,100)
sendCommand(V_WINDOW, 100)
V_WINDOW.postUpdate(100)
logWarn("rules.V_WINDOW:event", "event-V_WINDOW done.")
]
@ -281,6 +298,69 @@ end
[=> download sample rules file for textual configuration](./doc/conf/rules/velux.rules)
### Rule for rebooting the Bridge
This binding includes a rule action to reboot the Velux Bridge by remote command:
- `boolean isRebooting = rebootBridge()`
_Warning: use this command carefully..._
Example:
```java
rule "Reboot KLF 200"
when
...
then
val veluxActions = getActions("velux", "velux:klf200:myhubname")
if (veluxActions !== null) {
val isRebooting = veluxActions.rebootBridge()
logWarn("Rules", "Velux KLF 200 rebooting: " + isRebooting)
} else {
logWarn("Rules", "Velux KLF 200 actions not found, check thing ID")
}
end
```
### Rule for checking if a Window has been manually opened
In the case that a window has been manually opened, and you then try to move it via the binding, its `position` will become `UNDEF`.
You can exploit this behaviour in a rule to check regularly if a window has been manually opened.
```java
rule "Every 10 minutes, check if window is in manual mode"
when
Time cron "0 0/10 * * * ?" // every 10 minutes
then
if (Velux_Window.state != UNDEF) {
// command the window to its actual position; this will either
// - succeed: the actual position will not change, or
// - fail: the position becomes UNDEF (logged next time this rule executes)
Velux_Window.sendCommand(Velux_Window.state)
} else {
logWarn("Rules", "Velux in Manual mode, trying to close again")
// try to close it
Velux_Window.sendCommand(0)
}
end
```
### Rule for Somfy actuators
If a Somfy actuator is commanded to its 'favorite' position via a Somfy remote control, under some circumstances the display is `UNDEF`.
You can resolve this behaviour in a rule that detects the `UNDEF` position and (re-)commands it to its favorite position.
```java
rule "Somfy Actuator: resolve undefined position"
when
Item Somfy_Actuator changed to UNDEF
then
val favoritePosition = 91
Somfy_Actuator.sendCommand(favoritePosition)
end
```
## Debugging
For those who are interested in more detailed insight of the processing of this binding, a deeper look can be achieved by increased loglevel.

View File

@ -269,9 +269,9 @@
<state readOnly="true"/>
</channel-type>
<channel-type id="filterhours">
<item-type>Number</item-type>
<item-type>Number:Time</item-type>
<label>Filter Use Time</label>
<state pattern="%.0f" readOnly="true"/>
<state pattern="%.0f %unit%" readOnly="true"/>
</channel-type>
<channel-type id="usedhours">
<item-type>Number:Time</item-type>

View File

@ -109,11 +109,18 @@
<channel-type id="armed">
<item-type>Switch</item-type>
<label>Zone Armed</label>
<label>Zone Armed (Switch)</label>
<description>Whether or not the zone is armed</description>
<state readOnly="true"></state>
</channel-type>
<channel-type id="locked">
<item-type>Contact</item-type>
<label>Zone Armed (Contact)</label>
<description>Whether or not the zone is armed (CLOSED when armed)</description>
<state readOnly="true"></state>
</channel-type>
<channel-type id="pgm_status" advanced="true">
<item-type>Switch</item-type>
<label>PGM Status</label>

View File

@ -17,6 +17,7 @@
<channels>
<channel id="tripped" typeId="tripped"/>
<channel id="armed" typeId="armed"/>
<channel id="locked" typeId="locked"/>
<channel id="last_trip" typeId="last_trip"/>
<channel id="low_battery" typeId="system.low-battery"/>
<channel id="bypassed" typeId="bypassed"/>

View File

@ -20,7 +20,7 @@
<channel id="limitMinimum" typeId="limitMinimum"/>
<channel id="limitMaximum" typeId="limitMaximum"/>
</channels>
<representation-property>serialNumber</representation-property>
<representation-property>serial</representation-property>
<config-description-ref uri="thing-type:velux:actuator"/>
</thing-type>
</thing:thing-descriptions>

View File

@ -17,5 +17,6 @@
<properties>
<property name="bundleVersion">N/A</property>
</properties>
<representation-property>bundleVersion</representation-property>
</thing-type>
</thing:thing-descriptions>

View File

@ -32,6 +32,7 @@
<property name="check" />
-->
</properties>
<representation-property>ipAddress</representation-property>
<config-description-ref uri="bridge-type:velux:bridge"/>

View File

@ -20,7 +20,7 @@
<channel id="limitMinimum" typeId="limitMinimum"/>
<channel id="limitMaximum" typeId="limitMaximum"/>
</channels>
<representation-property>unique</representation-property>
<representation-property>serial</representation-property>
<config-description-ref uri="thing-type:velux:rollershutter"/>
</thing-type>
</thing:thing-descriptions>

View File

@ -17,9 +17,8 @@
<category>Blinds</category>
<channels>
<channel id="action" typeId="action"/>
<channel id="silentMode" typeId="silentMode"/>
</channels>
<representation-property>unique</representation-property>
<representation-property>sceneName</representation-property>
<config-description-ref uri="thing-type:velux:scene"/>
</thing-type>
</thing:thing-descriptions>

View File

@ -20,7 +20,7 @@
<channel id="limitMinimum" typeId="limitMinimum"/>
<channel id="limitMaximum" typeId="limitMaximum"/>
</channels>
<representation-property>serialNumber</representation-property>
<representation-property>serial</representation-property>
<config-description-ref uri="thing-type:velux:window"/>
</thing-type>
</thing:thing-descriptions>

View File

@ -272,11 +272,11 @@ The variable `%httpcode` is returned by the plugin and contains the HTTP code re
In case of an error the plugin returns an error code.
| Error Code | Description |
| ---------- | ------------------------------------------------------------------------------------------ |
| 10 | Tasker plugin is disabled |
| 11 | The app couldn't establish a connection |
| 1000+ | A connection was established, but an error occured. The error code is 1000 + the HTTP code |
| Error Code | Description |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 10 | Tasker plugin is disabled |
| 11 | The app couldn't establish a connection |
| 1000+ | A connection was established, but an error occurred. The error code is 1000 + the HTTP code, e.g. 1401 means [Unauthenticated](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_client_errors). |
## Multi server support

View File

@ -266,6 +266,19 @@ If you own a RPi3, RPi3+, RPi4, a RPi0W or any other model with a compatible WiF
For the WiFi based setup to work, you'll need to make your SSID and password known to the system before the first boot.
So in addition to the setup instructions given above, uncomment and complete the lines reading `wifi_ssid="My WiFi SSID"` and `wifi_psk="password123"` in `openhabian.conf`.
#### WiFi Hotspot
Whenever the WiFi interface wlan0 exists but does not have connectivity, openHABian will launch a **Hotspot**.
When you use your mobile phone to scan for WiFi networks, you should be seeing a new network called `openHABian-<n>`.
Connecting will work without a password. Once connected, open your browser and point it at `http://raspberrypi.local` or `http://comitup-<n>`.
This may or may not work for your mobile browser as it requires Bonjour/ZeroConf abilities. If you cannot connect to this address, go to `http://10.42.0.1`.
On that page you can select the SSID of the network you want to connect your system to. Provide the password and press the button.
Note that as soon as you do, the wlan0 IP address changes so your mobile browser will not receive/priovide you any more feedback.
Try to ping the new system's hostname (default is `openHABianDevice`) or check DHCP on your router if your openHABian system appeared there.
For more information on this feature see [comitup-cli](https://davesteele.github.io/comitup/).
You can use `sudo comitup-cli` inside openHABian to change networks and eventually remove network credentials.
Note the hotspot may not only become available during installation: it will remain on standby and will show up again every time your `wlan0` interface is losing connectivity.
The hotspot feature is known to work on RPi 0W, 3 and 4 but is known to often expose problems with WiFi USB adapters.
#### Disable ZRAM
ZRAM is activated by default on fresh installations on ARM hardware except on a 8GB RPi4 as that is known to be incompatible at the time of writing, leading to kernel crashes.
If you want to disable ZRAM for a different reason, use `zraminstall=disable` in `openhabian.conf` to install without.