mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-10 15:11:59 +01:00
[Documentation] Markdown improvements t to z (#14371)
* Apply markdown fixes for bindings with letter _t_ * Apply markdown fixes for bindings with letter _u_ * Apply markdown fixes for bindings with letter _v_ * Apply markdown fixes for bindings with letter _w_ * Apply markdown fixes for bindings with letter _x_ * Apply markdown fixes for bindings with letter _y_ * Apply markdown fixes for bindings with letter _z_ Signed-off-by: Jerome Luckenbach <github@luckenba.ch>
This commit is contained in:
parent
69a09ed825
commit
ce3f673380
@ -6,44 +6,41 @@ Since I only have the new UVR16x2, it has only been tested with this controller.
|
||||
The binding supports two ways to interact with the C.M.I. and all devices connected to the C.M.I. via the CAN bus.
|
||||
These modes are:
|
||||
|
||||
|
||||
Via a "Schema API Page"
|
||||
|
||||
* Read values from output nodes
|
||||
* Change values for controllable nodes
|
||||
- Read values from output nodes
|
||||
- Change values for controllable nodes
|
||||
|
||||
CoE (CAN over Ethernet) Connection
|
||||
|
||||
* Receive data from analog CAN-outputs defined in TAPPS2
|
||||
* Receive data from digital CAN-outputs defined in TAPPS2
|
||||
* Send ON/OFF to digital CAN-inputs defined in TAPPS2
|
||||
* Send numeric values to analog CAN-inputs defined in TAPPS2
|
||||
|
||||
- Receive data from analog CAN-outputs defined in TAPPS2
|
||||
- Receive data from digital CAN-outputs defined in TAPPS2
|
||||
- Send ON/OFF to digital CAN-inputs defined in TAPPS2
|
||||
- Send numeric values to analog CAN-inputs defined in TAPPS2
|
||||
|
||||
Depending on what you want to achieve, either the "Schema API Page" or the CoE way might be better.
|
||||
As rough guidance: Anything you want to provide to the TA equipment it has to work / operate with the CoE might be better.
|
||||
If you plan things mainly for user interaction the "Schema API Page" might be better.
|
||||
|
||||
|
||||
## Prerequisites
|
||||
|
||||
### Setting up the "Schema API Page"
|
||||
|
||||
The "Schema API page" is a special schema page created via TA's *TA-Designer* application available as download on their web site.
|
||||
The "Schema API page" is a special schema page created via TA's _TA-Designer_ application available as download on their web site.
|
||||
This page just needs to exist and be deployed on the C.M.I. but it dosn't need to be linked by the other schema pages you are using to control your TA installation.
|
||||
|
||||
All objects from this special 'API' page are automatically mapped as channels of this thing, so the labels of the objects on this page have to follow a specific schema.
|
||||
|
||||
When adding objects to this page, the schema for the Object's *Pre-Text* field has to follow the schema `<channelName> <channel description>: `.
|
||||
When adding objects to this page, the schema for the Object's _Pre-Text_ field has to follow the schema `<channelName> <channel description>:`.
|
||||
|
||||
Maybe this screenshot shows it best:
|
||||
|
||||
![screenshot-channel-object-details](doc/images/channel-object-details.png)
|
||||
|
||||
The Text from the *Pre-Text* will be used to define the channel.
|
||||
The first word *tempCollector* (highlighted in the screenshot) will be used as channel name, so it has to be unique.
|
||||
Everything else till the final *:* will be used as channel description.
|
||||
Be sure to have at least 2 words in the *Pre-Text* as we need both - the channel name and a description.
|
||||
The Text from the _Pre-Text_ will be used to define the channel.
|
||||
The first word _tempCollector_ (highlighted in the screenshot) will be used as channel name, so it has to be unique.
|
||||
Everything else till the final _:_ will be used as channel description.
|
||||
Be sure to have at least 2 words in the _Pre-Text_ as we need both - the channel name and a description.
|
||||
The binding will log an error otherwise.
|
||||
Also keep in mind: for the channel name we have to adhere to the openHAB channel name conventions - so just use letters and numbers without any special sings here.
|
||||
The type of the channel will be automatically determined by the type of the object added.
|
||||
@ -73,19 +70,19 @@ Don’t forget to reboot the CMI after you uploaded the coe.csv file.
|
||||
|
||||
## Supported Bridge and Things
|
||||
|
||||
* TA C.M.I. schema API connection - Thing
|
||||
- TA C.M.I. schema API connection - Thing
|
||||
|
||||
This thing reflecting one of our 'schema API page' as defined in the prerequisites.
|
||||
This thing doesn't need the bridge.
|
||||
Multiple of these pages on different C.M.I.'s could be defined within an openHAB instance.
|
||||
|
||||
* TA C.M.I. CoE Bridge
|
||||
- TA C.M.I. CoE Bridge
|
||||
|
||||
In order to get the CAN over Ethernet (COE) envionment working a `coe-bridge` has to be created.
|
||||
The bridge itself opens the UDP port 5441 for communication with the C.M.I. devices.
|
||||
The bridge could be used for multiple C.M.I. devices.
|
||||
|
||||
* TA C.M.I. CoE Connection - Thing
|
||||
- TA C.M.I. CoE Connection - Thing
|
||||
|
||||
This thing reflects a connection to a node behind a specific C.M.I..
|
||||
This node could be every CAN-Capable device from TA which allows to define a CAN-Input.
|
||||
@ -141,9 +138,9 @@ The channels have a parameter allowing to configure their update behavior:
|
||||
|
||||
The behavior in detail:
|
||||
|
||||
* `Default` (`0`): When the channel is 'read-only' the update-policy defaults to _On-Fetch_ . When the channel is linked to something that can be modified it defaults to _On-Change_ .
|
||||
* `On-Fetch` (`1`): This is the default for read-only values. This means the channel is updated every time the schema page is polled. Ideally for values you want to monitor and log into charts.
|
||||
* `On-Change` (`2`): When channel values can be changed via OH it is better to only update the channel when the value changes. The binding will cache the previous value and only send an update when it changes to the previous known value. This is especially useful if you intend to link other things (like i.e. Zigbee or Shelly switches) to the TA via OH that can be controlled by different sources. This prevents unintended toggles or even toggle-loops.
|
||||
- `Default` (`0`): When the channel is 'read-only' the update-policy defaults to _On-Fetch_ . When the channel is linked to something that can be modified it defaults to _On-Change_ .
|
||||
- `On-Fetch` (`1`): This is the default for read-only values. This means the channel is updated every time the schema page is polled. Ideally for values you want to monitor and log into charts.
|
||||
- `On-Change` (`2`): When channel values can be changed via OH it is better to only update the channel when the value changes. The binding will cache the previous value and only send an update when it changes to the previous known value. This is especially useful if you intend to link other things (like i.e. Zigbee or Shelly switches) to the TA via OH that can be controlled by different sources. This prevents unintended toggles or even toggle-loops.
|
||||
|
||||
### TA C.M.I. CoE Connection
|
||||
|
||||
@ -207,7 +204,6 @@ The known measure types are:
|
||||
| 12 | Megawatthours | |
|
||||
| 13..21 | Unknown | |
|
||||
|
||||
|
||||
## Full Example
|
||||
|
||||
As there is no common configuration as everything depends on the configuration of the TA devices.
|
||||
@ -215,7 +211,7 @@ So we just can provide some samples providing the basics so you can build the co
|
||||
|
||||
Example of a _.thing_ file:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing tacmi:cmiSchema:apiLab "CMIApiPage"@"lab" [ host="192.168.178.33", username="user", password="secret", schemaId=4 ]
|
||||
Bridge tacmi:coe-bridge:coe-bridge "TA C.M.I. Bridge"
|
||||
{
|
||||
@ -233,7 +229,7 @@ Bridge tacmi:coe-bridge:coe-bridge "TA C.M.I. Bridge"
|
||||
|
||||
Sample _.items_-File:
|
||||
|
||||
```
|
||||
```java
|
||||
# APIPage-items
|
||||
Number TACMI_Api_tempCollector "Collector temp [%.1f °C]" <temperature> {channel="tacmi:cmiSchema:apiLab:tempCollector"}
|
||||
String TACMI_Api_hc1OperationMode "Heating Curcuit 1 Operation Mode [%s]" {channel="tacmi:cmiSchema:apiLab:hc1OperationMode"}
|
||||
@ -248,7 +244,7 @@ Switch TACMI_Digital_Out_1 "TA output switch 1 [%s]" {channel="tacmi:cmi:coe
|
||||
|
||||
Sample _.sitemap_ snipplet
|
||||
|
||||
```
|
||||
```perl
|
||||
sitemap heatingTA label="heatingTA"
|
||||
{
|
||||
Text item=TACMI_Api_tempCollector
|
||||
@ -269,7 +265,7 @@ You might already have noticed that some state information is in German.
|
||||
As I have set the `Accept-Language`-Http-Header to `en` for all request and found no other way setting a language for the schema pages I assume it is a lack of internationalization in the C.M.I.
|
||||
You could circumvent this by creating map files to map things properly to your language.
|
||||
|
||||
If you want to see the possible options of a multi-state field you could open the *schema API page* with your web browser and click on the object.
|
||||
If you want to see the possible options of a multi-state field you could open the _schema API page_ with your web browser and click on the object.
|
||||
A Popup with an option field will be shown showing all possible options, like in this screenshot:
|
||||
|
||||
![screenshot-operation-mode-values](doc/images/operation-mode-values.png)
|
||||
|
@ -15,10 +15,9 @@ Parameter | Required | Description
|
||||
`username` | yes | Username used to log in at [my.tado](https://my.tado.com)
|
||||
`password` | yes | Password of the username
|
||||
|
||||
|
||||
Example `tado.things`
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge tado:home:demo [ username="mail@example.com", password="secret" ]
|
||||
```
|
||||
|
||||
@ -32,7 +31,7 @@ Name | Type | Description | Read/Write
|
||||
|
||||
## `zone` Thing
|
||||
|
||||
A *zone* is an area/room of your home.
|
||||
A _zone_ is an area/room of your home.
|
||||
You have defined them during installation.
|
||||
One zone relates to one page in the tado° mobile- or webapp.
|
||||
|
||||
@ -46,7 +45,7 @@ Zones can either be added through discovery or manually. Following up on the abo
|
||||
|
||||
Example `tado.things`
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge tado:home:demo [ username="mail@example.com", password="secret" ] {
|
||||
zone heating [id=1]
|
||||
zone ac [id=2]
|
||||
@ -138,7 +137,7 @@ It is again easiest to refer to discovery in order to find the `id`.
|
||||
|
||||
Example `tado.things`:
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge tado:home:demo [ username="mail@example.com", password="secret" ] {
|
||||
mobiledevice phone [id=12345]
|
||||
}
|
||||
@ -150,13 +149,13 @@ Name | Type | Description | Read/Write
|
||||
-|-|-|-
|
||||
`atHome` | Switch | ON if mobile device is in HOME mode, OFF if AWAY | R
|
||||
|
||||
Group `OR` can be used to define an item for *'is any device at home'*.
|
||||
Group `OR` can be used to define an item for _'is any device at home'_.
|
||||
|
||||
# Full Example
|
||||
|
||||
## tado.things
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge tado:home:demo [ username="mail@example.com", password="secret" ] {
|
||||
zone heating [id=1]
|
||||
zone ac [id=2]
|
||||
@ -168,7 +167,7 @@ Bridge tado:home:demo [ username="mail@example.com", password="secret" ] {
|
||||
|
||||
## tado.items
|
||||
|
||||
```
|
||||
```java
|
||||
Switch TADO_PRESENCE_home "Tado Presence: [MAP(presence.map):%s]" { channel="tado:home:demo:homePresence" }
|
||||
Number:Temperature HEAT_inside_temperature "Inside Temperature" { channel="tado:zone:demo:heating:currentTemperature" }
|
||||
Number HEAT_humidity "Humidity" { channel="tado:zone:demo:heating:humidity" }
|
||||
@ -203,7 +202,7 @@ Switch Phone_atHome "Phone location [MAP(presence.map)
|
||||
|
||||
## tado.sitemap
|
||||
|
||||
```
|
||||
```perl
|
||||
sitemap tado label="Tado"
|
||||
{
|
||||
Frame label="Status" {
|
||||
@ -255,7 +254,7 @@ sitemap tado label="Tado"
|
||||
|
||||
## presence.map
|
||||
|
||||
```
|
||||
```text
|
||||
ON=at home
|
||||
OFF=away
|
||||
NULL=lost
|
||||
|
@ -72,17 +72,16 @@ Note: All apikeys and locationids are only examples!
|
||||
|
||||
tankerkoenig.things:
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge tankerkoenig:webservice:WebserviceName "MyWebserviceName" [ apikey="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", refresh= 60, modeOpeningTime =false ] {
|
||||
Thing station StationName1 "MyStationName1" @ "GasStations"[ locationid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ]
|
||||
Thing station StationName2 "MyStationName2" @ "GasStations"[ locationid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ]
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
tankerkoenig.items:
|
||||
|
||||
```
|
||||
```java
|
||||
Switch Station_Holidays "Today is holiday: [%s]" { channel="tankerkoenig:webservice:WebserviceName:holiday"}
|
||||
Number E10_1 "E10 [%.3f €]" { channel="tankerkoenig:station:WebserviceName:StationName1:e10" }
|
||||
Number E5_1 "E5 [%.3f €]" { channel="tankerkoenig:station:WebserviceName:StationName1:e5" }
|
||||
@ -108,7 +107,7 @@ Set the logging level for the binding to DEBUG (Karaf-Console command: "log:set
|
||||
Create a new Station (in order to start the "initialize" routine).
|
||||
Check the openhab.log for entries like:
|
||||
|
||||
```
|
||||
```text
|
||||
2017-06-25 16:02:12.679 [DEBUG] [ig.internal.data.TankerkoenigService] - getTankerkoenigDetailResult IOException:
|
||||
java.io.IOException: java.util.concurrent.ExecutionException: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
|
||||
......
|
||||
@ -121,15 +120,15 @@ Note: You must restart openHAB after a Java update.
|
||||
|
||||
If you receive the error because you are running an old Linux installation which does not have the latest java-versions available in its package-repositories, you may be able to fix the issue using one of the three options below:
|
||||
|
||||
1.) Update the Linux system and install the latest Java version
|
||||
1. Update the Linux system and install the latest Java version
|
||||
|
||||
2.) Download the most recent JDK and install it directly on to your system without using a pre-composed package
|
||||
1. Download the most recent JDK and install it directly on to your system without using a pre-composed package
|
||||
|
||||
3.) Update the cacerts store by importing the missing certificate
|
||||
1. Update the cacerts store by importing the missing certificate
|
||||
|
||||
Check which CA has validated the certificate
|
||||
|
||||
Navigate to https://creativecommons.tankerkoenig.de/
|
||||
Navigate to <https://creativecommons.tankerkoenig.de/>
|
||||
|
||||
Check which CA has validated the certificate
|
||||
|
||||
@ -166,6 +165,6 @@ This switch can be set either manually (only suggested for testing!) or by a rul
|
||||
|
||||
## Tankerkönig API
|
||||
|
||||
* <https://creativecommons.tankerkoenig.de/> (sorry, only available in German)
|
||||
- <https://creativecommons.tankerkoenig.de/> (sorry, only available in German)
|
||||
|
||||
* [MTS-K]: <https://www.bundeskartellamt.de/DE/Wirtschaftsbereiche/Mineral%C3%B6l/MTS-Kraftstoffe/Verbraucher/verbraucher_node.html>
|
||||
- [MTS-K]: <https://www.bundeskartellamt.de/DE/Wirtschaftsbereiche/Mineral%C3%B6l/MTS-Kraftstoffe/Verbraucher/verbraucher_node.html>
|
||||
|
@ -59,7 +59,6 @@ The thing has the following configuration parameters:
|
||||
| ipAddress | IP Address of the device. |
|
||||
| pollingInterval | Refresh interval in seconds. Optional. The default is 30 seconds |
|
||||
|
||||
|
||||
## Channels
|
||||
|
||||
All devices support some of the following channels:
|
||||
@ -80,18 +79,16 @@ All devices support some of the following channels:
|
||||
| | todayEnergyUsage | Number:Energy | used energy today (Wh) | P110, P115 |
|
||||
| | todayRuntime | Number:Time | seconds output was on today | P110, P115 |
|
||||
|
||||
|
||||
## Channel Refresh
|
||||
|
||||
When the thing receives a `RefreshType` command the thing will send a new refreshRequest over http.
|
||||
To minimize network traffic the default refresh-rate is set to 30 seconds. This can be reduced down to 10 seconds in advanced settings of the device. If any command was sent to a channel, it will do an immediately refresh of the whole device.
|
||||
|
||||
|
||||
## Full Example
|
||||
|
||||
### tapocontrol.things:
|
||||
|
||||
```
|
||||
```java
|
||||
tapocontrol:bridge:myTapoBridge "Cloud-Login" [ username="you@yourpovider.com", password="verysecret" ]
|
||||
tapocontrol:P100:myTapoBridge:mySocket "My-Socket" (tapocontrol:bridge:myTapoBridge) [ ipAddress="192.168.178.150", pollingInterval=30 ]
|
||||
tapocontrol:L510:myTapoBridge:whiteBulb "white-light" (tapocontrol:bridge:myTapoBridge) [ ipAddress="192.168.178.151", pollingInterval=30 ]
|
||||
@ -105,6 +102,6 @@ Bridge tapocontrol:bridge:secondBridgeExample "Cloud-Login" [
|
||||
|
||||
### tapocontrol.items:
|
||||
|
||||
```
|
||||
```java
|
||||
Switch TAPO_SOCKET "socket" { channel="tapocontrol:P100:myTapoBridge:mySocket:actuator#output" }
|
||||
```
|
||||
|
@ -1,37 +1,37 @@
|
||||
# Telegram Binding
|
||||
|
||||
The Telegram binding allows sending and receiving messages to and from Telegram clients (https://telegram.org), by using the Telegram Bot API.
|
||||
The Telegram binding allows sending and receiving messages to and from Telegram clients (<https://telegram.org>), by using the Telegram Bot API.
|
||||
|
||||
# Prerequisites
|
||||
|
||||
As described in the Telegram Bot API (https://core.telegram.org/bots#6-botfather), this is the manual procedure needed in order to get the necessary information.
|
||||
As described in the Telegram Bot API (<https://core.telegram.org/bots#6-botfather>), this is the manual procedure needed in order to get the necessary information.
|
||||
|
||||
1. Create a new Bot and get the Token
|
||||
|
||||
- On a Telegram client open a chat with BotFather.
|
||||
- Send `/newbot` to BotFather and fill in all the needed information. The authentication token that is given will be needed in the next steps.
|
||||
- The token is a combination with double point separated parts of numbers and letters e.g.: 158642643:ABCHL_O-MUovQ1NzrDF5R_nqLbFhPPrg9Jps
|
||||
- On a Telegram client open a chat with BotFather.
|
||||
- Send `/newbot` to BotFather and fill in all the needed information. The authentication token that is given will be needed in the next steps.
|
||||
- The token is a combination with double point separated parts of numbers and letters e.g.: 158642643:ABCHL_O-MUovQ1NzrDF5R_nqLbFhPPrg9Jps
|
||||
|
||||
2. Create the destination chat
|
||||
1. Create the destination chat
|
||||
|
||||
- Open a chat with your new Bot and send any message to it. The next step will not work unless you send a message to your bot first.
|
||||
- Open a chat with your new Bot and send any message to it. The next step will not work unless you send a message to your bot first.
|
||||
|
||||
3. Get the chatID
|
||||
1. Get the chatID
|
||||
|
||||
- Open a browser and invoke `https://api.telegram.org/bot<token>/getUpdates` (where `<token>` is the authentication token previously obtained e.g.: `https://api.telegram.org/bot158642643:ABCHL_O-MUovQ1NzrDF5R_nqLbFhPPrg9Jps/getUpdates`)
|
||||
- Look at the JSON result to find the value of `id`: that's the chatID.
|
||||
- Open a browser and invoke `https://api.telegram.org/bot<token>/getUpdates` (where `<token>` is the authentication token previously obtained e.g.: `https://api.telegram.org/bot158642643:ABCHL_O-MUovQ1NzrDF5R_nqLbFhPPrg9Jps/getUpdates`)
|
||||
- Look at the JSON result to find the value of `id`: that's the chatID.
|
||||
|
||||
Note that if using a Telegram group chat, the group chatIDs are prefixed with a dash that must be included in the config (e.g. `-22334455`).
|
||||
If this does not work for you (the JSON response may be empty), or you want to send to *more* than one recipient (= another chatID), the alternative is to contact (= open a chat with) a Telegram bot to respond with the chatID.
|
||||
If this does not work for you (the JSON response may be empty), or you want to send to _more_ than one recipient (= another chatID), the alternative is to contact (= open a chat with) a Telegram bot to respond with the chatID.
|
||||
There's a number of them such as `@myidbot` or `@chatid_echo_bot` - open a chat, eventually tap `/start` and it will return the chatID you're looking for.
|
||||
Another option is `@getidsbot` which gives you much more information.
|
||||
Note bots may work or not at any time so eventually you need to try another one.
|
||||
|
||||
4. Test the bot
|
||||
1. Test the bot
|
||||
|
||||
- Open this URL in your web browser, replacing <token> with the authentication token and <chatId> with the chatId:
|
||||
- `https://api.telegram.org/bot<token>/sendMessage?chat_id=<chatId>&text=testing`
|
||||
- Your Telegram-bot should send you a message with the text: `testing`
|
||||
- Open this URL in your web browser, replacing <token> with the authentication token and <chatId> with the chatId:
|
||||
- `https://api.telegram.org/bot<token>/sendMessage?chat_id=<chatId>&text=testing`
|
||||
- Your Telegram-bot should send you a message with the text: `testing`
|
||||
|
||||
**Notice:** By default your bot will only receive messages that either start with the '/' symbol or mention the bot by username (or if you talk to it directly).
|
||||
However, if you add your bot to a group you must either talk to BotFather and send the command "/setprivacy" and then disable it or you give admin rights to your bot in that group.
|
||||
@ -43,12 +43,12 @@ Otherwise you will not be able to receive those messages.
|
||||
|
||||
The Telegram binding supports the following state channels which originate from the last message sent to the Telegram bot:
|
||||
|
||||
* message text or URL
|
||||
* message date
|
||||
* full name of sender (first name + last name)
|
||||
* username of sender
|
||||
* chat id (used to identify the chat of the last message)
|
||||
* reply id (used to identify an answer from a user of a previously sent message by the binding)
|
||||
- message text or URL
|
||||
- message date
|
||||
- full name of sender (first name + last name)
|
||||
- username of sender
|
||||
- chat id (used to identify the chat of the last message)
|
||||
- reply id (used to identify an answer from a user of a previously sent message by the binding)
|
||||
|
||||
There are also event channels that provide received messages or query callback responses as JSON payloads for easier handling in rules.
|
||||
|
||||
@ -79,31 +79,31 @@ To use the reply function, chat ids need to be bi-directional.
|
||||
|
||||
telegram.thing (no proxy):
|
||||
|
||||
```
|
||||
```java
|
||||
Thing telegram:telegramBot:Telegram_Bot [ chatIds="ID", botToken="TOKEN" ]
|
||||
```
|
||||
|
||||
telegram.thing (multiple chat ids, one bi-directional chat (ID1), one outbound-only (ID2)):
|
||||
|
||||
```
|
||||
```java
|
||||
Thing telegram:telegramBot:Telegram_Bot [ chatIds="ID1",">ID2", botToken="TOKEN" ]
|
||||
```
|
||||
|
||||
telegram.thing (markdown format):
|
||||
|
||||
```
|
||||
```java
|
||||
Thing telegram:telegramBot:Telegram_Bot [ chatIds="ID", botToken="TOKEN", parseMode ="Markdown" ]
|
||||
```
|
||||
|
||||
telegram.thing (SOCKS5 proxy server is used):
|
||||
|
||||
```
|
||||
```java
|
||||
Thing telegram:telegramBot:Telegram_Bot [ chatIds="ID", botToken="TOKEN", proxyHost="HOST", proxyPort="PORT", proxyType="TYPE" ]
|
||||
```
|
||||
|
||||
or HTTP proxy server
|
||||
|
||||
```
|
||||
```java
|
||||
Thing telegram:telegramBot:Telegram_Bot [ chatIds="ID", botToken="TOKEN", proxyHost="localhost", proxyPort="8123", proxyType="HTTP" ]
|
||||
```
|
||||
|
||||
@ -174,7 +174,7 @@ See the [`CallbackQuery` class for details](https://github.com/pengrad/java-tele
|
||||
|
||||
This binding includes a number of rule actions, which allow the sending of Telegram messages from within rules.
|
||||
|
||||
```
|
||||
```java
|
||||
val telegramAction = getActions("telegram","telegram:telegramBot:<uid>")
|
||||
```
|
||||
|
||||
@ -182,7 +182,7 @@ where uid is the Thing UID of the Telegram thing (not the chat id!).
|
||||
|
||||
Once this action instance is retrieved, you can invoke the `sendTelegram' method on it:
|
||||
|
||||
```
|
||||
```java
|
||||
telegramAction.sendTelegram("Hello world!")
|
||||
```
|
||||
|
||||
@ -196,9 +196,9 @@ These actions will send a message to all chat ids configured for this bot.
|
||||
| Action | Description |
|
||||
|----------------------------|--------------|
|
||||
| sendTelegram(String message) | Sends a message. |
|
||||
| sendTelegram(String format, Object... args) | Sends a formatted message (See https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html for more information).
|
||||
| sendTelegram(String format, Object... args) | Sends a formatted message (See <https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html> for more information).
|
||||
| sendTelegramQuery(String message, String replyId, String... buttons) | Sends a question to the user that can be answered via the defined buttons. The replyId can be freely choosen and is sent back with the answer. Then, the id is required to identify what question has been answered (e.g. in case of multiple open questions). The final result looks like this: ![Telegram Inline Keyboard](doc/queryExample.png). |
|
||||
| sendTelegramAnswer(String replyId, String message) | Sends a message after the user has answered a question. You should *always* call this method after you received an answer. It will remove buttons from the specific question and will also stop the progress bar displayed at the client side. If no message is necessary, just pass `null` here. |
|
||||
| sendTelegramAnswer(String replyId, String message) | Sends a message after the user has answered a question. You should _always_ call this method after you received an answer. It will remove buttons from the specific question and will also stop the progress bar displayed at the client side. If no message is necessary, just pass `null` here. |
|
||||
| sendTelegramPhoto(String photoURL, String caption) | Sends a picture. Can be one of the URL formats, see the Note below, or a base64 encoded image (simple base64 data or data URI scheme). |
|
||||
| sendTelegramPhoto(String photoURL, String caption, String username, String password) | Sends a picture which is downloaded from a username/password protected http/https address. |
|
||||
| sendTelegramAnimation(String animationURL, String caption) | Send animation files either GIF or H.264/MPEG-4 AVC video without sound. |
|
||||
@ -206,17 +206,17 @@ These actions will send a message to all chat ids configured for this bot.
|
||||
|
||||
**Note:** In actions that require a file URL, the following formats are acceptable:
|
||||
|
||||
+ http://foo.com/bar.jpg
|
||||
+ https://foo.com/bar.jpg
|
||||
+ file://c:\\foo\\bar.jpg
|
||||
+ c:\\foo\\bar.jpg
|
||||
+ /etc/openhab/html/bar.jpg
|
||||
- `http://foo.com/bar.jpg`
|
||||
- `https://foo.com/bar.jpg`
|
||||
- `file://c:\\foo\\bar.jpg`
|
||||
- `c:\\foo\\bar.jpg`
|
||||
- `/etc/openhab/html/bar.jpg`
|
||||
|
||||
### Actions to send messages to a particular chat
|
||||
|
||||
Just put the chat id (must be a long value!) followed by an "L" as the first argument to one of the above mentioned APIs:
|
||||
|
||||
```
|
||||
```java
|
||||
telegramAction.sendTelegram(1234567L, "Hello world!")
|
||||
```
|
||||
|
||||
@ -225,7 +225,7 @@ telegramAction.sendTelegram(1234567L, "Hello world!")
|
||||
This binding stores the `callbackId` and recalls it using the `replyId`, but this information is lost if openHAB restarts.
|
||||
If you store the `callbackId`, `chatId`, and optionally `messageId` somewhere that will be persisted when openHAB shuts down, you can use the following overload of `sendTelegramAnswer` to respond to any Callback Query.
|
||||
|
||||
```
|
||||
```java
|
||||
telegramAction.sendTelegramAnswer(chatId, callbackId, messageId, message)
|
||||
```
|
||||
|
||||
|
@ -53,12 +53,12 @@ Standard mode doesn't depend on the pricing options, but it adds some useful inf
|
||||
|
||||
## Discovery
|
||||
|
||||
Before the binding can be used, a serial controller must be added. This needs to be done manually. Select __Teleinfo Serial Controller__ and enter the serial port.
|
||||
Before the binding can be used, a serial controller must be added. This needs to be done manually. Select **Teleinfo Serial Controller** and enter the serial port.
|
||||
|
||||
If you want to place the Teleinfo modem apart from your openHAB server, you can forward its serial messages over TCP/IP (_ser2net_).
|
||||
In this case you have to define the serial port of your Teleinfo modem like this `rfc2217://ip:port`. When using _ser2net_ make sure to use _telnet_ instead of _raw_ in the _ser2net_ config file.
|
||||
|
||||
Once the serial controller added, electricity meters will automatically appear after starting discovery, with default label __Teleinfo ADCO #adco__ where __#adco__ is your electricity meter identifier.
|
||||
Once the serial controller added, electricity meters will automatically appear after starting discovery, with default label **Teleinfo ADCO #adco** where **#adco** is your electricity meter identifier.
|
||||
|
||||
## Thing Configuration
|
||||
|
||||
@ -119,8 +119,8 @@ The following channels are available on all Linky telemeters in standard TIC mod
|
||||
| commonLSMGroup#ngtf | `String` | Provider schedule name |
|
||||
| commonLSMGroup#ltarf | `String` | Current pricing label |
|
||||
| commonLSMGroup#east | `Number:Energy` | Total active energy withdrawn |
|
||||
| commonLSMGroup#easf*XX* | `Number:Energy` | Active energy withdrawn from provider on index *XX*, *XX* in {01,...,10} |
|
||||
| commonLSMGroup#easd*XX* | `Number:Energy` | Active energy withdrawn from distributor on index *XX*, *XX* in {01,...,04} |
|
||||
| commonLSMGroup#easf_XX_ | `Number:Energy` | Active energy withdrawn from provider on index _XX, XX_ in {01,...,10} |
|
||||
| commonLSMGroup#easd_XX_ | `Number:Energy` | Active energy withdrawn from distributor on index _XX, XX_ in {01,...,04} |
|
||||
| commonLSMGroup#irms1 | `Number:ElectricCurrent` | RMS Current on phase 1 |
|
||||
| commonLSMGroup#urms1 | `Number:Potential` | RMS Voltage on phase 1 |
|
||||
| commonLSMGroup#pref | `Number:Power` | Reference apparent power |
|
||||
@ -131,8 +131,8 @@ The following channels are available on all Linky telemeters in standard TIC mod
|
||||
| commonLSMGroup#ccasn | `Number:Power` | Active charge point N |
|
||||
| commonLSMGroup#ccasnMinus1 | `Number:Power` | Active charge point N-1 |
|
||||
| commonLSMGroup#umoy1 | `Number:Potential` | Mean Voltage on phase 1 |
|
||||
| commonLSMGroup#dpm*X* | `String` | Start of mobile peak period *X*, *X* in {1,2,3} |
|
||||
| commonLSMGroup#fpm*X* | `String` | End of mobile peak period *X*, *X* in {1,2,3} |
|
||||
| commonLSMGroup#dpm_X_ | `String` | Start of mobile peak period _X, X_ in {1,2,3} |
|
||||
| commonLSMGroup#fpm_X_ | `String` | End of mobile peak period _X, X_ in {1,2,3} |
|
||||
| commonLSMGroup#msg1 | `String` | Short message |
|
||||
| commonLSMGroup#msg2 | `String` | Very short message |
|
||||
| commonLSMGroup#ntarf | `String` | Index of current pricing |
|
||||
@ -146,40 +146,40 @@ The following channels are available on all Linky telemeters in standard TIC mod
|
||||
| commonLSMGroup#ccasnDate | `DateTime` | Timestamp of CCASN value |
|
||||
| commonLSMGroup#ccasnMinus1Date | `DateTime` | Timestamp of CCASN-1 value |
|
||||
| commonLSMGroup#umoy1Date | `DateTime` | Timestamp of UMOY1 value |
|
||||
| commonLSMGroup#dpm*X*Date | `DateTime` | Date of DPM*X*, *X* in {1,2,3} |
|
||||
| commonLSMGroup#fpm*X*Date | `DateTime` | Date of FPM*X*, *X* in {1,2,3} |
|
||||
| commonLSMGroup#relais*X* | `Switch` | state of relais *X*, *X* in {1,...,8} |
|
||||
| commonLSMGroup#dpm_X_Date | `DateTime` | Date of DPM_X_, _X_ in {1,2,3} |
|
||||
| commonLSMGroup#fpm_X_Date | `DateTime` | Date of FPM_X_, _X_ in {1,2,3} |
|
||||
| commonLSMGroup#relais_X_ | `Switch` | state of relais _X, X_ in {1,...,8} |
|
||||
|
||||
#### Three phase only channels
|
||||
|
||||
These channels are available on the following telemeters:
|
||||
|
||||
* lstm_electricitymeter
|
||||
* lsmt_prod_electricitymeter
|
||||
- lstm_electricitymeter
|
||||
- lsmt_prod_electricitymeter
|
||||
|
||||
| Channel | Type | Description |
|
||||
|-----------------------------------------|---------------------------|-----------------------------------------------------------------------------------|
|
||||
| threePhasedLSMGroup#irms*X* | `Number:ElectricCurrent` | RMS Current on phase *X*, *X* in {2,3} |
|
||||
| threePhasedLSMGroup#urms*X* | `Number:Potential` | RMS Voltage on phase *X*, *X* in {2,3} |
|
||||
| threePhasedLSMGroup#umoy*X* | `Number:Potential` | Mean Voltage on phase *X*, *X* in {2,3} |
|
||||
| threePhasedLSMGroup#sinsts*X* | `Number:Power` | Instantaneous withdrawn apparent power on phase *X*, *X* in {1,2,3} |
|
||||
| threePhasedLSMGroup#smaxsn*X* | `Number:Power` | Maximum withdrawn apparent power of the day on phase *X*, *X* in {1,2,3} |
|
||||
| commonLSMGroup#umoy*X*Date | `DateTime` | Timestamp of UMOY*X* value, *X* in {2,3} |
|
||||
| threePhasedLSMGroup#smaxsn*X*Minus1 | `Number:Power` | Maximum withdrawn apparent power on the previous day on phase *X*, *X* in {1,2,3} |
|
||||
| threePhasedLSMGroup#smaxs*X*nDate | `DateTime` | Timestamp of SMAXSN*X* value, *X* in {1,2,3} |
|
||||
| threePhasedLSMGroup#smaxsn*X*Minus1Date | `DateTime` | Timestamp of SMAXSN*X*-1 value, *X* in {1,2,3} |
|
||||
| threePhasedLSMGroup#irms_X_ | `Number:ElectricCurrent` | RMS Current on phase _X, X_ in {2,3} |
|
||||
| threePhasedLSMGroup#urms_X_ | `Number:Potential` | RMS Voltage on phase _X, X_ in {2,3} |
|
||||
| threePhasedLSMGroup#umoy_X_ | `Number:Potential` | Mean Voltage on phase _X, X_ in {2,3} |
|
||||
| threePhasedLSMGroup#sinsts_X_ | `Number:Power` | Instantaneous withdrawn apparent power on phase _X, X_ in {1,2,3} |
|
||||
| threePhasedLSMGroup#smaxsn_X_ | `Number:Power` | Maximum withdrawn apparent power of the day on phase _X, X_ in {1,2,3} |
|
||||
| commonLSMGroup#umoy_X_Date | `DateTime` | Timestamp of UMOY_X_ value, _X_ in {2,3} |
|
||||
| threePhasedLSMGroup#smaxsn_X_Minus1 | `Number:Power` | Maximum withdrawn apparent power on the previous day on phase _X, X_ in {1,2,3} |
|
||||
| threePhasedLSMGroup#smaxs_X_nDate | `DateTime` | Timestamp of SMAXSN_X_ value, _X_ in {1,2,3} |
|
||||
| threePhasedLSMGroup#smaxsn_X_Minus1Date | `DateTime` | Timestamp of SMAXSN_X_-1 value, _X_ in {1,2,3} |
|
||||
|
||||
#### Producer only channels
|
||||
|
||||
These channels are available on the following telemeters:
|
||||
|
||||
* lsmm_prod_electricitymeter
|
||||
* lsmt_prod_electricitymeter
|
||||
- lsmm_prod_electricitymeter
|
||||
- lsmt_prod_electricitymeter
|
||||
|
||||
| Channel | Type | Description |
|
||||
|-----------------------------------|-----------------|----------------------------------------------------------|
|
||||
| producerLSMGroup#eait | `Number:Energy` | Total active energy injected |
|
||||
| producerLSMGroup#erq*X* | `Number:Energy` | Total reactive energy on index *X*, *X* in {1,...,4} |
|
||||
| producerLSMGroup#erq_X_ | `Number:Energy` | Total reactive energy on index _X, X_ in {1,...,4} |
|
||||
| producerLSMGroup#sinsti | `Number:Energy` | Instantaneous injected apparent power |
|
||||
| producerLSMGroup#smaxin | `Number:Power` | Maximum injected apparent power of the day |
|
||||
| producerLSMGroup#smaxinMinus1 | `Number:Power` | Maximum injected apparent power of the previous day |
|
||||
@ -196,7 +196,7 @@ These channels are available on the following telemeters:
|
||||
|
||||
The following `things` file declare a serial USB controller on `/dev/ttyUSB0` for a Single-phase Electricity meter with HC/HP option - CBEMM Evolution ICC and adco `031528042289` :
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge teleinfo:serialcontroller:teleinfoUSB [ serialport="/dev/ttyUSB0" ]{
|
||||
Thing cbemm_evolution_icc_hc_electricitymeter myElectricityMeter [ adco="031528042289"]
|
||||
}
|
||||
@ -206,7 +206,7 @@ Bridge teleinfo:serialcontroller:teleinfoUSB [ serialport="/dev/ttyUSB0" ]{
|
||||
|
||||
This `items` file links some supported channels to items:
|
||||
|
||||
```
|
||||
```java
|
||||
Number:Power TLInfoEDF_PAPP "PAPP" <energy> {channel="teleinfo:cbemm_evolution_icc_hc_electricitymeter:teleinfoUSB:myElectricityMeter:papp"}
|
||||
Number:ElectricCurrent TLInfoEDF_ISOUSC "ISOUSC" <energy> {channel="teleinfo:cbemm_evolution_icc_hc_electricitymeter:teleinfoUSB:myElectricityMeter:isousc"}
|
||||
String TLInfoEDF_PTEC "PTEC" <energy> {channel="teleinfo:cbemm_evolution_icc_hc_electricitymeter:teleinfoUSB:myElectricityMeter:ptec"}
|
||||
@ -222,7 +222,7 @@ String TLInfoEDF_HHPHC "HHPHC" <energy> {channel="teleinfo:cbemm_evolution_icc_h
|
||||
|
||||
The following `things` file declare a serial USB controller on `/dev/ttyUSB0` for a Linky Single-phase Electricity meter in standard TIC mode and adsc `031528042289` :
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge teleinfo:serialcontroller:teleinfoUSB [ serialport="/dev/ttyUSB0", ticMode="STANDARD" ]{
|
||||
Thing lsmm_electricitymeter myElectricityMeter [ adco="031528042289"]
|
||||
}
|
||||
@ -230,7 +230,7 @@ Bridge teleinfo:serialcontroller:teleinfoUSB [ serialport="/dev/ttyUSB0", ticMod
|
||||
|
||||
This `items` file links some supported channels to items:
|
||||
|
||||
```
|
||||
```java
|
||||
Number:Power TLInfoEDF_SINSTS "SINSTS" <energy> ["Measurement","Power"] {channel="teleinfo:lsmm_electricitymeter:teleinfoUSB:myElectricityMeter:commonLSMGroup#sinsts"}
|
||||
Number:ElectricCurrent TLInfoEDF_PREF "PREF" <energy> ["Measurement","Power"] {channel="teleinfo:lsmm_electricitymeter:teleinfoUSB:myElectricityMeter:commonLSMGroup#pref"}
|
||||
String TLInfoEDF_LTARF "LTARF" <energy> ["Status"] {channel="teleinfo:lsmm_electricitymeter:teleinfoUSB:myElectricityMeter:commonLSMGroup#ltarf"}
|
||||
@ -253,5 +253,5 @@ The Teleinfo binding has been successfully validated with below hardware configu
|
||||
| GCE Electronics USB Teleinfo module [(more details)](https://gce-electronics.com/fr/usb/655-module-teleinfo-usb.html) | Linky | Single-phase HCHP | Standard |
|
||||
| Cartelectronic USB Teleinfo modem [(more details)](https://www.cartelectronic.fr/teleinfo-compteur-enedis/17-teleinfo-1-compteur-usb-rail-din-3760313520028.html) | Linky | Three-phase TEMPO | Standard |
|
||||
|
||||
On Linky telemeters, only *historical* TIC mode is currently supported.
|
||||
On Linky telemeters, only _historical_ TIC mode is currently supported.
|
||||
The method for changing the TIC mode of a Linky telemeter is explained [here](https://forum.gce-electronics.com/t/comment-passer-un-cpt-linky-en-mode-standard/8206/7).
|
||||
|
@ -20,29 +20,28 @@ The latest versions have also implemented Z-Wave as transmission protocol which
|
||||
|
||||
This binding supports the following thing types:
|
||||
|
||||
* *Dimmable Device* - Usually for controlling lamps. `dimmer`
|
||||
* *Switchable Device* - On/Off only could be lamps or other electronic equipment. `switch`
|
||||
* *Sensors* - Temperature- and humidity-sensors. `sensor`
|
||||
- _Dimmable Device_ - Usually for controlling lamps. `dimmer`
|
||||
- _Switchable Device_ - On/Off only could be lamps or other electronic equipment. `switch`
|
||||
- _Sensors_ - Temperature- and humidity-sensors. `sensor`
|
||||
|
||||
Additionally the binding have two types of bridge things which correspond to available API types:
|
||||
|
||||
* *Telldus Core Bridge* - Oldest API, used by USB devices. `telldus-core`
|
||||
* *Telldus Live Bridge* - Telldus Cloud service, all devices with online access. `telldus-live`
|
||||
* *Telldus Local Bridge* - Telldus Local API, Tellstick Net v2/Tellstick ZNet Lite v1/v2. `telldus-local`
|
||||
- _Telldus Core Bridge_ - Oldest API, used by USB devices. `telldus-core`
|
||||
- _Telldus Live Bridge_ - Telldus Cloud service, all devices with online access. `telldus-live`
|
||||
- _Telldus Local Bridge_ - Telldus Local API, Tellstick Net v2/Tellstick ZNet Lite v1/v2. `telldus-local`
|
||||
|
||||
### Switchbased sensors workaround
|
||||
|
||||
***Switchbased sensors workaround***
|
||||
|
||||
* Some 433MHz magnetic & PIR sensors, for example, magnetic door sensors, are detected as regular `switch` Things instead of type `contact`. There is technically no way of distinguish them apart from regulur `switch` Things. For using them as sensors only (not paired to a lamp) please consult the workaround in the channel section.
|
||||
- Some 433MHz magnetic & PIR sensors, for example, magnetic door sensors, are detected as regular `switch` Things instead of type `contact`. There is technically no way of distinguish them apart from regulur `switch` Things. For using them as sensors only (not paired to a lamp) please consult the workaround in the channel section.
|
||||
|
||||
## Discovery
|
||||
|
||||
Devices which is added to *Telldus Core*, *Telldus Live* and *Telldus Local* can be discovered by openHAB.
|
||||
Devices which is added to _Telldus Core_, _Telldus Live_ and _Telldus Local_ can be discovered by openHAB.
|
||||
|
||||
When you add this binding it will try to discover the *Telldus Core Bridge*.
|
||||
When you add this binding it will try to discover the _Telldus Core Bridge_.
|
||||
If it is installed correct its devices will show up.
|
||||
|
||||
If you want to use the *Telldus Live* or *Telldus Local*, their bridges, *Telldus Live bridge* or *Tellstick Local*, needs to be added manually.
|
||||
If you want to use the _Telldus Live_ or _Telldus Local_, their bridges, _Telldus Live bridge_ or _Tellstick Local_, needs to be added manually.
|
||||
|
||||
## Binding Configuration
|
||||
|
||||
@ -62,12 +61,11 @@ Use the option `repeat` for that. Default resend count is 2.
|
||||
|
||||
Depending on your Tellstick device type there is different ways of using this binding.
|
||||
The binding implements three different APIs:
|
||||
**1)** *Telldus Core* which is a local only interface supported by USB based device. <br>
|
||||
**2)** *Telldus Live* which is a REST based cloud service maintained by Telldus.
|
||||
**3)** *Telldus Local* which is a REST based local service maintained by Telldus.
|
||||
**1)** _Telldus Core_ which is a local only interface supported by USB based device. <br>
|
||||
**2)** _Telldus Live_ which is a REST based cloud service maintained by Telldus.
|
||||
**3)** _Telldus Local_ which is a REST based local service maintained by Telldus.
|
||||
<br>
|
||||
|
||||
|
||||
Depending on your Tellstick model, different bridge-types are available:
|
||||
|
||||
| Model | Telldus Core | Telldus Live | Local REST API | Verified working with openHAB |
|
||||
@ -83,11 +81,11 @@ Depending on your Tellstick model, different bridge-types are available:
|
||||
|
||||
> To enable communication between openHAB and tellstick-core service (Telldus center) they must use same architecture, eg. 32-bit or 64-bit. The supplied version from Telldus is compiled against 32-bit architecture. Therefore, it is better to use 32-bit java for openHAB. To check which version of Java is currently in use, run: `java -d32 -version`
|
||||
>
|
||||
> *For changing architecture in Linux check out: `dpkg --add-architecture`*
|
||||
> _For changing architecture in Linux check out: `dpkg --add-architecture`_
|
||||
|
||||
The telldus-core bridge uses a library on the local computer which is a `.dll` file for Windows and a `.so` file for Linux. The default one is usually correct.
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge tellstick:telldus-core:1 "Tellstick Duo" [resendInterval=200,libraryPath="C:/Program Files/Telldus/;C:/Program Files (x86)/Telldus/"]
|
||||
```
|
||||
|
||||
@ -101,7 +99,7 @@ Optional:
|
||||
To configure Telldus Live you have request OAuth tokens from Telldus.
|
||||
Goto this page <https://api.telldus.com/keys/index> and request your keys and update the config.
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge tellstick:telldus-live:2 "Tellstick ZWave" [publicKey="XXX", privateKey="YYYY", token= "ZZZZ", tokenSecret="UUUU"]
|
||||
```
|
||||
|
||||
@ -114,7 +112,7 @@ Required:
|
||||
|
||||
Optional:
|
||||
|
||||
- **refreshInterval:** How often we should contact *Telldus Live* to check for updates (in ms)
|
||||
- **refreshInterval:** How often we should contact _Telldus Live_ to check for updates (in ms)
|
||||
|
||||
#### Telldus Local Bridge
|
||||
|
||||
@ -128,12 +126,11 @@ In step 2) when you authenticate the application in your favorite browser, choos
|
||||
|
||||
Copy the 'token' returned in Step 3) and use that as accessToken in the local bridge config.
|
||||
|
||||
```
|
||||
```text
|
||||
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImF1ZCI6IkV4YW1wbGUgYXBwIiwiZXhwIjoxNDUyOTUxNTYyfQ.eyJyZW5ldyI6dHJ1ZSwidHRsIjo4NjQwMH0.HeqoFM6-K5IuQa08Zr9HM9V2TKGRI9VxXlgdsutP7sg"
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge tellstick:telldus-local:3 "Tellstick Local ZWave" [ipAddress="x.y.z.w" , accesToken= "XYZ...W"]
|
||||
```
|
||||
|
||||
@ -144,7 +141,7 @@ Required:
|
||||
|
||||
Optional:
|
||||
|
||||
- **refreshInterval:** How often we should contact *Telldus Local* to check for updates (in ms)
|
||||
- **refreshInterval:** How often we should contact _Telldus Local_ to check for updates (in ms)
|
||||
|
||||
## Channels
|
||||
|
||||
@ -194,14 +191,14 @@ To achieve that we will create a proxy item which is updated by a rule.
|
||||
|
||||
First create another proxy item for every sensor:
|
||||
|
||||
```
|
||||
```java
|
||||
Switch front_door_sensor "Front door" <door> {channel="tellstick:switch:1:7:state"}
|
||||
Contact front_door_proxy "Front door" <door>
|
||||
```
|
||||
|
||||
Then create a rule which updates the proxy item:
|
||||
|
||||
```
|
||||
```java
|
||||
rule "proxy_front_door_on"
|
||||
when
|
||||
Item front_door_sensor changed to ON
|
||||
@ -221,7 +218,7 @@ end
|
||||
|
||||
### tellstick.things
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge tellstick:telldus-core:1 "Tellstick Duo" [resendInterval=200] {
|
||||
dimmer BedroomCeilingLamp1 [protocol="arctech",model="selflearning-dimmer",name="BedroomCeilingLamp1",deviceId="8"]
|
||||
switch LivingTV [protocol="arctech",name="LivingTV",deviceId="5"]
|
||||
@ -237,7 +234,7 @@ Bridge tellstick:telldus-local:3 "Tellstick Local ZWave" [ipAddress="192.168.50.
|
||||
|
||||
### tellstick.items
|
||||
|
||||
```
|
||||
```java
|
||||
Number OutsideSensor1_Temperture <temperature> { channel="tellstick:sensor:tellstickgateway:OutsideSensor1:temperature"}
|
||||
Number OutsideSensor1_Humidity <humidity> { channel="tellstick:sensor:tellstickgateway:OutsideSensor1:humidity"}
|
||||
|
||||
|
@ -28,7 +28,6 @@ Note: Vehicles that are asleep are discovered and put into the Inbox, but their
|
||||
As an effect, their channels are missing until the vehicle wakes up and can be fully queried.
|
||||
A vehicle can be manually woken up by opening the Tesla app and checking the vehicle status in there.
|
||||
|
||||
|
||||
## Bridge Configuration
|
||||
|
||||
The `account` bridge requires an OAuth2 refresh token as the only parameter `refreshToken`.
|
||||
@ -42,7 +41,6 @@ Please note that we in general consider it dangerous to enter your credentials i
|
||||
|
||||
When using one of such apps, simply copy and paste the received refresh token into the account configuration.
|
||||
|
||||
|
||||
## Thing Configuration Parameters
|
||||
|
||||
The vehicle Thing requires the vehicle's VIN as a configuration parameter `vin`.
|
||||
@ -54,7 +52,6 @@ Additionally, the follow optional parameters may be defined.
|
||||
| valetpin | Valet PIN | false | PIN to use when enabling Valet Mode |
|
||||
| allowWakeupForCommands | Allow Wake-Up For Commands | false | Wake up the vehicle to send commands. May cause vehicle to stay awake |
|
||||
|
||||
|
||||
For further flexibility and experimentation, the following advanced parameters may also be set.
|
||||
|
||||
| Parameter Name | Label | Default Value | Description |
|
||||
@ -72,7 +69,6 @@ This setting is not recommended as it will result in a significant vampire drain
|
||||
|
||||
`inactivity` setting is ignored and will always be five minutes if homelink is available (car is at home)
|
||||
|
||||
|
||||
## Channels
|
||||
|
||||
All vehicles support a huge number of channels - the following list shows the standard ones:
|
||||
@ -90,7 +86,6 @@ All vehicles support a huge number of channels - the following list shows the st
|
||||
| odometer | Number:Length | Odometer | Odometer of the vehicle |
|
||||
| speed | Number:Speed | Speed | Vehicle speed |
|
||||
|
||||
|
||||
Additionally, these advanced channels are available (not all are available on all vehicle types, e.g., the sunroof):
|
||||
|
||||
| Channel ID | Item Type | Label | Description |
|
||||
@ -197,13 +192,11 @@ Additionally, these advanced channels are available (not all are available on al
|
||||
| wakeup | Switch | Wake Up | Wake up the vehicle from a (deep) sleep |
|
||||
| wiperbladeheater | Switch | Wiperblade Heater | Indicates if the wiperblade heater is switched on |
|
||||
|
||||
|
||||
|
||||
## Example
|
||||
|
||||
demo.Things:
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge tesla:account:myaccount "My Tesla Account" [ refreshToken="xxxx" ] {
|
||||
model3 mycar "My favorite car" [ vin="5YJSA7H25FFP53736"]
|
||||
}
|
||||
@ -211,7 +204,7 @@ Bridge tesla:account:myaccount "My Tesla Account" [ refreshToken="xxxx" ] {
|
||||
|
||||
demo.items:
|
||||
|
||||
```
|
||||
```java
|
||||
DateTime TeslaEventstamp {channel="model3:myaccount:mycar:eventstamp"}
|
||||
String TeslaState {channel="model3:myaccount:mycar:state"}
|
||||
Number TeslaSpeed {channel="model3:myaccount:mycar:speed"}
|
||||
@ -274,7 +267,7 @@ Number:Temperature TeslaOutsideTemperature {channel="model3:myaccount:mycar
|
||||
|
||||
demo.sitemap:
|
||||
|
||||
```
|
||||
```perl
|
||||
sitemap main label="Main"
|
||||
{
|
||||
Text item=TeslaUsableBatteryLevel label="Car" icon="tesla" valuecolor=[<=20="red",>60="green"]
|
||||
@ -368,7 +361,7 @@ sitemap main label="Main"
|
||||
|
||||
demo.rule (for graphing online status in sitemap above)
|
||||
|
||||
```
|
||||
```java
|
||||
rule "Tesla State Changed"
|
||||
when
|
||||
Item TeslaState changed
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
The Tibber Binding connects to the [Tibber API](https://developer.tibber.com), and enables users to retrieve electricity data:
|
||||
|
||||
* Default: Frequent polls are performed to retrieve electricity price and cost/consumption information
|
||||
* Optional: For users having Tibber Pulse, a websocket connection is established to retrieve live measurements
|
||||
- Default: Frequent polls are performed to retrieve electricity price and cost/consumption information
|
||||
- Optional: For users having Tibber Pulse, a websocket connection is established to retrieve live measurements
|
||||
|
||||
Refresh time (poll frequency) is set manually as part of setup, minimum 1 minute.
|
||||
|
||||
@ -57,28 +57,27 @@ Tibber Pulse (optional):
|
||||
| Min Power Production | Min Power Production since Midnight | True |
|
||||
| Max Power Production | Max Power Production since Midnight | True |
|
||||
|
||||
|
||||
## Binding Configuration
|
||||
|
||||
To access and initiate the Tibber Binding, a Tibber user account is required.
|
||||
|
||||
The following input is required for initialization:
|
||||
|
||||
* Tibber token
|
||||
* Tibber HomeId
|
||||
* Refresh Interval (min 1 minute)
|
||||
- Tibber token
|
||||
- Tibber HomeId
|
||||
- Refresh Interval (min 1 minute)
|
||||
|
||||
Note: Tibber token is retrieved from your Tibber account:
|
||||
[Tibber Account](https://developer.tibber.com/settings/accesstoken)
|
||||
|
||||
Note: Tibber HomeId is retrieved from [developer.tibber.com](https://developer.tibber.com/explorer):
|
||||
|
||||
* Sign in (Tibber user account) and "load" personal token.
|
||||
* Copy query from below and paste into the Tibber API Explorer, and run query.
|
||||
* If Tibber Pulse is connected, the Tibber API Explorer will report "true" for "realTimeConsumptionEnabled"
|
||||
* Copy HomeId from Tibber API Explorer, without quotation marks, and use this in the bindings configuration.
|
||||
- Sign in (Tibber user account) and "load" personal token.
|
||||
- Copy query from below and paste into the Tibber API Explorer, and run query.
|
||||
- If Tibber Pulse is connected, the Tibber API Explorer will report "true" for "realTimeConsumptionEnabled"
|
||||
- Copy HomeId from Tibber API Explorer, without quotation marks, and use this in the bindings configuration.
|
||||
|
||||
```
|
||||
```json
|
||||
{
|
||||
viewer {
|
||||
homes {
|
||||
@ -210,13 +209,13 @@ Example of tomorrow and today prices data structure - an array of tuples:
|
||||
|
||||
### demo.things
|
||||
|
||||
```
|
||||
```java
|
||||
Thing tibber:tibberapi:7cfae492 [ homeid="xxx", token="xxxxxxx" ]
|
||||
```
|
||||
|
||||
### demo.items:
|
||||
|
||||
```
|
||||
```java
|
||||
Number:Dimensionless TibberAPICurrentTotal "Current Total Price [%.2f NOK]" {channel="tibber:tibberapi:7cfae492:current_total"}
|
||||
DateTime TibberAPICurrentStartsAt "Timestamp - Current Price" {channel="tibber:tibberapi:7cfae492:current_startsAt"}
|
||||
String TibberAPICurrentLevel "Price Level" {channel="tibber:tibberapi:7cfae492:current_level"}
|
||||
|
@ -14,10 +14,10 @@ There are no current plans to add any of the authenticated API features to this
|
||||
All TiVo devices must:
|
||||
|
||||
1. Be connected to a local area TCP/IP network that can be reached by the openHAB instance (this is not the WAN network interface used by cable service providers on some TiVos to provide the TV signals).
|
||||
2. Have the Network Remote Control function enabled to support discovery and control of the device. This setting can be found using the remote control at:
|
||||
1. Have the Network Remote Control function enabled to support discovery and control of the device. This setting can be found using the remote control at:
|
||||
|
||||
* TiVo branded boxes - using the remote go to TiVo Central > Messages & Settings > Settings > Remote, CableCARD & Devices > Network Remote Control. Choose Enabled, press Select.
|
||||
* Virgin Media branded boxes - using the remote select Home > Help and Settings > Settings > Devices > Network Remote Control. Select the option Allow network based remote controls.
|
||||
- TiVo branded boxes - using the remote go to TiVo Central > Messages & Settings > Settings > Remote, CableCARD & Devices > Network Remote Control. Choose Enabled, press Select.
|
||||
- Virgin Media branded boxes - using the remote select Home > Help and Settings > Settings > Devices > Network Remote Control. Select the option Allow network based remote controls.
|
||||
|
||||
## Discovery
|
||||
|
||||
@ -40,12 +40,12 @@ The thing has the following configuration parameters:
|
||||
| keepConActive | Keep Connection Open | Keep connection to the TiVo open. Recommended for monitoring the TiVo for changes in TV channels. <br><br>Disable if other applications that use the Remote Control Protocol port will also be used e.g. mobile phone remote control applications. **Default: True (Enabled)** |
|
||||
| pollForChanges | Poll for Channel Changes | Check TiVo for channel changes. Enable if openHAB and a physical remote control (or other services use the Remote Control Protocol) will be used. **Default: True (Enabled)** |
|
||||
| pollInterval | Polling Interval (Seconds) | Number of seconds between polling jobs to update status information from the TiVo. **Default: 10** |
|
||||
| cmdWaitInterval | Command Wait Interval (Milliseconds) | Period to wait *after* a command is sent to the TiVo in milliseconds, before checking that the command has completed. **Default: 200** |
|
||||
| cmdWaitInterval | Command Wait Interval (Milliseconds) | Period to wait _after_ a command is sent to the TiVo in milliseconds, before checking that the command has completed. **Default: 200** |
|
||||
|
||||
Some notes:
|
||||
|
||||
* If openHAB is the only device or application that you have that makes use of the Network Remote Control functions of your TiVo, enable the **Keep Connection Open** option. This will connect and lock the port in-use preventing any other device from connecting it. If you use some other application, disable this option. Performance is improved if the connection is kept open.
|
||||
* **Poll for Channel Changes** only needs to be enabled if you also plan to use the TiVo remote control or other application to change channel. If openHAB is your only method of control, you can disable this option. Turning polling off, minimizes the periodic polling overhead on your hardware.
|
||||
- If openHAB is the only device or application that you have that makes use of the Network Remote Control functions of your TiVo, enable the **Keep Connection Open** option. This will connect and lock the port in-use preventing any other device from connecting it. If you use some other application, disable this option. Performance is improved if the connection is kept open.
|
||||
- **Poll for Channel Changes** only needs to be enabled if you also plan to use the TiVo remote control or other application to change channel. If openHAB is your only method of control, you can disable this option. Turning polling off, minimizes the periodic polling overhead on your hardware.
|
||||
|
||||
## Channels
|
||||
|
||||
@ -60,10 +60,10 @@ All devices support the following channels:
|
||||
| kbdCommand | String | Keyboard Command (KEYBOARD) | Sends a code corresponding to a keyboard key press to the TiVo e.g. A-Z. See Appendix A in document TCP Remote Protocol 1.1 for supported characters and special character codes. |
|
||||
| dvrStatus | String | TiVo Status | Action return code / channel information returned by the TiVo. |
|
||||
|
||||
* To change channels simply post/send the number of the channel to channelSet or channelForce. For OTA channels, a decimal for the sub-channel must be specified (ie: 2.1), for all others just send the channel as a whole number (ie: 100).
|
||||
* Keyboard commands must currently be issued one character at a time to the item (this is how the TiVo natively supports this command).
|
||||
* To send multiple copies of the same keyboard command, append an asterisk with the number of repeats required e.g. NUM2*4 would send the number 2 four times. This is useful for performing searches where the number characters can only be accessed by pressing the keys multiple times in rapid succession i.e. each key press cycles through characters A, B, C, 2.
|
||||
* Special characters must also be changed to the appropriate command e.g. the comma symbol(`,`) must not be sent it should be replaced by 'COMMA'.
|
||||
- To change channels simply post/send the number of the channel to channelSet or channelForce. For OTA channels, a decimal for the sub-channel must be specified (ie: 2.1), for all others just send the channel as a whole number (ie: 100).
|
||||
- Keyboard commands must currently be issued one character at a time to the item (this is how the TiVo natively supports this command).
|
||||
- To send multiple copies of the same keyboard command, append an asterisk with the number of repeats required e.g. NUM2*4 would send the number 2 four times. This is useful for performing searches where the number characters can only be accessed by pressing the keys multiple times in rapid succession i.e. each key press cycles through characters A, B, C, 2.
|
||||
- Special characters must also be changed to the appropriate command e.g. the comma symbol(`,`) must not be sent it should be replaced by 'COMMA'.
|
||||
|
||||
Available IR Commands to use with `irCommand` channel:
|
||||
UP
|
||||
@ -122,16 +122,16 @@ VIDEO_MODE_NATIVE
|
||||
|
||||
## Full Example
|
||||
|
||||
**tivo.things**
|
||||
### tivo.things
|
||||
|
||||
```
|
||||
```java
|
||||
tivo:sckt:Living_Room "Living Room TiVo" [ host="192.168.0.19" ]
|
||||
|
||||
```
|
||||
|
||||
**tivo.items:**
|
||||
|
||||
```
|
||||
```java
|
||||
/* TIVO */
|
||||
String TiVo_Status "Status" {channel="tivo:sckt:Living_Room:dvrStatus"}
|
||||
String TiVo_MenuScreen "Menu Screen" {channel="tivo:sckt:Living_Room:menuTeleport", autoupdate="false"}
|
||||
@ -145,12 +145,12 @@ String TiVo_KeyboardStr "Search String"
|
||||
Switch TiVo_Search "Search Demo"
|
||||
```
|
||||
|
||||
* The item `TiVo_SetChannelName` depends upon a valid `tivo.map` file to translate channel numbers to channel names. The openHAB **MAP** transformation service must also be installed.
|
||||
* See [this discussion thread] (https://community.openhab.org/t/bogob-big-ol-grid-o-buttons-is-this-even-possible-yes-yes-it-is/115343) for an example of setting up an advanced UI to simulate the look of the TiVo remote.
|
||||
- The item `TiVo_SetChannelName` depends upon a valid `tivo.map` file to translate channel numbers to channel names. The openHAB **MAP** transformation service must also be installed.
|
||||
- See [this discussion thread] (<https://community.openhab.org/t/bogob-big-ol-grid-o-buttons-is-this-even-possible-yes-yes-it-is/115343>) for an example of setting up an advanced UI to simulate the look of the TiVo remote.
|
||||
|
||||
**tivo.sitemap:**
|
||||
### tivo.sitemap
|
||||
|
||||
```
|
||||
```perl
|
||||
sitemap tivo label="Tivo Central" {
|
||||
Frame label="Tivo" {
|
||||
Text item=TiVo_SetChannel label="Current Channel [%s]" icon="screen"
|
||||
@ -171,11 +171,11 @@ sitemap tivo label="Tivo Central" {
|
||||
}
|
||||
```
|
||||
|
||||
* This example does not use the 'Current Channel - Forced (FORCECH)' channel. This method will interrupt your recordings in progress when all your tuners are busy, so it is omitted for safety's sake.
|
||||
- This example does not use the 'Current Channel - Forced (FORCECH)' channel. This method will interrupt your recordings in progress when all your tuners are busy, so it is omitted for safety's sake.
|
||||
|
||||
**tivo.map:**
|
||||
### tivo.map
|
||||
|
||||
```
|
||||
```text
|
||||
NULL=Unknown
|
||||
-=Unknown
|
||||
rec-NULL=Unknown
|
||||
@ -195,16 +195,15 @@ rec-1=Recording
|
||||
etc...
|
||||
```
|
||||
|
||||
**tivo.rules:**
|
||||
### tivo.rules
|
||||
|
||||
- This rule was used to overcome limitations within the HABpanel user interface at the moment when using transform/map functionality.
|
||||
|
||||
* This rule was used to overcome limitations within the HABpanel user interface at the moment when using transform/map functionality.
|
||||
- The following rule shows how a string change to the item `TiVo_KeyboardStr` is split into individual characters and sent to the TiVo. The method to send a keystroke multiple times is used to simulate rapid keystrokes required to achieve number based searched.
|
||||
|
||||
* The following rule shows how a string change to the item `TiVo_KeyboardStr` is split into individual characters and sent to the TiVo. The method to send a keystroke multiple times is used to simulate rapid keystrokes required to achieve number based searched.
|
||||
- A simple custom template widget can be used within the HABpanel user interface for tablet-based searches. See [this discussion thread] (<https://community.openhab.org/t/tivo-1-1-protocol-new-binding-contribution/5572/21?u=andymb>).
|
||||
|
||||
* A simple custom template widget can be used within the HABpanel user interface for tablet-based searches. See [this discussion thread] (https://community.openhab.org/t/tivo-1-1-protocol-new-binding-contribution/5572/21?u=andymb).
|
||||
|
||||
```
|
||||
```java
|
||||
rule "TiVo Search Command"
|
||||
when
|
||||
Item TiVo_Search received command
|
||||
|
@ -11,19 +11,17 @@ TouchWand products are compatible with most major Z-Wave products, IP controlled
|
||||
This binding supports switches, shutters dimmers alarm sensors and wall controllers configured in Touchwand Wanderfull™ Hub Controller.
|
||||
The binding also supports [AcWand™](https://www.touchwand.com/products/touchwand-acwand/) - smart control for your air conditioner controller.
|
||||
|
||||
|
||||
![AcWand](https://www.touchwand.com/wp-content/uploads/2019/04/AcWand-300x350.png)
|
||||
|
||||
|
||||
## Control and Status
|
||||
|
||||
1. **switch** - control - ON/OFF
|
||||
2. **shutter** - control - UP/DOWN/STOP
|
||||
3. **dimmer** - control - ON/OFF/BRIGHTNESS
|
||||
4. **wallcontroller** - control - LONG/SHORT
|
||||
5. **alarmsensor** - status channels depend on alarm sensor type
|
||||
5. **bsensor** - binary status channels depend on alarm sensor type (motion, door , smoke)
|
||||
6. **thermostat** - AcWand™ smart control for your air conditioner
|
||||
1. **shutter** - control - UP/DOWN/STOP
|
||||
1. **dimmer** - control - ON/OFF/BRIGHTNESS
|
||||
1. **wallcontroller** - control - LONG/SHORT
|
||||
1. **alarmsensor** - status channels depend on alarm sensor type
|
||||
1. **bsensor** - binary status channels depend on alarm sensor type (motion, door , smoke)
|
||||
1. **thermostat** - AcWand™ smart control for your air conditioner
|
||||
|
||||
## Discovery
|
||||
|
||||
@ -42,8 +40,6 @@ Auto discovery scans priodically and add to the Inbox new devices added to the T
|
||||
| port | Management port (default 80) | integer | no |
|
||||
| addSecondaryUnits | If the controller is primary, add secondary controllers units as well | bool | no |
|
||||
|
||||
|
||||
|
||||
## Thing Configuration
|
||||
|
||||
No thing configuration is needed
|
||||
@ -92,13 +88,13 @@ Alarm Sensor thing represents a generic sensor, relevant sensor channels will be
|
||||
Things can be defined manually
|
||||
The syntax for touchwand this is
|
||||
|
||||
```xtend
|
||||
```java
|
||||
Thing <binding_id>:<type_id>:<thing_id> "Label" @ "Location"
|
||||
```
|
||||
|
||||
Where <thing_id> is the unit id in touchwand hub.
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge touchwand:bridge:1921681116 [ipAddress="192.168.1.116", username="username" , password="password"]{
|
||||
Thing switch 408 "Strairs light"
|
||||
Thing switch 411 "South Garden light"
|
||||
@ -111,13 +107,13 @@ Thing shutter 346 "Living Room South shutter"
|
||||
|
||||
### touchwand.items
|
||||
|
||||
```
|
||||
```java
|
||||
/* Shutters */
|
||||
Rollershutter Rollershutter_345 "Living Room North shutter" {channel="touchwand:shutter:1921681116:345:shutter"}
|
||||
Rollershutter Rollershutter_346 "Living Room South shutter" {channel="touchwand:shutter:1921681116:346:shutter"}
|
||||
```
|
||||
|
||||
```
|
||||
```java
|
||||
/* Switches and Dimmers */
|
||||
Switch Switch_408 "Stairs light" {channel="touchwand:switch:1921681116:408:switch"}
|
||||
Switch Switch_411 "South Garden light" {channel="touchwand:switch:1921681116:411:switch"}
|
||||
|
@ -40,13 +40,13 @@ This binding provides only the `router` Thing.
|
||||
|
||||
`.things` configuration file:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing tplinkrouter:router:myRouter [hostname="192.168.0.1", username="admin", password="myPassword"]
|
||||
```
|
||||
|
||||
`.items` configuration file:
|
||||
|
||||
```
|
||||
```java
|
||||
Switch Wifi "Wifi" <QualityOfService> {channel="tplinkrouter:router:myRouter:wifi#status", autoupdate="false"}
|
||||
String WifiSSID "Wifi SSID" <QualityOfService> {channel="tplinkrouter:router:myRouter:wifi#ssid"}
|
||||
String BandWidth "Wifi Bandwidth" <QualityOfService> {channel="tplinkrouter:router:myRouter:wifi#bandwidth"}
|
||||
|
@ -8,74 +8,74 @@ The following TP-Link Smart Devices are supported:
|
||||
|
||||
### EP10 Kasa Smart Wi-Fi Plug Mini
|
||||
|
||||
* Power On/Off
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### EP40 Kasa Smart Wi-Fi Outdoor Plug
|
||||
|
||||
* Power On/Off Group
|
||||
* Power On/Off 2 Outlets
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off Group
|
||||
- Power On/Off 2 Outlets
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
## ES20M Smart Wi-Fi Light Switch, Motion-Activated
|
||||
|
||||
* Power On/Off
|
||||
* Dimmer
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Dimmer
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### HS100 Kasa Smart Wi-Fi Plug
|
||||
|
||||
* Power On/Off
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### HS103 Kasa Smart Wi-Fi Plug Lite
|
||||
|
||||
* Power On/Off
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### HS105 Kasa Smart Wi-Fi Plug
|
||||
|
||||
* Power On/Off
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### HS107 Kasa Smart Wi-Fi Plug, 2-Outlets
|
||||
|
||||
* Power On/Off Group
|
||||
* Power On/Off 2 Outlets
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off Group
|
||||
- Power On/Off 2 Outlets
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### HS110 Kasa Smart Wi-Fi Plug
|
||||
|
||||
* Power On/Off
|
||||
* Energy readings
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Energy readings
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### HS200 Kasa Smart Wi-Fi Switch
|
||||
|
||||
* Power On/Off
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### HS210 Kasa Smart Wi-Fi Light Switch 3-Way Kit
|
||||
|
||||
* Power On/Off
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### HS220 Kasa Smart Wi-Fi Light Switch, Dimmer
|
||||
|
||||
* Power On/Off
|
||||
* Adjust the brightness
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Adjust the brightness
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
Use the brightness channel on the HS220 with a Switch item can be used to switch the device on and off.
|
||||
It will not change the brightness value.
|
||||
@ -87,255 +87,255 @@ Switching via openHAB activates the switch directly.
|
||||
|
||||
### HS300 Kasa Smart Wi-Fi Power Strip
|
||||
|
||||
* Power On/Off Group
|
||||
* Power On/Off 6 Outlets
|
||||
* Energy readings 6 Outlets
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off Group
|
||||
- Power On/Off 6 Outlets
|
||||
- Energy readings 6 Outlets
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### LB100 Kasa Smart Wi-Fi LED Bulb with Dimmable Light
|
||||
|
||||
* Power On/Off
|
||||
* Adjust the brightness
|
||||
* Actual power usage
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Adjust the brightness
|
||||
- Actual power usage
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
Switching and Brightness is done using the `brightness` channel.
|
||||
|
||||
### LB110 Kasa Smart Wi-Fi LED Bulb with Dimmable Light
|
||||
|
||||
* Power On/Off
|
||||
* Adjust the brightness
|
||||
* Actual power usage
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Adjust the brightness
|
||||
- Actual power usage
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
Switching and Brightness is done using the `brightness` channel.
|
||||
|
||||
### LB120 Kasa Smart Wi-Fi LED Bulb with Tunable White Light
|
||||
|
||||
* Power On/Off
|
||||
* Adjust light appearance from soft white (2700k) to daylight (6500k)
|
||||
* Adjust the brightness
|
||||
* Actual power usage
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Adjust light appearance from soft white (2700k) to daylight (6500k)
|
||||
- Adjust the brightness
|
||||
- Actual power usage
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
Switching and Brightness is done using the `brightness` channel.
|
||||
|
||||
### LB130 Kasa Smart Wi-Fi LED Bulb with Color Changing Hue
|
||||
|
||||
* Power On/Off
|
||||
* Fine-tune colors
|
||||
* Adjust light appearance from soft white (2500k) to daylight (9000k)
|
||||
* Adjust the brightness
|
||||
* Actual power usage
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Fine-tune colors
|
||||
- Adjust light appearance from soft white (2500k) to daylight (9000k)
|
||||
- Adjust the brightness
|
||||
- Actual power usage
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
Switching, Brightness and Color is done using the `color` channel.
|
||||
|
||||
### LB200 Kasa Smart Wi-Fi LED Bulb with Dimmable Light
|
||||
|
||||
* Power On/Off
|
||||
* Adjust the brightness
|
||||
* Actual power usage
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Adjust the brightness
|
||||
- Actual power usage
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
Switching and Brightness is done using the `brightness` channel.
|
||||
|
||||
### LB230 Kasa Smart Wi-Fi LED Bulb with Color Changing Hue
|
||||
|
||||
* Power On/Off
|
||||
* Fine-tune colors
|
||||
* Adjust light appearance from soft white (2500k) to daylight (9000k)
|
||||
* Adjust the brightness
|
||||
* Actual power usage
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Fine-tune colors
|
||||
- Adjust light appearance from soft white (2500k) to daylight (9000k)
|
||||
- Adjust the brightness
|
||||
- Actual power usage
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
Switching, Brightness and Color is done using the `color` channel.
|
||||
|
||||
### KB100 Kasa Smart Light Bulb
|
||||
|
||||
* Power On/Off
|
||||
* Adjust the brightness
|
||||
* Actual power usage
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Adjust the brightness
|
||||
- Actual power usage
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
Switching and Brightness is done using the `brightness` channel.
|
||||
|
||||
### KB130 Kasa Multi-color Smart Light Bulb
|
||||
|
||||
* Power On/Off
|
||||
* Fine-tune colors
|
||||
* Adjust light appearance from soft white (2500k) to daylight (9000k)
|
||||
* Adjust the brightness
|
||||
* Actual power usage
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Fine-tune colors
|
||||
- Adjust light appearance from soft white (2500k) to daylight (9000k)
|
||||
- Adjust the brightness
|
||||
- Actual power usage
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
Switching, Brightness and Color is done using the `color` channel.
|
||||
|
||||
### KL50 Kasa Filament Smart Bulb, Soft White
|
||||
|
||||
* Power On/Off
|
||||
* Adjust the brightness
|
||||
* Actual power usage
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Adjust the brightness
|
||||
- Actual power usage
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
Switching and Brightness is done using the `brightness` channel.
|
||||
|
||||
### KL60 Kasa Filament Smart Bulb, Warm Amber
|
||||
|
||||
* Power On/Off
|
||||
* Adjust the brightness
|
||||
* Actual power usage
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Adjust the brightness
|
||||
- Actual power usage
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
Switching and Brightness is done using the `brightness` channel.
|
||||
|
||||
### KL110 Kasa Smart Wi-Fi LED Bulb with Dimmable Light
|
||||
|
||||
* Power On/Off
|
||||
* Adjust the brightness
|
||||
* Actual power usage
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Adjust the brightness
|
||||
- Actual power usage
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
Switching and Brightness is done using the `brightness` channel.
|
||||
|
||||
### KL120 Kasa Smart Wi-Fi LED Bulb with Tunable White Light
|
||||
|
||||
* Power On/Off
|
||||
* Adjust light appearance from soft white (2700k) to daylight (6500k)
|
||||
* Adjust the brightness
|
||||
* Actual power usage
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Adjust light appearance from soft white (2700k) to daylight (6500k)
|
||||
- Adjust the brightness
|
||||
- Actual power usage
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
Switching and Brightness is done using the `brightness` channel.
|
||||
|
||||
### KL125 Kasa Smart Wi-Fi Bulb Multicolor
|
||||
|
||||
* Power On/Off
|
||||
* Fine-tune colors
|
||||
* Adjust light appearance from soft white (2500k) to daylight (6500k)
|
||||
* Adjust the brightness
|
||||
* Actual power usage
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Fine-tune colors
|
||||
- Adjust light appearance from soft white (2500k) to daylight (6500k)
|
||||
- Adjust the brightness
|
||||
- Actual power usage
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
Switching, Brightness and Color is done using the `color` channel.
|
||||
|
||||
### KL130 Kasa Smart Wi-Fi LED Bulb with Color Changing Hue
|
||||
|
||||
* Power On/Off
|
||||
* Fine-tune colors
|
||||
* Adjust light appearance from soft white (2500k) to daylight (9000k)
|
||||
* Adjust the brightness
|
||||
* Actual power usage
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Fine-tune colors
|
||||
- Adjust light appearance from soft white (2500k) to daylight (9000k)
|
||||
- Adjust the brightness
|
||||
- Actual power usage
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
Switching, Brightness and Color is done using the `color` channel.
|
||||
|
||||
### KL135 Kasa Smart Wi-Fi Bulb Multicolor
|
||||
|
||||
* Power On/Off
|
||||
* Fine-tune colors
|
||||
* Adjust light appearance from soft white (2500k) to daylight (6500k)
|
||||
* Adjust the brightness
|
||||
* Actual power usage
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Fine-tune colors
|
||||
- Adjust light appearance from soft white (2500k) to daylight (6500k)
|
||||
- Adjust the brightness
|
||||
- Actual power usage
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
Switching, Brightness and Color is done using the `color` channel.
|
||||
|
||||
### KL400 Kasa Smart LED Light Strip
|
||||
|
||||
* Power On/Off
|
||||
* Fine-tune colors
|
||||
* Adjust light appearance from soft white (2500k) to daylight (9000k)
|
||||
* Adjust the brightness
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Fine-tune colors
|
||||
- Adjust light appearance from soft white (2500k) to daylight (9000k)
|
||||
- Adjust the brightness
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### KL430 Kasa Smart LED Light Strip, 16 Color Zones
|
||||
|
||||
* Power On/Off
|
||||
* Fine-tune colors
|
||||
* Adjust light appearance from soft white (2500k) to daylight (9000k)
|
||||
* Adjust the brightness
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Fine-tune colors
|
||||
- Adjust light appearance from soft white (2500k) to daylight (9000k)
|
||||
- Adjust the brightness
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
Switching, Brightness and Color is done using the `color` channel.
|
||||
|
||||
### KP100 Kasa Wi-Fi Smart Plug - Slim Edition
|
||||
|
||||
* Power On/Off
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### KP105 Kasa Wi-Fi Smart Plug - Slim Edition
|
||||
|
||||
* Power On/Off
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### KP115 Kasa Wi-Fi Smart Plug with Energy Monitoring - Slim Edition
|
||||
|
||||
* Power On/Off
|
||||
* Energy readings
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Energy readings
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### KP125 Kasa Smart WiFi Plug Slim with Energy Monitoring
|
||||
|
||||
* Power On/Off
|
||||
* Energy readings
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Energy readings
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### KP200 Kasa Smart Wi-Fi Power Outlet, 2-Sockets
|
||||
|
||||
* Power On/Off Group
|
||||
* Power On/Off 2 Outlets
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off Group
|
||||
- Power On/Off 2 Outlets
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### KP303 Kasa Smart Wi-Fi Power Outlet, 3-Sockets
|
||||
|
||||
* Power On/Off Group
|
||||
* Power On/Off 3 Outlets
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off Group
|
||||
- Power On/Off 3 Outlets
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### KP400 Kasa Smart Outdoor Plug
|
||||
|
||||
* Power On/Off Group
|
||||
* Power On/Off 2 Outlets
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off Group
|
||||
- Power On/Off 2 Outlets
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### KP401 Kasa Smart WiFi Outdoor Plug
|
||||
|
||||
* Power On/Off
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### KP405 Kasa Smart Wi-Fi Outdoor Plug-In Dimmer
|
||||
|
||||
* Power On/Off
|
||||
* Dimmer
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Dimmer
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### KS230 Kasa Smart Wi-Fi Dimmer Switch 3-Way Kit
|
||||
|
||||
* Power On/Off
|
||||
* Adjust the brightness
|
||||
* LED On/Off
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off
|
||||
- Adjust the brightness
|
||||
- LED On/Off
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### RE270K AC750 Wi-Fi Range Extender with Smart Plug
|
||||
|
||||
* Power On/Off (readonly)
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off (readonly)
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
### RE370K AC1200 Wi-Fi Range Extender with Smart Plug
|
||||
|
||||
* Power On/Off (readonly)
|
||||
* Wi-Fi signal strength (RSSI)
|
||||
- Power On/Off (readonly)
|
||||
- Wi-Fi signal strength (RSSI)
|
||||
|
||||
It is not possible to set the switch state on the Range Extender.
|
||||
This is because it is not known what command to send to the device to make this possible.
|
||||
@ -419,7 +419,7 @@ Than the a `RefreshType` command will fetch the device state and update the inte
|
||||
|
||||
### tplinksmarthome.things:
|
||||
|
||||
```
|
||||
```java
|
||||
tplinksmarthome:hs100:tv "TV" [ deviceId="00000000000000000000000000000001", refresh=60 ]
|
||||
tplinksmarthome:hs300:laptop "Laptop" [ deviceId="00000000000000000000000000000004", refresh=60 ]
|
||||
tplinksmarthome:lb110:bulb1 "Living Room Bulb 1" [ deviceId="00000000000000000000000000000002", refresh=60, transitionPeriod=2500 ]
|
||||
@ -429,7 +429,7 @@ tplinksmarthome:kp401:outlet "Outdoor Outlet" [ ipAddress="192.168.1.101" ]
|
||||
|
||||
### tplinksmarthome.items:
|
||||
|
||||
```
|
||||
```java
|
||||
Switch TP_L_TV "TV" { channel="tplinksmarthome:hs100:tv:switch" }
|
||||
Switch TP_L_Laptop "Laptop" { channel="tplinksmarthome:hs300:laptop:outlet1#switch" }
|
||||
Number:Power TP_L_RSSI "Signal [%d %unit%]" <signal> { channel="tplinksmarthome:hs100:tv:rssi" }
|
||||
|
@ -248,7 +248,7 @@ needed subdevices).
|
||||
|
||||
The definition of the bridge and of the subdevices things is the following
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge tr064:fritzbox:rootuid "Root label" @ "location" [ host="192.168.1.1", user="user", password="passwd",
|
||||
phonebookInterval="0"]{
|
||||
Thing subdeviceLan LAN "label LAN" [ uuid="uuid:xxxxxxxx-xxxx-xxxx-yyyy-xxxxxxxxxxxx",
|
||||
@ -261,13 +261,13 @@ Bridge tr064:fritzbox:rootuid "Root label" @ "location" [ host="192.168.1.1", us
|
||||
|
||||
The channel are automatically generated and it is simpler to use the Main User Interface to copy the textual definition of the channel
|
||||
|
||||
```
|
||||
```java
|
||||
Switch PresXX "[%s]" {channel="tr064:subdeviceLan:rootuid:LAN:macOnline_XX_3AXX_3AXX_3AXX_3AXX_3AXX"}
|
||||
Switch PresYY "[%s]" {channel="tr064:subdeviceLan:rootuid:LAN:macOnline_YY_3AYY_3AYY_3AYY_3AYY_3AYY"}
|
||||
```
|
||||
|
||||
Example `*.items` file using the `PHONEBOOK` profile for storing the name of a caller in an item. it matches 8 digits from the right of the "from" number (note the escaping of `:` to `_3A`):
|
||||
|
||||
```
|
||||
```java
|
||||
Call IncomingCallResolved "Caller name: [%s]" { channel="avmfritz:fritzbox:fritzbox:incoming_call" [profile="transform:PHONEBOOK", phonebook="tr064_3Afritzbox_3AfritzboxTR064", phoneNumberIndex="1", matchCount="8"] }
|
||||
```
|
||||
|
@ -81,7 +81,7 @@ Refer to the matrix above.
|
||||
|
||||
demo.things:
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge tradfri:gateway:mygateway [ host="192.168.0.177", code="EHPW5rIJKyXFgjH3" ] {
|
||||
0100 myDimmableBulb "My Dimmable Bulb" [ id=65537 ]
|
||||
0220 myColorTempBulb "My Color Temp Bulb" [ id=65538 ]
|
||||
@ -94,7 +94,7 @@ Bridge tradfri:gateway:mygateway [ host="192.168.0.177", code="EHPW5rIJKyXFgjH3"
|
||||
|
||||
demo.items:
|
||||
|
||||
```
|
||||
```java
|
||||
Dimmer Light1 { channel="tradfri:0100:mygateway:myDimmableBulb:brightness" }
|
||||
Dimmer Light2_Brightness { channel="tradfri:0220:mygateway:myColorTempBulb:brightness" }
|
||||
Dimmer Light2_ColorTemperature { channel="tradfri:0220:mygateway:myColorTempBulb:color_temperature" }
|
||||
@ -107,7 +107,7 @@ Rollershutter BlindPosition { channel="tradfri:0202:mygateway:myBlinds:position"
|
||||
|
||||
demo.sitemap:
|
||||
|
||||
```
|
||||
```perl
|
||||
sitemap demo label="Main Menu"
|
||||
{
|
||||
Frame {
|
||||
|
@ -4,9 +4,8 @@ The Twitter binding allows your home to Tweet 280 characters at a time. It also
|
||||
|
||||
## Supported Things
|
||||
|
||||
```
|
||||
```text
|
||||
account - Twitter Account.
|
||||
|
||||
```
|
||||
|
||||
## Thing Configuration
|
||||
@ -21,26 +20,24 @@ The Twitter Account Thing requires you to create a Twitter App in the Twitter De
|
||||
| accessTokenSecret | | Yes | Access Token Secret |
|
||||
| refresh | 30 | No | Tweet refresh interval in minutes |
|
||||
|
||||
|
||||
## Channels
|
||||
|
||||
| channel | type | description |
|
||||
|------------|--------|------------------------------------------------|
|
||||
| lasttweet | String | This channel provides the Latest Tweet message |
|
||||
|
||||
|
||||
## Full Example
|
||||
|
||||
twitter.things:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing twitter:account:sampleaccount [ consumerKey="11111", consumerSecret="22222", accessToken="33333", accessTokenSecret="444444" ]
|
||||
|
||||
```
|
||||
|
||||
twitter.items:
|
||||
|
||||
```
|
||||
```java
|
||||
String sample_tweet "Latest Tweet: [%s]" { channel="twitter:account:sampleaccount:lasttweet" }
|
||||
|
||||
```
|
||||
@ -49,13 +46,13 @@ String sample_tweet "Latest Tweet: [%s]" { channel="twitter:account:sampleacco
|
||||
|
||||
This binding includes rule actions for sending tweets and direct messages.
|
||||
|
||||
* `boolean success = sendTweet(String text)`
|
||||
* `boolean success = sendTweetWithAttachment(String text, String URL)`
|
||||
* `boolean success = sendDirectMessage(String recipientID, String text)`
|
||||
- `boolean success = sendTweet(String text)`
|
||||
- `boolean success = sendTweetWithAttachment(String text, String URL)`
|
||||
- `boolean success = sendDirectMessage(String recipientID, String text)`
|
||||
|
||||
Examples:
|
||||
|
||||
```
|
||||
```java
|
||||
val tweetActions = getActions("twitter","twitter:account:sampleaccount")
|
||||
val success = tweetActions.sendTweet("This is A Tweet")
|
||||
val success2 = tweetActions.sendTweetWithAttachment("This is A Tweet with a Pic", file:///tmp/201601011031.jpg)
|
||||
|
@ -2,15 +2,14 @@
|
||||
|
||||
This binding integrates with [Ubiquiti UniFi Networks](https://www.ubnt.com/products/#unifi) allowing for presence detection of network clients.
|
||||
|
||||
|
||||
## Supported Things
|
||||
|
||||
* `controller` - An instance of the UniFi controller software
|
||||
* `site` - A site thing with connection statistics
|
||||
* `wlan` - A wireless network thing. Control Wi-Fi network and easy access to access.
|
||||
* `wirelessClient` - Any wireless client connected to a UniFi wireless network
|
||||
* `wiredClient` - A wired client connected to the UniFi network
|
||||
* `poePort` - A PoE (Power over Ethernet) port on a UniFi switch
|
||||
- `controller` - An instance of the UniFi controller software
|
||||
- `site` - A site thing with connection statistics
|
||||
- `wlan` - A wireless network thing. Control Wi-Fi network and easy access to access.
|
||||
- `wirelessClient` - Any wireless client connected to a UniFi wireless network
|
||||
- `wiredClient` - A wired client connected to the UniFi network
|
||||
- `poePort` - A PoE (Power over Ethernet) port on a UniFi switch
|
||||
|
||||
## Discovery
|
||||
|
||||
@ -61,7 +60,6 @@ The following table describes the `wlan` configuration parameters:
|
||||
|
||||
The following table describes the `wirelessClient` & `wiredClient` configuration parameters:
|
||||
|
||||
|
||||
| Parameter | Description | Config | Default |
|
||||
| ------------ | -------------------------------------------------------------|--------- | ------- |
|
||||
| cid | The MAC address, IP address, hostname or alias of the client | Required | - |
|
||||
@ -70,7 +68,7 @@ The following table describes the `wirelessClient` & `wiredClient` configuration
|
||||
|
||||
Here's some additional notes regarding the thing configuration parameters:
|
||||
|
||||
##### `cid`
|
||||
#### `cid`
|
||||
|
||||
The `cid` parameter is a universal "client identifier". It accepts the following values:
|
||||
|
||||
@ -83,15 +81,15 @@ The priority essentially means the binding attempts to lookup by MAC address, th
|
||||
Once it finds a matching client, it short circuits and stops searching.
|
||||
Most of the time, you will simply use the MAC address.
|
||||
|
||||
##### `site`
|
||||
#### `site`
|
||||
|
||||
The `site` parameter is optional. If you leave it blank, the client will appear `ONLINE` if found in *any* site defined on the controller.
|
||||
The `site` parameter is optional. If you leave it blank, the client will appear `ONLINE` if found in _any_ site defined on the controller.
|
||||
|
||||
You may use the `site` parameter as a filter if you only want the client to appear home if it is found in the site defined in the `site` parameter.
|
||||
|
||||
Additionally, you may use friendly site names as they appear in the controller UI.
|
||||
|
||||
##### `considerHome`
|
||||
#### `considerHome`
|
||||
|
||||
The `considerHome` parameter allows you to control how quickly the binding marks a client as away.
|
||||
For example, using the default of `180` (seconds), the binding will report a client away as soon as `lastSeen` + `180` (seconds) < `now`.
|
||||
@ -100,13 +98,11 @@ For example, using the default of `180` (seconds), the binding will report a cli
|
||||
|
||||
The following table describes the `poePort` configuration parameters:
|
||||
|
||||
|
||||
| Parameter | Description | Config |
|
||||
|------------|-----------------------------------------------------------|----------|
|
||||
| portNumber | The port number as reported by the switch (starts with 1) | Required |
|
||||
| macAddress | The MAC address of the switch device the port is part of | Required |
|
||||
|
||||
|
||||
## Channels
|
||||
|
||||
### `site`
|
||||
@ -184,7 +180,6 @@ The `wirelessClient` information that is retrieved is available as these channel
|
||||
| cmd | String | Command channel: `reconnect` to force the client to reconnect | Write |
|
||||
| reconnect | Switch | Force the client to reconnect | Write |
|
||||
|
||||
|
||||
_Note: All channels with the Write permission require administrator credentials as defined in the controller._
|
||||
|
||||
### `wiredClient`
|
||||
@ -204,11 +199,11 @@ The `wiredClient` information that is retrieved is available as these channels:
|
||||
| experience | Number:Dimensionless | Overall health indication of the client (in percentage) | Read |
|
||||
| blocked | Switch | Blocked status of the client | Read, Write |
|
||||
|
||||
##### `blocked`
|
||||
#### `blocked`
|
||||
|
||||
The `blocked` channel allows you to block / unblock a client via the controller.
|
||||
|
||||
##### `reconnect`
|
||||
#### `reconnect`
|
||||
|
||||
The `reconnect` channel allows you to force a client to reconnect.
|
||||
Sending `ON` to this channel will trigger a reconnect via the controller.
|
||||
@ -301,20 +296,22 @@ The structure of the returned json is (depending on content, some fields may be
|
||||
|
||||
### `things/unifi.things`
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge unifi:controller:home "UniFi Controller" [ host="unifi", port=8443, unifios=false, username="$username", password="$password", refresh=10 ] {
|
||||
Thing wirelessClient matthewsPhone "Matthew's iPhone" [ cid="$cid", site="default", considerHome=180 ]
|
||||
Thing site mysite "My Site" [ sid="$sid" ]
|
||||
}
|
||||
```
|
||||
|
||||
_Note: Usually on Unifi OS, the default port is 443_
|
||||
:::tip Note
|
||||
Usually on Unifi OS, the default port is 443
|
||||
:::
|
||||
|
||||
Replace `$user`, `$password`, `$cid` and `$sid` accordingly.
|
||||
|
||||
### `items/unifi.items`
|
||||
|
||||
```
|
||||
```java
|
||||
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" }
|
||||
@ -330,14 +327,14 @@ Switch MatthewsPhoneReconnect "Matthew's iPhone: Reconnect"
|
||||
|
||||
### `transform/unifi.map`
|
||||
|
||||
```
|
||||
```text
|
||||
ON=Home
|
||||
OFF=Away
|
||||
```
|
||||
|
||||
### `sitemaps/unifi.sitemap`
|
||||
|
||||
```
|
||||
```perl
|
||||
sitemap unifi label="UniFi Binding"
|
||||
{
|
||||
Frame {
|
||||
|
@ -16,33 +16,28 @@ Only supported thing is 'Unified Remote Server Thing' which requires the Hostnam
|
||||
|----------|------------------------------|
|
||||
| server | Unified Remote Server Thing |
|
||||
|
||||
|
||||
| Config | Type | description |
|
||||
|----------|----------|------------------------------|
|
||||
| host | String | Unified Remote Server IP |
|
||||
|
||||
|
||||
|
||||
## Channels
|
||||
|
||||
|
||||
| channel | type | description |
|
||||
|----------|--------|------------------------------|
|
||||
| mouse-move | String | Relative mouse move in pixels. Expect number JSON array [x,y] ("[10,10]"). |
|
||||
| send-key | String | Use server key. Supported keys are: LEFT_CLICK, RIGHT_CLICK, LOCK, UNLOCK, SLEEP, SHUTDOWN, RESTART, LOGOFF, PLAY, PLAY, PAUSE, NEXT, PREVIOUS, STOP, VOLUME_MUTE, VOLUME_UP, VOLUME_DOWN, BRIGHTNESS_UP, BRIGHTNESS_DOWN, MONITOR_OFF, MONITOR_ON, ESCAPE, SPACE, BACK, LWIN, CONTROL, TAB, MENU, RETURN, UP, DOWN, LEFT, RIGHT |
|
||||
|
||||
|
||||
## Full Example
|
||||
|
||||
### Sample Thing
|
||||
|
||||
```
|
||||
```java
|
||||
Thing unifiedremote:server:xx-xx-xx-xx-xx-xx [ host="192.168.1.10" ]
|
||||
```
|
||||
|
||||
### Sample Items
|
||||
|
||||
```
|
||||
```java
|
||||
Group pcRemote "Living room PC"
|
||||
String PC_SendKey "Send Key" (pcRemote) { channel="unifiedremote:server:xx-xx-xx-xx-xx-xx:send-key" }
|
||||
String PC_MouseMove "Mouse Move" (pcRemote) { channel="samsungtv:tv:livingroom:mouse-move" }
|
||||
|
@ -7,13 +7,13 @@ Universal Powerline Bus (UPB) is a protocol for communication over household ele
|
||||
The binding has not yet been tested with a variety of devices, so specific device support is limited.
|
||||
Instead the binding provides some generic devices, and allows adding channels that match the type of device.
|
||||
|
||||
* `serial-pim` - Serial PIM
|
||||
* `generic` - Generic UPB device
|
||||
* `virtual` - "Virtual" device that allows scene selection
|
||||
- `serial-pim` - Serial PIM
|
||||
- `generic` - Generic UPB device
|
||||
- `virtual` - "Virtual" device that allows scene selection
|
||||
|
||||
Specific devices that are supported:
|
||||
|
||||
* `leviton-38a00-1` - 6-button scene switch
|
||||
- `leviton-38a00-1` - 6-button scene switch
|
||||
|
||||
## Binding Configuration
|
||||
|
||||
@ -60,7 +60,6 @@ corresponding link command on the UPB network.
|
||||
|
||||
## Channels
|
||||
|
||||
|
||||
These channels are available for generic devices:
|
||||
|
||||
| Channel Type | Item type | Description |
|
||||
@ -78,7 +77,7 @@ The virtual device supports the `link` channel type:
|
||||
|
||||
Here is a sample `.things configuration file:
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge upb:serial-pim:pim "UPB PIM" @ "Basement" [port="/dev/ttyUSB0"] {
|
||||
Thing generic light-switch "Living Room Light" [networkId=1, unitId=1]
|
||||
|
||||
@ -99,7 +98,7 @@ Bridge upb:serial-pim:pim "UPB PIM" @ "Basement" [port="/dev/ttyUSB0"] {
|
||||
|
||||
And the items:
|
||||
|
||||
```
|
||||
```java
|
||||
// Configure as either Switch or Dimmer
|
||||
Dimmer LivingRoomLight "UPB Light Switch" {channel="upb:generic:pim:light-switch:dimmer"}
|
||||
|
||||
|
@ -14,7 +14,6 @@ Controls are available to control the playback of the media on the renderer.
|
||||
Currently playing media can be stored as a favorite.
|
||||
Each discovered renderer will also be registered as an openHAB audio sink.
|
||||
|
||||
|
||||
## Supported Things
|
||||
|
||||
Two thing types are supported, a server thing, `upnpserver`, and a renderer thing, `upnprenderer`.
|
||||
@ -24,19 +23,16 @@ A second test set included a [TVersity Media Server](http://tversity.com/).
|
||||
It complies with part of the UPnP AV Media standard, but has not been verified to comply with the full specification.
|
||||
Tests have focused on the playback of audio, but if the server and renderer support it, other media types should play as well.
|
||||
|
||||
|
||||
## Binding Configuration
|
||||
|
||||
The binding has one configuration parameter, `path`.
|
||||
This is used as the disk location for storing and retrieving playlists and favorites.
|
||||
The default location is `$OPENHAB_USERDATA/upnpcontrol`.
|
||||
|
||||
|
||||
## Discovery
|
||||
|
||||
UPnP media servers and media renderers in the network will be discovered automatically.
|
||||
|
||||
|
||||
## Thing Configuration
|
||||
|
||||
Both the `upnprenderer` and `upnpserver` thing require a configuration parameter, `udn` (Universal Device Name).
|
||||
@ -54,48 +50,47 @@ It should not be changed in normal circumstances.
|
||||
|
||||
Additionally, a `upnpserver` device has the following optional configuration parameters:
|
||||
|
||||
* `filter`: when true, only list content that is playable on the renderer, default is `false`.
|
||||
- `filter`: when true, only list content that is playable on the renderer, default is `false`.
|
||||
|
||||
* `sortCriteria`: sort criteria for the titles in the selection list and when sending for playing to a renderer.
|
||||
- `sortCriteria`: sort criteria for the titles in the selection list and when sending for playing to a renderer.
|
||||
|
||||
The criteria are defined in UPnP sort criteria format, examples: `+dc:title`, `-dc:creator`, `+upnp:album`.
|
||||
Support for sort criteria will depend on the media server.
|
||||
The default is to sort ascending on title, `+dc:title`.
|
||||
|
||||
* `browseDown`: when browse or search results in exactly one container entry, iteratively browse down until the result contains multiple container entries or at least one media entry, default is `true`.
|
||||
- `browseDown`: when browse or search results in exactly one container entry, iteratively browse down until the result contains multiple container entries or at least one media entry, default is `true`.
|
||||
|
||||
* `searchFromRoot`: always start search from root instead of the current id, default is `false`.
|
||||
- `searchFromRoot`: always start search from root instead of the current id, default is `false`.
|
||||
|
||||
A `upnprenderer` has the following optional configuration parameters:
|
||||
|
||||
* `seekStep`: step in seconds when sending fast forward or rewind command on the player control, default 5s.
|
||||
- `seekStep`: step in seconds when sending fast forward or rewind command on the player control, default 5s.
|
||||
|
||||
* `notificationVolumeAdjustment`: volume adjustment from current volume in percent (range -100 to +100) for notifications when no volume is set in `playSound` command, default 10.
|
||||
- `notificationVolumeAdjustment`: volume adjustment from current volume in percent (range -100 to +100) for notifications when no volume is set in `playSound` command, default 10.
|
||||
|
||||
* `maxNotificationDuration`: maximum duration for notifications (default 15s), no maximum duration when set to 0s.
|
||||
- `maxNotificationDuration`: maximum duration for notifications (default 15s), no maximum duration when set to 0s.
|
||||
|
||||
The full syntax for manual configuration is:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing upnpcontrol:upnpserver:<serverId> [udn="<udn of media server>", refresh=<polling interval>, filter=<true/false>, sortCriteria="<sort criteria string>", browseDown=<true/false>, searchFromRoot=<true/false>, responseTimeout=<UPnP timeout in milliseconds>]
|
||||
Thing upnpcontrol:upnprenderer:<rendererId> [udn="<udn of media renderer>", refresh=<polling interval>, notificationVolumeAdjustment=<signed percent>, maxNotificationDuration=<duration in seconds>, seekStep=<step>, responseTimeout=<UPnP timeout in milliseconds>]
|
||||
```
|
||||
|
||||
|
||||
## Channels
|
||||
|
||||
### `upnpserver`
|
||||
|
||||
The `upnpserver` has the following channels (item type and access mode indicated in brackets):
|
||||
|
||||
* `upnprenderer` (String, RW): The renderer to receive media content for playback.
|
||||
- `upnprenderer` (String, RW): The renderer to receive media content for playback.
|
||||
|
||||
The channel allows selecting from all discovered media renderers.
|
||||
This list is dynamically adjusted as media renderers are being added/removed.
|
||||
|
||||
* `currenttitle` (String, R): Current title of media container or entry ready for playback.
|
||||
- `currenttitle` (String, R): Current title of media container or entry ready for playback.
|
||||
|
||||
* `browse` (String, RW): Browse and serve media content, current ID of media container or entry ready for playback.
|
||||
- `browse` (String, RW): Browse and serve media content, current ID of media container or entry ready for playback.
|
||||
|
||||
The browsing will start at the top of the content directory tree and allows you to go down and up (represented by ..) in the tree.
|
||||
The list of containers (directories) and media entries for selection in the content hierarchy is updated dynamically when selecting a container or entry.
|
||||
@ -107,7 +102,7 @@ The `upnpserver` has the following channels (item type and access mode indicated
|
||||
|
||||
The `browseDown` configuration parameter influences the result in such a way that, for `browseDown = true`, if the result only contains exactly one container entry, the result will be the content of the container and not the container itself.
|
||||
|
||||
* `search` (String, W): Search for media content on the server.
|
||||
- `search` (String, W): Search for media content on the server.
|
||||
|
||||
Search criteria are defined in UPnP search criteria format.
|
||||
Examples: `dc:title contains "song"`, `dc:creator contains "SpringSteen"`, `unp:class = "object.item.audioItem"`, `upnp:album contains "Born in"`.
|
||||
@ -120,32 +115,32 @@ The `upnpserver` has the following channels (item type and access mode indicated
|
||||
|
||||
The `browseDown` configuration parameter influences the result in such a way that, for `browseDown = true`, if the result only contains exactly one container entry, the result will be the content of the container and not the container itself.
|
||||
|
||||
* `playlistselect` (String, W): Select a playlist from the available playlists currently saved on disk.
|
||||
- `playlistselect` (String, W): Select a playlist from the available playlists currently saved on disk.
|
||||
|
||||
This will also update `playlist` with the selected value.
|
||||
|
||||
* `playlist` (String, RW): Name of existing or new playlist.
|
||||
- `playlist` (String, RW): Name of existing or new playlist.
|
||||
|
||||
* `playlistaction` (String, W): action to perform with `playlist`.
|
||||
- `playlistaction` (String, W): action to perform with `playlist`.
|
||||
|
||||
Possible command options are:
|
||||
|
||||
* `RESTORE`: restore the playlist from `playlist`.
|
||||
- `RESTORE`: restore the playlist from `playlist`.
|
||||
|
||||
If the restored playlist contains content from the current server, this content will update the `browse` command option list.
|
||||
Note that playlists can contain a mix of media entries and container references.
|
||||
|
||||
All media in the result list, playable on the current selected `upnprenderer` channel, are automatically queued to the renderer as next media for playback.
|
||||
|
||||
* `SAVE`: save the current `browse` command option list into `playlist`.
|
||||
- `SAVE`: save the current `browse` command option list into `playlist`.
|
||||
|
||||
If `playlist` already exists, it will be overwritten.
|
||||
|
||||
* `APPEND`: append the current `browse` command option list to `playlist`.
|
||||
- `APPEND`: append the current `browse` command option list to `playlist`.
|
||||
|
||||
If `playlist` does not exist yet, a new playlist will be created.
|
||||
|
||||
* `DELETE`: delete `playlist` from disk and remove from `playlistselect` command option list.
|
||||
- `DELETE`: delete `playlist` from disk and remove from `playlistselect` command option list.
|
||||
|
||||
A number of convenience channels replicate the basic control channels from the `upnprenderer` thing for the currently selected renderer on the `upnprenderer` channel.
|
||||
These channels are `volume`, `mute` and `control`.
|
||||
@ -191,7 +186,6 @@ Examples of these are:
|
||||
| `rfvolume` | Dimmer | RW | playback front right volume |
|
||||
| `rfmute` | Switch | RW | playback front right mute |
|
||||
|
||||
|
||||
## Audio Support
|
||||
|
||||
Two audio sinks are registered for each media renderer.
|
||||
@ -207,17 +201,16 @@ The `maxNotificationDuration` configuration parameter of the renderer will limit
|
||||
Normal playing will resume after the notification has played or when the maximum notification duration has been reached, whichever happens first.
|
||||
Longer sounds or streams will be cut off.
|
||||
|
||||
|
||||
## Managing a Playback Queue
|
||||
|
||||
There are multiple ways to serve content to a renderer for playback.
|
||||
|
||||
* Directly provide a URI on the `URI` channel or through `playSound` or `playStream` actions:
|
||||
- Directly provide a URI on the `URI` channel or through `playSound` or `playStream` actions:
|
||||
|
||||
Playing will start immediately, interrupting currently playing media.
|
||||
No metadata for the media is available, therefore will be provided in the media channels for metadata (e.g. `title`, `album`, ...).
|
||||
|
||||
* Content served from one or multiple `upnpserver` servers:
|
||||
- Content served from one or multiple `upnpserver` servers:
|
||||
|
||||
This is done on the `upnpserver` thing with the `upnprenderer` set the the renderer for playback.
|
||||
The media at any point in time in the `upnpserver browse` option list (result from browse, search or restoring a playlist), will be queued to the `upnprenderer` for playback.
|
||||
@ -228,7 +221,7 @@ There are multiple ways to serve content to a renderer for playback.
|
||||
The `upnprenderer` will use that queue until it is replaced by another queue from the same or another `upnpserver`.
|
||||
Note that querying the content hierarchy on the `upnpserver` will update the `upnpserver browse` option list each time, and therefore the queue on the `upnprenderer` will be updated each time as long as `upnprenderer` is selected on `upnpserver`.
|
||||
|
||||
* Selecting a favorite or playlist on the renderer.
|
||||
- Selecting a favorite or playlist on the renderer.
|
||||
|
||||
Playback of the favorite or playlist will start immediately.
|
||||
|
||||
@ -277,7 +270,6 @@ That way, it is possible to combine multiple sources for playback.
|
||||
When selecting a playlist on a renderer, the playlist will be queued for playback, replacing the current queue.
|
||||
Playback will start immediately.
|
||||
|
||||
|
||||
## Using Search
|
||||
|
||||
Searching content on a media server may take a lot of time, depending on the functionality and the performance of the media server.
|
||||
@ -287,12 +279,12 @@ Rather than searching for individual items, it is therefore often better to sear
|
||||
|
||||
For example:
|
||||
|
||||
* `upnp:class derivedfrom "object.item.audioItem.musicTrack" and dc:title contains "Fight For Your Right"` would search for all music tracks with "Fight For Your Right" in the title.
|
||||
- `upnp:class derivedfrom "object.item.audioItem.musicTrack" and dc:title contains "Fight For Your Right"` would search for all music tracks with "Fight For Your Right" in the title.
|
||||
This search is potentially slow.
|
||||
|
||||
* `dc:title contains "Evening" and upnp:class = "object.container.playlistContainer"` would search for all playlists with "Evening" in the name.
|
||||
- `dc:title contains "Evening" and upnp:class = "object.container.playlistContainer"` would search for all playlists with "Evening" in the name.
|
||||
|
||||
* `dc:title = "Donnie Darko" and upnp:class = "object.container.playlistContainer"` would search for a playlist with a specific name.
|
||||
- `dc:title = "Donnie Darko" and upnp:class = "object.container.playlistContainer"` would search for a playlist with a specific name.
|
||||
|
||||
With the last example, if the `browseDown` configuration parameter is `true`, the result will not be the playlist, but the content of the playlist.
|
||||
This allows immediately starting a play command without having to browse down to the first result of the list (the unique container).
|
||||
@ -307,14 +299,14 @@ This option is helpful if you do not want to limit search to a selected containe
|
||||
|
||||
BasicUI has a number of limitations that impact the way some of the channels can be used from it:
|
||||
|
||||
* BasicUI does not support dynamic refreshing of the selection list in the `upnpserver` channels `renderer`, `browse`, `playlistselect` and in the `upnprenderer` channel `favoriteselect`.
|
||||
- BasicUI does not support dynamic refreshing of the selection list in the `upnpserver` channels `renderer`, `browse`, `playlistselect` and in the `upnprenderer` channel `favoriteselect`.
|
||||
A refresh of the browser will be required to show the adjusted selection list.
|
||||
|
||||
* The `upnpserver search` channel requires input of a string to trigger a search.
|
||||
- The `upnpserver search` channel requires input of a string to trigger a search.
|
||||
The `upnpserver playlist` channel and `upnprenderer favorite` channel require input of a string to set a playlist or favorite.
|
||||
This cannot be done with BasicUI, but can be achieved with rules.
|
||||
|
||||
* The player control in BasicUI does not support fast forward or rewind.
|
||||
- The player control in BasicUI does not support fast forward or rewind.
|
||||
|
||||
None of these are limitations when using the main UI.
|
||||
|
||||
@ -322,14 +314,14 @@ None of these are limitations when using the main UI.
|
||||
|
||||
.things:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing upnpcontrol:upnpserver:mymediaserver [udn="0ec457ae-6c50-4e6e-9012-dee7bb25be2d", refresh=120, filter=true, sortCriteria="+dc:title"]
|
||||
Thing upnpcontrol:upnprenderer:mymediarenderer [udn="538cf6e8-d188-4aed-8545-73a1b905466e", refresh=600, seekStep=1]
|
||||
```
|
||||
|
||||
.items:
|
||||
|
||||
```
|
||||
```java
|
||||
Group MediaServer <player>
|
||||
Group MediaRenderer <player>
|
||||
|
||||
@ -370,7 +362,7 @@ String PlaylistAction "Playlist Action" (MediaServer) {channel=
|
||||
|
||||
.sitemap:
|
||||
|
||||
```
|
||||
```perl
|
||||
Slider item=Volume
|
||||
Switch item=Mute
|
||||
Switch item=Loudness
|
||||
@ -408,7 +400,7 @@ Switch item=PlaylistAction
|
||||
|
||||
Audio sink usage examples in rules:
|
||||
|
||||
```
|
||||
```java
|
||||
playSound(“doorbell.mp3”)
|
||||
playStream("upnpcontrol:upnprenderer:mymediarenderer", "http://icecast.vrtcdn.be/stubru_tijdloze-high.mp3”)
|
||||
playSound("upnpcontrol:upnprenderer:mymediarenderer-notify", "doorbell.mp3", new PercentType(80))
|
||||
|
@ -10,8 +10,8 @@ The binding supports the RS232 communication.
|
||||
|
||||
There are two supported things:
|
||||
|
||||
* URTSI II Device: Bridge
|
||||
* RTS Device (e.g. Rollershutter): Thing
|
||||
- URTSI II Device: Bridge
|
||||
- RTS Device (e.g. Rollershutter): Thing
|
||||
|
||||
## Discovery
|
||||
|
||||
@ -21,13 +21,13 @@ Discovery is not supported.
|
||||
|
||||
### URTSI II Device:
|
||||
|
||||
* Port: The port which is used to access the device (e.g. /dev/ttyUSB0)
|
||||
* Command execution interval: The time (in ms) the binding should wait between sending commands to the device
|
||||
- Port: The port which is used to access the device (e.g. /dev/ttyUSB0)
|
||||
- Command execution interval: The time (in ms) the binding should wait between sending commands to the device
|
||||
|
||||
### RTS Device (e.g. rollershutter):
|
||||
|
||||
* Channel: The URTSI II channel the RTS device is assigned to at URTSI II.
|
||||
- Channel: The URTSI II channel the RTS device is assigned to at URTSI II.
|
||||
|
||||
## Channels
|
||||
|
||||
* Position: Change the position of a device. This is used in order to interact with the device (move it up, down or stop).
|
||||
- Position: Change the position of a device. This is used in order to interact with the device (move it up, down or stop).
|
||||
|
@ -67,16 +67,15 @@ Overview of provided channels
|
||||
|
||||
## Example
|
||||
|
||||
### Things file ###
|
||||
### Things file
|
||||
|
||||
```
|
||||
```java
|
||||
Thing valloxmv:valloxmv:lueftung [ip="192.168.1.3", updateinterval=60]
|
||||
```
|
||||
|
||||
### Items file
|
||||
|
||||
### Items file ###
|
||||
|
||||
```
|
||||
```java
|
||||
Number State "Current state: [%d]" {channel="valloxmv:valloxmv:lueftung:state"}
|
||||
Number FanSpeed "Fanspeed [%d %%]" {channel="valloxmv:valloxmv:lueftung:fanspeed"}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -6,7 +6,6 @@ The binding is based on VDR's own SVDRP (Simple VDR Protocol) connectivity. It s
|
||||
|
||||
## Supported Things
|
||||
|
||||
|
||||
The binding provides only one thing type: `vdr`. You can create one thing for each VDR instance at your home.
|
||||
|
||||
## Thing Configuration
|
||||
@ -24,11 +23,10 @@ Please check VDR documentation if you are unsure about this.
|
||||
|
||||
A typical thing configuration would look like this:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing vdr:vdr:livingRoom "VDR" @ "LivingRoom" [ host="192.168.0.51", port=6419, refresh=30 ]
|
||||
```
|
||||
|
||||
|
||||
## Channels
|
||||
|
||||
`power`, `channel` and `volume` can be used for basic control of your VDR. `diskUsage` might be used within a rule to notify if disk space for recordings runs short. It is also possible to display custom messages on VDR OSD, please use `message` for this. You can build your own remote control widget in openHAB by using the `keyCode` channel.
|
||||
@ -37,7 +35,6 @@ Also you can show information about the current channel's program on your VDR by
|
||||
|
||||
To turn on the device VDR is running on please use Wake-On-LAN functionality from Network Binding.
|
||||
|
||||
|
||||
| channel | type | description |
|
||||
|----------------------|-------------|-----------------------------------------|
|
||||
| power | Switch | Power State (to switch off VDR) |
|
||||
@ -59,18 +56,17 @@ To turn on the device VDR is running on please use Wake-On-LAN functionality fro
|
||||
| nextEventEnd | DateTime | Next EPG Event End |
|
||||
| nextEventDuration | Number:Time | Next EPG Event Duration in Minutes |
|
||||
|
||||
|
||||
## Full Example
|
||||
|
||||
### Things
|
||||
|
||||
```
|
||||
```java
|
||||
Thing vdr:vdr:livingRoom "VDR" @ "LivingRoom" [ host="192.168.0.77", port=6419, refresh=30 ]
|
||||
```
|
||||
|
||||
### Items
|
||||
|
||||
```
|
||||
```java
|
||||
Switch VDR_LivingRoom_Power "Power" {channel="vdr:vdr:livingRoom:power" }
|
||||
Number VDR_LivingRoom_Channel "Channel Number" {channel="vdr:vdr:livingRoom:channel" }
|
||||
String VDR_LivingRoom_ChannelName "Channel Name" {channel="vdr:vdr:livingRoom:channelName" }
|
||||
@ -93,7 +89,7 @@ Number VDR_LivingRoom_NextEventDuration "Duration (next) [%d min]"
|
||||
|
||||
### Sitemap
|
||||
|
||||
```
|
||||
```perl
|
||||
Frame label="VDR" {
|
||||
Switch item=VDR_LivingRoom_Power
|
||||
Selection item=VDR_LivingRoom_Channel mappings=[1="DasErste HD", 2="ZDF HD"] visibility=[VDR_LivingRoom_Power==ON]
|
||||
|
@ -29,13 +29,13 @@ The exposed channels are :
|
||||
|
||||
*.things:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing vektiva:smarwi:5d43c74f [ ip="192.168.1.22", refreshInterval=30 ]
|
||||
```
|
||||
|
||||
*.items
|
||||
|
||||
```
|
||||
```java
|
||||
Rollershutter Smarwi "Smarwi [%d %%]" { channel="vektiva:smarwi:5d43c74f:control" }
|
||||
Dimmer SmarwiD "Smarwi [%.1f]" { channel="vektiva:smarwi:5d43c74f:control" }
|
||||
String SmarwiStatus "Smarwi status [%s]" { channel="vektiva:smarwi:5d43c74f:status" }
|
||||
@ -43,7 +43,7 @@ String SmarwiStatus "Smarwi status [%s]" { channel="vektiva:smarwi:5d43c74f:stat
|
||||
|
||||
*.sitemap
|
||||
|
||||
```
|
||||
```perl
|
||||
Default item=Smarwi
|
||||
Default item=SmarwiD
|
||||
Default item=SmarwiStatus
|
||||
@ -51,4 +51,4 @@ Default item=SmarwiStatus
|
||||
|
||||
## Note
|
||||
|
||||
This binding currently does not support controlling via vektiva.online cloud service and uses local device API, which is described here: https://vektiva.gitlab.io/vektivadocs/api/api.html
|
||||
This binding currently does not support controlling via vektiva.online cloud service and uses local device API, which is described here: <https://vektiva.gitlab.io/vektivadocs/api/api.html>
|
||||
|
@ -16,14 +16,14 @@ A Velbus configuration module (e.g. VMBRSUSB) or a network server (e.g. [VelServ
|
||||
|
||||
The supported Velbus devices are:
|
||||
|
||||
```
|
||||
```text
|
||||
vmb1bl, vmb1bls, vmb1dm, vmb1led, vmb1ry, vmb1ryno, vmb1rynos, vmb1rys, vmb1ts, vmb2bl, vmb2ble, vmb2pbn, vmb4an, vmb4dc, vmb4ry, vmb4ryld, vmb4ryno, vmb6in, vmb6pbn, vmb7in, vmb8ir, vmb8pb, vmb8pbu, vmbdme, vmbdmi, vmbdmir, vmbel1, vmbel2, vmbel4, vmbelo, vmbelpir, vmbgp1, vmbgp2, vmbgp4, vmbgp4pir, vmbgpo, vmbgpod, vmbmeteo, vmbpirc, vmbpirm, vmbpiro, vmbvp1
|
||||
```
|
||||
|
||||
The type of a specific device can be found in the configuration section for things in the UI.
|
||||
It is part of the unique thing id which could look like:
|
||||
|
||||
```
|
||||
```text
|
||||
velbus:vmb4ryld:0424e5d2:01:CH1
|
||||
```
|
||||
|
||||
@ -48,7 +48,7 @@ On Windows it will be `COM1`, `COM2`, etc.
|
||||
|
||||
In the things file, this might look e.g. like
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge velbus:bridge:1 [ port="COM1" ]
|
||||
```
|
||||
|
||||
@ -58,14 +58,14 @@ Or the specific IP of the machine `10.0.0.110` , and port number.
|
||||
|
||||
In the things file, this might look like
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge velbus:networkbridge:1 "Velbus Network Bridge - Loopback" @ "Control" [ address="127.0.0.1", port=6000 ]
|
||||
```
|
||||
|
||||
Optionally, both the serial bridge and the network bridge can also update the realtime clock, date and daylight savings status of the Velbus modules.
|
||||
This is achieved by setting the Time Update Interval (in minutes) on the bridge, e.g.:
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge velbus:bridge:1 [ port="COM1", timeUpdateInterval="360" ]
|
||||
```
|
||||
|
||||
@ -75,28 +75,27 @@ Setting the interval to 0 minutes or leaving it empty disables the update of the
|
||||
In case of a connection error, the bridges can also try to reconnect automatically.
|
||||
You can specify at which interval the bridge should try to reconnect by setting the Reconnection Interval (in seconds), e.g.:
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge velbus:bridge:1 [ port="COM1", reconnectionInterval="15" ]
|
||||
```
|
||||
|
||||
The default reconnection interval is 15 seconds.
|
||||
|
||||
|
||||
For the other Velbus devices, the thing configuration has the following syntax:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing velbus:<thing type>:<bridgeId>:<thingId> "Label" @ "Location" [CH1="Kitchen Light", CH2="Living Light"]
|
||||
```
|
||||
|
||||
or nested in the bridge configuration:
|
||||
|
||||
```
|
||||
```java
|
||||
<thing type> <thingId> "Label" @ "Location" [CH1="Kitchen Light", CH2="Living Light"]
|
||||
```
|
||||
|
||||
The following thing types are valid for configuration:
|
||||
|
||||
```
|
||||
```text
|
||||
vmb1bl, vmb1bls, vmb1dm, vmb1led, vmb1ry, vmb1ryno, vmb1rynos, vmb1rys, vmb1ts, vmb2bl, vmb2ble, vmb2pbn, vmb4an, vmb4dc, vmb4ry, vmb4ryld, vmb4ryno, vmb6in, vmb6pbn, vmb7in, vmb8ir, vmb8pb, vmb8pbu, vmbdme, vmbdmi, vmbdmir, vmbel1, vmbel2, vmbel4, vmbelo, vmbelpir, vmbgp1, vmbgp2, vmbgp4, vmbgp4pir, vmbgpo, vmbgpod, vmbmeteo, vmbpirc, vmbpirm, vmbpiro, vmbvp1
|
||||
```
|
||||
|
||||
@ -110,7 +109,7 @@ vmb1bl, vmb1bls, vmb1dm, vmb1led, vmb1ry, vmb1ryno, vmb1rynos, vmb1rys, vmb1ts,
|
||||
|
||||
For thing types with builtin sensors (e.g. temperature), the interval at which the sensors should be checked can be set by specifying the Refresh Interval, e.g.:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing velbus:vmbelo:<bridgeId>:<thingId> [refresh="300"]
|
||||
```
|
||||
|
||||
@ -119,7 +118,7 @@ Setting the refresh interval to 0 or leaving it empty will prevent the thing fro
|
||||
|
||||
The following thing types support a sensor refresh interval:
|
||||
|
||||
```
|
||||
```text
|
||||
vmb1ts, vmb4an, vmbel1, vmbel2, vmbel4, vmbelo, vmbelpir, vmbgp1, vmbgp2, vmbgp4, vmbgp4pir, vmbgpo, vmbgpod, vmbmeteo, vmbpirc, vmbpirm, vmbpiro
|
||||
```
|
||||
|
||||
@ -127,13 +126,13 @@ The `vmb7in` thing type also supports a refresh interval. For this thing type, t
|
||||
|
||||
For dimmers the speed (in seconds) at which the modules should dim from 0% to 100% can be set by specifying the Dimspeed, e.g.:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing velbus:vmb4dc:<bridgeId>:<thingId> [dimspeed="5"]
|
||||
```
|
||||
|
||||
The following thing types support setting the dimspeed:
|
||||
|
||||
```
|
||||
```text
|
||||
vmb1dm, vmb1led, vmb4dc, vmbdme, vmbdmi, vmbdmir
|
||||
```
|
||||
|
||||
@ -225,7 +224,7 @@ Go to the Items list, select the Item, add a State Description Metadata, and set
|
||||
|
||||
.things:
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge velbus:bridge:1 [ port="COM1"] {
|
||||
vmb2ble 01
|
||||
vmb2pbn 02
|
||||
@ -246,7 +245,7 @@ Bridge velbus:bridge:1 [ port="COM1"] {
|
||||
|
||||
.items:
|
||||
|
||||
```
|
||||
```java
|
||||
Switch LivingRoom {channel="velbus:vmb4ryld:1:06:CH1"} # Switch for onOff type action
|
||||
Switch KitchenButton {velbus:vmb2pbn:1:05:button#CH1} # Switch for Pressed and Long_Pressed type actions
|
||||
Dimmer TVRoom {channel="velbus:vmb4dc:1:07:CH2"} # Changing brightness dimmer type action
|
||||
@ -259,7 +258,7 @@ Number Temperature_Outside "Temperature [%.1f °C]" <temperature> channel=
|
||||
|
||||
.sitemap:
|
||||
|
||||
```
|
||||
```perl
|
||||
Switch item=LivingRoom
|
||||
Slider item=TVRoom
|
||||
Switch item=TVRoom # allows switching dimmer item off or on
|
||||
@ -274,7 +273,7 @@ Switch item=KitchenButton mappings=[LONG_PRESSED="Push"] # only the Long_Pressed
|
||||
|
||||
Example trigger rule:
|
||||
|
||||
```
|
||||
```java
|
||||
rule "example trigger rule"
|
||||
when
|
||||
Channel 'velbus:vmb7in:1:05:CH5' triggered PRESSED
|
||||
|
@ -63,7 +63,6 @@ After adding the Inbox item, enter the user name and password from the physical
|
||||
| schedulePart | String | Current Schedule Part | |
|
||||
| schedulePartRaw | Number | Schedule Part Raw (Read Only) | 0(Morning) 1(Day) 2(Evening) 3 (Night) 255 (Inactive) |
|
||||
|
||||
|
||||
### Runtime data
|
||||
|
||||
The Venstar thermostat provides data about how many minutes the system has been running in each of the different modes (heat1, heat2, cool1, cool2, aux1, aux2, free cool) every day for the last 7 days.
|
||||
@ -103,14 +102,13 @@ The binding reads the runtime data and time stamps and provides them all as sepa
|
||||
|
||||
### thermostat.things
|
||||
|
||||
```
|
||||
```java
|
||||
Thing venstarthermostat:colorTouchThermostat:001122334455 "Venstar Thermostat (Guest)" [ username="admin", password="secret", url="https://192.168.1.100", refresh=30 ]
|
||||
```
|
||||
|
||||
### thermostat.items
|
||||
|
||||
|
||||
```
|
||||
```java
|
||||
Number:Temperature Guest_HVAC_Temperature "Temperature [%d °F]" {channel="venstarthermostat:colorTouchThermostat:001122334455:temperature"}
|
||||
Number:Temperature Guest_HVAC_HeatSetpoint "Heat Setpoint [%d °F]" {channel="venstarthermostat:colorTouchThermostat:001122334455:heatingSetpoint"}
|
||||
Number:Temperature Guest_HVAC_CoolSetpoint "Cool Setpoint [%d °F]" {channel="venstarthermostat:colorTouchThermostat:001122334455:coolingSetpoint"}
|
||||
@ -134,7 +132,7 @@ Number Guest_freeCoolRuntimeDay0 "Free Cool Day 0 Run Time
|
||||
|
||||
### thermostat.sitemap
|
||||
|
||||
```
|
||||
```perl
|
||||
sitemap demo label="Venstar Color Thermostat Demo"
|
||||
{
|
||||
Frame {
|
||||
|
@ -36,7 +36,7 @@ By default the binding uses "-42", so a new ID that is not known to the device a
|
||||
|
||||
Example Thing configuration:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing ventaair:lw60t:humidifier [ ipAddress="192.168.42.69", macAddress="f8:f0:05:a6:4e:03", deviceType=4, pollingTime=10, hash=-42]
|
||||
```
|
||||
|
||||
@ -44,7 +44,6 @@ Thing ventaair:lw60t:humidifier [ ipAddress="192.168.42.69", macAddress="f8:f0:0
|
||||
|
||||
These are the channels that are currently supported:
|
||||
|
||||
|
||||
| channel | type (RO=read-only) | description |
|
||||
|----------|--------|------------------------------|
|
||||
| power | Switch | This is the power on/off channel |
|
||||
@ -69,13 +68,13 @@ These are the channels that are currently supported:
|
||||
|
||||
Things:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing ventaair:lw60t:humidifier [ ipAddress="192.168.42.69", macAddress="f8:f0:05:a6:4e:03", deviceType=4, pollingTime=10, hash=-42]
|
||||
```
|
||||
|
||||
Items:
|
||||
|
||||
```
|
||||
```java
|
||||
Group gHumidifier "Air Humidifier" <humidity>
|
||||
|
||||
Switch Humidifier_Power "Power: [%s]" (gHumidifier) { channel="ventaair:lw60t:humidifier:power" }
|
||||
@ -107,7 +106,7 @@ Switch boost "Boost:" { channel="ventaair:generic:humidifier:boost" }
|
||||
|
||||
Sitemap:
|
||||
|
||||
```
|
||||
```perl
|
||||
Text item=Humidifier_Humidity
|
||||
Text item=Humidifier_Temperature
|
||||
Switch item=Humidifier_Power
|
||||
|
@ -4,8 +4,6 @@ This is an openHAB binding for Verisure Smart Alarms by Verisure Securitas.
|
||||
|
||||
This binding uses a rest API used by the [Verisure My Pages webpage](https://mypages.verisure.com/login.html)
|
||||
|
||||
|
||||
|
||||
## Supported Things
|
||||
|
||||
This binding supports the following thing types:
|
||||
@ -25,7 +23,6 @@ This binding supports the following thing types:
|
||||
- Event Log
|
||||
- Gateway
|
||||
|
||||
|
||||
## Binding Configuration
|
||||
|
||||
You will have to configure the bridge with username and password of a pre-defined user on [Verisure page](https://mypages.verisure.com) that has not activated Multi Factor Authentication (MFA/2FA).
|
||||
@ -35,8 +32,6 @@ Verisure allows you to have more than one user so the suggestion is to use a spe
|
||||
|
||||
You must also configure pin-code(s) to be able to lock/unlock the SmartLock(s) and arm/unarm the Alarm(s).
|
||||
|
||||
|
||||
|
||||
## Discovery
|
||||
|
||||
After the configuration of the Verisure Bridge all of the available Sensors, Alarms, SmartPlugs, SmartLocks, Climate and Mice Detection devices will be discovered and placed as things in the inbox.
|
||||
@ -57,15 +52,15 @@ To enable DEBUG logging for the binding, login to Karaf console and enter:
|
||||
|
||||
#### Configuration Options
|
||||
|
||||
* `username` - The username used to connect to https://mypages.verisure.com
|
||||
* The user has to have Administrator rights to have full SmartLock functionality
|
||||
- `username` - The username used to connect to <https://mypages.verisure.com>
|
||||
- The user has to have Administrator rights to have full SmartLock functionality
|
||||
|
||||
* `password` - The password used to connect to https://mypages.verisure.com
|
||||
- `password` - The password used to connect to <https://mypages.verisure.com>
|
||||
|
||||
* `refresh` - Specifies the refresh interval in seconds
|
||||
- `refresh` - Specifies the refresh interval in seconds
|
||||
|
||||
* `pin` - The username's pin code to arm/disarm alarm and lock/unlock door. In the case of more than one installation and different pin-codes, use a comma separated string where pin-code matches order of installations. The installation order can be found using DEBUG log settings.
|
||||
* Two installations where the first listed installation uses a 6 digit pin-code and second listed installation uses a 4 digit pin-code: 123456,1234
|
||||
- `pin` - The username's pin code to arm/disarm alarm and lock/unlock door. In the case of more than one installation and different pin-codes, use a comma separated string where pin-code matches order of installations. The installation order can be found using DEBUG log settings.
|
||||
- Two installations where the first listed installation uses a 6 digit pin-code and second listed installation uses a 4 digit pin-code: 123456,1234
|
||||
|
||||
If you define the bridge in a things-file the bridge type id is defined as `bridge`, e.g.:
|
||||
|
||||
@ -79,13 +74,12 @@ The following channels are supported:
|
||||
|-----------------|-----------|-------------------------------------------------------------------------------------------------|
|
||||
| status | String | This channel can be used to trigger an instant refresh by sending a RefreshType.REFRESH command.|
|
||||
|
||||
|
||||
### Verisure Alarm
|
||||
|
||||
#### Configuration Options
|
||||
|
||||
* `deviceId` - Device Id
|
||||
* Since Alarm lacks a Verisure ID, the following naming convention is used for alarm on installation ID 123456789: 'alarm123456789'. Installation ID can be found using DEBUG log settings
|
||||
- `deviceId` - Device Id
|
||||
- Since Alarm lacks a Verisure ID, the following naming convention is used for alarm on installation ID 123456789: 'alarm123456789'. Installation ID can be found using DEBUG log settings
|
||||
|
||||
#### Channels
|
||||
|
||||
@ -105,8 +99,8 @@ The following channels are supported:
|
||||
|
||||
#### Configuration Options
|
||||
|
||||
* `deviceId` - Device Id
|
||||
* Sensor Id. Example 5A4C35FT (Note: Verisure ID, found in the Verisure App or My Pages)
|
||||
- `deviceId` - Device Id
|
||||
- Sensor Id. Example 5A4C35FT (Note: Verisure ID, found in the Verisure App or My Pages)
|
||||
|
||||
#### Channels
|
||||
|
||||
@ -131,8 +125,8 @@ The following channels are supported:
|
||||
|
||||
#### Configuration Options
|
||||
|
||||
* `deviceId` - Device Id
|
||||
* Sensor Id. Example 5A4C35FT (Note: Verisure ID, found in the Verisure App or My Pages or on the sensor itself)
|
||||
- `deviceId` - Device Id
|
||||
- Sensor Id. Example 5A4C35FT (Note: Verisure ID, found in the Verisure App or My Pages or on the sensor itself)
|
||||
|
||||
#### Channels
|
||||
|
||||
@ -151,8 +145,8 @@ The following channels are supported:
|
||||
|
||||
#### Configuration Options
|
||||
|
||||
* `deviceId` - Device Id
|
||||
* Sensor Id. Example 5A4C35FT (Note: Verisure ID, found in the Verisure App or on the sensor itself)
|
||||
- `deviceId` - Device Id
|
||||
- Sensor Id. Example 5A4C35FT (Note: Verisure ID, found in the Verisure App or on the sensor itself)
|
||||
|
||||
#### Channels
|
||||
|
||||
@ -174,15 +168,13 @@ The following channels are supported:
|
||||
|
||||
#### Configuration Options
|
||||
|
||||
* `deviceId` - Device Id
|
||||
* Sensor Id. Example 5A4C35FT (Note: Verisure ID, found in the Verisure App or My Pages or on the sensor itself)
|
||||
- `deviceId` - Device Id
|
||||
- Sensor Id. Example 5A4C35FT (Note: Verisure ID, found in the Verisure App or My Pages or on the sensor itself)
|
||||
|
||||
#### Channels
|
||||
|
||||
The following channels are supported:
|
||||
|
||||
|
||||
|
||||
| Channel Type ID | Item Type | Description |
|
||||
|-----------------------------|-----------------------|--------------------------------------------------------------|
|
||||
| temperature | Number:Temperature | This channel reports the current temperature. |
|
||||
@ -192,13 +184,12 @@ The following channels are supported:
|
||||
| installationId | Number | This channel reports the installation ID. |
|
||||
| waterDetectorTriggerChannel | trigger | This is a trigger channel that receives events. |
|
||||
|
||||
|
||||
### Verisure Siren
|
||||
|
||||
#### Configuration Options
|
||||
|
||||
* `deviceId` - Device Id
|
||||
* Sensor Id. Example 5A4C35FT (Note: Verisure ID, found in the Verisure App or My Pages or on the sensor itself)
|
||||
- `deviceId` - Device Id
|
||||
- Sensor Id. Example 5A4C35FT (Note: Verisure ID, found in the Verisure App or My Pages or on the sensor itself)
|
||||
|
||||
#### Channels
|
||||
|
||||
@ -218,8 +209,8 @@ The following channels are supported:
|
||||
|
||||
#### Configuration Options
|
||||
|
||||
* `deviceId` - Device Id
|
||||
* Sensor Id. Example 5A4C35FT (Note: Verisure ID, found in the Verisure App or My Pages or on the sensor itself)
|
||||
- `deviceId` - Device Id
|
||||
- Sensor Id. Example 5A4C35FT (Note: Verisure ID, found in the Verisure App or My Pages or on the sensor itself)
|
||||
|
||||
#### Channels
|
||||
|
||||
@ -238,8 +229,8 @@ The following channels are supported:
|
||||
|
||||
#### Configuration Options
|
||||
|
||||
* `deviceId` - Device Id
|
||||
* Sensor Id. Example 5A4C35FT (Note: Verisure ID, found in the Verisure App or My Pages or on the sensor itself)
|
||||
- `deviceId` - Device Id
|
||||
- Sensor Id. Example 5A4C35FT (Note: Verisure ID, found in the Verisure App or My Pages or on the sensor itself)
|
||||
|
||||
#### Channels
|
||||
|
||||
@ -255,13 +246,12 @@ The following channels are supported:
|
||||
| lowBattery | Switch | This channel reports if the battery level is low. |
|
||||
| doorWindowTriggerChannel | trigger | This is a trigger channel that receives events. |
|
||||
|
||||
|
||||
### Verisure User Presence
|
||||
|
||||
#### Configuration Options
|
||||
|
||||
* `deviceId` - Device Id
|
||||
* Since User presence lacks a Verisure ID, it is constructed from the user's email address, where the '@' sign is removed, and the site id. The following naming convention is used for User presence on site id 123456789 for a user with email address test@gmail.com: 'uptestgmailcom123456789'. Installation ID can be found using DEBUG log settings.
|
||||
- `deviceId` - Device Id
|
||||
- Since User presence lacks a Verisure ID, it is constructed from the user's email address, where the '@' sign is removed, and the site id. The following naming convention is used for User presence on site id 123456789 for a user with email address test@gmail.com: 'uptestgmailcom123456789'. Installation ID can be found using DEBUG log settings.
|
||||
|
||||
#### Channels
|
||||
|
||||
@ -281,8 +271,8 @@ The following channels are supported:
|
||||
|
||||
#### Configuration Options
|
||||
|
||||
* `deviceId` - Device Id
|
||||
* Since Broadband connection lacks a Verisure ID, the following naming convention is used for Broadband connection on site id 123456789: 'bc123456789'. Installation ID can be found using DEBUG log settings.
|
||||
- `deviceId` - Device Id
|
||||
- Since Broadband connection lacks a Verisure ID, the following naming convention is used for Broadband connection on site id 123456789: 'bc123456789'. Installation ID can be found using DEBUG log settings.
|
||||
|
||||
#### Channels
|
||||
|
||||
@ -299,8 +289,8 @@ The following channels are supported:
|
||||
|
||||
#### Configuration Options
|
||||
|
||||
* `deviceId` - Device Id
|
||||
* Sensor Id. Example 5A4C35FT (Note: Verisure ID, found in the Verisure App or My Pages or on the sensor itself)
|
||||
- `deviceId` - Device Id
|
||||
- Sensor Id. Example 5A4C35FT (Note: Verisure ID, found in the Verisure App or My Pages or on the sensor itself)
|
||||
|
||||
#### Channels
|
||||
|
||||
@ -324,9 +314,8 @@ The following channels are supported:
|
||||
|
||||
#### Configuration Options
|
||||
|
||||
* `deviceId` - Device Id
|
||||
* Since Event Log lacks a Verisure ID, the following naming convention is used for Event Log on site id 123456789: 'el123456789'. Installation ID can be found using DEBUG log settings.
|
||||
|
||||
- `deviceId` - Device Id
|
||||
- Since Event Log lacks a Verisure ID, the following naming convention is used for Event Log on site id 123456789: 'el123456789'. Installation ID can be found using DEBUG log settings.
|
||||
|
||||
#### Channels
|
||||
|
||||
@ -347,8 +336,8 @@ The following channels are supported:
|
||||
|
||||
#### Configuration Options
|
||||
|
||||
* `deviceId` - Device Id
|
||||
* Sensor Id. Example 3B4C35FT (Note: Verisure ID, found in the Verisure App or My Pages or on the Gateway itself)
|
||||
- `deviceId` - Device Id
|
||||
- Sensor Id. Example 3B4C35FT (Note: Verisure ID, found in the Verisure App or My Pages or on the Gateway itself)
|
||||
|
||||
#### Channels
|
||||
|
||||
@ -397,7 +386,7 @@ The following trigger events are defined per thing type:
|
||||
|
||||
### Things-file
|
||||
|
||||
````
|
||||
```java
|
||||
// Bridge configuration
|
||||
Bridge verisure:bridge:myverisure "Verisure Bridge" [username="x@y.com", password="1234", refresh="600", pin="111111"] {
|
||||
|
||||
@ -409,11 +398,11 @@ Bridge verisure:bridge:myverisure "Verisure Bridge" [username="x@y.com", passwor
|
||||
Thing eventLog JannesEventLog "Verisure Event Log" [ deviceId="el123456789" ]
|
||||
Thing gateway JannesGateway "Verisure Gateway" [ deviceId="3AFG5673" ]
|
||||
}
|
||||
````
|
||||
```
|
||||
|
||||
### Items-file
|
||||
|
||||
````
|
||||
```java
|
||||
Group gVerisureMiceDetection
|
||||
Group gVerisureEventLog
|
||||
Group gVerisureGateway
|
||||
@ -479,11 +468,11 @@ Number MouseDetectionTemperature "Mouse Detection Temperature [%.1f C]"
|
||||
DateTime MouseDetectionTemperatureTime "Mouse Detection Temperature Time [%1$tY-%1$tm-%1$td %1$tR]" (gVerisureMiceDetection) {channel="verisure:miceDetection:myverisure:2CFZH80U:temperatureTimestamp"}
|
||||
String MouseDetectionLocation "Mouse Detection Location" (gVerisureMiceDetection) {channel="verisure:miceDetection:myverisure:2CFZH80U:location"}
|
||||
|
||||
````
|
||||
```
|
||||
|
||||
### Sitemap
|
||||
|
||||
````
|
||||
```perl
|
||||
Frame label="SmartLock and Alarm" {
|
||||
Text label="SmartLock and Alarm" icon="groundfloor" {
|
||||
Frame label="Yale Doorman SmartLock" {
|
||||
@ -547,11 +536,11 @@ String MouseDetectionLocation "Mouse Detection Location" (gVerisu
|
||||
Group item=gVerisureGateway label="Verisure Gateway"
|
||||
}
|
||||
|
||||
````
|
||||
```
|
||||
|
||||
### Rules
|
||||
|
||||
````
|
||||
```java
|
||||
import org.openhab.core.types.RefreshType
|
||||
|
||||
rule "Handle Refesh of Verisure"
|
||||
@ -584,5 +573,4 @@ then
|
||||
logInfo("RULES", "A DoorWindow trigger event was detected:" + receivedEvent.toString())
|
||||
end
|
||||
|
||||
|
||||
````
|
||||
```
|
||||
|
@ -2,12 +2,12 @@
|
||||
|
||||
Its current support is for the Air Purifiers & Humidifer's branded as Levoit which utilise the VeSync app based on the V2 protocol.
|
||||
|
||||
### Verified Models
|
||||
## Verified Models
|
||||
|
||||
Air Filtering models supported are Core300S, Core400S.
|
||||
Air Humidifier models supported are Dual 200S, Classic 300S, 600S, OasisMist Smart Humidifier
|
||||
|
||||
### Awaiting User Verification Models
|
||||
## Awaiting User Verification Models
|
||||
|
||||
Air Filtering models supported are Core200S and Core600S.
|
||||
Air Humidifier Classic 200S (Same as 300S without the nightlight from initial checks)
|
||||
@ -22,12 +22,10 @@ This binding supports the follow thing types:
|
||||
| Air Purifier | Thing | airPurifier | Automatic | An Air Purifier supporting V2 e.g. Core200S/Core300S or Core400S unit |
|
||||
| Air Humidifier | Thing | airHumidifier | Automatic | An Air Humidifier supporting V2 e.g. Classic300S or 600s |
|
||||
|
||||
|
||||
|
||||
This binding was developed from the great work in the listed projects.
|
||||
|
||||
The only Air Filter unit it has been tested against is the Core400S unit, **I'm looking for others to confirm** my queries regarding **the Core200S and Core300S** units.
|
||||
The ***Classic 300S Humidifier*** has been tested, and ***600S with current warm mode restrictions***.
|
||||
The **Classic 300S Humidifier** has been tested, and **600S with current warm mode restrictions**.
|
||||
|
||||
## Discovery
|
||||
|
||||
@ -45,7 +43,7 @@ Once the bridge is configured auto discovery will discover supported devices fro
|
||||
| backgroundDeviceDiscovery | Switch | Should the system scan periodically for new devices | ON |
|
||||
| refreshBackgroundDeviceDiscovery | Number | Frequency (seconds) of scans for new new devices | 120 |
|
||||
|
||||
* Note Air PM Levels don't usually change quickly - 60s seems reasonable if openHAB is controlling it and your don't want near instant feedback of physical interactions with the devices.
|
||||
- Note Air PM Levels don't usually change quickly - 60s seems reasonable if openHAB is controlling it and your don't want near instant feedback of physical interactions with the devices.
|
||||
|
||||
### AirPurifier configuration parameters
|
||||
|
||||
@ -62,7 +60,6 @@ Device's will be found communicated with via the MAC Id first and if unsuccessfu
|
||||
| deviceName | String | The name given to the device under Settings -> Device Name |
|
||||
| macId | String | The mac for the device under Settings -> Device Info -> MAC Address |
|
||||
|
||||
|
||||
## Channels
|
||||
|
||||
Channel names in **bold** are read/write, everything else is read-only
|
||||
@ -89,7 +86,6 @@ Channel names in **bold** are read/write, everything else is read-only
|
||||
| configAutoMode | String | Config: The mode of operation when auto is active | 600S, 400S, 300S | |
|
||||
| configAutoRoomSize | Number:Dimensionless | Config: The room size set when auto utilises the room size | 600S, 400S, 300S | |
|
||||
|
||||
|
||||
### AirHumidifier Thing
|
||||
|
||||
| Channel | Type | Description | Model's Supported | Controllable Values |
|
||||
@ -108,7 +104,6 @@ Channel names in **bold** are read/write, everything else is read-only
|
||||
| **humiditySetpoint** | Number:Dimensionless | Humidity % set point to reach | 200S, Dual200S, 300S, 600S, OasisMist | [30...80] |
|
||||
| warmEnabled | Switch | Indicator for warm mist mode | 600S, OasisMist | |
|
||||
|
||||
|
||||
## Full Example
|
||||
|
||||
### Configuration (*.things)
|
||||
@ -331,5 +326,5 @@ Frame {
|
||||
|
||||
The binding code is based on a lot of work done by other developers:
|
||||
|
||||
- Contributors of (https://github.com/webdjoe/pyvesync) - Python interface for VeSync
|
||||
- Rene Scherer, Holger Eisold - (https://www.openhab.org/addons/bindings/surepetcare) Sure Petcare Binding for openHAB as a reference point for the starting blocks of this code
|
||||
- Contributors of (<https://github.com/webdjoe/pyvesync>) - Python interface for VeSync
|
||||
- Rene Scherer, Holger Eisold - (<https://www.openhab.org/addons/bindings/surepetcare>) Sure Petcare Binding for openHAB as a reference point for the starting blocks of this code
|
||||
|
@ -10,17 +10,16 @@ It is identified by the `id`.
|
||||
|
||||
To get your station id :
|
||||
|
||||
1. open https://www.vigicrues.gouv.fr/
|
||||
1. open <https://www.vigicrues.gouv.fr/>
|
||||
|
||||
2. Select your region on the France map
|
||||
1. Select your region on the France map
|
||||
|
||||
3. Select the station nearest to your location
|
||||
1. Select the station nearest to your location
|
||||
|
||||
4. In the 'Info Station' tab you'll get the id just near the station name (e.g. X9999999299)
|
||||
1. In the 'Info Station' tab you'll get the id just near the station name (e.g. X9999999299)
|
||||
|
||||
Of course, you can add multiple Things, e.g. for getting measures for different locations.
|
||||
|
||||
|
||||
## Discovery
|
||||
|
||||
You can discover stations based upon the system location.
|
||||
@ -41,7 +40,6 @@ The thing has a few configuration parameters:
|
||||
| id | Id of the station. |
|
||||
| refresh | Refresh interval in minutes. Optional, the default value is 30 minutes. |
|
||||
|
||||
|
||||
## Channels
|
||||
|
||||
Once created, at first initialization, the thing will discover its capabilities (available data) using the webservices apis.
|
||||
@ -61,7 +59,7 @@ The VigiCrues information that retrieved are made available with these channels:
|
||||
| short-comment | String | Description of the alert level |
|
||||
| comment | String | Detailed informations regarding the ongoing event |
|
||||
|
||||
(*) Each alert level is described by a color :
|
||||
(*) Each alert level is described by a color:
|
||||
|
||||
| Code | Color | Description |
|
||||
|------|--------|-------------------------------------------|
|
||||
@ -70,19 +68,18 @@ The VigiCrues information that retrieved are made available with these channels:
|
||||
| 2 | Orange | Be "very vigilant" in the concerned areas |
|
||||
| 3 | Red | Absolute vigilance required |
|
||||
|
||||
|
||||
## Full Example
|
||||
|
||||
vigicrues.things:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing vigicrues:station:poissy "Station Poissy" @ "VigiCrues" [id="H300000201", refresh=30]
|
||||
Thing vigicrues:station:vernon "Station Vernon" @ "VigiCrues" [id="H320000104", refresh=30]
|
||||
```
|
||||
|
||||
vigicrues.items:
|
||||
|
||||
```
|
||||
```java
|
||||
Group gVigiCrues "VigiCrues" <flow>
|
||||
Number:Length VC_hauteur "Hauteur Eau Poissy [%.2f %unit%]" <none> (gVigiCrues) {channel="vigicrues:station:poissy:height"}
|
||||
Number:VolumetricFlowRate VC_debit "Débit Eau Poissy [%.2f %unit%]" <flow> (gVigiCrues) {channel="vigicrues:station:poissy:flow"}
|
||||
@ -91,7 +88,7 @@ Group gVigiCrues "VigiCrues" <flow>
|
||||
|
||||
vigicrues.sitemap:
|
||||
|
||||
```
|
||||
```perl
|
||||
sitemap vigicrues label="VigiCrues" {
|
||||
Frame {
|
||||
Default item=VC_hauteur
|
||||
|
@ -17,19 +17,19 @@ The adapter itself is not a part of the binding.
|
||||
|
||||
For easy using are the main things of a heating system are already define in this binding:
|
||||
|
||||
* heating (Vitotronic core system)
|
||||
* pelletburner (Pellet Fireplace, works for wood also)
|
||||
* oilburner (Oil Fireplace)
|
||||
* gasburner (Gas Fireplace)
|
||||
* storagetank (Storage Tank, stores heat in a water tank on 3 levels: bottom, middle, top=hot water)
|
||||
* circuit (Heating circuit controls the flow between the heating system and the radiators in the rooms)
|
||||
* solar (Solar water heating (SWH): Convert sunlight into energy for water heating)
|
||||
- heating (Vitotronic core system)
|
||||
- pelletburner (Pellet Fireplace, works for wood also)
|
||||
- oilburner (Oil Fireplace)
|
||||
- gasburner (Gas Fireplace)
|
||||
- storagetank (Storage Tank, stores heat in a water tank on 3 levels: bottom, middle, top=hot water)
|
||||
- circuit (Heating circuit controls the flow between the heating system and the radiators in the rooms)
|
||||
- solar (Solar water heating (SWH): Convert sunlight into energy for water heating)
|
||||
|
||||
For advanced used 3 basic things of a headingsystem define also.
|
||||
|
||||
* temperaturesensor (Single temperature sensor)
|
||||
* pump (Single pump)
|
||||
* valve (Single valve)
|
||||
- temperaturesensor (Single temperature sensor)
|
||||
- pump (Single pump)
|
||||
- valve (Single valve)
|
||||
|
||||
Note: The mapping of things and channels to the heating system addresses must be done in the adapter.
|
||||
|
||||
@ -46,17 +46,15 @@ It discovers all things, and places them in the inbox.
|
||||
|
||||
Binding itself has 4 configuration parameters:
|
||||
|
||||
* ipAddress (The IP address of the Optolink adapter)
|
||||
* port (Port of the LAN gateway. Default: 31113)
|
||||
* adapterID (The ID/Name of the adapter)
|
||||
* refreshInterval (Refresh time for data in seconds. Default: 600 seconds)
|
||||
- ipAddress (The IP address of the Optolink adapter)
|
||||
- port (Port of the LAN gateway. Default: 31113)
|
||||
- adapterID (The ID/Name of the adapter)
|
||||
- refreshInterval (Refresh time for data in seconds. Default: 600 seconds)
|
||||
|
||||
If the adapter is automatic discovered the ipAddress, and adapterID will be set by discovery.
|
||||
The rereshInterval can be set between 60 and 600 seconds.
|
||||
The minimal setting is dependent of the performance of the adapter.
|
||||
|
||||
|
||||
|
||||
## Thing Configuration
|
||||
|
||||
There is no configuration of Things necessary.
|
||||
@ -130,4 +128,3 @@ The follow channels are implemented:
|
||||
| producedheat | Number | Produced heat since starting solar system |
|
||||
| temperature | Number | Generic temperature sensor |
|
||||
| valve | Number | Value of a generic valve |
|
||||
|
||||
|
@ -32,7 +32,7 @@ The first command will send a pairing start request to the TV. This triggers the
|
||||
|
||||
Start Pairing:
|
||||
|
||||
```
|
||||
```shell
|
||||
openhab:vizio <thingUID> start_pairing <deviceName>
|
||||
```
|
||||
|
||||
@ -41,7 +41,7 @@ Substitute `<deviceName>` the desired device name that will appear in the TV's s
|
||||
|
||||
Submit Pairing Code:
|
||||
|
||||
```
|
||||
```shell
|
||||
openhab:vizio <thingUID> submit_code <pairingCode>
|
||||
```
|
||||
|
||||
@ -114,7 +114,7 @@ By editing the JSON, apps that are not desired can be removed from the `activeAp
|
||||
|
||||
An entry for an application has a `name` element and a `config` element containing `APP_ID`, `NAME_SPACE` and `MESSAGE` (null for most apps):
|
||||
|
||||
```
|
||||
```json
|
||||
{
|
||||
"name": "Crackle",
|
||||
"config": {
|
||||
@ -131,8 +131,8 @@ If an app is running that is not currently recognized by the binding, the `activ
|
||||
If an app that is in the JSON database fails to start when selected, try adjusting the `NAME_SPACE` value for that app.
|
||||
`NAME_SPACE` seems to be a version number and adjusting the number up or down may correct the mismatch between the TV and the binding.
|
||||
|
||||
A current list of `APP_ID`'s can be found at http://hometest.buddytv.netdna-cdn.com/appservice/vizio_apps_prod.json
|
||||
and `NAME_SPACE` & `MESSAGE` values needed can be found at http://hometest.buddytv.netdna-cdn.com/appservice/app_availability_prod.json
|
||||
A current list of `APP_ID`'s can be found at <http://hometest.buddytv.netdna-cdn.com/appservice/vizio_apps_prod.json>
|
||||
and `NAME_SPACE` & `MESSAGE` values needed can be found at <http://hometest.buddytv.netdna-cdn.com/appservice/app_availability_prod.json>
|
||||
|
||||
If there is an error in the user supplied `appListJson`, the thing will fail to start and display a CONFIGURATION_ERROR message.
|
||||
If all text in `appListJson` is removed (set to null) and the thing configuration saved, the binding will restore `appListJson` from the binding's JSON db.
|
||||
@ -141,7 +141,7 @@ If all text in `appListJson` is removed (set to null) and the thing configuratio
|
||||
|
||||
vizio.things:
|
||||
|
||||
```
|
||||
```java
|
||||
// Vizio TV
|
||||
vizio:vizio_tv:mytv1 "My Vizio TV" [ hostName="192.168.10.1", port=7345, authToken="idspisp0pd" ]
|
||||
|
||||
@ -149,7 +149,7 @@ vizio:vizio_tv:mytv1 "My Vizio TV" [ hostName="192.168.10.1", port=7345, authTok
|
||||
|
||||
vizio.items:
|
||||
|
||||
```
|
||||
```java
|
||||
// Vizio TV items:
|
||||
|
||||
Switch TV_Power "Power" { channel="vizio:vizio_tv:mytv1:power" }
|
||||
@ -164,7 +164,7 @@ String TV_Button "Send Command to TV" { channel="vizio:vizio_tv:mytv1:butto
|
||||
|
||||
vizio.sitemap:
|
||||
|
||||
```
|
||||
```perl
|
||||
sitemap vizio label="Vizio" {
|
||||
Frame label="My Vizio TV" {
|
||||
Switch item=TV_Power
|
||||
|
@ -112,7 +112,7 @@ Following channels are currently available:
|
||||
|
||||
demo.things:
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge volvooncall:vocapi:glh "VoC Gaël" @ "System" [username="mail@address.org", password="mypassword"]
|
||||
{
|
||||
Thing vehicle XC60 "XC60" @ "World" [vin="theCarVIN", refreshinterval=5]
|
||||
@ -121,7 +121,7 @@ Bridge volvooncall:vocapi:glh "VoC Gaël" @ "System" [username="mail@address.org
|
||||
|
||||
demo.items:
|
||||
|
||||
```
|
||||
```java
|
||||
Group gVoc "Volvo On Call"
|
||||
|
||||
Group:Contact:OR(OPEN,CLOSED) gDoorsOpening "Portes" (gVoc)
|
||||
@ -151,7 +151,7 @@ Switch Voc_Fluid_Alert "Alerte Lave Glace" <siren> (gVo
|
||||
|
||||
voc.sitemap:
|
||||
|
||||
```
|
||||
```perl
|
||||
sitemap voc label="Volvo On Call" {
|
||||
|
||||
Frame label="Etat Véhicule" {
|
||||
@ -181,7 +181,7 @@ Multiple actions are supported by this binding. In classic rules these are acces
|
||||
|
||||
Example 1a: If Thing has been created using autodiscovery
|
||||
|
||||
```
|
||||
```java
|
||||
val actions = getActions("volvooncall","volvooncall:vehicle:thingId")
|
||||
if(null === actions) {
|
||||
logInfo("actions", "Actions not found, check thing ID")
|
||||
@ -193,7 +193,7 @@ Example 1a: If Thing has been created using autodiscovery
|
||||
|
||||
Example 1b: If Thing has been created using script
|
||||
|
||||
```
|
||||
```java
|
||||
val actions = getActions("volvooncall","volvooncall:vehicle:bridgeId:thingId")
|
||||
if(null === actions) {
|
||||
logInfo("actions", "Actions not found, check thing ID")
|
||||
@ -203,15 +203,15 @@ Example 1b: If Thing has been created using script
|
||||
}
|
||||
```
|
||||
|
||||
### closeCarCommand()
|
||||
### closeCarCommand()
|
||||
|
||||
Sends the command to close the car.
|
||||
|
||||
### openCarCommand()
|
||||
### openCarCommand()
|
||||
|
||||
Sends the command to open the car.
|
||||
|
||||
### engineStartCommand(runtime)
|
||||
### engineStartCommand(runtime)
|
||||
|
||||
Sends the command to start the engine for a given runtime. Default 5 minutes.
|
||||
|
||||
@ -221,23 +221,23 @@ Sends the command to start the engine for a given runtime. Default 5 minutes.
|
||||
|---------|-----------------------------------------------|
|
||||
| runtime | Integer - Time for the engine to stay on |
|
||||
|
||||
### heaterStartCommand()
|
||||
### heaterStartCommand()
|
||||
|
||||
Sends the command to start the car heater (if remoteHeaterSupported).
|
||||
|
||||
### heaterStopCommand()
|
||||
### heaterStopCommand()
|
||||
|
||||
Sends the command to stop the car heater (if remoteHeaterSupported).
|
||||
|
||||
### preclimatizationStartCommand()
|
||||
### preclimatizationStartCommand()
|
||||
|
||||
Sends the command to start the car heater (if preclimatizationSupported).
|
||||
|
||||
### preclimatizationStopCommand()
|
||||
### preclimatizationStopCommand()
|
||||
|
||||
Sends the command to stop the car heater (if preclimatizationSupported).
|
||||
|
||||
### honkBlinkCommand(honk, blink)
|
||||
### honkBlinkCommand(honk, blink)
|
||||
|
||||
Activates lights and/or the horn of the car
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
# Warmup Binding
|
||||
|
||||
This binding integrates the Warmup 4iE Thermostat https://www.warmup.co.uk/thermostats/smart/4ie-underfloor-heating, via the API at https://my.warmup.com/.
|
||||
This binding integrates the Warmup 4iE Thermostat <https://www.warmup.co.uk/thermostats/smart/4ie-underfloor-heating>, via the API at <https://my.warmup.com/>.
|
||||
|
||||
Any Warmup 4iE device(s) must be registered at https://my.warmup.com/ prior to usage.
|
||||
Any Warmup 4iE device(s) must be registered at <https://my.warmup.com/> prior to usage.
|
||||
|
||||
This API is not known to be documented publicly.
|
||||
The binding api implementation has been derived from the implementations at https://github.com/alyc100/SmartThingsPublic/blob/master/devicetypes/alyc100/warmup-4ie.src/warmup-4ie.groovy and https://github.com/alex-0103/warmup4IE/blob/master/warmup4ie/warmup4ie.py, and enhanced by inspecting the GraphQL endpoint.
|
||||
The binding api implementation has been derived from the implementations at <https://github.com/alyc100/SmartThingsPublic/blob/master/devicetypes/alyc100/warmup-4ie.src/warmup-4ie.groovy> and <https://github.com/alex-0103/warmup4IE/blob/master/warmup4ie/warmup4ie.py>, and enhanced by inspecting the GraphQL endpoint.
|
||||
|
||||
## Supported Things
|
||||
|
||||
@ -48,7 +48,6 @@ Rooms are configured automatically with a Serial Number on discovery, or can be
|
||||
| serialNumber | String | Device Serial Number, excluding last 3 characters | true | |
|
||||
| overrideDuration | Integer | Duration in minutes of override when target temperature is changed | true | 60 |
|
||||
|
||||
|
||||
## Channels
|
||||
|
||||
| channel | type | description | read only |
|
||||
@ -59,7 +58,6 @@ Rooms are configured automatically with a Serial Number on discovery, or can be
|
||||
| runMode | String | Current operating mode of the thermostat, options listed below | true |
|
||||
| frostProtectionMode | Switch | Toggles between the "Frost Protection" run mode and the previously configured "active" run mode (known options are either Fixed or Schedule) | false |
|
||||
|
||||
|
||||
### Run Mode Statuses
|
||||
|
||||
These run mode statuses are defined for the API. The descriptions are based on inspection of the device behaviour and are not sourced from documentation.
|
||||
@ -82,7 +80,7 @@ These run mode statuses are defined for the API. The descriptions are based on i
|
||||
|
||||
### .things file
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge warmup:my-warmup:MyWarmup [ username="test@example.com", password="test", refreshInterval=300 ]
|
||||
{
|
||||
room bathroom "Home - Bathroom" [ serialNumber="AABBCCDDEEFF", overrideDuration=60 ]
|
||||
@ -91,7 +89,7 @@ Bridge warmup:my-warmup:MyWarmup [ username="test@example.com", password="test",
|
||||
|
||||
### .items file
|
||||
|
||||
```
|
||||
```java
|
||||
Number:Temperature bathroom_temperature "Temperature [%.1f °C]" <temperature> (GF_Bathroom, Temperature) ["Temperature"] {channel="warmup:room:MyWarmup:bathroom:currentTemperature"}
|
||||
Number:Temperature bathroom_setpoint "Set Point [%.1f °C]" <temperature> (GF_Bathroom) ["Set Point"] {channel="warmup:room:MyWarmup:bathroom:targetTemperature"}
|
||||
Number:Time bathroom_overrideRemaining "Override Remaining [%d minutes]" (GF_Bathroom) {channel="warmup:room:MyWarmup:bathroom:overrideRemaining"}
|
||||
@ -101,7 +99,7 @@ Switch bathroom_frostProtection "Frost Protection Mode" (GF_Bathroom) {channel="
|
||||
|
||||
### Sitemap
|
||||
|
||||
```
|
||||
```perl
|
||||
Text label="Bathroom" {
|
||||
Text item=bathroom_temperature
|
||||
Setpoint item=bathroom_setpoint step=0.5
|
||||
|
@ -1,6 +1,6 @@
|
||||
# The Weather Company Binding
|
||||
|
||||
Provides 5-day weather forecast and *Personal Weather Station* (PWS) current
|
||||
Provides 5-day weather forecast and _Personal Weather Station_ (PWS) current
|
||||
observations from **The Weather Company**.
|
||||
This service is available only for PWS users who upload their PWS
|
||||
weather data to WeatherUnderground.
|
||||
@ -18,7 +18,7 @@ The following thing types are supported:
|
||||
## Discovery
|
||||
|
||||
Once an Account thing is configured with a valid API key, the binding will auto-discover
|
||||
a *Local Weather Forecast* thing if the location (i.e. latitude and longitude)
|
||||
a _Local Weather Forecast_ thing if the location (i.e. latitude and longitude)
|
||||
and locale are set in the openHAB configuration.
|
||||
|
||||
## Thing Configuration
|
||||
@ -55,7 +55,7 @@ The following configuration parameters are available on the Weather Observations
|
||||
|
||||
## Channels
|
||||
|
||||
#### Channels for Personal Weather Station (PWS) Current Observations
|
||||
### Channels for Personal Weather Station (PWS) Current Observations
|
||||
|
||||
| Channel ID | Item Type | Description |
|
||||
|---------------------------------|-------------------------|------------------------------------------|
|
||||
@ -81,7 +81,7 @@ The following configuration parameters are available on the Weather Observations
|
||||
| qcStatus | Number | QC status |
|
||||
| softwareType | String | Software type |
|
||||
|
||||
#### Channels for Daily Forecast (Today, Tomorrow, Day 2, Day 3, Day 4, Day 5)
|
||||
### Channels for Daily Forecast (Today, Tomorrow, Day 2, Day 3, Day 4, Day 5)
|
||||
|
||||
| Channel Group ID | Channel ID | Item Type | Description |
|
||||
|------------------------------|---------------------------------|-------------------------|----------------------------------------------------|
|
||||
@ -94,7 +94,7 @@ The following configuration parameters are available on the Weather Observations
|
||||
| forecastDay(0-5) | validTimeLocal | DateTime | Time the forecast is valid in local apparent time |
|
||||
| forecastDay(0-5) | expirationTimeLocal | DateTime | Time the forecast expires |
|
||||
|
||||
#### Channels for Daypart Forecast (Today, Tonight, Tomorrow, Tomorrow Night, etc.)
|
||||
### Channels for Daypart Forecast (Today, Tonight, Tomorrow, Tomorrow Night, etc.)
|
||||
|
||||
| Channel Group ID | Channel ID | Item Type | Description |
|
||||
|------------------------------|---------------------------------|-------------------------|----------------------------------------------------------------|
|
||||
@ -140,12 +140,11 @@ The following channels will be translated to local language based on the languag
|
||||
- windPhrase
|
||||
- wxPhraseLong
|
||||
|
||||
|
||||
## Full Example
|
||||
|
||||
### Thing Example
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge weathercompany:account:myaccount [ apiKey="0123456789" ] {
|
||||
Thing weather-forecast myweather "My Forecast" @ "Home" [locationType="postalCode",postalCode="10001:US",language="en-US",refreshInterval=30]
|
||||
Thing weather-observations myobservations "My Observations" @ "Home" [pwsStationId="KFLMIAMI208",refreshInterval=30]
|
||||
@ -158,7 +157,7 @@ Bridge weathercompany:account:myaccount [ apiKey="0123456789" ] {
|
||||
|
||||
### Items Example
|
||||
|
||||
```
|
||||
```java
|
||||
// PWS Current Observations
|
||||
Number:Temperature WC_PWS_Temperature "Temperature [%.1f %unit%]" <temperature> { channel="weathercompany:weather-observations:myaccount:myobservations:currentTemperature" }
|
||||
Number:Temperature WC_PWS_TemperatureDewPoint "Dew Point Temperature [%.1f %unit%]" <temperature> { channel="weathercompany:weather-observations:myaccount:myobservations:currentTemperatureDewPoint" }
|
||||
@ -258,7 +257,7 @@ Image WC_Day0_Night_IconImage "Icon Image [%s]" { channel="weathercompany:weathe
|
||||
|
||||
### Sitemap Example
|
||||
|
||||
```
|
||||
```perl
|
||||
Frame {
|
||||
Text label="The Weather Company Forecast" {
|
||||
Frame label="PWS Current Conditions" {
|
||||
|
@ -101,12 +101,11 @@ The weather information that is retrieved is available as these channels:
|
||||
| forecastToday forecastTomorrow forecastDay2 ... forecastDay9 | icon | Image | Icon representing the weather forecast conditions |
|
||||
| forecastToday forecastTomorrow forecastDay2 ... forecastDay9 | iconKey | String | Key used in the icon URL |
|
||||
|
||||
|
||||
## Full Example
|
||||
|
||||
demo.things:
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge weatherunderground:bridge:api "API" [ apikey="XXXXXXXXXXXX" ] {
|
||||
Thing weather paris "Météo Paris" [ location="France/Paris", language="FR", refresh=15 ]
|
||||
}
|
||||
@ -114,7 +113,7 @@ Bridge weatherunderground:bridge:api "API" [ apikey="XXXXXXXXXXXX" ] {
|
||||
|
||||
demo.items:
|
||||
|
||||
```
|
||||
```java
|
||||
String Conditions "Conditions [%s]" {channel="weatherunderground:weather:api:paris:current#conditions"}
|
||||
Image Icon "Icon" {channel="weatherunderground:weather:api:paris:current#icon"}
|
||||
String IconKey "Icon key [%s]" {channel="weatherunderground:weather:api:paris:current#iconKey"}
|
||||
|
@ -12,13 +12,12 @@ Messages can use markdown syntax, and attachments are supported.
|
||||
|
||||
No Things are being discovered by this binding.
|
||||
|
||||
|
||||
## Thing Configuration
|
||||
|
||||
Webex Teams supports two main types of app integration:
|
||||
|
||||
* Bot: a separate identity that can be used to communicate with people and rooms.
|
||||
* Person integration: OAuth integration that allows the binding to act on behalf of a persons.
|
||||
- Bot: a separate identity that can be used to communicate with people and rooms.
|
||||
- Person integration: OAuth integration that allows the binding to act on behalf of a persons.
|
||||
|
||||
Both of these accounts must be first configured on the [Webex Developers](https://developer.webex.com/my-apps) website.
|
||||
When creating a person integration, it's important you customize the redirect URL based on your OpenHab installation.
|
||||
@ -54,18 +53,17 @@ Note: status and lastactivity are only updated for person integrations
|
||||
|
||||
## Full Example
|
||||
|
||||
|
||||
webexteams.things:
|
||||
|
||||
Configure a bot account:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing webexteams:account:bot [ token="XXXXXX", roomId="YYYYYY" ]
|
||||
```
|
||||
|
||||
Configure a person integration account:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing webexteams:account:person [ clientId="XXXXXX", clientSecret="YYYYYY", roomId="ZZZZZZ" ]
|
||||
```
|
||||
|
||||
@ -77,15 +75,13 @@ DSL rules use `getActions` to get a reference to the thing.
|
||||
|
||||
This binding includes these rule actions for sending messages:
|
||||
|
||||
* `var success = botActions.sendMessage(String markdown)` - Send a message to the default room.
|
||||
* `var success = botActions.sendMessage(String markdown, String attach)` - Send a message to the default room, with attachment.
|
||||
* `var success = botActions.sendRoomMessage(String roomId, String markdown)` - Send a message to a specific room.
|
||||
* `var success = botActions.sendRoomMessage(String roomId, String markdown, String attach)` - Send a message to a specific room, with attachment.
|
||||
* `var success = botActions.sendPersonMessage(String personEmail, String markdown)` - Send a direct message to a person.
|
||||
* `var success = botActions.sendPersonMessage(String personEmail, String markdown, String attach)` - Send a direct message to a person, with attachment.
|
||||
- `var success = botActions.sendMessage(String markdown)` - Send a message to the default room.
|
||||
- `var success = botActions.sendMessage(String markdown, String attach)` - Send a message to the default room, with attachment.
|
||||
- `var success = botActions.sendRoomMessage(String roomId, String markdown)` - Send a message to a specific room.
|
||||
- `var success = botActions.sendRoomMessage(String roomId, String markdown, String attach)` - Send a message to a specific room, with attachment.
|
||||
- `var success = botActions.sendPersonMessage(String personEmail, String markdown)` - Send a direct message to a person.
|
||||
- `var success = botActions.sendPersonMessage(String personEmail, String markdown, String attach)` - Send a direct message to a person, with attachment.
|
||||
|
||||
Sending messages for bot or person accounts works exactly the same.
|
||||
Attachments must be URLs.
|
||||
Sending local files is not supported at this moment.
|
||||
|
||||
|
||||
|
@ -13,7 +13,6 @@ or to monitor [a PIR motion sensor on Raspberry Pi](https://pypi.org/project/pi-
|
||||
|
||||
As a generic solution, the WebThing binding does not depend on specific devices. All devices implementing the Web Thing API should be accessible.
|
||||
|
||||
|
||||
## Discovery
|
||||
|
||||
Once the binding is activated all reachable **WebThing devices will be detected automatically** (via mDNS).
|
||||
@ -22,7 +21,6 @@ Once the binding is activated all reachable **WebThing devices will be detected
|
||||
|
||||
No binding configuration required.
|
||||
|
||||
|
||||
## Thing Configuration
|
||||
|
||||
| Parameter | Description | Required |
|
||||
@ -32,13 +30,13 @@ No binding configuration required.
|
||||
Due to the discovery support, **no manual Thing configuration is required** in general. However, under certain circumstances textual
|
||||
Thing configuration may be preferred. In this case, the webThingURI has to be configured as shown in the webthing.things file below:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing webthing:generic:motionsensor [ webThingURI="http://192.168.1.27:9496/" ]
|
||||
```
|
||||
|
||||
## Channels
|
||||
|
||||
The supported channels depend on the WebThing device that is connected. Each mappable **WebThing property will be mapped to a dedicated channel, automatically**. For instance, to support the *motion property* of a Motion-Sensor WebThing, a dedicated *motion channel* will be created, automatically.
|
||||
The supported channels depend on the WebThing device that is connected. Each mappable **WebThing property will be mapped to a dedicated channel, automatically**. For instance, to support the _motion property_ of a Motion-Sensor WebThing, a dedicated _motion channel_ will be created, automatically.
|
||||
|
||||
| Thing | channel | type | description |
|
||||
|--------|----------|--------|------------------------------|
|
||||
@ -49,25 +47,24 @@ The supported channels depend on the WebThing device that is connected. Each map
|
||||
In the example below WebThings provided by the [Internet Monitor Service](https://pypi.org/project/internet-monitor-webthing/) will be connected.
|
||||
This service does not require specific hardware or devices. To connect the WebThings, the service has to be installed inside your local network.
|
||||
|
||||
|
||||
### Thing
|
||||
|
||||
After installing the WebThing binding you should find the WebThings of your network in the things section of your openHAB administration interface as shown below.
|
||||
|
||||
![discovery picture](doc/discovery.png)
|
||||
|
||||
Here, the WebThings provided by the *Internet Monitor Service*: the *Internet Connectivity* WebThing as well as the
|
||||
*Internet Speed Monitor* WebThing have been discovered. To add a WebThing as an openHAB Thing click the 'Add as Thing' button.
|
||||
Here, the WebThings provided by the _Internet Monitor Service_: the _Internet Connectivity_ WebThing as well as the
|
||||
_Internet Speed Monitor_ WebThing have been discovered. To add a WebThing as an openHAB Thing click the 'Add as Thing' button.
|
||||
|
||||
![discovery picture](doc/speedmonitor.png)
|
||||
|
||||
Alternatively, you may add the WebThing as an openHAB Thing by using a webthing.thing file that has to be located inside the things folder.
|
||||
|
||||
```
|
||||
```java
|
||||
Thing webthing:generic:speedmonitor [ webThingURI="http://192.168.1.27:9496/0" ]
|
||||
```
|
||||
|
||||
Please consider that the *Internet Monitor Service* in this example supports two WebThings. Both WebThings are bound on the
|
||||
Please consider that the _Internet Monitor Service_ in this example supports two WebThings. Both WebThings are bound on the
|
||||
same hostname and port. However, the WebThing URI path of the speed monitor ends with '/0'. In contrast,
|
||||
the connectivity WebThing URI path ends with '/1' in this example.
|
||||
|
||||
@ -77,16 +74,16 @@ Due to the fact that the WebThing API is based on web technologies, you can vali
|
||||
|
||||
### Items
|
||||
|
||||
The *Internet Speed Monitor* WebThing used in this example supports properties such as *downloadspeed*, *uploadspeed* or *ping*.
|
||||
The _Internet Speed Monitor_ WebThing used in this example supports properties such as _downloadspeed_, _uploadspeed_ or _ping_.
|
||||
For each property of the WebThing a dedicated openHAB channel will be created, automatically. The channelUID such
|
||||
as *webthing:generic:speedmonitor:uploadspeed* is the combination of the thingUID *webthing:generic* and the
|
||||
WebThing property name *uploadspeed*.
|
||||
as _webthing:generic:speedmonitor:uploadspeed_ is the combination of the thingUID _webthing:generic_ and the
|
||||
WebThing property name _uploadspeed_.
|
||||
|
||||
![channels picture](doc/channels.png)
|
||||
|
||||
These channels may be linked via the channels tab of the graphical user interface or manually via a webthing.items file as shown below
|
||||
|
||||
```
|
||||
```java
|
||||
Number uploadSpeed "uploadspeed speed [%.0f]" {channel="webthing:generic:speedmonitor:uploadspeed"}
|
||||
Number downloadSpeed "download speed [%.0f]" {channel="webthing:generic:speedmonitor:downloadspeed"}
|
||||
|
||||
@ -96,7 +93,7 @@ Number downloadSpeed "download speed [%.0f]" {channel="webthing:generic:speedmo
|
||||
|
||||
To add the newly linked WebThing items to the sitemap you place a sitemap file such as the internetmonitor.sitemap file shown below
|
||||
|
||||
```
|
||||
```perl
|
||||
sitemap internetmonitor label="Internet Speed Monitor" {
|
||||
Text item=uploadSpeed
|
||||
Text item=downloadSpeed
|
||||
|
@ -51,7 +51,7 @@ This is combined with a delta trigger value, which is defaulted to 1 W.
|
||||
This means that the channel is only updated when one of the following conditions are met:
|
||||
|
||||
1. The rounded value received is equal to the rounded average for the past minute, i.e. this value has stabilized. This introduces a delay for very small changes in consumption, but on the other hand it prevents excessive logging and persistence caused by temporary small changes and rounding.
|
||||
2. The rounded value received is more than 1 W from the previous value. So when changes are happening fast, the channel will also be updated fast.
|
||||
1. The rounded value received is more than 1 W from the previous value. So when changes are happening fast, the channel will also be updated fast.
|
||||
|
||||
| Configuration Parameter | Description |
|
||||
|----------------------------|---------------------------------------------------------------------------------------|
|
||||
@ -125,7 +125,7 @@ Devices support some of the following channels:
|
||||
|
||||
demo.things:
|
||||
|
||||
```
|
||||
```java
|
||||
wemo:socket:Switch1 "DemoSwitch" @ "Office" [udn="Socket-1_0-221242K11xxxxx"]
|
||||
wemo:motion:Sensor1 "MotionSensor" @ "Entrance" [udn="Sensor-1_0-221337L11xxxxx"]
|
||||
wemo:insight:Insight1 "Insight" @ "Attic" [udn="Insight-1_0-xxxxxxxxxxxxxx", currentPowerSlidingSeconds=120, currentPowerDeltaTrigger=2]
|
||||
@ -138,7 +138,7 @@ MZ100 94103EA2B278xxxx "DemoLoght2" @ "Living" [ deviceID="94103EA2B278xxxx
|
||||
|
||||
demo.items:
|
||||
|
||||
```
|
||||
```java
|
||||
// Switch
|
||||
Switch DemoSwitch { channel="wemo:socket:Switch1:state" }
|
||||
|
||||
@ -216,7 +216,7 @@ String heaterRemaining { channel="wemo:heater:HeaterB-1_0-231445B010xxxx:he
|
||||
|
||||
demo.sitemap:
|
||||
|
||||
```
|
||||
```perl
|
||||
sitemap demo label="Main Menu"
|
||||
{
|
||||
Frame {
|
||||
|
@ -77,13 +77,13 @@ However, here is an example.
|
||||
|
||||
wifiled.things:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing wifiled:wifiled:F0FE6B19CB2A [ ip="192.168.178.91", port=5577, pollingPeriod=3000, protocol="LD686", driver="CLASSIC", fadeDurationInMs=1000, fadeSteps=100 ]
|
||||
```
|
||||
|
||||
wifiled.items:
|
||||
|
||||
```
|
||||
```java
|
||||
Switch MyWiFiLight_power "Power" (Light) {channel="wifiled:wifiled:F0FE6B19CB2A:power"}
|
||||
Dimmer MyWiFiLight_white "White" (Light) {channel="wifiled:wifiled:F0FE6B19CB2A:white"}
|
||||
Color MyWiFiLight_color "Color" (Light) {channel="wifiled:wifiled:F0FE6B19CB2A:color"}
|
||||
@ -118,7 +118,7 @@ Switch LED_1_preset_23 "Jump - R/G/B" <chart> (LEDPresets1)
|
||||
|
||||
wifiled.sitemap
|
||||
|
||||
```
|
||||
```perl
|
||||
sitemap wifiled label="LED Sitemap"
|
||||
{
|
||||
|
||||
@ -160,7 +160,7 @@ sitemap wifiled label="LED Sitemap"
|
||||
|
||||
led_program.map
|
||||
|
||||
```
|
||||
```text
|
||||
-=Undefined
|
||||
NULL=Undefined
|
||||
48=Strobe
|
||||
@ -196,7 +196,7 @@ NULL=Undefined
|
||||
|
||||
wifiled.rules
|
||||
|
||||
```
|
||||
```java
|
||||
rule "Program - Strobe"
|
||||
when Item LED_1_preset_0 received command ON
|
||||
then
|
||||
|
@ -54,14 +54,14 @@ No binding configuration required.
|
||||
|
||||
### demo.things
|
||||
|
||||
```
|
||||
```java
|
||||
Thing windcentrale:mill:geert [ millId=1 ]
|
||||
Thing windcentrale:mill:reiger [ millId=131, wd=3, refreshInterval=60 ]
|
||||
```
|
||||
|
||||
### demo.items
|
||||
|
||||
```
|
||||
```java
|
||||
Group gReiger "Windcentrale Reiger" <wind>
|
||||
|
||||
Number ReigerWindSpeed "Wind speed [%d Bft]" <wind> (gReiger) { channel="windcentrale:mill:reiger:windSpeed" }
|
||||
|
@ -5,15 +5,14 @@ This binding add support for the WlanThermo BBQ Thermometer.
|
||||
|--------------------------------------|-------------------------------------|
|
||||
| ![WlanThermo Nano V1+](doc/nano.jpg) | ![WlanThermo Mini V2](doc/mini.jpg) |
|
||||
|
||||
|
||||
## Supported Things
|
||||
|
||||
This binding supports the following version of WlanThermo:
|
||||
|
||||
- Nano V1 (untested, but should be working)
|
||||
- Nano V1+
|
||||
- Mini V1 (untested, but should be working)
|
||||
- Mini V2
|
||||
- Nano V1 (untested, but should be working)
|
||||
- Nano V1+
|
||||
- Mini V1 (untested, but should be working)
|
||||
- Mini V2
|
||||
|
||||
Pitmaster support is currently only enabled for Mini V1/V2.
|
||||
If you have a WlanThermo Nano with Pitmaster, please contact the author of this binding to include the support in future releases.
|
||||
@ -47,7 +46,6 @@ If username/password is given in the thing, most channels are writeable.
|
||||
| rssi_signalstrength | Number | Signal Strength in range [0 ... 4] |
|
||||
| rssi | Number | Signal Strength in dBm |
|
||||
|
||||
|
||||
#### The following channels apply for all 8 probes of the WlanThermo Nano:
|
||||
|
||||
| channel | type | description |
|
||||
@ -64,8 +62,6 @@ If username/password is given in the thing, most channels are writeable.
|
||||
| color | Color | The color of this probe. Read only. |
|
||||
| color_name | String | The color name of the probe. |
|
||||
|
||||
|
||||
|
||||
#### The following channels are available for the Pitmaster
|
||||
|
||||
| channel | type | description |
|
||||
@ -76,11 +72,10 @@ If username/password is given in the thing, most channels are writeable.
|
||||
| channel_id | Number | The channel id of the probe assigned to the pitmaster channel |
|
||||
| pid_id | Number | The number of the PID profile to be used. Check the WlanThermo WebUI for available IDs! |
|
||||
|
||||
|
||||
|
||||
### WlanThermo Mini
|
||||
|
||||
All channels are read only!
|
||||
|
||||
#### The device itself provides the following channels:
|
||||
|
||||
| channel | type | description |
|
||||
@ -88,7 +83,6 @@ All channels are read only!
|
||||
| cpu_load | Number:Dimensionless | CPU Load in % |
|
||||
| cpu_temp | Number:Temperature | CPU Temperature |
|
||||
|
||||
|
||||
#### The following channels apply for all 10 probes of the WlanThermo Mini:
|
||||
|
||||
| channel | type | description |
|
||||
@ -103,7 +97,6 @@ All channels are read only!
|
||||
| color | Color | The color of this probe |
|
||||
| color_name | String | The color name of this probe |
|
||||
|
||||
|
||||
#### The following channels apply for both Pitmaster channels of the WlanThermo Mini:
|
||||
|
||||
| channel | type | description |
|
||||
@ -115,8 +108,6 @@ All channels are read only!
|
||||
| lid_open | Switch | Indicates if Lid-open detection is active |
|
||||
| channel_id | Number | The channel id of the probe assigned to this pitmaster channel |
|
||||
|
||||
|
||||
|
||||
## Triggers
|
||||
|
||||
The following trigger apply for all channels of Nano and Mini:
|
||||
@ -126,8 +117,6 @@ The following trigger apply for all channels of Nano and Mini:
|
||||
| alarm_openhab | MIN | Triggers repeatedly if current temp is below minimum temperature threshold |
|
||||
| alarm_openhab | MAX | Triggers repeatedly if current temp is above maximum temperature threshold |
|
||||
|
||||
|
||||
|
||||
## Full Example
|
||||
|
||||
### Items
|
||||
@ -135,7 +124,7 @@ The following trigger apply for all channels of Nano and Mini:
|
||||
Example .items file for WlanThermo Nano and Mini.
|
||||
Make sure to replace <nano_thing_id> or <mini_thing_id> with your individual thing id!
|
||||
|
||||
```
|
||||
```java
|
||||
Group gWlanThermoNano "WlanThermo Nano"
|
||||
Number:Dimensionless nano_soc "State of Charge" (gWlanThermoNano) {channel="wlanthermo:nano:<nano_thing_id>:system#soc"}
|
||||
Number nano_rssi "Signal Strength" (gWlanThermoNano) {channel="wlanthermo:nano:<nano_thing_id>:system#rssi"}
|
||||
@ -390,7 +379,7 @@ Number mini_pit_channel_2 "Input Channel ID" (gPitmas
|
||||
|
||||
(Example for WlanThermo Nano)
|
||||
|
||||
```
|
||||
```perl
|
||||
sitemap wlanthermo label="WlanThermo" {
|
||||
Frame label="WlanThermo" {
|
||||
Default item=nano_rssi icon="qualityofservice"
|
||||
@ -536,4 +525,3 @@ sitemap wlanthermo label="WlanThermo" {
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
@ -77,7 +77,7 @@ This binding has two rule Actions `savePreset(int presetNumber)` and `savePreset
|
||||
|
||||
In Xtend rules, you can use the Actions like this.
|
||||
|
||||
```
|
||||
```java
|
||||
getActions("wled", "wled:json:XmasTree").savePreset(5,"Flashy Preset")
|
||||
```
|
||||
|
||||
@ -87,7 +87,7 @@ If you use the ADMIN>MODEL>`Create equipment from thing` feature you can use the
|
||||
|
||||
*.sitemap
|
||||
|
||||
```
|
||||
```perl
|
||||
Text label="XmasLights" icon="rgb"{
|
||||
Switch item=XmasTree_MasterControls
|
||||
Slider item=XmasTree_SegmentBrightness
|
||||
|
@ -1,16 +1,16 @@
|
||||
# Wolf Smartset Binding
|
||||
|
||||
This binding communicates with the www.wolf-smartset.de API and provides values readonly.
|
||||
Wolf systems are connected with official gateways (Wolf Link Home or Wolf Link Pro) https://www.wolf.eu/produkte/smarthome/
|
||||
Wolf systems are connected with official gateways (Wolf Link Home or Wolf Link Pro) <https://www.wolf.eu/produkte/smarthome/>
|
||||
|
||||
## Supported Things
|
||||
|
||||
- Account (``thing-type:wolfsmartset:account``)
|
||||
* holding the credentials to connect to the wolf-smartset online portal.
|
||||
- holding the credentials to connect to the wolf-smartset online portal.
|
||||
- System (``thing-type:wolfsmartset:system``)
|
||||
* represents one wolf system connected to the wolf-smartset online portal.
|
||||
- represents one wolf system connected to the wolf-smartset online portal.
|
||||
- Unit (``thing-type:wolfsmartset:unit``)
|
||||
* unit is a part of the system with values and parameter
|
||||
- unit is a part of the system with values and parameter
|
||||
|
||||
## Discovery
|
||||
|
||||
@ -57,7 +57,6 @@ Each of these tabs is treated as one unit.
|
||||
| CSZ (CGB and SM1) | 3.1 | WOLF Link Pro |
|
||||
| CGB-2 | 3.1 | WOLF Link home|
|
||||
|
||||
|
||||
## Channels
|
||||
|
||||
| channel | type | description |
|
||||
@ -72,7 +71,7 @@ Each of these tabs is treated as one unit.
|
||||
|
||||
### Things
|
||||
|
||||
````
|
||||
````java
|
||||
Bridge wolfsmartset:account:account "Wolf Smartset Account" [ username="User", password="Password" ] {
|
||||
Bridge system 32122305166 "WolfSmartset System CSZ" [ systemId="32122305166" ] {
|
||||
Thing unitId uinit0 "CSZ Heizgerät" [ unitId="unit0" ] {
|
||||
@ -81,11 +80,11 @@ Bridge wolfsmartset:account:account "Wolf Smartset Account" [ username="User", p
|
||||
}
|
||||
````
|
||||
|
||||
_You need to use the corrosponding systemId and unitId returned by the discovery_
|
||||
You need to use the corrosponding systemId and unitId returned by the discovery.
|
||||
|
||||
### Items
|
||||
|
||||
````
|
||||
````java
|
||||
"Number CSZHeizgerat_Raumtemperatur "Raumtemperatur" { channel="wolfsmartset:unit:account:32122305166:uinit0:1000900000"}
|
||||
Number CSZHeizgerat_Flamme "Flamme" { channel="wolfsmartset:unit:account:32122305166:uinit0:1000900001"}
|
||||
Number CSZHeizgerat_AnalogeFernbedienung "Analoge Fernbedienung" { channel="wolfsmartset:unit:account:32122305166:uinit0:1000900002"}
|
||||
@ -118,7 +117,7 @@ All devices able to be connected to www.wolf-smartset.de
|
||||
|
||||
### Related Documentation from WOLF
|
||||
|
||||
https://oxomi.com/service/json/catalog/pdf?portal=2024876&catalog=10406695
|
||||
<https://oxomi.com/service/json/catalog/pdf?portal=2024876&catalog=10406695>
|
||||
|
||||
| Heating system | WOLF Link home | WOLF Link pro |
|
||||
|-------------------------------------------|-----------------------|--------------------|
|
||||
@ -140,7 +139,6 @@ https://oxomi.com/service/json/catalog/pdf?portal=2024876&catalog=10406695
|
||||
| Air handling units CKL, CFL, CRL``*`` | | ✅ |
|
||||
| Combined heat and power units | | ✅ |
|
||||
|
||||
|
||||
Note:
|
||||
|
||||
⬜ possible in connection with a WOLF Link home compatible heater,
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
Many personal weather stations or similar devices are only capable of submitting measurements to the wunderground.com update site.
|
||||
|
||||
This binding enables acting as a receiver of updates from devices that post measurements to https://rtupdate.wunderground.com/weatherstation/updateweatherstation.php.
|
||||
This binding enables acting as a receiver of updates from devices that post measurements to <https://rtupdate.wunderground.com/weatherstation/updateweatherstation.php>.
|
||||
If the hostname is configurable - as on weather stations based on the Fine Offset Electronics WH2600-IP - this is simple, otherwise you have to set up dns such that it resolves the above hostname to your server, without preventing the server from resolving the proper ip if you want to forward the request.
|
||||
|
||||
The server thus listens at `http(s)://<your-openHAB-server>:<openHAB-port>/weatherstation/updateweatherstation.php` and the device needs to be pointed at this address.
|
||||
@ -26,7 +26,7 @@ It is easiest to use with devices that have a configurable target address, but c
|
||||
|
||||
The binding starts listening at the above-mentioned URI as soon as it is initialized.
|
||||
Any request with an unregistered stationId is recorded and if auto-discovery is enabled appears in the inbox, otherwise can be registered when a manual scan is initiated.
|
||||
For each request parameter a channel is generated, based on a list of known parameters from https://support.weather.com/s/article/PWS-Upload-Protocol?language=en_US and other observed parameters from various devices.
|
||||
For each request parameter a channel is generated, based on a list of known parameters from <https://support.weather.com/s/article/PWS-Upload-Protocol?language=en_US> and other observed parameters from various devices.
|
||||
If you have a device that submits a parameter that is unknown in the current version of the binding please feel free to submit an issue to have it added.
|
||||
|
||||
While discovery is active, either in the background or during a manual scan, any request parameters that don't have a channel associated with them are added to the thing's channels.
|
||||
@ -127,7 +127,7 @@ Additionally there is a receipt timestamp and a trigger channel.
|
||||
|
||||
The trigger channel's payload is the last querystring, so the following dsl rule script would send the measurements on to wunderground.com:
|
||||
|
||||
```
|
||||
```java
|
||||
val requestQuery = receivedEvent
|
||||
sendHttpGetRequest("https://rtupdate.wunderground.com/weatherstation/updateweatherstation.php?" + requestQuery)
|
||||
```
|
||||
@ -140,7 +140,7 @@ This is supported by the discovery mechanism, creating a channel for each of the
|
||||
|
||||
# Examples
|
||||
|
||||
### Thing file
|
||||
## Thing file
|
||||
|
||||
Configuration using thing and item files is not the recommended method, as you have to manually replicate the configuration discovery produces.
|
||||
Channels _must_ be named as the request parameters in the channel type table, otherwise the binding will not be able to update with values from requests.
|
||||
@ -150,7 +150,7 @@ Both thing and item files must be created manually to produce a result practical
|
||||
|
||||
Assuming you have intercepted a request such as `https://rtupdate.wunderground.com/weatherstation/updateweatherstation.php?ID=MYSTATIONID&PASSWORD=XXXXXX&windspeedmph=3.11&dateutc=2021-02-07%2014:04:03&softwaretype=WH2600%20V2.2.8&action=updateraw&realtime=1&rtfreq=5`, you can configure a thing to intercept the request thus:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing wundergroundupdatereceiver:wundergroundUpdateReceiver:ATHINGID "Foo" [stationId="MYSTATIONID"] {
|
||||
Channels:
|
||||
Type wind-speed : windspeedmph []
|
||||
@ -168,22 +168,22 @@ The pattern for a given channel is `Type <channel type id> : <request parameter>
|
||||
Casing of the request parameter is significant.
|
||||
None of the current channels take config.
|
||||
|
||||
### Item file
|
||||
## Item file
|
||||
|
||||
```
|
||||
```java
|
||||
Number:Speed WuBinding_WeatherStation_WindSpeed "Current Wind Speed [%.2f %unit%]" <wind> { channel="wundergroundupdatereceiver:wundergroundUpdateReceiver:ATHINGID:windspeedmph" }
|
||||
DateTime WuBinding_LastRecieved "Last Recieved Time [%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS]" <time> { channel="wundergroundupdatereceiver:wundergroundUpdateReceiver:ATHINGID:last-received-datetime" }
|
||||
```
|
||||
|
||||
The binding tries to post received values as the item types described in the channel types table, so attaching a channel that takes a given type to an item of a different type has undefined behaviour.
|
||||
|
||||
### Rule examples
|
||||
## Rule examples
|
||||
|
||||
You can use the trigger channel to create a rule to calculate additional values.
|
||||
Create a new manual Item with a meaningful id, fx. WundergroundUpdateReceiverBinging_HeatIndex with a Number type.
|
||||
Create a rule that triggers when the trigger channel is updated and the following DSL:
|
||||
|
||||
```
|
||||
```java
|
||||
if ( (WH2k6_OutdoorTemperature.state != NULL) && (WH2k6_OutdoorTemperature.state != UNDEF) &&
|
||||
(WH2k6_Humidity.state != NULL) && (WH2k6_Humidity.state != UNDEF)
|
||||
)
|
||||
@ -211,7 +211,7 @@ You would then have to trigger another rule to submit the original request with
|
||||
|
||||
You can also define a transformation to fx. get a cardinal direction (N, S, W, E):
|
||||
|
||||
```
|
||||
```javascript
|
||||
(function(s){
|
||||
if ( (s == "NULL") || (s == "UNDEF") )
|
||||
{
|
||||
|
@ -1,14 +1,14 @@
|
||||
# XmlTV Binding
|
||||
|
||||
XMLTV is an XML based file format for describing TV listings.
|
||||
This format is often used by Home Theater software to produce their Electronic Program Guide (http://wiki.xmltv.org/index.php/Main_Page)
|
||||
This format is often used by Home Theater software to produce their Electronic Program Guide (<http://wiki.xmltv.org/index.php/Main_Page>)
|
||||
|
||||
The norm allows to separate program display from its building.
|
||||
The building of the XMLTV file itself is taken in charge by so called "grabbers" (http://wiki.xmltv.org/index.php/HowtoUseGrabbers).
|
||||
The building of the XMLTV file itself is taken in charge by so called "grabbers" (<http://wiki.xmltv.org/index.php/HowtoUseGrabbers>).
|
||||
|
||||
Some websites provides updated XMLTV files than can be directly downloaded.
|
||||
|
||||
Here is a sample for France and Switzerland : https://xmltv.ch/
|
||||
Here is a sample for France and Switzerland : <https://xmltv.ch/>
|
||||
|
||||
This binding takes an XMLTV file as input and creates a thing for each channel contained in it.
|
||||
XmlTV channels are called Media Channels in this binding in order to avoid messing with openHAB Channels.
|
||||
@ -74,7 +74,7 @@ Once the XmlTV bridge to a file is created, you can add all known channels by se
|
||||
|
||||
### xmltv.things
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge xmltv:xmltvfile:france "XmlTV" @ "TV" [filePath="/etc/openhab/scripts/tvguide.xml"]
|
||||
{
|
||||
Thing channel france2 "France 2" @ "TV" [channelId="C4.api.telerama.fr", offset=0, refresh=60]
|
||||
@ -83,6 +83,6 @@ Bridge xmltv:xmltvfile:france "XmlTV" @ "TV" [filePath="/etc/openhab/scripts/tvg
|
||||
|
||||
### xmltv.items
|
||||
|
||||
```
|
||||
```java
|
||||
String france2_title "Titre" {channel="xmltv:channel:france:france2:currentprog#progTitle"}
|
||||
```
|
||||
|
@ -10,14 +10,14 @@ xmppBridge - Basic XMPP (Jabber) client thing, that can send and receive message
|
||||
|
||||
Sample configurations:
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge xmppclient:xmppBridge:xmpp "XMPP Client" [ username="openhab", domain="example.com", password="********" ] {
|
||||
Channels:
|
||||
Trigger String : xmpp_command [ separator="##" ]
|
||||
}
|
||||
```
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge xmppclient:xmppBridge:xmpp "XMPP Client" [ host="xmpp.example.com", port=7222, username="openhab", domain="example.com", password="********" ] {
|
||||
Channels:
|
||||
Trigger String : xmpp_command [ separator="##" ]
|
||||
@ -47,7 +47,7 @@ Bridge xmppclient:xmppBridge:xmpp "XMPP Client" [ host="xmpp.example.com", port=
|
||||
|
||||
Send message:
|
||||
|
||||
```
|
||||
```java
|
||||
rule "Leak detected"
|
||||
when
|
||||
Item Xi_Leak changed
|
||||
@ -61,7 +61,7 @@ end
|
||||
|
||||
Receive and process message:
|
||||
|
||||
```
|
||||
```java
|
||||
rule "Turn off all lights without separator"
|
||||
when
|
||||
Channel "xmppclient:xmppBridge:xmpp:xmpp_command" triggered
|
||||
|
@ -41,8 +41,8 @@ No auto discovery
|
||||
| volumeDbMin | Number | Lowest volume in dB. | true | false |
|
||||
| volumeDbMax | Number | Highest volume in dB. | true | false |
|
||||
|
||||
Default value for *defaultAfterMCLink* is *NET RADIO* (as *net_radio*) as most of the models have this on board.
|
||||
You can also use *RADIO / TUNER* (as *tuner*).
|
||||
Default value for _defaultAfterMCLink_ is _NET RADIO_ (as _net_radio_) as most of the models have this on board.
|
||||
You can also use _RADIO / TUNER_ (as _tuner_).
|
||||
|
||||
## Channels
|
||||
|
||||
@ -69,7 +69,6 @@ You can also use *RADIO / TUNER* (as *tuner*).
|
||||
| totalTime | String | Total time of current selection: radio, song, track, ... |
|
||||
| mclinkStatus | String | Select your Musiccast Server or set to Standalone, Server or Client |
|
||||
|
||||
|
||||
| Zones | description |
|
||||
|----------------------|------------------------------------------------------|
|
||||
| zone1-4 | Zone 1 to 4 to control Power, Volume, ... |
|
||||
@ -109,7 +108,7 @@ mono_movie / movie / enhanced / 2ch_stereo / 5ch_stereo / 7ch_stereo / 9ch_stere
|
||||
|
||||
### Bridge & Thing(s)
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge yamahamusiccast:bridge:virtual "YXC Bridge" {
|
||||
Thing device Living "YXC Living" [host="1.2.3.4", defaultAfterMCLink="none", syncVolume=false, volumeDbMin=-80, volumeDbMax=-10]
|
||||
}
|
||||
@ -117,7 +116,7 @@ Bridge yamahamusiccast:bridge:virtual "YXC Bridge" {
|
||||
|
||||
### Basic setup
|
||||
|
||||
```
|
||||
```java
|
||||
Switch YamahaPower "" {channel="yamahamusiccast:device:virtual:Living:main#power"}
|
||||
Switch YamahaMute "" {channel="yamahamusiccast:device:virtual:Living:main#mute"}
|
||||
Dimmer YamahaVolume "" {channel="yamahamusiccast:device:virtual:Living:main#volume"}
|
||||
@ -130,7 +129,7 @@ String YamahaSoundProgram "" {channel="yamahamusiccast:device:virtual:Living:mai
|
||||
|
||||
### Player controls
|
||||
|
||||
```
|
||||
```java
|
||||
Player YamahaPlayer "" {channel="yamahamusiccast:device:virtual:Living:playerControls#player"}
|
||||
String YamahaArt "" {channel="yamahamusiccast:device:virtual:Living:playerControls#albumArt"}
|
||||
String YamahaArtist "" {channel="yamahamusiccast:device:virtual:Living:playerControls#artist"}
|
||||
@ -141,28 +140,28 @@ String YamahaAlbum "" {channel="yamahamusiccast:device:virtual:Living:playerCont
|
||||
### MusicCast setup
|
||||
|
||||
The idea here is to select what device/model will be the master. This needs to be done per device/model which will then be the slave.
|
||||
If you want the *Living* to be the master for the *Kitchen*, select *Living - zone (IP)* from the thing *Kitchen*.
|
||||
The binding will check if there is already a group active for which *Living* is the master. If yes, this group will be used and *Kitchen* will be added.
|
||||
If you want the _Living_ to be the master for the _Kitchen_, select _Living - zone (IP)_ from the thing _Kitchen_.
|
||||
The binding will check if there is already a group active for which _Living_ is the master. If yes, this group will be used and _Kitchen_ will be added.
|
||||
If not, a new group will be created.
|
||||
|
||||
*Device A*: Living with IP 192.168.1.1
|
||||
*Device B*: Kitchen with IP 192.168.1.2
|
||||
_Device A_: Living with IP 192.168.1.1
|
||||
_Device B_: Kitchen with IP 192.168.1.2
|
||||
|
||||
Set **mclinkStatus** to *Standalone* to remove the device/model from the current active group. The group will keep on exist with other devices/models.
|
||||
Set **mclinkStatus** to _Standalone_ to remove the device/model from the current active group. The group will keep on exist with other devices/models.
|
||||
If the device/model is the server, the group will be disbanded.
|
||||
|
||||
```
|
||||
```java
|
||||
String YamahaMCLinkStatus "" {channel="yamahamusiccast:device:Living:main#mclinkStatus"}
|
||||
```
|
||||
|
||||
During testing with the Yamaha Musiccast app, when removing a slave from the group, the status of the client remained *client* and **input** stayed on *mclink*. Only when changing input, the slave was set to *standalone*. Therefor you can set the parameter **defaultAfterMCLink** to an input value supported by your device to break the whole Musiccast Link in OH.
|
||||
During testing with the Yamaha Musiccast app, when removing a slave from the group, the status of the client remained _client_ and **input** stayed on _mclink_. Only when changing input, the slave was set to _standalone_. Therefor you can set the parameter **defaultAfterMCLink** to an input value supported by your device to break the whole Musiccast Link in OH.
|
||||
|
||||
#### How to use this in a rule?
|
||||
|
||||
The label uses the format _Thinglabel - zone (IP)_.
|
||||
The value which is sent to OH uses the format _IP***zone_.
|
||||
|
||||
```
|
||||
```java
|
||||
sendCommand(Kitchen_YamahaMCServer, "192.168.1.1***main")
|
||||
sendCommand(Kitchen_YamahaMCServer, "")
|
||||
sendCommand(Kitchen_YamahaMCServer, "server")
|
||||
|
@ -13,19 +13,17 @@ If your Yamaha receiver is not on the list, it likely is a newer model that supp
|
||||
| yamahaAV | Bridge | Yamaha Receiver hardware |
|
||||
| zone | Thing | Zones of your receiver |
|
||||
|
||||
|
||||
## Discovery
|
||||
|
||||
Just use the auto discovery feature to detect your hardware.
|
||||
Initially a thing for the main zone will be created.
|
||||
This will trigger a zone detection internally and all available additional zones will appear as new things.
|
||||
|
||||
|
||||
## Thing Configuration
|
||||
|
||||
To manually add a receiver and its zones a `things/yamahareceiver.things` file could look like this:
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge yamahareceiver:yamahaAV:ReceiverID "Yamaha Receiver Bridge Name" [host="a.b.c.d", refreshInterval=20] {
|
||||
Thing zone ZoneID1 "Main Zone Thing Name" @ "location" [zone="Main_Zone", volumeDbMin=-81, volumeDbMax=12]
|
||||
Thing zone ZoneID2 "Zone 2 Thing Name" @ "location" [zone="Zone_2"]
|
||||
@ -53,7 +51,6 @@ Configruation parameters for Thing `zone`:
|
||||
| `volumeDbMin` | no | -80 | Lowest volume in dB |
|
||||
| `volumeDbMax` | no | 12 | Highest volume in dB |
|
||||
|
||||
|
||||
## Channels
|
||||
|
||||
The implemented channels for the `yamahaAV` bridge are:
|
||||
@ -65,8 +62,6 @@ The implemented channels for the `yamahaAV` bridge are:
|
||||
| `party_mode_mute` | `Switch` | Switches the mute ON or OFF when in party mode. Write only (state updates are not available). Applicable only when party mode is on. May not be supported on all models. |
|
||||
| `party_mode_volume` | `Dimmer` | Increase or decrease volume when in party mode. Write only (state updates are not available). INCREASE / DECREASE commands only. Applicable only when party mode is on. May not be supported on all models. |
|
||||
|
||||
|
||||
|
||||
The implemented channels for a `zone` thing are grouped in three groups. These are the zones supported: `Main_Zone`, `Zone_2`, `Zone_3`, `Zone_4`.
|
||||
|
||||
Zone control channels are:
|
||||
@ -107,13 +102,13 @@ Navigation is not supported by Spotify input.
|
||||
|
||||
### Basic Setup
|
||||
|
||||
##### Auto Linking
|
||||
#### Auto Linking
|
||||
|
||||
Link the items to the channels of your preferred zone (here `Main_Zone`) in the UI after you have saved your items file.
|
||||
|
||||
Items:
|
||||
|
||||
```
|
||||
```java
|
||||
Switch Yamaha_Power "Power [%s]" <switch>
|
||||
Dimmer Yamaha_Volume "Volume [%.1f %%]" <soundvolume>
|
||||
Switch Yamaha_Mute "Mute [%s]" <soundvolume_mute>
|
||||
@ -123,14 +118,14 @@ String Yamaha_Scene "Scene []" <video>
|
||||
Number Yamaha_Dialogue_Level "Dialogue Level [%d]" <soundvolume>
|
||||
```
|
||||
|
||||
##### Manual Linking
|
||||
#### Manual Linking
|
||||
|
||||
Replace the UPnP UDN (here: `96a40ba9`) with the real UDN provided by your UPnP discovery.
|
||||
Also replace the zone name with your preferred zone (here `Main_Zone`).
|
||||
|
||||
Items:
|
||||
|
||||
```
|
||||
```java
|
||||
Switch Yamaha_Power "Power [%s]" <switch> { channel="yamahareceiver:zone:96a40ba9:Main_Zone:zone_channels#power" }
|
||||
Dimmer Yamaha_Volume "Volume [%.1f %%]" <soundvolume> { channel="yamahareceiver:zone:96a40ba9:Main_Zone:zone_channels#volume" }
|
||||
Switch Yamaha_Mute "Mute [%s]" <soundvolume_mute> { channel="yamahareceiver:zone:96a40ba9:Main_Zone:zone_channels#mute" }
|
||||
@ -148,7 +143,7 @@ Dimmer Yamaha_PartyModeVolume "Party mode volume []" <soundvolume>
|
||||
|
||||
Sitemap:
|
||||
|
||||
```
|
||||
```perl
|
||||
Switch item=Yamaha_Power
|
||||
Switch item=Yamaha_Mute
|
||||
Slider item=Yamaha_Volume
|
||||
@ -170,7 +165,7 @@ Note: Some input values for `Yamaha_Input` might not be supported on your model.
|
||||
|
||||
Items:
|
||||
|
||||
```
|
||||
```java
|
||||
String Yamaha_Playback "[]" <video> { channel="yamahareceiver:zone:96a40ba9:Main_Zone:playback_channels#playback" }
|
||||
String Yamaha_Playback_Station "Station [%s]" <video> { channel="yamahareceiver:zone:96a40ba9:Main_Zone:playback_channels#playback_station" }
|
||||
String Yamaha_Playback_Artist "Artist [%s]" <video> { channel="yamahareceiver:zone:96a40ba9:Main_Zone:playback_channels#playback_artist" }
|
||||
@ -181,7 +176,7 @@ String Yamaha_Playback_Song_Image "[]" <video>
|
||||
|
||||
Sitemap:
|
||||
|
||||
```
|
||||
```perl
|
||||
Switch item=Yamaha_Playback mappings=["Previous"="⏮", "Play"="►", "Pause"="⏸", "Stop"="⏹", "Next"="⏭"] visibility=[Yamaha_Input=="Spotify", Yamaha_Input=="NET RADIO", Yamaha_Input=="Bluetooth"]
|
||||
Text item=Yamaha_Playback_Station visibility=[Yamaha_Input=="TUNER", Yamaha_Input=="NET RADIO"]
|
||||
Text item=Yamaha_Playback_Artist
|
||||
@ -196,7 +191,7 @@ Note the `visiblility` rules - you may need to adjust to your particular AVR mod
|
||||
|
||||
Items:
|
||||
|
||||
```
|
||||
```java
|
||||
Number Yamaha_Preset "Preset [%d]" <video> { channel="yamahareceiver:zone:96a40ba9:Main_Zone:playback_channels#preset"}
|
||||
String Yamaha_Tuner_Band "Band [%s]" <video> { channel="yamahareceiver:zone:96a40ba9:Main_Zone:playback_channels#tuner_band" }
|
||||
String Yamaha_Input_Ex
|
||||
@ -206,7 +201,7 @@ The synthetic `Yamaha_Input_Ex` will be calculated by a rule (see below) and wil
|
||||
|
||||
Rules:
|
||||
|
||||
```
|
||||
```java
|
||||
rule "Yamaha_Input_Ex"
|
||||
when
|
||||
Item Yamaha_Input changed or
|
||||
@ -225,7 +220,7 @@ otherwise it will be the same as input (`Yamaha_Input`).
|
||||
|
||||
Sitemap:
|
||||
|
||||
```
|
||||
```perl
|
||||
Selection item=Yamaha_Tuner_Band mappings=[FM="FM",DAB="DAB+"] visibility=[Yamaha_Input=="TUNER"]
|
||||
Selection item=Yamaha_Preset mappings=[2="Radio Krakow",3="PR Trojka",5="RadioZet",8="Radio Chillizet",12="RMF Classic",13="RMF MAXXX"] visibility=[Yamaha_Input_Ex=="TUNER_FM"]
|
||||
Selection item=Yamaha_Preset mappings=[1="FM-1",2="FM-2",3="FM-3"] visibility=[Yamaha_Input_Ex=="TUNER_DAB"]
|
||||
@ -239,7 +234,7 @@ Enabling detailed logging may help troubleshoot your configuration (or trace bug
|
||||
|
||||
Add the following lines to the logger configuration file (`userdata\etc\org.ops4j.pax.logging.cfg`):
|
||||
|
||||
```
|
||||
```text
|
||||
log4j2.logger.yamaha.name = org.openhab.binding.yamahareceiver
|
||||
log4j2.logger.yamaha.level = TRACE
|
||||
```
|
||||
@ -248,7 +243,7 @@ Depending on the desired details choose from levels: `TRACE`, `DEBUG`, `INFO`.
|
||||
|
||||
The `openhab.log` will contain internal workings of the binding:
|
||||
|
||||
```
|
||||
```text
|
||||
2017-10-08 12:11:36.848 [TRACE] [al.protocol.xml.DeviceInformationXML] - Found feature Main_Zone
|
||||
2017-10-08 12:11:36.853 [TRACE] [al.protocol.xml.DeviceInformationXML] - Adding zone: Main_Zone
|
||||
2017-10-08 12:11:36.857 [TRACE] [al.protocol.xml.DeviceInformationXML] - Found feature Zone_2
|
||||
@ -275,7 +270,7 @@ For example, if your AVR returns `HDMI_1` for command `HDMI1` you can create suc
|
||||
|
||||
If you unsure what mapping to apply, enable trace logging (see section earlier) and you should see what is going on:
|
||||
|
||||
```
|
||||
```text
|
||||
2017-12-28 20:43:40.933 [TRACE] [rnal.protocol.xml.XMLProtocolService] - Zone Main_Zone - inputs: InputDto{param='Spotify', writable=true}, InputDto{param='JUKE', writable=true}, InputDto{param='AirPlay', writable=true}, InputDto{param='MusicCast Link', writable=true}, InputDto{param='SERVER', writable=true}, InputDto{param='NET RADIO', writable=true}, InputDto{param='Bluetooth', writable=true}, InputDto{param='USB', writable=true}, InputDto{param='iPod (USB)', writable=false}, InputDto{param='TUNER', writable=true}, InputDto{param='HDMI1', writable=true}, InputDto{param='HDMI2', writable=true}, InputDto{param='HDMI3', writable=true}, InputDto{param='HDMI4', writable=true}, InputDto{param='HDMI5', writable=true}, InputDto{param='HDMI6', writable=true}, InputDto{param='AV1', writable=true}, InputDto{param='AV2', writable=true}, InputDto{param='AV3', writable=true}, InputDto{param='AUDIO1', writable=true}, InputDto{param='AUDIO2', writable=true}, InputDto{param='AUDIO3', writable=true}, InputDto{param='AUX', writable=true}
|
||||
2017-12-28 20:43:40.935 [TRACE] [ernal.protocol.xml.InputConverterXML] - Converting from state name Spotify to Spotify - as per no conversion rule
|
||||
2017-12-28 20:43:40.937 [TRACE] [ernal.protocol.xml.InputConverterXML] - Converting from state name JUKE to JUKE - as per legacy mapping
|
||||
@ -309,7 +304,7 @@ Note: User defined mappings have as per user defined mapping and the rest comes
|
||||
|
||||
After switching to `HDMI1` you should see this:
|
||||
|
||||
```
|
||||
```text
|
||||
2017-12-28 21:08:51.683 [TRACE] [ernal.protocol.xml.InputConverterXML] - Converting from HDMI1 to command name HDMI1
|
||||
2017-12-28 21:08:51.820 [TRACE] [ernal.protocol.xml.InputConverterXML] - Converting from state name HDMI1 to HDMI1 - as per user defined mapping
|
||||
2017-12-28 21:08:51.821 [TRACE] [internal.protocol.xml.ZoneControlXML] - Zone Main_Zone state - power: true, input: HDMI1, mute: false, surroundProgram: 5ch Stereo, volume: 35.869564
|
||||
|
@ -48,18 +48,17 @@ All devices support some of the following channels:
|
||||
|`backgroundColor` | `Color` or `Dimmer` | This channel supports color control for the ambient light, it is available on `ceiling4`.|
|
||||
|`nightlight` | `Switch` | This supports switching to nightlight mode, it is available on `ceiling1` or `ceiling4`.|
|
||||
|
||||
|
||||
## Full Example
|
||||
|
||||
Things:
|
||||
|
||||
```
|
||||
```java
|
||||
Thing yeelight:stripe:1 [ deviceId="0x000000000321a1bc", duration=1000 ]
|
||||
```
|
||||
|
||||
Items:
|
||||
|
||||
```
|
||||
```java
|
||||
Color YeelightLEDColor { channel="yeelight:stripe:1:color" }
|
||||
Switch YeelightLEDSwitch { channel="yeelight:stripe:1:color" }
|
||||
String YeelightLEDCommand { channel="yeelight:stripe:1:command" }
|
||||
@ -67,7 +66,7 @@ String YeelightLEDCommand { channel="yeelight:stripe:1:command" }
|
||||
|
||||
Rules:
|
||||
|
||||
```
|
||||
```java
|
||||
rule "Yeelight Custom Command"
|
||||
when
|
||||
Time is noon
|
||||
|
@ -8,14 +8,14 @@ Since this binding allows actual you to trigger IR send/receive actions on YIO D
|
||||
|
||||
## Supported Things
|
||||
|
||||
* Thing Type ID: `yioRemoteDock`
|
||||
- Thing Type ID: `yioRemoteDock`
|
||||
|
||||
The following are the configurations available to each of the bridges/things:
|
||||
|
||||
### YIO Dock
|
||||
|
||||
| Name | Type | Required | Default | Description |
|
||||
|-----------------------|---------|----------|---------|----------------------------------------------------------------------------------------------------------------|
|
||||
| ----------- | ------ | -------- | ------- | --------------------------------------------------- |
|
||||
| host | string | Yes | (None) | Host/IP Address or host name of the YIO Dock |
|
||||
| accesstoken | string | Yes | 0 | The authentication token for the access currently 0 |
|
||||
|
||||
@ -26,7 +26,7 @@ The following are the configurations available to each of the bridges/things:
|
||||
The YIO Dock has the following channels:
|
||||
|
||||
| Channel | Input/Output | Item Type | Description |
|
||||
|---------------------------|---------------|--------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| -------------- | ------------ | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| receiverswitch | Input | Switch | The switch to enable disable the IR receiving diode/function |
|
||||
| status | Output | String | The status of the YIO Dock. If the reciever is on than the recognized IR code will be displayed otherwise the IR send status is displayed of the last IR code send. |
|
||||
|
||||
@ -36,7 +36,7 @@ With the YIO remote action, you can send IR Codes via the YIO Remote Dock.
|
||||
|
||||
## Example
|
||||
|
||||
```
|
||||
```java
|
||||
rule "yioremote Action Example"
|
||||
when
|
||||
...
|
||||
@ -57,22 +57,22 @@ end
|
||||
|
||||
.things
|
||||
|
||||
```
|
||||
```java
|
||||
yioremote:yioRemoteDock:livingroom [ host="xxx.xxx.xxx.xxx", accesstoken="0" ]
|
||||
```
|
||||
|
||||
.items
|
||||
|
||||
```
|
||||
```java
|
||||
Switch receiverswitch "IR recieving switch" {channel="yioremote:yioRemoteDock:livingroom:input# receiverswitch"}
|
||||
String status "YIO Dock status[%s]" {channel="yioremote:yioRemoteDock:livingroom:output# status"}
|
||||
```
|
||||
|
||||
.sitemap
|
||||
|
||||
```
|
||||
```perl
|
||||
sitemap Basic label="YIO Dock" {
|
||||
Switch item= receiverswitch
|
||||
Text item= status
|
||||
Switch item=receiverswitch
|
||||
Text item=status
|
||||
}
|
||||
```
|
||||
|
@ -22,7 +22,7 @@ There are two different styles of operation, depending on whether or not you hav
|
||||
|
||||
### Non-Authenticated
|
||||
|
||||
If ZoneMinder authentication is not used, the User and Password parameters should be empty in the *ZoneMinder Server* thing configuration.
|
||||
If ZoneMinder authentication is not used, the User and Password parameters should be empty in the _ZoneMinder Server_ thing configuration.
|
||||
No other configuration is required.
|
||||
|
||||
### Authenticated
|
||||
@ -110,17 +110,17 @@ The following configuration parameters are available on the Monitor thing:
|
||||
|
||||
## Thing Actions
|
||||
|
||||
### triggerAlarm
|
||||
### triggerAlarm (with Duration)
|
||||
|
||||
The `triggerAlarm` action triggers an alarm that runs for the number of seconds specified by the parameter `duration`.
|
||||
|
||||
##### triggerAlarm - trigger an alarm
|
||||
#### triggerAlarm - trigger an alarm
|
||||
|
||||
```java
|
||||
void triggerAlarm(Number duration)
|
||||
```
|
||||
|
||||
```
|
||||
```text
|
||||
Parameters:
|
||||
duration - The number of seconds for which the alarm should run.
|
||||
```
|
||||
@ -130,7 +130,7 @@ duration - The number of seconds for which the alarm should run.
|
||||
The `triggerAlarm` action triggers an alarm that runs for the number of seconds specified
|
||||
in the Monitor thing configuration.
|
||||
|
||||
##### triggerAlarm - trigger an alarm
|
||||
#### triggerAlarm - trigger an alarm
|
||||
|
||||
```java
|
||||
void triggerAlarm()
|
||||
@ -140,7 +140,7 @@ void triggerAlarm()
|
||||
|
||||
The `cancelAlarm` action cancels a running alarm.
|
||||
|
||||
##### cancelAlarm - cancel an alarm
|
||||
#### cancelAlarm - cancel an alarm
|
||||
|
||||
```java
|
||||
void cancelAlarm()
|
||||
@ -155,7 +155,7 @@ The API must be enabled in the ZoneMinder configuration using the **OPT_USE_API*
|
||||
|
||||
### Things
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge zoneminder:server:server [ host="192.168.1.100", refreshInterval=5, defaultAlarmDuration=120, discoveryEnabled=true, useDefaultUrlPath=true ]
|
||||
|
||||
Thing zoneminder:monitor:1 "Monitor 1" (zoneminder:server:server) [ monitorId="1", imageRefreshInterval=10, alarmDuration=180 ]
|
||||
@ -165,7 +165,7 @@ Thing zoneminder:monitor:2 "Monitor 2" (zoneminder:server:server) [ monitorId="2
|
||||
|
||||
### Items
|
||||
|
||||
```
|
||||
```java
|
||||
// Server
|
||||
String ZmServer_ImageMonitorId "Image Monitor Id [%s]" { channel="zoneminder:server:server:imageMonitorId" }
|
||||
String ZmServer_ImageUrl "Image Url [%s]" { channel="zoneminder:server:server:imageUrl" }
|
||||
@ -200,8 +200,7 @@ Number:Time ZM_Monitor1_Length "Event Length [%.2f]" { channel="z
|
||||
|
||||
### Sitemap
|
||||
|
||||
|
||||
```
|
||||
```perl
|
||||
Selection item=ZmServer_ImageMonitorId
|
||||
Image item=ZmServer_ImageUrl
|
||||
Selection item=ZmServer_VideoMonitorId
|
||||
@ -214,9 +213,9 @@ Image item=ZM_Monitor1_Image
|
||||
|
||||
### Rules
|
||||
|
||||
The following examples assume you have a motion sensor that is linked to an item called *MotionSensorAlarm*.
|
||||
The following examples assume you have a motion sensor that is linked to an item called _MotionSensorAlarm_.
|
||||
|
||||
```
|
||||
```java
|
||||
rule "Record When Motion Detected Using Channel"
|
||||
when
|
||||
Item MotionSensorAlarm changed to ON
|
||||
@ -225,7 +224,7 @@ then
|
||||
end
|
||||
```
|
||||
|
||||
```
|
||||
```java
|
||||
rule "Record for 120 Seconds When Motion Detected"
|
||||
when
|
||||
Item MotionSensorAlarm changed to ON
|
||||
@ -235,7 +234,7 @@ then
|
||||
end
|
||||
```
|
||||
|
||||
```
|
||||
```java
|
||||
rule "Record When Motion Detected"
|
||||
when
|
||||
Item MotionSensorAlarm changed to ON
|
||||
@ -245,7 +244,7 @@ then
|
||||
end
|
||||
```
|
||||
|
||||
```
|
||||
```java
|
||||
rule "Record When Motion Detection Cleared"
|
||||
when
|
||||
Item MotionSensorAlarm changed to OFF
|
||||
@ -255,7 +254,7 @@ then
|
||||
end
|
||||
```
|
||||
|
||||
```
|
||||
```java
|
||||
val monitors = newArrayList("1", "3", "4", "6")
|
||||
var int index = 0
|
||||
|
||||
|
@ -17,7 +17,7 @@ A detailed step-by-step description of the binding configuration is also availab
|
||||
|
||||
Please note the **known issues** below.
|
||||
|
||||
### Approach
|
||||
## Approach
|
||||
|
||||
The idea behind is the integration of Z-Wave through a bridge (Z-Way controller).
|
||||
The existing, certified Z-Way stack can be used to build, configure and control the Z-Wave network.
|
||||
@ -35,19 +35,19 @@ In Z-Way there are devices which represent physical devices and (virtual) device
|
||||
The difference is that physical devices usually have several functions.
|
||||
Z-Way server constructs (virtual) devices for each function, such as motion sensors or door contacts.
|
||||
In openHAB, these functions are bundled into physical devices and represented as things with channels for each function.
|
||||
This type of thing is a *Z-Wave Device*.
|
||||
On the other hand all virtual devices are mapped to *Z-Way Virtual Devices* with exactly one channel.
|
||||
This type of thing is a _Z-Wave Device_.
|
||||
On the other hand all virtual devices are mapped to _Z-Way Virtual Devices_ with exactly one channel.
|
||||
|
||||
- *Z-Way Server* (Bridge) represents a bridge with general settings and communication tasks.
|
||||
- *Z-Way Virtual Device* represents one (virtual) device with the corresponding channel. A bridge is necessary as an intermediary between openHAB thing and Z-Way device.
|
||||
- *Z-Wave Device* represents a device of real world. Each device function will be mapped to a separate channel. The bridge is necessary as an intermediary between openHAB thing and Z-Way device.
|
||||
- _Z-Way Server_ (Bridge) represents a bridge with general settings and communication tasks.
|
||||
- _Z-Way Virtual Device_ represents one (virtual) device with the corresponding channel. A bridge is necessary as an intermediary between openHAB thing and Z-Way device.
|
||||
- _Z-Wave Device_ represents a device of real world. Each device function will be mapped to a separate channel. The bridge is necessary as an intermediary between openHAB thing and Z-Way device.
|
||||
|
||||
## Discovery
|
||||
|
||||
A discovery service for Z-Way servers scans local network and must always be started manually.
|
||||
Z-Way doesn't support any discovery protocol like UPnP for this purpose.
|
||||
That is why first all IP addresses in local network are checked on port 8083.
|
||||
If the server answers, a ZAutomation request (*/ZAutomation/api/v1/status*) is performed to ensure, the found server runs Z-Way.
|
||||
If the server answers, a ZAutomation request (_/ZAutomation/api/v1/status_) is performed to ensure, the found server runs Z-Way.
|
||||
|
||||
Another discovery service provides available devices (a configured bridge is necessary).
|
||||
The device discovery service is performed at a specified interval, but can also be started manually.
|
||||
@ -78,7 +78,7 @@ Besides the username and password all required Z-Way information are found durin
|
||||
|
||||
Only the Z-Way server can be configured textual:
|
||||
|
||||
```
|
||||
```java
|
||||
Bridge zway:zwayServer:192_168_2_42 [ zwayServerIpAddress="localhost", zwayServerPort=8083, zwayServerProtocol="http", zwayServerUsername="admin", zwayServerPassword="admin", pollingInterval=3600 ] {
|
||||
// associated things have to be created with the UI
|
||||
}
|
||||
@ -91,7 +91,6 @@ Bridge zway:zwayServer:192_168_2_42 [ zwayServerIpAddress="localhost", zwayServe
|
||||
| deviceId | X | | Device ID of virtual device |
|
||||
| bridge reference | X | | |
|
||||
|
||||
|
||||
### Z-Wave Device
|
||||
|
||||
| Configuration Name | Mandatory | Default | Description |
|
||||
@ -112,7 +111,7 @@ The following channels are currently supported.
|
||||
| sensorHumidity | Number | Humidity | SensorMultilevel - humidity |
|
||||
| sensorBarometer | Number | Pressure | SensorMultilevel - barometer |
|
||||
| sensorUltraviolet | Number | Light | SensorMultilevel - ultraviolet |
|
||||
| sensorCO2 | Number | CarbonDioxide | SensorMultilevel - *Special case:* no probe type for carbon dioxide sensors available - probe title *CO2 Level* acts as selection criterion |
|
||||
| sensorCO2 | Number | CarbonDioxide | SensorMultilevel - _Special case:_ no probe type for carbon dioxide sensors available - probe title _CO2 Level_ acts as selection criterion |
|
||||
| sensorEnergy | Number | Energy | SensorMultilevel - energy |
|
||||
| sensorMeterKWh | Number | Energy | SensorMultilevel - meterElectric_kilowatt_per_hour |
|
||||
| sensorMeterW | Number | Energy | SensorMultilevel - meterElectric_watt |
|
||||
@ -122,7 +121,7 @@ The following channels are currently supported.
|
||||
| sensorTamper | Switch | Alarm | SensorBinary - tamper |
|
||||
| sensorDoorWindow | Contact | Contact | SensorBinary - door-window |
|
||||
| sensorMotion | Switch | Motion | SensorBinary - general_purpose, motion |
|
||||
| switchPowerOutlet | Switch | PowerOutlet | SwitchBinary - *Special case:* no probe type for power outlet available - icon *switch* acts as selection criterion |
|
||||
| switchPowerOutlet | Switch | PowerOutlet | SwitchBinary - _Special case:_ no probe type for power outlet available - icon _switch_ acts as selection criterion |
|
||||
| switchColorTemperature | Dimmer | ColorLight | SwitchMultilevel - switchColor_soft_white, switchColor_cold_white |
|
||||
| thermostatMode | Switch | Temperature | SwitchBinary - thermostat_mode |
|
||||
|
||||
@ -148,7 +147,6 @@ The following channels represent universial channels if no further device inform
|
||||
| thermostat | Number | Temperature | Thermostat |
|
||||
| sensorDiscrete | Number | - | SensorDiscrete |
|
||||
|
||||
|
||||
Unsupported Z-Way device types: Camera, SensorMultiline, Text. The integration of these types isn't planned.
|
||||
|
||||
### Channels for the Z-Way Server (Bridge)
|
||||
|
Loading…
Reference in New Issue
Block a user