From eb4fd443e058eb3bea13eccb55712505a3dd03c8 Mon Sep 17 00:00:00 2001 From: Jerome Luckenbach Date: Wed, 14 Dec 2022 16:52:43 +0100 Subject: [PATCH] [Documentation] Markdown improvements n to s (#13948) Signed-off-by: Jerome Luckenbach Signed-off-by: Andras Uhrin --- .../org.openhab.binding.nanoleaf/README.md | 50 +- bundles/org.openhab.binding.netatmo/README.md | 291 ++- .../README.md | 1 - bundles/org.openhab.binding.nuvo/README.md | 58 +- .../org.openhab.binding.openwebnet/README.md | 156 +- bundles/org.openhab.binding.oppo/README.md | 150 +- .../README.md | 30 +- .../org.openhab.binding.plugwise/README.md | 10 +- .../org.openhab.binding.plugwiseha/README.md | 137 +- .../org.openhab.binding.powermax/README.md | 2 +- .../org.openhab.binding.qolsysiq/README.md | 12 +- .../README.md | 74 +- bundles/org.openhab.binding.renault/README.md | 56 +- bundles/org.openhab.binding.rfxcom/README.md | 1509 +++++++------- .../org.openhab.binding.russound/README.md | 2 +- .../org.openhab.binding.senechome/README.md | 18 +- bundles/org.openhab.binding.shelly/README.md | 1725 ++++++++--------- bundles/org.openhab.binding.sleepiq/README.md | 112 +- .../org.openhab.binding.smartmeter/README.md | 2 +- .../org.openhab.binding.smsmodem/README.md | 94 +- bundles/org.openhab.binding.snmp/README.md | 86 +- .../org.openhab.binding.solaredge/README.md | 4 +- .../org.openhab.binding.solarmax/README.md | 27 +- .../org.openhab.binding.solarwatt/README.md | 36 +- bundles/org.openhab.binding.somneo/README.md | 219 +-- bundles/org.openhab.binding.sonnen/README.md | 22 +- bundles/org.openhab.binding.sonos/README.md | 45 +- .../org.openhab.binding.sonyaudio/README.md | 1 - bundles/org.openhab.binding.souliss/README.md | 10 +- .../org.openhab.binding.squeezebox/README.md | 59 +- .../org.openhab.binding.surepetcare/README.md | 1 + .../org.openhab.binding.systeminfo/README.md | 108 +- 32 files changed, 2272 insertions(+), 2835 deletions(-) diff --git a/bundles/org.openhab.binding.nanoleaf/README.md b/bundles/org.openhab.binding.nanoleaf/README.md index 788ae2c239b83..74ff0a7bd7643 100644 --- a/bundles/org.openhab.binding.nanoleaf/README.md +++ b/bundles/org.openhab.binding.nanoleaf/README.md @@ -7,7 +7,7 @@ This binding integrates the [Nanoleaf Light Panels](https://nanoleaf.me/en/consu It enables you to authenticate, control, and obtain information of a Light Panel's device. The binding uses the [Nanoleaf OpenAPI](https://forum.nanoleaf.me/docs/openapi), which requires firmware version [1.5.0](https://helpdesk.nanoleaf.me/hc/en-us/articles/214006129-Light-Panels-Firmware-Release-Notes) or higher. -![Image](doc/LightPanels2_small.jpg) ![Image](doc/the-worm-small.png) ![Image](doc/NanoCanvas_small.jpg) +![Image](doc/LightPanels2_small.jpg) ![Image](doc/the-worm-small.png) ![Image](doc/NanoCanvas_small.jpg) ## Supported Things @@ -24,7 +24,6 @@ The lightpanel (singular) thing controls one of the individual panels/canvas tha Each individual panel has therefore its own id assigned to it. You can set the **color** for each panel and in the case of a Nanoleaf Canvas or Shapes you can even detect single / double **touch events** related to an individual panel or **swipe events** on the whole device which opens a whole new world of controlling any other device within your openHAB environment. - | Nanoleaf Name | Type | Description | supported | touch support | | ---------------------- | ---- | ---------------------------------------------------------- | --------- | ------------- | | Light Panels | NL22 | Triangles 1st Generation | X | - | @@ -41,7 +40,7 @@ You can set the **color** for each panel and in the case of a Nanoleaf Canvas or ## Discovery -**Adding the Controller as a Thing** +### Adding the Controller as a Thing To add a nanoleaf controller, go to your inbox and start a scan. Then choose "Nanoleaf Binding". @@ -53,13 +52,13 @@ Without the token the light panels remain in status OFFLINE. The binding supports pairing of the device with your openHAB instance as follows: 1. Make sure that the authentication token field in your Nanoleaf controller thing configuration is left empty. -2. Hold down the on-off button of the controller for 5-7 seconds until the LED starts flashing/cycling in a pattern, which turns the device in pairing mode, and openHAB will try to request an authentication token for it. +1. Hold down the on-off button of the controller for 5-7 seconds until the LED starts flashing/cycling in a pattern, which turns the device in pairing mode, and openHAB will try to request an authentication token for it. Once your openHAB instance successfully requested and stored the authentication token in the controller's thing configuration, the controller status changes to ONLINE, and you can start linking the channels to your items. Tip: if you press (2) just before adding the item from the inbox it usually catches the auth token right away and if you are lucky it already automatically starts discovering the panels in one turn (see below). -**Adding the invidual light panels as a thing** +### Adding the invidual light panels as a thing After you have added the controller as a thing and it has been successfully paired as described as above, the individual panels connected to it can be discovered by **starting another scan** for the Nanoleaf binding. All connected panels will be added as separate things to the inbox. @@ -74,8 +73,8 @@ In this case: ### Panel Layout -If you want to program individual panels, it can be hard to figure out which panel has which ID. To make this easier, there is Layout channel on the Nanoleaf controller thing in openHAB. -The easiest way to visualize the layout of the individual panels is to open the controller thing in the openHAB UI, go to Channels and add a new item to the Layout channel. +If you want to program individual panels, it can be hard to figure out which panel has which ID. To make this easier, there is Layout channel on the Nanoleaf controller thing in openHAB. +The easiest way to visualize the layout of the individual panels is to open the controller thing in the openHAB UI, go to Channels and add a new item to the Layout channel. Clicking on that image or adding it to a dashboard will show a picture of your canvas with the individual thing ID in the picture. If your canvas has elements we dont know how to draw a layout for yet, please reach out, and we will ask for some information and will try to add support for your elements. @@ -86,7 +85,7 @@ There is an alternative method for canvas that use square panels, you can reques then issue the following command: -``` +```shell openhab:nanoleaf layout [] ``` @@ -94,7 +93,7 @@ The `thingUID` is an optional parameter. If it is not provided, the command loop Compare the following output with the right picture at the beginning of the article -``` +```text 31413 9162 13276 55836 56093 48111 38724 17870 5164 64279 @@ -108,7 +107,7 @@ Compare the following output with the right picture at the beginning of the arti ## State The state channel shows an image of the panels on the wall. -You have to configure things for each panel to get the correct color. +You have to configure things for each panel to get the correct color. Since the colors of the panels can make it difficult to see the panel ids, please use the layout channel where the background color is always white to identify them. For state to work, you need to set static colors to your panel. This is because Nanoleaf does not return updates on colors for dynamic effects and animations. @@ -154,8 +153,6 @@ The controller bridge has the following channels: | state | Image | Shows the current state of your panels with colors. | Yes | | swipe | Trigger | [Canvas / Shapes Only] Detects Swipes over the panel.LEFT, RIGHT, UP, DOWN events are supported. | Yes | - - A lightpanel thing has the following channels: | Channel | Type | Description | Read Only | @@ -164,18 +161,18 @@ A lightpanel thing has the following channels: | tap | Trigger | [Canvas / Shapes Only] Sends events of gestures. SHORT_PRESSED, LONG_PRESSED and DOUBLE_PRESSED events are supported. | Yes | The color channels support full color control with hue, saturation and brightness values. -For example, brightness of *all* panels at once can be controlled by defining a dimmer item for the color channel of the *controller thing*. +For example, brightness of _all_ panels at once can be controlled by defining a dimmer item for the color channel of the _controller thing_. The same applies to the color channel of an individual lightpanel. -**Limitations assigning specific colors on individual panels:** +### Limitations assigning specific colors on individual panels: - Due to the way the API of the nanoleaf is designed, each time a color is assigned to a panel, it will be directly sent to that panel. The result is that if you send colors to several panels more or less at the same time, they will not be set at the same time but one after the other and rather appear like a sequence but as a one shot. - Another important limitation is that individual panels cannot be set while a dynamic effect is running on the panel which means that as soon as you set an individual panel the "static effect" is set, which disables the chosen dynamic effect. The nanoleaf app shows that a static effect is now running, too. - The colors of the current state cannot be retrieved due to the high frequency of color changes that cannot be read quickly enough from the canvas, so all panels go to OFF - The first panelColor command is applied to that panel (and of course then all subsequent commands) -- The fact that it is called a static effect does not mean that you cannot create animations. The Rainbow rule below shows a good example for the whole canvas. Just replace the controller item with a panel item and you will get the rainbow effect with an individual panel. +- The fact that it is called a static effect does not mean that you cannot create animations. The Rainbow rule below shows a good example for the whole canvas. Just replace the controller item with a panel item and you will get the rainbow effect with an individual panel. -**Touch Support** +### Touch Support Nanoleaf's Canvas introduces a whole new experience by supporting touch. This allows single and double taps on individual panels to be detected and processed via rules. @@ -183,7 +180,7 @@ Note that even gestures like up, down, left, right can be detected on the whole The four swipe gestures are supported by the binding. See below for an example on how to use it. -To detect single and double taps the panel provides a *tap* channel while the controller provides a *swipe* channel to detect swipes. +To detect single and double taps the panel provides a _tap_ channel while the controller provides a _swipe_ channel to detect swipes. Keep in mind that the double tap is used as an already built-in functionality by default when you buy the nanoleaf: it switches all panels (hence the controller) to on or off like a light switch for all the panels at once. To circumvent that @@ -201,7 +198,7 @@ The following files provide a full example for a configuration (using a things f ### nanoleaf.things -``` +```java Bridge nanoleaf:controller:MyLightPanels @ "mylocation" [ address="192.168.1.100", port=16021, authToken="AbcDefGhiJk879LmNopqRstUv1234WxyZ", refreshInterval=60 ] { Thing lightpanel 135 [ id=135 ] Thing lightpanel 158 [ id=158 ] @@ -210,15 +207,15 @@ Bridge nanoleaf:controller:MyLightPanels @ "mylocation" [ address="192.168.1.100 If you define your device statically in the thing file, auto-discovery of the same thing is suppressed by using -* the [address="..." ] of the controller -* and the [id=123] of the lightpanel +- the [address="..." ] of the controller +- and the [id=123] of the lightpanel in the bracket to identify the uniqueness of the discovered device. Therefore it is recommended to the give the controller a fixed ip address. Note: To generate the `authToken`: -* On the Nanoleaf controller, hold the on-off button for 5-7 seconds until the LED starts flashing. -* Send a POST request to the authorization endpoint within 30 seconds of activating pairing, like this: +- On the Nanoleaf controller, hold the on-off button for 5-7 seconds until the LED starts flashing. +- Send a POST request to the authorization endpoint within 30 seconds of activating pairing, like this: `http://
:16021/api/v1/new` @@ -231,7 +228,7 @@ Note: If you auto-discovered your things and items: - A controller item looks like nanoleaf:controller:F0ED4F9351AF:power where F0ED4F9351AF is the id of the controller that has been automatically assigned by the binding. - A panel item looks like nanoleaf:lightpanel:F0ED4F9351AF:39755:singleTap where 39755 is the id of the panel that has been automatically assigned by the binding. -``` +```java Switch NanoleafPower "Nanoleaf" { channel="nanoleaf:controller:MyLightPanels:color" } Color NanoleafColor "Color" { channel="nanoleaf:controller:MyLightPanels:color" } Dimmer NanoleafBrightness "Brightness [%.0f]" { channel="nanoleaf:controller:MyLightPanels:color" } @@ -254,7 +251,7 @@ Switch NanoleafRainbowScene "Show Rainbow Scene" ### nanoleaf.sitemap -``` +```perl sitemap nanoleaf label="Nanoleaf" { Frame label="Controller" { @@ -286,7 +283,7 @@ sitemap nanoleaf label="Nanoleaf" ### nanoleaf.rules -``` +```java rule "UpdateHueAndSat" when Item NanoleafColor changed then @@ -417,10 +414,9 @@ then end ``` - ### nanoleaf.map -``` +```text ON = Yes OFF = No effects = Effect diff --git a/bundles/org.openhab.binding.netatmo/README.md b/bundles/org.openhab.binding.netatmo/README.md index 83b19cb45ae16..2b52dbd637b95 100644 --- a/bundles/org.openhab.binding.netatmo/README.md +++ b/bundles/org.openhab.binding.netatmo/README.md @@ -10,7 +10,6 @@ The Netatmo binding integrates the following Netatmo products: - _Doorbell_ - _Smoke Detector_ - _Smart Door Sensor_ -- _Carbon Monoxide Detector_ See for details on their product. @@ -48,8 +47,10 @@ The Account bridge has the following configuration elements: | clientId | String | Yes | Client ID provided for the application you created on | | clientSecret | String | Yes | Client Secret provided for the application you created | | webHookUrl | String | No | Protocol, public IP and port to access openHAB server from Internet | -| webHookPostfix | String | No | String appended to the generated webhook address (should start with "/") | | reconnectInterval | Number | No | The reconnection interval to Netatmo API (in s) | +| refreshToken | String | Yes* | The refresh token provided by Netatmo API after the granting process. Can be saved in case of file based configuration | + +(*) Strictly said this parameter is not mandatory at first run, until you grant your binding on Netatmo Connect. Once present, you'll not have to grant again. **Supported channels for the Account bridge thing:** @@ -65,13 +66,11 @@ The Account bridge has the following configuration elements: 1. The bridge thing will go _OFFLINE_ / _CONFIGURATION_ERROR_ - this is fine. You have to authorize this bridge with Netatmo Connect. 1. Go to the authorization page of your server. `http://:8080/netatmo/connect/<_CLIENT_ID_>`. Your newly added bridge should be listed there (no need for you to expose your openHAB server outside your local network for this). 1. Press the _"Authorize Thing"_ button. This will take you either to the login page of Netatmo Connect or directly to the authorization screen. Login and/or authorize the application. You will be returned and the entry should go green. -1. The bridge will go _ONLINE_. +1. The bridge configuration will be updated with a refresh token and go _ONLINE_. The refresh token is used to re-authorize the bridge with Netatmo Connect Web API whenever required. So you can consult this token by opening the Thing page in MainUI, this is the value of the advanced parameter named “Refresh Token”. +1. If you're using file based .things config file, copy the provided refresh token in the **refreshToken** parameter of your thing definition (example below). Now that you have got your bridge _ONLINE_ you can now start a scan with the binding to auto discover your things. -Starting on 2023/04/17 - Netatmo API requires an update of the refreshToken provided by the oAuth mechanism every three hours. -Once authentication process has been done, current refreshToken is stored in `/OPENHAB_USERDATA/netatmo` folder. - ## List of supported things | Thing Type | Type | Netatmo Object | Description | Thing Parameters | @@ -94,8 +93,6 @@ Once authentication process has been done, current refreshToken is stored in `/O | room | Thing | NARoom | A room in your house. | id | | valve | Thing | NRV | A valve controlling a radiator. | id | | tag | Thing | NACamDoorTag | A door / window sensor | id | -| smoke-detector | Thing | NSD | A Smoke Detector | id | -| co-detector | Thing | NCO | A Carbon Monoxide Alarm | id | ### Webhook @@ -103,14 +100,14 @@ Netatmo servers can send push notifications to the Netatmo Binding by using a ca The webhook URL is setup at Netatmo Account level using "Webhook Address" parameter. You will define here public way to access your openHAB server: -``` +```text http(s)://xx.yy.zz.ww:443 ``` Your Netatmo App will be configured automatically by the bridge to the endpoint: -``` -http(s)://xx.yy.zz.ww:443/netatmo/webhook/<_CLIENT_ID_> +```text +http(s)://xx.yy.zz.ww:443/netatmo/webhook/<_CLIENT_ID_> ``` Please be aware of Netatmo own limits regarding webhook usage that lead to a 24h ban-time when webhook does not answer 5 times. @@ -444,32 +441,11 @@ All these channels except setpoint and setpoint-mode are read only. | battery | low-battery | Switch | Low battery | | battery | status | String | Description of the battery status (*) | -### Home - -A Home is the Thing holding various modules and devices. They can hold two areas of equipments : Security and Energy. -Depending on the way it is configured the behaviour will be adapted and available channels can vary. - -**Home Configuration** - -The Home thing has the following configuration elements: - -| Parameter | Type | Required | Description | -| ---------- | ------ | -------- | ----------------------------------------------------------------------------------- | -| id (1) | String | No | If you have a single type of equipment, this id is to be used for the home | -| energyId | String | No | Id of a home holding energy control devices | -| securityId | String | No | Id of a home holding security monitoring devices | - -At least one of these parameter must be filled - at most two : +### Welcome Home -* id or securityId -* id or energyId -* securityId and energyId - -(1) this parameter is only kept for backward compatibility. - -All channels are read only. +All these channels are read only. -**Supported channels for the Security Home thing:** +**Supported channels for the Home thing:** | Channel Group | Channel Id | Item Type | Description | | ------------- | ---------------------- | --------- | ------------------------------------------------ | @@ -477,70 +453,69 @@ All channels are read only. | security | unknown-person-count | Number | Total number of unknown persons that are at home | | security | unknown-person-picture | Image | Snapshot of unknown person that is at home | -**Supported trigger channels for the Security Home thing:** - -**Supported trigger channels for the Security Home, Presence and Doorbell thing:** - -| Channel Type ID | Options | Description | -|-----------------|--------------------|---------------------------------------------------------------------| -| home-event | | A welcome home event is triggered directly via a configured webhook | -| | PERSON | Triggered when a concrete person was detected | -| | PERSON_AWAY | Triggered when a concrete person leaves | -| | PERSON_HOME | Triggered when a concrete person entered the home | -| | OUTDOOR | Triggered when a event of an outdoor camera was triggered | -| | MOVEMENT | Triggered when a movement was detected | -| | HUMAN | Triggered when a human was detected | -| | ANIMAL | Triggered when an animal was detected | -| | VEHICLE | Triggered when a vehicle was detected | -| | NEW_MODULE | Triggered when a new module was discovered | -| | MODULE_CONNECT | Triggered when a module gets connected | -| | MODULE_DISCONNECT | Triggered when a module gets disconnected | -| | MODULE_LOW_BATTERY | Triggered when the battery of a module gets low | -| | MODULE_END_UPDATE | Triggered when a firmware update of a module is done | -| | CONNECTION | Triggered when a camera connection gets created | -| | DISCONNECTION | Triggered when a camera connection got lost | -| | ON | Triggered when camera monitoring is switched on | -| | OFF | Triggered when camera monitoring is switched off | -| | BOOT | Triggered when a camera is booting | -| | SD | Triggered when a camera SD card status was changed | -| | ALIM | Triggered when a power supply status was changed | -| | ACCEPTED_CALL | Triggered when a doorbell call was accepted | -| | INCOMING_CALL | Triggered when a doorbell call is incoming | -| | RTC | Triggered when the doorbell button was pressed | -| | MISSED_CALL | Triggered when a doorbell call was missed | +All these channels are read only. + +**Supported trigger channels for the Home thing:** + +| Channel Type ID | Options | Description | +| ---------------- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| cameraEvent | | A camera event is triggered with a short delay but without requiring a webhook. The information of the event can get retrieved from the other "welcomeEvent" home thing channels | +| | HUMAN | Triggered when a human (or person) was detected | +| | ANIMAL | Triggered when an animal was detected | +| | MOVEMENT | Triggered when an unspecified movement was detected | +| | VEHICLE | Triggered when a vehicle was detected | +| welcomeHomeEvent | | A welcome home event is triggered directly via a configured webhook | +| | PERSON | Triggered when a concrete person was detected | +| | PERSON_AWAY | Triggered when a concrete person leaves | +| | MOVEMENT | Triggered when a movement was detected | +| | CONNECTION | Triggered when a camera connection gets created | +| | DISCONNECTION | Triggered when a camera connection got lost | +| | ON | Triggered when camera monitoring is switched on | +| | OFF | Triggered when camera monitoring is switched off | +| | BOOT | Triggered when a camera is booting | +| | SD | Triggered when a camera SD card status was changed | +| | ALIM | Triggered when a power supply status was changed | +| | NEW_MODULE | Triggered when a new module was discovered | +| | MODULE_CONNECT | Triggered when a module gets connected | +| | MODULE_DISCONNECT | Triggered when a module gets disconnected | +| | MODULE_LOW_BATTERY | Triggered when the battery of a module gets low | +| | MODULE_END_UPDATE | Triggered when a firmware update of a module is done | +| | TAG_BIG_MOVE | Triggered when a big movement of a tag was detected | +| | TAG_SMALL_MOVE | Triggered when a small movement of a tag was detected | +| | TAG_UNINSTALLED | Triggered when a tag gets uninstalled | +| | TAG_OPEN | Triggered when an open event of a tag was detected | ### Welcome, Presence and Doorbell Cameras Warnings: - The URL of the live snapshot is a fixed URL so the value of the channel cameraLivePictureUrl / welcomeCameraLivePictureUrl will never be updated once first set by the binding. So to get a refreshed picture, you need to use the refresh parameter in your sitemap image element. -- Some features like the video monitoring are accessed via the local network, so it may be helpful to set a static IP address for the camera within your local network. +- Some features like the video surveillance are accessed via the local network, so it may be helpful to set a static IP address for the camera within your local network. **Supported channels for the Welcome Camera thing:** -| Channel Group | Channel ID | Item Type | Read/Write | Description | -|----------------| -------------------- | ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| security-event | home-event | | Read-only | Trigger channel which is triggered when the camera sent an event | -| status | monitoring | Switch | Read-write | State of the camera (video surveillance on/off) | -| status | sd-card | String | Read-only | State of the SD card | -| status | alim | String | Read-only | State of the power connector | -| live | picture | Image | Read-only | Camera Live Snapshot | -| live | local-picture-url | String | Read-only | Local Url of the live snapshot for this camera | -| live | vpn-picture-url | String | Read-only | Url of the live snapshot for this camera through Netatmo VPN. | -| live | local-stream-url (*) | String | Read-only | Local Url of the live stream for this camera (accessible if openhab server and camera are located on the same lan. | -| live | vpn-stream-url (*) | String | Read-only | Url of the live stream for this camera through Netatmo VPN. | -| signal | strength | Number | Read-only | Signal strength (0 for no signal, 1 for weak...) | -| signal | value | Number:Power | Read-only | Signal strength in dBm | -| last-event | type | String | Read-only | Type of event | -| last-event | subtype | String | Read-only | Sub-type of event | -| last-event | time | DateTime | Read-only | Time of occurrence of event | -| last-event | message | String | Read-only | Message sent by Netatmo corresponding to given event | -| last-event | snapshot | Image | Read-only | picture of the last event, if it applies | -| last-event | snapshot-url | String | Read-only | If the last event (depending upon event type) in the home lead a snapshot picture, the picture URL will be available here | -| last-event | local-video-url | String | Read-only | If the last event (depending upon event type) in the home lead a snapshot picture, the corresponding local video URL will be available here | -| last-event | vpn-video-url | String | Read-only | If the last event (depending upon event type) in the home lead a snapshot picture, the corresponding VPN video URL will be available here | -| last-event | video-status | String | Read-only | Status of the video (recording, deleted or available) | -| last-event | person-id | String | Read-only | Id of the person the event is about (if any) | +| Channel Group | Channel ID | Item Type | Read/Write | Description | +| ------------- | -------------------- | ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------- | +| status | monitoring | Switch | Read-write | State of the camera (video surveillance on/off) | +| status | sd-card | String | Read-only | State of the SD card | +| status | alim | String | Read-only | State of the power connector | +| live | picture | Image | Read-only | Camera Live Snapshot | +| live | local-picture-url | String | Read-only | Local Url of the live snapshot for this camera | +| live | vpn-picture-url | String | Read-only | Url of the live snapshot for this camera through Netatmo VPN. | +| live | local-stream-url (*) | String | Read-only | Local Url of the live stream for this camera (accessible if openhab server and camera are located on the same lan. | +| live | vpn-stream-url (*) | String | Read-only | Url of the live stream for this camera through Netatmo VPN. | +| signal | strength | Number | Read-only | Signal strength (0 for no signal, 1 for weak...) | +| signal | value | Number:Power | Read-only | Signal strength in dBm | +| last-event | type | String | Read-only | Type of event | +| last-event | subtype | String | Read-only | Sub-type of event | +| last-event | time | DateTime | Read-only | Time of occurrence of event | +| last-event | message | String | Read-only | Message sent by Netatmo corresponding to given event | +| last-event | snapshot | Image | Read-only | picture of the last event, if it applies | +| last-event | snapshot-url | String | Read-only | If the last event (depending upon event type) in the home lead a snapshot picture, the picture URL will be available here | +| last-event | local-video-url | String | Read-only | If the last event (depending upon event type) in the home lead a snapshot picture, the corresponding local video URL will be available here | +| last-event | vpn-video-url | String | Read-only | If the last event (depending upon event type) in the home lead a snapshot picture, the corresponding VPN video URL will be available here | +| last-event | video-status | String | Read-only | Status of the video (recording, deleted or available) | +| last-event | person-id | String | Read-only | Id of the person the event is about (if any) | (*) This channel is configurable : low, poor, high. @@ -550,64 +525,54 @@ Warnings: - The floodlight auto-mode (auto-mode) isn't updated it is changed by another application. Therefore the binding handles its own state of the auto-mode. This has the advantage that the user can define its own floodlight switch off behaviour. -| Channel Group | Channel ID | Item Type | Read/Write | Description | -|----------------|----------------------| ------------ | ---------- |---------------------------------------------------------------------------------------------------------------------------------------------| -| security-event | home-event | | Read-only | Trigger channel which is triggered when the camera sent an event | -| status | monitoring | Switch | Read-write | State of the camera (video surveillance on/off) | -| status | sd-card | String | Read-only | State of the SD card | -| status | alim | String | Read-only | State of the power connector | -| live | picture | Image | Read-only | Camera Live Snapshot | -| live | picture-url | String | Read-only | Url of the live snapshot for this camera | -| live | local-stream-url (*) | String | Read-only | Local Url of the live stream for this camera (accessible if openhab server and camera are located on the same lan. | -| live | vpn-stream-url (*) | String | Read-only | Url of the live stream for this camera through Netatmo VPN. | -| signal | strength | Number | Read-only | Signal strength (0 for no signal, 1 for weak...) | -| signal | value | Number:Power | Read-only | Signal strength in dBm | -| presence | floodlight | String | Read-write | Sets the floodlight to ON/OFF/AUTO | -| presence | siren | Switch | Read-write | Status of the siren, if silent or emitting an alarm | -| last-event | type | String | Read-only | Type of event | -| last-event | subtype | String | Read-only | Sub-type of event | -| last-event | time | DateTime | Read-only | Time of occurrence of event | -| last-event | message | String | Read-only | Message sent by Netatmo corresponding to given event | -| last-event | snapshot | Image | Read-only | picture of the last event, if it applies | -| last-event | snapshot-url | String | Read-only | if the last event (depending upon event type) in the home lead a snapshot picture, the picture URL will be available here | -| last-event | local-video-url | String | Read-only | If the last event (depending upon event type) in the home lead a snapshot picture, the corresponding local video URL will be available here | -| last-event | vpn-video-url | String | Read-only | If the last event (depending upon event type) in the home lead a snapshot picture, the corresponding VPN video URL will be available here | -| last-event | video-status | String | Read-only | Status of the video (recording, deleted or available) | -| last-event | person-id | String | Read-only | Id of the person the event is about (if any) | -| sub-event | type | String | Read-only | Type of sub-event | -| sub-event | time | DateTime | Read-only | Time of occurrence of sub-event | -| sub-event | message | String | Read-only | Message sent by Netatmo corresponding to given sub-event | -| sub-event | snapshot-url | String | Read-only | Depending upon event type in the home, a snapshot picture of the corresponding local video URL will be available here | -| sub-event | vignette-url | String | Read-only | A vignette representing the snapshot | -| sub-event | snapshot | Image | Read-only | picture of the snapshot | -| sub-event | vignette | Image | Read-only | picture of the vignette | +| Channel Group | Channel ID | Item Type | Read/Write | Description | +| ------------- | -------------------- | ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------- | +| status | monitoring | Switch | Read-write | State of the camera (video surveillance on/off) | +| status | sd-card | String | Read-only | State of the SD card | +| status | alim | String | Read-only | State of the power connector | +| live | picture | Image | Read-only | Camera Live Snapshot | +| live | picture-url | String | Read-only | Url of the live snapshot for this camera | +| live | local-stream-url (*) | String | Read-only | Local Url of the live stream for this camera (accessible if openhab server and camera are located on the same lan. | +| live | vpn-stream-url (*) | String | Read-only | Url of the live stream for this camera through Netatmo VPN. | +| signal | strength | Number | Read-only | Signal strength (0 for no signal, 1 for weak...) | +| signal | value | Number:Power | Read-only | Signal strength in dBm | +| presence | floodlight | Switch | Read-write | Sets the floodlight to ON/OFF/AUTO | +| last-event | type | String | Read-only | Type of event | +| last-event | subtype | String | Read-only | Sub-type of event | +| last-event | time | DateTime | Read-only | Time of occurrence of event | +| last-event | message | String | Read-only | Message sent by Netatmo corresponding to given event | +| last-event | snapshot | Image | Read-only | picture of the last event, if it applies | +| last-event | snapshot-url | String | Read-only | if the last event (depending upon event type) in the home lead a snapshot picture, the picture URL will be available here | +| last-event | local-video-url | String | Read-only | If the last event (depending upon event type) in the home lead a snapshot picture, the corresponding local video URL will be available here | +| last-event | vpn-video-url | String | Read-only | If the last event (depending upon event type) in the home lead a snapshot picture, the corresponding VPN video URL will be available here | +| last-event | video-status | String | Read-only | Status of the video (recording, deleted or available) | +| last-event | person-id | String | Read-only | Id of the person the event is about (if any) | (*) This channel is configurable : low, poor, high. **Supported channels for the Doorbell thing:** -| Channel Group | Channel ID | Item Type | Read/Write | Description | -|---------------------| ----------------- |--------------| ---------- |---------------------------------------------------------------------------------------------------------------------------------------------| -| security-event | home-event | | Read-only | Trigger channel which is triggered when the doorbell sent an event | -| status | sd-card | String | Read-only | State of the SD card | -| status | alim | String | Read-only | State of the power connector | -| live | picture | Image | Read-only | Camera Live Snapshot | -| live | local-picture-url | String | Read-only | Local Url of the live snapshot for this camera | -| live | vpn-picture-url | String | Read-only | Url of the live snapshot for this camera through Netatmo VPN. | -| signal | strength | Number | Read-only | Signal strength (0 for no signal, 1 for weak...) | -| signal | value | Number:Power | Read-only | Signal strength in dBm | -| last-event-doorbell | type | String | Read-only | Type of event | -| last-event-doorbell | video-status | String | Read-only | Status of the video (recording, deleted or available) | -| last-event-doorbell | time | DateTime | Read-only | Time of occurrence of event | -| last-event-doorbell | local-video-url | String | Read-only | If the last event (depending upon event type) in the home lead a snapshot picture, the corresponding local video URL will be available here | -| last-event-doorbell | vpn-video-url | String | Read-only | If the last event (depending upon event type) in the home lead a snapshot picture, the corresponding VPN video URL will be available here | -| sub-event-doorbell | type | String | Read-only | Type of sub-event | -| sub-event-doorbell | time | DateTime | Read-only | Time of occurrence of sub-event | -| sub-event-doorbell | message | String | Read-only | Message sent by Netatmo corresponding to given sub-event | -| sub-event-doorbell | snapshot-url | String | Read-only | Depending upon event type in the home, a snapshot picture of the corresponding local video URL will be available here | -| sub-event-doorbell | vignette-url | String | Read-only | A vignette representing the snapshot | -| sub-event-doorbell | snapshot | Image | Read-only | picture of the snapshot | -| sub-event-doorbell | vignette | Image | Read-only | picture of the vignette | +| Channel Group | Channel ID | Item Type | Read/Write | Description | +| ------------- | ----------------- | ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------- | +| status | sd-card | String | Read-only | State of the SD card | +| status | alim | String | Read-only | State of the power connector | +| live | picture | Image | Read-only | Camera Live Snapshot | +| live | local-picture-url | String | Read-only | Local Url of the live snapshot for this camera | +| live | vpn-picture-url | String | Read-only | Url of the live snapshot for this camera through Netatmo VPN. | +| signal | strength | Number | Read-only | Signal strength (0 for no signal, 1 for weak...) | +| signal | value | Number:Power | Read-only | Signal strength in dBm | +| last-event | type | String | Read-only | Type of event | +| last-event | video-status | String | Read-only | Status of the video (recording, deleted or available) | +| last-event | time | DateTime | Read-only | Time of occurrence of event | +| last-event | local-video-url | String | Read-only | If the last event (depending upon event type) in the home lead a snapshot picture, the corresponding local video URL will be available here | +| last-event | vpn-video-url | String | Read-only | If the last event (depending upon event type) in the home lead a snapshot picture, the corresponding VPN video URL will be available here | +| sub-event | type | String | Read-only | Type of sub-event | +| sub-event | time | DateTime | Read-only | Time of occurrence of sub-event | +| sub-event | message | String | Read-only | Message sent by Netatmo corresponding to given sub-event | +| sub-event | snapshot-url | String | Read-only | Depending upon event type in the home, a snapshot picture of the corresponding local video URL will be available here | +| sub-event | vignette-url | String | Read-only | A vignette representing the snapshot | +| sub-event | snapshot | Image | Read-only | picture of the snapshot | +| sub-event | vignet | Image | Read-only | picture of the vignette | Note: live feeds either locally or via VPN are not available in Netatmo API. @@ -615,7 +580,7 @@ Note: live feeds either locally or via VPN are not available in Netatmo API. | Channel Group | Channel ID | Item Type | Read/Write | Description | | ------------- | ----------- | ------------ | ---------- | --------------------------------------------------- | -| siren | status | Switch | Read-only | Status of the siren, if silent or emitting an alarm | +| siren | status | String | Read-only | Status of the siren, if silent or emitting an alarm | | siren | monitoring | Switch | Read-only | State of the siren device | | signal | strength | Number | Read-only | Signal strength (0 for no signal, 1 for weak...) | | signal | value | Number:Power | Read-only | Signal strength in dBm | @@ -676,28 +641,12 @@ All these channels are read only. | last-event | subtype | String | Sub-type of event | | last-event | message | String | Last event message from this person | -### Netatmo Smart Carbon Monoxide Detector - -All these channels are read only. - -**Supported channels for the Carbon Monoxide Detector thing:** - -| Channel Group | Channel Id | Item Type | Description | -| ------------- | ---------- | ------------ | ------------------------------------------------ | -| signal | strength | Number | Signal strength (0 for no signal, 1 for weak...) | -| signal | value | Number:Power | Signal strength in dBm | -| timestamp | last-seen | DateTime | Last time the module reported its presence | -| last-event | type | String | Type of event | -| last-event | time | DateTime | Moment of the last event for this detector | -| last-event | subtype | String | Sub-type of event | -| last-event | message | String | Last event message from this detector | - ## Configuration Examples ### things/netatmo.things ```java -Bridge netatmo:account:myaccount "Netatmo Account" [clientId="xxxxx", clientSecret="yyyy"] { +Bridge netatmo:account:myaccount "Netatmo Account" [clientId="xxxxx", clientSecret="yyyy", refreshToken="zzzzz"] { Bridge weather-station inside "Inside Weather Station" [id="70:ee:aa:aa:aa:aa"] { outdoor outside "Outside Module" [id="02:00:00:aa:aa:aa"] { Channels: @@ -857,26 +806,6 @@ sitemap netatmo label="Netatmo" { } ``` -## Example Rules - -```java -rule "Notification on home web hook event" -when -Channel "netatmo:home:mybridgeid:myclientid:home-event" triggered -then -logInfo("camera", "Received web hook on home level") -end -``` - -```java -rule "Notification on camera web hook event" -when -Channel "netatmo:presence:mybridgeid:myclientid:mythingid:home-event" triggered -then -logInfo("camera", "Received web hook on camera level") -end -``` - ## Rule Actions Multiple actions are supported by this binding. In classic rules these are accessible as shown in this example (adjust getActions with your ThingId): diff --git a/bundles/org.openhab.binding.networkupstools/README.md b/bundles/org.openhab.binding.networkupstools/README.md index 6f7d30aae6217..861abcf07013c 100644 --- a/bundles/org.openhab.binding.networkupstools/README.md +++ b/bundles/org.openhab.binding.networkupstools/README.md @@ -76,7 +76,6 @@ The following channels are available: | batteryCharge | Number:Dimensionless | % | Battery charge (percent) | no | | batteryRuntime | Number:Time | s | Battery runtime (seconds) | no | | batteryVoltage | Number:ElectricPotential | V | Battery voltage (V) | yes | -| batteryTemperature | Number:Temperature | °C | Battery temperature (degrees C) | yes | ### Dynamic Channels diff --git a/bundles/org.openhab.binding.nuvo/README.md b/bundles/org.openhab.binding.nuvo/README.md index 6db93f746c5f5..e77b4540c59ff 100644 --- a/bundles/org.openhab.binding.nuvo/README.md +++ b/bundles/org.openhab.binding.nuvo/README.md @@ -5,9 +5,9 @@ Up to 20 keypad zones can be controlled when zone expansion modules are used (if The binding supports three different kinds of connections: -* serial connection, -* serial over IP connection, -* direct IP connection via a Nuvo MPS4 music server +- serial connection, +- serial over IP connection, +- direct IP connection via a Nuvo MPS4 music server For users without a serial connector on the server side, you can use a USB to serial adapter. @@ -45,32 +45,32 @@ The thing has the following configuration parameters: | Favorite Labels | favoriteLabels | A comma separated list of up to 12 label names that are loaded into the 'favorites' channel of each zone. These represent keypad favorites 1-12 | Optional; Comma separated list, max 12 items. ie: Favorite 1,Favorite 2,Favorite 3 | | Sync Clock on GConcerto | clockSync | (Optional) If set to true, the binding will sync the internal clock on the Grand Concerto to match the openHAB host's system clock | Boolean; default false | | Source N is NuvoNet | nuvoNetSrcN | MPS4 Only! Indicate if the source is a NuvoNet source in the MPS4 or in openHAB. Nuvo tuners & iPod docks and all others set to 0 | 0 = Non-NuvoNet source, 1 = Source is a used by MPS4, 2 = openHAB NuvoNet Source | -| Source N Favorites | favoritesSrcN | MPS4 Only! A comma separated list of favorite names to load into the global favorites list for Source N. See *very advanced* rules | Comma separated list, max 20 items. Each item max 40 chars, ie: Oldies,Pop,Rock | -| Source N Favorite Prefix | favPrefixN | MPS4 Only! To quickly locate a Source's favorites, this prefix will be added to the favorite names. See *very advanced* rules | Text; ie: 'S2-' will cause the favorite names to be prefixed, e.g. 'S2-Rock' | -| Source N Menu XML | menuXmlSrcN | MPS4 Only! Will load a custom menu for a given source into the keypads. Up to 10 items in the top menu and up to 20 items in each sub menu | XML Text string; see examples below and *very advanced* rules for usage | +| Source N Favorites | favoritesSrcN | MPS4 Only! A comma separated list of favorite names to load into the global favorites list for Source N. See _very advanced_ rules | Comma separated list, max 20 items. Each item max 40 chars, ie: Oldies,Pop,Rock | +| Source N Favorite Prefix | favPrefixN | MPS4 Only! To quickly locate a Source's favorites, this prefix will be added to the favorite names. See _very advanced_ rules | Text; ie: 'S2-' will cause the favorite names to be prefixed, e.g. 'S2-Rock' | +| Source N Menu XML | menuXmlSrcN | MPS4 Only! Will load a custom menu for a given source into the keypads. Up to 10 items in the top menu and up to 20 items in each sub menu | XML Text string; see examples below and _very advanced_ rules for usage | Some notes: -* If the port is set to 5006, the binding will adjust its protocol to connect to the Nuvo amplifier thing via an MPS4 IP connection. -* MPS4 connections do not support commands using `SxDISPINFO`& `SxDISPLINE` (display_lineN channels) including those outlined in the advanced rules section below. In this case,`SxDISPINFOTWO` and `SxDISPLINES` must be used instead. See the *very advanced* rule examples below. -* As of OH 3.4.0, the binding supports NuvoNet source communication for any/all of the amplifier's 6 inputs but only when using an MPS4 connection. -* By implementing NuvoNet communication, the binding can now support sending custom menus, custom favorite lists, album art, etc. to the Nuvo keypads for each source configured as an openHAB NuvoNet source. -* If a zone has a maximum volume limit configured by the Nuvo configurator, the volume slider will automatically drop back to that level if set above the configured limit. -* Source display_line1 thru 4 can only be updated on non NuvoNet sources when not using an MPS4 connection. -* The track_position channel does not update continuously for NuvoNet sources. It only changes when the track changes or playback is paused/unpaused. +- If the port is set to 5006, the binding will adjust its protocol to connect to the Nuvo amplifier thing via an MPS4 IP connection. +- MPS4 connections do not support commands using `SxDISPINFO`& `SxDISPLINE` (display_lineN channels) including those outlined in the advanced rules section below. In this case,`SxDISPINFOTWO` and `SxDISPLINES` must be used instead. See the _very advanced_ rule examples below. +- As of OH 3.4.0, the binding supports NuvoNet source communication for any/all of the amplifier's 6 inputs but only when using an MPS4 connection. +- By implementing NuvoNet communication, the binding can now support sending custom menus, custom favorite lists, album art, etc. to the Nuvo keypads for each source configured as an openHAB NuvoNet source. +- If a zone has a maximum volume limit configured by the Nuvo configurator, the volume slider will automatically drop back to that level if set above the configured limit. +- Source display_line1 thru 4 can only be updated on non NuvoNet sources when not using an MPS4 connection. +- The track_position channel does not update continuously for NuvoNet sources. It only changes when the track changes or playback is paused/unpaused. -* On Linux, you may get an error stating the serial port cannot be opened when the Nuvo binding tries to load. -* You can get around this by adding the `openhab` user to the `dialout` group like this: `usermod -a -G dialout openhab`. -* Also on Linux you may have issues with the USB if using two serial USB devices e.g. Nuvo and RFXcom. See the [general documentation about serial port configuration](/docs/administration/serial.html) for more on symlinking the USB ports. -* Here is an example of ser2net.conf (for ser2net version < 4) you can use to share your serial port /dev/ttyUSB0 on IP port 4444 using [ser2net Linux tool](https://sourceforge.net/projects/ser2net/) (take care, the baud rate is specific to the Nuvo amplifier): +- On Linux, you may get an error stating the serial port cannot be opened when the Nuvo binding tries to load. +- You can get around this by adding the `openhab` user to the `dialout` group like this: `usermod -a -G dialout openhab`. +- Also on Linux you may have issues with the USB if using two serial USB devices e.g. Nuvo and RFXcom. See the [general documentation about serial port configuration](/docs/administration/serial.html) for more on symlinking the USB ports. +- Here is an example of ser2net.conf (for ser2net version < 4) you can use to share your serial port /dev/ttyUSB0 on IP port 4444 using [ser2net Linux tool](https://sourceforge.net/projects/ser2net/) (take care, the baud rate is specific to the Nuvo amplifier): -``` +```text 4444:raw:0:/dev/ttyUSB0:57600 8DATABITS NONE 1STOPBIT LOCAL ``` -* Here is an example of ser2net.yaml (for ser2net version >= 4) you can use to share your serial port /dev/ttyUSB0 on IP port 4444 using [ser2net Linux tool](https://sourceforge.net/projects/ser2net/) (take care, the baud rate is specific to the Nuvo amplifier): +- Here is an example of ser2net.yaml (for ser2net version >= 4) you can use to share your serial port /dev/ttyUSB0 on IP port 4444 using [ser2net Linux tool](https://sourceforge.net/projects/ser2net/) (take care, the baud rate is specific to the Nuvo amplifier): -``` +```yaml connection: &conNuvo accepter: tcp,4444 enable: on @@ -113,14 +113,14 @@ The following channels are available: | sourceN#track_length (where N= 1-6) | Number:Time | The total running time of the current playing track (ReadOnly) See rules example for updating | | sourceN#track_position (where N= 1-6)| Number:Time | The running time elapsed of the current playing track (ReadOnly) See rules example for updating | | sourceN#button_press (where N= 1-6) | String | Indicates the last button pressed on the keypad for a non NuvoNet source or openHAB NuvoNet source (ReadOnly) | -| sourceN#art_url (where N= 1-6) | String | MPS4 Only! The URL of the Album Art JPG for this source that is displayed on a CTP-36. See *very advanced* rules (SendOnly) | +| sourceN#art_url (where N= 1-6) | String | MPS4 Only! The URL of the Album Art JPG for this source that is displayed on a CTP-36. See _very advanced_ rules (SendOnly) | | sourceN#album_art (where N= 1-6) | Image | The Album Art loaded from the art_url channel for display in a UI widget (ReadOnly) | ## Full Example nuvo.things: -``` +```java // serial port connection nuvo:amplifier:myamp "Nuvo WHA" [ serialPort="COM5", numZones=6, clockSync=false] @@ -134,7 +134,7 @@ nuvo:amplifier:myamp "Nuvo WHA" [ host="192.168.0.10", port=5006, numZones=6, cl nuvo.items: -``` +```java // system Switch nuvo_system_alloff "All Zones Off" { channel="nuvo:amplifier:myamp:system#alloff" } Switch nuvo_system_allmute "All Zones Mute" { channel="nuvo:amplifier:myamp:system#allmute" } @@ -230,7 +230,7 @@ String nuvo_s6_button_press "Button: [%s]" { channel="nuvo:amplifier:myamp:sourc nuvo.sitemap: -``` +```perl sitemap nuvo label="Audio Control" { Frame label="System" { Switch item=nuvo_system_alloff mappings=[ON=" "] @@ -326,7 +326,7 @@ sitemap nuvo label="Audio Control" { nuvo.rules: -``` +```java import java.text.Normalizer // To be used with a direct serial port or serial over IP connection @@ -455,7 +455,7 @@ Each `` item can have up to 20 `` tags contained within. The topmenu item does not need to have any sub menu items if not desired as seen in the 'Top menu 2' example. A complete XML string for the desired menu is then stored in the `menuXmlSrcN` configuration parameter for a given source and will be loaded into the Nuvo keypads during binding initialization. -``` +```xml menu1 a menu1 b @@ -485,7 +485,7 @@ The functionality can be used to create very powerful rules as demontrated below nuvo-turn-off-all-but-caller.rules: -``` +```java rule "Turn off all zones except caller zone" when Item nuvo_system_buttonpress received update @@ -517,7 +517,7 @@ end ``` -### MPS4 openHAB NuvoNet source custom integration rules *(very advanced)* +### MPS4 openHAB NuvoNet source custom integration rules _(very advanced)_ The following are a set of example rules necessary to integrate metadata and control of another openHAB connected source (ie: Chromecast) into an openHAB NuvoNet source. By using these rules, it is possible to have artist, album and track names displayed on the keypad, transport button presses from the keypad relayed to the source, and album art displayed if using a Nuvo CTP-36 keypad. @@ -526,7 +526,7 @@ The list of favorite names should be playable via another thing connected to ope nuvo-advanced.rules: -``` +```java import java.text.Normalizer // all examples using Source 6 diff --git a/bundles/org.openhab.binding.openwebnet/README.md b/bundles/org.openhab.binding.openwebnet/README.md index c9abf3d1a4d35..42e3470d2ca45 100644 --- a/bundles/org.openhab.binding.openwebnet/README.md +++ b/bundles/org.openhab.binding.openwebnet/README.md @@ -8,7 +8,6 @@ The binding supports: - auto discovery of BUS/SCS IP and ZigBee USB gateways; auto discovery of devices - commands from openHAB and feedback (events) from BUS/SCS and wireless network - ![MyHOMEServer1 Gateway](doc/MyHOMEServer1_gateway.jpg) ![F454 Gateway](doc/F454_gateway.png) ![ZigBee USB Gateway](doc/USB_gateway.jpg) @@ -50,7 +49,6 @@ The following Things and OpenWebNet `WHOs` are supported: | Dry Contact and IR Interfaces | `25` | `bus_dry_contact_ir` | Dry Contacts and IR Interfaces | Successfully tested: contact interfaces F428 and 3477; IR sensors: HC/HD/HS/L/N/NT4610 | | Energy Management | `18` | `bus_energy_meter` | Energy Management | Successfully tested: F520, F521. Partially tested: F522, F523 | - ### For ZigBee (Radio) | Category | WHO | Thing Type IDs | Description | Status | @@ -70,7 +68,7 @@ For other gateways you can add them manually, see [Thing Configuration](#thing-c - After gateway is discovered and added a connection with default password (`12345`) is tested first: if it does not work the gateway will go offline and an error status will be set. A correct password must then be set in the gateway Thing configuration otherwise the gateway will not become online. - Once the gateway is online, a second Inbox Scan will discover BUS devices - BUS/SCS Dimmers must be ON and dimmed (30%-100%) during a Scan, otherwise they will be discovered as simple On/Off switches - - *KNOWN ISSUE*: In some cases dimmers connected to a F429 Dali-interface are not automatically discovered + - _KNOWN ISSUE_: In some cases dimmers connected to a F429 Dali-interface are not automatically discovered - Basic Scenario modules and CEN/CEN+ Scenario Control devices will be discovered by activation only. See [discovery by activation](#discovery-by-activation) for details. After confirming a discovered CEN/CEN+ scenario device from Inbox, activate again its buttons to add button channels automatically #### Discovery by Activation @@ -83,16 +81,16 @@ If a device cannot be discovered automatically from Inbox it's always possible t ### ZigBee Discovery - The ZigBee USB Gateway must be inserted in one of the USB ports of the openHAB computer before a discovery is started -- ***IMPORTANT NOTE:*** As for other openHAB bindings using the USB/serial ports, on Linux the `openhab` user must be member of the `dialout` group to be able to use USB/serial port; set the group with the following command: +- _**IMPORTANT NOTE:**_ As for other openHAB bindings using the USB/serial ports, on Linux the `openhab` user must be member of the `dialout` group to be able to use USB/serial port; set the group with the following command: - ``` - $ sudo usermod -a -G dialout openhab - ``` +```shell +sudo usermod -a -G dialout openhab +``` - The user will need to logout and login to see the new group added. If you added your user to this group and still cannot get permission, reboot Linux to ensure the new group permission is attached to the `openhab` user. +- The user will need to logout and login to see the new group added. If you added your user to this group and still cannot get permission, reboot Linux to ensure the new group permission is attached to the `openhab` user. - Once the ZigBee USB Gateway is added and online, a second Inbox Scan will discover devices connected to it. Because of the ZigBee radio network, device discovery will take ~40-60 sec. Be patient! - Wireless devices must be part of the same ZigBee network of the ZigBee USB Gateway to discover them. Please refer to [this video by BTicino](https://www.youtube.com/watch?v=CoIgg_Xqhbo) to setup a ZigBee wireless network which includes the ZigBee USB Gateway -- Only powered wireless devices part of the same ZigBee network and within radio coverage of the ZigBee USB Gateway will be discovered. Unreachable or not powered devices will be discovered as *GENERIC* devices and cannot be controlled +- Only powered wireless devices part of the same ZigBee network and within radio coverage of the ZigBee USB Gateway will be discovered. Unreachable or not powered devices will be discovered as _GENERIC_ devices and cannot be controlled - Wireless control units cannot be discovered by the ZigBee USB Gateway and therefore are not supported ## Thing Configuration @@ -101,14 +99,14 @@ If a device cannot be discovered automatically from Inbox it's always possible t Configuration parameters are: -- `host` : IP address / hostname of the BUS/SCS gateway (`String`, *mandatory*) - - Example: `192.168.1.35` -- `port` : port (`int`, *optional*, default: `20000`) -- `passwd` : gateway password (`String`, *required* for gateways that have a password. Default: `12345`) - - Example: `abcde` or `12345` - - if the BUS/SCS gateway is configured to accept connections from the openHAB computer IP address, no password should be required - - in all other cases, a password must be configured. This includes gateways that have been discovered and added from Inbox: without a password configured they will remain OFFLINE -- `discoveryByActivation`: discover BUS devices when they are activated also when a device scan hasn't been started from Inbox (`boolean`, *optional*, default: `false`). See [Discovery by Activation](#discovery-by-activation). +- `host` : IP address / hostname of the BUS/SCS gateway (`String`, _mandatory_) + - Example: `192.168.1.35` +- `port` : port (`int`, _optional_, default: `20000`) +- `passwd` : gateway password (`String`, _required_ for gateways that have a password. Default: `12345`) + - Example: `abcde` or `12345` + - if the BUS/SCS gateway is configured to accept connections from the openHAB computer IP address, no password should be required + - in all other cases, a password must be configured. This includes gateways that have been discovered and added from Inbox: without a password configured they will remain OFFLINE +- `discoveryByActivation`: discover BUS devices when they are activated also when a device scan hasn't been started from Inbox (`boolean`, _optional_, default: `false`). See [Discovery by Activation](#discovery-by-activation). Alternatively the BUS/SCS Gateway thing can be configured using the `.things` file, see `openwebnet.things` example [below](#full-example). @@ -116,8 +114,8 @@ Alternatively the BUS/SCS Gateway thing can be configured using the `.things` fi Configuration parameters are: -- `serialPort` : the serial port where the ZigBee USB Gateway is connected (`String`, *mandatory*) - - Examples: `/dev/ttyUSB0` (Linux/RaPi), `COM3` (Windows) +- `serialPort` : the serial port where the ZigBee USB Gateway is connected (`String`, _mandatory_) + - Examples: `/dev/ttyUSB0` (Linux/RaPi), `COM3` (Windows) Alternatively the ZigBee USB Gateway thing can be configured using the `.things` file, see `openwebnet.things` example [below](#full-example). @@ -129,18 +127,17 @@ For any manually added device, you must configure: - the associated gateway Thing (`Parent Bridge` menu) - the `where` configuration parameter (`OpenWebNet Address`): this is the OpenWebNet address configured for the device in the BTicino/Legrand system. This address can be found either on the device itself (Physical configuration, using jumpers in case of BUS) or through the MyHOME_Suite software (Virtual configuration). The address can have several formats depending on the device/system: - - example for BUS/SCS system: - - light device A=`2` (Area 2), PL=`4` (Light-point 4) --> `where="24"` - - light device A=`03`, PL=`11` on local bus `01` --> `where="0311#4#01"` - - scenario control module address `53` --> `where="53"` - - CEN scenario A=`05`, PL=`12` --> `where="0512"` - - CEN+ scenario `5`: add `2` before --> `where="25"` - - dry Contact or IR Interface `99`: add `3` before --> `where="399"` - - energy meter F520/F521 numbered `1`: add `5` before --> `where="51"` - - energy meter F522/F523 numbered `4`: add `7` before and `#0` after --> `where="74#0"` - - alarm zone `2` --> `where="2"` - - example for ZigBee devices: `where=765432101#9`. The ID of the device (ADDR part) is usually written in hexadecimal on the device itself, for example `ID 0074CBB1`: convert to decimal (`7654321`) and add `01#9` at the end to obtain `where=765432101#9`. For 2-unit switch devices (`zb_on_off_switch2u`), last part should be `00#9`. - + - example for BUS/SCS system: + - light device A=`2` (Area 2), PL=`4` (Light-point 4) --> `where="24"` + - light device A=`03`, PL=`11` on local bus `01` --> `where="0311#4#01"` + - scenario control module address `53` --> `where="53"` + - CEN scenario A=`05`, PL=`12` --> `where="0512"` + - CEN+ scenario `5`: add `2` before --> `where="25"` + - dry Contact or IR Interface `99`: add `3` before --> `where="399"` + - energy meter F520/F521 numbered `1`: add `5` before --> `where="51"` + - energy meter F522/F523 numbered `4`: add `7` before and `#0` after --> `where="74#0"` + - alarm zone `2` --> `where="2"` + - example for ZigBee devices: `where=765432101#9`. The ID of the device (ADDR part) is usually written in hexadecimal on the device itself, for example `ID 0074CBB1`: convert to decimal (`7654321`) and add `01#9` at the end to obtain `where=765432101#9`. For 2-unit switch devices (`zb_on_off_switch2u`), last part should be `00#9`. #### Configuring Thermo @@ -149,14 +146,14 @@ In BTicino MyHOME Thermoregulation (WHO=4) each **zone** has associated a thermo Thermo zones can be configured defining a `bus_thermo_zone` Thing for each zone with the following parameters: - the `where` configuration parameter (`OpenWebNet Address`): - - example BUS/SCS zone `1` --> `where="1"` + - example BUS/SCS zone `1` --> `where="1"` - the `standAlone` configuration parameter (`boolean`, default: `true`): identifies if the zone is managed or not by a Central Unit (4 or 99 zones). `standAlone=true` means no Central Unit is present in the system. Temperature sensors can be configured defining a `bus_thermo_sensor` Thing with the following parameters: - the `where` configuration parameter (`OpenWebNet Address`): - - example sensor `5` of external zone `00` --> `where="500"` - - example: slave sensor `3` of zone `2` --> `where="302"` + - example sensor `5` of external zone `00` --> `where="500"` + - example: slave sensor `3` of zone `2` --> `where="302"` The (optional) Central Unit can be configured defining a `bus_themo_cu` Thing with the `where` configuration parameter (`OpenWebNet Address`) set to `where="0"`. @@ -164,7 +161,7 @@ The (optional) Central Unit can be configured defining a `bus_themo_cu` Thing wi - Read setPoint temperature and current mode - Holiday activation command (all zones) -- Discovery +- Discovery #### Configuring Alarm and Auxiliary (AUX) @@ -172,36 +169,42 @@ The (optional) Central Unit can be configured defining a `bus_themo_cu` Thing wi **NOTE 2** Alarm messages on BUS are not sent by MyHOMEServer1, therfore this gateway cannot be used to integrate the BTicino Alarm system -BUS Auxiliary commands (WHO=9) can be used to send on the BUS commands to control, for example, external devices or a BTicino Alarm system. +BUS Auxiliary commands (WHO=9) can be used to send on the BUS commands to control, for example, external devices or a BTicino Alarm system. The BTicino Alarm system **cannot** be controlled directly via the OpenWebNet protocol: the only possibility is to use AUX commands and configure your Burglar-alarm Unit (`Automations` section) to execute some commands (e.g. Arm alarm) when it receives a particular AUX OpenWebNet command. Alarm Automations allow you to run an OpenWebNet command when a particular event occurs; in this case, the events are changes of state of the AUX device (WHO=9) and the command to be performed is a burglar alarm command (WHO=5). To configure Alarm Automations go to the menu: - Antitheft -> Automations +`Antitheft -> Automations` ##### Example configuration Automation 1: when AUX-4 goes ON, then ARM all zones With this configuration when AUX `where=4` goes ON, the Alarm will execute the automation and send command `*5*8##` to ARM all zones: - Name: Arm all zones - Event: command OPEN = *9*1*4## - OPEN command to execute: *5*8## +```text +Name: Arm all zones +Event: command OPEN = *9*1*4## +OPEN command to execute: *5*8## +``` ##### Example configuration Automation 2: when AUX-4 goes OFF, then DISARM all zones - Name: Disarm all zones - Event: command OPEN = *9*0*4## - OPEN command to execute: *5*9## +```text +Name: Disarm all zones +Event: command OPEN = *9*0*4## +OPEN command to execute: *5*9## +``` ##### Example configuration Automation 3: when AUX-5 goes ON, then ARM zones 1, 3, 4 - Name: Arm zones 1 3 4 - Event: command OPEN = *9*1*5## - OPEN command to execute: *5*8#134## +```text +Name: Arm zones 1 3 4 +Event: command OPEN = *9*1*5## +OPEN command to execute: *5*8#134## +``` -## Channels +## Channels ### Lighting, Automation, Basic/CEN/CEN+ Scenario Events, Dry Contact / IR Interfaces, Power and Aux channels @@ -216,7 +219,6 @@ With this configuration when AUX `where=4` goes ON, the Alarm will execute the a | `power` | `bus_energy_meter` | Number:Power | The current active power usage from Energy Meter | R | | `aux` | `bus_aux` | String | Possible commands: `ON`, `OFF`, `TOGGLE`, `STOP`, `UP`, `DOWN`, `ENABLED`, `DISABLED`, `RESET_GEN`, `RESET_BI`, `RESET_TRI`. Only `ON` and `OFF` are supported for now | R/W | - ### Alarm channels | Channel Type ID (channel ID) | Applies to Thing Type IDs | Item Type | Description | Read/Write | @@ -227,7 +229,6 @@ With this configuration when AUX `where=4` goes ON, the Alarm will execute the a | `armed` | `bus_alarm_system` | Switch | Alarm system is armed (`ON`) or disarmed (`OFF`) | R | | `alarm` | `bus_alarm_zone` | String | Current alarm for the zone (`SILENT`, `INTRUSION`, `TAMPERING`, `ANTI_PANIC`) | R | - ### Thermo channels **NOTE** Channels marked in the table with `Advanced = Y` can be shown on the UI from Thing configuration > Channels tab > check `Show advanced`. @@ -254,10 +255,10 @@ With this configuration when AUX `where=4` goes ON, the Alarm will execute the a ### Notes on channels -#### `shutter` position +#### `shutter` position For Percent commands and position feedback to work correctly, the `shutterRun` Thing config parameter must be configured equal to the time (in ms) to go from full UP to full DOWN. -It's possible to enter a value manually or set `shutterRun=AUTO` (default) to calibrate `shutterRun` automatically: in this case a *UP >> DOWN >> Position%* cycle will be performed automatically the first time a Percent command is sent to the shutter. +It's possible to enter a value manually or set `shutterRun=AUTO` (default) to calibrate `shutterRun` automatically: in this case a _UP >> DOWN >> Position%_ cycle will be performed automatically the first time a Percent command is sent to the shutter. - if `shutterRun` is not set, or is set to `AUTO` but calibration has not been performed yet, then position estimation will remain `UNDEF` (undefined) - if `shutterRun` is wrongly set higher than the actual runtime, then position estimation will remain `UNDEF`: try to reduce shutterRun until you find the right value @@ -270,27 +271,27 @@ It's possible to enter a value manually or set `shutterRun=AUTO` (default) to ca Basic Scenarios and CEN/CEN+ Scenarios channels are [TRIGGER channels](https://www.openhab.org/docs/configuration/rules-dsl.html#channel-based-triggers]): they handle events and do not have a state. A powerful feature is to detect scenario activations and CEN/CEN+ buttons press events to trigger rules in openHAB: this way openHAB becomes a very powerful scenario manager activated by BTicino scenario control modules or by CEN/CEN+ scenarios physical buttons. -See [openwebnet.rules](#openwebnet-rules) for examples on how to define rules that trigger on scenarios and on CEN/CEN+ button press events. +See [openwebnet.rules](#openwebnetrules) for examples on how to define rules that trigger on scenarios and on CEN/CEN+ button press events. -It's also possible to send *virtual scenario activation* and *virtual press* events on the BUS, for example to enable the activation of MH202 or F420 scenarios from openHAB.. -See [openwebnet.sitemap](#openwebnet-sitemap) & [openwebnet.rules](#openwebnet-rules) sections for examples on how to use the `activateScenario` and `virtualPress` actions connected to a pushbutton on a sitemap. +It's also possible to send _virtual scenario activation_ and _virtual press_ events on the BUS, for example to enable the activation of MH202 or F420 scenarios from openHAB.. +See [openwebnet.sitemap](#openwebnetsitemap) & [openwebnet.rules](#openwebnetrules) sections for examples on how to use the `activateScenario` and `virtualPress` actions connected to a pushbutton on a sitemap. - basic scenario channels are named `scenario` and possible events are: `SCENARIO_01` ... `SCENARIO_16` (or up to `SCENARIO_20` in case of module IR3456) when a scenario is activated - CEN/CEN+ channels are named `button#X` where `X` is the button number on the CEN/CEN+ Scenario Control device - - in the .thing file configuration you can specify the `buttons` parameter to define a comma-separated list of buttons numbers [0-31] configured for the scenario device, example: `buttons=1,2,4` - - possible events are: - - for CEN: - - `START_PRESS` - sent when you start pressing the button - - `SHORT_PRESS` - sent if you pressed the button shorter than 0,5sec (sent at the moment when you release it) - - `EXTENDED_PRESS` - sent if you keep the button pressed longer than 0,5sec; will be sent again every 0,5sec as long as you hold pressed (good for dimming rules) - - `RELEASE_EXTENDED_PRESS` - sent once when you finally release the button after having it pressed longer than 0,5sec - - for CEN+: - - `SHORT_PRESS` - sent if you pressed the button shorter than 0,5sec (sent at the moment when you release it) - - `START_EXTENDED_PRESS` - sent once as soon as you keep the button pressed longer than 0,5sec - - `EXTENDED_PRESS` - sent after `START_EXTENDED_PRESS` if you keep the button pressed longer; will be sent again every 0,5sec as long as you hold pressed (good for rules involving dimming/volume) - - `RELEASE_EXTENDED_PRESS` - sent once when you finally release the button after having it pressed longer than 0,5sec - -#### `mode` for values WEEKLY and SCENARIO (thermo Central Unit) + - in the .thing file configuration you can specify the `buttons` parameter to define a comma-separated list of buttons numbers [0-31] configured for the scenario device, example: `buttons=1,2,4` + - possible events are: + - for CEN: + - `START_PRESS` - sent when you start pressing the button + - `SHORT_PRESS` - sent if you pressed the button shorter than 0,5sec (sent at the moment when you release it) + - `EXTENDED_PRESS` - sent if you keep the button pressed longer than 0,5sec; will be sent again every 0,5sec as long as you hold pressed (good for dimming rules) + - `RELEASE_EXTENDED_PRESS` - sent once when you finally release the button after having it pressed longer than 0,5sec + - for CEN+: + - `SHORT_PRESS` - sent if you pressed the button shorter than 0,5sec (sent at the moment when you release it) + - `START_EXTENDED_PRESS` - sent once as soon as you keep the button pressed longer than 0,5sec + - `EXTENDED_PRESS` - sent after `START_EXTENDED_PRESS` if you keep the button pressed longer; will be sent again every 0,5sec as long as you hold pressed (good for rules involving dimming/volume) + - `RELEASE_EXTENDED_PRESS` - sent once when you finally release the button after having it pressed longer than 0,5sec + +#### `mode` for values WEEKLY and SCENARIO (thermo Central Unit) There are three WEEKLY and sixteen SCENARIO programs defined for the thermo Central Unit. @@ -307,14 +308,14 @@ Example: if you want to activate SCENARIO number 9 on the thermo Central Unit yo BUS gateway and things configuration: -``` +```java Bridge openwebnet:bus_gateway:mybridge "MyHOMEServer1" [ host="192.168.1.35", passwd="abcde", port=20000, discoveryByActivation=false ] { bus_on_off_switch LR_switch "Living Room Light" [ where="51" ] bus_dimmer LR_dimmer "Living Room Dimmer" [ where="0311#4#01" ] bus_automation LR_shutter "Living Room Shutter" [ where="93", shutterRun="10050"] - bus_energy_meter CENTRAL_Ta "Energy Meter Ta" [ where="51" ] - bus_energy_meter CENTRAL_Tb "Energy Meter Tb" [ where="52" ] + bus_energy_meter CENTRAL_Ta "Energy Meter Ta" [ where="51" ] + bus_energy_meter CENTRAL_Tb "Energy Meter Tb" [ where="52" ] bus_thermo_cu CU_3550 "99 zones central unit" [ where="0" ] bus_thermo_zone LR_zone "Living Room Zone" [ where="2"] @@ -333,10 +334,9 @@ Bridge openwebnet:bus_gateway:mybridge "MyHOMEServer1" [ host="192.168.1.35", pa } ``` - ZigBee USB Gateway and things configuration - for radio devices: -``` +```java Bridge openwebnet:zb_gateway:myZBgateway [ serialPort="COM3" ] { zb_dimmer myZB_dimmer [ where="765432101#9"] zb_on_off_switch myZB_switch [ where="765432201#9"] @@ -348,9 +348,9 @@ Bridge openwebnet:zb_gateway:myZBgateway [ serialPort="COM3" ] { Example items linked to BUS devices: -NOTE: lights, blinds and zones (thermostat) can be handled from personal assistants (Google Home, Alexa). In the following example `Google Assistant` (`ga="..."`) and `HomeKit` (`homekit="..."`) were configured according to the [Google official documentation](https://www.openhab.org/docs/ecosystem/google-assistant) and [HomeKit official documentation](https://www.openhab.org/addons/integrations/homekit/) +NOTE: lights, blinds and zones (thermostat) can be handled from personal assistants (Google Home, Alexa). In the following example `Google Assistant` (`ga="..."`) and `HomeKit` (`homekit="..."`) were configured according to the [Google official documentation](https://www.openhab.org/docs/ecosystem/google-assistant) and [HomeKit official documentation](https://www.openhab.org/addons/integrations/homekit/) -``` +```java Switch iLR_switch "Light" (gLivingRoom) { channel="openwebnet:bus_on_off_switch:mybridge:LR_switch:switch", ga="Light", homekit="Lighting" } Dimmer iLR_dimmer "Dimmer [%.0f %%]" (gLivingRoom) { channel="openwebnet:bus_dimmer:mybridge:LR_dimmer:brightness", ga="Light", homekit="Lighting" } @@ -385,7 +385,7 @@ String iLR_zone_cv "Conditioning valves" (g Number:Temperature iEXT_temp "Temperature [%.1f %unit%]" (gExternal) { channel="openwebnet:bus_thermo_sensor:mybridge:EXT_tempsensor:temperature" } -String iCENPlusProxyItem "CEN+ Proxy Item" +String iCENPlusProxyItem "CEN+ Proxy Item" Switch iLR_IR_sensor "Sensor" { channel="openwebnet:bus_dry_contact_ir:mybridge:LR_IR_sensor:sensor" } @@ -402,7 +402,7 @@ String iAlarm_Zone_3_Alarm "Zone 3 alarm" ( Example items linked to OpenWebNet ZigBee devices: -``` +```java Dimmer iDimmer "Dimmer [%.0f %%]" (gKitchen) [ "Lighting" ] { channel="openwebnet:zb_dimmer:myZBgateway:myZB_dimmer:brightness" } Switch iSimpleSwitch "Kitchen Switch" (gKitchen) [ "Lighting" ] { channel="openwebnet:zb_on_off_switch:myZBgateway:myZB_switch:switch_01" } Switch iSwitch_01 "2U first light" (gKitchen) [ "Lighting" ] { channel="openwebnet:zb_on_off_switch2u:myZBgateway:myZB_2U_switch:switch_01" } @@ -411,7 +411,7 @@ Switch iSwitch_02 "2U second light" ### openwebnet.sitemap -``` +```perl sitemap openwebnet label="OpenWebNet Binding Example Sitemap" { Frame label="Living Room" diff --git a/bundles/org.openhab.binding.oppo/README.md b/bundles/org.openhab.binding.oppo/README.md index 3b59413c4d534..4f0c5386b2c4b 100644 --- a/bundles/org.openhab.binding.oppo/README.md +++ b/bundles/org.openhab.binding.oppo/README.md @@ -2,7 +2,9 @@ This binding can be used to control the Oppo UDP-203/205 or BDP-83/93/95/103/105 Blu-ray player. Almost all features of the various models of this player line are supported by the binding. -Please review the notes below for some important usage caveats. +This binding was tested on a BDP-103 only, so there might be issues with other models that will need to be fixed. +Please report any issues found. +Also review the notes below for some important usage caveats. The binding supports three different kinds of connections: @@ -160,15 +162,13 @@ Number oppo_osd_position "OSD Position [%s]" { channel="oppo:player:myoppo:osd_p Number oppo_sub_shift "Subtitle Shift [%s]" { channel="oppo:player:myoppo:sub_shift" } String oppo_hdmi_mode "HDMI Mode [%s]" { channel="oppo:player:myoppo:hdmi_mode" } String oppo_hdr_mode "HDR Mode [%s]" { channel="oppo:player:myoppo:hdr_mode" } -String oppo_remote_button "Remote Button [%s]" { channel="oppo:player:myoppo:remote_button", autoupdate="false" } +String oppo_remote_button "Remote Button [%s]" { channel="oppo:player:myoppo:remote_button" } ``` secondsformat.js: ```javascript -(function(timestamp) { - var totalSeconds = Date.parse(timestamp) / 1000 - +(function(totalSeconds) { if (isNaN(totalSeconds)) { return '-'; } else { @@ -228,78 +228,74 @@ sitemap oppo label="Oppo Blu-ray" { ### Appendix A - 'remote_button' codes: -| Command | Function | -|---------|-----------------------------------------------------------------------------| -| POW | Toggle power ON and OFF | -| SRC | Select input source | -| EJT | Open/close the disc tray | -| PON | Discrete on | -| POF | Discrete off | -| SYS | Switch output TV system (PAL/NTSC/MULTI) | -| DIM | Dim front panel display | -| PUR | Pure audio mode (no video) | -| VUP | Increase volume | -| VDN | Decrease volume | -| MUT | Mute/Unmute audio | -| NU1 | Numeric key 1 | -| NU2 | Numeric key 2 | -| NU3 | Numeric key 3 | -| NU4 | Numeric key 4 | -| NU5 | Numeric key 5 | -| NU6 | Numeric key 6 | -| NU7 | Numeric key 7 | -| NU8 | Numeric key 8 | -| NU9 | Numeric key 9 | -| NU0 | Numeric key 0 | -| CLR | Clear numeric input | -| GOT | Play from a specified location | -| HOM | Go to Home Menu to select media source | -| PUP | Show previous page | -| PDN | Show next page | -| OSD | Show/hide on-screen display | -| TTL | Show BD top menu or DVD title menu | -| MNU | Show BD pop-up menu or DVD menu | -| NUP | Up Arrow Navigation | -| NLT | Left Arrow Navigation | -| NRT | Right Arrow Navigation | -| NDN | Down Arrow Navigation | -| SEL | ENTER Navigation | -| SET | Enter the player setup menu | -| RET | Return to the previous menu or mode | -| RED | RED Function varies by content | -| GRN | GREEN Function varies by content | -| BLU | BLUE Function varies by content | -| YLW | YELLOW Function varies by content | -| STP | Stop playback | -| PLA | Start playback | -| PAU | Pause playback | -| PRE | Skip to previous | -| REV | Fast reverse play | -| FWD | Fast forward play | -| NXT | Skip to next | -| AUD | Change audio language or channel | -| SUB | Change subtitle language | -| ANG | Change camera angle | -| ZOM | Zoom in/out and adjust aspect ratio | -| SAP | Turn on/off Secondary Audio Program | -| ATB | AB Repeat play the selected section | -| RPT | Repeat play | -| PIP | Show/hide Picture-in-Picture | -| HDM | Switch output resolution | -| SUH | Press and hold the SUBTITLE key. This activates the subtitle shift feature. | -| NFX | Stop current playback and start the Netflix application | -| VDU | Stop current playback and start the VUDU application | -| OPT | Show/hide the Option menu | -| M3D | 3D Show/hide the 2D-to-3D Conversion or 3D adjustment menu | -| SEH | Display the Picture Adjustment menu | -| DRB | Display the Darbee Adjustment menu | +POW Toggle power ON and OFF +SRC Select input source +EJT Open/close the disc tray +PON Discrete on +POF Discrete off +SYS Switch output TV system (PAL/NTSC/MULTI) +DIM Dim front panel display +PUR Pure audio mode (no video) +VUP Increase volume +VDN Decrease volume +MUT Mute/Unmute audio +NU1 Numeric key 1 +NU2 Numeric key 2 +NU3 Numeric key 3 +NU4 Numeric key 4 +NU5 Numeric key 5 +NU6 Numeric key 6 +NU7 Numeric key 7 +NU8 Numeric key 8 +NU9 Numeric key 9 +NU0 Numeric key 0 +CLR Clear numeric input +GOT Play from a specified location +HOM Go to Home Menu to select media source +PUP Show previous page +PDN Show next page +OSD Show/hide on-screen display +TTL Show BD top menu or DVD title menu +MNU Show BD pop-up menu or DVD menu +NUP Up Arrow Navigation +NLT Left Arrow Navigation +NRT Right Arrow Navigation +NDN Down Arrow Navigation +SEL ENTER Navigation +SET Enter the player setup menu +RET Return to the previous menu or mode +RED RED Function varies by content +GRN GREEN Function varies by content +BLU BLUE Function varies by content +YLW YELLOW Function varies by content +STP Stop playback +PLA Start playback +PAU Pause playback +PRE Skip to previous +REV Fast reverse play +FWD Fast forward play +NXT Skip to next +AUD Change audio language or channel +SUB Change subtitle language +ANG Change camera angle +ZOM Zoom in/out and adjust aspect ratio +SAP Turn on/off Secondary Audio Program +ATB AB Repeat play the selected section +RPT Repeat play +PIP Show/hide Picture-in-Picture +HDM Switch output resolution +SUH Press and hold the SUBTITLE key. This activates the subtitle shift feature +NFX Stop current playback and start the Netflix application +VDU Stop current playback and start the VUDU application +OPT Show/hide the Option menu +M3D 3D Show/hide the 2D-to-3D Conversion or 3D adjustment menu +SEH Display the Picture Adjustment menu +DRB Display the Darbee Adjustment menu #### Extra buttons on UDP models: -| Command | Function | -|---------|-------------------------------------------------------------------------------------| -| HDR | Display the HDR selection menu | -| INH | Show on-screen detailed information | -| RLH | Set resolution to Auto | -| AVS | Display the A/V Sync adjustment menu | -| GPA | Gapless Play. This functions the same as selecting Gapless Play in the Option Menu. | +HDR Display the HDR selection menu +INH Show on-screen detailed information +RLH Set resolution to Auto +AVS Display the A/V Sync adjustment menu +GPA Gapless Play. This functions the same as selecting Gapless Play in the Option Menu. diff --git a/bundles/org.openhab.binding.paradoxalarm/README.md b/bundles/org.openhab.binding.paradoxalarm/README.md index 20be7230d3cdd..8f449875ef8fb 100644 --- a/bundles/org.openhab.binding.paradoxalarm/README.md +++ b/bundles/org.openhab.binding.paradoxalarm/README.md @@ -76,8 +76,7 @@ Currently binding supports the following panels: EVO192, EVO48(not tested), EVO9 | Channel | Type | Description | |--------------------------|---------|-----------------------------------------------------------------------------------------------| | partitionLabel | String | Label of partition inside Paradox configuration | -| state | String | Calculated overall state of the partition (Armed, Disarmed, In Alarm) | -| detailedState | String | Calculated detailed state of the partition based on partition state bits (see below table for possible values) | +| state | String |State of partition (armed, disarmed, in alarm) | | additionalState | String | This used to be a channel where all different states were consolidated as semi-colon separated string. With implementation of each state as channel additional states should be no longer used. (deprecated channel) | | readyToArm | Switch | Partition is Ready to arm | | inExitDelay | Switch | Partition is in Exit delay | @@ -96,30 +95,13 @@ Currently binding supports the following panels: EVO192, EVO48(not tested), EVO9 | allZonesClosed | Contact | All zones in partition are currently closed | | command | String | Command to be send to partition. Can be (ARM, DISARM, FORCE_ARM, INSTANT_ARM, STAY_ARM, BEEP) | -### Partition detailed state possible values: -| Overall state value | Detailed state value (depending on the sub-state) | -|--------------------------|----------------------------------------------------------------------------------------------| -| InAlarm | Silent Alarm, Audible Alarm, Fire Alarm, In Alarm (if none of the first three) | -| Armed | Away Armed, Stay Armed, NoEntry Armed, Armed (if none of the first three) | -| Disarmed | Disarmed | - ### Zone channels: -| Channel | Type | Description | -|------------------------------------|---------|--------------------------------------------------------------------------------| -| zoneLabel | String | Label of zone inside Paradox configuration | -| openedState | Contact | Zone opened / closed | -| tamperedState | Switch | Zone is tampered | -| supervisionTrouble | Switch | Zone is in supervision trouble | -| inTxDelay | Switch | Zone is in txDelay | -| shutdown | Switch | Zone is shutdown | -| bypassed | Switch | Zone is bypassed | -| hasActivatedIntellizoneDelay | Switch | Zone is has an activated Intellizone delay | -| hasActivatedEntryDelay | Switch | Zone is has an activated entry delay | -| presentlyInAlarm | Switch | Zone is currently in alarm | -| generatedAlarm | Switch | Zone has generated an alarm | -| command | String | Command for zone. Can be (BYPASS, CLEAR_BYPASS) | - +| Channel | Type | Description | +|-----------------|---------|--------------------------------------------------------------------------------| +| zoneLabel | String | Label of zone inside Paradox configuration | +| openedState | Contact | Zone opened / closed | +| tamperedState | Switch | Zone is tampered / not tampered | ## Example things configuration diff --git a/bundles/org.openhab.binding.plugwise/README.md b/bundles/org.openhab.binding.plugwise/README.md index 6d9bc055ddf9b..0a4e805cf20f3 100644 --- a/bundles/org.openhab.binding.plugwise/README.md +++ b/bundles/org.openhab.binding.plugwise/README.md @@ -1,6 +1,6 @@ # Plugwise Binding -The Plugwise binding adds support to openHAB for [Plugwise](https://www.plugwise.com) Zigbee devices using the Stick. +The Plugwise binding adds support to openHAB for [Plugwise](https://www.plugwise.com) ZigBee devices using the Stick. Users should use the Plugwise Source software to define the network, reset devices or perform firmware upgrades. @@ -14,11 +14,11 @@ The binding supports the following Plugwise devices: | Device Type | Description | Thing Type | |-------------|------------------------------------------------------------------------------------------|------------| | Circle | A power outlet plug that provides energy measurement and switching control of appliances | circle | -| Circle+ | A special Circle that coordinates the Zigbee network and acts as network gateway | circleplus | +| Circle+ | A special Circle that coordinates the ZigBee network and acts as network gateway | circleplus | | Scan | A wireless motion (PIR) and light sensor | scan | | Sense | A wireless temperature and humidity sensor | sense | | Stealth | A Circle with a more compact form factor that can be built-in | stealth | -| Stick | A Zigbee USB controller that openHAB uses to communicate with the Circle+ | stick | +| Stick | A ZigBee USB controller that openHAB uses to communicate with the Circle+ | stick | | Switch | A wireless wall switch | switch | ## Discovery @@ -44,7 +44,7 @@ Similarly the MAC addresses of the Scan, Sense and Switch can also be obtained f | Configuration Parameter | Required | Default | Description | |-------------------------|----------|--------------|-----------------------------------------------------------------------------------| | serialPort | X | /dev/ttyUSB0 | The serial port of the Stick, e.g. "/dev/ttyUSB0" for Linux or "COM1" for Windows | -| messageWaitTime | | 150 | The time to wait between messages sent on the Zigbee network (in ms) | +| messageWaitTime | | 150 | The time to wait between messages sent on the ZigBee network (in ms) | To determine the serial port in Linux, insert the Stick, then execute the `dmesg` command. The last few lines of the output will contain the USB port of the Stick (e.g. `/dev/ttyUSB0`). @@ -60,7 +60,7 @@ To access the serial port of the Stick on Linux, the user running openHAB needs | powerStateChanging | | commandSwitching | Controls if the power state can be changed with commands or is always on/off (commandSwitching, alwaysOn or alwaysOff) | | suppliesPower | | false | Enables power production measurements (true or false) | | measurementInterval | | 60 | The energy measurement interval (in minutes) (5 to 60) | -| temporarilyNotInNetwork | | false | Stops searching for an unplugged device on the Zigbee network traffic (true or false) | +| temporarilyNotInNetwork | | false | Stops searching for an unplugged device on the ZigBee network traffic (true or false) | ### Scan diff --git a/bundles/org.openhab.binding.plugwiseha/README.md b/bundles/org.openhab.binding.plugwiseha/README.md index 093da9c8184ba..434df6714c371 100644 --- a/bundles/org.openhab.binding.plugwiseha/README.md +++ b/bundles/org.openhab.binding.plugwiseha/README.md @@ -1,15 +1,15 @@ # PlugwiseHA Binding -The Plugwise Home Automation binding adds support to openHAB for the [Plugwise Home Automation ecosystem](https://www.plugwise.com/en_US/adam_zone_control). +The Plugwise Home Automation binding adds support to openHAB for the [Plugwise Home Automation ecosystem](https://www.plugwise.com/en_US/adam_zone_control). This system is built around a gateway from Plugwise called the 'Adam' which incorporates a ZigBee controller to manage thermostatic radiator valves, room thermostats, floor heating pumps, et cetera. -Users can manage and control this system either via a web app or a mobile phone app developed by Plugwise. +Users can manage and control this system either via a web app or a mobile phone app developed by Plugwise. The (web) app allows users to define heating zone's (e.g. rooms) and add radiator valves to those rooms to manage and control their heating irrespective of other rooms. Using the Plugwise Home Automation binding you can incorporate the management of these devices and heating zones into openHAB. The binding uses the same RESTfull API that both the mobile phone app and the web app use. -The binding requires users to have a working Plugwise Home Automation setup consisting of at least 1 gateway device (the 'Adam') and preferably 1 radiator valve as a bare minimum. +The binding requires users to have a working Plugwise Home Automation setup consisting of at least 1 gateway device (the 'Adam') and preferably 1 radiator valve as a bare minimum. The 'Adam' (from hereon called the gateway) needs to be accessible from the openHAB instance via a TCP/IP connection. ## Supported Things @@ -24,19 +24,17 @@ The 'Adam' (from hereon called the gateway) needs to be accessible from the open | [Lisa](https://www.plugwise.com/en_US/products/lisa) | A room thermostat (also supports the 'Anna' room thermostat) | appliance_thermostat | | [Boiler] | A central boiler used for heating and/or domestic hot water | appliance_boiler | - - ## Discovery -After setting up the Plugwise Home Automation bridge you can start a manual scan to find all devices registered on the gateway. -You can also manually add things by entering the corresponding device id as a configuration parameter. +After setting up the Plugwise Home Automation bridge you can start a manual scan to find all devices registered on the gateway. +You can also manually add things by entering the corresponding device id as a configuration parameter. The device IDs can be found be enabling TRACE logging in the Karaf console. ## Thing Configuration You must define a Plugwise Home Automation gateway (Bridge) before defining zones or appliances (Things) for this binding to work. -#### Plugwise Home Automation gateway (Bridge): +### Plugwise Home Automation gateway (Bridge): | Parameter | Description | Config | Default | |-----------|-------------------------------------------------------------------------|----------|---------| @@ -45,34 +43,33 @@ You must define a Plugwise Home Automation gateway (Bridge) before defining zone | smileID | The 8 letter code on the sticker on the back of the Adam boiler gateway | Required | - | | refresh | The refresh interval in seconds | Optional | 15 | -#### Plugwise Home Automation zone (`zone`): +### Plugwise Home Automation zone (`zone`): | Parameter | Description | Config | Default | | --------- | ------------------------- | -------- | ------- | | id | The unique ID of the zone | Required | - | -#### Plugwise Home Automation appliance (`appliance_valve`): +### Plugwise Home Automation appliance (`appliance_valve`): | Parameter | Description | Config | Default | |----------------------|--------------------------------------------------------------------------------------------------------------------|----------|---------| | id | The unique ID of the radiator valve appliance | Required | - | -| lowBatteryPercentage | Battery charge remaining at which to trigger battery low warning. (*Only applicable for battery operated devices*) | Optional | 15 | +| lowBatteryPercentage | Battery charge remaining at which to trigger battery low warning. (_Only applicable for battery operated devices_) | Optional | 15 | -#### Plugwise Home Automation appliance (`appliance_thermostat`): +### Plugwise Home Automation appliance (`appliance_thermostat`): | Parameter | Description | Config | Default | |----------------------|--------------------------------------------------------------------------------------------------------------------|----------|---------| | id | The unique ID of the room thermostat appliance | Required | - | -| lowBatteryPercentage | Battery charge remaining at which to trigger battery low warning. (*Only applicable for battery operated devices*) | Optional | 15 | +| lowBatteryPercentage | Battery charge remaining at which to trigger battery low warning. (_Only applicable for battery operated devices_) | Optional | 15 | - -#### Plugwise Home Automation appliance (`appliance_pump`): +### Plugwise Home Automation appliance (`appliance_pump`): | Parameter | Description | Config | Default | | --------- | ----------------------------------- | -------- | ------- | | id | The unique ID of the pump appliance | Required | - | -#### Plugwise Home Automation boiler (`appliance_boiler`): +### Plugwise Home Automation boiler (`appliance_boiler`): | Parameter | Description | Config | Default | |-----------|-----------------------------|----------|---------| @@ -85,7 +82,7 @@ You must define a Plugwise Home Automation gateway (Bridge) before defining zone | temperature | Number:Temperature | Yes | The temperature of an appliance that supports the thermostat functionality | | setpointTemperature | Number:Temperature | No | The setpoint temperature (read/write) of an appliance that supports the thermostat functionality | | power | Switch | No | Toggle an appliance ON/OFF that supports the relay functionality | -| lock | Switch | No | Toggle an appliance lock ON/OFF that supports the relay functionality.(*When the lock is ON the gateway will not automatically control the corresponding relay switch depending on thermostat mode*) | +| lock | Switch | No | Toggle an appliance lock ON/OFF that supports the relay functionality.(_When the lock is ON the gateway will not automatically control the corresponding relay switch depending on thermostat mode_) | | powerUsage | Number:Power | Yes | The current power usage in Watts of an appliance that supports this | | batteryLevel | Number | Yes | The current battery level of an appliance that is battery operated | | batteryLevelLow | Switch | Yes | Switches ON when the battery level of an appliance that is battery operated drops below a certain threshold | @@ -112,23 +109,23 @@ You must define a Plugwise Home Automation gateway (Bridge) before defining zone ## Full Example -**things/plugwiseha.things** +### plugwiseha.things -``` +```java Bridge plugwiseha:gateway:home "Plugwise Home Automation Gateway" [ smileId="abcdefgh" ] { - Thing zone living_room_zone "Living room" [ id="$device_id" ] - Thing appliance_valve living_room_radiator "Living room radiator valve" [ id="$device_id" ] - Thing appliance_thermostat living_room_thermostat "Living room thermostat" [ id="$device_id" ] - Thing appliance_pump living_room_pump "Floor heating pump" [ id="$device_id" ] - Thing appliance_boiler main_boiler "Main boiler" [ id="$device_id" ] + Thing zone living_room_zone "Living room" [ id="$device_id" ] + Thing appliance_valve living_room_radiator "Living room radiator valve" [ id="$device_id" ] + Thing appliance_thermostat living_room_thermostat "Living room thermostat" [ id="$device_id" ] + Thing appliance_pump living_room_pump "Floor heating pump" [ id="$device_id" ] + Thing appliance_boiler main_boiler "Main boiler" [ id="$device_id" ] } ``` Replace `$device_id` accordingly. -**items/plugwiseha.items** +### plugwiseha.items -``` +```java Number:Temperature living_room_zone_temperature "Zone temperature" {channel="plugwiseha:zone:home:living_room_zone:temperature"} Number:Temperature living_room_zone_temperature_setpoint "Zone temperature setpoint" {channel="plugwiseha:zone:home:living_room_zone:setpointTemperature"} String living_room_zone_preset_scene "Zone preset scene" {channel="plugwiseha:zone:home:living_room_zone:presetScene"} @@ -148,9 +145,9 @@ Switch living_room_pump_power "Floor heating pump power" {channel="plugwiseha:ap Switch living_room_pump_lock "Floor heating pump lock [MAP:(plugwiseha.map):%s]" {channel="plugwiseha:appliance_pump:home:living_room_pump:lock"} Number:Power living_room_pump_power_usage "Floor heating pump power [%0.2fW]" {channel="plugwiseha:appliance_pump:home:living_room_pump:powerUsage"} -Number:Pressure main_boiler_waterpressure "Waterpressure" { channel="plugwiseha:appliance_boiler:home:main_boiler:waterPressure"} -Switch main_boiler_chState "Heating active" { channel="plugwiseha:appliance_boiler:home:main_boiler:chState"} -Switch main_boiler_dhwState "Domestic hot water active" { channel="plugwiseha:appliance_boiler:home:main_boiler:dhwState"} +Number:Pressure main_boiler_waterpressure "Waterpressure" { channel="plugwiseha:appliance_boiler:home:main_boiler:waterPressure"} +Switch main_boiler_chState "Heating active" { channel="plugwiseha:appliance_boiler:home:main_boiler:chState"} +Switch main_boiler_dhwState "Domestic hot water active" { channel="plugwiseha:appliance_boiler:home:main_boiler:dhwState"} Switch main_boiler_coolingState "Cooling state" { channel="plugwiseha:appliance_boiler:home:main_boiler:coolingState"} Number:Temperature main_boiler_intendedBoilerTemp "Intended boiler temperature" {channel="plugwiseha:appliance_boiler:home:main_boiler:intendedBoilerTemp"} @@ -167,55 +164,55 @@ Switch main_boiler_dhwComfortMode "DHW comfort mode" { channel="plugwiseha:appli Number:Temperature main_boiler_returnTemperature "Boiler return temperature" {channel="plugwiseha:appliance_boiler:home:main_boiler:returnWaterTemperature"} ``` -**transform/plugwiseha.map** +### plugwiseha.map -``` +```text ON=Locked OFF=Unlocked ``` -**sitemaps/plugwiseha.sitemap** +### plugwiseha.sitemap -``` +```perl sitemap plugwiseha label="PlugwiseHA Binding" { - Frame { - Text item=living_room_zone_temperature - Setpoint item=living_room_zone_temperature_setpoint label="Living room [%.1f °C]" minValue=5.0 maxValue=25 step=0.5 - Text item=living_room_zone_presetScene - Switch item=living_room_zone_preheat - Text item=living_room_zone_regulation_control - Switch item=living_room_zone_cooling - - Text item=living_room_radiator_temperature - Setpoint item=living_room_radiator_temperature_setpoint label="Living room [%.1f °C]" minValue=5.0 maxValue=25 step=0.5 - Text item=living_room_radiator_valve_position - - Text item=living_room_thermostat_temperature - Setpoint item=living_room_thermostat_temperature_setpoint label="Living room [%.1f °C]" minValue=5.0 maxValue=25 step=0.5 - Setpoint item=living_room_thermostat_temperature_offset label="Living room offset [%.1f °C]" minValue=-5.0 maxValue=5 step=0.5 - - Number item=living_room_pump_power_usage - Switch item=living_room_pump_power - Switch item=living_room_pump_lock - - Number item=main_boiler_waterpressure - Switch item=main_boiler_chState - Switch item=main_boiler_dhwState - - Switch item=main_boiler_coolingState - Number item=main_boiler_intendedBoilerTemp - Switch item=main_boiler_flameState - Switch item=main_boiler_intendedHeatingState - Number item=main_boiler_modulationLevel - Number item=main_boiler_otAppFaultCode - Number item=main_boiler_dhwTemperature - Number item=main_boiler_otOEMFaultCode - Number item=main_boiler_boilerTemperature - Number item=main_boiler_dhwSetpoint - Number item=main_boiler_maxBoilerTemperature - Switch item=main_boiler_dhwComfortMode + Frame { + Text item=living_room_zone_temperature + Setpoint item=living_room_zone_temperature_setpoint label="Living room [%.1f °C]" minValue=5.0 maxValue=25 step=0.5 + Text item=living_room_zone_presetScene + Switch item=living_room_zone_preheat + Text item=living_room_zone_regulation_control + Switch item=living_room_zone_cooling + + Text item=living_room_radiator_temperature + Setpoint item=living_room_radiator_temperature_setpoint label="Living room [%.1f °C]" minValue=5.0 maxValue=25 step=0.5 + Text item=living_room_radiator_valve_position + + Text item=living_room_thermostat_temperature + Setpoint item=living_room_thermostat_temperature_setpoint label="Living room [%.1f °C]" minValue=5.0 maxValue=25 step=0.5 + Setpoint item=living_room_thermostat_temperature_offset label="Living room offset [%.1f °C]" minValue=-5.0 maxValue=5 step=0.5 + + Number item=living_room_pump_power_usage + Switch item=living_room_pump_power + Switch item=living_room_pump_lock + + Number item=main_boiler_waterpressure + Switch item=main_boiler_chState + Switch item=main_boiler_dhwState + + Switch item=main_boiler_coolingState + Number item=main_boiler_intendedBoilerTemp + Switch item=main_boiler_flameState + Switch item=main_boiler_intendedHeatingState + Number item=main_boiler_modulationLevel + Number item=main_boiler_otAppFaultCode + Number item=main_boiler_dhwTemperature + Number item=main_boiler_otOEMFaultCode + Number item=main_boiler_boilerTemperature + Number item=main_boiler_dhwSetpoint + Number item=main_boiler_maxBoilerTemperature + Switch item=main_boiler_dhwComfortMode Number item=main_boiler_returnTemperature - } + } } ``` diff --git a/bundles/org.openhab.binding.powermax/README.md b/bundles/org.openhab.binding.powermax/README.md index 300d14864ae7f..70806e4e2bd11 100644 --- a/bundles/org.openhab.binding.powermax/README.md +++ b/bundles/org.openhab.binding.powermax/README.md @@ -82,7 +82,7 @@ Some notes: - On Linux, you may get an error stating the serial port cannot be opened when the Powermax binding tries to load. You can get around this by adding the `openhab` user to the `dialout` group like this: `usermod -a -G dialout openhab`. - Also on Linux you may have issues with the USB if using two serial USB devices e.g. Powermax and RFXcom. - See the [general documentation about serial port configuration](/docs/administration/serial.html) for more on symlinking the USB ports. +See the [general documentation about serial port configuration](/docs/administration/serial.html) for more on symlinking the USB ports. ### X10 device diff --git a/bundles/org.openhab.binding.qolsysiq/README.md b/bundles/org.openhab.binding.qolsysiq/README.md index 7be0e7fe23ef4..998492a38d86d 100644 --- a/bundles/org.openhab.binding.qolsysiq/README.md +++ b/bundles/org.openhab.binding.qolsysiq/README.md @@ -4,9 +4,9 @@ This binding directly controls a [Qolsys IQ](https://qolsys.com/security/) secur This allows for local monitoring of alarm and zone statuses as well as arming, disarming and triggering alarms. Qolsys (a division of Johnson Controls) is a popular manufacturer of alarm systems. -The Qolsys IQ line of panels supports both wireless and hard wire sensors and features built in Cellular and Wi-Fi dual path communication that natively integrates with Alarm.com monitoring and supervision. +The Qolsys IQ line of panels supports both wireless and hard wire sensors and features built in Cellular and Wi-Fi dual path communication that natively integrates with Alarm.com monitoring and supervision. -This binding directly interfaces with the panel and does not require cloud access. +This binding directly interfaces with the panel and does not require cloud access. ![Qolsys IQ 4](doc/qolsysiq4.png) @@ -29,7 +29,7 @@ To enable 3rd party control and retrieve the access token follow the following s `Settings` --> `Advanced Settings` --> `Installation` --> `Devices` --> `Wi-Fi Devices` --> `Control4` (set to enabled) - *Panel will reboot* +Panel will _reboot_ `Settings` --> `Advanced Settings` --> `Installation` --> `Devices` --> `Wi-Fi Devices` --> `Reveal Secure Token` (copy token to use in panel configuration) @@ -84,7 +84,7 @@ None. ### Zone Channels -| Channel | Type | Read/Write | Description | State Options | +| Channel | Type | Read/Write | Description | State Options | |---------|---------|------------|------------------------|---------------------------------------------| | status | String | R | The zone status | ACTIVE, CLOSED, OPEN, FAILURE, IDLE, TAMPER | | state | Number | R | The zone state | Number | @@ -94,7 +94,7 @@ None. ### qolsysiq.things -``` +```java Bridge qolsysiq:panel:home "Home Security Panel" [ hostname="192.168.3.123", port=12345, key="AAABBB00" ] { Bridge partition 0 "Partition Main" [ id=0, armCode="123456" ] { Thing zone 1 "Window" [ id=1 ] @@ -107,7 +107,7 @@ Bridge qolsysiq:panel:home "Home Security Panel" [ hostname="192.168.3.123", por Sample items file with both Alexa and Homekit voice control -``` +```java Group PartitionMain "Alarm System" ["Equipment"] {alexa="SecurityPanel", homekit = "SecuritySystem"} String PartitionMain_PartitionArmState "Partition Arm State" (PartitionMain) ["Point"] {channel="qolsysiq:partition:home:0:armState", alexa="ArmState" [DISARMED="DISARM",ARMED_STAY="ARM_STAY",ARMED_AWAY="ARM_AWAY:EXIT_DELAY"], homekit = "SecuritySystem.CurrentSecuritySystemState,SecuritySystem.TargetSecuritySystemState" [STAY_ARM="ARM_STAY", AWAY_ARM="ARM_AWAY", DISARM="DISARM", DISARMED="DISARM", TRIGGERED="ALARM"]} String PartitionMain_PartitionAlarmState "Partition Alarm State" (PartitionMain) ["Point"] {channel="qolsysiq:partition:home:0:alarmState"} diff --git a/bundles/org.openhab.binding.radiothermostat/README.md b/bundles/org.openhab.binding.radiothermostat/README.md index eb918c40e5bbc..1e4b053cef0fc 100644 --- a/bundles/org.openhab.binding.radiothermostat/README.md +++ b/bundles/org.openhab.binding.radiothermostat/README.md @@ -6,7 +6,6 @@ Thermostats using a Z-Wave module are not supported but can be used via the open The binding retrieves and periodically updates all basic system information from the thermostat. The main thermostat functions such as thermostat mode, fan mode, temperature set point and hold mode can be controlled. System run-time information and humidity readings are polled less frequently and can be disabled completely if not desired. -The heating and cooling program schedules on the thermostat can also be configured. ## Supported Things @@ -19,6 +18,10 @@ Multiple Things can be added if more than one thermostat is to be controlled. Auto-discovery is supported if the thermostat can be located on the local network using SSDP. Otherwise the thing must be manually added. +## Binding Configuration + +The binding has no configuration options, all configuration is done at Thing level. + ## Thing Configuration The thing has a few configuration parameters: @@ -31,42 +34,15 @@ The thing has a few configuration parameters: | isCT80 | Flag to enable additional features only available on the CT80 thermostat. Optional, the default is false. | | disableLogs | Disable retrieval of run-time logs from the thermostat. Optional, the default is false. | | setpointMode | Controls temporary or absolute setpoint mode. In "temporary" mode the thermostat will temporarily maintain the given setpoint until the next scheduled setpoint time period. In "absolute" mode the thermostat will ignore its program and maintain the given setpoint indefinitely. Optional, the default is "temporary". | -| clockSync | Flag to enable the binding to sync the internal clock on the thermostat to match the openHAB host's system clock. Sync occurs at binding startup and every hour thereafter. Optional, the default is **true**. | - -### Schedule Configuration - -The heating and cooling program schedules that persist on the thermostat can be configured by the binding. -Click the 'Show advanced' checkbox on the Thing configuration page to display the schedule. -For both the heating and cooling programs, the 7-day repeating schedule has 4 setpoint periods per day (Morning, Day, Evening, Night). -In order for the heating or cooling program to be valid, all time and setpoint fields must be populated. -The time is expressed in 24-hour (HH:mm) format and the time value for each successive period within a day must be greater than the previous period. -Once the schedule is populated and the configuration saved, the new schedule will be sent to the thermostat each time the binding is initialized, overwriting its existing schedule. -If the thermostat's current setpoint was overridden, it will be reset to the applicable program setpoint. - -If one or more time or setpoint fields are left blank in a given schedule and the configuration saved, the Thing will display a configuration error until the entries are corrected. -A heating or cooling schedule with all fields left blank will be ignored by the binding. -In that case, the existing schedule on the thermostat will remain untouched. - -The MyRadioThermostat/EnergyHub cloud service that previously enabled remote control and scheduling of the thermostat is now defunct. -As such, disabling cloud connectivity on a thermostat that was previously connected to the cloud service may slightly improve the speed and reliability of accessing the local API. +| clockSync | Flag to enable the binding to sync the internal clock on the thermostat to match the openHAB host's system clock. Use if the thermostat is not setup to connect to the manufacturer's cloud server. Sync occurs at binding startup and every hour thereafter. Optional, the default is false. | -The thermostat can de-provisioned from the cloud by issuing the following `curl` commands: - -```shell -curl http://$THERMOSTAT_IP/cloud -d '{"enabled":0}' -X POST -curl http://$THERMOSTAT_IP/cloud -d '{"authkey":""}' -X POST -``` - -### Some notes +Some notes: - The main caveat for using this binding is to keep in mind that the web server in the thermostat is very slow. Do not over load it with excessive amounts of simultaneous commands. - When changing the thermostat mode, the current temperature set point is cleared and a refresh of the thermostat data is done to get the new mode's set point. - Since retrieving the thermostat's data is the slowest operation, it will take several seconds after changing the mode before the new set point is displayed. -- Clock sync will not occur if `override` flag is on (i.e. the program setpoint has been manually overridden) because syncing time will reset the temperature back to the program setpoint. -- The `override` flag is not reported correctly on older thermostat versions (i.e. /tstat/model reports v1.09) - The 'Program Mode' command is untested and according to the published API is only available on a CT80 Rev B. - Humidity information is available only when using a CT80 thermostat. -- If `remote_temp` or `message` channels are used, their values in the thermostat will be cleared during binding shutdown. ## Channels @@ -93,7 +69,6 @@ The thermostat information that is retrieved is available as these channels: | today_cool_runtime | Number:Time | The total number of minutes of cooling run-time today | | yesterday_heat_runtime | Number:Time | The total number of minutes of heating run-time yesterday | | yesterday_cool_runtime | Number:Time | The total number of minutes of cooling run-time yesterday | -| message | String (Write Only) | Used to display a number in the upper left 'price message' area of the thermostat's screen where the time is normally displayed | ## Full Example @@ -164,16 +139,15 @@ Number Therm_FanStatus "Fan Status [MAP(radiotherm.map):%s_fstus]" Number Therm_Override "Override [MAP(radiotherm.map):%s_over]" { channel="radiothermostat:rtherm:mytherm1:override" } Switch Therm_Hold "Hold" { channel="radiothermostat:rtherm:mytherm1:hold" } -Number Therm_Day "Thermostat Day [%d]" { channel="radiothermostat:rtherm:mytherm1:day" } -Number Therm_Hour "Thermostat Hour [%d]" { channel="radiothermostat:rtherm:mytherm1:hour" } -Number Therm_Minute "Thermostat Minute [%d]" { channel="radiothermostat:rtherm:mytherm1:minute" } +Number Therm_Day "Thermostat Day [%s]" { channel="radiothermostat:rtherm:mytherm1:day" } +Number Therm_Hour "Thermostat Hour [%s]" { channel="radiothermostat:rtherm:mytherm1:hour" } +Number Therm_Minute "Thermostat Minute [%s]" { channel="radiothermostat:rtherm:mytherm1:minute" } String Therm_Dstmp "Thermostat DateStamp [%s]"