Updated external content (Jenkins build 102)
parent
1f507c1fb2
commit
3caadfac22
File diff suppressed because it is too large
Load Diff
|
@ -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.
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -17,5 +17,6 @@
|
|||
<properties>
|
||||
<property name="bundleVersion">N/A</property>
|
||||
</properties>
|
||||
<representation-property>bundleVersion</representation-property>
|
||||
</thing-type>
|
||||
</thing:thing-descriptions>
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
<property name="check" />
|
||||
-->
|
||||
</properties>
|
||||
<representation-property>ipAddress</representation-property>
|
||||
|
||||
<config-description-ref uri="bridge-type:velux:bridge"/>
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue