]> git.basschouten.com Git - openhab-addons.git/commitdiff
[Documentation] Markdown improvements n to s (#13948)
authorJerome Luckenbach <github@luckenba.ch>
Wed, 14 Dec 2022 15:52:43 +0000 (16:52 +0100)
committerGitHub <noreply@github.com>
Wed, 14 Dec 2022 15:52:43 +0000 (16:52 +0100)
Signed-off-by: Jerome Luckenbach <github@luckenba.ch>
106 files changed:
bundles/org.openhab.binding.nanoleaf/README.md
bundles/org.openhab.binding.neato/README.md
bundles/org.openhab.binding.neeo/README.md
bundles/org.openhab.binding.neohub/README.md
bundles/org.openhab.binding.nest/README.md
bundles/org.openhab.binding.netatmo/README.md
bundles/org.openhab.binding.network/README.md
bundles/org.openhab.binding.networkupstools/README.md
bundles/org.openhab.binding.nibeheatpump/README.md
bundles/org.openhab.binding.nibeuplink/README.md
bundles/org.openhab.binding.nikobus/README.md
bundles/org.openhab.binding.nikohomecontrol/README.md
bundles/org.openhab.binding.nobohub/README.md
bundles/org.openhab.binding.novafinedust/README.md
bundles/org.openhab.binding.ntp/README.md
bundles/org.openhab.binding.nuki/README.md
bundles/org.openhab.binding.nuvo/README.md
bundles/org.openhab.binding.nzwateralerts/README.md
bundles/org.openhab.binding.oceanic/README.md
bundles/org.openhab.binding.ojelectronics/README.md
bundles/org.openhab.binding.omnikinverter/README.md
bundles/org.openhab.binding.omnilink/README.md
bundles/org.openhab.binding.onebusaway/README.md
bundles/org.openhab.binding.onewire/README.md
bundles/org.openhab.binding.onewiregpio/README.md
bundles/org.openhab.binding.onkyo/README.md
bundles/org.openhab.binding.opengarage/README.md
bundles/org.openhab.binding.opensprinkler/README.md
bundles/org.openhab.binding.openthermgateway/README.md
bundles/org.openhab.binding.openuv/README.md
bundles/org.openhab.binding.openweathermap/README.md
bundles/org.openhab.binding.openwebnet/README.md
bundles/org.openhab.binding.oppo/README.md
bundles/org.openhab.binding.orbitbhyve/README.md
bundles/org.openhab.binding.orvibo/README.md
bundles/org.openhab.binding.paradoxalarm/README.md
bundles/org.openhab.binding.pentair/README.md
bundles/org.openhab.binding.phc/README.md
bundles/org.openhab.binding.pilight/README.md
bundles/org.openhab.binding.pioneeravr/README.md
bundles/org.openhab.binding.pixometer/README.md
bundles/org.openhab.binding.pjlinkdevice/README.md
bundles/org.openhab.binding.playstation/README.md
bundles/org.openhab.binding.plclogo/README.md
bundles/org.openhab.binding.plugwise/README.md
bundles/org.openhab.binding.plugwiseha/README.md
bundles/org.openhab.binding.powermax/README.md
bundles/org.openhab.binding.proteusecometer/README.md
bundles/org.openhab.binding.prowl/README.md
bundles/org.openhab.binding.publictransportswitzerland/README.md
bundles/org.openhab.binding.pulseaudio/README.md
bundles/org.openhab.binding.pushbullet/README.md
bundles/org.openhab.binding.pushover/README.md
bundles/org.openhab.binding.qbus/README.md
bundles/org.openhab.binding.qolsysiq/README.md
bundles/org.openhab.binding.radiothermostat/README.md
bundles/org.openhab.binding.regoheatpump/README.md
bundles/org.openhab.binding.remoteopenhab/README.md
bundles/org.openhab.binding.renault/README.md
bundles/org.openhab.binding.resol/README.md
bundles/org.openhab.binding.revogi/README.md
bundles/org.openhab.binding.rfxcom/README.md
bundles/org.openhab.binding.rfxcom/RESPONSES.md
bundles/org.openhab.binding.rme/README.md
bundles/org.openhab.binding.robonect/README.md
bundles/org.openhab.binding.roku/README.md
bundles/org.openhab.binding.rotel/README.md
bundles/org.openhab.binding.russound/README.md
bundles/org.openhab.binding.sagercaster/README.md
bundles/org.openhab.binding.samsungtv/README.md
bundles/org.openhab.binding.satel/README.md
bundles/org.openhab.binding.semsportal/README.md
bundles/org.openhab.binding.senechome/README.md
bundles/org.openhab.binding.seneye/README.md
bundles/org.openhab.binding.sensebox/README.md
bundles/org.openhab.binding.sensibo/README.md
bundles/org.openhab.binding.serial/README.md
bundles/org.openhab.binding.serialbutton/README.md
bundles/org.openhab.binding.shelly/README.md
bundles/org.openhab.binding.siemensrds/README.md
bundles/org.openhab.binding.silvercrestwifisocket/README.md
bundles/org.openhab.binding.sinope/README.md
bundles/org.openhab.binding.sleepiq/README.md
bundles/org.openhab.binding.smartmeter/README.md
bundles/org.openhab.binding.smartthings/README.md
bundles/org.openhab.binding.smhi/README.md
bundles/org.openhab.binding.smsmodem/README.md
bundles/org.openhab.binding.sncf/README.md
bundles/org.openhab.binding.snmp/README.md
bundles/org.openhab.binding.solaredge/README.md
bundles/org.openhab.binding.solarlog/README.md
bundles/org.openhab.binding.solarmax/README.md
bundles/org.openhab.binding.solarwatt/README.md
bundles/org.openhab.binding.somfymylink/README.md
bundles/org.openhab.binding.somfytahoma/README.md
bundles/org.openhab.binding.somneo/README.md
bundles/org.openhab.binding.sonnen/README.md
bundles/org.openhab.binding.sonos/README.md
bundles/org.openhab.binding.sonyaudio/README.md
bundles/org.openhab.binding.sonyprojector/README.md
bundles/org.openhab.binding.souliss/README.md
bundles/org.openhab.binding.spotify/README.md
bundles/org.openhab.binding.squeezebox/README.md
bundles/org.openhab.binding.surepetcare/README.md
bundles/org.openhab.binding.synopanalyzer/README.md
bundles/org.openhab.binding.systeminfo/README.md

index 788ae2c239b83f791062d37eda4a0fc1951b7dae..74ff0a7bd7643d596b62fd13e331f93775c6b9a0 100644 (file)
@@ -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 [<thingUID>]
 ```
 
@@ -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://<address>: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
index 51668dbef6813c2d83d6c24c60cee0c6b7682f01..d17dc5ae0d4f6bdf4321d3f5af53888fa4768946 100644 (file)
@@ -2,16 +2,16 @@
 
 This binding is used to connect your openHAB system with Neato web (where you log in and find Your Neato's).
 The binding supports discovery via configuring your login and password to a bridge.
-From the binding, you will get status of your vacuum cleaners and also a command channel where you can control them. Since the binding uses a polling mechanism, there may be some latency depending on your setting regarding refresh time. 
+From the binding, you will get status of your vacuum cleaners and also a command channel where you can control them. Since the binding uses a polling mechanism, there may be some latency depending on your setting regarding refresh time.
 
-For log in transaction, the binding uses Neato Beehive API and for status and control, the binding uses Nucleao API. 
+For log in transaction, the binding uses Neato Beehive API and for status and control, the binding uses Nucleao API.
 
 ## Supported Things
 
 Supported thing types
 
-* neatoaccount (bridge)
-* vacuumcleaner
+- neatoaccount (bridge)
+- vacuumcleaner
 
 A bridge is required to connect to your Neato Cloud account.  
 
@@ -22,36 +22,36 @@ All "Connected" type vacuum cleaners should be supported by this binding since t
 Discovery is used _after_ a bridge has been created and configured with your login information.
 
 1. Add the binding
-2. Add a new thing of type NeatoAccount and configure with username and password
-3. Go to Inbox and start discovery of Vacuums using Neato Binding
-4. Vacuums should appear in your inbox!
+1. Add a new thing of type NeatoAccount and configure with username and password
+1. Go to Inbox and start discovery of Vacuums using Neato Binding
+1. Vacuums should appear in your inbox!
 
 ## Thing Configuration
 
 In order to manually create a thing file and not use the discovery routine you will need to know the vacuums serial number as well as the secret used in web service calls.
 This is a bit difficult to get.
-The easiest way of getting this information is to use the third party python library that is available at https://github.com/stianaske/pybotvac.
+The easiest way of getting this information is to use the third party python library that is available at <https://github.com/stianaske/pybotvac>.
 
 Neato Account Config
 
 | Config   | Description                         |
-|----------|------------------------------------ |
+| -------- | ----------------------------------- |
 | email    | Email address tied to Neato Account |
 | password | Password tied to Neato Account      |
 
 Vacuum Cleaner Config
 
-| Config   | Description                             |
-|----------|-----------------------------------------|
-| serial   | Serial Number of your Neato Robot       |
-| secret   | Secret for accessing Neato web services (see note above) |
-| refresh  | Refresh time interval in seconds for updates from the Neato Web Service.  Defaults to 60 sec |
+| Config  | Description                                                                                  |
+| ------- | -------------------------------------------------------------------------------------------- |
+| serial  | Serial Number of your Neato Robot                                                            |
+| secret  | Secret for accessing Neato web services (see note above)                                     |
+| refresh | Refresh time interval in seconds for updates from the Neato Web Service.  Defaults to 60 sec |
 
 ## Channels
 
 | Channel             | Type   | Label                      | Description                                                                               | Read Only |
-|---------------------|--------|----------------------------|-------------------------------------------------------------------------------------------|-----------|
-| battery-level| Number | Battery Level              | Battery Level of the vacuum cleaner.                                                      | True      |
+| ------------------- | ------ | -------------------------- | ----------------------------------------------------------------------------------------- | --------- |
+| battery-level       | Number | Battery Level              | Battery Level of the vacuum cleaner.                                                      | True      |
 | state               | String | Current State              | Current state of the vacuum cleaner.                                                      | True      |
 | available-services  | String | Current available services | List of services that are currently available for the vacuum cleaner                      | True      |
 | action              | String | Current Action             | Current action of the vacuum cleaner.                                                     | True      |
@@ -61,7 +61,7 @@ Vacuum Cleaner Config
 | is-charging         | Switch | Is Charging                | Is the vacuum cleaner currently charging?                                                 | True      |
 | available-commands  | String | Available Commands         | List of available commands.                                                               | True      |
 | error               | String | Error                      | Current error message in system.                                                          | True      |
-| command             | String | Send Command               | Send Commands to Vacuum Cleaner. (clean with map, clean, pause, resume, stop, dock)                       | False     |
+| command             | String | Send Command               | Send Commands to Vacuum Cleaner. (clean with map, clean, pause, resume, stop, dock)       | False     |
 | cleaning-category   | String | Cleaning Category          | Current or Last category of the cleaning. Manual, Normal House Cleaning or Spot Cleaning. | True      |
 | cleaning-mode       | String | Cleaning Mode              | Current or Last cleaning mode. Eco or Turbo.                                              | True      |
 | cleaning-modifier   | String | Cleaning Modifier          | Modifier of current or last cleaning. Normal or Double.                                   | True      |
@@ -72,9 +72,9 @@ Vacuum Cleaner Config
 
 Below you will find examples of the necessary files:
 
-**neato.items**
+### neato.items
 
-```
+```java
 Group GNeato
 Number FannDammBattery  "Battery level [%.0f %%]" <battery> (GNeato) { channel = "neato:vacuumcleaner:fanndamm:battery-level" }
 String FannDammState  "Status [MAP(neato-sv.map):%s]" (GNeato) { channel = "neato:vacuumcleaner:fanndamm:state" }
@@ -92,9 +92,9 @@ Number FannDammSpotHeight  "SpotHeight [%.0f]" <niveau> (GNeato)  { channel = "n
 String FannDammCommand  "Send Command" { channel = "neato:vacuumcleaner:fanndamm:command" }
 ```
 
-**sitemap**
+### neato.sitemap
 
-```
+```perl
 Frame label="Neato BotVac Connected" {
     Switch item=FannDammCommand mappings=[cleanWithMap="cleanWithMap", clean="Clean",stop="Stop",pause="Pause",resume="Resume", dock="Send to dock"]
     Text item=FannDammBattery label="Battery level"
@@ -106,8 +106,8 @@ Frame label="Neato BotVac Connected" {
 }
 ```
 
-**neato.things**
+### neato.things
 
-```
+```java
 neato:vacuumcleaner:fanndamm [ serial="vacuumcleaner-serial", secret="secret-string"]
 ```
index 5ce37a4bf9a343bbb0a8656006ddb81b1b9ca702..e566e016983eb614794ee2630822bf6ec946dae1 100644 (file)
@@ -8,8 +8,8 @@ More information can be found at [NEEO](neeo.com) or in the forums at [NEEO Plan
 Discovery occurs in three steps:
 
 1. Discover your NEEO Brain.
-2. Once you have added a NEEO Brain, each Room will be discovered (which will include all Recipes and Scenarios).
-3. Once you have added a NEEO Room, each Device in the Room will be discovered (which will include all Macros for the Device).
+1. Once you have added a NEEO Brain, each Room will be discovered (which will include all Recipes and Scenarios).
+1. Once you have added a NEEO Room, each Device in the Room will be discovered (which will include all Macros for the Device).
 
 The Recipes/Scenarios can then be started or stopped from openHAB or from the remote.
 If a Recipe/Scenario is started on the Brain, the status of the Recipe/Scenario will change in openHAB as well.
@@ -48,13 +48,13 @@ Actions can be triggered by sending ON to the channel
 
 ## Supported Things
 
-* Bridge: NEEO Brain.
+- Bridge: NEEO Brain.
 This bridge represents a physical NEEO Brain and will contain one to many Rooms within it.
 
-* Bridge: NEEO Room.
+- Bridge: NEEO Room.
 Represents a Room on the NEEO Brain.  Only rooms that have atleast one device or one recipe (custom if no devices) will be shown unless the brain configuration option "discoverEmptyRooms" is set to true.
 
-* Thing: NEEO Device.
+- Thing: NEEO Device.
 
 Represents a Device within the NEEO Room.
 
@@ -63,8 +63,8 @@ Represents a Device within the NEEO Room.
 NEEO Brains will be automatically discovered if mDNS/bonjour/zeroconf is installed on the local machine:
 
 1. On Windows - installing iTunes will install bonjour.
-2. On Linux - please install zeroconf (see vendor documentation on how to do that).
-3. On Mac - should already be installed.
+1. On Linux - please install zeroconf (see vendor documentation on how to do that).
+1. On Mac - should already be installed.
 
 When you add the NEEO Brain, the Rooms on the Brain will then be auto discovered and placed in the inbox.
 When you add a Room, all Devices should be auto discovered and placed in the inbox.
@@ -75,47 +75,47 @@ If you discovered the wired first but want to use the wireless (or in the revers
 
 If the Brain is not discovered, here is list of the most common issues:
 
-1.  You can generally trigger discovery by starting up the NEEO APP on your mobile device, press MENU->NEEO Brain->Change Brain.
+1. You can generally trigger discovery by starting up the NEEO APP on your mobile device, press MENU->NEEO Brain->Change Brain.
 This will generally send out the necessary mDNS broadcast messages to discovery the Brain.
-2.  You did not wait long enough.
+1. You did not wait long enough.
 I have noticed that it will take up to 5 minutes for the discovery to find the Brain.
-3.  Local firewall is blocking the mDNS broadcast messages.
+1. Local firewall is blocking the mDNS broadcast messages.
 Modify the firewall to allow mDNS packets - typically port 5353 and/or IP address 224.0.0.251
-4.  The Brain is on a different subnet.
+1. The Brain is on a different subnet.
 Unless you have special routing rules, having the Brain on a different subnet than the openHAB instance will prevent discovery.
 Either add routing rules or move one of them to the same subnet.
-5.  Bug in the mDNS library.
+1. Bug in the mDNS library.
 Occasionally a broadcast will be missed and a simple openHAB restart will fix the issue.
-6.  Brain isn't reachable.
+1. Brain isn't reachable.
 
 Ping the Brain's address from the openHAB machine and see if it responds.
 
 If none of the above work, there are a few more things you can try:
 
-1.  Use your local dns-sd command to see if you find the instance ("dns-sd -B _neeo._tcp").
-2.  Manually configure the Brain and specify its IP address.
-3.  Look in the issues forum on the NEEO SDK GitHub - specifically the [Brain Discovery not working](https://github.com/NEEOInc/neeo-sdk/issues/36).
+1. Use your local dns-sd command to see if you find the instance ("dns-sd -B _neeo._tcp").
+1. Manually configure the Brain and specify its IP address.
+1. Look in the issues forum on the NEEO SDK GitHub - specifically the [Brain Discovery not working](https://github.com/NEEOInc/neeo-sdk/issues/36).
 
 ## Forward Actions
 
 The NEEO Brain has the option to forward all actions performed on it to a specific address.
 The forward actions will be a JSON string representation:
 
-```
+```json
 { "action": "xxx", "actionparameter": "xxx", "recipe": "xxx", "device": "xxx", "room": "xxx" }
 ```
 
 All parameters are optional (based on what action has been taken) with atleast one of them filled in.
 If the Recipe "Watch TV" is launched, the forward action would be:
 
-```
+```json
 { "action": "launch", "recipe": "Watch TV" }
 ```
 
 The NEEO Brain bridge will register itself as the destination for actions and has a trigger channel defined to accept the results of any forward action.
 An example rule might look like (for a Brain with an ID of d487672e):
 
-```
+```java
 rule "NEEO"
     when
         Channel 'neeo:Brain:d487672e:forwardActions' triggered
@@ -139,7 +139,7 @@ end
 Since the NEEO Brain ONLY allows a single forward actions URL, the NEEO Brain Bridge can be configured to:
 
 1. Whether to register for forward actions or not.
-2. If forward actions has been registered, forward the action on to other URLs for processing.
+1. If forward actions has been registered, forward the action on to other URLs for processing.
 
 This will allow you to use other devices that want to consume the forward actions (in addition to openHAB).
 
@@ -157,8 +157,6 @@ The following are the configurations available to each of the bridges/things:
 | discoverEmptyRooms   | boolean | No       | false   | Whether to discover Rooms with no Devices in them                                                              |
 | checkStatusInterval  | number  | No       | 10      | The interval (in seconds) to check the status of the Brain. Specify <=0 to disable                             |
 
-
-
 ### NEEO Room
 
 | Name                 | Type    | Required | Default | Description                                                                                                    |
@@ -173,7 +171,6 @@ The following are the configurations available to each of the bridges/things:
 |----------------------|---------|----------|---------|----------------------------------------------------------------------------------------------------------------|
 | deviceKey            | string  | Yes      | (None)  | The unique key identifying the Device on the NEEO Brain                                                        |
 
-
 ## Channels
 
 ### NEEO Brain
@@ -184,7 +181,6 @@ The NEEO Brain has the following channels:
 |--------------------|------------|--------------|--------------------------------------------------------------------------------------------|
 | forwardActions     | R          | Trigger      | The forward actions channel                                                                |
 
-
 The following properties are available at the time of this writing:
 
 | Name          | Description                                                                                                         |
@@ -197,15 +193,14 @@ The following properties are available at the time of this writing:
 | Key           | The unique identifier of the Brain                                                                                  |
 | Name          | Internal name of the Brain                                                                                          |
 
-
 ### NEEO Room
 
 The NEEO Room is dynamically generated from the Brain.
 Each Room will dynamically generate the following channel groups:
 
-1) Each Room will have exactly one "room-state" representing the current state of the Room.
-2) Each Room will have zero or more "room-recipe-xxx" (where xxx is the Recipe key) groups representing each Recipe in the Room.
-3) Each Room will have zero or more "room-scenario-xxx" (where xxx is the Scenario key) groups representing each Scenario in the Room.
+1. Each Room will have exactly one "room-state" representing the current state of the Room.
+1. Each Room will have zero or more "room-recipe-xxx" (where xxx is the Recipe key) groups representing each Recipe in the Room.
+1. Each Room will have zero or more "room-scenario-xxx" (where xxx is the Scenario key) groups representing each Scenario in the Room.
 
 #### Room State Group
 
@@ -216,7 +211,7 @@ The following channels will be in the Room state group:
 | currentStep*       | R          | trigger      | Displays the current step being executed                                                   |
 
 Current Step will ONLY be triggered if openHAB started the corresponding recipe (or scenario).  
-If the NEEO Remote or NEEO App starts the recipe or scenario, the currentStep will never be triggered. 
+If the NEEO Remote or NEEO App starts the recipe or scenario, the currentStep will never be triggered.
 
 The current step is ONLY communicated from the Brain to the device that started the Recipe/Scenario.
 If the remote started the Recipe/Scenario, it will show the current step but openHAB will not be notified.
@@ -260,7 +255,7 @@ Each Device will have a single group (Macros) and that group will contain one or
 
 .things
 
-```
+```java
 neeo:brain:home                     [ ipAddress="192.168.1.24" ]
 neeo:room:attic   (neeo:brain:home) [ roomKey="6277847230179180544" ]
 neeo:device:tv    (neeo:room:attic) [ deviceKey="6343464057630097408" ]
@@ -268,7 +263,7 @@ neeo:device:tv    (neeo:room:attic) [ deviceKey="6343464057630097408" ]
 
 .items
 
-```
+```java
 String Attic_RecipeName          "Recipe Name [%s]"     { channel="neeo:room-6277847230179180544:attic:room:recipe#name-6277847545657950208" }
 Switch Attic_RecipeEnabled       "Recipe Enabled"       { channel="neeo:room-6277847230179180544:attic:room:recipe#enabled-6277847545657950208" }
 Switch Attic_RecipeStatus        "Running"              { channel="neeo:room-6277847230179180544:attic:room:recipe#status-6277847545657950208" }
@@ -279,7 +274,7 @@ Switch Attic_TvInput1            "Input1"               { channel="neeo:device:t
 
 .sitemap
 
-```
+```perl
 sitemap demo label="NEEO" {
     Frame label="Attic" {
         Text item=Attic_RecipeName
index 77d0e15e484f34f7e6c090a7a1df7a560b3fb0e3..52857734296b60bb61df046763e9c14aeda6c196 100644 (file)
@@ -23,7 +23,7 @@ The binding automatically searches for NeoHub devices, and puts them in the Main
 Alternatively you can manually create a (Bridge) Thing for the NeoHub.
 In either case you need to enter any missing Configuration Parameters (see Thing Configuration for NeoHub below).
 Once the Configuration Parameters are all valid, then the NeoHub Thing will automatically attempt to connect and sign on to the hub.
-If the sign on succeeds, the Thing will indicate its status as Online, otherwise it will show an error status. 
+If the sign on succeeds, the Thing will indicate its status as Online, otherwise it will show an error status.
 
 Once the NeoHub Thing has been created and it has successfully signed on, it will automatically interrogate the HeoHub to discover all the respective Heatmiser device Things that are connected to it.
 If in the future, you add additional Heatmiser devices to your system, the binding will discover them too.
@@ -56,7 +56,7 @@ But you can override this in special cases if you want to use (say) port forward
 ## Connection Refused Errors
 
 From early 2022 Heatmiser introduced NeoHub firmware that has the ability to enable / disable connecting to it via a TCP port.
-If the TCP port is disabled the OpenHAB binding cannot connect and the binding will report a *"Connection Refused"* warning in the log.
+If the TCP port is disabled the OpenHAB binding cannot connect and the binding will report a _"Connection Refused"_ warning in the log.
 In prior firmware versions the TCP port was always enabled.
 But in the new firmware the TCP port is initially enabled on power up but if no communication occurs for 48 hours it is automatically disabled.
 Alternatively the Heatmiser mobile app has a setting (Settings | System | API Access | Legacy API Enable | On) whereby the TCP port can be permanently enabled.
@@ -66,7 +66,7 @@ Alternatively the Heatmiser mobile app has a setting (Settings | System | API Ac
 The NeoHub Thing connects to the hub (bridge) to communicate with any Heatmiser devices that are connected to it.
 Each such Heatmiser device is identified by means of a unique device name in the hub.
 The device name is automatically discovered by the NeoHub Thing, and it is also visible (and changeable) via the Heatmiser App.
-    
+
 | Configuration Parameter | Description                                                                          |
 |-------------------------|--------------------------------------------------------------------------------------|
 | deviceNameInHub         | Device name that identifies the Heatmiser device in the NeoHub and the Heatmiser App |
@@ -138,7 +138,7 @@ Note: if a drop out occurs, the Thing will always change its status to `OFFLINE`
 
 ### `demo.things` File
 
-```
+```java
 Bridge neohub:neohub:myhubname "Heatmiser NeoHub" [ hostName="192.168.1.123", portNumber=4242, pollingInterval=60, socketTimeout=5, preferLegacyApi=true ] {
     Thing neoplug mydownstairs "Downstairs Plug" @ "Hall" [ deviceNameInHub="Hall Plug" ]
     Thing neostat myupstairs "Upstairs Thermostat" @ "Landing" [ deviceNameInHub="Landing Thermostat" ]
@@ -149,7 +149,7 @@ Bridge neohub:neohub:myhubname "Heatmiser NeoHub" [ hostName="192.168.1.123", po
 
 ### `demo.items` File
 
-```
+```java
 Number:Temperature Upstairs_RoomTemperature "Room Temperature" { channel="neohub:neostat:myhubname:myupstairs:roomTemperature" }
 Number:Temperature Upstairs_TargetTemperature "Target Temperature" { channel="neohub:neostat:myhubname:myupstairs:targetTemperature" }
 Number:Temperature Upstairs_FloorTemperature "Floor Temperature" { channel="neohub:neostat:myhubname:myupstairs:floorTemperature" }
@@ -167,30 +167,29 @@ Number:Temperature Kitchen_Temperature "Kitchen Temperature" { channel="neohub:n
 
 ### `demo.sitemap` File
 
-```
+```perl
 sitemap neohub label="Heatmiser NeoHub"
 {
-       Frame label="Thermostat" {
-               Text      item=Upstairs_RoomTemperature 
-               Setpoint  item=Upstairs_TargetTemperature minValue=15 maxValue=30 step=1
-               Text      item=Upstairs_ThermostatOutputState
-               Switch    item=Upstairs_OccupancyModePresent
-               Text      item=Upstairs_FloorTemperature 
-       }
-
-       Frame label="Plug" {
-               Switch item=Downstairs_PlugOutputState  
-               Switch item=Downstairs_PlugAutoMode
-       }
-
-       Frame label="Contact" {
-               Contact item=Window_Contact_State
-               Switch item=Window_Contact_Battery_Low
-       }
-
-       Frame label="Sensor" {
-               Text item=Kitchen_Temperature
-       }
+    Frame label="Thermostat" {
+        Text      item=Upstairs_RoomTemperature 
+        Setpoint  item=Upstairs_TargetTemperature minValue=15 maxValue=30 step=1
+        Text      item=Upstairs_ThermostatOutputState
+        Switch    item=Upstairs_OccupancyModePresent
+        Text      item=Upstairs_FloorTemperature 
+    }
+
+    Frame label="Plug" {
+        Switch item=Downstairs_PlugOutputState  
+        Switch item=Downstairs_PlugAutoMode
+    }
+
+    Frame label="Contact" {
+        Contact item=Window_Contact_State
+        Switch item=Window_Contact_Battery_Low
+    }
+
+    Frame label="Sensor" {
+        Text item=Kitchen_Temperature
+    }
 }
 ```
-
index fb407b1c167815292fd8ca81c239045e9bb5909b..148444082f02d9b23929d807ff7290e9e40e588e 100644 (file)
@@ -88,18 +88,18 @@ Finally, an SDM Account Thing can be created to access the SDM project using the
 1. Copy/paste the saved OAuth 2.0 **Client Secret** to SDM group parameter (e.g. `726kcU-d1W4RXxEJA79oZ0oG`)
 1. Create an authorization code for the binding:
     1. Replace the **Project ID** and **Client ID** in the URL below with your SDM Project ID and SDM OAuth 2.0 Client ID and open the URL in a new browser tab:
-       
+
        `https://nestservices.google.com/partnerconnections/<ProjectID>/auth?scope=https://www.googleapis.com/auth/sdm.service&access_type=offline&prompt=consent&include_granted_scopes=true&response_type=code&redirect_uri=https://www.google.com&client_id=<ClientID>`
-       
+
        For the example values used so far this is:
-       
+
        `https://nestservices.google.com/partnerconnections/585de72e-968c-435c-b16a-31d1d3f76833/auth?scope=https://www.googleapis.com/auth/sdm.service&access_type=offline&prompt=consent&include_granted_scopes=true&response_type=code&redirect_uri=https://www.google.com&client_id=1046297811237-3f5sj4ccfubit0fum027ral82jgffsd1.apps.googleusercontent.com`
     1. Enable all the permissions you want to use with the binding and click "Next" to continue
     1. Login using your Google account when prompted
     1. On the "Google hasn't verified this app" page, click on "Advanced"
     1. Then click on "Go to ... (advanced)"
     1. Now "Allow" the SDM permissions and confirm your choices again by clicking "Allow"
-    1. After your browser has been redirected to https://www.google.com, the **Authorization Code** will be set in the browser URL as value of the "code" URL query parameter
+    1. After your browser has been redirected to <https://www.google.com>, the **Authorization Code** will be set in the browser URL as value of the "code" URL query parameter
     1. Copy/paste the **Authorization Code** to the SDM group parameter in the openHAB Nest SDM Account Thing configuration
 1. All required SDM Account Thing configuration parameters have now been entered so create it by clicking "Create Thing"
 
@@ -149,23 +149,23 @@ Finally, the existing SDM Account Thing can be updated so it can subscribe to SD
 1. Open the configuration details of your existing "Nest SDM Account" Thing in openHAB
 1. Copy/paste the saved GCP **Project ID** to Pub/Sub group parameter (e.g. `openhab-123`)
 1. Enter a name in **Subscription ID** that uniquely identifies the Pub/Sub subscription used by the binding
-   
+
    > Must be 3-255 characters, start with a letter, and contain only the following characters: letters, numbers, dashes (-), periods (.), underscores (_), tildes (~), percents (%) or plus signs (+). Cannot start with  goog.
 1. Copy/paste the saved OAuth 2.0 **Client ID** to Pub/Sub group parameter (e.g. `1046297811237-lg27h26kln6r1nbg54jpg6nfjg6h4b3n.apps.googleusercontent.com`)
 1. Copy/paste the saved OAuth 2.0 **Client Secret** to Pub/Sub group parameter (e.g. `1-k78-XcHhp_gdZF-I6JaIHp`)
 1. Create an authorization code for the binding:
     1. Replace the **Client ID** in the URL below with your Pub/Sub OAuth 2.0 Client ID and open the URL in a new browser tab:
-       
+
        `https://accounts.google.com/o/oauth2/v2/auth?scope=https://www.googleapis.com/auth/pubsub&access_type=offline&prompt=consent&include_granted_scopes=true&response_type=code&redirect_uri=https://www.google.com&client_id=<ClientID>`
-       
+
        For the example client this is:
-       
+
        `https://accounts.google.com/o/oauth2/v2/auth?scope=https://www.googleapis.com/auth/pubsub&access_type=offline&prompt=consent&include_granted_scopes=true&response_type=code&redirect_uri=https://www.google.com&client_id=1046297811237-lg27h26kln6r1nbg54jpg6nfjg6h4b3n.apps.googleusercontent.com`
     1. Login using your Google account when prompted
     1. On the "Google hasn't verified this app" page, click on "Advanced"
     1. Then click on "Go to ... (advanced)"
     1. Now "Allow" the Pub/Sub permissions and confirm your choices again by clicking "Allow"
-    1. After your browser has been redirected to https://www.google.com, the **Authorization Code** will be set in the browser URL as value of the "code" URL query parameter
+    1. After your browser has been redirected to <https://www.google.com>, the **Authorization Code** will be set in the browser URL as value of the "code" URL query parameter
     1. Copy/paste the **Authorization Code** to the Pub/Sub group parameter in the openHAB Nest SDM Account Thing configuration
 1. All required Pub/Sub Account Thing configuration parameters have now been entered so click "Save" to update the SDM Account Thing configuration
 
@@ -244,7 +244,7 @@ Similarly, when a DateTime command is sent to the `fan_timer_timeout` channel, t
 
 ### WWN Camera Channels
 
-**Camera group channels**
+#### Camera Group Channels
 
 Information about the camera.
 
@@ -260,7 +260,7 @@ Information about the camera.
 | video_history_enabled | Switch    | If the video history is currently enabled         |      R     |
 | web_url               | String    | The web URL to see the camera                     |      R     |
 
-**Last event group channels**
+#### Last Event Group Channels
 
 Information about the last camera event (requires Nest Aware subscription).
 
@@ -339,9 +339,9 @@ Information about the last camera event (requires Nest Aware subscription).
 Note that the Nest API rounds Thermostat values so they will differ from what shows up in the Nest App.
 The Nest API applies the following rounding:
 
-*   degrees Celsius to 0.5 degrees
-*   degrees Fahrenheit to whole degrees
-*   humidity to 5%
+- degrees Celsius to 0.5 degrees
+- degrees Fahrenheit to whole degrees
+- humidity to 5%
 
 ## Example
 
@@ -349,7 +349,7 @@ You can use the discovery functionality of the binding to obtain the deviceId an
 
 ### sdm-demo.things
 
-```
+```java
 Bridge nest:sdm_account:demo_sdm_account [ sdmProjectId="585de72e-968c-435c-b16a-31d1d3f76833", sdmClientId="1046297811237-3f5sj4ccfubit0fum027ral82jgffsd1.apps.googleusercontent.com", sdmClientSecret="726kcU-d1W4RXxEJA79oZ0oG", sdmAuthorizationCode="xkkY3qYtfZCzaXCcPxpOELUW8EhgiSMD3n9jmzJ3m0yerkQpVRdj5vqWRjMSIG", pubsubProjectId="openhab-12345", pubsubSubscriptionId="nest-sdm-events", pubsubClientId="1046297811237-lg27h26kln6r1nbg54jpg6nfjg6h4b3n.apps.googleusercontent.com", pubsubClientSecret="1-k78-XcHhp_gdZF-I6JaIHp", pubsubAuthorizationCode="tASfQq7gn6sfbUSbwRufbMI0BYDzh1d7MBG2G7vdZpbhjmZfwDp5MkeaX0iMxn" ] {
     Thing sdm_camera       fish_cam          [ deviceId="AVPHwTQCAhersqmQ3IXwyqSX-XyuVZXoiNSNPeHdIMKgYpYZolNP4S9LS5QDF2LeuM3BQcpBh_fOEZYxkeH6eoQdWEELqi" ] {
         Channels:
@@ -371,7 +371,7 @@ Bridge nest:sdm_account:demo_sdm_account [ sdmProjectId="585de72e-968c-435c-b16a
 
 ### sdm-demo.items
 
-```
+```java
 /* SDM Doorbell */
 Image    Doorbell_Chime_Image      "Chime Image"                                            { channel="nest:sdm_doorbell:demo_sdm_account:front_door:chime_event#image" }
 DateTime Doorbell_Chime_Timestamp  "Chime Timestamp [%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS]"  { channel="nest:sdm_doorbell:demo_sdm_account:front_door:chime_event#timestamp" }
@@ -403,7 +403,7 @@ Number:Temperature   Thermostat_Temperature_Heat   "Temperature Heat [%.1f %unit
 
 ### wwn-demo.things
 
-```
+```java
 Bridge nest:wwn_account:demo_wwn_account [ productId="8fdf9885-ca07-4252-1aa3-f3d5ca9589e0", productSecret="QITLR3iyUlWaj9dbvCxsCKp4f", accessToken="c.6rse1xtRk2UANErcY0XazaqPHgbvSSB6owOrbZrZ6IXrmqhsr9QTmcfaiLX1l0ULvlI5xLp01xmKeiojHqozLQbNM8yfITj1LSdK28zsUft1aKKH2mDlOeoqZKBdVIsxyZk4orH0AvKEZ5aY" ] {
     Thing wwn_camera         fish_cam           [ deviceId="qw0NNE8ruxA9AGJkTaFH3KeUiJaONWKiH9Gh3RwwhHClonIexTtufQ" ]
     Thing wwn_smoke_detector hallway_smoke      [ deviceId="Tzvibaa3lLKnHpvpi9OQeCI_z5rfkBAV" ]
@@ -414,7 +414,7 @@ Bridge nest:wwn_account:demo_wwn_account [ productId="8fdf9885-ca07-4252-1aa3-f3
 
 ### wwn-demo.items
 
-```
+```java
 /* WWN Camera */
 String   Cam_App_URL               "App URL [%s]"                                                      { channel="nest:wwn_camera:demo_wwn_account:fish_cam:camera#app_url" }
 Switch   Cam_Audio_Input_Enabled   "Audio Input Enabled"                                               { channel="nest:wwn_camera:demo_wwn_account:fish_cam:camera#audio_input_enabled" }
index f5a64dd4f67d6c0e6dd210b03d1a87ce139dc2bf..2b52dbd637b95cbc0a9beb6df0305138142e4116 100644 (file)
@@ -2,16 +2,16 @@
 
 The Netatmo binding integrates the following Netatmo products:
 
-- *Personal Weather Station*. Reports temperature, humidity, air pressure, carbon dioxide concentration in the air, as well as the ambient noise level.
-- *Thermostat*. Reports ambient temperature, allow to check target temperature, consult and change furnace heating status.
-- *Indoor Camera / Welcome*. Reports last event and persons at home, consult picture and video from event/camera.
-- *Siren*
-- *Outdoor Camera / Presence*. Reports last event, consult picture and video from event/camera.
-- *Doorbell* 
-- *Smoke Detector*
-- *Smart Door Sensor*
+- _Personal Weather Station_. Reports temperature, humidity, air pressure, carbon dioxide concentration in the air, as well as the ambient noise level.
+- _Thermostat_. Reports ambient temperature, allow to check target temperature, consult and change furnace heating status.
+- _Indoor Camera / Welcome_. Reports last event and persons at home, consult picture and video from event/camera.
+- _Siren_
+- _Outdoor Camera / Presence_. Reports last event, consult picture and video from event/camera.
+- _Doorbell_
+- _Smoke Detector_
+- _Smart Door Sensor_
 
-See https://www.netatmo.com/ for details on their product.
+See <https://www.netatmo.com/> for details on their product.
 
 ## Binding Configuration
 
@@ -27,15 +27,14 @@ Follow instructions under:
 
 Variables needed for the setup of the binding are:
 
-* `<CLIENT_ID>` Your client ID taken from your App at https://dev.netatmo.com/apps
-* `<CLIENT_SECRET>` A token provided along with the `<CLIENT_ID>`.
+- `<CLIENT_ID>` Your client ID taken from your App at <https://dev.netatmo.com/apps>
+- `<CLIENT_SECRET>` A token provided along with the `<CLIENT_ID>`.
 
 The binding has the following configuration options:
 
-| Parameter    | Type          | Description                                                                                |
-|--------------|---------------|--------------------------------------------------------------------------------------------|
-| readFriends  | Boolean       | Enables or disables the discovery of guest weather stations.                               |
-
+| Parameter   | Type    | Description                                                  |
+| ----------- | ------- | ------------------------------------------------------------ |
+| readFriends | Boolean | Enables or disables the discovery of guest weather stations. |
 
 ## Netatmo Account (Bridge) Configuration
 
@@ -44,8 +43,8 @@ You will have to create at first a bridge to handle communication with your Neta
 The Account bridge has the following configuration elements:
 
 | Parameter         | Type   | Required | Description                                                                                                            |
-|-------------------|--------|----------|------------------------------------------------------------------------------------------------------------------------|
-| clientId          | String | Yes      | Client ID provided for the application you created on http://dev.netatmo.com/createapp                                 |
+| ----------------- | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------- |
+| clientId          | String | Yes      | Client ID provided for the application you created on <http://dev.netatmo.com/createapp>                               |
 | 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                                                    |
 | reconnectInterval | Number | No       | The reconnection interval to Netatmo API (in s)                                                                        |
@@ -56,10 +55,9 @@ The Account bridge has the following configuration elements:
 **Supported channels for the Account bridge thing:**
 
 | Channel Group | Channel Id    | Item Type | Description                                                        |
-|---------------|---------------|-----------|--------------------------------------------------------------------|
+| ------------- | ------------- | --------- | ------------------------------------------------------------------ |
 | monitoring    | request-count | Number    | Number of requests transmitted to Netatmo API during the last hour |
 
-
 ### Configure the Bridge
 
 1. Complete the Netatmo Application Registration if you have not already done so, see above.
@@ -67,38 +65,34 @@ The Account bridge has the following configuration elements:
 1. Add a new **"Netatmo Account"** thing. Choose new Id for the account, unless you like the generated one, put in the _Client ID_ and _Client Secret_ from the Netatmo Connect Application registration in their respective fields of the bridge configuration. Save the bridge.
 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://<your openHAB address>: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. 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 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.
 
-
 ## List of supported things
 
-| Thing Type      | Type   | Netatmo Object | Description                                                                                          | Thing Parameters                                                          |
-|-----------------|--------|----------------|------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------|
-| account         | Bridge | N/A            | This bridge represents an account, gateway to Netatmo API.                                           | clientId, clientSecret, username, password, webHookUrl, reconnectInterval |
-| home            | Bridge | NAHome         | A home hosting Security or Energy devices and modules.                                               | id, refreshInterval                                                       |
-| person          | Thing  | NAPerson       | A person known by your Netatmo system.                                                               | id                                                                        |
-| welcome         | Thing  | NACamera       | The Netatmo Smart Indoor Camera (Welcome).                                                           | id                                                                        |
-| presence        | Thing  | NOC            | The Netatmo Smart Outdoor Camera (Presence) camera with or without siren.                            | id                                                                        |
-| siren           | Thing  | NIS            | The Netatmo Smart Indoor Siren.                                                                      | id                                                                        |
-| doorbell        | Thing  | NDB            | The Netatmo Smart Video Doorbell device.                                                             | id                                                                        |
-| weather-station | Bridge | NAMain         | Main indoor module reporting temperature, humidity, pressure, air quality and sound level.           | id                                                                        |
-| outdoor         | Thing  | NAModule1      | Outdoor module reporting temperature and humidity.                                                   | id                                                                        |
-| wind            | Thing  | NAModule2      | Wind sensor reporting wind angle and strength.                                                       | id                                                                        |
-| rain            | Thing  | NAModule3      | Rain Gauge measuring precipitation.                                                                  | id                                                                        |
-| indoor          | Thing  | NAModule4      | Additional indoor module reporting temperature, humidity and CO2 level.                              | id                                                                        |
-| home-coach      | Thing  | NHC            | Healthy home coach reporting health-index, temperature, humidity, pressure, air quality, sound level.| id                                                                        |
-| plug            | Thing  | NAPlug         | The relay connected to the boiler controlling a Thermostat and zero or more valves.                  | id                                                                        |
-| thermostat      | Thing  | NATherm1       | The Thermostat device placed in a given room.                                                        | id                                                                        |
-| 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                                                                        |
-
-
-
+| Thing Type      | Type   | Netatmo Object | Description                                                                                           | Thing Parameters                                                          |
+| --------------- | ------ | -------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
+| account         | Bridge | N/A            | This bridge represents an account, gateway to Netatmo API.                                            | clientId, clientSecret, username, password, webHookUrl, reconnectInterval |
+| home            | Bridge | NAHome         | A home hosting Security or Energy devices and modules.                                                | id, refreshInterval                                                       |
+| person          | Thing  | NAPerson       | A person known by your Netatmo system.                                                                | id                                                                        |
+| welcome         | Thing  | NACamera       | The Netatmo Smart Indoor Camera (Welcome).                                                            | id                                                                        |
+| presence        | Thing  | NOC            | The Netatmo Smart Outdoor Camera (Presence) camera with or without siren.                             | id                                                                        |
+| siren           | Thing  | NIS            | The Netatmo Smart Indoor Siren.                                                                       | id                                                                        |
+| doorbell        | Thing  | NDB            | The Netatmo Smart Video Doorbell device.                                                              | id                                                                        |
+| weather-station | Bridge | NAMain         | Main indoor module reporting temperature, humidity, pressure, air quality and sound level.            | id                                                                        |
+| outdoor         | Thing  | NAModule1      | Outdoor module reporting temperature and humidity.                                                    | id                                                                        |
+| wind            | Thing  | NAModule2      | Wind sensor reporting wind angle and strength.                                                        | id                                                                        |
+| rain            | Thing  | NAModule3      | Rain Gauge measuring precipitation.                                                                   | id                                                                        |
+| indoor          | Thing  | NAModule4      | Additional indoor module reporting temperature, humidity and CO2 level.                               | id                                                                        |
+| home-coach      | Thing  | NHC            | Healthy home coach reporting health-index, temperature, humidity, pressure, air quality, sound level. | id                                                                        |
+| plug            | Thing  | NAPlug         | The relay connected to the boiler controlling a Thermostat and zero or more valves.                   | id                                                                        |
+| thermostat      | Thing  | NATherm1       | The Thermostat device placed in a given room.                                                         | id                                                                        |
+| 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                                                                        |
 
 ### Webhook
 
@@ -106,13 +100,13 @@ 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:
 
-```
+```text
 http(s)://xx.yy.zz.ww:443/netatmo/webhook/<_CLIENT_ID_>
 ```
 
@@ -120,7 +114,6 @@ Please be aware of Netatmo own limits regarding webhook usage that lead to a 24h
 
 NB: Allowed ports for webhooks are 80, 88, 443 and 9443.
 
-
 ### Configure Things
 
 The easiest way to retrieve the IDs for all the devices and modules is to use the console command `openhab:netatmo showIds`.
@@ -134,7 +127,7 @@ First login with your user.
 Then some examples of the documentation contain the **real results** of your weather station.
 In order to try the examples, you need the `device_id` of your Netatmo station.
 You can find it in the configuration menu of the app (android or apple).
-Get the IDs of your devices (indoor, outdoor, rain gauge) 
+Get the IDs of your devices (indoor, outdoor, rain gauge)
 [here](https://dev.netatmo.com/resources/technical/reference/weather/getstationsdata).
 
 `main_device` is the ID of the "main device", the indoor sensor.
@@ -157,226 +150,213 @@ split the rest into three parts of two characters and append with a colon as del
 
 For example your serial number "h00bcdc" should end up as "02:00:00:00:bc:dc".
 
-
 ## Discovery
 
 If you did not manually create things in the *.things file, the Netatmo Binding is able to discover automatically all depending modules and devices.
 
-
 ## Channels
 
-
 ### Weather Station Main Indoor Device
 
 Weather station does not need any refreshInterval setting.
 Based on a standard update period of 10mn by Netatmo systems - it will auto adapt to stick closest as possible to last data availability.
 
-
 **Supported channels for the main indoor module:**
 
-| Channel Group       | Channel Id           | Item Type            | Description                                      |
-|---------------------|----------------------|----------------------|--------------------------------------------------|
-| pressure            | value                | Number:Pressure      | Current pressure                                 |
-| pressure            | absolute             | Number:Pressure      | Pressure at sea level                            |
-| pressure            | trend                | String               | Pressure evolution trend over time               |
-| noise               | value                | Number:Dimensionless | Current noise level                              |
-| humidity            | value                | Number:Dimensionless | Current humidity                                 |
-| humidity            | humidex              | Number               | Computed Humidex index                           |
-| humidity            | humidex-scale        | Number               | Humidex index appreciation                       |
-| temperature         | value                | Number:Temperature   | Current temperature                              |
-| temperature         | min-today            | Number:Temperature   | Minimum temperature on current day               |
-| temperature         | max-today            | Number:Temperature   | Maximum temperature on current day               |
-| temperature         | min-time             | DateTime             | Moment of today's minimum temperature            |
-| temperature         | max-time             | DateTime             | Moment of today's maximum temperature            |
-| temperature         | trend                | String               | Temperature evolution trend over time            |
-| temperature         | heat-index           | Number:Temperature   | Computed Heat Index                              |
-| temperature         | dewpoint             | Number:Temperature   | Computed dewpoint temperature                    |
-| temperature         | dewpoint-depression  | Number:Temperature   | Computed dewpoint depression                     |
-| airquality          | co2                  | Number:Dimensionless | CO2 level in ppm                                 |
-| location            | value                | Location             | Location of the device                           |
-| timestamp           | last-seen            | DateTime             | Last time the module reported its presence       |
-| timestamp           | measures             | DateTime             | Moment of the last measures update               |
-| signal              | strength             | Number               | Signal strength (0 for no signal, 1 for weak...) |
-| signal              | value                | Number:Power         | Signal strength in dBm                           |
+| Channel Group | Channel Id          | Item Type            | Description                                      |
+| ------------- | ------------------- | -------------------- | ------------------------------------------------ |
+| pressure      | value               | Number:Pressure      | Current pressure                                 |
+| pressure      | absolute            | Number:Pressure      | Pressure at sea level                            |
+| pressure      | trend               | String               | Pressure evolution trend over time               |
+| noise         | value               | Number:Dimensionless | Current noise level                              |
+| humidity      | value               | Number:Dimensionless | Current humidity                                 |
+| humidity      | humidex             | Number               | Computed Humidex index                           |
+| humidity      | humidex-scale       | Number               | Humidex index appreciation                       |
+| temperature   | value               | Number:Temperature   | Current temperature                              |
+| temperature   | min-today           | Number:Temperature   | Minimum temperature on current day               |
+| temperature   | max-today           | Number:Temperature   | Maximum temperature on current day               |
+| temperature   | min-time            | DateTime             | Moment of today's minimum temperature            |
+| temperature   | max-time            | DateTime             | Moment of today's maximum temperature            |
+| temperature   | trend               | String               | Temperature evolution trend over time            |
+| temperature   | heat-index          | Number:Temperature   | Computed Heat Index                              |
+| temperature   | dewpoint            | Number:Temperature   | Computed dewpoint temperature                    |
+| temperature   | dewpoint-depression | Number:Temperature   | Computed dewpoint depression                     |
+| airquality    | co2                 | Number:Dimensionless | CO2 level in ppm                                 |
+| location      | value               | Location             | Location of the device                           |
+| timestamp     | last-seen           | DateTime             | Last time the module reported its presence       |
+| timestamp     | measures            | DateTime             | Moment of the last measures update               |
+| signal        | strength            | Number               | Signal strength (0 for no signal, 1 for weak...) |
+| signal        | value               | Number:Power         | Signal strength in dBm                           |
 
 All these channels are read only.
 
 **Extensible channels for the main indoor module:**
 
-| Channel Type         | Item Type            | Description                       | Channel parameters               |
-|----------------------|----------------------|-----------------------------------|----------------------------------|
+| Channel Type         | Item Type            | Description                       | Channel parameters                                                   |
+| -------------------- | -------------------- | --------------------------------- | -------------------------------------------------------------------- |
 | co2-measurement      | Number:Dimensionless | CO2 measurement                   | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
-| co2-timestamp        | DateTime             | CO2 measurement timestamp         | limit (DATE_MIN, DATE_MAX), period (1week, 1month) |
+| co2-timestamp        | DateTime             | CO2 measurement timestamp         | limit (DATE_MIN, DATE_MAX), period (1week, 1month)                   |
 | hum-measurement      | Number:Dimensionless | Humidity measurement              | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
-| hum-timestamp        | DateTime             | Humidity measurement timestamp    | limit (DATE_MIN, DATE_MAX), period (1week, 1month) |
+| hum-timestamp        | DateTime             | Humidity measurement timestamp    | limit (DATE_MIN, DATE_MAX), period (1week, 1month)                   |
 | noise-measurement    | Number:Dimensionless | Noise measurement                 | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
-| noise-timestamp      | DateTime             | Noise measurement timestamp       | limit (DATE_MIN, DATE_MAX), period (1week, 1month) |
+| noise-timestamp      | DateTime             | Noise measurement timestamp       | limit (DATE_MIN, DATE_MAX), period (1week, 1month)                   |
 | pressure-measurement | Number:Pressure      | Pressure measurement              | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
-| pressure-timestamp   | DateTime             | Pressure measurement timestamp    | limit (DATE_MIN, DATE_MAX), period (1week, 1month) |
+| pressure-timestamp   | DateTime             | Pressure measurement timestamp    | limit (DATE_MIN, DATE_MAX), period (1week, 1month)                   |
 | temp-measurement     | Number:Temperature   | Temperature measurement           | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
-| temp-timestamp       | DateTime             | Temperature measurement timestamp | limit (DATE_MIN, DATE_MAX), period (1week, 1month) |
-
+| temp-timestamp       | DateTime             | Temperature measurement timestamp | limit (DATE_MIN, DATE_MAX), period (1week, 1month)                   |
 
 ### Weather Station Outdoor module
 
 **Supported channels for the outdoor module:**
 
-| Channel Group       | Channel Id           | Item Type            | Description                                      |
-|---------------------|----------------------|----------------------|--------------------------------------------------|
-| humidity            | value                | Number:Dimensionless | Current humidity                                 |
-| humidity            | humidex              | Number               | Computed Humidex index                           |
-| humidity            | humidex-scale        | Number               | Humidex index appreciation                       |
-| temperature         | value                | Number:Temperature   | Current temperature                              |
-| temperature         | min-today            | Number:Temperature   | Minimum temperature on current day               |
-| temperature         | max-today            | Number:Temperature   | Maximum temperature on current day               |
-| temperature         | min-time             | DateTime             | Moment of today's minimum temperature            |
-| temperature         | max-time             | DateTime             | Moment of today's maximum temperature            |
-| temperature         | trend                | String               | Temperature evolution trend over time            |
-| temperature         | heat-index           | Number:Temperature   | Computed Heat Index                              |
-| temperature         | dewpoint             | Number:Temperature   | Computed dewpoint temperature                    |
-| temperature         | dewpoint-depression  | Number:Temperature   | Computed dewpoint depression                     |
-| timestamp           | last-seen            | DateTime             | Last time the module reported its presence       |
-| timestamp           | measures             | DateTime             | Moment of the last measures update               |
-| signal              | strength             | Number               | Signal strength (0 for no signal, 1 for weak...) |
-| signal              | value                | Number:Power         | Signal strength in dBm                           |
-| battery             | value                | Number               | Battery level                                    |
-| battery             | low-battery          | Switch               | Low battery                                      |
+| Channel Group | Channel Id          | Item Type            | Description                                      |
+| ------------- | ------------------- | -------------------- | ------------------------------------------------ |
+| humidity      | value               | Number:Dimensionless | Current humidity                                 |
+| humidity      | humidex             | Number               | Computed Humidex index                           |
+| humidity      | humidex-scale       | Number               | Humidex index appreciation                       |
+| temperature   | value               | Number:Temperature   | Current temperature                              |
+| temperature   | min-today           | Number:Temperature   | Minimum temperature on current day               |
+| temperature   | max-today           | Number:Temperature   | Maximum temperature on current day               |
+| temperature   | min-time            | DateTime             | Moment of today's minimum temperature            |
+| temperature   | max-time            | DateTime             | Moment of today's maximum temperature            |
+| temperature   | trend               | String               | Temperature evolution trend over time            |
+| temperature   | heat-index          | Number:Temperature   | Computed Heat Index                              |
+| temperature   | dewpoint            | Number:Temperature   | Computed dewpoint temperature                    |
+| temperature   | dewpoint-depression | Number:Temperature   | Computed dewpoint depression                     |
+| timestamp     | last-seen           | DateTime             | Last time the module reported its presence       |
+| timestamp     | measures            | DateTime             | Moment of the last measures update               |
+| signal        | strength            | Number               | Signal strength (0 for no signal, 1 for weak...) |
+| signal        | value               | Number:Power         | Signal strength in dBm                           |
+| battery       | value               | Number               | Battery level                                    |
+| battery       | low-battery         | Switch               | Low battery                                      |
 
 All these channels are read only.
 
 **Extensible channels for the outdoor module:**
 
-| Channel Type         | Item Type            | Description                       | Channel parameters               |
-|----------------------|----------------------|-----------------------------------|----------------------------------|
-| hum-measurement      | Number:Dimensionless | Humidity measurement              | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
-| hum-timestamp        | DateTime             | Humidity measurement timestamp    | limit (DATE_MIN, DATE_MAX), period (1week, 1month) |
-| temp-measurement     | Number:Temperature   | Temperature measurement           | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
-| temp-timestamp       | DateTime             | Temperature measurement timestamp | limit (DATE_MIN, DATE_MAX), period (1week, 1month) |
-
+| Channel Type     | Item Type            | Description                       | Channel parameters                                                   |
+| ---------------- | -------------------- | --------------------------------- | -------------------------------------------------------------------- |
+| hum-measurement  | Number:Dimensionless | Humidity measurement              | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
+| hum-timestamp    | DateTime             | Humidity measurement timestamp    | limit (DATE_MIN, DATE_MAX), period (1week, 1month)                   |
+| temp-measurement | Number:Temperature   | Temperature measurement           | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
+| temp-timestamp   | DateTime             | Temperature measurement timestamp | limit (DATE_MIN, DATE_MAX), period (1week, 1month)                   |
 
 ### Weather Station Additional Indoor module
 
-
 **Supported channels for the additional indoor module:**
 
-| Channel Group       | Channel Id           | Item Type            | Description                                      |
-|---------------------|----------------------|----------------------|--------------------------------------------------|
-| humidity            | value                | Number:Dimensionless | Current humidity                                 |
-| humidity            | humidex              | Number               | Computed Humidex index                           |
-| humidity            | humidex-scale        | Number               | Humidex index appreciation                       |
-| temperature         | value                | Number:Temperature   | Current temperature                              |
-| temperature         | min-today            | Number:Temperature   | Minimum temperature on current day               |
-| temperature         | max-today            | Number:Temperature   | Maximum temperature on current day               |
-| temperature         | min-time             | DateTime             | Moment of today's minimum temperature            |
-| temperature         | max-time             | DateTime             | Moment of today's maximum temperature            |
-| temperature         | trend                | String               | Temperature evolution trend over time            |
-| temperature         | heat-index           | Number:Temperature   | Computed Heat Index                              |
-| temperature         | dewpoint             | Number:Temperature   | Computed dewpoint temperature                    |
-| temperature         | dewpoint-depression  | Number:Temperature   | Computed dewpoint depression                     |
-| airquality          | co2                  | Number:Dimensionless | Air quality                                      |
-| timestamp           | last-seen            | DateTime             | Last time the module reported its presence       |
-| timestamp           | measures             | DateTime             | Moment of the last measures update               |
-| signal              | strength             | Number               | Signal strength (0 for no signal, 1 for weak...) |
-| signal              | value                | Number:Power         | Signal strength in dBm                           |
-| battery             | value                | Number               | Battery level                                    |
-| battery             | low-battery          | Switch               | Low battery                                      |
+| Channel Group | Channel Id          | Item Type            | Description                                      |
+| ------------- | ------------------- | -------------------- | ------------------------------------------------ |
+| humidity      | value               | Number:Dimensionless | Current humidity                                 |
+| humidity      | humidex             | Number               | Computed Humidex index                           |
+| humidity      | humidex-scale       | Number               | Humidex index appreciation                       |
+| temperature   | value               | Number:Temperature   | Current temperature                              |
+| temperature   | min-today           | Number:Temperature   | Minimum temperature on current day               |
+| temperature   | max-today           | Number:Temperature   | Maximum temperature on current day               |
+| temperature   | min-time            | DateTime             | Moment of today's minimum temperature            |
+| temperature   | max-time            | DateTime             | Moment of today's maximum temperature            |
+| temperature   | trend               | String               | Temperature evolution trend over time            |
+| temperature   | heat-index          | Number:Temperature   | Computed Heat Index                              |
+| temperature   | dewpoint            | Number:Temperature   | Computed dewpoint temperature                    |
+| temperature   | dewpoint-depression | Number:Temperature   | Computed dewpoint depression                     |
+| airquality    | co2                 | Number:Dimensionless | Air quality                                      |
+| timestamp     | last-seen           | DateTime             | Last time the module reported its presence       |
+| timestamp     | measures            | DateTime             | Moment of the last measures update               |
+| signal        | strength            | Number               | Signal strength (0 for no signal, 1 for weak...) |
+| signal        | value               | Number:Power         | Signal strength in dBm                           |
+| battery       | value               | Number               | Battery level                                    |
+| battery       | low-battery         | Switch               | Low battery                                      |
 
 All these channels are read only.
 
 **Extensible channels for the additional indoor module:**
 
-| Channel Type         | Item Type            | Description                       | Channel parameters               |
-|----------------------|----------------------|-----------------------------------|----------------------------------|
-| co2-measurement      | Number:Dimensionless | CO2 measurement                   | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
-| co2-timestamp        | DateTime             | CO2 measurement timestamp         | limit (DATE_MIN, DATE_MAX), period (1week, 1month) |
-| hum-measurement      | Number:Dimensionless | Humidity measurement              | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
-| hum-timestamp        | DateTime             | Humidity measurement timestamp    | limit (DATE_MIN, DATE_MAX), period (1week, 1month) |
-| temp-measurement     | Number:Temperature   | Temperature measurement           | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
-| temp-timestamp       | DateTime             | Temperature measurement timestamp | limit (DATE_MIN, DATE_MAX), period (1week, 1month) |
-
+| Channel Type     | Item Type            | Description                       | Channel parameters                                                   |
+| ---------------- | -------------------- | --------------------------------- | -------------------------------------------------------------------- |
+| co2-measurement  | Number:Dimensionless | CO2 measurement                   | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
+| co2-timestamp    | DateTime             | CO2 measurement timestamp         | limit (DATE_MIN, DATE_MAX), period (1week, 1month)                   |
+| hum-measurement  | Number:Dimensionless | Humidity measurement              | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
+| hum-timestamp    | DateTime             | Humidity measurement timestamp    | limit (DATE_MIN, DATE_MAX), period (1week, 1month)                   |
+| temp-measurement | Number:Temperature   | Temperature measurement           | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
+| temp-timestamp   | DateTime             | Temperature measurement timestamp | limit (DATE_MIN, DATE_MAX), period (1week, 1month)                   |
 
 ### Rain Gauge
 
-
 **Supported channels for the rain guage:**
 
-| Channel Group       | Channel Id           | Item Type            | Description                                      |
-|---------------------|----------------------|----------------------|--------------------------------------------------|
-| rain                | value                | Number:Speed         | Current precipitation intensity                  |
-| rain                | sum-1                | Number:Length        | Quantity of water over last hour                 |
-| rain                | sum-24               | Number:Length        | Quantity of water during the current day         |
-| timestamp           | last-seen            | DateTime             | Last time the module reported its presence       |
-| timestamp           | measures             | DateTime             | Moment of the last measures update               |
-| signal              | strength             | Number               | Signal strength (0 for no signal, 1 for weak...) |
-| signal              | value                | Number:Power         | Signal strength in dBm                           |
-| battery             | value                | Number               | Battery level                                    |
-| battery             | low-battery          | Switch               | Low battery                                      |
+| Channel Group | Channel Id  | Item Type     | Description                                      |
+| ------------- | ----------- | ------------- | ------------------------------------------------ |
+| rain          | value       | Number:Speed  | Current precipitation intensity                  |
+| rain          | sum-1       | Number:Length | Quantity of water over last hour                 |
+| rain          | sum-24      | Number:Length | Quantity of water during the current day         |
+| timestamp     | last-seen   | DateTime      | Last time the module reported its presence       |
+| timestamp     | measures    | DateTime      | Moment of the last measures update               |
+| signal        | strength    | Number        | Signal strength (0 for no signal, 1 for weak...) |
+| signal        | value       | Number:Power  | Signal strength in dBm                           |
+| battery       | value       | Number        | Battery level                                    |
+| battery       | low-battery | Switch        | Low battery                                      |
 
 All these channels are read only.
 
 **Extensible channels for the rain guage:**
 
-| Channel Type         | Item Type            | Description                       | Channel parameters                                 |
-|----------------------|----------------------|-----------------------------------|----------------------------------------------------|
-| sum_rain-measurement | Number:Length        | Summing rain measurement          | period (30min, 1hour, 3hours, 1day, 1week, 1month) |
-
+| Channel Type         | Item Type     | Description              | Channel parameters                                 |
+| -------------------- | ------------- | ------------------------ | -------------------------------------------------- |
+| sum_rain-measurement | Number:Length | Summing rain measurement | period (30min, 1hour, 3hours, 1day, 1week, 1month) |
 
 ### Weather Station Wind module
 
-
 **Supported channels for the wind module:**
 
-| Channel Group       | Channel Id           | Item Type            | Description                                      |
-|---------------------|----------------------|----------------------|--------------------------------------------------|
-| wind                | angle                | Number:Angle         | Current 5 minutes average wind direction         |
-| wind                | strength             | Number:Speed         | Current 5 minutes average wind speed             |
-| wind                | max-strength         | Number:Speed         | Maximum wind strength recorded                   |
-| wind                | max-strength-date    | DateTime             | Moment when MaxWindStrength was recorded         |
-| wind                | gust-angle           | Number:Angle         | Direction of the last 5 minutes highest gust     |
-| wind                | gust-strength        | Number:Speed         | Speed of the last 5 minutes highest gust wind    |
-| timestamp           | last-seen            | DateTime             | Last time the module reported its presence       |
-| timestamp           | measures             | DateTime             | Moment of the last measures update               |
-| signal              | strength             | Number               | Signal strength (0 for no signal, 1 for weak...) |
-| signal              | value                | Number:Power         | Signal strength in dBm                           |
-| battery             | value                | Number               | Battery level                                    |
-| battery             | low-battery          | Switch               | Low battery                                      |
+| Channel Group | Channel Id        | Item Type    | Description                                      |
+| ------------- | ----------------- | ------------ | ------------------------------------------------ |
+| wind          | angle             | Number:Angle | Current 5 minutes average wind direction         |
+| wind          | strength          | Number:Speed | Current 5 minutes average wind speed             |
+| wind          | max-strength      | Number:Speed | Maximum wind strength recorded                   |
+| wind          | max-strength-date | DateTime     | Moment when MaxWindStrength was recorded         |
+| wind          | gust-angle        | Number:Angle | Direction of the last 5 minutes highest gust     |
+| wind          | gust-strength     | Number:Speed | Speed of the last 5 minutes highest gust wind    |
+| timestamp     | last-seen         | DateTime     | Last time the module reported its presence       |
+| timestamp     | measures          | DateTime     | Moment of the last measures update               |
+| signal        | strength          | Number       | Signal strength (0 for no signal, 1 for weak...) |
+| signal        | value             | Number:Power | Signal strength in dBm                           |
+| battery       | value             | Number       | Battery level                                    |
+| battery       | low-battery       | Switch       | Low battery                                      |
 
 All these channels are read only.
 
-
 ### Healthy Home Coach Device
 
-
 **Supported channels for the healthy home coach device:**
 
-| Channel Group       | Channel Id           | Item Type            | Description                                      |
-|---------------------|----------------------|----------------------|--------------------------------------------------|
-| noise               | value                | Number:Dimensionless | Current noise level                              |
-| humidity            | value                | Number:Dimensionless | Current humidity                                 |
-| humidity            | humidex              | Number               | Computed Humidex index                           |
-| humidity            | humidex-scale        | Number               | Humidex index appreciation                       |
-| pressure            | value                | Number:Pressure      | Current pressure                                 |
-| pressure            | absolute             | Number:Pressure      | Pressure at sea level                            |
-| temperature         | value                | Number:Temperature   | Current temperature                              |
-| temperature         | min-today            | Number:Temperature   | Minimum temperature on current day               |
-| temperature         | max-today            | Number:Temperature   | Maximum temperature on current day               |
-| temperature         | min-time             | DateTime             | Moment of today's minimum temperature            |
-| temperature         | max-time             | DateTime             | Moment of today's maximum temperature            |
-| temperature         | heat-index           | Number:Temperature   | Computed Heat Index                              |
-| temperature         | dewpoint             | Number:Temperature   | Computed dewpoint temperature                    |
-| temperature         | dewpoint-depression  | Number:Temperature   | Computed dewpoint depression                     |
-| airquality          | health-index         | Number               | Health index (*)                                 |
-| airquality          | co2                  | Number:Dimensionless | Air quality                                      |
-| timestamp           | last-seen            | DateTime             | Last time the module reported its presence       |
-| timestamp           | measures             | DateTime             | Moment of the last measures update               |
-| signal              | strength             | Number               | Signal strength (0 for no signal, 1 for weak...) |
-| signal              | value                | Number:Power         | Signal strength in dBm                           |
-
-(*) Health index values : 
-
-- 0 : healthy 
-- 1 : fine 
-- 2 : fair 
+| Channel Group | Channel Id          | Item Type            | Description                                      |
+| ------------- | ------------------- | -------------------- | ------------------------------------------------ |
+| noise         | value               | Number:Dimensionless | Current noise level                              |
+| humidity      | value               | Number:Dimensionless | Current humidity                                 |
+| humidity      | humidex             | Number               | Computed Humidex index                           |
+| humidity      | humidex-scale       | Number               | Humidex index appreciation                       |
+| pressure      | value               | Number:Pressure      | Current pressure                                 |
+| pressure      | absolute            | Number:Pressure      | Pressure at sea level                            |
+| temperature   | value               | Number:Temperature   | Current temperature                              |
+| temperature   | min-today           | Number:Temperature   | Minimum temperature on current day               |
+| temperature   | max-today           | Number:Temperature   | Maximum temperature on current day               |
+| temperature   | min-time            | DateTime             | Moment of today's minimum temperature            |
+| temperature   | max-time            | DateTime             | Moment of today's maximum temperature            |
+| temperature   | heat-index          | Number:Temperature   | Computed Heat Index                              |
+| temperature   | dewpoint            | Number:Temperature   | Computed dewpoint temperature                    |
+| temperature   | dewpoint-depression | Number:Temperature   | Computed dewpoint depression                     |
+| airquality    | health-index        | Number               | Health index (*)                                 |
+| airquality    | co2                 | Number:Dimensionless | Air quality                                      |
+| timestamp     | last-seen           | DateTime             | Last time the module reported its presence       |
+| timestamp     | measures            | DateTime             | Moment of the last measures update               |
+| signal        | strength            | Number               | Signal strength (0 for no signal, 1 for weak...) |
+| signal        | value               | Number:Power         | Signal strength in dBm                           |
+
+(*) Health index values :
+
+- 0 : healthy
+- 1 : fine
+- 2 : fair
 - 3 : poor
 - 4 : unhealthy
 
@@ -384,49 +364,45 @@ All these channels are read only.
 
 **Extensible channels for the healthy home coach device:**
 
-| Channel Type         | Item Type            | Description                       | Channel parameters               |
-|----------------------|----------------------|-----------------------------------|----------------------------------|
+| Channel Type         | Item Type            | Description                       | Channel parameters                                                   |
+| -------------------- | -------------------- | --------------------------------- | -------------------------------------------------------------------- |
 | hum-measurement      | Number:Dimensionless | Humidity measurement              | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
-| hum-timestamp        | DateTime             | Humidity measurement timestamp    | limit (DATE_MIN, DATE_MAX), period (1week, 1month) |
+| hum-timestamp        | DateTime             | Humidity measurement timestamp    | limit (DATE_MIN, DATE_MAX), period (1week, 1month)                   |
 | noise-measurement    | Number:Dimensionless | Noise measurement                 | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
-| noise-timestamp      | DateTime             | Noise measurement timestamp       | limit (DATE_MIN, DATE_MAX), period (1week, 1month) |
+| noise-timestamp      | DateTime             | Noise measurement timestamp       | limit (DATE_MIN, DATE_MAX), period (1week, 1month)                   |
 | pressure-measurement | Number:Pressure      | Pressure measurement              | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
-| pressure-timestamp   | DateTime             | Pressure measurement timestamp    | limit (DATE_MIN, DATE_MAX), period (1week, 1month) |
+| pressure-timestamp   | DateTime             | Pressure measurement timestamp    | limit (DATE_MIN, DATE_MAX), period (1week, 1month)                   |
 | temp-measurement     | Number:Temperature   | Temperature measurement           | limit (MIN, MAX), period (30min, 1hour, 3hours, 1day, 1week, 1month) |
-| temp-timestamp       | DateTime             | Temperature measurement timestamp | limit (DATE_MIN, DATE_MAX), period (1week, 1month) |
-
-
+| temp-timestamp       | DateTime             | Temperature measurement timestamp | limit (DATE_MIN, DATE_MAX), period (1week, 1month)                   |
 
 ### Thermostat Relay Device
 
 **Supported channels for the thermostat relay device:**
 
-| 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                           |
+| 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                           |
 
 All these channels are read only.
 
-
 ### Thermostat Plug
 
 **Supported channels for the thermostat plug device:**
 
-| 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                           |
+| 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                           |
 
 All these channels are read only.
 
-
 ### Room
 
 **Supported channels for the Room thing:**
 
 | Channel Group | Channel Id            | Item Type            | Description                                             |
-|---------------|-----------------------|----------------------|---------------------------------------------------------|
+| ------------- | --------------------- | -------------------- | ------------------------------------------------------- |
 | temperature   | value                 | Number:Temperature   | Current temperature in the room                         |
 | properties    | window-open           | Contact              | Windows of the room are opened                          |
 | properties    | anticipating          | Switch               | Anticipates next scheduled setpoint                     |
@@ -438,13 +414,12 @@ All these channels are read only.
 
 All these channels except setpoint and setpoint-mode are read only.
 
-
 ### Thermostat Module
 
 **Supported channels for the thermostat module:**
 
 | Channel Group | Channel Id  | Item Type    | Description                                      |
-|---------------|-------------|--------------|--------------------------------------------------|
+| ------------- | ----------- | ------------ | ------------------------------------------------ |
 | properties    | relay       | Contact      | Indicates if the boiler is currently heating     |
 | signal        | strength    | Number       | Signal strength (0 for no signal, 1 for weak...) |
 | signal        | value       | Number:Power | Signal strength in dBm                           |
@@ -454,19 +429,17 @@ All these channels except setpoint and setpoint-mode are read only.
 
 (*) Can be UNDEF on some modules
 
-
 ### Valve Module
 
 **Supported channels for the Valve module:**
 
-| 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                           |
-| battery             | value              | Number               | Battery level                                    |
-| battery             | low-battery        | Switch               | Low battery                                      |
-| battery             | status             | String               | Description of the battery status (*)            |
-
+| 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                           |
+| battery       | value       | Number       | Battery level                                    |
+| battery       | low-battery | Switch       | Low battery                                      |
+| battery       | status      | String       | Description of the battery status (*)            |
 
 ### Welcome Home
 
@@ -474,44 +447,43 @@ All these channels are read only.
 
 **Supported channels for the Home thing:**
 
-| Channel Group       | Channel Id             | Item Type        | Description                                      |
-|---------------------|------------------------|------------------|--------------------------------------------------|
-| security            | person-count           | Number           | Total number of persons that are at home         |
-| 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       |
+| Channel Group | Channel Id             | Item Type | Description                                      |
+| ------------- | ---------------------- | --------- | ------------------------------------------------ |
+| security      | person-count           | Number    | Total number of persons that are at home         |
+| 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       |
 
 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                                                                                                                               |
+| 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
 
@@ -522,28 +494,28 @@ Warnings:
 
 **Supported channels for the Welcome Camera thing:**
 
-| 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)                                                                                                |
+| 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.
 
@@ -553,35 +525,35 @@ 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                                                                                                                                 |
-|----------------|----------------------|--------------|------------|---------------------------------------------------------------------------------------------------------------------------------------------|
-| 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)                                                                                                |
+| 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                                                                                                                                 |
-|---------------|-------------------|--------------|------------|---------------------------------------------------------------------------------------------------------------------------------------------|
+| ------------- | ----------------- | ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
 | 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                                                                                                                        |
@@ -602,46 +574,44 @@ Warnings:
 | 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.
 
 **Supported channels for the Siren thing:**
 
-| Channel Group | Channel ID        | Item Type    | Read/Write | Description                                          |
-|---------------|-------------------|--------------|------------|------------------------------------------------------|
-| 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                               |
-| timestamp     | last-seen         | DateTime     | Read-only  | Last time the module reported its presence           |
-| battery       | value             | Number       | Read-only  | Battery level                                        |
-| battery       | low-battery       | Switch       | Read-only  | Low battery                                          |
-
+| Channel Group | Channel ID  | Item Type    | Read/Write | Description                                         |
+| ------------- | ----------- | ------------ | ---------- | --------------------------------------------------- |
+| 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                              |
+| timestamp     | last-seen   | DateTime     | Read-only  | Last time the module reported its presence          |
+| battery       | value       | Number       | Read-only  | Battery level                                       |
+| battery       | low-battery | Switch       | Read-only  | Low battery                                         |
 
 **Supported channels for the Door Tag thing:**
 
-| Channel Group | Channel ID        | Item Type    | Read/Write | Description                                          |
-|---------------|-------------------|--------------|------------|------------------------------------------------------|
-| tag           | status            | Contact      | Read-only  | Status of tag (OPEN,CLOSED)                          |
-| signal        | strength          | Number       | Read-only  | Signal strength (0 for no signal, 1 for weak...)     |
-| signal        | value             | Number:Power | Read-only  | Signal strength in dBm                               |
-| timestamp     | last-seen         | DateTime     | Read-only  | Last time the module reported its presence           |
-| battery       | value             | Number       | Read-only  | Battery level                                        |
-| battery       | low-battery       | Switch       | Read-only  | Low battery                                          |
+| Channel Group | Channel ID  | Item Type    | Read/Write | Description                                      |
+| ------------- | ----------- | ------------ | ---------- | ------------------------------------------------ |
+| tag           | status      | Contact      | Read-only  | Status of tag (OPEN,CLOSED)                      |
+| signal        | strength    | Number       | Read-only  | Signal strength (0 for no signal, 1 for weak...) |
+| signal        | value       | Number:Power | Read-only  | Signal strength in dBm                           |
+| timestamp     | last-seen   | DateTime     | Read-only  | Last time the module reported its presence       |
+| battery       | value       | Number       | Read-only  | Battery level                                    |
+| battery       | low-battery | Switch       | Read-only  | Low battery                                      |
 
 ### Welcome Person
 
 Netatmo API distinguishes two kinds of persons:
 
-* Known persons : have been identified by the camera and you have defined a name for those.
-* Unknown persons : identified by the camera, but no name defined.
+- Known persons : have been identified by the camera and you have defined a name for those.
+- Unknown persons : identified by the camera, but no name defined.
 
 Person things are automatically created in discovery process for all known persons.
 
 **Supported channels for the Person thing:**
 
 | Channel Group | Channel ID   | Item Type | Description                                            |
-|---------------|--------------|-----------|--------------------------------------------------------|
+| ------------- | ------------ | --------- | ------------------------------------------------------ |
 | person        | avatar-url   | String    | URL for the avatar of this person                      |
 | person        | avatar       | Image     | Avatar of this person                                  |
 | person        | at-home      | Switch    | Indicates if this person is known to be at home or not |
@@ -655,29 +625,27 @@ Person things are automatically created in discovery process for all known perso
 
 All these channels except at-home are read only.
 
-
 ### Netatmo Smart Smoke Detector
 
 All these channels are read only.
 
 **Supported channels for the Smoke 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 person         |
-| last-event    | subtype      | String       | Sub-type of event                                |
-| last-event    | message      | String       | Last event message from this person              |
+| 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 person         |
+| last-event    | subtype    | String       | Sub-type of event                                |
+| last-event    | message    | String       | Last event message from this person              |
 
 ## Configuration Examples
 
-
 ### things/netatmo.things
 
-```
+```java
 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"] {
@@ -707,10 +675,9 @@ Bridge netatmo:account:myaccount "Netatmo Account" [clientId="xxxxx", clientSecr
 }
 ```
 
-
 ### items/netatmo.items
 
-```
+```java
 // Indoor Module
 Number:Temperature   Indoor_Temp                       "Temperature [%.1f %unit%]"                                  <temperature>      { channel = "netatmo:weather-station:myaccount:inside:temperature#value" }
 Number:Temperature   Indoor_Min_Temp                   "Min Temperature Today [%.1f %unit%]"                        <temperature>      { channel = "netatmo:weather-station:myaccount:inside:temperature#min-today" }
@@ -766,7 +733,7 @@ String               CameraEventPersonId               "Person Id [%s]"
 
 ### sitemaps/netatmo.sitemap
 
-```
+```perl
 sitemap netatmo label="Netatmo" {
     Frame label="Indoor" {
         Text item=Indoor_Temp
@@ -845,7 +812,7 @@ Multiple actions are supported by this binding. In classic rules these are acces
 
 Example
 
-```
+```java
  val actions = getActions("netatmo","netatmo:room:myaccount:myhome:livingroom")
  if(null === actions) {
         logInfo("actions", "Actions not found, check thing ID")
@@ -859,14 +826,14 @@ Sends a temperature setpoint (and switch to manual mode) to the thermostat for a
 
 Parameters:
 
-| Name    | Description                                                          |
-|---------|----------------------------------------------------------------------|
-| temp    | The temperature setpoint.                                            |
-| endtime | Time the setpoint should end (Local Unix time in seconds).           |
+| Name    | Description                                                |
+| ------- | ---------------------------------------------------------- |
+| temp    | The temperature setpoint.                                  |
+| endtime | Time the setpoint should end (Local Unix time in seconds). |
 
 Example:
 
-```
+```java
 actions.setThermRoomTempSetpoint(19.0, 1654387205)
 ```
 
@@ -876,14 +843,14 @@ Sends a mode to the thermostat for a room with an optional end time.
 
 Parameters:
 
-| Name    | Description                                                          |
-|---------|----------------------------------------------------------------------|
-| mode    | The mode to set: MANUAL, MAX or HOME.                                |
-| endtime | Time the setpoint should end (Local Unix time in seconds).           |
+| Name    | Description                                                |
+| ------- | ---------------------------------------------------------- |
+| mode    | The mode to set: MANUAL, MAX or HOME.                      |
+| endtime | Time the setpoint should end (Local Unix time in seconds). |
 
 Example:
 
-```
+```java
 actions.setThermRoomModeSetpoint("MANUAL", 1654387205)
 actions.setThermRoomModeSetpoint("HOME", null)
 ```
@@ -893,42 +860,35 @@ actions.setThermRoomModeSetpoint("HOME", null)
 If you want to evaluate this binding but have not got a Netatmo station yourself
 yet, you can search on the web for a publicly shared weather station.
 
-
 ## Icons
 
 The following icons are used by original Netatmo web app:
 
-
 ### Modules
 
-- https://my.netatmo.com/images/my/app/module_int.png
-- https://my.netatmo.com/images/my/app/module_ext.png
-- https://my.netatmo.com/images/my/app/module_rain.png
-
+- `https://my.netatmo.com/images/my/app/module_int.png`
+- `https://my.netatmo.com/images/my/app/module_ext.png`
+- `https://my.netatmo.com/images/my/app/module_rain.png`
 
 ### Battery status
 
-- https://my.netatmo.com/images/my/app/battery_verylow.png
-- https://my.netatmo.com/images/my/app/battery_low.png
-- https://my.netatmo.com/images/my/app/battery_medium.png
-- https://my.netatmo.com/images/my/app/battery_high.png
-- https://my.netatmo.com/images/my/app/battery_full.png
-
+- `https://my.netatmo.com/images/my/app/battery_verylow.png`
+- `https://my.netatmo.com/images/my/app/battery_low.png`
+- `https://my.netatmo.com/images/my/app/battery_medium.png`
+- `https://my.netatmo.com/images/my/app/battery_high.png`
+- `https://my.netatmo.com/images/my/app/battery_full.png`
 
 ### Signal status
 
-- https://my.netatmo.com/images/my/app/signal_verylow.png
-- https://my.netatmo.com/images/my/app/signal_low.png
-- https://my.netatmo.com/images/my/app/signal_medium.png
-- https://my.netatmo.com/images/my/app/signal_high.png
-- https://my.netatmo.com/images/my/app/signal_full.png
-
+- `https://my.netatmo.com/images/my/app/signal_verylow.png`
+- `https://my.netatmo.com/images/my/app/signal_low.png`
+- `https://my.netatmo.com/images/my/app/signal_medium.png`
+- `https://my.netatmo.com/images/my/app/signal_high.png`
+- `https://my.netatmo.com/images/my/app/signal_full.png`
 
 ### Wifi status
 
-- https://my.netatmo.com/images/my/app/wifi_low.png
-- https://my.netatmo.com/images/my/app/wifi_medium.png
-- https://my.netatmo.com/images/my/app/wifi_high.png
-- https://my.netatmo.com/images/my/app/wifi_full.png
-
-
+- `https://my.netatmo.com/images/my/app/wifi_low.png`
+- `https://my.netatmo.com/images/my/app/wifi_medium.png`
+- `https://my.netatmo.com/images/my/app/wifi_high.png`
+- `https://my.netatmo.com/images/my/app/wifi_full.png`
index 71c6ac9c998dc707aa7c666f234cfe7dae64f4b8..7598735f98bbd4f035333dda0e612600b0a75b80 100644 (file)
@@ -9,15 +9,15 @@ It is also capable to perform bandwidth speed tests.
 
 The binding has the following configuration options:
 
--   **allowSystemPings:** Use the external ICMP ping program of the operating system instead of the Java ping. Useful if the devices cannot be reached by Java ping. Default is true.
--   **allowDHCPlisten:**  If devices leave and reenter a network, they usually request their last IPv4 address by using DHCP requests. By listening for those messages, the status update can be more "real-time" without having to wait for the next refresh cycle. Default is true.
--   **arpPingToolPath:** If the arp ping tool is not called `arping` and cannot be found in the PATH environment variable, the absolute path can be configured here. Default is `arping`.
--   **cacheDeviceStateTimeInMS:** The result of a device presence detection is cached for a small amount of time. Set this time here in milliseconds. Be aware that no new pings will be issued within this time frame, even if explicitly requested. Default is 2000.
--   **preferResponseTimeAsLatency:** If enabled, an attempt will be made to extract the latency from the output of the ping command. If no such latency value is found in the ping command output, the time to execute the ping command is used as fallback latency. If disabled, the time to execute the ping command is always used as latency value. This is disabled by default to be backwards-compatible and to not break statistics and monitoring which existed before this feature.
+- **allowSystemPings:** Use the external ICMP ping program of the operating system instead of the Java ping. Useful if the devices cannot be reached by Java ping. Default is true.
+- **allowDHCPlisten:**  If devices leave and reenter a network, they usually request their last IPv4 address by using DHCP requests. By listening for those messages, the status update can be more "real-time" without having to wait for the next refresh cycle. Default is true.
+- **arpPingToolPath:** If the arp ping tool is not called `arping` and cannot be found in the PATH environment variable, the absolute path can be configured here. Default is `arping`.
+- **cacheDeviceStateTimeInMS:** The result of a device presence detection is cached for a small amount of time. Set this time here in milliseconds. Be aware that no new pings will be issued within this time frame, even if explicitly requested. Default is 2000.
+- **preferResponseTimeAsLatency:** If enabled, an attempt will be made to extract the latency from the output of the ping command. If no such latency value is found in the ping command output, the time to execute the ping command is used as fallback latency. If disabled, the time to execute the ping command is always used as latency value. This is disabled by default to be backwards-compatible and to not break statistics and monitoring which existed before this feature.
 
 Create a `<openHAB-conf>/services/network.cfg` file and use the above options like this:
 
-```
+```text
 binding.network:allowSystemPings=true
 binding.network:allowDHCPlisten=false
 binding.network:arpPingToolPath=arping
@@ -26,9 +26,9 @@ binding.network:cacheDeviceStateTimeInMS=2000
 
 ## Supported Things
 
--   **pingdevice:** Detects device presence by using ICMP pings, arp pings and dhcp packet sniffing.
--   **servicedevice:** Detects device presence by scanning for a specific open tcp port.
--   **speedtest:** Monitors available bandwidth for upload and download.
+- **pingdevice:** Detects device presence by using ICMP pings, arp pings and dhcp packet sniffing.
+- **servicedevice:** Detects device presence by scanning for a specific open tcp port.
+- **speedtest:** Monitors available bandwidth for upload and download.
 
 ## Discovery
 
@@ -39,7 +39,7 @@ Please note: things discovered by the network binding will be provided with a ti
 
 ## Thing Configuration
 
-```
+```java
 network:pingdevice:one_device [ hostname="192.168.0.64" ]
 network:pingdevice:second_device [ hostname="192.168.0.65", macAddress="6f:70:65:6e:48:41", retry=1, timeout=5000, refreshInterval=60000 ]
 network:servicedevice:important_server [ hostname="192.168.0.62", port=1234 ]
@@ -48,24 +48,24 @@ network:speedtest:local "SpeedTest 50Mo" @ "Internet" [refreshInterval=20, uploa
 
 Use the following options for a **network:pingdevice**:
 
--   **hostname:** IP address or hostname of the device.
--   **macAddress:** MAC address used for waking the device by the Wake-on-LAN action.
--   **retry:** After how many refresh interval cycles the device will be assumed to be offline. Default: `1`.
--   **timeout:** How long the ping will wait for an answer, in milliseconds. Default: `5000` (5 seconds).
--   **refreshInterval:** How often the device will be checked, in milliseconds. Default: `60000` (one minute).
+- **hostname:** IP address or hostname of the device.
+- **macAddress:** MAC address used for waking the device by the Wake-on-LAN action.
+- **retry:** After how many refresh interval cycles the device will be assumed to be offline. Default: `1`.
+- **timeout:** How long the ping will wait for an answer, in milliseconds. Default: `5000` (5 seconds).
+- **refreshInterval:** How often the device will be checked, in milliseconds. Default: `60000` (one minute).
 
 Use the following additional options for a **network:servicedevice**:
 
--   **port:** Must not be 0. The destination port needs to be a TCP service.
+- **port:** Must not be 0. The destination port needs to be a TCP service.
 
 Use the following options for a **network:speedtest**:
 
--   **refreshInterval:** Interval between each test execution, in minutes. Default: `20`.
--   **uploadSize:** Size of the file to be uploaded in bytes. Default: `1000000`.
--   **url:** Url of the speed test server.
--   **fileName:** Name of the file to download from test server.
--   **initialDelay:** Delay (in minutes) before starting the first speed test (can help avoid flooding your server at startup). Default: `5`.
--   **maxTimeout:** Number of timeout events that can happend (resetted at success) before setting the thing offline. Default: `3`.
+- **refreshInterval:** Interval between each test execution, in minutes. Default: `20`.
+- **uploadSize:** Size of the file to be uploaded in bytes. Default: `1000000`.
+- **url:** Url of the speed test server.
+- **fileName:** Name of the file to download from test server.
+- **initialDelay:** Delay (in minutes) before starting the first speed test (can help avoid flooding your server at startup). Default: `5`.
+- **maxTimeout:** Number of timeout events that can happend (resetted at success) before setting the thing offline. Default: `3`.
 
 ## Presence detection - Configure target device
 
@@ -89,15 +89,15 @@ Use DHCP listen for an almost immediate presence detection for phones and tablet
 Apple iOS devices are usually in a deep sleep mode and do not respond to ARP pings under all conditions, but to Bonjour service discovery messages (UDP port 5353).
 Therefore first a Bonjour message is sent, before the ARP presence detection is performed.
 The binding automatically figures out if the target device is an iOS device.
-To check if the binding has correctly recognised a device, have a look at the *uses_ios_wakeup* property of the THING.
+To check if the binding has correctly recognised a device, have a look at the _uses_ios_wakeup_ property of the THING.
 
 ### Use open TCP ports
 
 Many devices provide services on TCP ports (web-frontends, streaming servers, etc.), which can be used to confirm their presence in the network.
 Most operating systems have options to list open ports.
-On a Linux-based system, *nmap* may be used to discover all open TCP ports on the device with the specified IP address:
+On a Linux-based system, _nmap_ may be used to discover all open TCP ports on the device with the specified IP address:
 
-```
+```shell
 $ sudo nmap -Pn -sT -p- 192.168.0.42
 
 Starting Nmap 6.47 ( http://nmap.org ) at 2016-07-31 20:00 CEST
@@ -128,10 +128,10 @@ Because external tools are used for some of the presence detection mechanism or
 For arp pings to work, a separate tool called "arping" is used.
 Linux has three different tools:
 
-*   arp-scan (not yet supported by this binding)
-*   arping of the ip-utils (Ubuntu/Debian: `apt-get install iputils-arping`)
-*   arping by Thomas Habets (Ubuntu/Debian: `apt-get install arping`)
-*   arp-ping by Eli Fulkerson (Windows: https://www.elifulkerson.com/projects/arp-ping.php)
+- arp-scan (not yet supported by this binding)
+- arping of the ip-utils (Ubuntu/Debian: `apt-get install iputils-arping`)
+- arping by Thomas Habets (Ubuntu/Debian: `apt-get install arping`)
+- arp-ping by Eli Fulkerson (Windows: <https://www.elifulkerson.com/projects/arp-ping.php>)
 
 arping by Thomas Habets runs on Windows and macOS as well.
 
@@ -144,7 +144,7 @@ Just test the executable on the command line; if `sudo` is required, grant eleva
 
 Some operating systems such as Linux restrict applications to only use ports >= 1024 without elevated privileges.
 If the binding is not able to use port 67 (DHCP) because of such a restriction, or because the same system is used as a DHCP server, port 6767 will be used instead.
-Check the property *dhcp_state* on the THING for such a hint. In this case, establish port forwarding:
+Check the property _dhcp_state_ on the THING for such a hint. In this case, establish port forwarding:
 
 ```shell
 sysctl -w net.ipv4.ip_forward=1
@@ -159,7 +159,7 @@ iptables -A PREROUTING -t mangle -p udp ! -s 127.0.0.1 --dport 67 -j TEE --gatew
 iptables -A OUTPUT -t nat -p udp -s 127.0.0.1/32 --dport 67 -j DNAT --to 127.0.0.1:6767
 ```
 
-Above iptables solutions to check *dhcp_state* are not working when openHAB is started in Docker. Use another workaround
+Above iptables solutions to check _dhcp_state_ are not working when openHAB is started in Docker. Use another workaround
 
 ```shell
 iptables -I PREROUTING -t nat -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767
@@ -185,14 +185,14 @@ Things support the following channels:
 
 demo.things:
 
-```xtend
+```java
 Thing network:pingdevice:devicename [ hostname="192.168.0.42", macAddress="6f:70:65:6e:48:41" ]
 Thing network:speedtest:local "SpeedTest 50Mo" @ "Internet" [url="https://bouygues.testdebit.info/", fileName="50M.iso"]
 ```
 
 demo.items:
 
-```xtend
+```java
 Switch MyDevice { channel="network:pingdevice:devicename:online" }
 Number:Time MyDeviceResponseTime { channel="network:pingdevice:devicename:latency" }
 
@@ -207,13 +207,14 @@ DateTime Speedtest_LUD "Timestamp [%1$tH:%1$tM]" <time> {channel="network:speedt
 
 demo.sitemap:
 
-```xtend
+```perl
 sitemap demo label="Main Menu"
 {
-       Frame {
-               Text item=MyDevice label="Device [%s]"
-               Text item=MyDeviceResponseTime label="Device Response Time [%s]"
-       }
+    Frame {
+        Text item=MyDevice label="Device [%s]"
+        Text item=MyDeviceResponseTime label="Device Response Time [%s]"
+    }
+    
     Frame label="SpeedTest" {
         Text item=Speedtest_Start
         Switch item=Speedtest_Running
@@ -244,7 +245,7 @@ sitemap demo label="Main Menu"
 A Wake-on-LAN action is supported by this binding for the `pingdevice` and `servicedevice` thing types.
 In classic rules this action is accessible as shown in the example below:
 
-```
+```java
 val actions = getActions("network", "network:pingdevice:devicename")
 if (actions === null) {
     logInfo("actions", "Actions not found, check thing ID")
index 342ee2631a8780bf324f44cd1ec564803a6c9a49..861abcf07013c8594904490959d8a8a235303ab7 100644 (file)
@@ -21,16 +21,15 @@ Some of these could change, like of firmware version.
 Therefore these properties are updated with a 1 hour frequency.
 The following NUT variables are read and added to the thing as properties:
 
-| Property         | Description
-|------------------|----------------------------------------
-| ups.firmware     | UPS firmware
-| ups.firmware.aux | Auxiliary device firmware
-| ups.id           | UPS system identifier
-| ups.mfr          | UPS manufacturer
-| ups.mfr.date     | UPS manufacturing date
-| ups.model        | UPS model
-| ups.serial       | UPS serial number
-
+| Property         | Description               |
+| ---------------- | ------------------------- |
+| ups.firmware     | UPS firmware              |
+| ups.firmware.aux | Auxiliary device firmware |
+| ups.id           | UPS system identifier     |
+| ups.mfr          | UPS manufacturer          |
+| ups.mfr.date     | UPS manufacturing date    |
+| ups.model        | UPS model                 |
+| ups.serial       | UPS serial number         |
 
 ## Discovery
 
@@ -42,41 +41,41 @@ The thing configuration requires the name of the UPS device as configured on the
 If the NUT service isn't running locally the ip address or domain name (FDQN) of the server running NUT must be configured.
 Optional, port, username and password might need to be configured if required.
 
-| Parameter | Default   | Mandatory | Description
-|-----------|-----------|----------|-------------
-| device    |           |   Yes    | UPS device name, `ups` for example
-| host      | localhost |   Yes    | UPS server hostname
-| port      | 3493      |   No     | UPS server port, 3493 for example
-| username  |           |   No     | UPS server username
-| password  |           |   No     | UPS server password
-| refresh   | 60        |   No     | Refresh interval for channel updates in seconds
+| Parameter | Default   | Mandatory | Description                                     |
+| --------- | --------- | --------- | ----------------------------------------------- |
+| device    |           | Yes       | UPS device name, `ups` for example              |
+| host      | localhost | Yes       | UPS server hostname                             |
+| port      | 3493      | No        | UPS server port, 3493 for example               |
+| username  |           | No        | UPS server username                             |
+| password  |           | No        | UPS server password                             |
+| refresh   | 60        | No        | Refresh interval for channel updates in seconds |
 
 ## Channels
 
 The following channels are available:
 
-| Channel Name               | Item Type                | Unit | Description                                                                        | Advanced      |
-|----------------------------|--------------------------|------|------------------------------------------------------------------------------------|---------------|
-| upsAlarm                   | String                   |      | UPS alarms                                                                         | no            |
-| upsLoad                    | Number:Dimensionless     | %    | Load on UPS (percent)                                                              | yes           |
-| upsPower                   | Number:Power             | VA   | Current value of apparent power (Volt-Amps)                                        | yes           |
-| upsRealpower               | Number:Power             | W    | Current value of real power (Watts)                                                | no            |
-| upsStatus                  | String                   |      | Status of the UPS: OFF, OL,OB,LB,RB,OVER,TRIM,BOOST,CAL,BYPASS,NULL                | no            |
-| upsTemperature             | Number:Temperature       | °C   | UPS temperature (degrees C)                                                        | yes           |
-| upsTestResult              | String                   |      | Results of last self test (opaque string)                                          | yes           |
-| inputCurrent               | Number:ElectricCurrent   | A    | Input current (A)                                                                  | yes           |
-| inputCurrentStatus         | String                   |      | Status relative to the thresholds                                                  | yes           |
-| inputLoad                  | Number:Dimensionless     | %    | Load on (ePDU) input (percent of full)                                             | no            |
-| inputRealpower             | Number:Power             | W    | Current sum value of all (ePDU) phases real power (W)                              | yes           |
-| inputQuality               | String                   |      | Input power quality (*** opaque)                                                   | yes           |
-| inputTransferReason        | String                   |      | Reason for last transfer to battery (*** opaque)                                   | yes           |
-| inputVoltage               | Number:ElectricPotential | V    | Input voltage (V)                                                                  | yes           |
-| inputVoltageStatus         | String                   |      | Status relative to the thresholds                                                  | yes           |
-| outputCurrent              | Number:ElectricCurrent   | A    | Output current (A)                                                                 | yes           |
-| outputVoltage              | Number:ElectricPotential | V    | Output voltage (V)                                                                 | yes           |
-| batteryCharge              | Number:Dimensionless     | %    | Battery charge (percent)                                                           | no            |
-| batteryRuntime             | Number:Time              | s    | Battery runtime (seconds)                                                          | no            |
-| batteryVoltage             | Number:ElectricPotential | V    | Battery voltage (V)                                                                | yes           |
+| Channel Name        | Item Type                | Unit | Description                                                         | Advanced |
+| ------------------- | ------------------------ | ---- | ------------------------------------------------------------------- | -------- |
+| upsAlarm            | String                   |      | UPS alarms                                                          | no       |
+| upsLoad             | Number:Dimensionless     | %    | Load on UPS (percent)                                               | yes      |
+| upsPower            | Number:Power             | VA   | Current value of apparent power (Volt-Amps)                         | yes      |
+| upsRealpower        | Number:Power             | W    | Current value of real power (Watts)                                 | no       |
+| upsStatus           | String                   |      | Status of the UPS: OFF, OL,OB,LB,RB,OVER,TRIM,BOOST,CAL,BYPASS,NULL | no       |
+| upsTemperature      | Number:Temperature       | °C   | UPS temperature (degrees C)                                         | yes      |
+| upsTestResult       | String                   |      | Results of last self test (opaque string)                           | yes      |
+| inputCurrent        | Number:ElectricCurrent   | A    | Input current (A)                                                   | yes      |
+| inputCurrentStatus  | String                   |      | Status relative to the thresholds                                   | yes      |
+| inputLoad           | Number:Dimensionless     | %    | Load on (ePDU) input (percent of full)                              | no       |
+| inputRealpower      | Number:Power             | W    | Current sum value of all (ePDU) phases real power (W)               | yes      |
+| inputQuality        | String                   |      | Input power quality (*** opaque)                                    | yes      |
+| inputTransferReason | String                   |      | Reason for last transfer to battery (*** opaque)                    | yes      |
+| inputVoltage        | Number:ElectricPotential | V    | Input voltage (V)                                                   | yes      |
+| inputVoltageStatus  | String                   |      | Status relative to the thresholds                                   | yes      |
+| outputCurrent       | Number:ElectricCurrent   | A    | Output current (A)                                                  | yes      |
+| outputVoltage       | Number:ElectricPotential | V    | Output voltage (V)                                                  | yes      |
+| batteryCharge       | Number:Dimensionless     | %    | Battery charge (percent)                                            | no       |
+| batteryRuntime      | Number:Time              | s    | Battery runtime (seconds)                                           | no       |
+| batteryVoltage      | Number:ElectricPotential | V    | Battery voltage (V)                                                 | yes      |
 
 ### Dynamic Channels
 
@@ -86,23 +85,22 @@ Channels can be created with as type: `Number`, `Number:<Quantity>`, `String` or
 
 The following channel properties are needed:
 
-| Property        | Description                    | Example
-|-----------------|--------------------------------|-----------------
-| networkupstools | Links to NUT variable          | `networkupstools="input.voltage.low.warning"`
-| unit            | The unit of Quantity Type data | `unit="V"`
+| Property        | Description                    | Example                                       |
+| --------------- | ------------------------------ | --------------------------------------------- |
+| networkupstools | Links to NUT variable          | `networkupstools="input.voltage.low.warning"` |
+| unit            | The unit of Quantity Type data | `unit="V"`                                    |
 
 ## Full Example
 
-
 ups.things:
 
-```
+```java
 Thing networkupstools:ups:ups1 [ device="ups", host="localhost", refresh=60 ]
 ```
 
 ups-with-channels.things:
 
-```
+```java
 Thing networkupstools:ups:ups2 [ device="ups", host="localhost", refresh=60 ] {
     Channels:
         String : testResult "Test Result" [networkupstools="ups.test.result"]
@@ -114,7 +112,7 @@ Thing networkupstools:ups:ups2 [ device="ups", host="localhost", refresh=60 ] {
 
 ups.items
 
-```
+```java
 Number:Dimensionless ups_battery_charge "Battery Charge [%d %%]"  {channel="networkupstools:ups:ups1:batteryCharge"}
 Number:ElectricCurrent ups_current "Input Current [%d mA]"{channel="networkupstools:ups:ups1:inputCurrent"}
 
index d8aff84a8eb94aece09c15e19eb0e05fc63d16b7..82a8ce0c3619383c739c8c9d7b056e0c6f69e60e 100644 (file)
@@ -17,7 +17,7 @@ Write mode needs to be enabled in the thing configuration and for safety reasons
 This binding supports direct serial port connection (RS-485 adapter needed) to heat pump but also UDP connection via NibeGW software.
 
 | Thing type      | Description                                      |
-|-----------------|--------------------------------------------------|
+| --------------- | ------------------------------------------------ |
 | f1x45-serial    | Serial port connected F1145 and F1245 Heat Pumps |
 | f1x45-udp       | UDP connected Nibe F1145 and F1245 Heat Pumps    |
 | f1x45-simulator | Simulator for Nibe F1145 and F1245 Heat Pumps    |
@@ -36,7 +36,7 @@ This binding supports direct serial port connection (RS-485 adapter needed) to h
 
 ## Discovery
 
-Discovery is not supported. 
+Discovery is not supported.
 
 ## Prerequisites
 
@@ -65,7 +65,7 @@ PRODINo boards have built-in Ethernet and RS-485 ports.
 Arduino code is available [here](https://github.com/openhab/openhab-addons/tree/main/bundles/org.openhab.binding.nibeheatpump/contrib/NibeGW/Arduino/NibeGW).
 
 Arduino code can be build via Arduino IDE.
-For more details see [www.arduino.cc](https://www.arduino.cc/en/Main/Software). 
+For more details see [www.arduino.cc](https://www.arduino.cc/en/Main/Software).
 NibeGW configuration (such IP addresses, ports, etc) can be adapted directly by editing the code files.
 PRODINo ESP32 Ethernet v1 also supports dynamic configuration and OTA updates via Wi-Fi access point.
 
@@ -73,7 +73,7 @@ PRODINo ESP32 Ethernet v1 also supports dynamic configuration and OTA updates vi
 
 C code is available [here](https://github.com/openhab/openhab-addons/tree/main/bundles/org.openhab.binding.nibeheatpump/contrib/NibeGW/RasPi).
 
-To build the C code use: 
+To build the C code use:
 
 ```shell
 gcc -std=gnu99 -o nibegw nibegw.c
@@ -122,51 +122,49 @@ The following information is useful when configuring things via thing configurat
 
 Thing examples:
 
-```
+```java
 nibeheatpump:f1x45-udp:myPump [hostName="192.168.1.50", port=9999]
 ```
 
-```
+```java
 nibeheatpump:f1x45-udp:myPump [hostName="192.168.1.50", port=9999, readCommandsPort=10000, writeCommandsPort=10001, refreshInterval=30, enableReadCommands=true, enableWriteCommands=true, enableWriteCommandsToRegisters="44266, 47004"]
 ```
 
 All supported configuration parameters for UDP connection:
 
-| Property                        | Type    | Default | Required | Description |
-|---------------------------------|---------|---------|----------|-------------|
-| hostName                        | String  |         | Yes      | Network address of the Nibe heat pump |
-| port                            | Integer | 9999    | No       | UDP port to listening data packets from the NibeGW |
-| readCommandsPort                | Integer | 9999    | No       | UDP port to send read commands to the NibeGW |
-| writeCommandsPort               | Integer | 10000   | No       | UDP port to send write commands to the NibeGW |
-| refreshInterval                 | Integer | 60      | No       | States how often a refresh shall occur in seconds |
-| enableReadCommands              | Boolean | false   | No       | Enable read commands to read additional variable from Nibe heat pump which are not included to data readout messages. This is experimental feature, use it at your own risk! |
-| enableWriteCommands             | Boolean | false   | No       | Enable write commands to change Nibe heat pump settings. This is experimental feature, use it at your own risk! |
-| enableWriteCommandsToRegisters  | String  |         | No       | Comma separated list of registers, which are allowed to write to Nibe heat pump. E.g. 44266, 47004 |
-| throttleTime                    | Integer | 0       | No       | Throttle incoming data read out messages from heat pump. 0 = throttle is disabled, otherwise throttle time in milliseconds. |
+| Property                       | Type    | Default | Required | Description                                                                                                                                                                  |
+| ------------------------------ | ------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| hostName                       | String  |         | Yes      | Network address of the Nibe heat pump                                                                                                                                        |
+| port                           | Integer | 9999    | No       | UDP port to listening data packets from the NibeGW                                                                                                                           |
+| readCommandsPort               | Integer | 9999    | No       | UDP port to send read commands to the NibeGW                                                                                                                                 |
+| writeCommandsPort              | Integer | 10000   | No       | UDP port to send write commands to the NibeGW                                                                                                                                |
+| refreshInterval                | Integer | 60      | No       | States how often a refresh shall occur in seconds                                                                                                                            |
+| enableReadCommands             | Boolean | false   | No       | Enable read commands to read additional variable from Nibe heat pump which are not included to data readout messages. This is experimental feature, use it at your own risk! |
+| enableWriteCommands            | Boolean | false   | No       | Enable write commands to change Nibe heat pump settings. This is experimental feature, use it at your own risk!                                                              |
+| enableWriteCommandsToRegisters | String  |         | No       | Comma separated list of registers, which are allowed to write to Nibe heat pump. E.g. 44266, 47004                                                                           |
+| throttleTime                   | Integer | 0       | No       | Throttle incoming data read out messages from heat pump. 0 = throttle is disabled, otherwise throttle time in milliseconds.                                                  |
 
 ### Serial port connection
 
 Thing example:
 
-```
+```java
 nibeheatpump:f1x45-serial:myPump [serialPort="/dev/ttyUSB0"]
 ```
 
-
 All supported configuration parameters for serial port connection:
 
-| Property                        | Type    | Default | Required | Description |
-|---------------------------------|---------|---------|----------|-------------|
-| serialPort                      | String  |         | Yes      | Network address of the Nibe heat pump |
-| refreshInterval                 | Integer | 60      | No       | States how often a refresh shall occur in seconds |
-| enableReadCommands              | Boolean | false   | No       | Enable read commands to read additional variable from Nibe heat pump which are not included to data readout messages. This is experimental feature, use it at your own risk! |
-| enableWriteCommands             | Boolean | false   | No       | Enable write commands to change Nibe heat pump settings. This is experimental feature, use it at your own risk! |
-| enableWriteCommandsToRegisters  | String  |         | No       | Comma separated list of registers, which are allowed to write to Nibe heat pump. E.g. 44266, 47004 |
-| sendAckToMODBUS40               | Boolean | true    | No       | Binding emulates MODBUS40 device and send protocol acknowledges to heat pump |
-| sendAckToRMU40                  | Boolean | false   | No       | Binding emulates RMU40 device and send protocol acknowledges to heat pump |
-| sendAckToSMS40                  | Boolean | false   | No       | Binding emulates SMS40 device and send protocol acknowledges to heat pump |
-| throttleTime                    | Integer | 0       | No       | Throttle incoming data read out messages from heat pump. 0 = throttle is disabled, otherwise throttle time in milliseconds. |
-
+| Property                       | Type    | Default | Required | Description                                                                                                                                                                  |
+| ------------------------------ | ------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| serialPort                     | String  |         | Yes      | Network address of the Nibe heat pump                                                                                                                                        |
+| refreshInterval                | Integer | 60      | No       | States how often a refresh shall occur in seconds                                                                                                                            |
+| enableReadCommands             | Boolean | false   | No       | Enable read commands to read additional variable from Nibe heat pump which are not included to data readout messages. This is experimental feature, use it at your own risk! |
+| enableWriteCommands            | Boolean | false   | No       | Enable write commands to change Nibe heat pump settings. This is experimental feature, use it at your own risk!                                                              |
+| enableWriteCommandsToRegisters | String  |         | No       | Comma separated list of registers, which are allowed to write to Nibe heat pump. E.g. 44266, 47004                                                                           |
+| sendAckToMODBUS40              | Boolean | true    | No       | Binding emulates MODBUS40 device and send protocol acknowledges to heat pump                                                                                                 |
+| sendAckToRMU40                 | Boolean | false   | No       | Binding emulates RMU40 device and send protocol acknowledges to heat pump                                                                                                    |
+| sendAckToSMS40                 | Boolean | false   | No       | Binding emulates SMS40 device and send protocol acknowledges to heat pump                                                                                                    |
+| throttleTime                   | Integer | 0       | No       | Throttle incoming data read out messages from heat pump. 0 = throttle is disabled, otherwise throttle time in milliseconds.                                                  |
 
 ## Channels
 
@@ -175,7 +173,7 @@ All supported configuration parameters for serial port connection:
 This binding currently supports following channels for F1x45 pump models:
 
 | Channel Type ID | Item Type | Min         | Max        | Type    | Description                                              | Values                                                                                                                                                             |
-|-----------------|-----------|-------------|------------|---------|----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| --------------- | --------- | ----------- | ---------- | ------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
 | 40004           | Number    | -32767      | 32767      | Setting | BT1 Outdoor temp                                         |                                                                                                                                                                    |
 | 40005           | Number    | -32767      | 32767      | Setting | EP23-BT2 Supply temp S4                                  |                                                                                                                                                                    |
 | 40006           | Number    | -32767      | 32767      | Setting | EP22-BT2 Supply temp S3                                  |                                                                                                                                                                    |
@@ -807,10 +805,10 @@ This binding currently supports following channels for F1x45 pump models:
 | 47370           | Switch    | 0           | 1          | Setting | Allow Additive Heating                                   |                                                                                                                                                                    |
 | 47371           | Switch    | 0           | 1          | Setting | Allow Heating                                            |                                                                                                                                                                    |
 | 47372           | Switch    | 0           | 1          | Setting | Allow Cooling                                            |                                                                                                                                                                    |
-| 47374           | Number    | -200        | 400        | Setting | Start Temperature Cooling                                |                                                                                                                                                       |
+| 47374           | Number    | -200        | 400        | Setting | Start Temperature Cooling                                |                                                                                                                                                                    |
 | 47375           | Number    | -200        | 400        | Setting | Stop Temperature Heating                                 |                                                                                                                                                                    |
 | 47376           | Number    | -250        | 400        | Setting | Stop Temperature Additive                                |                                                                                                                                                                    |
-| 47377           | Number    | 0           | 48         | Setting | Outdoor Filter Time                                      |                                                                                                                                             |
+| 47377           | Number    | 0           | 48         | Setting | Outdoor Filter Time                                      |                                                                                                                                                                    |
 | 47378           | Number    | 10          | 250        | Setting | Max diff. comp.                                          |                                                                                                                                                                    |
 | 47379           | Number    | 10          | 240        | Setting | Max diff. add.                                           |                                                                                                                                                                    |
 | 47380           | Switch    | 0           | 1          | Setting | Low brine out autoreset                                  |                                                                                                                                                                    |
@@ -847,8 +845,8 @@ This binding currently supports following channels for F1x45 pump models:
 | 47543           | Number    | 10          | 150        | Setting | Cooling DM diff                                          |                                                                                                                                                                    |
 | 47570           | String    | 0           | 255        | Setting | Operational mode                                         | 0=Auto, 1=Manual, 2=Add. heat only                                                                                                                                 |
 | 48043           | String    | 0           | 10         | Setting | Holiday - Activated                                      | 0=inactive, 10=active                                                                                                                                              |
-| 48046           | Number    | -10         | 10         | Setting | Heat Offset Holiday                                      | |
-| 48047           | String    | -1          | 2          | Setting | Hot water mode Holiday                                   | -1 = off, 0 = economy, 1 = normal, 2 = luxury                                                                                                                                              |
+| 48046           | Number    | -10         | 10         | Setting | Heat Offset Holiday                                      |                                                                                                                                                                    |
+| 48047           | String    | -1          | 2          | Setting | Hot water mode Holiday                                   | -1 = off, 0 = economy, 1 = normal, 2 = luxury                                                                                                                      |
 | 48053           | Number    | 0           | 100        | Setting | FLM 2 speed 4                                            |                                                                                                                                                                    |
 | 48054           | Number    | 0           | 100        | Setting | FLM 2 speed 3                                            |                                                                                                                                                                    |
 | 48055           | Number    | 0           | 100        | Setting | FLM 2 speed 2                                            |                                                                                                                                                                    |
@@ -925,7 +923,7 @@ This binding currently supports following channels for F1x45 pump models:
 This binding currently supports following channels for F1x55 pump models:
 
 | Channel Type ID | Item Type | Min         | Max        | Type    | Description                                              | Values                                                                                                                                                             |
-|-----------------|-----------|-------------|------------|---------|----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| --------------- | --------- | ----------- | ---------- | ------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
 | 32260           | Number    | 0           | 255        | Setting | NIBE Inverter 216-state                                  |                                                                                                                                                                    |
 | 40004           | Number    | -32767      | 32767      | Setting | BT1 Outdoor Temperature                                  |                                                                                                                                                                    |
 | 40005           | Number    | -32767      | 32767      | Setting | EP23-BT2 Supply temp S4                                  |                                                                                                                                                                    |
@@ -1903,11 +1901,10 @@ This binding currently supports following channels for F1x55 pump models:
 | 49381           | Switch    | 0           | 1          | Setting | External ERS 2 accessory bypass at heat                  |                                                                                                                                                                    |
 | 49430           | Number    | 0           | 255        | Setting | AUX ERS Fire Place Guard                                 |                                                                                                                                                                    |
 
-
 ### SMO40
 
 To keep this documentation light, all parameters are documented in the NIBE ModbusManager except of:
-| Channel Type ID | Item Type | Min         | Max        | Type    | Description                                              | Values                                                                                                                                                             |
-|-----------------|-----------|-------------|------------|---------|----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| 45780           | Number    | 0           | 120        | Setting | Silent Mode Frequency 1 (defined in the service-menu)    |                                                                                                                                                                    |
-| 49806           | Number    | 0           | 120        | Setting | Silent Mode Frequency 2 (defined in the service-menu)    |                                                                                                                                                                    |
+| Channel Type ID | Item Type | Min | Max | Type    | Description                                           | Values |
+| --------------- | --------- | --- | --- | ------- | ----------------------------------------------------- | ------ |
+| 45780           | Number    | 0   | 120 | Setting | Silent Mode Frequency 1 (defined in the service-menu) |        |
+| 49806           | Number    | 0   | 120 | Setting | Silent Mode Frequency 2 (defined in the service-menu) |        |
index 2500b0596c3adaa000410c6e45567597e1e84a21..9207be257378b4144907853038fafc3f7af4fd29 100644 (file)
@@ -22,7 +22,7 @@ Auto-Discovery is not supported, as credentials are necessary to login into Nibe
 
 The syntax for a heat pump thing is:
 
-```
+```java
 nibeuplink:<THING TYPE>:<NAME>
 ```
 
@@ -50,7 +50,7 @@ username used to login on NibeUplink
 password used to login on NibeUplink
 
 - **nibeId** (required)  
-Id of your heatpump in NibeUplink (can be found in the URL after successful login: https://www.nibeuplink.com/System/**<nibeId>>**/Status/Overview)
+Id of your heatpump in NibeUplink (can be found in the URL after successful login: `https://www.nibeuplink.com/System/**<nibeId>>**/Status/Overview`)
 
 - **pollingInterval**  
 interval (seconds) in which values are retrieved from NibeUplink.
@@ -65,19 +65,19 @@ Usually this settings should not be changed.
 
 - minimum configuration
 
-```
+```java
 nibeuplink:vvm320:mynibe [ user="...", password="...", nibeId="..."]
 ```
 
 - with pollingInterval
 
-```
+```java
 nibeuplink:vvm320:mynibe[ user="...", password="...", nibeId="...", pollingInterval=... ]
 ```
 
 - multiple heat pumps
 
-```
+```java
 nibeuplink:vvm320:home1 [ user="...", password="...", nibeId="..."]
 nibeuplink:vvm320:home2  [ user="...", password="...", nibeId="..."]
 ```
@@ -196,7 +196,7 @@ Following models/channels are currently available:
 | compressor#43439 | Number:Dimensionless | 0      | 100     | No       | EP14-GP2 Brine Pump Speed                |                               |
 | airsupply#40025  | Number:Temperature   | -32767 | 32767   | No       | BT20 Exhaust air temp. 1                 |                               |
 | airsupply#40026  | Number:Temperature   | -32767 | 32767   | No       | BT21 Vented air temp. 1                  |                               |
-       
+
 ### F1155 / 1255
 
 | Channel Type ID  | Item Type            | Min    | Max     | Writable | Description                           | Allowed Values (write access) |
@@ -309,12 +309,11 @@ There are three custom channel types available, which allow different scaling of
 - type-number-scale10
 - type-number-scale100
 
-
 ## Full Example
 
 ### Thing
 
-```
+```java
 nibeuplink:vvm320:mynibe     [ user="nibe@my-domain.de", password="secret123", nibeId="4711", pollingInterval=300] {
    Channels:
         Type type-number-scale10  : 47015 "min supply temp heating"
@@ -330,7 +329,7 @@ Channels which represent two states (such as on/off) are represented as Switch.
 Channels which have more than two states are internally represented as number.
 You need to define a map file which also gives you the opportunity to translate the state into your preferred language.
 
-```
+```java
 Number:Temperature      NIBE_SUPPLY            "Vorlauf"                                 { channel="nibeuplink:vvm320:mynibe:base#40008" }
 Number:Temperature      NIBE_RETURN            "Rücklauf [%.2f °F]"                      { channel="nibeuplink:vvm320:mynibe:base#40012" }
 Number:Temperature      NIBE_HW_TOP            "Brauchwasser oben"                       { channel="nibeuplink:vvm320:mynibe:hotwater#40013" }
@@ -346,19 +345,18 @@ Number                  NIBE_MIN_SUP_COOL      "min supply temp. cooling [%d °C
 
 Please define each state as integer.
 
-```
+```text
 0=Eco
 1=Norm
 2=Lux
 ```
 
-
 ### Sitemaps
 
 Please take care of the status channels.
 If you use selection items an automatic mapping will be applied.
 If you prefer switch items a mapping must be applied like this:
 
-```
+```java
 Switch item=NIBE_HW_MODE mappings=[0="Eco", 1="Norm"]
 ```
index 76a57cf0af855202b0da91643dd31db5e1b0d5a1..cdbbcc049bb5abb4555faf679341ad787df1740b 100644 (file)
@@ -6,21 +6,21 @@ This binding allows openHAB to interact with the Nikobus home automation system.
 
 More specifically, it allows openHAB to:
 
-* send (simulated) button presses to the Nikobus,
-* react to button presses which occur on the Nikobus,
-* change the status of switch channels on a Nikobus switch module,
-* request the status of switch channels on a Nikobus switch module,
-* change the status of dimmer channels on a Nikobus dimmer module,
-* request the status of dimmer channels on a Nikobus dimmer module,
-* send commands to the Nikobus roller shutter module.
+- send (simulated) button presses to the Nikobus,
+- react to button presses which occur on the Nikobus,
+- change the status of switch channels on a Nikobus switch module,
+- request the status of switch channels on a Nikobus switch module,
+- change the status of dimmer channels on a Nikobus dimmer module,
+- request the status of dimmer channels on a Nikobus dimmer module,
+- send commands to the Nikobus roller shutter module.
 
 This binding works with at least the following hardware:
 
-* PC-link module (05-200),
-* Push buttons (05-060-01, 05-064-01), RF Transmitter (05-314), PIR Sensor (430-00500),
-* 4 channel switch module (05-002-02),
-* 12 channel switch module (05-000-02),
-* 12 channel dimmer module.
+- PC-link module (05-200),
+- Push buttons (05-060-01, 05-064-01), RF Transmitter (05-314), PIR Sensor (430-00500),
+- 4 channel switch module (05-002-02),
+- 12 channel switch module (05-000-02),
+- 12 channel dimmer module.
 
 ## Supported Things
 
@@ -28,33 +28,33 @@ The binding supports a serial connection via `nikobus:pc-link` bridge to the Nik
 
 The bridge enables communication with other Nikobus components:
 
-* `switch-module` - Nikobus switch module, i.e. `05-000-02`,
-* `dimmer-module` - Nikobus dim-controller module, i.e. `05-007-02`,
-* `rollershutter-module` - Nikobus roller shutter module,
-* `push-button` - Nikobus physical push button.
+- `switch-module` - Nikobus switch module, i.e. `05-000-02`,
+- `dimmer-module` - Nikobus dim-controller module, i.e. `05-007-02`,
+- `rollershutter-module` - Nikobus roller shutter module,
+- `push-button` - Nikobus physical push button.
 
 ## Bridge Configuration
 
 The binding can connect to the PC-Link via serial interface.
 
-```
+```java
 Bridge nikobus:pc-link:mypclink [ port="<serial port>", refreshInterval=<interval> ] {
 }
 ```
 
 where:
 
-* `port` is the name of the serial port used to connect to the Nikobus installation
-* `refreshInterval` defines how often the binding reads Nikobus module's status, so having i.e. 30 as above, the binding will read one module’s status each 30s, iterating through all modules, one by one. If one does not specify `refreshInterval`, a default value of 60s is used.
+- `port` is the name of the serial port used to connect to the Nikobus installation
+- `refreshInterval` defines how often the binding reads Nikobus module's status, so having i.e. 30 as above, the binding will read one module’s status each 30s, iterating through all modules, one by one. If one does not specify `refreshInterval`, a default value of 60s is used.
 
 ## Thing Configuration
 
 Once connected to the Nikobus installation using a bridge, one can communicate with:
 
-* `switch-module`,
-* `dimmer-module`,
-* `rollershutter-module`,
-* `push-button`.
+- `switch-module`,
+- `dimmer-module`,
+- `rollershutter-module`,
+- `push-button`.
 
 ### Modules
 
@@ -70,7 +70,7 @@ In order to be able to read the status of a Nikobus module channel or to switch
 
 #### switch-module
 
-```
+```java
 Thing switch-module s1 [ address = "BC00" ]
 ```
 
@@ -93,7 +93,7 @@ Defines a `switch-module` with address `BC00`.
 
 #### dimmer-module
 
-```
+```java
 Thing dimmer-module d1 [ address = "D969" ]
 ```
 
@@ -116,7 +116,7 @@ Defines a `dimmer-module` with address `D969`.
 
 #### rollershutter-module
 
-```
+```java
 Thing rollershutter-module r1 [ address = "4C6C" ]
 ```
 
@@ -159,7 +159,7 @@ This means one could also define virtual buttons in openHAB with non-existing ad
 
 To configure an item for a button in openHAB with address `28092A`, use the following format:
 
-```
+```java
 Thing push-button pb1 [ address = "28092A" ]
 ```
 
@@ -171,19 +171,19 @@ In order to keep an up to date state of the channels in openHAB, button configur
 When configured, the status of the channel groups to which the button is linked, will be queried every time the button is pressed.
 Every status query takes between ~300 ms, so to get the best performance, only add the affected channel groups in the configuration, which has the following format:
 
-```
+```java
 Thing push-button <id> [ address = "<address>", impactedModules = "<moduleType>:<moduleId>:<channelGroup>, <moduleType>:<moduleId>:<channelGroup>, ..." ]
 ```
 
 where:
 
-* `moduleType` represents module's type,
-* `moduleId` represents module's id,
-* `channelGroup` represents the first (1) or second (2) channel group in the module.
+- `moduleType` represents module's type,
+- `moduleId` represents module's id,
+- `channelGroup` represents the first (1) or second (2) channel group in the module.
 
  Example configurations may look like:
 
-```
+```java
 Thing switch-module s1 [ address = "FF2A" ]
 Thing push-button pb1 [ address = "28092A", impactedModules = "switch-module:s1:1" ]
 ```
@@ -194,20 +194,19 @@ In addition to the status requests triggered by button presses, there is also a
 
 Beside receiving a status update (ON) when a physical Nikobus push button is pressed (and kept pressed), additional triggers can be added and configured to determine how press&hold of a physical push button should generate trigger events. Two types of trigger channels are supported:
 
-* filter trigger and
-* button trigger.
+- filter trigger and
+- button trigger.
 
 ##### Filter Trigger
 
-* `command` - command to be send,
-* `delay` - a required delay in milliseconds defining how much time must a button be pressed before an initial trigger event is fired,
-* `period` - optional time in milliseconds between successive triggers.
+- `command` - command to be send,
+- `delay` - a required delay in milliseconds defining how much time must a button be pressed before an initial trigger event is fired,
+- `period` - optional time in milliseconds between successive triggers.
 
 Examples:
 
-* `command = PRESSED, delay = 0, period = <empty>` - triggers `PRESSED` event immediatelly when Nikobus button is pressed and is not triggered anymore while holding down the button,
-* `command = INCREMENT, delay = 1000, period = 500` - triggers initial `INCREMENT` event after 1 second and then every half a second while holding down the button.
-
+- `command = PRESSED, delay = 0, period = <empty>` - triggers `PRESSED` event immediatelly when Nikobus button is pressed and is not triggered anymore while holding down the button,
+- `command = INCREMENT, delay = 1000, period = 500` - triggers initial `INCREMENT` event after 1 second and then every half a second while holding down the button.
 
 ##### Button Trigger
 
@@ -219,7 +218,7 @@ Pressing a physical Nikobus push-button will generate a new inbox entry with an
 
 Nikobus push buttons have the following format in inbox:
 
-```
+```text
 Nikobus Push Button 14E7F4:3
 4BF9CA
 nikobus:push-button
@@ -229,54 +228,54 @@ where first line contains name of the discovered button and second one contains
 
 Each discovered button has a Nikobus address appended to its name, same as can be seen in Nikobus's PC application, `14E7F4:3` in above example.
 
- * `14E7F4` - address of the Nikobus switch, as can be seen in Nikobus PC software and
- * `3` - represents a button on Nikobus switch.
+- `14E7F4` - address of the Nikobus switch, as can be seen in Nikobus PC software and
+- `3` - represents a button on Nikobus switch.
 
 ### Button mappings
 
-##### 2 buttons switch
+#### 2 buttons switch
 
 ![Nikobus Switch with 2 buttons](doc/s2.png)
 
-```
+```text
  1 = A
  2 = B
- ```
+```
 
-##### 4 buttons switch
+#### 4 buttons switch
 
 ![Nikobus Switch with 4 buttons](doc/s4.png)
 
-maps as 
+maps as
 
-```
+```text
  3  1  
  4  2
 ```
 
 so
 
-```
+```text
 1 = C
 2 = D
 3 = A
 4 = B
 ```
 
-##### 8 buttons switch
+#### 8 buttons switch
 
 ![Nikobus Switch with 8 buttons](doc/s8.png)
 
 maps as
 
-```
+```text
  7  5  3  1  
  8  6  4  2
 ```
 
 so
 
-```
+```text
 1 = 2C
 2 = 2D
 3 = 2A
@@ -289,14 +288,14 @@ so
 
 Above example `14E7F4:3` would give:
 
-* for 4 buttons switch - push button A,
-* for 8 buttons switch - push button 2A.
+- for 4 buttons switch - push button A,
+- for 8 buttons switch - push button 2A.
 
 ## Full Example
 
 ### nikobus.things
 
-```
+```java
 Bridge nikobus:pc-link:mypclink [ port = "/dev/ttyUSB0", refreshInterval = 10 ] {
     Thing dimmer-module d1 [ address = "0700" ]
     Thing dimmer-module d2 [ address = "6B00" ]
@@ -325,19 +324,19 @@ Bridge nikobus:pc-link:mypclink [ port = "/dev/ttyUSB0", refreshInterval = 10 ]
 
 ### nikobus.items
 
-```
+```java
 Dimmer Light_FF_Gallery_Ceiling "Ceiling" (FF_Gallery, Lights) [ "Lighting" ] { channel="nikobus:dimmer-module:mypclink:d1:output-1" }
 Dimmer Light_FF_Bed_Ceiling "Ceiling" (FF_Bed, Lights) [ "Lighting" ] { channel="nikobus:dimmer-module:mypclink:d1:output-7" }
 Dimmer Light_FF_Child_Ceiling "Ceiling" (FF_Child, Lights) [ "Lighting" ] { channel="nikobus:dimmer-module:mypclink:d2:output-10" }
 Dimmer Light_FF_Child_Wall_Left "Wall Left" (FF_Child, Lights) [ "Lighting" ] { channel="nikobus:dimmer-module:mypclink:d1:output-11" }
-Dimmer Light_FF_Child_Wall_Right "Wall Right" (FF_Child, Lights) [ "Lighting" ]        { channel="nikobus:dimmer-module:mypclink:d1:output-12" }
-Dimmer Light_FF_PlayRoom_Ceiling "Ceiling" (FF_PlayRoom, Lights)       [ "Lighting" ] { channel="nikobus:dimmer-module:mypclink:d1:output-6" }
-Dimmer Light_FF_PlayRoom_Wall "Wall" (FF_PlayRoom, Lights) [ "Lighting" ]      { channel="nikobus:dimmer-module:mypclink:d1:output-4" }
+Dimmer Light_FF_Child_Wall_Right "Wall Right" (FF_Child, Lights) [ "Lighting" ] { channel="nikobus:dimmer-module:mypclink:d1:output-12" }
+Dimmer Light_FF_PlayRoom_Ceiling "Ceiling" (FF_PlayRoom, Lights) [ "Lighting" ] { channel="nikobus:dimmer-module:mypclink:d1:output-6" }
+Dimmer Light_FF_PlayRoom_Wall "Wall" (FF_PlayRoom, Lights) [ "Lighting" ]  { channel="nikobus:dimmer-module:mypclink:d1:output-4" }
 
 Switch Light_FF_Gallery_Wall "Wall" (FF_Gallery, Lights) [ "Lighting" ] { channel="nikobus:switch-module:mypclink:s1:output-4" }
 Switch Light_FF_Bath_Ceiling "Ceiling" (FF_Bath, Lights) [ "Lighting" ] { channel="nikobus:switch-module:mypclink:s3:output-2" }
-Switch Light_FF_Wardrobe_Ceiling "Ceiling"     (FF_Wardrobe, Lights)   [ "Lighting" ] { channel="nikobus:switch-module:mypclink:s1:output-1" }
-Switch Light_FF_Corridor_Ceiling "Ceiling" (FF_Corridor, Lights) [ "Lighting" ]        { channel="nikobus:switch-module:mypclink:s2:output-3" }
+Switch Light_FF_Wardrobe_Ceiling "Ceiling" (FF_Wardrobe, Lights) [ "Lighting" ] { channel="nikobus:switch-module:mypclink:s1:output-1" }
+Switch Light_FF_Corridor_Ceiling "Ceiling" (FF_Corridor, Lights) [ "Lighting" ] { channel="nikobus:switch-module:mypclink:s2:output-3" }
 
 Rollershutter Shutter_GF_Corridor "Corridor" (GF_Corridor, gShuttersGF) { channel="nikobus:rollershutter-module:mypclink:r1:output-1" }
 Rollershutter Shutter_GF_Bed "Bedroom" (GF_Bed, gShuttersGF) { channel="nikobus:rollershutter-module:mypclink:r1:output-3" }
index 185a8e0c912403cd630f36ec1087f7becd0ac1e6..71b2b11180198cb073789e69bd931d0dc3c860ef 100644 (file)
@@ -84,7 +84,7 @@ The Thing configuration for the **bridge** uses the following syntax:
 
 For Niko Home Control I:
 
-```
+```java
 Bridge nikohomecontrol:bridge:<bridgeId> [ addr="<IP-address of IP-interface>", port=<listening port>,
                                            refresh=<Refresh interval> ]
 ```
@@ -97,7 +97,7 @@ Bridge nikohomecontrol:bridge:<bridgeId> [ addr="<IP-address of IP-interface>",
 
 For Niko Home Control II:
 
-```
+```java
 Bridge nikohomecontrol:bridge2:<bridgeId> [ addr="<IP-address of IP-interface>", port=<listening port>, profile="<profile>",
                                            password="<token>", refresh=<Refresh interval> ]
 ```
@@ -120,7 +120,7 @@ The API token parameter should be set to the profile password.
 
 The Thing configuration for **Niko Home Control actions** has the following syntax:
 
-```
+```java
 Thing nikohomecontrol:<thing type>:<bridgeId>:<thingId> "Label" @ "Location"
                         [ actionId="<Niko Home Control action ID>",
                           step=<dimmer increase/decrease step value> ]
@@ -128,14 +128,14 @@ Thing nikohomecontrol:<thing type>:<bridgeId>:<thingId> "Label" @ "Location"
 
 or nested in the bridge configuration:
 
-```
+```java
 <thing type> <thingId> "Label" @ "Location" [ actionId="<Niko Home Control action ID>",
                          step=<dimmer increase/decrease step value> ]
 ```
 
 The following action thing types are valid for the configuration:
 
-```
+```text
 pushButton, onOff, dimmer, blind
 ```
 
@@ -168,7 +168,7 @@ The parameter is optional and set to 10 by default.
 
 The Thing configuration for **Niko Home Control thermostats** has the following syntax:
 
-```
+```java
 Thing nikohomecontrol:thermostat:<bridgeId>:<thingId> "Label" @ "Location"
                         [ thermostatId="<Niko Home Control thermostat ID>",
                           overruleTime=<default duration for overrule temperature in minutes> ]
@@ -176,7 +176,7 @@ Thing nikohomecontrol:thermostat:<bridgeId>:<thingId> "Label" @ "Location"
 
 or nested in the bridge configuration:
 
-```
+```java
 thermostat <thingId> "Label" @ "Location" [ thermostatId="<Niko Home Control thermostat ID>" ]
 ```
 
@@ -200,14 +200,14 @@ The default value is 60 minutes.
 
 The Thing configuration for **Niko Home Control energy meters** has the following syntax:
 
-```
+```java
 Thing nikohomecontrol:energymeter:<bridgeId>:<thingId> "Label" @ "Location"
                         [ energyMeterId="<Niko Home Control energy meter ID>" ]
 ```
 
 or nested in the bridge configuration:
 
-```
+```java
 energymeter <thingId> "Label" @ "Location" [ energyMeterId="<Niko Home Control energy meter ID>" ]
 ```
 
@@ -283,7 +283,7 @@ Electricity power consumption/production has only been implemented for Niko Home
 
 .things:
 
-```
+```java
 Bridge nikohomecontrol:bridge:nhc1 [ addr="192.168.0.70", port=8000, refresh=300 ] {
     pushButton 1 "AllOff" [ actionId="1" ]
     onOff 2 "LivingRoom" @ "Downstairs" [ actionId="2" ]
@@ -311,7 +311,7 @@ Bridge nikohomecontrol:bridge:nhc3 [ addr="192.168.0.110" ] {
 
 .items:
 
-```
+```java
 Switch AllOff           {channel="nikohomecontrol:onOff:nhc1:1:button"}           # Pushbutton for All Off action
 Switch LivingRoom       {channel="nikohomecontrol:onOff:nhc1:2:switch"}           # Switch for onOff type action
 Dimmer TVRoom           {channel="nikohomecontrol:dimmer:nhc1:3:brightness"}      # Changing brightness dimmer type action
@@ -326,7 +326,7 @@ Number:Power CurPower   "[%.0f W]"  {channel="nikohomecontrol:energyMeter:nhc2:6
 
 .sitemap:
 
-```
+```perl
 Switch item=AllOff
 Switch item=LivingRoom
 Slider item=TVRoom
@@ -341,7 +341,7 @@ Text item=Power
 
 Example trigger rule:
 
-```
+```java
 rule "example trigger rule"
 when
     Channel 'nikohomecontrol:bridge:nhc1:alarm' triggered or
index 01b671d2e3543460fb652c342f455ec03dde40a0..44a529e7059534ee900e0189260b27488bc2dbb6 100644 (file)
@@ -8,16 +8,16 @@ It lets you read and change temperature and profile settings for zones, and read
 
 This binding is tested with the following devices:
 
-* Thermostats for different electrical panel heaters
-* Thermostats for heating in floors
-* Nobø Switch SW 4
+- Thermostats for different electrical panel heaters
+- Thermostats for heating in floors
+- Nobø Switch SW 4
 
 ## Thermostats
 
 Not all thermostats are made equal.
 
-* NCU-1R: Comfort temperature setting on the device overrides values from the Hub, making the setting in the Hub useless.
-* NCU-2R: Synchronizes temperature settings to and from the Hub.
+- NCU-1R: Comfort temperature setting on the device overrides values from the Hub, making the setting in the Hub useless.
+- NCU-2R: Synchronizes temperature settings to and from the Hub.
 
 ## Supported Things
 
@@ -27,17 +27,16 @@ Not all thermostats are made equal.
 | component | Thing      | A component is a device, i.e. panel heater or switch.                                           |
 | zone      | Thing      | A zone can hold one or more components.                                                         |
 
-
 ## Discovery
 
-The hub will be automatically discovered. 
+The hub will be automatically discovered.
 Before it can be used, you will have to update the configuration with the last three digits of its serial number.
 
 When the hub is configured with the correct serial number, it will autodetect zones and components (thermostats and switches).
 
 ## Thing Configuration
 
-```
+```text
 # Configuration for Nobø Hub
 #
 # Serial number of the Nobø hub to communicate with, 12 digits.
@@ -80,16 +79,16 @@ Not all devices report this.
 
 ### nobo.things
 
-```
+```java
 Bridge nobohub:nobohub:controller "Nobø Hub" [ hostName="192.168.1.10", serialNumber="103000000000" ] {
-       Thing zone      1               "Zone - Kitchen"      [ id=1 ]
-       Thing component 184000000000    "Heater - Kitchen"    [ serialNumber="184000000000" ]
+    Thing zone      1               "Zone - Kitchen"      [ id=1 ]
+    Thing component 184000000000    "Heater - Kitchen"    [ serialNumber="184000000000" ]
 }
 ```
 
 ### nobo.items
 
-```
+```java
 // Hub
 String              Nobo_Hub_GlobalOverride         "Global Override %s"                <heating>       {channel="nobohub:nobohub:controller:activeOverrideName"}
 
@@ -107,7 +106,7 @@ Number:Temperature  Zone_CurrentTemperature         "Current temperature [%.1f 
 
 ### nobo.sitemap
 
-```
+```perl
 sitemap nobo label="Nobø " {
 
     Frame label="Hub"{
@@ -130,34 +129,36 @@ sitemap nobo label="Nobø " {
 ## Organize your setup
 
 Nobø Hub uses a combination of status types (Normal, Comfort, Eco, Away), profiles types (Comfort, Eco, Away, Off), predefined temperature types (Comfort, Eco, Away), zones and override settings to organize and enable different features.
-This makes it possible to control the heaters in many different scenarios and combinations. 
+This makes it possible to control the heaters in many different scenarios and combinations.
 The following is a suggested way of organizing the binding with the Hub for a good level of control and flexibility.
 
-If you own panels with a physical Comfort temperature override, you need to use the Eco temperature type for setting level used by the day based profiles. 
+If you own panels with a physical Comfort temperature override, you need to use the Eco temperature type for setting level used by the day based profiles.
 If not, you can use either Comfort or Eco to set wanted level.
 
 Start by creating the following profiles in the Nobø Hub App:
 
-    OFF                 Set to status off all day, every day.
-    ON                  Set to status [Comfort|Eco] all day, every day
-    Eco                 Set to status Eco all day, every day
-    Away                Set to status Away all way, every day
-    Weekday 06->16      Set to status [Comfort|Eco] between 06->16 every weekday, otherwise set to [Away|Off]
-    Weekday 06->23      Set to status [Comfort|Eco] between 06->23 every weekday, otherwise set to [Away|Off]
-    Weekend 06->16      Set to status [Comfort|Eco] between 06->16 in the weekend, otherwise set to [Away|Off]
-    Weekend 06->23      Set to status [Comfort|Eco] between 06->23 in the weekend, otherwise set to [Away|Off]
-    Every day 06->16    Set to status [Comfort|Eco] between 06->16 every day, otherwise set to [Away|Off]
-    Every day 06->23    Set to status [Comfort|Eco] between 06->23 every day, otherwise set to [Away|Off]
-
-Next set [Comfort|Eco] level for each zone to your requirements. 
+```text
+  OFF                 Set to status off all day, every day.
+  ON                  Set to status [Comfort|Eco] all day, every day
+  Eco                 Set to status Eco all day, every day
+  Away                Set to status Away all way, every day
+  Weekday 06->16      Set to status [Comfort|Eco] between 06->16 every weekday, otherwise set to [Away|Off]
+  Weekday 06->23      Set to status [Comfort|Eco] between 06->23 every weekday, otherwise set to [Away|Off]
+  Weekend 06->16      Set to status [Comfort|Eco] between 06->16 in the weekend, otherwise set to [Away|Off]
+  Weekend 06->23      Set to status [Comfort|Eco] between 06->23 in the weekend, otherwise set to [Away|Off]
+  Every day 06->16    Set to status [Comfort|Eco] between 06->16 every day, otherwise set to [Away|Off]
+  Every day 06->23    Set to status [Comfort|Eco] between 06->23 every day, otherwise set to [Away|Off]
+```
+
+Next set [Comfort|Eco] level for each zone to your requirements.
 For a more advanced setup, you can create a rule which both sets temperature level and profile.
 
-Then create a sitemap with a Selection pointing to the Week Profile item. 
+Then create a sitemap with a Selection pointing to the Week Profile item.
 The binding will now automatically update all available week profile options in the selection button:
 
 ### nobo.sitemap
 
-```
+```perl
 sitemap nobo label="Nobø " {
 
     Frame label="Main Bedroom"{
index b5b1e8ea0b593aabbe551d57b415ff178008a957..50ab716db2ac3d7b913618274588cb330f4f9ddb 100644 (file)
@@ -5,7 +5,7 @@ Currently only one model is supported, the SDS011.
 
 It basically implements the protocol specified in [this document](https://cdn.sparkfun.com/assets/parts/1/2/2/7/5/Laser_Dust_Sensor_Control_Protocol_V1.3.pdf).
 One can measure the PM 2.5 and PM 10 values with this device.
-It comes very handy for detecting air pollution like neighbors firing their oven with wet wood etc. so one can deactivate the ventilation system. 
+It comes very handy for detecting air pollution like neighbors firing their oven with wet wood etc. so one can deactivate the ventilation system.
 
 ## Supported Things
 
@@ -43,7 +43,7 @@ A full overview about the parameters of the `SDS011` thing is given in the follo
 
 ## Channels
 
-Since the supported device is a sensor, both channels are read-only channels. 
+Since the supported device is a sensor, both channels are read-only channels.
 
 | channel  | type           | description                   |
 |----------|----------------|-------------------------------|
@@ -54,21 +54,21 @@ Since the supported device is a sensor, both channels are read-only channels.
 
 demo.things:
 
-```
+```java
 Thing novafinedust:SDS011:mySDS011Report "My SDS011 Fine Dust Sensor with reporting" [ port="/dev/ttyUSB0", reporting=true, reportingInterval=1 ]
 Thing novafinedust:SDS011:mySDS011Poll "My SDS011 Fine Dust Sensor with polling" [ port="/dev/ttyUSB0", reporting=false, pollingInterval=10 ]
 ```
 
 demo.items:
 
-```
+```java
 Number:Density PM25 "My PM 2.5 value" { channel="novafinedust:SDS011:mySDS011Report:pm25" }
 Number:Density PM10 "My PM 10 value" { channel="novafinedust:SDS011:mySDS011Report:pm10" }
 ```
 
 demo.sitemap:
 
-```
+```perl
 sitemap demo label="Main Menu"
 {
     Frame {
index 1e0dc9c846e2834c2093020bb0131b44b617bc6a..a79c46901d6c162adcb9a70c026524e52006e95c 100644 (file)
@@ -1,53 +1,50 @@
 # NTP Binding
+
 The NTP binding is used for displaying the local date and time based update from an NTP server.
+
 ## Supported Things
+
 This binding supports one ThingType: ntp
+
 ## Discovery
+
 Discovery is used to place one default item in the inbox as a convenient way to add a Thing for the local time.
+
 ## Binding Configuration
+
 The binding has no configuration options, all configuration is done at Thing level.
+
 ## Thing Configuration
+
 The thing has a few configuration options:
 
-| Option |  Description  |
-|-----------------|--------------------------------------------------- |
-| hostname | The NTP server hostname, e.g. nl.pool.ntp.org |
-| refreshInterval | Interval that new time updates are posted to the eventbus in seconds. Default is 60s. |
-| refreshNtp | Number of updates between querying the NTP server (e.g. with refreshinterval = 60 (seconds) and refreshNtp = 30 the NTP server is queried each half hour). Default is 30. |
-| serverPort | The port that the NTP server could use. Default is 123. |
-| timeZone | The configured timezone. Can be left blank for using the timezone defined as openHAB configuration setting (or default system timezone if not defined). |
+| Option          | Description                                                                                                                                                               |
+| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| hostname        | The NTP server hostname, e.g. nl.pool.ntp.org                                                                                                                             |
+| refreshInterval | Interval that new time updates are posted to the eventbus in seconds. Default is 60s.                                                                                     |
+| refreshNtp      | Number of updates between querying the NTP server (e.g. with refreshinterval = 60 (seconds) and refreshNtp = 30 the NTP server is queried each half hour). Default is 30. |
+| serverPort      | The port that the NTP server could use. Default is 123.                                                                                                                   |
+| timeZone        | The configured timezone. Can be left blank for using the timezone defined as openHAB configuration setting (or default system timezone if not defined).                   |
 
 ## Channels
+
 The ntp binding has two channels:
 
-* `dateTime` which provides the data in a dateTime type
-* `string` which provides the data in a string type. The string channel can be configured with the formatting of the date & time. This also allows proper representation of timezones other than the java machine default one.
+- `dateTime` which provides the data in a dateTime type
+- `string` which provides the data in a string type. The string channel can be configured with the formatting of the date & time. This also allows proper representation of timezones other than the java machine default one.
 
 See the [java documentation](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html) for the detailed information on the formatting
 
 ## Full Example
+
 Things:
 
-```
+```java
 ntp:ntp:demo  [ hostname="nl.pool.ntp.org", refreshInterval=60, refreshNtp=30 ]
 ```
 
 Items:
 
-```
+```java
 DateTime Date  "Date [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]"  { channel="ntp:ntp:demo:dateTime" }
 ```
index 3c8c68206f7e4b2db512da29463a223ff69705c4..f015e777926b642bc12ae20d36eb29fa9d3f2ed7 100644 (file)
@@ -6,19 +6,19 @@ This binding allows you to integrate, view, control and configure the Nuki Bridg
 ## Prerequisites
 
 1. At least one Nuki Smart Lock or Nuki Opener which is paired via Bluetooth with a Nuki Bridge. For this go and get either:
-    * [Nuki Smart Lock](https://nuki.io/en/smart-lock/) and a [Nuki Bridge](https://nuki.io/en/bridge/)
-    * [Nuki Combo](https://nuki.io/en/shop/nuki-combo/)
-2. The Bridge HTTP-API has to be enabled during [Initial Bridge setup](https://nuki.io/en/support/bridge/bridge-setup/initial-bridge-setup/).
+    - [Nuki Smart Lock](https://nuki.io/en/smart-lock/) and a [Nuki Bridge](https://nuki.io/en/bridge/)
+    - [Nuki Combo](https://nuki.io/en/shop/nuki-combo/)
+1. The Bridge HTTP-API has to be enabled during [Initial Bridge setup](https://nuki.io/en/support/bridge/bridge-setup/initial-bridge-setup/).
 
 It is absolutely recommended to configure static IP addresses for both, the openHAB server and the Nuki Bridge!  
 
 ### Nuki Bridge Callback
 
-The Nuki Binding will manage the required callback from the Nuki Bridge to the openHAB server if *manageCallbacks* is set to `true`.
-If *manageCallbacks* is not set it will default to `true`.  
+The Nuki Binding will manage the required callback from the Nuki Bridge to the openHAB server if _manageCallbacks_ is set to `true`.
+If _manageCallbacks_ is not set it will default to `true`.  
 
-If you want to manage the callbacks from the Nuki Bridge to the openHAB server by yourself, you need to set *manageCallbacks* to `false`.
-Then add the callback on the Nuki Bridge via Bridge API Endpoint */callback/add* in the format `http://<openHAB_IP>:<openHAB_PORT>/nuki/bcb`.  
+If you want to manage the callbacks from the Nuki Bridge to the openHAB server by yourself, you need to set _manageCallbacks_ to `false`.
+Then add the callback on the Nuki Bridge via Bridge API Endpoint _/callback/add_ in the format `http://<openHAB_IP>:<openHAB_PORT>/nuki/bcb`.  
 The Sheet [NukiBridgeAPI](https://docs.google.com/spreadsheets/d/1SGKWhqwqRyOGbv4NEq-8PAPjBORRixvEjRuzO-nVabQ) is a helpfull tool for listing, adding and removing callbacks.  
 
 ## Supported Bridges
@@ -28,7 +28,7 @@ This binding supports just one bridge type: The Nuki Bridge (`nuki:bridge`). Cre
 The following configuration options are available:  
 
 | Parameter       | Description                                                                                                                                                                                        | Comment      |
-|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|
+| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ |
 | ip              | The IP address of the Nuki Bridge. Look it up on your router. It is recommended to set a static IP address lease for the Nuki Bridge (and for your openHAB server too) on your router.             | Required     |
 | port            | The Port which you configured during [Initial Bridge setup](https://nuki.io/en/support/bridge/bridge-setup/initial-bridge-setup/).                                                                 | Default 8080 |
 | apiToken        | The API Token which you configured during [Initial Bridge setup](https://nuki.io/en/support/bridge/bridge-setup/initial-bridge-setup/).                                                            | Required     |
@@ -40,9 +40,9 @@ The following configuration options are available:
 Bridges on local network can be discovered automatically if both Nuki Bridge and openHAB have working internet connection. You can check whether discovery
 is working by checking [discovery API endpoint](https://api.nuki.io/discover/bridges). To discover bridges do the following:
 
-* In openHAB UI add new thing, select Nuki Binding and start scan. LED on bridge should light up.
-* Within 30s press button on Nuki Bridge you want to discover.
-* Bridge should appear in inbox.
+- In openHAB UI add new thing, select Nuki Binding and start scan. LED on bridge should light up.
+- Within 30s press button on Nuki Bridge you want to discover.
+- Bridge should appear in inbox.
 
 Pressing bridge button is required for binding to obtain valid API token. If the button isn't pressed during discovery, bridge will
 be created but token must be set manually for binding to work.
@@ -52,7 +52,7 @@ in Nuki mobile app, check server connection then disconnect and let the bridge r
 
 ## Supported Things
 
-This binding supports 2 things - Nuki Smart Lock (`nuki:smartlock`) and Nuki Opener (`nuki:opener`). Both devices can be added using discovery after bridge they are 
+This binding supports 2 things - Nuki Smart Lock (`nuki:smartlock`) and Nuki Opener (`nuki:opener`). Both devices can be added using discovery after bridge they are
 connected to is configured and online.
 
 ### Nuki Smart Lock
@@ -60,7 +60,7 @@ connected to is configured and online.
 This is a common thing for all Nuki smart lock products - Nuki Smart Lock 1.0/2.0/3.0 (Pro) and Nuki Smart Door. The following configuration options are available:
 
 | Parameter  | Description                                                                                                                                                                                               | Comment                                                          |
-|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------|
+| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
 | nukiId     | The decimal or hexadecimal string that identifies the Nuki Smartlock.                                                                                                                                     | Only available in textual configuration, cannot be edited in UI. |
 | deviceType | Numeric device type as specified by bridge HTTP API - 0 = Nuki Smart Lock 1.0/2.0, 3 = Nuki Smart Door, 4 = Nuki Smart Lock 3.0 (Pro).                                                                    | Only available in textual configuration, cannot be edited in UI. |
 | unlatch    | If set to `true` the Nuki Smart Lock will unlock the door but then also automatically pull the latch of the door lock. Usually, if the door hinges are correctly adjusted, the door will then swing open. | Default false                                                    |
@@ -68,7 +68,7 @@ This is a common thing for all Nuki smart lock products - Nuki Smart Lock 1.0/2.
 #### Supported Channels
 
 | Channel          | Type   | Description                                                                                                                                                                             |
-|------------------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| ---------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
 | lock             | Switch | Switch to lock and unlock doors. If `unlatch` configuration parameter is set, unlocking will also unlatch the door.                                                                     |
 | lockState        | Number | Channel which accepts [Supported commands](#supported-lockstate-commands) for performing actions, and produces [supported values](#supported-lockstate-values) when lock state changes. |
 | lowBattery       | Switch | Low battery warning channel                                                                                                                                                             |
@@ -82,7 +82,7 @@ This is a common thing for all Nuki smart lock products - Nuki Smart Lock 1.0/2.
 These values can be sent to _lockState_ channel as a commands:
 
 | Command | Name                     |
-|---------|--------------------------|
+| ------- | ------------------------ |
 | 1       | Unlock                   |
 | 2       | Lock                     |
 | 3       | Unlatch                  |
@@ -91,25 +91,25 @@ These values can be sent to _lockState_ channel as a commands:
 
 ##### Supported lockState values
 
-| State  | Name                     |
-|--------|--------------------------|
-| 0      | Uncalibrated             |
-| 1      | Locked                   |
-| 2      | Unlocking                |
-| 3      | Unlocked                 |
-| 4      | Locking                  |
-| 5      | Unlatched                |
-| 6      | Unlatched (Lock 'n' Go)  |
-| 7      | Unlatching               |
-| 254    | Motor blocked            |
-| 255    | Undefined                |
+| State | Name                    |
+| ----- | ----------------------- |
+| 0     | Uncalibrated            |
+| 1     | Locked                  |
+| 2     | Unlocking               |
+| 3     | Unlocked                |
+| 4     | Locking                 |
+| 5     | Unlatched               |
+| 6     | Unlatched (Lock 'n' Go) |
+| 7     | Unlatching              |
+| 254   | Motor blocked           |
+| 255   | Undefined               |
 
 Unfortunately the Nuki Bridge is not reporting any transition states (e.g. for Lock 'n' Go).
 
 ##### Supported doorSensorState values
 
 | State | Name                |
-|-------|---------------------|
+| ----- | ------------------- |
 | 1     | Deactivated         |
 | 2     | Closed              |
 | 3     | Open                |
@@ -122,13 +122,13 @@ Unfortunately the Nuki Bridge is not reporting any transition states (e.g. for L
 ### Nuki Opener
 
 | Parameter | Description                                                        | Comment                                                          |
-|-----------|--------------------------------------------------------------------|------------------------------------------------------------------|
+| --------- | ------------------------------------------------------------------ | ---------------------------------------------------------------- |
 | nukiId    | The decimal or hexadecimal string that identifies the Nuki Opener. | Only available in textual configuration, cannot be edited in UI. |
 
 #### Supported channels
 
 | Channel             | Type     | Description                                                                                                                                                                      |
-|---------------------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| ------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
 | openerState         | Number   | Channel for sending [supported commands](#supported-openerstate-commands) to Opener, produces one of [supported values](#supported-openerstate-values) when Opener state changes |
 | openerMode          | Number   | Id of current Opener mode, see [Supported values](#supported-openermode-values)                                                                                                  |
 | openerLowBattery    | Switch   | Low battery warning channel                                                                                                                                                      |
@@ -138,7 +138,7 @@ Unfortunately the Nuki Bridge is not reporting any transition states (e.g. for L
 ##### Supported openerState commands
 
 | Command | Name                       |
-|---------|----------------------------|
+| ------- | -------------------------- |
 | 1       | Activate ring to open      |
 | 2       | Deactivate ring to open    |
 | 3       | Electric strike actuation  |
@@ -147,30 +147,29 @@ Unfortunately the Nuki Bridge is not reporting any transition states (e.g. for L
 
 ##### Supported openerState values
 
-| State  | Name                |
-|--------|---------------------|
-| 0      | Untrained           |
-| 1      | Online              |
-| 3      | Ring to open active |
-| 5      | Open                |
-| 7      | Opening             |
-| 253    | Boot run            |
-| 255    | Undefined           |
+| State | Name                |
+| ----- | ------------------- |
+| 0     | Untrained           |
+| 1     | Online              |
+| 3     | Ring to open active |
+| 5     | Open                |
+| 7     | Opening             |
+| 253   | Boot run            |
+| 255   | Undefined           |
 
 ##### Supported openerMode values
   
-| Mode   | Name            |
-|--------|-----------------|
-| 2      | Door mode       |
-| 3      | Continuous mode |
-
+| Mode | Name            |
+| ---- | --------------- |
+| 2    | Door mode       |
+| 3    | Continuous mode |
 
 ## Troubleshooting
 
 ### Bridge and devices are offline with error 403
 
 If secureToken property is enabled, make sure that time on device running openHAB and Nuki Bridge are synchronized. When secureToken
-is enabled, all requests contain timestamp and bridge will only accept requests with small time difference. If it is not possible to 
+is enabled, all requests contain timestamp and bridge will only accept requests with small time difference. If it is not possible to
 keep time synchronized, disable secureToken feature.
 
 ### NukiId conversion when migrating from old binding version
@@ -179,7 +178,7 @@ Older versions of binding used nukiId in hexadecimal format (as displayed in Nuk
 expects nukiId to be in decimal format (e.g. 1548469427), since that's the format returned from API.
 The binding does the conversion automatically, but only if your nukiId contains any letters A-F, otherwise the binding
 has no way to tell whether the id is in hexadecimal or decimal format. If your nukiId in hexadecimal format
-contains only numbers, you'll have to convert it to decimal format manually, or preferably delete the old Thing 
+contains only numbers, you'll have to convert it to decimal format manually, or preferably delete the old Thing
 and use discovery to recreate it.
 
 ## Full Example
@@ -188,7 +187,7 @@ A manual setup through files could look like this:
 
 ### things/nuki.things
 
-```
+```java
 Bridge nuki:bridge:NB1 "Bridge Name" [ ip="192.168.0.50", port=8080, apiToken="myS3cr3t!", manageCallbacks=true, secureToken=true ] {
     Thing smartlock SL1 "Nuki Smartlock Name" [ nukiId="12AB89EF", deviceType=0, unlatch=false ]
     Thing opener OP1 "Nuki Opener Name" [ nukiId="254CF45A" ]
@@ -197,31 +196,31 @@ Bridge nuki:bridge:NB1 "Bridge Name" [ ip="192.168.0.50", port=8080, apiToken="m
 
 ### items/nuki.items
 
-```
-Switch Frontdoor_Lock          "Frontdoor (Unlock / Lock)"     <nukiwhite>             { channel="nuki:smartlock:NB1:SL1:lock" }
-Number Frontdoor_LockState     "Frontdoor (Lock State)"        <nukisl>                { channel="nuki:smartlock:NB1:SL1:lockState" }
-Switch Frontdoor_LowBattery    "Frontdoor Low Battery"         <nukibattery>   { channel="nuki:smartlock:NB1:SL1:lowBattery" }
-Number Frontdoor_DoorState     "Frontdoor (Door State)"        <door>                  { channel="nuki:smartlock:NB1:SL1:doorsensorState" }
+```java
+Switch Frontdoor_Lock       "Frontdoor (Unlock / Lock)" <nukiwhite>     { channel="nuki:smartlock:NB1:SL1:lock" }
+Number Frontdoor_LockState  "Frontdoor (Lock State)"    <nukisl>        { channel="nuki:smartlock:NB1:SL1:lockState" }
+Switch Frontdoor_LowBattery "Frontdoor Low Battery"     <nukibattery>   { channel="nuki:smartlock:NB1:SL1:lowBattery" }
+Number Frontdoor_DoorState  "Frontdoor (Door State)"    <door>          { channel="nuki:smartlock:NB1:SL1:doorsensorState" }
 ```
 
 ### sitemaps/nuki.sitemap
 
-```
+```perl
 sitemap nuki label="Nuki Smart Lock" {
-       Frame label="Channel Lock" {
-               Switch item=Frontdoor_Lock
-       }
-       Frame label="Channel State used for lock actions" {
-               Switch item=Frontdoor_LockState mappings=[1="Unlock", 2="Lock", 3="Unlatch", 4="LnGo", 5="LnGoU"]
-       }
-       Frame label="Channel State" {
-               Text item=Frontdoor_LockState label="Lock State [MAP(nukilockstates.map):%s]"
-       }
-       Frame label="Channel Low Battery" {
-               Text item=Frontdoor_LowBattery  label="Low Battery [%s]"
-       }
-       Frame label="Channel Door State" {
-               Text item=Frontdoor_DoorState label="Door State [MAP(nukidoorsensorstates.map):%s]"
-       }
+    Frame label="Channel Lock" {
+        Switch item=Frontdoor_Lock
+    }
+    Frame label="Channel State used for lock actions" {
+        Switch item=Frontdoor_LockState mappings=[1="Unlock", 2="Lock", 3="Unlatch", 4="LnGo", 5="LnGoU"]
+    }
+    Frame label="Channel State" {
+        Text item=Frontdoor_LockState label="Lock State [MAP(nukilockstates.map):%s]"
+    }
+    Frame label="Channel Low Battery" {
+        Text item=Frontdoor_LowBattery  label="Low Battery [%s]"
+    }
+    Frame label="Channel Door State" {
+        Text item=Frontdoor_DoorState label="Door State [MAP(nukidoorsensorstates.map):%s]"
+    }
 }
 ```
index 6db93f746c5f5a916fa1c8567a5484232b028344..e77b4540c59ffc6446d57ecee138e2643822ef8e 100644 (file)
@@ -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 `<topmenu>` item can have up to 20 `<item>` 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
 <topmenu text="Top menu 1">
    <item>menu1 a</item>
    <item>menu1 b</item>
@@ -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
index 02b1bbdbf56a2a95f96b2de51e58da5c7d11a845..75d166336d5c808aa0b7883f5aa4b82c9ff800e3 100644 (file)
@@ -1,15 +1,15 @@
 # NZ Water Alerts Binding
 
 Get Water Alert Levels for cities in New Zealand.
-Getting this alert level can help you script and automate smarter tasks for water and avoid getting penalized from your distract or local council. 
+Getting this alert level can help you script and automate smarter tasks for water and avoid getting penalized from your distract or local council.
 
 > Example: Disable automated spinklers based on a level 3 or 4 water alert level
 
 This Binding scrapes multiple websites for Water Levels:
 
-* Northland's [BeWaterWise Website](https://bewaterwise.org.nz/)
-* Waikato's [Smart Water Website](https://www.smartwater.org.nz/)
-* Napier's [Council Website](https://www.napier.govt.nz)
+- Northland's [BeWaterWise Website](https://bewaterwise.org.nz/)
+- Waikato's [Smart Water Website](https://www.smartwater.org.nz/)
+- Napier's [Council Website](https://www.napier.govt.nz)
 
 ## Thing Configuration
 
@@ -51,7 +51,7 @@ The binding and thing ID is `nzwateralerts:wateralert`.
 
 ### Example
 
-```
+```java
 Thing nzwateralerts:wateralert "HCC" [ location="smartwater:hamilton:hamilton", refreshInterval="4" ]
 ```
 
@@ -66,7 +66,7 @@ Check with your regional council for further details.
 
 ## Other Cities
 
-At present the supported cities were implemented by scraping the web page on the respective website which contains the restriction information. 
+At present the supported cities were implemented by scraping the web page on the respective website which contains the restriction information.
 
 **No councils have this data in a programmatic format easily accessible to software.**
 Most won't have pages which contain the current alert level and only offer alerts via twitter or text.
index eb958afc97bc231f4d69477d6058b81ff971fbbf..919de784dfcfa70572b474d398971a54fde67121 100644 (file)
@@ -47,7 +47,7 @@ All things support the following channels (non-exhaustive):
 
 .things
 
-```
+```java
 Thing oceanic:serial:s1 [ port="/dev/tty.usbserial-FTWGX64N", interval=60]
 Thing oceanic:network:s2 [ ipAddress="192.168.0.6", portNumber=9000, interval=60]
 
@@ -55,7 +55,7 @@ Thing oceanic:network:s2 [ ipAddress="192.168.0.6", portNumber=9000, interval=60
 
 .items
 
-```
+```java
 Number oceanicVolume "volume [%d]" (oceanic) {channel="oceanic:serial:s1:totalflow"}
 String oceanicAlarm "alarm: [%s]" (oceanic) {channel="oceanic:serial:s1:alarm"}
 String oceanicAlert "alert: [%s]" (oceanic) {channel="oceanic:serial:s1:alert"}
@@ -84,49 +84,48 @@ Number oceanicConsLastWk "volume last week is [%d]"(oceanic) {channel="oceanic:s
 
 ## Known issues
 
-The Oceanic binding makes use of the nrjavaserial library, and unfortunately java and serial ports never have been a great marriage. 
+The Oceanic binding makes use of the nrjavaserial library, and unfortunately java and serial ports never have been a great marriage.
 
-Although some work is being done to improve things (<https://github.com/eclipse/smarthome/issues/4465>), the best thing is to avoid serial ports as much as possible, as some issues (<https://github.com/NeuronRobotics/nrjavaserial/issues/96>) are not resolved. 
+Although some work is being done to improve things (<https://github.com/eclipse/smarthome/issues/4465>), the best thing is to avoid serial ports as much as possible, as some issues (<https://github.com/NeuronRobotics/nrjavaserial/issues/96>) are not resolved.
 
 For example, On Ubuntu 17.10 nrjavaserial seems to return only HEX 00 characters through the InputStream of the SerialPort.
 
 Within the Oceanic binding two routes are provided:
 
-1. Connect to the Oceanic softener over a serial port that is outside the scope of the Java Virtual Machine, setup a TCP "proxy" on the host that is connected to the softener, and make openHAB connect to that proxy over a plain TCP connection. This can be achieved with ```socat```:
+1. Connect to the Oceanic softener over a serial port that is outside the scope of the Java Virtual Machine, setup a TCP "proxy" on the host that is connected to the softener, and make openHAB connect to that proxy over a plain TCP connection. This can be achieved with `socat`:
 
-```
-             /usr/bin/socat -v TCP-LISTEN:9000 /dev/ttyUSB0,raw,echo=0           
-```
+    ```shell
+    /usr/bin/socat -v TCP-LISTEN:9000 /dev/ttyUSB0,raw,echo=0           
+    ```
 
-In the above example, the name of the host running socat, and the TCP port number 9000, will be part of the **network** Thing configuration
+    In the above example, the name of the host running socat, and the TCP port number 9000, will be part of the **network** Thing configuration
+1. Connect to the Oceanic softener over a serial port on the openHAB host and use `socat` to pipe the data from that serial port to a pseudo tty, which has to be manipulated in a CommPortIdentifier.PORT_RAW manner.
 
-2. Connect to the Oceanic softener over a serial port on the openHAB host and use ```socat``` to pipe the data from that serial port to a pseudo tty, which has to be manipulated in a CommPortIdentifier.PORT_RAW manner.
+    ```shell
+    /usr/bin/socat -v /dev/ttyUSB0,raw,echo=0 pty,link=/dev/ttyS1,raw,echo=0            
+    ```
 
-```
-             /usr/bin/socat -v /dev/ttyUSB0,raw,echo=0 pty,link=/dev/ttyS1,raw,echo=0            
-```
-                           
 Both workarounds can be implemented using a systemd system manager script, for example:
 
-```
-             [Install]
-             WantedBy=multi-user.target   
-
-             [Service]
-             #Type=forking
-             ExecStart=/usr/bin/socat -v /dev/ttyUSB0,raw,echo=0 pty,link=/dev/ttyS1,raw,echo=0
-             #PIDFile=/var/run/socat.pid
-             User=root
-             Restart=always
-             RestartSec=10             
+```text
+[Install]
+WantedBy=multi-user.target   
+
+[Service]
+#Type=forking
+ExecStart=/usr/bin/socat -v /dev/ttyUSB0,raw,echo=0 pty,link=/dev/ttyS1,raw,echo=0
+#PIDFile=/var/run/socat.pid
+User=root
+Restart=always
+RestartSec=10             
 ```
 
 However, in order to fix permissions at the OS level, one has to issue following commands in order to make /dev/ttyS1 accessible by the 'openhab' system user (that is used to start up the openHAB runtime), and to make the tty both readable and writable.
 
+```shell
+sudo useradd  -G dialout openhab
+sudo chgrp dialout /dev/ttyS1
+sudo chmod 777 /dev/ttyS1 
 ```
-             sudo useradd  -G dialout openhab
-             sudo chgrp dialout /dev/ttyS1
-             sudo chmod 777 /dev/ttyS1 
-```
-          
+
 Alternatively, these commands can be executed through a script that is attached to the systemd system manager script.
index 4d0d975b2c07a10aa34bd0f38453a3d2e2207a38..8ff95d2bed45a5e788eb8f54593659e7c8861c43 100644 (file)
@@ -60,7 +60,7 @@ This example shows how to configure the OJElecttronics binding.
 
 ### demo.things
 
-```
+```java
 Bridge ojelectronics:ojcloud:myCloud "My Cloud" @ "My Home" [ userName="MyUserName", password="MyPassword", apiKey="The Key" ] {
     Thing owd5 myThermostat [ serialNumber="123" ]
 }
@@ -68,17 +68,16 @@ Bridge ojelectronics:ojcloud:myCloud "My Cloud" @ "My Home" [ userName="MyUserNa
 
 ### demo.items
 
-```
+```java
 Number Bath_Floor_Temperature "Bathroom: Floor Temperature" {channel="ojelectronics:owd5:myCloud:myThermostat:floorTemperature"}
 String Bath_Mode "Bathroom: Mode" {channel="ojelectronics:owd5:myCloud:myThermostat:regulationMode"}
 ```
 
 ### demo.sitemap
 
-```
+```perl
 sitemap myHome label="my Home"{
   Text item=Bath_Floor_Temperature
   Text item=Bath_Mode
 }
 ```
-
index 4b80806241059a0dc52e674021d6ff4f6d83641d..1f82a8a61d1249b1a1937f7735c0014e8446efb7 100644 (file)
@@ -40,13 +40,13 @@ No autodiscovery available
 
 ### demo.things
 
-```
+```java
 Thing omnikinverter:omnik:70ecb4f0 "Solar Inverter" [ hostname="igen-wifi.lan",serial=604455290]
 ```
 
 ### demo.items
 
-```
+```java
 Number:Power OmnikInverterBindingThing_InstantaneousPower "Solar Power" <sun> {channel="omnikinverter:omnik:70ecb4f0:power"}
 Number:Power OmnikInverterBindingThing_InstantaneousPower1 "Solar Power 1" <sun> {channel="omnikinverter:omnik:70ecb4f0:powerAC1"}
 Number:Power OmnikInverterBindingThing_InstantaneousPower2 "Solar Power 2" <sun> {channel="omnikinverter:omnik:70ecb4f0:powerAC2"}
@@ -63,7 +63,7 @@ Number:Energy OmnikInverterBindingThing_TotalGeneratedEnergy "Solar Energy Total
 
 ### Sitemap
 
-```
+```perl
 Text item=OmnikInverterBindingThing_InstantaneousPower
 Text item=OmnikInverterBindingThing_InstantaneousPower1
 Text item=OmnikInverterBindingThing_InstantaneousPower2
@@ -80,4 +80,4 @@ Text item=OmnikInverterBindingThing_TotalGeneratedEnergy
 
 ## References
 
-Based on the work of https://github.com/Woutrrr/Omnik-Data-Logger
+Based on the work of <https://github.com/Woutrrr/Omnik-Data-Logger>
index cb07242c038df143b04d62849bc7dcfc4bba92f7..4d34518e03587164462f27660360cd2c81ff954b 100644 (file)
@@ -24,7 +24,6 @@ The OmniPro/Lumina controller acts as a "bridge" for accessing other connected d
 | Output                     | Built-in/Hardwire                                | `output`                          |
 | Access Control Reader Lock | Leviton Access Control Reader                    | `lock`                            |
 
-
 ## Discovery
 
 ### Controller
@@ -37,12 +36,14 @@ Once a connection can be established to a controller, all connected devices will
 
 ## Thing Configuration
 
+<!-- markdownlint-disable MD038 -->
 An Omni or Lumina controller requires the IP address (`ipAddress`), optional port (`port` defaults to 4369), and 2 encryption keys (`key1`, `key2`).
 The hexadecimal pairs in the encryption keys are typically delimited using a colon`:`, but dashes `-`, spaces ` ` or no delimiter may be used.
+<!-- markdownlint-enable MD038 -->
 
 In the thing file, this looks like:
 
-```
+```java
 Bridge omnilink:controller:home [ ipAddress="127.0.0.1", port=4369, key1="XXXXXXXXXXXXXXXX", key2="XXXXXXXXXXXXXXXX" ] {
     // Add your things here
 }
@@ -195,7 +196,7 @@ omnilinkActions.synchronizeControllerTime("America/Denver")
 
 ### Example `omnilink.things`
 
-```
+```java
 Bridge omnilink:controller:home [ ipAddress="127.0.0.1", port=4369, key1="XXXXXXXXXXXXXXXX", key2="XXXXXXXXXXXXXXXX" ] {
     Thing area         MainArea         "Main Area"              @   "Home"                    [ number=1 ]
     Thing upb          UpKitTable       "Table Lights"           @   "Upstairs Kitchen"        [ number=4 ]
@@ -221,7 +222,7 @@ Bridge omnilink:controller:home [ ipAddress="127.0.0.1", port=4369, key1="XXXXXX
 
 ### Example `omnilink.items`
 
-```
+```java
 /*
  * Alarms / Areas
  */
@@ -302,7 +303,7 @@ DateTime   OmniProTime   "Last Time Update [%1$ta %1$tR]"   <time>   {channel="o
 
 ### Example `therm-status.map`
 
-```
+```text
 0=Idle
 1=Heating
 2=Cooling
@@ -310,7 +311,7 @@ DateTime   OmniProTime   "Last Time Update [%1$ta %1$tR]"   <time>   {channel="o
 
 ### Example `therm-tempmode.map`
 
-```
+```text
 0=Off
 1=Heat
 2=Cool
@@ -320,7 +321,7 @@ DateTime   OmniProTime   "Last Time Update [%1$ta %1$tR]"   <time>   {channel="o
 
 ### Example `therm-fanmode.map`
 
-```
+```text
 0=Auto
 1=On
 2=Cycle
@@ -328,7 +329,7 @@ DateTime   OmniProTime   "Last Time Update [%1$ta %1$tR]"   <time>   {channel="o
 
 ### Example `therm-holdmode.map`
 
-```
+```text
 0=Off
 1=Hold
 2=Vacation hold
@@ -336,7 +337,7 @@ DateTime   OmniProTime   "Last Time Update [%1$ta %1$tR]"   <time>   {channel="o
 
 ### Example `area-modes.map`
 
-```
+```text
 0=Off
 1=Day
 2=Night
index 05fc0704b279d10aaee6afb79663949de096e296..fb40eb7ddbcb48849501e2a9cb303bfeea6a6610 100644 (file)
@@ -20,7 +20,6 @@ The following configuration options are available for the API binding:
 | `apiKey`    | API Key    | The API key given to you by a transit provider for their deployment.                | yes      |
 | `apiServer` | API Server | The domain name of the deployment to talk to, e.g. `api.pugetsound.onebusaway.org`. | yes      |
 
-
 The following configuration options are available for the Stop binding (which requires an API binding):
 
 | Parameter | Name | Description | Required |
@@ -36,7 +35,6 @@ The following configuration options are available for a Route (which requires a
 |-----------|----------|---------------------------------------------------------------------|----------|
 | `routeId` | Route ID | The OneBusAway ID of the route to obtain data for, e.g. `1_102574`. | yes      |
 
-
 ## Channels
 
 The Route Thing supports the following state channels:
@@ -48,7 +46,6 @@ The Route Thing supports the following state channels:
 | update           | state        | DateTime  | The last time this data was updated (per the data provider, not the last time openHAB updated the data). |
 | arrivalDeparture | trigger      | DateTime  | Triggered when a Route arrives or departs a Stop.                                                        |
 
-
 ### Channel Configurations
 
 The `arrival`, `departure`, and `arrivalDeparture` channels can be configured with an `offset` specifying the number of seconds to move an event back in time.
@@ -59,7 +56,7 @@ Here is an example of a configuration for a bus stop in Seattle, WA, USA that ha
 
 `demo.things`:
 
-```
+```java
 Bridge onebusaway:api:pugetsound [apiKey="your-api-key", apiServer="api.pugetsound.onebusaway.org"] {
   Bridge onebusaway:stop:1_26860 [stopId="1_26860"] {
     Thing onebusaway:route:1_100193 [routeId="1_100193"]
@@ -71,7 +68,7 @@ Bridge onebusaway:api:pugetsound [apiKey="your-api-key", apiServer="api.pugetsou
 
 `demo.items`:
 
-```
+```java
 // Route 1_100193 (#32)
 DateTime Fremont_32_Arrival "32 - University District" { channel="onebusaway:route:1_100193:arrival" }
 DateTime Fremont_32_Departure "32 - University District" { channel="onebusaway:route:1_100193:departure" }
index 3b092ee5c14f8d5b65ffd2b7b256ac858335ecb1..f580fa3d9c8f6981f33f741e2d191e371641a172 100644 (file)
@@ -1,25 +1,25 @@
 # OneWire Binding
 
-The OneWire binding integrates OneWire (also spelled 1-Wire) devices. 
+The OneWire binding integrates OneWire (also spelled 1-Wire) devices.
 OneWire is a serial bus developed by Dallas Semiconductor.
 It provides cheap sensors for temperature, humidity, digital I/O and more.
 
 ## Getting Started
 
-The OneWire File System (OWFS, https://owfs.org) provides an abstraction layer between the OneWire bus and this binding. 
+The OneWire File System (OWFS, <https://owfs.org>) provides an abstraction layer between the OneWire bus and this binding.
 It is assumed that you already have a working OWFS installation.
-Besides your sensors, you need a busmaster device (e.g. DS9490R). 
+Besides your sensors, you need a busmaster device (e.g. DS9490R).
 
 ## Supported Things
 
 ### Bridges
 
-Currently only one bridge is supported. 
-The `owserver` is the bridge that connects to an existing OWFS installation. 
+Currently only one bridge is supported.
+The `owserver` is the bridge that connects to an existing OWFS installation.
 
 ### Things
 
-There are different types of things: the simple one (`basic`), multisensors built around the DS1923/DS2438 chip (`ms-tx`) and more advanced sensors from Elaborated Networks (www.wiregate.de) (`ams`, `bms`), Embedded Data System (www.embeddeddatasystems.com)(`edsenv`) and Brain4Home (`bae091x`). 
+There are different types of things: the simple one (`basic`), multisensors built around the DS1923/DS2438 chip (`ms-tx`) and more advanced sensors from Elaborated Networks (www.wiregate.de) (`ams`, `bms`), Embedded Data System (www.embeddeddatasystems.com)(`edsenv`) and Brain4Home (`bae091x`).
 
 ## Discovery
 
@@ -30,25 +30,25 @@ Discovery is supported for things. You have to add the bridges manually.
 It is strongly recommended to add things using discovery and configure them using the UI.
 Please note that:
 
-* All things need a bridge.
-* The sensor id parameter supports only the dotted format, including the family id (e.g. `28.7AA256050000`).
+- All things need a bridge.
+- The sensor id parameter supports only the dotted format, including the family id (e.g. `28.7AA256050000`).
 DS2409 MicroLAN couplers (hubs) are supported by adding their id and the branch (`main` or `aux`) in a directory-like format in front of the sensor id (e.g. `1F.EDC601000000/main/28.945042000000`).
-* Refresh time is the minimum time in seconds between two checks of that thing.
+- Refresh time is the minimum time in seconds between two checks of that thing.
 It defaults to 300s for analog channels and 10s for digital channels.
-* Some thing channels need additional configuration, please see below in the channels section.
+- Some thing channels need additional configuration, please see below in the channels section.
 
 ### OWFS Bridge (`owserver`)
 
 There are no configuration options for the owserver besides the network address.
 It consists of two parts: `address` and `port`.
 
-The `address` parameter is used to denote the location of the owserver instance. 
-It supports both, a hostname or an IP address. 
+The `address` parameter is used to denote the location of the owserver instance.
+It supports both, a hostname or an IP address.
 
 The `port` parameter is used to adjust non-standard OWFS installations.
 It defaults to `4304`, which is the default of each OWFS installation.
 
-Bridges of type `owserver` are extensible with channels of type `owfs-number` and `owfs-string`. 
+Bridges of type `owserver` are extensible with channels of type `owfs-number` and `owfs-string`.
   
 ### Generic (`basic`)
 
@@ -61,7 +61,7 @@ Depending on the chip, either `present`, `temperature`, `digitalX` or `counterX`
 
 ### Multisensor (`ms-tx`)
 
-The multisensor is build around the DS2438 or DS1923 chipset. 
+The multisensor is build around the DS2438 or DS1923 chipset.
 It always provides a `temperature` channel.
 
 Depnding on the actual sensor, additional channels (`current`, `humidity`, `light`, `voltage`, `supplyvoltage`) are added.
@@ -69,15 +69,15 @@ If the voltage input of the DS2438 is connected to a humidity sensor, several co
 
 It has three parameters: sensor id `id`, refresh time `refresh` and `manualsensor` (advanced option).
 
-Known DS2438-base sensors are iButtonLink (https://www.ibuttonlink.com/) MS-T (recognized as generic DS2438), MS-TH, MS-TC, MS-TL, MS-TV.
+Known DS2438-base sensors are iButtonLink (<https://www.ibuttonlink.com/>) MS-T (recognized as generic DS2438), MS-TH, MS-TC, MS-TL, MS-TV.
 Unknown multisensors are added as generic DS2438 and have `temperature`, `current`, `voltage` and `supplyvoltage` channels.
 
-In case the sensor is not properly detected (e.g. because it is a self-made sensor), check if it is compatible with one of the sensors listed above. 
+In case the sensor is not properly detected (e.g. because it is a self-made sensor), check if it is compatible with one of the sensors listed above.
 You can use `manualsensor` to override the auto-detected sensortype by setting `DS2438`, `MS_TH`, `MS_TV`, `MS_TL` or `MS_TC`.
 
 ### Elaborated Networks Multisensors (`ams`, `bms`)
 
-These things are complex devices from Elaborated networks. 
+These things are complex devices from Elaborated networks.
 They consist of a DS2438 and a DS18B20 with additional circuitry on one PCB.
 The AMS additionally has a second DS2438 and a DS2413 for digital I/O on-board.
 Analog light sensors can optionally be attached to both sensors.
@@ -118,7 +118,7 @@ For detailed information of each mode, please see the official documentation.
 Each pin has the can be configured as `disabled`.
 The necessary channels are automatically added.
 
-Pin 1 (`pin1`) has only one function `counter` (channel `counter`). 
+Pin 1 (`pin1`) has only one function `counter` (channel `counter`).
 Pin 2 (`pin2`) can be configured as digital output (`output`, channel `digital2`) or pulse width modulated output (`pwm`, software PWM 4, channels `freq2`, `duty4`).
 Pin 6 (`pin6`) can be configured as digital in-/output (`pio`, channel `digital6`) or pulse width modulated output (`pwm`, software PWM 3, channels `freq1`, `duty3`).
 Pin 7 (`pin7`) can be configured as analog input (`analog`), digital output (`output`, channel `digital7`) or pulse width modulated output (`pwm`, hardware PWM 2, channels `freq2`, `duty2`).
@@ -201,9 +201,8 @@ A channel of type `temperature-por-res` has one parameter: `resolution`.
 OneWire temperature sensors are capable of different resolutions: `9`, `10`, `11` and `12` bits.
 This corresponds to 0.5 °C, 0.25 °C, 0.125 °C, 0.0625 °C respectively.
 The conversion time is inverse to that and ranges from 95 ms to 750 ms.
-For best performance it is recommended to set the resolution only as high as needed. 
+For best performance it is recommended to set the resolution only as high as needed.
+
 ### BAE PWM (`bae-pwm-frequency`, `bae-pwm-duty`)
 
 PWM output 1 and 3 (2 and 4) share a frequency channel `pwmfreq1` (`pwmfreq2`).
@@ -221,7 +220,6 @@ The duty cycle can be set from 0-100%.
 
 ### BAE PIO (`bae-pio`)
 
-
 The PIO channel (programmable I/O channel) has two configuration options: `mode` and `pulldevice`.
 The `mode`can be set to `input`or `output`.
 The default is `input`.
@@ -229,18 +227,17 @@ The default is `input`.
 The `pulldevice` is only relevant for  `input` mode.
 It can be configured as `disabled`, `pullup`, `pulldown`.
 The default is disabled.
 
 ## Full Example
 
-** Attention: Adding channels with UIDs different from the ones mentioned in the thing description will not work and may cause problems.
-Please use the pre-defined channel names only. **
+**Attention: Adding channels with UIDs different from the ones mentioned in the thing description will not work and may cause problems.
+Please use the pre-defined channel names only.**
 
-This is the configuration for a OneWire network consisting of an owserver as bridge (`onewire:owserver:mybridge`) as well as a temperature sensor, a BMS and a 2-port Digital I/O as things (`onewire:basic:mybridge:mysensor`, `onewire:bms:mybridge:mybms`, `onewire:basic:mybridge:mydio`). 
+This is the configuration for a OneWire network consisting of an owserver as bridge (`onewire:owserver:mybridge`) as well as a temperature sensor, a BMS and a 2-port Digital I/O as things (`onewire:basic:mybridge:mysensor`, `onewire:bms:mybridge:mybms`, `onewire:basic:mybridge:mydio`).
 
 ### demo.things:
 
-```
+```java
 Bridge onewire:owserver:mybridge [ 
     network-address="192.168.0.51" 
     ] {
@@ -290,7 +287,7 @@ Bridge onewire:owserver:mybridge [
 
 ### demo.items:
 
-```
+```java
 Number:Temperature      MySensor    "MySensor [%.1f °C]"            { channel="onewire:basic:mybridge:mysensor:temperature" }
 Number:Temperature      MyBMS_T     "MyBMS Temperature [%.1f °F]"   { channel="onewire:bms:mybridge:mybms:temperature" }
 Number:Dimensionless    MyBMS_H     "MyBMS Humidity [%.1f %unit%]"  { channel="onewire:bms:mybridge:mybms:humidity" }
@@ -301,7 +298,7 @@ Number                  CRC8Errors  "Bus-Errors [%d]"               { channel="o
 
 ### demo.sitemap:
 
-```
+```perl
 sitemap demo label="Main Menu"
 {
     Frame {
index 250e500a9e9ee0f096707fa8d33f570d6f3e5676..5fd0484b629b4e7475d0174e9d89aeb9528f3b05 100644 (file)
@@ -4,19 +4,19 @@ This binding reads temperature values from OneWire bus sensors connected to the
 
 ## Supported Things
 
-Temperature sensors. 
+Temperature sensors.
 Tested successfully with DS18B20 sensor on Raspberry Pi 3.
 
 ## Binding Configuration
 
 The binding requires OneWire sensor to be properly connected to Raspberry Pi GPIO bus,
 "w1_gpio" and "wire" kernel modules should be loaded.
-Configuration is proper when /sys/bus/w1/devices folder is present, and contains sensor's data. 
+Configuration is proper when /sys/bus/w1/devices folder is present, and contains sensor's data.
 
 ## Thing Configuration
 
 The sensors are visible in the system as folders containing files with sensor data.
-By default all OneWire GPIO devices are stored in /sys/bus/w1/devices/DEVICE_ID_FOLDER, 
+By default all OneWire GPIO devices are stored in /sys/bus/w1/devices/DEVICE_ID_FOLDER,
 and the temperature value is available in the file "w1_slave". The Thing needs full path to the w1_slave file.
 Note the values in sysfs are in Celsius.
 
@@ -24,7 +24,7 @@ Optional parameter precision makes it easier to lower precision of the sensor va
 
 In the thing file, this looks e.g. like
 
-```
+```java
 Thing onewiregpio:sensor:livingRoom "Living room" [gpio_bus_file="/sys/bus/w1/devices/28-0000061b587b/w1_slave",refresh_time=30,precision=1]
 ```
 
@@ -36,19 +36,19 @@ The devices supports currently one channel - "temperature" which allows to read
 
 sample onewiregpio.things file content:
 
-```
+```java
 Thing onewiregpio:sensor:livingroom "Living room" [gpio_bus_file="/sys/bus/w1/devices/28-0000061b587b/w1_slave",refresh_time=30]
 ```
 
 sample onewiregpio.items file content (implements QuantityType for unit conversion):
 
-``` 
+``` java
 Number:Temperature LivingRoomTemperature      "Temperature: [%.2f %unit%]" <temperature>  { channel="onewiregpio:sensor:livingroom:temperature" }
 ```
 
 sample demo.sitemap file content:
 
-```
+```perl
 sitemap demo label="Main Menu"
 {
     Text item=LivingRoomTemperature
index a05d0285304005e2361bd9cf77de601d94894215..041f1e353ebf40cdbb4d7cfdbc11bdc1e9a73773 100644 (file)
@@ -16,39 +16,39 @@ All supported Onkyo devices are registered as an audio sink in the framework.
 This binding can discover the supported Onkyo AV receivers.
 At the moment only the following models are supported:
 
--   HT-RC440
--   HT-RC560
--   TX-NR414
--   TX-NR474
--   TX-NR509
--   TX-NR515
--   TX-NR525
--   TX-NR535
--   TX-NR545
--   TX-NR555
--   TX-NR575
--   TX-NR575E
+- HT-RC440
+- HT-RC560
+- TX-NR414
+- TX-NR474
+- TX-NR509
+- TX-NR515
+- TX-NR525
+- TX-NR535
+- TX-NR545
+- TX-NR555
+- TX-NR575
+- TX-NR575E
     TX-NR609
--   TX-NR616
--   TX-NR626
--   TX-NR636
--   TX-NR646
--   TX-NR656
--   TX-NR676
--   TX-NR686
--   TX-NR708
--   TX-NR717
--   TX-NR727
--   TX-NR737
--   TX-NR747
--   TX-NR757
--   TX-NR807
--   TX-NR809
--   TX-NR818
--   TX-NR828
--   TX-NR838
--   TX-NR3007
--   TX-RZ900
+- TX-NR616
+- TX-NR626
+- TX-NR636
+- TX-NR646
+- TX-NR656
+- TX-NR676
+- TX-NR686
+- TX-NR708
+- TX-NR717
+- TX-NR727
+- TX-NR737
+- TX-NR747
+- TX-NR757
+- TX-NR807
+- TX-NR809
+- TX-NR818
+- TX-NR828
+- TX-NR838
+- TX-NR3007
+- TX-RZ900
 
 ## Binding Configuration
 
@@ -153,7 +153,7 @@ The Onkyo AVR supports the following channels (some channels are model specific)
 | player#artist             | String    | Artist name of the current song (available if playing from Network or USB)                                      |
 | player#currentPlayingTime | String    | Current playing time of the current song (available if playing from Network or USB)                             |
 | player#listenmode         | Number    | Current listening mode e.g. Stereo, 5.1ch Surround, ...                                                         |
-| player#audioinfo          | String    | Current audio info (Refresh timer must be configured for updates)                                                     |     
+| player#audioinfo          | String    | Current audio info (Refresh timer must be configured for updates)                                               |
 | player#playuri            | String    | Plays the URI provided to the channel                                                                           |
 | player#albumArt           | Image     | Image of the current album art of the current song                                                              |
 | player#albumArtUrl        | String    | URL to the current album art of the current song                                                                |
@@ -181,14 +181,14 @@ This binding includes a rule action which allows to send raw eISCP messages to t
 The rule action can be used to send commands to the receiver that are not supported by channels.
 There is a separate instance for each receiver, which can be retrieved through
 
-```
+```java
 val onkyoActions = getActions("onkyo","onkyo:onkyoAVR:avr-livingroom")
 ```
 
 where the first parameter always has to be `onkyo` and the second (`onkyo:onkyoAVR:avr-livingroom`) is the Thing UID of the broker that should be used.
 Once this action instance is retrieved, you can invoke the `onkyoActions.sendRawCommand(String action, String value)` method on it:
 
-```
+```java
 onkyoActions.sendRawCommand("CTL", "UP")
 ```
 
@@ -201,28 +201,28 @@ Also note that when sending multiple commands there has to be a `Thread::sleep(1
 
 Here after are the ID values of the input sources:
 
--   00: DVR/VCR
--   01: SATELLITE/CABLE
--   02: GAME
--   03: AUX
--   04: GAME
--   05: PC
--   16: BLURAY/DVD
--   32: TAPE1
--   33: TAPE2
--   34: PHONO
--   35: CD
--   36: FM
--   37: AM
--   38: TUNER
--   39: MUSICSERVER
--   40: INTERNETRADIO
--   41: USB
--   42: USB_BACK
--   43: NETWORK
--   45: AIRPLAY
--   48: MULTICH
--   50: SIRIUS
+- 00: DVR/VCR
+- 01: SATELLITE/CABLE
+- 02: GAME
+- 03: AUX
+- 04: GAME
+- 05: PC
+- 16: BLURAY/DVD
+- 32: TAPE1
+- 33: TAPE2
+- 34: PHONO
+- 35: CD
+- 36: FM
+- 37: AM
+- 38: TUNER
+- 39: MUSICSERVER
+- 40: INTERNETRADIO
+- 41: USB
+- 42: USB_BACK
+- 43: NETWORK
+- 45: AIRPLAY
+- 48: MULTICH
+- 50: SIRIUS
 
 ## Item Configuration
 
index 7b30a1a1fa14c8c4e1f7fe8bf4a5b43f0b1a2fad..2fc30e1e119f308d27c9428c7b3c34f61ed38f3e 100644 (file)
@@ -1,25 +1,24 @@
 # OpenGarage Binding
 
-The OpenGarage binding allows you to control an OpenGarage controller (https://opensprinkler.com/product/opengarage/) using openHAB
-
+The OpenGarage binding allows you to control an OpenGarage controller (<https://opensprinkler.com/product/opengarage/>) using openHAB
 
 ## Supported Things
 
-Opengarage controllers from https://opensprinkler.com/product/opengarage/ are supported.
+Opengarage controllers from <https://opensprinkler.com/product/opengarage/> are supported.
 
 ## Discovery
 
-Auto-discover is not currently supported. 
+Auto-discover is not currently supported.
 You need to manually add a new item using its IP address.
 
 ## Thing Configuration
 
 As a minimum, the IP address is needed:
-* hostname - The hostname of the OpenGarage controller. Typically you'd use an IP address such as `192.168.0.5` for this field.
-* port - the port the OpenGarage is listening on. Defaults to port 80
-* refresh - The frequency with which to refresh information from the OpenGarage controller specified in seconds. Defaults to 10 seconds.
-* password - The password to send commands to the OpenGarage. Defaults to "opendoor"
 
+- `hostname` - The hostname of the OpenGarage controller. Typically you'd use an IP address such as `192.168.0.5` for this field.
+- `port` - the port the OpenGarage is listening on. Defaults to port 80
+- `refresh` - The frequency with which to refresh information from the OpenGarage controller specified in seconds. Defaults to 10 seconds.
+- `password` - The password to send commands to the OpenGarage. Defaults to "opendoor"
 
 ## Channels
 
@@ -35,13 +34,13 @@ As a minimum, the IP address is needed:
 
 opengarage.things:
 
-```
+```java
 opengarage:opengarage:OpenGarage [ hostname="192.168.0.5" ]
 ```
 
 opengarage.items:
 
-```
+```java
 Switch OpenGarage_Status { channel="opengarage:opengarage:OpenGarage:status" }
 Contact OpenGarage_Status_Contact { channel="opengarage:opengarage:OpenGarage:status-contact" }
 Rollershutter OpenGarage_Status_Rollershutter { channel="opengarage:opengarage:OpenGarage:status-rollershutter" }
@@ -51,7 +50,7 @@ String OpenGarage_Vehicle { channel="opengarage:opengarage:OpenGarage:vehicle" }
 
 opengarage.sitemap:
 
-```
+```perl
 Switch item=OpenGarage_Status icon="garagedoorclosed" mappings=[ON=Open]  visibility=[OpenGarage_Status == OFF]
 Switch item=OpenGarage_Status icon="garagedooropen"   mappings=[OFF=Close] visibility=[OpenGarage_Status == ON]
 Switch item=OpenGarage_Status icon="garage" 
@@ -60,5 +59,3 @@ Rollershutter item=OpenGarage_Status_Rollershutter icon="garage"
 Text item=OpenGarage_Distance label="OG distance"
 Text item=OpenGarage_Vehicle label="Vehicle Presence"
 ```
-
-
index 6ecd679252aca718fa7f5a958e7fb3fdc8d75fbb..d8502898916ed155fe2e19ba5e40b032721ae219 100644 (file)
@@ -8,12 +8,12 @@ Mixing the two concepts can also be done, the choice is yours.
 
 ## Supported Bridges
 
-* `OpenSprinkler HTTP Bridge` is required to communicate with an OpenSprinkler device through the network and should be added first.
+- `OpenSprinkler HTTP Bridge` is required to communicate with an OpenSprinkler device through the network and should be added first.
 
 ## Supported Things
 
-* `OpenSprinkler Station` is for gaining advanced controls and status information over a single station (zone) of a device, e.g. to turn it on or off, or the time remaining.
-* `OpenSprinkler Device` is for device-specific controls that usually apply to multiple stations or main unit sensors, e.g. if rain was detected.
+- `OpenSprinkler Station` is for gaining advanced controls and status information over a single station (zone) of a device, e.g. to turn it on or off, or the time remaining.
+- `OpenSprinkler Device` is for device-specific controls that usually apply to multiple stations or main unit sensors, e.g. if rain was detected.
 
 Recommend that you first add a single `device` thing and then if you need the extra controls, add as many of the `station` things as you wish.
 
@@ -24,18 +24,18 @@ Due to this method used, it is very slow at finding devices and can saturate net
 
 ## Bridge ('http') Configuration
 
--   hostname: Hostname or IP address of the OpenSprinkler HTTP API.
--   port: Port the OpenSprinkler device is listening on. Usually 80.
--   password: Admin password of the API. Factory default is: opendoor
--   refresh: Number of seconds in between refreshing the Thing state with the API.
--   basicUsername: (optional) Only needed when the OpenSprinkler device is behind a basic auth enforcing reverse proxy.
--   basicPassword: (optional) Only needed when the OpenSprinkler device is behind a basic auth enforcing reverse proxy.
+- hostname: Hostname or IP address of the OpenSprinkler HTTP API.
+- port: Port the OpenSprinkler device is listening on. Usually 80.
+- password: Admin password of the API. Factory default is: opendoor
+- refresh: Number of seconds in between refreshing the Thing state with the API.
+- basicUsername: (optional) Only needed when the OpenSprinkler device is behind a basic auth enforcing reverse proxy.
+- basicPassword: (optional) Only needed when the OpenSprinkler device is behind a basic auth enforcing reverse proxy.
 
 ### Station Thing Configuration
 
 The `station` thing must be used with a `http` bridge and has the following configuration properties:
 
--   stationIndex: The index of the station to communicate with, starting with 0 for the first station
+- stationIndex: The index of the station to communicate with, starting with 0 for the first station
 
 ## Channels
 
@@ -47,7 +47,7 @@ The following channels are supported by the `station` thing.
 | remainingWaterTime | Number:Time | R  | The time the station remains to be open.                 |
 | nextDuration       | Number:Time | RW | The amount of time that will be used to keep the station |
 |                    |             |    | open when next manually switched on. If not set, this    |
-|                    |             |    | value will default to 18 hours which is the maximum time | 
+|                    |             |    | value will default to 18 hours which is the maximum time |
 |                    |             |    | supported.                                               |
 | queued             | Switch      | RW | Indicates that the station is queued to be turned on.    |
 |                    |             |    | The channel cannot be turned on, only turning it off is  |
@@ -82,7 +82,7 @@ NOTE: Some channels will only show up if the hardware has the required sensor an
 
 demo.things:
 
-```
+```java
 Bridge opensprinkler:http:http [hostname="127.0.0.1", port=81, password="opendoor"] {
     Thing station 01 [stationIndex=0]
     Thing station 02 [stationIndex=1]
@@ -96,7 +96,7 @@ Bridge opensprinkler:http:http [hostname="127.0.0.1", port=81, password="opendoo
 
 demo.items:
 
-```
+```java
 Group stations
 Switch Station01 (stations) { channel="opensprinkler:station:http:01:stationState" }
 Number:Time Station01RaminingTime { channel="opensprinkler:station:http:01:remainingWaterTime" }
@@ -113,7 +113,7 @@ Number:ElectricCurrent CurrentDraw {channel="opensprinkler:device:http:device:cu
 
 demo.sitemap:
 
-```
+```perl
 sitemap demo label="Main Menu"
 {
     Frame {
index 3b736c8e23959b85ffd55d4c411ef0b1a9f2af38..4d38ef5b7c03b7b5da536021e1873cd95b81fafb 100644 (file)
@@ -3,7 +3,7 @@
 This binding is used to integrate the OpenTherm Gateway into openHAB.
 The OpenTherm Gateway is a module designed by Schelte Bron that can be connected to units that support communication using the OpenTherm protocol, such as boiler or ventilation / heat recovery unit.
 
-More information on the OpenTherm Gateway device can be found at https://otgw.tclcode.com/
+More information on the OpenTherm Gateway device can be found at <https://otgw.tclcode.com/>
 
 ## Discovery
 
@@ -177,7 +177,7 @@ With openHAB rules, you can use the `sendcommand` channel of the `openthermgatew
 
 Example:
 
-```
+```java
 SendCommand.sendCommand("PM=10")
 ```
 
@@ -185,9 +185,9 @@ This will cause the OpenTherm Gateway to send a READ-DATA message to the slave d
 
 ## Full Example
 
-### demo.things 
+### demo.things
 
-```
+```java
 Bridge openthermgateway:openthermgateway:1 "OpenTherm Gateway" [ ipaddress="192.168.1.100", port="8000", connectionRetryInterval=60 ] {
     Thing boiler remeha "Remeha Avanta 28c"
     Thing ventilationheatrecovery brink "Brink Renovent Excellent 300"
@@ -196,13 +196,13 @@ Bridge openthermgateway:openthermgateway:1 "OpenTherm Gateway" [ ipaddress="192.
 
 ### demo.items for `openthermgateway`
 
-```
+```java
 Text SendCommand "Send command channel" { channel="openthermgateway:openthermgateway:1:sendcommand" }
 ```
 
 ### demo.items for `boiler`
 
-```
+```java
 Number:Temperature RoomTemperature "Room Temperature [%.1f %unit%]" <temperature> { channel="openthermgateway:boiler:1:remeha:roomtemp }
 Number:Temperature RoomSetpoint "Room Setpoint [%.1f %unit%]" <temperature> { channel="openthermgateway:boiler:1:remeha:roomsetpoint }
 Number:Temperature TemporaryRoomSetpointOverride "Temporary Room Setpoint Override [%.1f %unit%]" <temperature> { channel="openthermgateway:boiler:1:remeha:temperaturetemporary }
@@ -257,7 +257,7 @@ Number:Dimensionless FaultHistoryBufferEntry "Fault History Buffer Entry" { chan
 
 ### demo.items for `ventilationheatrecovery`
 
-```
+```java
 Switch VentilationEnabled "Ventilation Enabled" <switch> { channel="openthermgateway:ventilationheatrecovery:1:brink:vh_ventilationenable }
 Number:Dimensionless BypassPosition "Bypass Position" { channel="openthermgateway:ventilationheatrecovery:1:brink:vh_bypassposition }
 Number:Dimensionless BypassMode "Bypass Mode" { channel="openthermgateway:ventilationheatrecovery:1:brink:vh_bypassmode }
@@ -303,7 +303,7 @@ Number:Dimensionless FaultHistoryBufferEntry "Fault History Buffer Entry" { chan
 
 ### demo.sitemap
 
-```
+```perl
 sitemap demo label="Main Menu" {
     Frame label="Boiler" {
         Text item="RoomTemperature" icon="temperature" label="Room Temperature [%.1f %unit%]"
@@ -420,9 +420,9 @@ So if you upgrade your system from openHAB v3.2 (or lower) to v3.3 (or higher),
 
 - Change the `channel=".."` configuration entries of all your Items from referring to the ThingUID of the old `otgw` Thing to refer instead to the ThingUID of the respective newly created `boiler` Thing.
 
-**Old Thing Definition and respective Item Definition (example)**
+### Old Thing Definition and respective Item Definition (example)
 
-```
+```java
 Thing openthermgateway:otgw:yourGatewayId [ ipaddress="192.168.1.100", port=8000, connectionRetryInterval=60 ]
 
 e.g.
@@ -430,9 +430,9 @@ Number:Temperature Boiler_DHW_Temperature "Boiler DHW Temperature [%.1f %unit%]"
 &c.
 ```
 
-**New Thing Definition and respective and Item Definition (example)**
+### New Thing Definition and respective and Item Definition (example)
 
-```
+```java
 Bridge openthermgateway:openthermgateway:yourGatewayId "OpenTherm Gateway" @ "Kitchen" [ipaddress="192.168.1.100", port=20108, connectionRetryInterval=60] {
     Thing boiler remeha "Boiler" @ "Kitchen"
 }
index d34c67bb55f06ce67e70ffee3e423a5112553151..90391dfc8f81f7c68ffc262dedd624450726ba5b 100644 (file)
@@ -56,7 +56,7 @@ The OpenUV Report thing that is retrieved has these channels:
 | SafeExposure | Number:Time         | Safe exposure time for Fitzpatrick Skin Types.  |
 | elevation    | Number:Angle        | Current Sun elevation.                          |
 
-The elevation channel will be used as an input in order to limit API queries to OpenUV. If not used, 
+The elevation channel will be used as an input in order to limit API queries to OpenUV. If not used,
 the binding will not consider it. When value is provided queries will only be issued if the elevation is > 0°.
 This is quite useful with a free OpenUV account (50 req/day included): in this case, and with the elevation channel configured, a 20 minutes refresh interval should be ok (in Europe the longest day is around 15 hours).
 
index 88fba39574f8ebd0a26dec8ba3aa6f993efd07e9..1543fbeb45d4459f64e61ba1510f145c58942f69 100644 (file)
@@ -40,9 +40,10 @@ Air pollution forecast is available for 5 days with hourly granularity.
 You can add as much `air-pollution` things for different locations to your setup as you like to observe.
 
 #### One Call API Version
+
 New Subscribers to the One Call API will require setting the API version to 3.0 (The API key will not work with 2.5). Existing subscribers can continue to use their existing API key with version 2.5.
 
- One Call API Version 3.0 [requires payment details](https://openweathermap.org/price) for future forecast information. However, it is possible to set a [daily API call limit to 1000](https://openweathermap.org/faq#onecall), which will avoid charges. 
+ One Call API Version 3.0 [requires payment details](https://openweathermap.org/price) for future forecast information. However, it is possible to set a [daily API call limit to 1000](https://openweathermap.org/faq#onecall), which will avoid charges.
 
 ### One Call API Weather and Forecast
 
index c9abf3d1a4d3578e63424bd17159a5ebb2f66ad0..42e3470d2ca4507494bbb06e9ee7c5e681a4efa0 100644 (file)
@@ -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 %%]"                  <DimmableLight>  (gKitchen)                   [ "Lighting" ]  { channel="openwebnet:zb_dimmer:myZBgateway:myZB_dimmer:brightness" }
 Switch          iSimpleSwitch       "Kitchen Switch"                    <light>          (gKitchen)                   [ "Lighting" ]  { channel="openwebnet:zb_on_off_switch:myZBgateway:myZB_switch:switch_01" }
 Switch          iSwitch_01          "2U first light"                    <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"                   <light>
 
 ### openwebnet.sitemap
 
-```
+```perl
 sitemap openwebnet label="OpenWebNet Binding Example Sitemap"
 {
     Frame label="Living Room"
index 715540180de30c0fc7ff279688e86d27d6d86cdc..4f0c5386b2c4bfd230444f71e5bc90d2f908a1de 100644 (file)
@@ -8,9 +8,9 @@ Also review the notes below for some important usage caveats.
 
 The binding supports three different kinds of connections:
 
-* direct IP connection (with caveats),
-* serial connection,
-* serial over IP connection
+- direct IP connection (with caveats),
+- serial connection,
+- serial over IP connection
 
 For users without a serial port on the server side, you can use a USB to serial adapter.
 
@@ -46,33 +46,35 @@ The thing has the following configuration parameters:
 
 Some notes:
 
-* If using direct IP connection on the BDP series (83/93/95/103/105), verbose mode is not supported.
-* For some reason on these models, the unsolicited status update messages are not generated over the IP socket.
-* If fast updates are required on these models, a direct serial or serial over IP connection to the player is required.
-* The UDP-20x series should be fully functional over direct IP connection but this was not able to be tested by the developer.
-* As previously noted, when using verbose mode, the player will send time code messages once per second while playback is ongoing.
-* Be aware that this could cause performance impacts to your openHAB system.
-* In non-verbose (the default), the binding will poll the player every 10 seconds to update play time, track and chapter information instead.
-* In order for the direct IP connection to work while the player is turned off, the Standby Mode setting must be set to "Quick Start" in the Device Setup menu.
-* Likewise if the player is turned off, it may not be discoverable by the Binding's discovery scan.
-* If the player is switched off when the binding first starts up or if power to the player is ever interrupted, up to 30 seconds may elapse before the binding begins to update when the player is switched on.
-* If you experience any issues using the binding, first ensure that the player's firmware is up to date with the latest available version (especially on the older models).
-* For the older models, some of the features in the control API were added after the players were shipped.
-* Available HDMI modes for BDP-83 & BDP-9x: AUTO, SRC, 1080P, 1080I, 720P, SDP, SDI
-* Available HDMI modes for BDP-10x: AUTO, SRC, 4K2K, 1080P, 1080I, 720P, SDP, SDI
-* Available HDMI modes for UDP-20x: AUTO, SRC, UHD_AUTO, UHD24, UHD50, UHD60, 1080P_AUTO, 1080P24, 1080P50, 1080P60, 1080I50, 1080I60, 720P50, 720P60, 567P, 567I, 480P, 480I
-
-* On Linux, you may get an error stating the serial port cannot be opened when the Oppo 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. Oppo 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 Oppo player):
-
-```
+- If using direct IP connection on the BDP series (83/93/95/103/105), verbose mode is not supported.
+- For some reason on these models, the unsolicited status update messages are not generated over the IP socket.
+- If fast updates are required on these models, a direct serial or serial over IP connection to the player is required.
+- The UDP-20x series should be fully functional over direct IP connection but this was not able to be tested by the developer.
+- As previously noted, when using verbose mode, the player will send time code messages once per second while playback is ongoing.
+- Be aware that this could cause performance impacts to your openHAB system.
+- In non-verbose (the default), the binding will poll the player every 10 seconds to update play time, track and chapter information instead.
+- In order for the direct IP connection to work while the player is turned off, the Standby Mode setting must be set to "Quick Start" in the Device Setup menu.
+- Likewise if the player is turned off, it may not be discoverable by the Binding's discovery scan.
+- If the player is switched off when the binding first starts up or if power to the player is ever interrupted, up to 30 seconds may elapse before the binding begins to update when the player is switched on.
+- If you experience any issues using the binding, first ensure that the player's firmware is up to date with the latest available version (especially on the older models).
+- For the older models, some of the features in the control API were added after the players were shipped.
+- Available HDMI modes for BDP-83 & BDP-9x: AUTO, SRC, 1080P, 1080I, 720P, SDP, SDI
+- Available HDMI modes for BDP-10x: AUTO, SRC, 4K2K, 1080P, 1080I, 720P, SDP, SDI
+- Available HDMI modes for UDP-20x: AUTO, SRC, UHD_AUTO, UHD24, UHD50, UHD60, 1080P_AUTO, 1080P24, 1080P50, 1080P60, 1080I50, 1080I60, 720P50, 720P60, 567P, 567I, 480P, 480I
+
+- On Linux, you may get an error stating the serial port cannot be opened when the Oppo 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. Oppo 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 Oppo player):
+
+```text
 4444:raw:0:/dev/ttyUSB0:9600 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 Oppo player):
-```
+
+- 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 Oppo player):
+
+```yaml
 connection: &conOppo
     accepter: tcp,4444
     enable: on
@@ -120,7 +122,7 @@ The following channels are available:
 
 oppo.things:
 
-```
+```java
 // direct IP connection
 oppo:player:myoppo "Oppo Blu-ray" [ host="192.168.0.10", model=103, verboseMode=false]
 
@@ -134,7 +136,7 @@ oppo:player:myoppo "Oppo Blu-ray" [ host="192.168.0.9", port=4444, model=103, ve
 
 oppo.items:
 
-```
+```java
 Switch oppo_power "Power" { channel="oppo:player:myoppo:power" }
 Dimmer oppo_volume "Volume [%d %%]" { channel="oppo:player:myoppo:volume" }
 Switch oppo_mute "Mute" { channel="oppo:player:myoppo:mute" }
@@ -165,7 +167,7 @@ String oppo_remote_button "Remote Button [%s]" { channel="oppo:player:myoppo:rem
 
 secondsformat.js:
 
-```
+```javascript
 (function(totalSeconds) {
     if (isNaN(totalSeconds)) {
         return '-';
@@ -190,7 +192,7 @@ secondsformat.js:
 
 oppo.sitemap:
 
-```
+```perl
 sitemap oppo label="Oppo Blu-ray" {
     Frame label="Player"    {
         Switch item=oppo_power
index 9d0d8874070acd8e1198ec6514544ecf6a19a8ec..d04b29438bcb65ff5059af1d43ac6635c78d4b34 100644 (file)
@@ -1,6 +1,6 @@
 # Orbit B-hyve Binding
 
-This is the binding for the [Orbit B-hyve](https://bhyve.orbitonline.com/) wi-fi sprinklers. 
+This is the binding for the [Orbit B-hyve](https://bhyve.orbitonline.com/) wi-fi sprinklers.
 
 ## Supported Things
 
@@ -19,7 +19,7 @@ There is no user configuration related to sprinkler things. Sprinklers do need a
 
 ## Channels
 
-This binding automatically detects all zones and programs for each sprinkler and creates these dynamic channels: 
+This binding automatically detects all zones and programs for each sprinkler and creates these dynamic channels:
 
 | channel          | type   | description                                                      |
 |------------------|--------|------------------------------------------------------------------|
@@ -40,34 +40,34 @@ Beside the dynamic channels each sprinkler thing provides these standard channel
 
 ## Full Example
 
-_*.things example_
+### Things Example
 
-```
+```java
 Bridge orbitbhyve:bridge:mybridge "Orbit Bridge" [ email="your@ema.il", password="yourPass", refresh=30 ] {  
   Thing sprinkler indoor_timer "Sprinkler" [ id="4cab55704e0d7ddf98c1cc37" ]  
 }
 ```
 
-_*.items example_
-
-```
-Switch IrrigationControl "Irrigation active" <bhyve>   (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:control" }  
-Switch IrrigationSmartWatering "Smart watering" <bhyve>        (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:smart_watering" }  
-Switch Irrigation1 "Zone 1" <water>    (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:zone_1" }  
-Switch Irrigation2 "Zone 2" <water>    (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:zone_2" }  
-Switch Irrigation3 "Zone 3" <water>    (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:zone_3" }  
-Switch Irrigation4 "Zone 4" <water>    (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:zone_4" }  
-Switch IrrigationP1 "Run program A" <program>  (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:program_a" }  
-Switch IrrigationP1Enable "Schedule program A" <program>       (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:enable_program_a" }  
-String IrrigationMode "Irrigation mode [%s]" <water>   (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:mode" }  
-Number IrrigationTime "Irrigation time [%d min]" <clock>       (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:watering_time" }  
-Number IrrigationRainDelay "Rain delay [%d h]" <hourglass>     (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:rain_delay" }  
-DateTime IrrigationNextStart "Next start A [%1$td.%1$tm.%1$tY %1$tR]" <clock>  (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:next_start" }  
+### Items Example
+
+```java
+Switch IrrigationControl "Irrigation active" <bhyve>  (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:control" }  
+Switch IrrigationSmartWatering "Smart watering" <bhyve> (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:smart_watering" }  
+Switch Irrigation1 "Zone 1" <water> (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:zone_1" }  
+Switch Irrigation2 "Zone 2" <water> (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:zone_2" }  
+Switch Irrigation3 "Zone 3" <water> (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:zone_3" }  
+Switch Irrigation4 "Zone 4" <water> (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:zone_4" }  
+Switch IrrigationP1 "Run program A" <program> (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:program_a" }  
+Switch IrrigationP1Enable "Schedule program A" <program>  (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:enable_program_a" }  
+String IrrigationMode "Irrigation mode [%s]" <water>  (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:mode" }  
+Number IrrigationTime "Irrigation time [%d min]" <clock>  (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:watering_time" }  
+Number IrrigationRainDelay "Rain delay [%d h]" <hourglass>  (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:rain_delay" }  
+DateTime IrrigationNextStart "Next start A [%1$td.%1$tm.%1$tY %1$tR]" <clock>  (Out_Irrigation) { channel="orbitbhyve:sprinkler:mybridge:indoor_timer:next_start" }  
 ```
 
-_*.sitemap example_
+### Sitemap Example
 
-```
+```perl
 Switch item=IrrigationControl  
 Switch item=IrrigationSmartWatering  
 Switch item=Irrigation1  
index 05124a8a393453107f6a4d9c2beb51cc91d10a9a..f857fb29664e8810255c0f2aa2e5db9b2eed6048 100644 (file)
@@ -5,7 +5,7 @@ Primarily this was designed for S20 Wifi Sockets but other products using the sa
 
 ## Supported Things
 
-*   S20 Wifi Sockets
+- S20 Wifi Sockets
 
 ## Discovery
 
@@ -21,7 +21,7 @@ This is optional, it is recommended to let the binding discover and add Orvibo d
 To manually configure an S20 Thing you must specify its deviceId (MAC address).
 In the thing file, this looks like:
 
-```
+```java
 Thing orvibo:s20:mysocket [ deviceId="AABBCCDDEEFF"]
 ```
 
@@ -35,7 +35,7 @@ Thing orvibo:s20:mysocket [ deviceId="AABBCCDDEEFF"]
 
 ## Items:
 
-```
+```java
 Switch MySwitch              "Switch state [%s]"  { channel="orvibo:s20:mysocket:power" }
 ```
 
@@ -44,7 +44,7 @@ Switch MySwitch              "Switch state [%s]"  { channel="orvibo:s20:mysocket
 Using the above things channels and items
 Sitemap:
 
-```
+```perl
 sitemap demo label="Main Menu" {
         Frame  {
                 Switch item=MySwitch
index 0eccb050c472f373c8faf25343dad9fa4f4d09e0..8f449875ef8fbaf32249e1effff2507337f2f576 100644 (file)
@@ -4,10 +4,10 @@ This binding is intended to provide basic support for Paradox Alarm system.
 
 With the power of openHAB this binding can be used for complex decision rules combining motion/magnetic sensor or whole partitions states with different scenarios.
 
-Examples: 
+Examples:
 
-* All partitions are armed, therefore there is no one at home. 
-* Window is opened for more than 10 minutes and temperature outside is bellow XXX degrees, send mail/any other supported notification to particular people.
+- All partitions are armed, therefore there is no one at home.
+- Window is opened for more than 10 minutes and temperature outside is bellow XXX degrees, send mail/any other supported notification to particular people.
 
 ## Supported Paradox panels/systems
 
@@ -52,7 +52,7 @@ Currently binding supports the following panels: EVO192, EVO48(not tested), EVO9
 |--------|------------------------------------------------------------------------------------|
 | LOGOUT | Logs out and disconnects from Paradox alarm system                                 |
 | LOGIN  | Creates socket if necessary, connects to paradox system and uses the logon data from the thing parameters to connect.|
-| RESET  | Does logout and then login with recreation of communicator objects inside the code.| 
+| RESET  | Does logout and then login with recreation of communicator objects inside the code.|
 
 ### Entities (zones, partitions) configuration parameters:
 
@@ -102,6 +102,7 @@ Currently binding supports the following panels: EVO192, EVO48(not tested), EVO9
 | zoneLabel       | String  | Label of zone inside Paradox configuration                                     |
 | openedState     | Contact | Zone opened / closed                                                           |
 | tamperedState   | Switch  | Zone is tampered / not tampered                                                |
+
 ## Example things configuration
 
 ```java
@@ -159,10 +160,10 @@ Currently binding supports the following panels: EVO192, EVO48(not tested), EVO9
             Selection item=paradoxSendCommand mappings=["LOGOUT"="Logout", "LOGIN"="Login", "RESET"="Reset"]
         }
         Frame label="Panel" {
-                               Text item=paradoxTime
-                               Text item=paradoxAcVoltage
-                               Text item=paradoxDcVoltage
-                               Text item=paradoxBatteryVoltage
+            Text item=paradoxTime
+            Text item=paradoxAcVoltage
+            Text item=paradoxDcVoltage
+            Text item=paradoxBatteryVoltage
         }
         Frame label="Partitions" {
             Text item=partition1State valuecolor=[partition1State=="Disarmed"="green", partition1State=="Armed"="red"]
@@ -181,8 +182,8 @@ Currently binding supports the following panels: EVO192, EVO48(not tested), EVO9
 
 This binding would not be possible without the reverse engineering of the byte level protocol and the development by other authors in python, C# and other languages. Many thanks to the following authors and their respective GitHub repositories for their development that helped in creating this binding:
 
-João Paulo Barraca - https://github.com/ParadoxAlarmInterface/pai
+João Paulo Barraca - <https://github.com/ParadoxAlarmInterface/pai>
 
 Jean Henning - repository not available
 
-Tertuish - https://github.com/Tertiush/ParadoxIP150v2 / https://github.com/Tertiush/ParadoxIP150
+Tertuish - <https://github.com/Tertiush/ParadoxIP150v2> / <https://github.com/Tertiush/ParadoxIP150>
index 229141675474b21e9da379cd5262973cc9523732..d9610bbfa02a176c19d2f85b742f6dc82b6cbb65 100644 (file)
@@ -24,7 +24,7 @@ An example setup would run the following command: "ser2sock -p 10000 -s /dev/tty
 Note: This is the setup utlized for the majority of my testing of this binding.
 
 Note: If you are on a Linux system, the framework may not see a symbolically linked device (i.e. /dev/ttyRS485).
-To use a symbolically linked device, add the following line to */etc/default/openhab* `EXTRA_JAVA_OPTS="-Dgnu.io.rxtx.SerialPorts=/dev/ttyRS485"`
+To use a symbolically linked device, add the following line to _/etc/default/openhab_ `EXTRA_JAVA_OPTS="-Dgnu.io.rxtx.SerialPorts=/dev/ttyRS485"`
 
 Once you have the interface connected to your system, it is best to test basic connectivity.
 Note the protocol is a binary protocol (not ASCII text based) and in order to view the communication packets, one must use a program capable of a binary/HEX mode.
@@ -77,7 +77,7 @@ The following table shows the available configuration parameters for each thing.
 Currently automatic discovery is not supported.
 Here is an example of a thing configuration file called 'pentair.things':
 
-```
+```java
 Bridge pentair:ip_bridge:1 [ address="192.168.1.202", port=10001 ] {
     easytouch main [ id=16 ]
     intelliflo pump1 [ id=96 ]
@@ -86,7 +86,8 @@ Bridge pentair:ip_bridge:1 [ address="192.168.1.202", port=10001 ] {
 ```
 
 For a serial bridge you would use a configuration similar to this, again saved as 'pentair.things':
-```
+
+```java
 Bridge pentair:serial_bridge:1 [ serialPort="/dev/ttyUSB0" ] {
     easytouch main [ id=16 ]
     intelliflo pump1 [ id=96 ]
@@ -145,7 +146,7 @@ Pentair things support a variety of channels as seen below in the following tabl
 
 The following is an example of an item file (pentair.items), you can change the °F to °C if you are using metric temperature units:
 
-```
+```java
 Group gPool          "Pool"
 
 Number Pool_Temp               "Pool Temp [%.1f °F]"          <temperature>   (gPool) { channel = "pentair:easytouch:1:main:pooltemp" }
@@ -185,7 +186,8 @@ Number Pump_PPC                "Pump PPC [%d]"                                (g
 ```
 
 Here is an example of a complete sitemap, saved as `pentair.sitemap`.  Adjust the temperature values for metric if so desired.
-```
+
+```perl
 sitemap pool label="Pool stuff" {
   Frame label="Pool" {
     Switch item=Mode_Pool
@@ -206,8 +208,8 @@ sitemap pool label="Pool stuff" {
 
 ## References
 
-Setting up RS485 and basic protocol - https://www.sdyoung.com/home/decoding-the-pentair-easytouch-rs-485-protocol/
-ser2sock GitHub - https://github.com/nutechsoftware/ser2sock
+Setting up RS485 and basic protocol - <https://www.sdyoung.com/home/decoding-the-pentair-easytouch-rs-485-protocol/>
+ser2sock GitHub - <https://github.com/nutechsoftware/ser2sock>
 
 ## Future Enhancements
 
index e12cfc394e4bbce36cc4fedad7851cfb2a7de7c3..d8d7e7486ee46ab1b16a5423ad7483514407e4da 100644 (file)
@@ -23,11 +23,11 @@ The binding was tested with QinHeng Electronics HL-340 USB-Serial adapter (RS485
 
 If there are many modules on one bridge, the initialization can take a few minutes. If it does not work you can plug in the modules one after the other.
 Sometimes after initialization, you might have to switch two times or the reaction could be a bit slow, but after you used a channel it should all work fine.
+
 For all devices running with Linux that use the ch341 driver (HL-340), the new version (ch34x) is needed.
 A guide how to install this can be found here: [CH340/341 UART Driver for Raspberry Pi](https://github.com/aperepel/raspberrypi-ch340-driver).  
 
-If you don´t have the same kernel as used in the guide you have to compile the module yourself. In the guide is described a specific way for the Raspberry Pi. With another Linux version you can go the normal way with linux-headers.   
+If you don´t have the same kernel as used in the guide you have to compile the module yourself. In the guide is described a specific way for the Raspberry Pi. With another Linux version you can go the normal way with linux-headers.
 
 According to the [Wiki of the PHC-Forum](https://wiki.phc-forum.de/index.php/PHC-Protokoll_des_internen_Bus#USB_RS-485_Adapter) the newer version of the FTDI adapter doesn't really work anymore either.
 
@@ -55,7 +55,7 @@ Connect a RJ12 plug with the RS485 adaptor and the power supply as follows.
 | 0V                         | 0V on power supply          |
 | B-                         | 485- on adaptor             |
 | A+                         | 485+ on adaptor             |
-| 24+                        | +24V on power supply        | 
+| 24+                        | +24V on power supply        |
 
 ![RJ12 Connector](doc/RJ12-Connector.png)
 
@@ -65,7 +65,7 @@ The Bridge manages the communication between the things and the modules via a se
 It represents the STM.
 At the Moment you can only use one Bridge (like one STM).
 
-#### Configurations
+### Configurations
 
 **Serial Port:** Type the serial port of the RS485 adaptor, e.g. COM3 (Windows) or /dev/ttyUSB0 (Linux).
 
@@ -88,7 +88,7 @@ Not implemented yet.
 A thing accords with a module in the PHC software and the channels (with linked items) accord with the inputs and outputs.
 Please note, if you define the things manually (not in the UI) that the ThingID always have to be the address (like the PID switches on the module).
 
-#### Parameters
+### Parameters
 
 - **address:** Type the address of the module like the DIP switches (you can also find in the PHC software) of the module, e.g. 10110. (mandatory)
 
@@ -124,7 +124,7 @@ After reboot the config parameter is used by default.
 
 .things
 
-```
+```java
 Bridge phc:bridge:demo [port="/dev/ttyUSB0"]{
     // The ThingID have to be the address.
     Thing AM 01101 [address="01101"]
@@ -135,7 +135,7 @@ Bridge phc:bridge:demo [port="/dev/ttyUSB0"]{
 
 .items
 
-```
+```java
 //AM Module
 Switch Switch_1 {channel="phc:AM:01101:am#00"}
 Switch Switch_2 {channel="phc:AM:01101:am#01"}
index 07da1d040f79c26cd78b2a07b56a22fb9e664465..7be4827d1eb1e3dcf2c35e6dfc0f8e8092718027 100644 (file)
@@ -84,9 +84,9 @@ things from them.
 
 ## Full Example
 
-things/pilight.things
+### pilight.things
 
-```
+```java
 Bridge pilight:bridge:raspi "Pilight Daemon raspi" [ ipAddress="192.168.1.1", port=5000 ] {
         Thing switch office "Office" [ name="office" ]
         Thing dimmer piano "Piano"  [ name="piano" ]
@@ -98,9 +98,9 @@ Bridge pilight:bridge:raspi "Pilight Daemon raspi" [ ipAddress="192.168.1.1", po
 }
 ```
 
-items/pilight.items
+### pilight.items
 
-```
+```java
 Switch office_switch "Büro" { channel="pilight:switch:raspi:office:state" }
 Dimmer piano_light "Klavier [%.0f %%]" { channel="pilight:dimmer:raspi:piano:dimlevel" }
 Number weather_temperature  "Aussentemperatur [%.1f °C]" <temperature>  { channel="pilight:generic:raspi:weather:temperature" }
@@ -108,12 +108,11 @@ Number weather_humidity "Feuchtigkeit [%.0f %%]" <humidity> { channel="pilight:g
 
 ```
 
-sitemaps/fragment.sitemap
+### fragment.sitemap
 
-```
+```perl
 Switch item=office_switch
 Slider item=piano_light
 Text item=weather_temperature
 Text item=weather_humidity
 ```
-
index b15d4a6a05b4678b4cbef885aca79e8b30b623e3..2e861d20a625d159db62f3b110b6a5205178a2a0 100644 (file)
@@ -6,7 +6,7 @@ The binding can auto-discover the Pioneer AVRs present on your local network.
 The auto-discovery is enabled by default.
 To disable it, you can create a file in the services directory called pioneeravr.cfg with the following content:
 
-```
+```text
 #Put your configuration here
 org.openhab.pioneeravr:enableAutoDiscovery=false
 ```
@@ -20,20 +20,18 @@ In the things folder, create a file called pioneeravr.things (or any other name)
 
 The binding can control AVRs through the local network (ipAvr/ipAvrUnsupported thing type) or through a Serial connection (serialAvr) if the AVR is directly connected to your computer.
 
-
 Configuration of ipAvr/ipAvrUnsupported:
 
-*   address: the hostname/ipAddress of the AVR on the local network. (mandatory)
-*   tcpPort: the port number to use to connect to the AVR. (optional, default to 23)
-
+- address: the hostname/ipAddress of the AVR on the local network. (mandatory)
+- tcpPort: the port number to use to connect to the AVR. (optional, default to 23)
 
 Configuration of serialAvr:
 
-*   serialPort: the name of the serial port on your computer. (mandatory)
+- serialPort: the name of the serial port on your computer. (mandatory)
 
 Example:
 
-```
+```java
 pioneeravr:ipAvr:vsx921IP [ address="192.168.1.25" ]
 pioneeravr:ipAvr:vsx921IP [ address="192.168.1.25", tcpPort=32 ]
 pioneeravr:serialAvr:vsx921Serial [ serialPort="COM9" ]
@@ -41,227 +39,227 @@ pioneeravr:serialAvr:vsx921Serial [ serialPort="COM9" ]
 
 ## Channels
 
-*   power: power On/Off the AVR. Receive power events.
-*   volumeDimmer: Increase/Decrease the volume on the AVR or set the volume as %. Receive volume change events (in %).
-*   volumeDb: Set the volume of the AVR in dB (from -80.0 to 12 with 0.5 dB steps). Receive volume change events (in dB).
-*   mute: Mute/Unmute the AVR. Receive mute events.
-*   setInputSource: Set the input source of the AVR. See input source mapping for more details. Receive source input change events with the input source ID.
-*   displayInformation: Receive display events. Reflect the display on the AVR front panel.
+- power: power On/Off the AVR. Receive power events.
+- volumeDimmer: Increase/Decrease the volume on the AVR or set the volume as %. Receive volume change events (in %).
+- volumeDb: Set the volume of the AVR in dB (from -80.0 to 12 with 0.5 dB steps). Receive volume change events (in dB).
+- mute: Mute/Unmute the AVR. Receive mute events.
+- setInputSource: Set the input source of the AVR. See input source mapping for more details. Receive source input change events with the input source ID.
+- displayInformation: Receive display events. Reflect the display on the AVR front panel.
 
 ## Input Source Mapping
 
 Here after are the ID values of the input sources (depending on you AVR input sources might not be available):
 
-* 04: DVD
-* 25: BD
-* 05: TV/SAT
-* 06: SAT/CBL
-* 15: DVR/BDR
-* 10: VIDEO 1(VIDEO)
-* 14: VIDEO 2
-* 19: HDMI 1
-* 20: HDMI 2
-* 21: HDMI 3
-* 22: HDMI 4
-* 23: HDMI 5
-* 24: HDMI 6
-* 34: HDMI 7
-* 35: HDMI 8
-* 26: HOME MEDIA GALLERY(Internet Radio)
-* 44: Media Server
-* 38: Internet Radio
-* 17: iPod/USB
-* 48: MHL
-* 01: CD
-* 03: CD-R/TAPE
-* 02: TUNER
-* 00: PHONO
-* 13: USB-DAC
-* 12: MULTI CH IN
-* 33: ADAPTER PORT (BT)
-* 18: XM RADIO
-* 27: SIRIUS
-* 40: SiriusXM
-* 41: PANDORA
-* 45: Favourites
-* 57: Spotify
-* 31: HDMI (cyclic)
+- 04: DVD
+- 25: BD
+- 05: TV/SAT
+- 06: SAT/CBL
+- 15: DVR/BDR
+- 10: VIDEO 1(VIDEO)
+- 14: VIDEO 2
+- 19: HDMI 1
+- 20: HDMI 2
+- 21: HDMI 3
+- 22: HDMI 4
+- 23: HDMI 5
+- 24: HDMI 6
+- 34: HDMI 7
+- 35: HDMI 8
+- 26: HOME MEDIA GALLERY(Internet Radio)
+- 44: Media Server
+- 38: Internet Radio
+- 17: iPod/USB
+- 48: MHL
+- 01: CD
+- 03: CD-R/TAPE
+- 02: TUNER
+- 00: PHONO
+- 13: USB-DAC
+- 12: MULTI CH IN
+- 33: ADAPTER PORT (BT)
+- 18: XM RADIO
+- 27: SIRIUS
+- 40: SiriusXM
+- 41: PANDORA
+- 45: Favourites
+- 57: Spotify
+- 31: HDMI (cyclic)
 
 ## Listening Modes
 
-The *Listening Mode* is set by user to instruct the AVR how to treat the audio signal and do upscaling, downscaling and amplification. This settings corresponds to the settings made with the remote control or front panel. What the AVR actually does with each setting/input-signal-combination can be read out using the *Playing Listening Mode* channel.
-
-* 0001: STEREO (cyclic)
-* 0010: STANDARD (cyclic)
-* 0009: STEREO (direct set)
-* 0011: (2ch source)
-* 0013: PRO LOGIC2 MOVIE
-* 0018: PRO LOGIC2x MOVIE
-* 0014: PRO LOGIC2 MUSIC
-* 0019: PRO LOGIC2x MUSIC
-* 0015: PRO LOGIC2 GAME
-* 0020: PRO LOGIC2x GAME
-* 0031: PRO LOGIC2z HEIGHT
-* 0032: WIDE SURROUND MOVIE
-* 0033: WIDE SURROUND MUSIC
-* 0012: PRO LOGIC
-* 0016: Neo:6 CINEMA
-* 0017: Neo:6 MUSIC
-* 0037: Neo:X CINEMA
-* 0038: Neo:X MUSIC
-* 0039: Neo:X GAME
-* 0040: Dolby Surround
-* 0041: EXTENDED STEREO
-* 0021: (Multi ch source) Channel base straight decode
-* 0022: (Multi ch source)+DOLBY EX
-* 0023: (Multi ch source)+PRO LOGIC2x MOVIE
-* 0024: (Multi ch source)+PRO LOGIC2x MUSIC
-* 0034: (Multi-ch Source)+PRO LOGIC2z HEIGHT
-* 0035: (Multi-ch Source)+WIDE SURROUND MOVIE
-* 0036: (Multi-ch Source)+WIDE SURROUND MUSIC
-* 0025: (Multi ch source)DTS-ES Neo:6
-* 0026: (Multi ch source)DTS-ES matrix
-* 0027: (Multi ch source)DTS-ES discrete
-* 0030: (Multi ch source)DTS-ES 8ch discrete
-* 0043: (Multi ch source)+Neo:X CINEMA
-* 0044: (Multi ch source)+Neo:X MUSIC
-* 0045: (Multi ch source)+Neo:X GAME
-* 0050: (Multi ch source)+Dolby Surround
-* 0100: ADVANCED SURROUND (cyclic)
-* 0101: ACTION
-* 0103: DRAMA
-* 0118: ADVANCED GAME
-* 0117: SPORTS
-* 0107: CLASSICAL
-* 0110: ROCK/POP
-* 0003: Front Stage Surround Advance
-* 0200: ECO MODE (cyclic)
-* 0212: ECO MODE 1
-* 0213: ECO MODE 2
-* 0153: RETRIEVER AIR
-* 0113: PHONES SURROUND
-* 0005: AUTO SURR/STREAM DIRECT (cyclic)
-* 0006: AUTO SURROUND
-* 0151: Auto Level Control (A.L.C.)
-* 0007: DIRECT
-* 0008: PURE DIRECT
-* 0152: OPTIMUM SURROUND
+The _Listening Mode_ is set by user to instruct the AVR how to treat the audio signal and do upscaling, downscaling and amplification. This settings corresponds to the settings made with the remote control or front panel. What the AVR actually does with each setting/input-signal-combination can be read out using the _Playing Listening Mode_ channel.
+
+- 0001: STEREO (cyclic)
+- 0010: STANDARD (cyclic)
+- 0009: STEREO (direct set)
+- 0011: (2ch source)
+- 0013: PRO LOGIC2 MOVIE
+- 0018: PRO LOGIC2x MOVIE
+- 0014: PRO LOGIC2 MUSIC
+- 0019: PRO LOGIC2x MUSIC
+- 0015: PRO LOGIC2 GAME
+- 0020: PRO LOGIC2x GAME
+- 0031: PRO LOGIC2z HEIGHT
+- 0032: WIDE SURROUND MOVIE
+- 0033: WIDE SURROUND MUSIC
+- 0012: PRO LOGIC
+- 0016: Neo:6 CINEMA
+- 0017: Neo:6 MUSIC
+- 0037: Neo:X CINEMA
+- 0038: Neo:X MUSIC
+- 0039: Neo:X GAME
+- 0040: Dolby Surround
+- 0041: EXTENDED STEREO
+- 0021: (Multi ch source) Channel base straight decode
+- 0022: (Multi ch source)+DOLBY EX
+- 0023: (Multi ch source)+PRO LOGIC2x MOVIE
+- 0024: (Multi ch source)+PRO LOGIC2x MUSIC
+- 0034: (Multi-ch Source)+PRO LOGIC2z HEIGHT
+- 0035: (Multi-ch Source)+WIDE SURROUND MOVIE
+- 0036: (Multi-ch Source)+WIDE SURROUND MUSIC
+- 0025: (Multi ch source)DTS-ES Neo:6
+- 0026: (Multi ch source)DTS-ES matrix
+- 0027: (Multi ch source)DTS-ES discrete
+- 0030: (Multi ch source)DTS-ES 8ch discrete
+- 0043: (Multi ch source)+Neo:X CINEMA
+- 0044: (Multi ch source)+Neo:X MUSIC
+- 0045: (Multi ch source)+Neo:X GAME
+- 0050: (Multi ch source)+Dolby Surround
+- 0100: ADVANCED SURROUND (cyclic)
+- 0101: ACTION
+- 0103: DRAMA
+- 0118: ADVANCED GAME
+- 0117: SPORTS
+- 0107: CLASSICAL
+- 0110: ROCK/POP
+- 0003: Front Stage Surround Advance
+- 0200: ECO MODE (cyclic)
+- 0212: ECO MODE 1
+- 0213: ECO MODE 2
+- 0153: RETRIEVER AIR
+- 0113: PHONES SURROUND
+- 0005: AUTO SURR/STREAM DIRECT (cyclic)
+- 0006: AUTO SURROUND
+- 0151: Auto Level Control (A.L.C.)
+- 0007: DIRECT
+- 0008: PURE DIRECT
+- 0152: OPTIMUM SURROUND
 
 ## Playing Listening Modes
 
-The *Playing Listening Mode* is the Listening Mode that is actually playing as opposed to the *Listening Mode* set by the user. The *Playing Listening Mode* is what the display on the device shows.
-
-* 0101: [)(]PLIIx MOVIE
-* 0102: [)(]PLII MOVIE
-* 0103: [)(]PLIIx MUSIC
-* 0104: [)(]PLII MUSIC
-* 0105: [)(]PLIIx GAME
-* 0106: [)(]PLII GAME
-* 0107: [)(]PROLOGIC
-* 0108: Neo:6 CINEMA
-* 0109: Neo:6 MUSIC
-* 010c: 2ch Straight Decode
-* 010d: [)(]PLIIz HEIGHT
-* 010e: WIDE SURR MOVIE
-* 010f: WIDE SURR MUSIC
-* 0110: STEREO
-* 0111: Neo:X CINEMA
-* 0112: Neo:X MUSIC
-* 0113: Neo:X GAME
-* 0117: Dolby Surround
-* 0118: EXTENDED STEREO
-* 1101: [)(]PLIIx MOVIE
-* 1102: [)(]PLIIx MUSIC
-* 1103: [)(]DIGITAL EX
-* 1104: DTS Neo:6
-* 1105: ES MATRIX
-* 1106: ES DISCRETE
-* 1107: DTS-ES 8ch
-* 1108: multi ch Channel base Straight Decode
-* 1109: [)(]PLIIz HEIGHT
-* 110a: WIDE SURR MOVIE
-* 110b: WIDE SURR MUSIC
-* 110c: Neo:X CINEMA
-* 110d: Neo:X MUSIC
-* 110e: Neo:X GAME
-* 110f: Dolby Surround
-* 0201: ACTION
-* 0202: DRAMA
-* 0208: ADVANCEDGAME
-* 0209: SPORTS
-* 020a: CLASSICAL
-* 020b: ROCK/POP
-* 020e: PHONES SURR.
-* 020f: FRONT STAGE SURROUND ADVANCE
-* 0211: SOUND RETRIEVER AIR
-* 0212: ECO MODE 1
-* 0213: ECO MODE 2
-* 0401: STEREO
-* 0402: [)(]PLII MOVIE
-* 0403: [)(]PLIIx MOVIE
-* 0405: AUTO SURROUND Straight Decode
-* 0406: [)(]DIGITAL EX
-* 0407: [)(]PLIIx MOVIE
-* 0408: DTS +Neo:6
-* 0409: ES MATRIX
-* 040a: ES DISCRETE
-* 040b: DTS-ES 8ch
-* 040e: RETRIEVER AIR
-* 040f: Neo:X CINEMA
-* 0411: Dolby Surround
-* 0501: STEREO
-* 0502: [)(]PLII MOVIE
-* 0503: [)(]PLIIx MOVIE
-* 0504: DTS/DTS-HD
-* 0505: ALC Straight Decode
-* 0506: [)(]DIGITAL EX
-* 0507: [)(]PLIIx MOVIE
-* 0508: DTS +Neo:6
-* 0509: ES MATRIX
-* 050a: ES DISCRETE
-* 050b: DTS-ES 8ch
-* 050e: RETRIEVER AIR
-* 050f: Neo:X CINEMA
-* 0601: STEREO
-* 0602: [)(]PLII MOVIE
-* 0603: [)(]PLIIx MOVIE
-* 0604: Neo:6 CINEMA
-* 0605: STREAM DIRECT NORMAL Straight Decode
-* 0606: [)(]DIGITAL EX
-* 0607: [)(]PLIIx MOVIE
-* 0609: ES MATRIX
-* 060a: ES DISCRETE
-* 060b: DTS-ES 8ch
-* 060c: Neo:X CINEMA
-* 060e: NORMAL DIRECT Dolby Surround
-* 0701: STREAM DIRECT PURE 2ch
-* 0702: [)(]PLII MOVIE
-* 0703: [)(]PLIIx MOVIE
-* 0704: Neo:6 CINEMA
-* 0705: STREAM DIRECT PURE Straight Decode
-* 0706: [)(]DIGITAL EX
-* 0707: [)(]PLIIx MOVIE
-* 0708: (nothing)
-* 0709: ES MATRIX
-* 070a: ES DISCRETE
-* 070b: DTS-ES 8ch
-* 070c: Neo:X CINEMA
-* 070e: PURE DIRECT Dolby Surround
-* 0881: OPTIMUM
-* 0e01: HDMI THROUGH
-* 0f01: MULTI CH IN
+The _Playing Listening Mode_ is the Listening Mode that is actually playing as opposed to the _Listening Mode_ set by the user. The _Playing Listening Mode_ is what the display on the device shows.
+
+- 0101: [)(]PLIIx MOVIE
+- 0102: [)(]PLII MOVIE
+- 0103: [)(]PLIIx MUSIC
+- 0104: [)(]PLII MUSIC
+- 0105: [)(]PLIIx GAME
+- 0106: [)(]PLII GAME
+- 0107: [)(]PROLOGIC
+- 0108: Neo:6 CINEMA
+- 0109: Neo:6 MUSIC
+- 010c: 2ch Straight Decode
+- 010d: [)(]PLIIz HEIGHT
+- 010e: WIDE SURR MOVIE
+- 010f: WIDE SURR MUSIC
+- 0110: STEREO
+- 0111: Neo:X CINEMA
+- 0112: Neo:X MUSIC
+- 0113: Neo:X GAME
+- 0117: Dolby Surround
+- 0118: EXTENDED STEREO
+- 1101: [)(]PLIIx MOVIE
+- 1102: [)(]PLIIx MUSIC
+- 1103: [)(]DIGITAL EX
+- 1104: DTS Neo:6
+- 1105: ES MATRIX
+- 1106: ES DISCRETE
+- 1107: DTS-ES 8ch
+- 1108: multi ch Channel base Straight Decode
+- 1109: [)(]PLIIz HEIGHT
+- 110a: WIDE SURR MOVIE
+- 110b: WIDE SURR MUSIC
+- 110c: Neo:X CINEMA
+- 110d: Neo:X MUSIC
+- 110e: Neo:X GAME
+- 110f: Dolby Surround
+- 0201: ACTION
+- 0202: DRAMA
+- 0208: ADVANCEDGAME
+- 0209: SPORTS
+- 020a: CLASSICAL
+- 020b: ROCK/POP
+- 020e: PHONES SURR.
+- 020f: FRONT STAGE SURROUND ADVANCE
+- 0211: SOUND RETRIEVER AIR
+- 0212: ECO MODE 1
+- 0213: ECO MODE 2
+- 0401: STEREO
+- 0402: [)(]PLII MOVIE
+- 0403: [)(]PLIIx MOVIE
+- 0405: AUTO SURROUND Straight Decode
+- 0406: [)(]DIGITAL EX
+- 0407: [)(]PLIIx MOVIE
+- 0408: DTS +Neo:6
+- 0409: ES MATRIX
+- 040a: ES DISCRETE
+- 040b: DTS-ES 8ch
+- 040e: RETRIEVER AIR
+- 040f: Neo:X CINEMA
+- 0411: Dolby Surround
+- 0501: STEREO
+- 0502: [)(]PLII MOVIE
+- 0503: [)(]PLIIx MOVIE
+- 0504: DTS/DTS-HD
+- 0505: ALC Straight Decode
+- 0506: [)(]DIGITAL EX
+- 0507: [)(]PLIIx MOVIE
+- 0508: DTS +Neo:6
+- 0509: ES MATRIX
+- 050a: ES DISCRETE
+- 050b: DTS-ES 8ch
+- 050e: RETRIEVER AIR
+- 050f: Neo:X CINEMA
+- 0601: STEREO
+- 0602: [)(]PLII MOVIE
+- 0603: [)(]PLIIx MOVIE
+- 0604: Neo:6 CINEMA
+- 0605: STREAM DIRECT NORMAL Straight Decode
+- 0606: [)(]DIGITAL EX
+- 0607: [)(]PLIIx MOVIE
+- 0609: ES MATRIX
+- 060a: ES DISCRETE
+- 060b: DTS-ES 8ch
+- 060c: Neo:X CINEMA
+- 060e: NORMAL DIRECT Dolby Surround
+- 0701: STREAM DIRECT PURE 2ch
+- 0702: [)(]PLII MOVIE
+- 0703: [)(]PLIIx MOVIE
+- 0704: Neo:6 CINEMA
+- 0705: STREAM DIRECT PURE Straight Decode
+- 0706: [)(]DIGITAL EX
+- 0707: [)(]PLIIx MOVIE
+- 0708: (nothing)
+- 0709: ES MATRIX
+- 070a: ES DISCRETE
+- 070b: DTS-ES 8ch
+- 070c: Neo:X CINEMA
+- 070e: PURE DIRECT Dolby Surround
+- 0881: OPTIMUM
+- 0e01: HDMI THROUGH
+- 0f01: MULTI CH IN
 
 ## Example
 
 *demo.Things:
 
-```
+```java
 pioneeravr:ipAvr:vsx921 [ address="192.168.188.89" ]
 ```
 
 *demo.items:
 
-```
+```java
 /* Pioneer AVR Items */
 Switch vsx921PowerSwitch        "Power"                                (All)    { channel="pioneeravr:ipAvr:vsx921:power" }
 Switch vsx921MuteSwitch            "Mute"                    <none>        (All)    { channel="pioneeravr:ipAvr:vsx921:mute" }
@@ -275,18 +273,18 @@ String vsx921PlayingListeningMode "Playing Listening Mode [%s]"        <none>
 
 *demo.sitemap:
 
-```
+```perl
 sitemap demo label="Main Menu"
 {
-       Frame label="Pioneer AVR" {
-               Switch item=vsx921PowerSwitch
-               Switch item=vsx921MuteSwitch mappings=[ON="Mute", OFF="Un-Mute"]
-               Slider item=vsx921VolumeDimmer
-               Setpoint item=vsx921VolumeNumber minValue="-80" maxValue="12" step="0.5"
-               Switch item=vsx921InputSourceSet mappings=[04="DVD", 15="DVR/BDR", 25="BD"]
-               Text item=vsx921InformationDisplay
-               Switch item=vsx921ListeningMode mappings=["0009"="Stereo", "0040"="Dolby Surround", "0010"="next"]
-               Text item=vsx921PlayingListeningMode
-       }
+    Frame label="Pioneer AVR" {
+        Switch item=vsx921PowerSwitch
+        Switch item=vsx921MuteSwitch mappings=[ON="Mute", OFF="Un-Mute"]
+        Slider item=vsx921VolumeDimmer
+        Setpoint item=vsx921VolumeNumber minValue="-80" maxValue="12" step="0.5"
+        Switch item=vsx921InputSourceSet mappings=[04="DVD", 15="DVR/BDR", 25="BD"]
+        Text item=vsx921InformationDisplay
+        Switch item=vsx921ListeningMode mappings=["0009"="Stereo", "0040"="Dolby Surround", "0010"="next"]
+        Text item=vsx921PlayingListeningMode
+    }
 }
 ```
index 89b6f1834936c10602f8d378e749279b407f2954..5fe293d8f27c675c96dfb9025d1816a790ffe7ab 100644 (file)
@@ -7,7 +7,7 @@ This binding connects to the pixometer API, which can manage your meter readings
 This binding supports the following thing types according to the capabilities of pixometer:
 
 | Name        | Type   | Description                                                                 |
-|-------------|--------|-----------------------------------------------------------------------------|
+| ----------- | ------ | --------------------------------------------------------------------------- |
 | Account     | Bridge | Representation of a pixometer account, which connects to the pixometer API. |
 | Energymeter | Thing  | Provides access to the readings of configured energy meters.                |
 | Gasmeter    | Thing  | Provides access to the readings of configured gas meters.                   |
@@ -19,24 +19,24 @@ The different meter types are pretty similar in basic, but are implemented in pa
 
 ### Account (bridge)
 
-| Parameter    | Description                                                        | Required | Default Value    | Comment                                                       |
-|--------------|--------------------------------------------------------------------|----------|------------------|---------------------------------------------------------------|
-| user     |                                                                    | Yes      | -                |                                                               |
-| password     |                                                                    | Yes      | -                |                                                               |
-| refresh | Sets the refresh time. Minimum is 60 Minutes.                      | Yes      | 240              |                                                               |
+| Parameter | Description                                   | Required | Default Value | Comment |
+| --------- | --------------------------------------------- | -------- | ------------- | ------- |
+| user      |                                               | Yes      | -             |         |
+| password  |                                               | Yes      | -             |         |
+| refresh   | Sets the refresh time. Minimum is 60 Minutes. | Yes      | 240           |         |
 
 ### Meter Things
 
-| Parameter        | Description                                                                                                                                                                                         | Required |
-|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|
-| resourceId      | The ID which represents the current meter. You can find it in the pixometer browser app while editing a specific meter. It should look like this: "https://pixometer.io/portal/#/meters/XXXXX/edit" | Yes      |
+| Parameter  | Description                                                                                                                                                                                         | Required |
+| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
+| resourceId | The ID which represents the current meter. You can find it in the pixometer browser app while editing a specific meter. It should look like this: "https://pixometer.io/portal/#/meters/XXXXX/edit" | Yes      |
 
 ## Channels
 
 All meter things have the following channels:
 
 | Channel ID         | Channel Description                                    | Supported item type | Advanced |
-|--------------------|--------------------------------------------------------|---------------------|----------|
+| ------------------ | ------------------------------------------------------ | ------------------- | -------- |
 | last_reading_value | The last value that has been read for this meter.      | Number              | false    |
 | last_reading_date  | The time at which the last reading value was recorded. | DateTime            | false    |
 | last_refresh_date  | The last time that the current thing has been updated. | DateTime            | false    |
index b3238b191b81defcfee983b6012c1b84e7070c2f..54e8fd3973c94b1e958d9009dd0e77c5f9295ddf 100644 (file)
@@ -1,13 +1,13 @@
 # PJLink Binding
 
-This binding allows you to control devices with [PJLink](https://pjlink.jbmia.or.jp/english/) support. 
+This binding allows you to control devices with [PJLink](https://pjlink.jbmia.or.jp/english/) support.
 PJLink is a protocol that was developed to standardize IP control of digital projectors, but can also be used by other device types.
 
 Aspects that can be controlled via PJLink are power on/off, input source selection and volume/mute setting.
 
 ## Supported Things
 
-This binding supports devices which implement the PJLink protocol (Class 1). 
+This binding supports devices which implement the PJLink protocol (Class 1).
 
 Limitations at this point:
 
@@ -22,20 +22,19 @@ Autodiscovery is checking all IP addressess of all class C IPv4 subnets connecte
 
 ## Thing Configuration
 
-The *pjLinkDevice* thing type has the following parameters:
+The _pjLinkDevice_ thing type has the following parameters:
 
 | Parameter             | Description                                                                                                                                                  |
 |-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|
 | ipAddress             | the IPv4 address of the device  **Mandatory**                                                                                                                |
-| tcpPort               | the listening TCP port of the devices. *Optional, the default value is 4352*                                                                                 |
-| adminPassword         | the PJLink password of the device (should be left empty for devices without authentication). *Optional*                                                      |
-| refreshInterval       | the polling interval (in seconds) to update the channel values from the device, can be set to 0 to disable polling. *Optional, the default value is 5*       |
-| refreshPower          | enables polling of the power status. *Optional, the default value is false*                                                                                  |
-| refreshMute           | enables polling of the mute status. *Optional, the default value is false*                                                                                   |
-| refreshInputChannel   | enables polling of the selected input channel. *Optional, the default value is false*                                                                        |
-| refreshLampState      | enables polling of the lamp usage hours and activity. *Optional, the default value is false*                                                                 |
-| autoReconnectInterval | seconds between connection retries when connection to the PJLink device has been lost, 0 means never retry, minimum 30s *Optional, the default value is 60*  |
-
+| tcpPort               | the listening TCP port of the devices. _Optional, the default value is 4352_                                                                                 |
+| adminPassword         | the PJLink password of the device (should be left empty for devices without authentication). _Optional_                                                      |
+| refreshInterval       | the polling interval (in seconds) to update the channel values from the device, can be set to 0 to disable polling. _Optional, the default value is 5_       |
+| refreshPower          | enables polling of the power status. _Optional, the default value is false_                                                                                  |
+| refreshMute           | enables polling of the mute status. _Optional, the default value is false_                                                                                   |
+| refreshInputChannel   | enables polling of the selected input channel. _Optional, the default value is false_                                                                        |
+| refreshLampState      | enables polling of the lamp usage hours and activity. _Optional, the default value is false_                                                                 |
+| autoReconnectInterval | seconds between connection retries when connection to the PJLink device has been lost, 0 means never retry, minimum 30s _Optional, the default value is 60_  |
 
 ## Channels
 
@@ -52,13 +51,13 @@ The *pjLinkDevice* thing type has the following parameters:
 
 sample.things:
 
-```
+```java
 pjLinkDevice:pjLinkDevice:MyProjector [ ipAddress="192.168.178.10" ]
 ```
 
 sample.items:
 
-```
+```java
 Switch Projector_Power "Projector Power"          { channel="pjLinkDevice:pjLinkDevice:MyProjector:power" }
 String Projector_Input "Projector Input"          { channel="pjLinkDevice:pjLinkDevice:MyProjector:input" }
 Switch Projector_AudioMute "Projector Audio Mute" { channel="pjLinkDevice:pjLinkDevice:MyProjector:audioMute" }
@@ -69,7 +68,7 @@ Switch Projector_Lamp1Active "Projector lamp 1 active"      { channel="pjLinkDev
 
 sample.sitemap:
 
-```
+```perl
 sitemap sample label="Main Menu" {
   Frame  {
     Switch item=Projector_Power
@@ -88,7 +87,7 @@ Most of the time, there's just one lamp. In case a projector has more than one l
 
 sample-lamp-2.things:
 
-```
+```java
 pjLinkDevice:pjLinkDevice:MyProjector [ ipAddress="192.168.178.10" ]
 {
   Channels:
@@ -103,14 +102,14 @@ pjLinkDevice:pjLinkDevice:MyProjector [ ipAddress="192.168.178.10" ]
 
 sample-lamp-2.items:
 
-```
+```java
 Number Projector_Lamp2Hours "Projector lamp 2 used hours"   { channel="pjLinkDevice:pjLinkDevice:MyProjector:lamp2Hours" }
 Switch Projector_Lamp2Active "Projector lamp 2 active"      { channel="pjLinkDevice:pjLinkDevice:MyProjector:lamp2Active" }
 ```
 
 sample-lamp-2.sitemap:
 
-```
+```perl
 sitemap sample label="Main Menu" {
   Frame  {
     Switch item=Projector_Lamp2Active
index ec7421b83574dce6180e433f11df49b9c127ae11..29b3bf733cc43e929e6bc5f2593f0d225aa1d90a 100644 (file)
@@ -30,11 +30,11 @@ Settings -> System Settings -> Connect PS Vita System Using Network.
 | outboundIP          |         | No       | Use this if your PS4 is not on the normal openHAB network.               |
 | ipPort              |  997    | No       | The port to probe the PS4 on, no need to change normally.                |
 
-If you want to control your PS4 the first thing you need is your user-credentials, this is a 64 characters HEX string that is easiest obtained by using PS4-waker https://github.com/dhleong/ps4-waker. 
-To run the PS4-waker you will need a Node.js command prompt (for example: https://nodejs.org/en/download/). 
-Enter "npx ps4-waker --help" int the command prompt. Agree to install by entering "y". 
-After that send "npx ps4-waker --check". You will get asked to connect the "PS4 Second screen" Android app to the running clone. 
-Do this and then you will need to get the pairing key from your PS4 --> Settings ---> Mobile device pairing settings. 
+If you want to control your PS4 the first thing you need is your user-credentials, this is a 64 characters HEX string that is easiest obtained by using PS4-waker <https://github.com/dhleong/ps4-waker>.
+To run the PS4-waker you will need a Node.js command prompt (for example: <https://nodejs.org/en/download/>).
+Enter "npx ps4-waker --help" int the command prompt. Agree to install by entering "y".
+After that send "npx ps4-waker --check". You will get asked to connect the "PS4 Second screen" Android app to the running clone.
+Do this and then you will need to get the pairing key from your PS4 --> Settings ---> Mobile device pairing settings.
 On the PS4 screen you will see your pairing code and in the command prompt you will find the user credentials.
 
 Then you need to pair your openHAB device with the PS4.
@@ -47,7 +47,6 @@ Then, if you have a pass code when you log in to your PS4 you have to specify th
 | Property            | Default | Required | Description                                                              |
 |---------------------|---------|:--------:|--------------------------------------------------------------------------|
 | ipAddress           |         | Yes      | The IP address of the PlayStation 3                                      |
 
 ## Channels
 
@@ -68,7 +67,7 @@ Example of how to configure a thing.
 
 demo.thing
 
-```
+```java
 Thing playstation:PS4:123456789ABC "PlayStation4" @ "Living Room" [ ipAddress="192.168.0.2", userCredential="0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF", passCode="1234", pairingCode="12345678",
 connectionTimeout="60", autoConnect="false", artworkSize="320", outboundIP="192.168.0.3", ipPort="997" ]
 
@@ -79,7 +78,7 @@ Here are some examples on how to map the channels to items.
 
 demo.items:
 
-```
+```java
 Switch PS4_Power "Power"                         { channel="playstation:PS4:123456789ABC:power" }
 String PS4_Application "Application [%s]"        { channel="playstation:PS4:123456789ABC:applicationName" }
 String PS4_ApplicationId "Application id [%s]"   { channel="playstation:PS4:123456789ABC:applicationId" }
@@ -94,7 +93,7 @@ Switch PS3_Power "Power"                         { channel="playstation:PS3:1234
 
 demo.sitemap:
 
-```
+```perl
 sitemap demo label="Main Menu"
 {
     Frame label="PlayStation 4" {
index 4dcf3219bb157a3d43b82d711a4f19c25a915e15..c13e60b634c4807924c098986f9171b6914a97ef 100644 (file)
@@ -27,7 +27,7 @@ For this reason, the binding does not do an automatic background discovery, but
 
 Every Siemens LOGO! PLC is configured as bridge:
 
-```
+```java
 Bridge plclogo:device:<DeviceId> [ address="<ip>", family="<0BA7/0BA8>", localTSAP="0x<number>", remoteTSAP="0x<number>", refresh=<number> ]
 ```
 
@@ -51,7 +51,7 @@ Binding supports four types of things: digital, analog, memory and datetime.
 
 The configuration pattern for digital things is:
 
-```
+```java
 Thing digital <ThingId> "Label" @ "Location" [ kind="<kind>", force=<true/false> ]
 ```
 
@@ -62,8 +62,8 @@ Thing digital <ThingId> "Label" @ "Location" [ kind="<kind>", force=<true/false>
 
 Follow block kinds are allowed for digital things:
 
-| Type           | `0BA7` | `0BA8` | 
-| -------------- | :----: | ------ | 
+| Type           | `0BA7` | `0BA8` |
+| -------------- | :----: | ------ |
 | Input          | `I`    | `I`    |
 | Output         | `Q`    | `Q`    |
 | Marker         | `M`    | `M`    |
@@ -74,7 +74,7 @@ Follow block kinds are allowed for digital things:
 
 The configuration pattern for analog things is:
 
-```
+```java
 Thing analog <ThingId>  "Label" @ "Location" [ kind="<kind>", threshold=<number>, force=<true/false> ]
 ```
 
@@ -86,7 +86,7 @@ Thing analog <ThingId>  "Label" @ "Location" [ kind="<kind>", threshold=<number>
 
 Follow block kinds are allowed for analog things:
 
-| Type           | `0BA7` | `0BA8` | 
+| Type           | `0BA7` | `0BA8` |
 | -------------- | :----: | ------ |
 | Input          | `AI`   | `AI`   |
 | Output         | `AQ`   | `AQ`   |
@@ -98,7 +98,7 @@ Follow block kinds are allowed for analog things:
 
 The configuration pattern for analog things is:
 
-```
+```java
 Thing memory <ThingId>  "Label" @ "Location" [ block="<name>", threshold=<number>, force=<true/false> ]
 ```
 
@@ -117,7 +117,7 @@ Parameter `threshold` will be taken into account for Byte, Word and DWord, i.e N
 
 The configuration pattern for datetime things is:
 
-```
+```java
 Thing datetime <ThingId>  "Label" @ "Location" [ block="<name>", type=<type>, force=<true/false> ]
 ```
 
@@ -136,7 +136,7 @@ The date this case will be taken from openHAB host.
 
 The configuration pattern for pulse things is:
 
-```
+```java
 Thing pulse <ThingId>  "Label" @ "Location" [ block="<name>", observe="<name>", pulse=<number> ]
 ```
 
@@ -168,7 +168,7 @@ For both use cases: if `block` was `0` then `1` is send and vice versa.
 
 Each device have currently three channels `diagnostic`, `rtc` and `weekday`:
 
-```
+```java
 channel="plclogo:device:<DeviceId>:diagnostic"
 channel="plclogo:device:<DeviceId>:rtc"
 channel="plclogo:device:<DeviceId>:weekday"
@@ -185,7 +185,7 @@ Since the smallest resolution provided by LOGO! is one second, `rtc` channel wil
 
 Format pattern for digital channels is
 
-```
+```java
 channel="plclogo:digital:<DeviceId>:<ThingId>:<Channel>"
 ```
 
@@ -203,7 +203,7 @@ Dependent on configured LOGO! PLC and thing kind, follow channels are available:
 
 Format pattern for analog channels is
 
-```
+```java
 channel="plclogo:analog:<DeviceId>:<ThingId>:<Channel>"
 ```
 
@@ -221,7 +221,7 @@ Dependent on configured LOGO! PLC and thing kind, follow channels are available:
 
 Format pattern for memory channels for bit values is
 
-```
+```java
 channel="plclogo:memory:<DeviceId>:<ThingId>:<state/value>"
 ```
 
@@ -238,7 +238,7 @@ Dependent on configured LOGO! PLC and thing kind, follow channels are available:
 
 Format pattern depends for date/time channels is
 
-```
+```java
 channel="plclogo:datetime:<DeviceId>:<ThingId>:<date/time>"
 ```
 
@@ -254,7 +254,7 @@ Channel `date` is available, if thing is configured as `"date"`.
 Is thing configured as `"time"`, then channel `time` is provided.
 Raw block data is provided via `value` channel, independed from thing configuration:
 
-```
+```java
 channel="plclogo:datetime:<DeviceId>:<ThingId>:value"
 ```
 
@@ -262,13 +262,13 @@ channel="plclogo:datetime:<DeviceId>:<ThingId>:value"
 
 Format pattern depends for pulse channels is
 
-```
+```java
 channel="plclogo:pulse:<DeviceId>:<ThingId>:state"
 ```
 
 Additionally the state of observed block data is provided via `observed` channel
 
-```
+```java
 channel="plclogo:pulse:<DeviceId>:<ThingId>:observed"
 ```
 
@@ -290,7 +290,7 @@ Configuration of one Siemens LOGO!
 
 logo.things:
 
-```
+```java
 Bridge plclogo:device:Logo [ address="192.168.0.1", family="0BA8", localTSAP="0x3000", remoteTSAP="0x2000", refresh=100 ]
 {
   Thing digital  Inputs  [ kind="I" ]
@@ -304,7 +304,7 @@ Bridge plclogo:device:Logo [ address="192.168.0.1", family="0BA8", localTSAP="0x
 
 logo.items:
 
-```
+```java
 Contact LogoI1   { channel="plclogo:digital:Logo:Inputs:I1" }
 Contact LogoI2   { channel="plclogo:digital:Logo:Inputs:I2" }
 Switch  LogoQ1   { channel="plclogo:digital:Logo:Outputs:Q1" }
@@ -326,7 +326,7 @@ Configuration of two Siemens LOGO!
 
 logo.things:
 
-```
+```java
 Bridge plclogo:device:Logo1 [ address="192.168.0.1", family="0BA8", localTSAP="0x3000", remoteTSAP="0x2000", refresh=100 ]
 {
   Thing digital Inputs  [ kind="I" ]
@@ -345,7 +345,7 @@ Bridge plclogo:device:Logo2 [ address="192.168.0.2", family="0BA8", localTSAP="0
 
 logo.items:
 
-```
+```java
 Contact Logo1_I1    { channel="plclogo:digital:Logo1:Inputs:I1" }
 Contact Logo1_I2    { channel="plclogo:digital:Logo1:Inputs:I2" }
 Switch  Logo1_Q1    { channel="plclogo:digital:Logo1:Outputs:Q1" }
@@ -367,11 +367,11 @@ DateTime Logo2_RTC  { channel="plclogo:device:Logo2:rtc"}
 
 ## Troubleshooting
 
-**LOGO! bridge will not go online**
+### LOGO! bridge will not go online
 
 Be sure to have only one bridge for each LOGO! device.
 
-**Log shows reader was created but no communication with LOGO! possible**
+### Log shows reader was created but no communication with LOGO! possible
 
 Check TSAP values: localTSAP and remoteTSAP should not be the same.
 You have to choose different addresses.
@@ -382,6 +382,6 @@ If all configuration parameters were checked and fine, it maybe possible that th
 To recover stop openHAB, cold boot your LOGO! (power off/on) and reflash the program with LOGO! SoftComfort.
 Then restart openHAB and check logging for a created reader.
 
-**RTC value differs from the value shown in LOGO! (0BA7)**
+### RTC value differs from the value shown in LOGO! (0BA7)
 
 This is no bug! Since there is no way to read the RTC from a 0BA7, the binding simply returns the local time of openHAB host.
index 759b7ac964db23d60a8657ebbff04a87f85a0953..0a4e805cf20f33ede1ab6427c604d361aea911e9 100644 (file)
@@ -62,7 +62,6 @@ To access the serial port of the Stick on Linux, the user running openHAB needs
 | 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)                                  |
 
-
 ### Scan
 
 | Configuration Parameter | Required | Default | Description                                                                                                      |
@@ -74,7 +73,6 @@ To access the serial port of the Stick on Linux, the user running openHAB needs
 | wakeupInterval          |          | 1440    | The interval in which the Scan wakes up at least once (in minutes) (5 to 1440)                                   |
 | wakeupDuration          |          | 10      | The number of seconds the Scan stays awake after it woke up (10 to 120)                                          |
 
-
 ### Sense
 
 | Configuration Parameter | Required | Default         | Description                                                                                                                |
@@ -90,7 +88,6 @@ To access the serial port of the Stick on Linux, the user running openHAB needs
 | wakeupInterval          |          | 1440            | The interval in which the Sense wakes up at least once (in minutes) (5 to 1440)                                            |
 | wakeupDuration          |          | 10              | The number of seconds the Sense stays awake after it woke up (10 to 120)                                                   |
 
-
 ### Switch
 
 | Configuration Parameter | Required | Default | Description                                                                      |
@@ -99,7 +96,6 @@ To access the serial port of the Stick on Linux, the user running openHAB needs
 | wakeupInterval          |          | 1440    | The interval in which the Switch wakes up at least once (in minutes) (5 to 1440) |
 | wakeupDuration          |          | 10      | The number of seconds the Switch stays awake after it woke up (10 to 120)        |
 
-
 ## Channels
 
 | Channel Type ID  | Item Type            | Description                                                                                                                                                                                                        | Thing Types                                      |
@@ -121,7 +117,7 @@ To access the serial port of the Stick on Linux, the user running openHAB needs
 
 demo.things
 
-```
+```java
 Bridge plugwise:stick:demostick [ serialPort="/dev/ttyUSB0", messageWaitTime=150 ]
 
 Thing plugwise:circle:fan (plugwise:stick:demostick) [ macAddress="000D6F0000A1A1A1", measurementInterval=15 ]
@@ -150,7 +146,7 @@ Thing plugwise:switch:lightswitches (plugwise:stick:demostick) [ macAddress="000
 
 demo.items
 
-```
+```java
 /* Circle */
 Switch Fan_Switch "Switch" <switch> { channel="plugwise:circle:fan:state" }
 String Fan_Clock "Clock [%s]" <clock> { channel="plugwise:circle:fan:clock" }
@@ -194,7 +190,7 @@ DateTime Light_Switches_Last_Seen "Last seen [%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$t
 
 demo.sitemap
 
-```
+```perl
 sitemap demo label="Main Menu"
 {
 
index 093da9c8184ba585ce5913e17de4a2ecf18007e3..434df6714c371f4c0bad47deb97c4826e4069d0b 100644 (file)
@@ -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
-       }
+    }
 }
 ```
index 65a313653caa6b88417df5ed715f46fec9517aa7..70806e4e2bd11adc970e2ca28151e81cf80d80d6 100644 (file)
@@ -14,7 +14,7 @@ In this case, you must setup an IP connection thing type in openHAB.
 
 Here is an example of ser2net.conf you can use to share your serial port /dev/ttyUSB0 on IP port 4444:
 
-```
+```text
 4444:raw:0:/dev/ttyUSB0:9600 8DATABITS NONE 1STOPBIT
 ```
 
@@ -79,9 +79,9 @@ The serial bridge thing requires the following configuration parameters:
 
 Some notes:
 
--   On Linux, you may get an error stating the serial port cannot be opened when the Powermax binding tries to load.
+- 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.
+- 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.
 
 ### X10 device
@@ -131,7 +131,7 @@ The following channels are available:
 The binding provides few specific commands you can use in the console.
 Enter the command `openhab:powermax` to get the usage of each available command.
 
-```
+```shell
 Usage: openhab:powermax <bridgeUID> info_setup - information on setup
 Usage: openhab:powermax <bridgeUID> download_setup - download setup
 ```
@@ -143,24 +143,24 @@ Here is an example of command you can run: `openhab:powermax powermax:serial:hom
 
 ## Notes & Limitations
 
--   For Powerlink mode to work, the enrollment procedure has to be followed.
+- For Powerlink mode to work, the enrollment procedure has to be followed.
 If you don't enroll the Powerlink on the PowerMax the binding will operate in Standard mode, and if enrolled in Powerlink mode.
 On the newer software versions of the PowerMax the Powerlink enrollment is automatic, and the binding should only operate in 'Powerlink' mode (if enrollment is successful).
--   In Powerlink mode, the binding is downloading the panel setup at startup.
+- In Powerlink mode, the binding is downloading the panel setup at startup.
 When openHAB is starting, unfortunately this download is often failing on a Raspberry Pi for an unclear reason (maybe too many things running at the same time).
 A retry mechanism is implemented in the binding to retry until 3 times with a delay of 1 minute between each try.
 My experience is that the download finally succeeds.
 In case it fails after all the retries, you still have the option to later trigger the download either by using the channel `download_setup` or the appropriate console command.
--   Visonic does not provide a specification of the RS232 protocol and, thus, use this binding at your own risk.
--   The binding is not able to arm/disarm a particular partition.
--   The compatibility of the binding with the Powermaster alarm panel series is probably only partial.
--   In order to be able to bypass zones, you must first enable this feature by updating your panel configuration. Look at your installer's manual.
+- Visonic does not provide a specification of the RS232 protocol and, thus, use this binding at your own risk.
+- The binding is not able to arm/disarm a particular partition.
+- The compatibility of the binding with the Powermaster alarm panel series is probably only partial.
+- In order to be able to bypass zones, you must first enable this feature by updating your panel configuration. Look at your installer's manual.
 
 ## Full Example
 
 demo.things:
 
-```
+```java
 Bridge powermax:serial:home "Alarm Home" [ serialPort="/dev/ttyUSB0", allowArming=true, panelType="PowerMaxProPart", autoSyncTime=true ] {
     Thing zone kitchen "Window kitchen" [ zoneNumber=9 ]
     Thing x10 lamp1 "Lamp 1" [ deviceNumber=1 ]
@@ -169,7 +169,7 @@ Bridge powermax:serial:home "Alarm Home" [ serialPort="/dev/ttyUSB0", allowArmin
 
 demo.items:
 
-```
+```java
 Switch SystemArmed "System armed" {channel="powermax:serial:home:system_armed", autoupdate="false"}
 String SystemArmMode "System arm mode" {channel="powermax:serial:home:arm_mode", autoupdate="false"}
 Switch PGM "PGM" {channel="powermax:serial:home:pgm_status", autoupdate="false"}
index 97ed57594a0ae6c2a418ad2adcdb0e8fa2df5f96..fc6d42e9ea6e3100a5b4943e65e80f2affffcbb2 100644 (file)
@@ -23,7 +23,7 @@ Plug the wireless display into an USB port.
 Note [openHAB Serial Port documentation](https://www.openhab.org/docs/administration/serial.html) for general serial port configuration.
 After that you can add the device as thing and configure the usbPort your OS generated for the display.
 
-```
+```text
 UID: proteusecometer:EcoMeterS:e90705eaa4
 label: Proteus EcoMeter S
 thingTypeUID: proteusecometer:EcoMeterS
index a0519d2999c54767b33c28e1f468a6ffeeb5ca4e..e2d5f135f12d25a8f494db8c14d3be3e8a43dfec 100644 (file)
@@ -25,20 +25,20 @@ The broker thing has only one channel keeping the number of free push messages,
 
 ## Example
 
-_*.things_
+### Things
 
-```
+```java
 Thing prowl:broker:mybroker "Prowl Broker" [ apiKey="0000000000000000000000000000000000000000" ]
 ```
 
-_*.rules_
+### Rules
 
 Once you have created the broker thing with a valid API key, you can use the Prowl service in your rules.  
 First you need to create an instance of the broker just before any call or on the top rules level. (replace the _mybroker_ with the right name of your instance).
-Then you can call method _pushNotification_, which requires two parameters - _event_ and _description_. 
-There is also an optional third parameter _priority_ which represents the message priority (very low) -2,-1,0,1,2 (emergency). The default priority is 0. 
+Then you can call method _pushNotification_, which requires two parameters - _event_ and _description_.
+There is also an optional third parameter _priority_ which represents the message priority (very low) -2,-1,0,1,2 (emergency). The default priority is 0.
 
-```
+```java
 val prowl = getActions("prowl","prowl:broker:mybroker")  
 prowl.pushNotification("Event", "This is the description of the event")
 prowl.pushNotification("Emergency Event", "This is the description of the event", 2)
index e8b601cf4c4c64f5fb8ae4c6ad3a34fb71d157fa..9a7fda811d3971ea8298afe64e918bf7466fb321 100644 (file)
@@ -28,12 +28,14 @@ Please consult their [website](https://sbb.ch/en).
 #### Textual configuration
 
 ##### Thing
-```
+
+```java
 Thing publictransportswitzerland:stationboard:zurich [ station="Zürich HB" ]
 ```
 
 ##### Items
-```
+
+```java
 String Next_Departure             "Next Departure"             { channel="publictransportswitzerland:stationboard:zurich:departures#1" }
 String Upcoming_Departures_TSV    "Upcoming_Departures_TSV"    { channel="publictransportswitzerland:stationboard:zurich:tsv" }
 ```
index 8536a1c4a36b1dc02c41ee33613332ac955ba021..3cd4ef7a77e9a7bfbf3fbf026b658291e3f500bd 100644 (file)
@@ -8,11 +8,11 @@ The Pulseaudio bridge is required as a "bridge" for accessing any other Pulseaud
 
 You need a running pulseaudio server with module **module-cli-protocol-tcp** loaded and accessible by the server which runs your openHAB instance. The following pulseaudio devices are supported:
 
-*   Sink
-*   Source
-*   Sink-Input
-*   Source-Output
-*   Combined-Sink
+- Sink
+- Source
+- Sink-Input
+- Source-Output
+- Combined-Sink
 
 ## Discovery
 
@@ -22,14 +22,14 @@ The Pulseaudio bridge is discovered through mDNS in the local network.
 
 The Pulseaudio binding can be customized to handle different devices. The Sink and Source support is activated by default and you need no further action to use it. If you want to use another type of device, or disable the Sink/Source type, you have to switch the corresponding binding property.
 
--   **sink:** Allow the binding to parse sink devices from the pulseaudio server
--   **source:** Allow the binding to parse source devices from the pulseaudio server
--   **sinkInput:** Allow the binding to parse sink-input devices from the pulseaudio server
--   **sourceOutput:** Allow the binding to parse source-output devices from the pulseaudio server
+- **sink:** Allow the binding to parse sink devices from the pulseaudio server
+- **source:** Allow the binding to parse source devices from the pulseaudio server
+- **sinkInput:** Allow the binding to parse sink-input devices from the pulseaudio server
+- **sourceOutput:** Allow the binding to parse source-output devices from the pulseaudio server
 
 You can use the GUI on the bindings page (click on the pulseaudio binding then "Expand for details"), or create a `<openHAB-conf>/services/pulseaudio.cfg` file and use the above options like this:
 
-```
+```text
 binding.pulseaudio:sink=true
 binding.pulseaudio:source=true
 binding.pulseaudio:sinkInput=false
@@ -44,7 +44,6 @@ To know without hesitation the correct value to use, you should use the command
 `pactl -s <ip-address|hostname> list sinks | grep "name:"`  
 If you need to narrow the identification of a device (in case name or description are not consistent and sufficient), you can use the `additionalFilters` parameter (optional/advanced parameter), in the form of one or several (separator '###') regular expression(s), each one matching a property value of the pulseaudio device. You can use every properties listed with `pactl`.
 
-
 ## Channels
 
 All devices support some of the following channels:
@@ -63,7 +62,6 @@ Sink things can register themselves as audio sink in openHAB. MP3 and WAV files
 Use the appropriate parameter in the sink thing to activate this possibility (activateSimpleProtocolSink).
 This requires the module **module-simple-protocol-tcp** to be present on the server which runs your openHAB instance. The binding will try to command (if not discovered first) the load of this module on the pulseaudio server.
 
-
 ## Audio source
 
 Source things can register themselves as audio source in openHAB.
@@ -75,14 +73,14 @@ This requires the module **module-simple-protocol-tcp** to be present on the tar
 
 ### pulseaudio.things
 
-```
+```java
 Bridge pulseaudio:bridge:<bridgname> "<Bridge Label>" @ "<Room>" [ host="<ipAddress>", port=4712 ] {
   Things:
-       Thing sink          multiroom       "Snapcast"           @ "Room"       [name="alsa_card.pci-0000_00_1f.3", activateSimpleProtocolSink=true, simpleProtocolSinkPort=4711, additionalFilters="analog-stereo###internal"]
-       Thing source        microphone      "microphone"         @ "Room"       [name="alsa_input.pci-0000_00_14.2.analog-stereo"]
-       Thing sink-input    openhabTTS      "OH-Voice"           @ "Room"       [name="alsa_output.pci-0000_00_1f.3.hdmi-stereo-extra1"]
-       Thing source-output remotePulseSink "Other Room Speaker" @ "Other Room" [name="alsa_input.pci-0000_00_14.2.analog-stereo"]
-       Thing combined-sink hdmiAndAnalog   "Zone 1+2"           @ "Room"       [name="combined"]
+    Thing sink          multiroom       "Snapcast"           @ "Room"       [name="alsa_card.pci-0000_00_1f.3", activateSimpleProtocolSink=true, simpleProtocolSinkPort=4711, additionalFilters="analog-stereo###internal"]
+    Thing source        microphone      "microphone"         @ "Room"       [name="alsa_input.pci-0000_00_14.2.analog-stereo"]
+    Thing sink-input    openhabTTS      "OH-Voice"           @ "Room"       [name="alsa_output.pci-0000_00_1f.3.hdmi-stereo-extra1"]
+    Thing source-output remotePulseSink "Other Room Speaker" @ "Other Room" [name="alsa_input.pci-0000_00_14.2.analog-stereo"]
+    Thing combined-sink hdmiAndAnalog   "Zone 1+2"           @ "Room"       [name="combined"]
   }
 ```
 
index ff2e0261f56b6e5b5eb5090564caa3af7af85be5..99472b6f07f1e3e165615f1e3e2d46d76177004e 100644 (file)
@@ -46,8 +46,8 @@ Thing pushbullet:bot:r2d2 "R2D2" @ "Somewhere" [ token = "verysecretwonttellyou"
 This binding includes rule actions for sending notes.
 Two different actions available:
 
-* `sendPushbulletNote(String recipient, String messsage)`
-* `sendPushbulletNote(String recipient, String title, String messsage)`
+- `sendPushbulletNote(String recipient, String messsage)`
+- `sendPushbulletNote(String recipient, String title, String messsage)`
 
 Since there is a separate rule action instance for each `bot` thing, this needs to be retrieved through `getActions(scope, thingUID)`.
 The first parameter always has to be `pushbullet` and the second is the full Thing UID of the bot that should be used.
@@ -58,7 +58,7 @@ If it is not specified or properly formatted, the note will be broadcast to all
 
 Examples:
 
-```
+```java
 val actions = getActions("pushbullet", "pushbullet:bot:r2d2")
 val result = actions.sendPushbulletNote("someone@example.com", "R2D2 talks here...", "This is the pushed note.")
 ```
@@ -148,7 +148,7 @@ This action does not evaluate the rate limiting headers though.
 This project is being translated on transifex.
 If you want to help, please join the project at the URL:
 
-- https://www.transifex.com/hakan42/openhab-binding-pushbullet/dashboard/
+- <https://www.transifex.com/hakan42/openhab-binding-pushbullet/dashboard/>
 
 ## Libraries
 
index 3de9e293efe2f54259d395228d1891de2ec7b3c5..4eb52af55a0b9edf70360bbccb7af206c62b4d73 100644 (file)
@@ -10,8 +10,8 @@ Once you have the token, you need a user key (or group key) and optionally a dev
 There is only one Thing available - the `pushover-account`.
 You are able to create multiple instances of this Thing to broadcast to different users, groups or devices.
 
-openHAB is listed as a *featured application* on the [Pushover homepage](https://pushover.net/apps).
-It provides a clone function to directly add a *prefilled* application to your Pushover account and retrieve an API key.
+openHAB is listed as a _featured application_ on the [Pushover homepage](https://pushover.net/apps).
+It provides a clone function to directly add a _prefilled_ application to your Pushover account and retrieve an API key.
 You can reach it via [https://pushover.net/apps/clone/openHAB](https://pushover.net/apps/clone/openHAB)
 
 ## Thing Configuration
index c3793cce97f2862d0519d09a77f1703e3e5eea3e..b2685d52258225600651f6432ae5f439b3b59c30 100644 (file)
@@ -18,8 +18,8 @@ The following things are supported by the Qbus binding:
 - `onOff`: Bistabiel, Timer1-3, Interval
 - `thermostats`: Thermostats - normal and PID
 - `scene`: Scenes
-- `co2`: CO2 
-- `rollershutter`: Rollershutter 
+- `co2`: CO2
+- `rollershutter`: Rollershutter
 - `rollershutter_slats`: Rollerhutter with slats
 
 For now the following Qbus things are not yet supported but will come:
@@ -34,14 +34,13 @@ For now the following Qbus things are not yet supported but will come:
 - Energy monitor
 - Weather station
 
-
 ## Discovery
 
 The discovery service is not yet implemented but the System Manager III software of Qbus generates things and item files from the programming, which you can use directly in openHAB.
 
 ## Bridge configuration
 
-```
+```java
 Bridge qbus:bridge:CTD001122 [ addr="localhost", sn="001122", port=8447, serverCheck=10 ] {
 ...
 }
@@ -54,7 +53,6 @@ Bridge qbus:bridge:CTD001122 [ addr="localhost", sn="001122", port=8447, serverC
 | `port`        | 8447      | YES      | The communication port of the client/server                                                                                          |
 | `serverCheck` | 10        | NO       | Refresh time - After x minutes there will be a check if server is still running and if client is still connected. If not - reconnect |
 
-
 ## Things configuration
 
 | Thing Type ID         | Channel Name  | Read only | description                                            |
@@ -69,12 +67,11 @@ Bridge qbus:bridge:CTD001122 [ addr="localhost", sn="001122", port=8447, serverC
 | `thermostat`          | measured      | Yes       | This is the channel for thermostats currenttemp        |
 | `thermostat`          | mode          | No        | This is the channel for thermostats mode               |
 
-
 ## Full Example
 
 ### Things
 
-```
+```java
 Bridge qbus:bridge:CTD001122 [ addr="localhost", sn="001122", port=8447, serverCheck=10 ] {
     dimmer                   1      "ToonzaalLED"       [ dimmerId=100 ]
     onOff                    30     "Toonzaal230V"      [ bistabielId=76 ]
@@ -88,7 +85,7 @@ Bridge qbus:bridge:CTD001122 [ addr="localhost", sn="001122", port=8447, serverC
 
 ### Items
 
-```
+```java
 Dimmer              ToonzaalLED                 <light>                         ["Light"]           {channel="qbus:dimmer:CTD001122:1:brightness"}
 Switch              Toonzaal230V                <light>                         ["Switch"]          {channel="qbus:onOff:CTD001122:30:switch"}
 Group gThermostaat ["HVAC"]
index 7be0e7fe23ef439b91b90b14bf5d1bae6181aac0..998492a38d86d2a0b2f03a9c91be7bf5d7a48ad3 100644 (file)
@@ -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"                <Alarm>    (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"              <Alarm>    (PartitionMain)          ["Point"]        {channel="qolsysiq:partition:home:0:alarmState"}
index 4931a359969e9db51415d4010b2c40bb9b179936..1e4b053cef0fcafd0130ce9fbf83ab7cd067952e 100644 (file)
@@ -1,6 +1,6 @@
 # RadioThermostat Binding
 
-This binding connects RadioThermostat/3M Filtrete models CT30, CT50/3M50, CT80, etc. with built-in Wi-Fi module to openHAB. 
+This binding connects RadioThermostat/3M Filtrete models CT30, CT50/3M50, CT80, etc. with built-in Wi-Fi module to openHAB.
 Thermostats using a Z-Wave module are not supported but can be used via the openHAB ZWave binding.
 
 The binding retrieves and periodically updates all basic system information from the thermostat.
@@ -38,11 +38,11 @@ The thing has a few configuration parameters:
 
 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.
-* 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.
+- 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.
+- 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.
 
 ## Channels
 
@@ -74,7 +74,7 @@ The thermostat information that is retrieved is available as these channels:
 
 radiotherm.map:
 
-```
+```text
 UNDEF_stus=-
 NULL_stus=-
 -_stus=-
@@ -117,14 +117,14 @@ NULL_over=-
 
 radiotherm.things:
 
-```
+```java
 radiothermostat:rtherm:mytherm1 "My 1st floor thermostat" [ hostName="192.168.10.1", refresh=2, logRefresh=10, isCT80=false, disableLogs=false, setpointMode="temporary" ]
 radiothermostat:rtherm:mytherm2 "My 2nd floor thermostat" [ hostName="mythermhost2", refresh=1, logRefresh=20, isCT80=true, disableLogs=false, setpointMode="absolute" ]
 ```
 
 radiotherm.items:
 
-```
+```java
 Number:Temperature  Therm_Temp  "Current Temperature [%.1f °F] " <temperature>  { channel="radiothermostat:rtherm:mytherm1:temperature" }
 // Humidity only supported on CT80
 Number Therm_Hum                "Current Humidity [%d %%]" <humidity>           { channel="radiothermostat:rtherm:mytherm1:humidity" }
@@ -158,7 +158,7 @@ Switch Therm_mysetting   "Send my preferred setting"
 
 radiotherm.sitemap:
 
-```
+```perl
 sitemap radiotherm label="My Thermostat" {
     Frame label="My 1st floor thermostat" {
         Text item=Therm_Temp icon="temperature" valuecolor=[>76="orange",>67.5="green",<=67.5="blue"]
@@ -196,7 +196,7 @@ sitemap radiotherm label="My Thermostat" {
 
 radiotherm.rules:
 
-```
+```java
 rule "Send my thermostat command"
 when
   Item Therm_mysetting received command
index 5bea601deeb03858ecb7b688c92501bf55c042fb..0d3661e9a76243602b3affc5af0d9e5cb15cb82d 100644 (file)
@@ -2,8 +2,8 @@
 
 The Rego heat pump binding supports:
 
-*   Rego 6xx controllers family and
-*   Husdata interface.
+- Rego 6xx controllers family and
+- Husdata interface.
 
 ## The Rego 6xx family
 
@@ -23,8 +23,8 @@ Serial communication is using 19200 bps, 8 bit, no parity, 1 stop bit.
 
 Two connection types are supported:
 
-*   TCP/IP and
-*   serial (RS232).
+- TCP/IP and
+- serial (RS232).
 
 #### TCP/IP connection
 
@@ -44,13 +44,13 @@ There are other projects providing ESP firmware with similar functionality, i.e.
 
 Configuration of the TCP/IP thing:
 
--   address: the hostname/IP address of the transparent bridge on the local network - mandatory,
--   tcpPort: the port number to use to connect to the transparent bridge - optional, defaults to 9265,
--   refreshInterval: refresh interval in seconds, used to fetch new values from the heat pump - optional, defaults to 60 seconds.
+- address: the hostname/IP address of the transparent bridge on the local network - mandatory,
+- tcpPort: the port number to use to connect to the transparent bridge - optional, defaults to 9265,
+- refreshInterval: refresh interval in seconds, used to fetch new values from the heat pump - optional, defaults to 60 seconds.
 
 Example thing definition:
 
- ```
+ ```java
  regoheatpump:ipRego6xx:ivtIP [ address="192.168.2.50", tcpPort="9265" ]
  ```
 
@@ -60,12 +60,12 @@ In order to connect directly to the rego 6xx controller, one needs to adjust the
 
 Parameters:
 
--   portName: the name of the serial port on your computer - mandatory,
--   refreshInterval: refresh interval in seconds, used to fetch new values from the heat pump - optional, defaults to 60 seconds.
+- portName: the name of the serial port on your computer - mandatory,
+- refreshInterval: refresh interval in seconds, used to fetch new values from the heat pump - optional, defaults to 60 seconds.
 
 Example thing definition:
 
-```
+```java
 regoheatpump:serialRego6xx:ivtSerial [ portName="COM3" ]
 ```
 
@@ -161,8 +161,8 @@ Above list is informational, please consult with the Husdata interface provider
 
 Two connection types are supported:
 
-*   TCP/IP and
-*   serial (RS232).
+- TCP/IP and
+- serial (RS232).
 
 #### TCP/IP connection
 
@@ -172,12 +172,12 @@ There are many existing project providing such functionality, i.e. [ser2net](htt
 
 Configuration of the TCP/IP thing:
 
--   address: the hostname/IP address of the transparent bridge on the local network - mandatory,
--   tcpPort: the port number to use to connect to the transparent bridge - optional, defaults to 9265.
+- address: the hostname/IP address of the transparent bridge on the local network - mandatory,
+- tcpPort: the port number to use to connect to the transparent bridge - optional, defaults to 9265.
 
 Example thing definition:
 
- ```
+ ```java
  regoheatpump:ipHusdata:ivtIP [ address="192.168.2.50", tcpPort="9265" ]
  ```
 
@@ -187,11 +187,11 @@ One can connect the Husdata interface directly to a computer that runs openHAB.
 
 Parameters:
 
--   portName: the name of the serial port on your computer - mandatory.
+- portName: the name of the serial port on your computer - mandatory.
 
 Example thing definition:
 
-```
+```java
 regoheatpump:serialHusdata:ivtSerial [ portName="COM3" ]
 ```
 
index 8dd98999ee14e4fc4dcf6edd211b26ca493d524c..20633b4f654b3bdff801a389fbb58973a2247a86 100644 (file)
@@ -66,9 +66,9 @@ This API token can be created on your remote server using Main UI.
 
 Setting the `buildTriggerChannels` parameter to false is for the main following advanced usages:
 
-* you don't care about the trigger channels of this remote thing and you don't want the binding to create them locally,
-* you want to define the trigger channels in your configuration file, and only the channels that you will finally need,
-* you want to set a specific channel ID rather than using the channel ID created by the binding.
+- you don't care about the trigger channels of this remote thing and you don't want the binding to create them locally,
+- you want to define the trigger channels in your configuration file, and only the channels that you will finally need,
+- you want to set a specific channel ID rather than using the channel ID created by the binding.
 
 ## Thing Status
 
@@ -93,7 +93,7 @@ For example, if your remote thing provides a trigger channel with this UID `astr
 
 ## Limitations
 
-* The binding will not try to communicate with an openHAB v1 server.
+- The binding will not try to communicate with an openHAB v1 server.
 
 ## Example
 
@@ -101,7 +101,7 @@ For example, if your remote thing provides a trigger channel with this UID `astr
 
 Example of connection to a remote server in the local network:
 
-```
+```java
 Bridge remoteopenhab:server:oh2 "OH2 server" [ host="192.168.0.100", port=8443, useHttps=true, trustedCertificate=true ] {
     Thing thing tv "TV living room" [ thingUID="lgwebos:WebOSTV:tv" ]
     Thing thing astroSun "Astro sun" [ thingUID="astro:sun:local", buildTriggerChannels=false ] {
@@ -114,12 +114,12 @@ Bridge remoteopenhab:server:oh2 "OH2 server" [ host="192.168.0.100", port=8443,
 
 Example of connection to a remote server outside the local network through a myopenhab cloud instance:
 
-```
+```java
 Bridge remoteopenhab:server:oh3 "OH3 server" [ host="myopenhab.org", useHttps=true, port=443, username="myUsername", password="myPassword" ]
 ```
 
 ### demo.items:
 
-```
+```java
 DateTime MyDate "Date [%1$tA %1$td %1$tR]" <calendar> { channel="remoteopenhab:server:oh2:MyDate" }
 ```
index 90097ec9b9c7669778069ed0378cadaca9463bbc..4175ece633727c0dd8b9bcffe7af6b9251621672 100644 (file)
@@ -1,10 +1,9 @@
 # Renault Binding
 
-This binding allows MyRenault App. users to get battery status and other data from their cars. 
+This binding allows MyRenault App. users to get battery status and other data from their cars.
 They can also heat their cars by turning ON the HVAC status and toggle the car's charging mode.
 
-The binding translates the [python based renault-api](https://renault-api.readthedocs.io/en/latest/) in an easy to use openHAB java binding. 
-
+The binding translates the [python based renault-api](https://renault-api.readthedocs.io/en/latest/) in an easy to use openHAB java binding.
 
 ## Supported Things
 
@@ -12,12 +11,10 @@ Supports MyRenault registered cars with an active Connected-Services account.
 
 This binding can only retrieve information that is available in the MyRenault App.
 
-
 ## Discovery
 
 No discovery
 
-
 ## Thing Configuration
 
 You require your MyRenault credential, locale and VIN for your MyRenault registered car.
@@ -30,8 +27,7 @@ You require your MyRenault credential, locale and VIN for your MyRenault registe
 | vin               | Vehicle Identification Number.                                             | yes      |
 | refreshInterval   | Interval the car is polled in minutes.                                     | no       |
 | updateDelay       | How long to wait for commands to reach car and update to server in seconds.| no       |
-| kamereonApiKey    | Kamereon API Key.                                                          | no       | 
-
+| kamereonApiKey    | Kamereon API Key.                                                          | no       |
 
 ## Channels
 
@@ -52,26 +48,24 @@ You require your MyRenault credential, locale and VIN for your MyRenault registe
 | location               | Location           | The GPS position of the vehicle                 | Yes       |
 | locationupdated        | DateTime           | Timestamp of the last location update           | Yes       |
 
-
 ## Limitations
 
 Some channels may not work depending on your car and MyRenault account.
 
 The "externaltemperature" only works on a few cars.
 
-The "hvactargettemperature" is used by the hvacstatus ON command for pre-conditioning the car. 
+The "hvactargettemperature" is used by the hvacstatus ON command for pre-conditioning the car.
 This seams to only allow values 19, 20 and 21 or else the pre-conditioning command will not work.
 
 The Kamereon API Key changes periodically, which causes a communication error.
 To fix this error update the API Key in the bindings configuration.
 The new key value can hopefully be found in the renault-api project: [KAMEREON_APIKEY value](https://github.com/hacf-fr/renault-api/blob/main/src/renault_api/const.py) or in the openHAB forums.
 
-
 ## Example
 
 renaultcar.sitemap:
 
-```
+```perl
 sitemap renaultcar label="Renault Car" {
     Frame {
         Image item=RenaultCar_ImageURL
@@ -93,20 +87,20 @@ sitemap renaultcar label="Renault Car" {
 
 ![Sitemap](doc/sitemap.png)
 
-If you want to limit the charge of the car battery to less than 100%, this can be done as follows. 
- * Set up an active dummy charge schedule in the MyRenault App.
+If you want to limit the charge of the car battery to less than 100%, this can be done as follows.
 
- * Create a Dimmer item "RenaultCar_ChargeLimit" and set it to 80% for example. 
+- Set up an active dummy charge schedule in the MyRenault App.
 
- * Add the ChargeRenaultCarLimit rule using the code below.
+- Create a Dimmer item "RenaultCar_ChargeLimit" and set it to 80% for example.
 
-The rule will change the RenaultCar_ChargingMode to schedule_mode when the limit is reached. 
+- Add the ChargeRenaultCarLimit rule using the code below.
+
+The rule will change the RenaultCar_ChargingMode to schedule_mode when the limit is reached.
 This stops charging after the battery level goes over the charge limit.
 
 ChargeRenaultCarLimit Code
 
-```
+```javascript
 configuration: {}
 triggers:
   - id: "1"
index 4b82fd86a4e5372d254fc81a2d7b0834160e59e9..331ccda0845ab175dba0d7a56f403e0206c05380 100644 (file)
@@ -6,7 +6,6 @@ Resol Binding connects to Solar and System Controllers of RESOL - Elektronische
 
 This binding is based on and includes the [Resol-VBUS-Java library](https://github.com/danielwippermann/resol-vbus-java), developed by Daniel Wippermann.
 
-
 ## Supported Things
 
 ### Bridge
@@ -19,55 +18,53 @@ In the binding might support USB-type bridges in future.
 
 ### Device
 
-On top of the bridge things, which enable access to the VBUS, many - if not all - Resol Controllers and Modules like WMZ heat meters, HKM Heating circuit extensions etc. are supported including branded versions from different suppliers as thing type *device*.
+On top of the bridge things, which enable access to the VBUS, many - if not all - Resol Controllers and Modules like WMZ heat meters, HKM Heating circuit extensions etc. are supported including branded versions from different suppliers as thing type _device_.
 The supported devices include
 
- * Solar controller DeltaSol® A/AX/AX HE
- * Solar controller DeltaSol® AL E HE
- * Solar controller DeltaSol® CS (Plus)
- * Solar controller DeltaSol® B
- * Solar controller DeltaSol® BS series
- * Solar controller DeltaSol® SLL
- * Solar controller DeltaSol® SL
- * Solar controller DeltaSol® BX series
- * System controller DeltaSol® SLT
- * System controller DeltaSol® MX
- * System controller DeltaSol® E
- * DeltaSol Fresh®
- * DeltaSol® Pool
- * DeltaSol® Minipool
- * DeltaSol® ES
- * Frista
- * DeltaTherm® HC
- * DeltaTherm® FK
- * Deltatherm® HT
- * DeltaTherm® DH
- * Sonnenkraft SKSC3
- * Sonnenkraft STRG BX PLUS
- * Sonnenkraft SKSC3+
- * Sonnenkraft SKSC3HE
- * Sonnenkraft SKSR 1/2/3
- * Vitosolic 200
- * COSMO Multi
- * Drainback DeDietrich
- * Diemasol C
+- Solar controller DeltaSol® A/AX/AX HE
+- Solar controller DeltaSol® AL E HE
+- Solar controller DeltaSol® CS (Plus)
+- Solar controller DeltaSol® B
+- Solar controller DeltaSol® BS series
+- Solar controller DeltaSol® SLL
+- Solar controller DeltaSol® SL
+- Solar controller DeltaSol® BX series
+- System controller DeltaSol® SLT
+- System controller DeltaSol® MX
+- System controller DeltaSol® E
+- DeltaSol Fresh®
+- DeltaSol® Pool
+- DeltaSol® Minipool
+- DeltaSol® ES
+- Frista
+- DeltaTherm® HC
+- DeltaTherm® FK
+- Deltatherm® HT
+- DeltaTherm® DH
+- Sonnenkraft SKSC3
+- Sonnenkraft STRG BX PLUS
+- Sonnenkraft SKSC3+
+- Sonnenkraft SKSC3HE
+- Sonnenkraft SKSR 1/2/3
+- Vitosolic 200
+- COSMO Multi
+- Drainback DeDietrich
+- Diemasol C
 
 A more complete list can be found in the doc of the [resol-vbus-java library](https://danielwippermann.github.io/resol-vbus/vbus-packets.html).
 
 ### Emulated Extension Module EM
 
-Some controllers like the Deltasol MX can be connected to an extension module, which can be emulated by the thing type *emulatedEM*.
+Some controllers like the Deltasol MX can be connected to an extension module, which can be emulated by the thing type _emulatedEM_.
 The emulated EM is a virtual device, visible on the VBUS to a Resol controller and provides an interface between openHAB and the controller.
 Relay channels are outputs from the controller point of view and therefore read-only in OH.
 The sensor channels as inputs for the solar or system controller and intended to be written by OH.
 
-
 ## Discovery
 
 Discovery is tested for VBus-LAN adapters DL2, DL3 and KM2 devices, it should also work for other devices providing a live data port.
 After a bridge is detected in the local network the password needs to be given and the things on the VBUS will popup in the inbox.
 
-
 ## Bridge Configuration
 
 The bridge is the device connecting the Resol VBUS to the network, usually a VBus-LAN adapter or integrated in some of the solar controllers like DL3.
@@ -89,13 +86,12 @@ For configuration in files you can enable the logging with at least DEBUG level
 
 ## Emulated EM Configuration
 
-*emulatedEM* devices cannot be auto-discovered and require beside the bridge the following configuration:
+_emulatedEM_ devices cannot be auto-discovered and require beside the bridge the following configuration:
 
 | Parameter | Type | Required | Description                                                |
 |-----------|------|----------|-----------------------------------------------------------------------------------------------------------------|
 | moduleID  | int  | yes      | The module ID on the VBUS in range 0-15, but further restrictions might apply depending on the resol controller. |
 
-
 ## Device Channels
 
 The channels of a thing are determined automatically based on the received VBUS data and are highly dependent on the used device.
@@ -128,20 +124,18 @@ The channels supported for your device can be seen in the UI or in the logs if D
 | volume_month                      | Number:Volume            | This months volume (of a HQM)                      |
 | power                             | Number:Power             | Current power (of a HQM)                           |
 
-
 Channels are dynamically created dependent on the devices connected to the VBus.
 So far only reading is supported.
 The classical channels are for temperature sensors and the like, but also relay outputs with the output level (0-100%) are visible as numerical values with the corresponding unit.
 
 String values are localized as far as possible, but only French, German and English are supported by the underlaying library which is based on the vbus-specification file from Resol.
 
-
 ## EmulatedEM Channels
 
 The channels of an emulated EM modules are as for physical EMs 5 relay channels and 6 input channels.
 The relays are virtual outputs and read-only in OH.
 The sensors support different types like temperature input which are simulated by a PT1000 resistance value, a switch and the raw resistance value.
-Additionally the virtual input device for adjusting the heating circuits as a *BAS* is supported by two different channels for temperature and mode adjustment.
+Additionally the virtual input device for adjusting the heating circuits as a _BAS_ is supported by two different channels for temperature and mode adjustment.
 The type of the sensor inputs must be configured in the Resol Controller accordingly.
 From all possible sensor channels (temperatureX, switchX, etc.) only one shall be linked to an item at a time, except for BAS which emulates a RCP12 room control unit where both, BasTempAdjustmentX and BasModeX shall be written from OH.
 
@@ -154,15 +148,13 @@ From all possible sensor channels (temperatureX, switchX, etc.) only one shall b
 | BasTempAdjustmentX   | Number:Temperature        | Writable temperature adjustment for the virtual room control module BAS on the for the virtual input for sensor 'x'. Use together with BasModeX, not effective if BasModeX is OFF or Party.           |
 | BasModeX             | Number                    | Writable heating circuit mode for the virtual room control module BAS on the for the virtual input for sensor 'x'. Use together with BasTempAdjustmentX.|
 
-
-
 ## Full Example
 
 For a DeltaSol MX system controller with on extension module EM you can use this example:
 
 resol.things
 
-```
+```java
 Bridge resol:vbuslan:VBUS "VBUSLAN" [ ipAddress="192.168.0.2", password="vbus", port=7053] {
       Thing device DeltaSol_MX-Controller "DeltaSol MX [Controller]" []
       Thing device DeltaSol_MX-Heating_circuit-1 "DeltaSol MX [Heating Circuit]" []
@@ -174,7 +166,7 @@ Bridge resol:vbuslan:VBUS "VBUSLAN" [ ipAddress="192.168.0.2", password="vbus",
 
 resol.items
 
-```
+```java
 /*************************************************/
 /* Solar system                                  */
 /*************************************************/
@@ -227,7 +219,7 @@ String BrokenSensor "Broken Sensor [%s]" {channel="resol:device:VBUS:DeltaSol_MX
 
 resol.sitemap
 
-```
+```perl
 sitemap resol label="DeltaSol MX" {
     Frame label="Solar" {
         Text item=SolarTemperature valuecolor=[<0="white", <20="blue", <50="green", <80="orange", <120="red", >=120="black"]
index 4c1a9d622af67200f315e4a9394536004fd6e66c..871a36221e32533c627d5e6048e4e863a791a14f 100644 (file)
@@ -1,11 +1,11 @@
 # Revogi Binding
 
-This binding is written to control Revogi devices. 
-The first thing implemented is the [Revogi Smart Power Strip](https://www.revogi.com/smart-power/smart-power-strip-eu/#section6). 
-The device has 6 power plugs that can be switched independently, or all together. 
+This binding is written to control Revogi devices.
+The first thing implemented is the [Revogi Smart Power Strip](https://www.revogi.com/smart-power/smart-power-strip-eu/#section6).
+The device has 6 power plugs that can be switched independently, or all together.
 It also provides information like power consumption and electric current for each plug.
 
-It was hard to find out how to control it without internet access, but there's a way to use UDP packets. 
+It was hard to find out how to control it without internet access, but there's a way to use UDP packets.
 See the following [support document](https://github.com/andibraeu/revogismartstripcontrol/blob/master/doc/LAN%20UDP%20Control.pdf) for details. This was the only document the Revogi support provided.
 
 ## Supported Things
@@ -14,18 +14,18 @@ Currently only the model `SOW019` is supported.
 
 ## Discovery
 
-If your smart strip is within your network (broadcast domain), discovery can work. 
+If your smart strip is within your network (broadcast domain), discovery can work.
 The discovery service will send udp packets to the broadcast address and waits for a feedback.
 
 It is required to integrate your power strip into your network first, maybe with the official app.
 
 ## Thing Configuration
 
-You need to know the serial number. Usually you can find it on the back. 
-The serial number will also be discovered. 
-The IP address of the device is also necessary, this address should be set static. 
-There's a fallback to broadcast status and switch requests. 
-That may be unreliable if you have more than one smart plug in your network. 
+You need to know the serial number. Usually you can find it on the back.
+The serial number will also be discovered.
+The IP address of the device is also necessary, this address should be set static.
+There's a fallback to broadcast status and switch requests.
+That may be unreliable if you have more than one smart plug in your network.
 They all react on UDP packets.
 
 ## Channels
@@ -56,13 +56,13 @@ They all react on UDP packets.
 
 Example Thing configuration:
 
-```
+```java
 Thing revogi:smartstrip:<serialNumber> "<Name>" @ "<Location>" [serialNumber="<serialNumnber>", ipAddress=<ipaddress>, pollIntervall=45]
 ```
 
 Example Items configuration:
 
-```
+```java
 Group revogi (LivingRoom)
 
 Group plug1 (revogi)
index 92974b32abe9c60b7b2b02a75243317c42ecc5b0..19fc6881cd45a56d1fbffa410a5afe8fac852b6d 100644 (file)
@@ -4,15 +4,15 @@ This binding integrates large number of sensors and actuators from several diffe
 
 RFXCOM transceivers support RF 433 Mhz protocols like:
 
-*   HomeEasy
-*   Cresta
-*   X10
-*   La Crosse
-*   OWL
-*   CoCo (KlikAanKlikUit),
-*   PT2262
-*   Oregon
-*   etc.
+- HomeEasy
+- Cresta
+- X10
+- La Crosse
+- OWL
+- CoCo (KlikAanKlikUit),
+- PT2262
+- Oregon
+- etc.
 
 See the RFXtrx User Guide from [RFXCOM](http://www.rfxcom.com) for the complete list of supported sensors and devices as well as firmware update announcements.
 
@@ -33,13 +33,13 @@ Apple provides built-in FTDI drivers for OS X, which need to be disabled to get
 
 FTDI driver disabling can be done by the following command
 
-```
+```shell
 sudo kextunload -b com.apple.driver.AppleUSBFTDI
 ```
 
 FTDI driver can be enabled by the following command
 
-```
+```shell
 sudo kextload -b com.apple.driver.AppleUSBFTDI
 ```
 
@@ -54,7 +54,7 @@ If you have, or may acquire, other USB serial devices you will probably prefer t
 If you configure the RFXCOM manually note that the serial port that is assigned to it may change if you have more than one USB serial device.
 On systems using udev (practically all modern Linux systems) you can add a rule to /etc/udev/rules.d/ such as:
 
-```
+```shell
 SUBSYSTEM=="tty", ATTRS{product}=="RFXtrx433", ATTRS{serial}=="A12LPLW", SYMLINK+="rfxtrx0"
 ```
 
@@ -71,7 +71,7 @@ To configure the serial port within openHAB see the [general documentation about
 
 Alternatively you can add the RFXCOM using a thing file such as:
 
-```
+```java
 Bridge rfxcom:bridge:usb0 [ serialPort="/dev/<device>" ] {
     _thing definitions_...
 }
@@ -82,13 +82,13 @@ Bridge rfxcom:bridge:usb0 [ serialPort="/dev/<device>" ] {
 You can also use an RFXCOM device over TCP/IP.
 To start a TCP server for an RFXCOM device, you can use socat:
 
-```
+```shell
 socat tcp-listen:10001,fork,reuseaddr file:/dev/ttyUSB0,raw
 ```
 
 A TCP bridge, for use with socat on a remote host, can be configured manually, or by adding an "RFXCOM USB Transceiver over TCP/IP" device or in a thing file like this:
 
-```
+```java
 Bridge rfxcom:tcpbridge:sunflower [ host="sunflower", port=10001 ] {
     Thing lighting2 100001_1 [deviceId="100001.1", subType="AC"]
 }
@@ -96,57 +96,56 @@ Bridge rfxcom:tcpbridge:sunflower [ host="sunflower", port=10001 ] {
 
 ## Bridge Configuration
 
-| Applies to                        | Parameter Label                 | Parameter ID           | Description                                                              | Required | Default |
-|-----------------------------------|---------------------------------|------------------------|--------------------------------------------------------------------------|----------|---------|
-| all                               | Transceiver type                | transceiverType        | Type of the transceiver                                                  | false    |         |
-| all                               | Disable discovery               | disableDiscovery       | Prevent unknown devices from being added to the inbox                    | true     | false   |
-| all                               | Skip transceiver configuration  | ignoreConfig           | Do not send config. command, other config will be ignored                | true     | true    |
-| all                               | RFXCOM transceiver mode         | setMode                | Config. command as hexadec. (28 chars). If set, other config is ignored. | false    |         |
-| all                               | Transmit Power                  | transmitPower          | Transmit power in dBm, between -18dBm and +10dBm.                        | false    | -18     |
-| all except RFXtrx315              | Enable AEBlyss                  | enableAEBlyss          | Enable receiving of protocol AEBlyss                                     | false    |         |
-| all except RFXtrx315              | Enable AC                       | enableAC               | Enable receiving of protocol AC                                          | false    |         |
-| all except RFXtrx315              | Enable AD / LightwaveRF         | enableADLightwaveRF    | Enable receiving of protocol AD / LightwaveRF                            | false    |         |
-| all except RFXtrx315              | Enable ARC                      | enableARC              | Enable receiving of protocol ARC                                         | false    |         |
-| all except RFXtrx315              | Enable ATI                      | enableATI              | Enable receiving of protocol ATI / cartelectronic                        | false    |         |
-| all except RFXtrx315              | Enable Blinds T0                | enableBlindsT0         | Enable receiving of protocol Blinds T0                                   | false    |         |
-| all except RFXtrx315              | Enable Blinds T1                | enableBlindsT1T2T3T4   | Enable receiving of protocol Blinds T1                                   | false    |         |
-| all except RFXtrx315              | Enable Byron SX                 | enableByronSX          | Enable receiving of protocol Byron SX                                    | false    |         |
-| all except RFXtrx315              | Enable FineOffset / Viking      | enableFineOffsetViking | Enable receiving of protocol FineOffset / Viking                         | false    |         |
-| all except RFXtrx315              | Enable FS20/Legrand CAD         | enableFS20             | Enable receiving of protocol FS20/Legrand CAD                            | false    |         |
-| all except RFXtrx315              | Enable Hideki / UPM             | enableHidekiUPM        | Enable receiving of protocol Hideki / UPM                                | false    |         |
-| all except RFXtrx315              | Enable HomeConfort              | enableHomeConfort      | Enable receiving of protocol HomeConfort                                 | false    |         |
-| all except RFXtrx315              | Enable HomeEasy EU              | enableHomeEasyEU       | Enable receiving of protocol HomeEasy EU                                 | false    |         |
-| all except RFXtrx315              | Enable Imagintronix / Opus      | enableImagintronixOpus | Enable receiving of protocol Imagintronix / Opus                         | false    |         |
-| all except RFXtrx315              | Enable KEELOQ                   | enableKEELOQ           | Enable receiving of protocol KEELOQ                                      | false    |         |
-| all except RFXtrx315              | Enable La Crosse                | enableLaCrosse         | Enable receiving of protocol La Crosse                                   | false    |         |
-| all except RFXtrx315              | Enable Lighting4                | enableLighting4        | Enable receiving of protocol Lighting4                                   | false    |         |
-| all except RFXtrx315              | Enable Meiantech                | enableMeiantech        | Enable receiving of protocol Meiantech                                   | false    |         |
-| all except RFXtrx315              | Enable Mertik                   | enableMertik           | Enable receiving of protocol Mertik                                      | false    |         |
-| all except RFXtrx315              | Enable Oregon Scientific        | enableOregonScientific | Enable receiving of protocol Oregon Scientific                           | false    |         |
-| all except RFXtrx315              | Enable ProGuard                 | enableProGuard         | Enable receiving of protocol ProGuard                                    | false    |         |
-| all except RFXtrx315              | Enable RSL                      | enableRSL              | Enable receiving of protocol RSL                                         | false    |         |
-| all except RFXtrx315              | Enable Rubicson                 | enableRubicson         | Enable receiving of protocol Rubicson / Lacrosse / Banggood              | false    |         |
-| all                               | Enable Visonic                  | enableVisonic          | Enable receiving of protocol Visonic                                     | false    |         |
-| all                               | Enable Undecoded                | enableUndecoded        | Enable receiving of protocol Undecoded                                   | false    |         |
-| all                               | Enable X10                      | enableX10              | Enable receiving of protocol X10                                         | false    |         |
-| bridge                            | Serial port                     | serialPort             | Serial port for manual configuration                                     | true     |         |
-| RFXtrx315 / RFXrec433 / RFXtrx433 | Serial number                   | bridgeId               | Serial number of the RFXCOM (FTDI) device                                | true     |         |
-| tcpbridge                         | Host                            | host                   | Hostname / ip address of device                                          | true     |         |
-| tcpbridge                         | Port                            | port                   | Port of device                                                           | true     |         |
+| Applies to                        | Parameter Label                | Parameter ID           | Description                                                              | Required | Default |
+| --------------------------------- | ------------------------------ | ---------------------- | ------------------------------------------------------------------------ | -------- | ------- |
+| all                               | Transceiver type               | transceiverType        | Type of the transceiver                                                  | false    |         |
+| all                               | Disable discovery              | disableDiscovery       | Prevent unknown devices from being added to the inbox                    | true     | false   |
+| all                               | Skip transceiver configuration | ignoreConfig           | Do not send config. command, other config will be ignored                | true     | true    |
+| all                               | RFXCOM transceiver mode        | setMode                | Config. command as hexadec. (28 chars). If set, other config is ignored. | false    |         |
+| all                               | Transmit Power                 | transmitPower          | Transmit power in dBm, between -18dBm and +10dBm.                        | false    | -18     |
+| all except RFXtrx315              | Enable AEBlyss                 | enableAEBlyss          | Enable receiving of protocol AEBlyss                                     | false    |         |
+| all except RFXtrx315              | Enable AC                      | enableAC               | Enable receiving of protocol AC                                          | false    |         |
+| all except RFXtrx315              | Enable AD / LightwaveRF        | enableADLightwaveRF    | Enable receiving of protocol AD / LightwaveRF                            | false    |         |
+| all except RFXtrx315              | Enable ARC                     | enableARC              | Enable receiving of protocol ARC                                         | false    |         |
+| all except RFXtrx315              | Enable ATI                     | enableATI              | Enable receiving of protocol ATI / cartelectronic                        | false    |         |
+| all except RFXtrx315              | Enable Blinds T0               | enableBlindsT0         | Enable receiving of protocol Blinds T0                                   | false    |         |
+| all except RFXtrx315              | Enable Blinds T1               | enableBlindsT1T2T3T4   | Enable receiving of protocol Blinds T1                                   | false    |         |
+| all except RFXtrx315              | Enable Byron SX                | enableByronSX          | Enable receiving of protocol Byron SX                                    | false    |         |
+| all except RFXtrx315              | Enable FineOffset / Viking     | enableFineOffsetViking | Enable receiving of protocol FineOffset / Viking                         | false    |         |
+| all except RFXtrx315              | Enable FS20/Legrand CAD        | enableFS20             | Enable receiving of protocol FS20/Legrand CAD                            | false    |         |
+| all except RFXtrx315              | Enable Hideki / UPM            | enableHidekiUPM        | Enable receiving of protocol Hideki / UPM                                | false    |         |
+| all except RFXtrx315              | Enable HomeConfort             | enableHomeConfort      | Enable receiving of protocol HomeConfort                                 | false    |         |
+| all except RFXtrx315              | Enable HomeEasy EU             | enableHomeEasyEU       | Enable receiving of protocol HomeEasy EU                                 | false    |         |
+| all except RFXtrx315              | Enable Imagintronix / Opus     | enableImagintronixOpus | Enable receiving of protocol Imagintronix / Opus                         | false    |         |
+| all except RFXtrx315              | Enable KEELOQ                  | enableKEELOQ           | Enable receiving of protocol KEELOQ                                      | false    |         |
+| all except RFXtrx315              | Enable La Crosse               | enableLaCrosse         | Enable receiving of protocol La Crosse                                   | false    |         |
+| all except RFXtrx315              | Enable Lighting4               | enableLighting4        | Enable receiving of protocol Lighting4                                   | false    |         |
+| all except RFXtrx315              | Enable Meiantech               | enableMeiantech        | Enable receiving of protocol Meiantech                                   | false    |         |
+| all except RFXtrx315              | Enable Mertik                  | enableMertik           | Enable receiving of protocol Mertik                                      | false    |         |
+| all except RFXtrx315              | Enable Oregon Scientific       | enableOregonScientific | Enable receiving of protocol Oregon Scientific                           | false    |         |
+| all except RFXtrx315              | Enable ProGuard                | enableProGuard         | Enable receiving of protocol ProGuard                                    | false    |         |
+| all except RFXtrx315              | Enable RSL                     | enableRSL              | Enable receiving of protocol RSL                                         | false    |         |
+| all except RFXtrx315              | Enable Rubicson                | enableRubicson         | Enable receiving of protocol Rubicson / Lacrosse / Banggood              | false    |         |
+| all                               | Enable Visonic                 | enableVisonic          | Enable receiving of protocol Visonic                                     | false    |         |
+| all                               | Enable Undecoded               | enableUndecoded        | Enable receiving of protocol Undecoded                                   | false    |         |
+| all                               | Enable X10                     | enableX10              | Enable receiving of protocol X10                                         | false    |         |
+| bridge                            | Serial port                    | serialPort             | Serial port for manual configuration                                     | true     |         |
+| RFXtrx315 / RFXrec433 / RFXtrx433 | Serial number                  | bridgeId               | Serial number of the RFXCOM (FTDI) device                                | true     |         |
+| tcpbridge                         | Host                           | host                   | Hostname / ip address of device                                          | true     |         |
+| tcpbridge                         | Port                           | port                   | Port of device                                                           | true     |         |
 
 ## Thing Configuration
 
-Configuration parameters are listed alongside each thing type. Most devices only require a deviceId and
-a subType, but some things require additional configuration. The deviceId is used both when receiving and
-transmitting messages, the subType is mainly used when sending messages, but it can vary between device
-types.
+Configuration parameters are listed alongside each thing type.
+Most devices only require a deviceId and a subType, but some things require additional configuration.
+The deviceId is used both when receiving and transmitting messages, the subType is mainly used when sending messages, but it can vary between device types.
 
 ## Channels
 
 This binding currently supports following channel types:
 
 | Channel Type ID | Item Type     | Description                                                                        |
-|-----------------|---------------|------------------------------------------------------------------------------------|
+| --------------- | ------------- | ---------------------------------------------------------------------------------- |
 | chimesound      | Number        | Id of the chime sound                                                              |
 | command         | Switch        | Command channel.                                                                   |
 | commandId       | Number        | Id of the command (between 0 and 255).                                             |
@@ -183,26 +182,27 @@ This binding currently supports following channel types:
 | winddirection   | Number        | Wind direction in degrees.                                                         |
 | windspeed       | Number        | Wind speed in meters per second.                                                   |
 
-
 The binding uses the following system channels:
 
 | Channel Type ID        | Item Type | Description                                                                                                                                                                                                           |
-|------------------------|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| ---------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
 | system.signal-strength | Number    | Represents signal strength of a device as a Number with values 0, 1, 2, 3 or 4; 0 being worst strength and 4 being best strength.                                                                                     |
 | system.battery-level   | Number    | Represents the battery level as a percentage (0-100%). Bindings for things supporting battery level in a different format (eg 4 levels) should convert to a percentage to provide a consistent battery level reading. |
 | system.low-battery     | Switch    | Represents a low battery warning with possible values on/off.                                                                                                                                                         |
 
 ## Full Example
 
-*.thing
-```
+### *.thing
+
+```java
 Bridge rfxcom:bridge:usb0 [ serialPort="/dev/<device>" ] {
     Thing lighting2 100001_1 [ deviceId="100001.1", subType="AC" ]
 }
 ```
 
-*.items
-```
+### *.items
+
+```java
 Switch Switch {channel="rfxcom:lighting2:usb0:100001_1:command"}
 ```
 
@@ -210,34 +210,34 @@ Switch Switch {channel="rfxcom:lighting2:usb0:100001_1:command"}
 
 This binding currently supports the following things / message types:
 
-*   [bbqtemperature - RFXCOM BBQ Temperature Sensor](#bbqtemperature---rfxcom-bbq-temperature-sensor)
-*   [blinds1 - RFXCOM Blinds1 Actuator](#blinds1---rfxcom-blinds1-actuator)
-*   [chime - RFXCOM Chime](#chime---rfxcom-chime)
-*   [currentenergy - RFXCOM CurrentEnergy Actuator](#currentenergy---rfxcom-currentenergy-actuator)
-*   [curtain1 - RFXCOM Curtain1 Actuator](#curtain1---rfxcom-curtain1-actuator)
-*   [datetime - RFXCOM Date/time sensor](#datetime---rfxcom-datetime-sensor)
-*   [energy - RFXCOM Energy Sensor](#energy---rfxcom-energy-sensor)
-*   [fan - RFXCOM Fan Actuator](#fan---rfxcom-fan-actuator)
-*   [humidity - RFXCOM Humidity Sensor](#humidity---rfxcom-humidity-sensor)
-*   [lighting1 - RFXCOM Lighting1 Actuator](#lighting1---rfxcom-lighting1-actuator)
-*   [lighting2 - RFXCOM Lighting2 Actuator](#lighting2---rfxcom-lighting2-actuator)
-*   [lighting4 - RFXCOM Lighting4 Actuator](#lighting4---rfxcom-lighting4-actuator)
-*   [lighting5 - RFXCOM Lighting5 Actuator](#lighting5---rfxcom-lighting5-actuator)
-*   [lighting6 - RFXCOM Lighting6 Actuator](#lighting6---rfxcom-lighting6-actuator)
-*   [rain - RFXCOM Rain Sensor](#rain---rfxcom-rain-sensor)
-*   [raw - RFXCOM Raw Messages](#raw---rfxcom-raw-messages)
-*   [rfxsensor - RFXCOM rfxsensor](#rfxsensor)
-*   [rfy - RFXCOM Rfy Actuator](#rfy---rfxcom-rfy-actuator)
-*   [security1 - RFXCOM Security1 Sensor](#security1---rfxcom-security1-sensor)
-*   [temperaturehumiditybarometric - RFXCOM Temperature-Humidity-Barometric Sensor](#temperaturehumiditybarometric---rfxcom-temperature-humidity-barometric-sensor)
-*   [temperaturehumidity - RFXCOM Temperature-Humidity Sensor](#temperaturehumidity---rfxcom-temperature-humidity-sensor)
-*   [temperaturerain - RFXCOM Temperature-Rain Sensor](#temperaturerain---rfxcom-temperature-rain-sensor)
-*   [temperature - RFXCOM Temperature Sensor](#temperature---rfxcom-temperature-sensor)
-*   [thermostat1 - RFXCOM Thermostat1 Sensor](#thermostat1---rfxcom-thermostat1-sensor)
-*   [thermostat3 - RFXCOM Thermostat3 Sensor](#thermostat3---rfxcom-thermostat3-sensor)
-*   [undecoded - RFXCOM Undecoded RF Messages](#undecoded---rfxcom-undecoded-rf-messages)
-*   [uv - RFXCOM UV/Temperature Sensor](#uv---rfxcom-uvtemperature-sensor)
-*   [wind - RFXCOM Wind Sensor](#wind---rfxcom-wind-sensor)
+- [bbqtemperature - RFXCOM BBQ Temperature Sensor](#bbqtemperature---rfxcom-bbq-temperature-sensor)
+- [blinds1 - RFXCOM Blinds1 Actuator](#blinds1---rfxcom-blinds1-actuator)
+- [chime - RFXCOM Chime](#chime---rfxcom-chime)
+- [currentenergy - RFXCOM CurrentEnergy Actuator](#currentenergy---rfxcom-currentenergy-actuator)
+- [curtain1 - RFXCOM Curtain1 Actuator](#curtain1---rfxcom-curtain1-actuator)
+- [datetime - RFXCOM Date/time sensor](#datetime---rfxcom-datetime-sensor)
+- [energy - RFXCOM Energy Sensor](#energy---rfxcom-energy-sensor)
+- [fan - RFXCOM Fan Actuator](#fan---rfxcom-fan-actuator)
+- [humidity - RFXCOM Humidity Sensor](#humidity---rfxcom-humidity-sensor)
+- [lighting1 - RFXCOM Lighting1 Actuator](#lighting1---rfxcom-lighting1-actuator)
+- [lighting2 - RFXCOM Lighting2 Actuator](#lighting2---rfxcom-lighting2-actuator)
+- [lighting4 - RFXCOM Lighting4 Actuator](#lighting4---rfxcom-lighting4-actuator)
+- [lighting5 - RFXCOM Lighting5 Actuator](#lighting5---rfxcom-lighting5-actuator)
+- [lighting6 - RFXCOM Lighting6 Actuator](#lighting6---rfxcom-lighting6-actuator)
+- [rain - RFXCOM Rain Sensor](#rain---rfxcom-rain-sensor)
+- [raw - RFXCOM Raw Messages](#raw---rfxcom-raw-messages)
+- [rfxsensor - RFXCOM rfxsensor](#rfxsensor---rfxcom-rfxsensor)
+- [rfy - RFXCOM Rfy Actuator](#rfy---rfxcom-rfy-actuator)
+- [security1 - RFXCOM Security1 Sensor](#security1---rfxcom-security1-sensor)
+- [temperaturehumiditybarometric - RFXCOM Temperature-Humidity-Barometric Sensor](#temperaturehumiditybarometric---rfxcom-temperature-humidity-barometric-sensor)
+- [temperaturehumidity - RFXCOM Temperature-Humidity Sensor](#temperaturehumidity---rfxcom-temperature-humidity-sensor)
+- [temperaturerain - RFXCOM Temperature-Rain Sensor](#temperaturerain---rfxcom-temperature-rain-sensor)
+- [temperature - RFXCOM Temperature Sensor](#temperature---rfxcom-temperature-sensor)
+- [thermostat1 - RFXCOM Thermostat1 Sensor](#thermostat1---rfxcom-thermostat1-sensor)
+- [thermostat3 - RFXCOM Thermostat3 Sensor](#thermostat3---rfxcom-thermostat3-sensor)
+- [undecoded - RFXCOM Undecoded RF Messages](#undecoded---rfxcom-undecoded-rf-messages)
+- [uv - RFXCOM UV/Temperature Sensor](#uv---rfxcom-uvtemperature-sensor)
+- [wind - RFXCOM Wind Sensor](#wind---rfxcom-wind-sensor)
 
 ### bbqtemperature - RFXCOM BBQ Temperature Sensor
 
@@ -245,19 +245,18 @@ A BBQ Temperature device
 
 #### Channels
 
-| Name            | Channel Type                        | Item Type | Remarks  |
-|-----------------|-------------------------------------|-----------|----------|
-| foodTemperature | [temperature](#channels)            | Number    |          |
-| bbqTemperature  | [temperature](#channels)            | Number    |          |
-| signalLevel     | [system.signal-strength](#channels) | Number    |          |
-| batteryLevel    | [system.battery-level](#channels)   | Number    |          |
-| lowBattery      | [system.low-battery](#channels)     | Switch    |          |
+| Name            | Channel Type                        | Item Type | Remarks |
+| --------------- | ----------------------------------- | --------- | ------- |
+| foodTemperature | [temperature](#channels)            | Number    |         |
+| bbqTemperature  | [temperature](#channels)            | Number    |         |
+| signalLevel     | [system.signal-strength](#channels) | Number    |         |
+| batteryLevel    | [system.battery-level](#channels)   | Number    |         |
+| lowBattery      | [system.low-battery](#channels)     | Switch    |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Sensor Id. Example 56923
-
+- deviceId - Device Id
+  - Sensor Id. Example 56923
 
 ### blinds1 - RFXCOM Blinds1 Actuator
 
@@ -266,43 +265,40 @@ A Blinds1 device. Not all blinds support all commands.
 #### Channels
 
 | name         | Channel Type                        | Item type     | Remarks |
-|--------------|-------------------------------------|---------------|---------|
+| ------------ | ----------------------------------- | ------------- | ------- |
 | command      | [command](#channels)                | Switch        |         |
 | shutter      | [shutter](#channels)                | Rollershutter |         |
 | signalLevel  | [system.signal-strength](#channels) | Number        |         |
 | batteryLevel | [system.battery-level](#channels)   | Number        |         |
 | lowBattery   | [system.low-battery](#channels)     | Switch        |         |
 
-
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Sensor Id + unit code, separated by dot. Example 23455.1
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   T0 - RollerTrol, Hasta new
-        *   T1 - Hasta old
-        *   T2 - A-OK RF01
-        *   T3 - A-OK AC114/AC123
-        *   T4 - Raex YR1326
-        *   T5 - Media Mount (warning - directions reversed)
-        *   T6 - DC106/Rohrmotor24-RMF/Yooda/Dooya/ESMO/Brel/Quitidom
-        *   T7 - Forest
-        *   T8 - Chamberlain CS4330CN
-        *   T9 - Sunpery/BTX
-        *   T10 - Dolat DLM-1, Topstar
-        *   T11 - ASP
-        *   T12 - Confexx CNF24-2435
-        *   T13 - Screenline
-        *   T14 - Hualite
-        *   T15 - Motostar
-        *   T16 - Zemismart
-        *   T17 - Gaposa
-        *   T18 - Cherubini
-        *   T19 - Louvolite One Touch Vogue motor
-        *   T20 - OZRoll
+- deviceId - Device Id
+  - Sensor Id + unit code, separated by dot. Example 23455.1
+- subType - Sub Type
+  - Specifies device sub type.
+    - T0 - RollerTrol, Hasta new
+    - T1 - Hasta old
+    - T2 - A-OK RF01
+    - T3 - A-OK AC114/AC123
+    - T4 - Raex YR1326
+    - T5 - Media Mount (warning - directions reversed)
+    - T6 - DC106/Rohrmotor24-RMF/Yooda/Dooya/ESMO/Brel/Quitidom
+    - T7 - Forest
+    - T8 - Chamberlain CS4330CN
+    - T9 - Sunpery/BTX
+    - T10 - Dolat DLM-1, Topstar
+    - T11 - ASP
+    - T12 - Confexx CNF24-2435
+    - T13 - Screenline
+    - T14 - Hualite
+    - T15 - Motostar
+    - T16 - Zemismart
+    - T17 - Gaposa
+    - T18 - Cherubini
+    - T19 - Louvolite One Touch Vogue motor
+    - T20 - OZRoll
 
 ### chime - RFXCOM Chime
 
@@ -311,26 +307,22 @@ A Chime device
 #### Channels
 
 | Name        | Channel Type                        | Item Type | Remarks                                 |
-|-------------|-------------------------------------|-----------|-----------------------------------------|
+| ----------- | ----------------------------------- | --------- | --------------------------------------- |
 | chimeSound  | [chimesound](#channels)             | Number    | not all devices support multiple sounds |
 | signalLevel | [system.signal-strength](#channels) | Number    |                                         |
 
-
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Sensor Id. Example 2983
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        * BYRONSX - Byron SX
-        * BYRONMP001 - Byron MP001
-        * SELECTPLUS - SelectPlus
-        * SELECTPLUS3 - SelectPlus3
-        * ENVIVO - Envivo
-        * ALFAWISE_DBELL - Alfawise, dBell
-
+- deviceId - Device Id
+  - Sensor Id. Example 2983
+- subType - Sub Type
+  - Specifies device sub type.
+    - BYRONSX - Byron SX
+    - BYRONMP001 - Byron MP001
+    - SELECTPLUS - SelectPlus
+    - SELECTPLUS3 - SelectPlus3
+    - ENVIVO - Envivo
+    - ALFAWISE_DBELL - Alfawise, dBell
 
 ### current - RFXCOM Current Sensor
 
@@ -338,24 +330,22 @@ A Current sensing device.
 
 #### Channels
 
-| Name         | Channel Type                        | Item Type | Remarks          |
-|--------------|-------------------------------------|-----------|------------------|
-| channel1Amps | [instantamp](#channels)             | Number    |                  |
-| channel2Amps | [instantamp](#channels)             | Number    |                  |
-| channel3Amps | [instantamp](#channels)             | Number    |                  |
-| signalLevel  | [system.signal-strength](#channels) | Number    |                  |
-| batteryLevel | [system.battery-level](#channels)   | Number    |                  |
-| lowBattery   | [system.low-battery](#channels)     | Switch    |                  |
+| Name         | Channel Type                        | Item Type | Remarks |
+| ------------ | ----------------------------------- | --------- | ------- |
+| channel1Amps | [instantamp](#channels)             | Number    |         |
+| channel2Amps | [instantamp](#channels)             | Number    |         |
+| channel3Amps | [instantamp](#channels)             | Number    |         |
+| signalLevel  | [system.signal-strength](#channels) | Number    |         |
+| batteryLevel | [system.battery-level](#channels)   | Number    |         |
+| lowBattery   | [system.low-battery](#channels)     | Switch    |         |
 
 #### Configuration Options
 
- * deviceId - Device Id
-    * Sensor Id. Example 5693
-
- * subType - Sub Type
-    * Specifies device sub type.
-
-        * ELEC1 - OWL - CM113
+- deviceId - Device Id
+  - Sensor Id. Example 5693
+- subType - Sub Type
+  - Specifies device sub type.
+    - ELEC1 - OWL - CM113
 
 ### currentenergy - RFXCOM CurrentEnergy Actuator
 
@@ -363,26 +353,23 @@ A CurrentEnergy device
 
 #### Channels
 
-| Name         | Channel Type                        | Item Type | Remarks          |
-|--------------|-------------------------------------|-----------|------------------|
-| channel1Amps | [instantamp](#channels)             | Number    |                  |
-| channel2Amps | [instantamp](#channels)             | Number    |                  |
-| channel3Amps | [instantamp](#channels)             | Number    |                  |
-| totalUsage   | [totalusage](#channels)             | Number    |                  |
-| signalLevel  | [system.signal-strength](#channels) | Number    |                  |
-| batteryLevel | [system.battery-level](#channels)   | Number    |                  |
-| lowBattery   | [system.low-battery](#channels)     | Switch    |                  |
+| Name         | Channel Type                        | Item Type | Remarks |
+| ------------ | ----------------------------------- | --------- | ------- |
+| channel1Amps | [instantamp](#channels)             | Number    |         |
+| channel2Amps | [instantamp](#channels)             | Number    |         |
+| channel3Amps | [instantamp](#channels)             | Number    |         |
+| totalUsage   | [totalusage](#channels)             | Number    |         |
+| signalLevel  | [system.signal-strength](#channels) | Number    |         |
+| batteryLevel | [system.battery-level](#channels)   | Number    |         |
+| lowBattery   | [system.low-battery](#channels)     | Switch    |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Sensor Id. Example 47104
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   ELEC4 - OWL - CM180i
-
+- deviceId - Device Id
+  - Sensor Id. Example 47104
+- subType - Sub Type
+  - Specifies device sub type.
+    - ELEC4 - OWL - CM180i
 
 ### curtain1 - RFXCOM Curtain1 Actuator
 
@@ -390,24 +377,21 @@ A Curtain1 device
 
 #### Channels
 
-| Name         | Channel Type                        | Item Type     | Remarks          |
-|--------------|-------------------------------------|---------------|------------------|
-| command      | [command](#channels)                | Switch        |                  |
-| shutter      | [shutter](#channels)                | Rollershutter |                  |
-| signalLevel  | [system.signal-strength](#channels) | Number        |                  |
-| batteryLevel | [system.battery-level](#channels)   | Number        |                  |
-| lowBattery   | [system.low-battery](#channels)     | Switch        |                  |
+| Name         | Channel Type                        | Item Type     | Remarks |
+| ------------ | ----------------------------------- | ------------- | ------- |
+| command      | [command](#channels)                | Switch        |         |
+| shutter      | [shutter](#channels)                | Rollershutter |         |
+| signalLevel  | [system.signal-strength](#channels) | Number        |         |
+| batteryLevel | [system.battery-level](#channels)   | Number        |         |
+| lowBattery   | [system.low-battery](#channels)     | Switch        |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   House code + unit code, separated by dot. Example A.1
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   HARRISON - Harrison Curtain
-
+- deviceId - Device Id
+  - House code + unit code, separated by dot. Example A.1
+- subType - Sub Type
+  - Specifies device sub type.
+    - HARRISON - Harrison Curtain
 
 ### datetime - RFXCOM Date/time sensor
 
@@ -415,22 +399,20 @@ A DateTime device
 
 #### Channels
 
-| Name         | Channel Type                        | Item Type | Remarks          |
-|--------------|-------------------------------------|-----------|------------------|
-| dateTime     | [datetime](#channels)               | DateTime  |                  |
-| signalLevel  | [system.signal-strength](#channels) | Number    |                  |
-| batteryLevel | [system.battery-level](#channels)   | Number    |                  |
-| lowBattery   | [system.low-battery](#channels)     | Switch    |                  |
+| Name         | Channel Type                        | Item Type | Remarks |
+| ------------ | ----------------------------------- | --------- | ------- |
+| dateTime     | [datetime](#channels)               | DateTime  |         |
+| signalLevel  | [system.signal-strength](#channels) | Number    |         |
+| batteryLevel | [system.battery-level](#channels)   | Number    |         |
+| lowBattery   | [system.low-battery](#channels)     | Switch    |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Device id, example 47360
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   RTGR328N - Oregon RTGR328N
+- deviceId - Device Id
+  - Device id, example 47360
+- subType - Sub Type
+  - Specifies device sub type.
+    - RTGR328N - Oregon RTGR328N
 
 ### fan - RFXCOM Fan Actuator
 
@@ -440,26 +422,24 @@ A group of fan devices
 
 A Fan device
 
-
 ##### Channels
 
-| Name         | Channel Type                        | Item Type | Remarks                      |
-|--------------|-------------------------------------|-----------|------------------------------|
-| command      | [command](#channels)                | Switch    |                              |
-| fanSpeed     | [fanspeedstring](#channels)         | String    | Options: HI, MED, LOW, OFF   |
-| fanLight     | [fanlight](#channels)               | Switch    |                              |
-| signalLevel  | [system.signal-strength](#channels) | Number    |                              |
-
+| Name        | Channel Type                        | Item Type | Remarks                    |
+| ----------- | ----------------------------------- | --------- | -------------------------- |
+| command     | [command](#channels)                | Switch    |                            |
+| fanSpeed    | [fanspeedstring](#channels)         | String    | Options: HI, MED, LOW, OFF |
+| fanLight    | [fanlight](#channels)               | Switch    |                            |
+| signalLevel | [system.signal-strength](#channels) | Number    |                            |
 
 ##### Configuration Options
 
-*   deviceId - Device Id
-    *   Device id, example 47360    
-*   subType - Sub Type
-    *   Specifies device sub type.
-        *   LUCCI_AIR_FAN - Lucci Air fan
-        *   CASAFAN - Casafan
-        *   WESTINGHOUSE_7226640 - Westinghouse 7226640
+- deviceId - Device Id
+  - Device id, example 47360
+- subType - Sub Type
+  - Specifies device sub type.
+    - LUCCI_AIR_FAN - Lucci Air fan
+    - CASAFAN - Casafan
+    - WESTINGHOUSE_7226640 - Westinghouse 7226640
 
 ##### Example
 
@@ -477,21 +457,20 @@ A Falmec Fan device
 
 ##### Channels
 
-| Name         | Channel Type                        | Item Type | Remarks                      |
-|--------------|-------------------------------------|-----------|------------------------------|
-| command      | [command](#channels)                | Switch    |                              |
-| fanSpeed     | [fanspeed](#channels)               | Number    | Options: 1,2,3,4,5,6         |
-| fanLight     | [fanlight](#channels)               | Switch    |                              |
-| signalLevel  | [system.signal-strength](#channels) | Number    |                              |
-
+| Name        | Channel Type                        | Item Type | Remarks              |
+| ----------- | ----------------------------------- | --------- | -------------------- |
+| command     | [command](#channels)                | Switch    |                      |
+| fanSpeed    | [fanspeed](#channels)               | Number    | Options: 1,2,3,4,5,6 |
+| fanLight    | [fanlight](#channels)               | Switch    |                      |
+| signalLevel | [system.signal-strength](#channels) | Number    |                      |
 
 ##### Configuration Options
 
-*   deviceId - Device Id
-    *   Device id, example 47360    
-*   subType - Sub Type
-    *   Specifies device sub type.
-        *   FALMEC - Falmec
+- deviceId - Device Id
+  - Device id, example 47360
+- subType - Sub Type
+  - Specifies device sub type.
+    - FALMEC - Falmec
 
 #### fan_lucci_dc - Lucci Air DC fan
 
@@ -500,7 +479,7 @@ A Lucci Air DC fan device
 ##### Channels
 
 | Name            | Channel Type                        | Item Type     | Remarks                                                      |
-|-----------------|-------------------------------------|---------------|--------------------------------------------------------------|
+| --------------- | ----------------------------------- | ------------- | ------------------------------------------------------------ |
 | commandString   | [commandString](#channels)          | String        | Options: POWER, UP, DOWN, LIGHT, REVERSE, NATURAL_FLOW, PAIR |
 | fanSpeedControl | [fanspeedcontrol](#channels)        | RollerShutter | Options: UP / DOWN                                           |
 | fanSpeed        | [fanspeed](#channels)               | Number        | Options: 1,2,3,4,5,6                                         |
@@ -509,11 +488,11 @@ A Lucci Air DC fan device
 
 ##### Configuration Options
 
-*   deviceId - Device Id
-    *   Device id, example 47360    
-*   subType - Sub Type
-    *   Specifies device sub type.
-        *   LUCCI_AIR_DC - Lucci Air DC
+- deviceId - Device Id
+  - Device id, example 47360
+- subType - Sub Type
+  - Specifies device sub type.
+    - LUCCI_AIR_DC - Lucci Air DC
 
 #### fan_lucci_dc_ii - Lucci Air DC II fan
 
@@ -521,43 +500,43 @@ A Lucci Air DC II fan device
 
 ##### Channels
 
-| Name         | Channel Type                        | Item Type | Remarks                              |
-|--------------|-------------------------------------|-----------|--------------------------------------|
-| command      | [command](#channels)                | Switch    |                                      |
-| commandString| [commandString](#channels)          | String    | Options: POWER_OFF, LIGHT, REVERSE   |
-| fanSpeed     | [fanspeed](#channels)               | Number    | Options: 1,2,3,4,5,6                 |
-| fanLight     | [fanlight](#channels)               | Switch    |                                      |
-| signalLevel  | [system.signal-strength](#channels) | Number    |                                      |
+| Name          | Channel Type                        | Item Type | Remarks                            |
+| ------------- | ----------------------------------- | --------- | ---------------------------------- |
+| command       | [command](#channels)                | Switch    |                                    |
+| commandString | [commandString](#channels)          | String    | Options: POWER_OFF, LIGHT, REVERSE |
+| fanSpeed      | [fanspeed](#channels)               | Number    | Options: 1,2,3,4,5,6               |
+| fanLight      | [fanlight](#channels)               | Switch    |                                    |
+| signalLevel   | [system.signal-strength](#channels) | Number    |                                    |
 
 ##### Configuration Options
 
-*   deviceId - Device Id
-    *   Device id, example 47360    
-*   subType - Sub Type
-    *   Specifies device sub type.
-        *   LUCCI_AIR_DC_II - Lucci Air DC II
-        
+- deviceId - Device Id
+  - Device id, example 47360
+- subType - Sub Type
+  - Specifies device sub type.
+    - LUCCI_AIR_DC_II - Lucci Air DC II
+
 #### fan_novy - Novy extractor fan
 
 A Novy extractor fan.
 
 ##### Channels
 
-| Name            | Channel Type                        | Item Type     | Remarks                  |
-|-----------------|-------------------------------------|---------------|--------------------------|
-| command         | [command](#channels)                | Switch        |                          |
+| Name            | Channel Type                        | Item Type     | Remarks                                              |
+| --------------- | ----------------------------------- | ------------- | ---------------------------------------------------- |
+| command         | [command](#channels)                | Switch        |                                                      |
 | commandString   | [commandString](#channels)          | String        | Options: POWER, UP, DOWN, LIGHT, LEARN, RESET_FILTER |
-| fanSpeedControl | [fanspeedcontrol](#channels)        | RollerShutter | Options: UP / DOWN       |
-| fanLight        | [fanlight](#channels)               | Switch        |                          |
-| signalLevel     | [system.signal-strength](#channels) | Number        |                          |
+| fanSpeedControl | [fanspeedcontrol](#channels)        | RollerShutter | Options: UP / DOWN                                   |
+| fanLight        | [fanlight](#channels)               | Switch        |                                                      |
+| signalLevel     | [system.signal-strength](#channels) | Number        |                                                      |
 
 ##### Configuration Options
 
-*   deviceId - Device Id
-    *   Device id, example 47360
-*   subType - Sub Type
-    *   Specifies device sub type.
-        *   NOVY - Novy extractor fan
+- deviceId - Device Id
+  - Device id, example 47360
+- subType - Sub Type
+  - Specifies device sub type.
+    - NOVY - Novy extractor fan
 
 ### energy - RFXCOM Energy Sensor
 
@@ -565,27 +544,24 @@ An Energy device
 
 #### Channels
 
-| Name         | Channel Type                        | Item Type | Remarks   |
-|--------------|-------------------------------------|-----------|-----------|
-| instantPower | [instantpower](#channels)           | Number    |           |
-| totalUsage   | [totalusage](#channels)             | Number    |           |
-| instantAmp   | [instantamp](#channels)             | Number    |           |
-| totalAmpHour | [totalamphour](#channels)           | Number    |           |
-| signalLevel  | [system.signal-strength](#channels) | Number    |           |
-| batteryLevel | [system.battery-level](#channels)   | Number    |           |
-| lowBattery   | [system.low-battery](#channels)     | Switch    |           |
+| Name         | Channel Type                        | Item Type | Remarks |
+| ------------ | ----------------------------------- | --------- | ------- |
+| instantPower | [instantpower](#channels)           | Number    |         |
+| totalUsage   | [totalusage](#channels)             | Number    |         |
+| instantAmp   | [instantamp](#channels)             | Number    |         |
+| totalAmpHour | [totalamphour](#channels)           | Number    |         |
+| signalLevel  | [system.signal-strength](#channels) | Number    |         |
+| batteryLevel | [system.battery-level](#channels)   | Number    |         |
+| lowBattery   | [system.low-battery](#channels)     | Switch    |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Sensor Id. Example 5693
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   ELEC2 - CM119/160
-        *   ELEC3 - CM180
-
+- deviceId - Device Id
+  - Sensor Id. Example 5693
+- subType - Sub Type
+  - Specifies device sub type.
+    - ELEC2 - CM119/160
+    - ELEC3 - CM180
 
 ### humidity - RFXCOM Humidity Sensor
 
@@ -593,26 +569,23 @@ A Humidity device
 
 #### Channels
 
-| Name           | Channel Type                        | Item Type | Remarks  |
-|----------------|-------------------------------------|-----------|----------|
-| humidity       | [humidity](#channels)               | Number    |          |
-| humidityStatus | [humiditystatus](#channels)         | String    |          |
-| signalLevel    | [system.signal-strength](#channels) | Number    |          |
-| batteryLevel   | [system.battery-level](#channels)   | Number    |          |
-| lowBattery     | [system.low-battery](#channels)     | Switch    |          |
+| Name           | Channel Type                        | Item Type | Remarks |
+| -------------- | ----------------------------------- | --------- | ------- |
+| humidity       | [humidity](#channels)               | Number    |         |
+| humidityStatus | [humiditystatus](#channels)         | String    |         |
+| signalLevel    | [system.signal-strength](#channels) | Number    |         |
+| batteryLevel   | [system.battery-level](#channels)   | Number    |         |
+| lowBattery     | [system.low-battery](#channels)     | Switch    |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Sensor Id. Example 5693
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   HUM1 - LaCrosse TX3
-        *   HUM2 - LaCrosse WS2300
-        *   HUM3 - Inovalley S80 plant humidity sensor
-
+- deviceId - Device Id
+  - Sensor Id. Example 5693
+- subType - Sub Type
+  - Specifies device sub type.
+    - HUM1 - LaCrosse TX3
+    - HUM2 - LaCrosse WS2300
+    - HUM3 - Inovalley S80 plant humidity sensor
 
 ### lighting1 - RFXCOM Lighting1 Actuator
 
@@ -620,45 +593,42 @@ A Lighting1 device
 
 #### Channels
 
-| Name              | Channel Type                        | Item Type | Remarks  |
-|-------------------|-------------------------------------|-----------|----------|
-| command           | [command](#channels)                | Switch    |          |
-| commandString\*\* | [commandString](#channels)          | String    |          |
-| contact           | [contact](#channels)                | Contact   |          |
-| signalLevel       | [system.signal-strength](#channels) | Number    |          |
+| Name              | Channel Type                        | Item Type | Remarks |
+| ----------------- | ----------------------------------- | --------- | ------- |
+| command           | [command](#channels)                | Switch    |         |
+| commandString\*\* | [commandString](#channels)          | String    |         |
+| contact           | [contact](#channels)                | Contact   |         |
+| signalLevel       | [system.signal-strength](#channels) | Number    |         |
 
 \*\* `commandString` supports:
 
-* OFF
-* ON
-* DIM
-* BRIGHT
-* GROUP_OFF
-* GROUP_ON
-* CHIME
+- OFF
+- ON
+- DIM
+- BRIGHT
+- GROUP_OFF
+- GROUP_ON
+- CHIME
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Device Id. House code + unit code, separated by dot. Example A.1
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        * X10 - X10 lighting
-        * ARC - ARC
-        * AB400D - ELRO AB400D (Flamingo)
-        * WAVEMAN - Waveman
-        * EMW200 - Chacon EMW200
-        * IMPULS - IMPULS
-        * RISINGSUN - RisingSun
-        * PHILIPS - Philips SBC
-        * ENERGENIE - Energenie ENER010
-        * ENERGENIE\_5 - Energenie 5-gang
-        * COCO - COCO GDR2-2000R
-        * HQ\_COCO20 - HQ COCO-20
-        * OASE_INSCENIO_FM_N - Oase Inscenio FM Master
-
+- deviceId - Device Id
+  - Device Id. House code + unit code, separated by dot. Example A.1
+- subType - Sub Type
+  - Specifies device sub type.
+    - X10 - X10 lighting
+    - ARC - ARC
+    - AB400D - ELRO AB400D (Flamingo)
+    - WAVEMAN - Waveman
+    - EMW200 - Chacon EMW200
+    - IMPULS - IMPULS
+    - RISINGSUN - RisingSun
+    - PHILIPS - Philips SBC
+    - ENERGENIE - Energenie ENER010
+    - ENERGENIE\_5 - Energenie 5-gang
+    - COCO - COCO GDR2-2000R
+    - HQ\_COCO20 - HQ COCO-20
+    - OASE_INSCENIO_FM_N - Oase Inscenio FM Master
 
 ### lighting2 - RFXCOM Lighting2 Actuator
 
@@ -667,7 +637,7 @@ A Lighting2 device
 #### Channels
 
 | Name         | Channel Type                        | Item Type | Remarks |
-|--------------|-------------------------------------|-----------|---------|
+| ------------ | ----------------------------------- | --------- | ------- |
 | command      | [command](#channels)                | Switch    |         |
 | contact      | [command](#channels)                | Contact   |         |
 | dimmingLevel | [dimminglevel](#channels)           | Dimmer    |         |
@@ -675,96 +645,73 @@ A Lighting2 device
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Remote/switch/unit Id + unit code, separated by dot. Example 8773718.10
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   AC - AC
-        *   HOME\_EASY\_EU - HomeEasy EU
-        *   ANSLUT - ANSLUT
-        *   KAMBROOK - Kambrook RF3672
-
+- deviceId - Device Id
+  - Remote/switch/unit Id + unit code, separated by dot. Example 8773718.10
+- subType - Sub Type
+  - Specifies device sub type.
+    - AC - AC
+    - HOME\_EASY\_EU - HomeEasy EU
+    - ANSLUT - ANSLUT
+    - KAMBROOK - Kambrook RF3672
 
 ### lighting4 - RFXCOM Lighting4 Actuator
 
-A Lighting4 device. The specification for the PT2262 protocol includes 3 bytes for data. By
-convention, the first 20 bits of this is used for deviceId, and the last 4 bits is used for
-command, which gives us a total of 16 commands per device.
+A Lighting4 device.
+The specification for the PT2262 protocol includes 3 bytes for data.
+By convention, the first 20 bits of this is used for deviceId, and the last 4 bits is used for command, which gives us a total of 16 commands per device.
 
-Depending on your device, you may have only one command, one pair of commands (on/off), or
-any other multiple, for example, a set of 4 sockets with an on/off pair for each and an
-additional pair for "all".
+Depending on your device, you may have only one command, one pair of commands (on/off), or any other multiple, for example, a set of 4 sockets with an on/off pair for each and an additional pair for "all".
 
-Different device manufactures using this protocol will use different schemes for their
-commands, so to configure a thing using the lighting4 protocol, you must specify at least
-one commandId in the thing configuration. If a device has multiple sets of commands, you
-can configure multiple things with the same device id, but different commandIds.
+Different device manufactures using this protocol will use different schemes for their commands, so to configure a thing using the lighting4 protocol, you must specify at least one commandId in the thing configuration.
+If a device has multiple sets of commands, you can configure multiple things with the same device id, but different commandIds.
 
-Some devices will expect a specific pulse length. If required, that can also be specified
-as a thing configuration parameter.
+Some devices will expect a specific pulse length.
+If required, that can also be specified as a thing configuration parameter.
 
-Previously, openHAB would attempt to guess at the meaning of a commandId if it was not
-specified in the thing configuration based on devices seen in the wild. Due to the varying
-nature of devices, this behaviour is deprecated and will be removed in a future openHAB
-version. Until then, commands 1, 3, 5-13 and 15 are considered ON and 0, 2, 4 and 14 are
-considered OFF when the `onCommandId` or `offCommandId` for a device is not specified.
+Previously, openHAB would attempt to guess at the meaning of a commandId if it was not specified in the thing configuration based on devices seen in the wild.
+Due to the varying nature of devices, this behaviour is deprecated and will be removed in a future openHAB version.
+Until then, commands 1, 3, 5-13 and 15 are considered ON and 0, 2, 4 and 14 are considered OFF when the `onCommandId` or `offCommandId` for a device is not specified.
 
 #### Channels
 
-| Name        | Channel Type                        | Item Type | Remarks  |
-|-------------|-------------------------------------|-----------|----------|
-| command     | [command](#channels)                | Switch    |          |
-| commandId   | [commandId](#channels)              | Number    |          |
-| signalLevel | [system.signal-strength](#channels) | Number    |          |
-
+| Name        | Channel Type                        | Item Type | Remarks |
+| ----------- | ----------------------------------- | --------- | ------- |
+| command     | [command](#channels)                | Switch    |         |
+| commandId   | [commandId](#channels)              | Number    |         |
+| signalLevel | [system.signal-strength](#channels) | Number    |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Device Id. Example 3456
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   PT2262 - PT2262
-
-*   pulse - Pulse length
-    *   Pulse length of the device
-
-*   onCommandId - On command
-    *   Specifies command that represents ON for this device.
-
-*   offCommandId - Off command
-    *   Specifies command that represents OFF for this device.
-
-*   openCommandId - Open command
-    *   Specifies command that represents OPEN for this device.
-    
-*   closedCommandId - Closed command
-    *   Specifies command that represents CLOSED for this device.
+- deviceId - Device Id
+  - Device Id. Example 3456
+- subType - Sub Type
+  - Specifies device sub type
+    - PT2262 - PT2262
+- pulse - Pulse length
+  - Pulse length of the device
+- onCommandId - On command
+  - Specifies command that represents ON for this device
+- offCommandId - Off command
+  - Specifies command that represents OFF for this device
+- openCommandId - Open command
+  - Specifies command that represents OPEN for this device
+- closedCommandId - Closed command
+  - Specifies command that represents CLOSED for this device
 
 #### Discovering commandId values
 
 There are a number of ways to detect the commandId values for your device.
 
-- You can turn on DEBUG messages for the rfxcom binding by adding the line
-  `<Logger level="DEBUG" name="org.openhab.binding.rfxcom"/>`
-  to your `log4j2.xml`. You will then be able to see the commandId in the log
-  file when you trigger the device.
-  
-- You can link a Number Item to the commandId channel. The item will be updated with the
-  detected commandId when you trigger the device.
-  
-- You can use RFXmngr to look at the data from the device. Use the last letter/number
-  of the hexadecimal "Code", and convert it from hexadecimal to decimal.
+- You can turn on DEBUG messages for the rfxcom binding by adding the line `<Logger level="DEBUG" name="org.openhab.binding.rfxcom"/>` to your `log4j2.xml`.
+You will then be able to see the commandId in the log file when you trigger the device.  
+- You can link a Number Item to the commandId channel. The item will be updated with the detected commandId when you trigger the device.  
+- You can use RFXmngr to look at the data from the device. Use the last letter/number of the hexadecimal "Code", and convert it from hexadecimal to decimal.
 
 #### Examples
 
 For a USB attached RFXCOM on Windows the configuration could look like this (note the `pulse` is optional):
 
-```
+```java
 Bridge rfxcom:bridge:238adf67 [ serialPort="COM4" ] {
     Thing lighting4 17745a  [deviceId="17745",  subType="PT2262", onCommandId=7, offCommandId=4]
     Thing lighting4 17745b  [deviceId="17745",  subType="PT2262", onCommandId=10, offCommandId=2]
@@ -774,7 +721,7 @@ Bridge rfxcom:bridge:238adf67 [ serialPort="COM4" ] {
 
 Your items file could look like this:
 
-```
+```java
 Number SocketCommandId            {channel="rfxcom:lighting4:238adf67:17745a:commandId"}
 Switch SocketA                    {channel="rfxcom:lighting4:238adf67:17745a:command"}
 Switch SocketB                    {channel="rfxcom:lighting4:238adf67:17745b:command"}
@@ -784,22 +731,22 @@ Switch SocketB                    {channel="rfxcom:lighting4:238adf67:17745b:com
 
 These are some commandIds from the field that may match your devices.
 
-| Brand | What          | Action      | Command ID | Source | 
-|-------|---------------|-------------|------------|--------|
-| Kerui | Motion Sensor | Motion      | 10         | [#3103](https://github.com/openhab/openhab-addons/issues/3103) |
-| Kerui | Door Contact  | door open   | 14         | [#3103](https://github.com/openhab/openhab-addons/issues/3103) |
-| Kerui | Door Contact  | door closed | 7          | [#3103](https://github.com/openhab/openhab-addons/issues/3103) |
-| Kerui | Door Contact  | tamper      | 11         | [#3103](https://github.com/openhab/openhab-addons/issues/3103) |
-| Energenie | 4 Socket Power Bar | Socket 1 on  | 15 | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
-| Energenie | 4 Socket Power Bar | Socket 1 off | 14 | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
-| Energenie | 4 Socket Power Bar | Socket 2 on  | 7  | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
-| Energenie | 4 Socket Power Bar | Socket 2 off | 6  | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
-| Energenie | 4 Socket Power Bar | Socket 3 on  | 11 | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
-| Energenie | 4 Socket Power Bar | Socket 3 off | 10 | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
-| Energenie | 4 Socket Power Bar | Socket 4 on  | 3  | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
-| Energenie | 4 Socket Power Bar | Socket 4 off | 2  | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
-| Energenie | 4 Socket Power Bar | All on       | 13 | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
-| Energenie | 4 Socket Power Bar | All off      | 12 | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
+| Brand     | What               | Action       | Command ID | Source                                                                                                 |
+| --------- | ------------------ | ------------ | ---------- | ------------------------------------------------------------------------------------------------------ |
+| Kerui     | Motion Sensor      | Motion       | 10         | [#3103](https://github.com/openhab/openhab-addons/issues/3103)                                         |
+| Kerui     | Door Contact       | door open    | 14         | [#3103](https://github.com/openhab/openhab-addons/issues/3103)                                         |
+| Kerui     | Door Contact       | door closed  | 7          | [#3103](https://github.com/openhab/openhab-addons/issues/3103)                                         |
+| Kerui     | Door Contact       | tamper       | 11         | [#3103](https://github.com/openhab/openhab-addons/issues/3103)                                         |
+| Energenie | 4 Socket Power Bar | Socket 1 on  | 15         | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
+| Energenie | 4 Socket Power Bar | Socket 1 off | 14         | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
+| Energenie | 4 Socket Power Bar | Socket 2 on  | 7          | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
+| Energenie | 4 Socket Power Bar | Socket 2 off | 6          | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
+| Energenie | 4 Socket Power Bar | Socket 3 on  | 11         | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
+| Energenie | 4 Socket Power Bar | Socket 3 off | 10         | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
+| Energenie | 4 Socket Power Bar | Socket 4 on  | 3          | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
+| Energenie | 4 Socket Power Bar | Socket 4 off | 2          | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
+| Energenie | 4 Socket Power Bar | All on       | 13         | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
+| Energenie | 4 Socket Power Bar | All off      | 12         | [Community](https://community.openhab.org/t/rfxcom-looking-to-improve-lighting4-call-for-users/123674) |
 
 ### lighting5 - RFXCOM Lighting5 Actuator
 
@@ -807,65 +754,62 @@ A Lighting5 device
 
 #### Channels
 
-| Name              | Channel Type                        | Item Type | Remarks  |
-|-------------------|-------------------------------------|-----------|----------|
-| command           | [command](#channels)                | Switch    |          |
-| commandString\*\* | [commandString](#channels)          | String    |          |
-| contact           | [command](#channels)                | Contact   |          |
-| dimmingLevel      | [dimminglevel](#channels)           | Dimmer    |          |
-| mood              | [mood](#channels)                   | Number    |          |
-| signalLevel       | [system.signal-strength](#channels) | Number    |          |
+| Name              | Channel Type                        | Item Type | Remarks |
+| ----------------- | ----------------------------------- | --------- | ------- |
+| command           | [command](#channels)                | Switch    |         |
+| commandString\*\* | [commandString](#channels)          | String    |         |
+| contact           | [command](#channels)                | Contact   |         |
+| dimmingLevel      | [dimminglevel](#channels)           | Dimmer    |         |
+| mood              | [mood](#channels)                   | Number    |         |
+| signalLevel       | [system.signal-strength](#channels) | Number    |         |
 
 \*\* `commandString` supports:
 
-* OFF
-* ON
-* GROUP_OFF
-* LEARN
-* GROUP_ON
-* MOOD1
-* MOOD2
-* MOOD3
-* MOOD4
-* MOOD5
-* RESERVED1
-* RESERVED2
-* UNLOCK
-* LOCK
-* ALL_LOCK
-* CLOSE_RELAY
-* STOP_RELAY
-* OPEN_RELAY
-* SET_LEVEL
-* COLOUR_PALETTE
-* COLOUR_TONE
-* COLOUR_CYCLE
+- OFF
+- ON
+- GROUP_OFF
+- LEARN
+- GROUP_ON
+- MOOD1
+- MOOD2
+- MOOD3
+- MOOD4
+- MOOD5
+- RESERVED1
+- RESERVED2
+- UNLOCK
+- LOCK
+- ALL_LOCK
+- CLOSE_RELAY
+- STOP_RELAY
+- OPEN_RELAY
+- SET_LEVEL
+- COLOUR_PALETTE
+- COLOUR_TONE
+- COLOUR_CYCLE
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Remote/switch/unit Id + unit code, separated by dot. Example 10001.1
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   AOKE - Aoke Relay
-        *   AVANTEK - Avantek
-        *   BBSB\_NEW - BBSB new types
-        *   CONRAD\_RSL2 - Conrad RSL2
-        *   EMW100 - EMW100 GAO/Everflourish
-        *   EURODOMEST - Eurodomest
-        *   IT - IT
-        *   KANGTAI - Kangtai, Cotech
-        *   LIGHTWAVERF - LightwaveRF, Siemens
-        *   LIVOLO - Livolo Dimmer or On/Off 1-3
-        *   LIVOLO\_APPLIANCE - Livolo Appliance On/Off 1-10
-        *   MDREMOTE - MDREMOTE LED dimmer v106
-        *   MDREMOTE\_107 - MDREMOTE v107
-        *   MDREMOTE\_108 - MDREMOTE v108, EKAB-10KRF
-        *   RGB\_TRC02 - RGB TRC02 (2 batt)
-        *   RGB\_TRC02\_2 - RGB TRC02\_2 (3 batt)
-
+- deviceId - Device Id
+  - Remote/switch/unit Id + unit code, separated by dot. Example 10001.1
+- subType - Sub Type
+  - Specifies device sub type.
+    - AOKE - Aoke Relay
+    - AVANTEK - Avantek
+    - BBSB\_NEW - BBSB new types
+    - CONRAD\_RSL2 - Conrad RSL2
+    - EMW100 - EMW100 GAO/Everflourish
+    - EURODOMEST - Eurodomest
+    - IT - IT
+    - KANGTAI - Kangtai, Cotech
+    - LIGHTWAVERF - LightwaveRF, Siemens
+    - LIVOLO - Livolo Dimmer or On/Off 1-3
+    - LIVOLO\_APPLIANCE - Livolo Appliance On/Off 1-10
+    - MDREMOTE - MDREMOTE LED dimmer v106
+    - MDREMOTE\_107 - MDREMOTE v107
+    - MDREMOTE\_108 - MDREMOTE v108, EKAB-10KRF
+    - RGB\_TRC02 - RGB TRC02 (2 batt)
+    - RGB\_TRC02\_2 - RGB TRC02\_2 (3 batt)
 
 ### lighting6 - RFXCOM Lighting6 Actuator
 
@@ -873,23 +817,19 @@ A Lighting6 device
 
 #### Channels
 
-| Name        | Channel Type                        | Item Type | Remarks  |
-|-------------|-------------------------------------|-----------|----------|
-| command     | [command](#channels)                | Switch    |          |
-| contact     | [command](#channels)                | Contact   |          |
-| signalLevel | [system.signal-strength](#channels) | Number    |          |
-
+| Name        | Channel Type                        | Item Type | Remarks |
+| ----------- | ----------------------------------- | --------- | ------- |
+| command     | [command](#channels)                | Switch    |         |
+| contact     | [command](#channels)                | Contact   |         |
+| signalLevel | [system.signal-strength](#channels) | Number    |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Remote/switch/unit Id + group code + unit code, separated by dot. Example 100.A.1
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   BLYSS - Blyss
-
+- deviceId - Device Id
+  - Remote/switch/unit Id + group code + unit code, separated by dot. Example 100.A.1
+- subType - Sub Type
+  - Specifies device sub type.
+    - BLYSS - Blyss
 
 ### rain - RFXCOM Rain Sensor
 
@@ -897,155 +837,139 @@ A Rain device
 
 #### Channels
 
-| Name         | Channel Type                        | Item Type | Remarks  |
-|--------------|-------------------------------------|-----------|----------|
-| rainRate     | [rainrate](#channels)               | Number    |          |
-| rainTotal    | [raintotal](#channels)              | Number    |          |
-| signalLevel  | [system.signal-strength](#channels) | Number    |          |
-| batteryLevel | [system.battery-level](#channels)   | Number    |          |
-| lowBattery   | [system.low-battery](#channels)     | Switch    |          |
+| Name         | Channel Type                        | Item Type | Remarks |
+| ------------ | ----------------------------------- | --------- | ------- |
+| rainRate     | [rainrate](#channels)               | Number    |         |
+| rainTotal    | [raintotal](#channels)              | Number    |         |
+| signalLevel  | [system.signal-strength](#channels) | Number    |         |
+| batteryLevel | [system.battery-level](#channels)   | Number    |         |
+| lowBattery   | [system.low-battery](#channels)     | Switch    |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Sensor Id. Example 56923
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   RAIN1 - RGR126/682/918/928
-        *   RAIN2 - PCR800
-        *   RAIN3 - TFA
-        *   RAIN4 - UPM RG700
-        *   RAIN5 - WS2300
-        *   RAIN6 - La Crosse TX5
-        *   RAIN9 - TFA 30.3233.1
-
+- deviceId - Device Id
+  - Sensor Id. Example 56923
+- subType - Sub Type
+  - Specifies device sub type.
+    - RAIN1 - RGR126/682/918/928
+    - RAIN2 - PCR800
+    - RAIN3 - TFA
+    - RAIN4 - UPM RG700
+    - RAIN5 - WS2300
+    - RAIN6 - La Crosse TX5
+    - RAIN9 - TFA 30.3233.1
 
 ### raw - RFXCOM Raw Messages
 
-Raw messages. These messages are included in the Pro firmware and represent messages
-for which the device does not understand the protocol. The raw message is a list of the
-length of the RF pulses before they have been interpreted as bytes.
+These messages are included in the Pro firmware and represent messages for which the device does not understand the protocol.
+The raw message is a list of the length of the RF pulses before they have been interpreted as bytes.
 
-You can also send raw messages by recording the pulses of an incoming message and
-using them to configure a raw thing item.
+You can also send raw messages by recording the pulses of an incoming message and using them to configure a raw thing item.
 
 #### Channels
 
-| Name       | Channel Type              | Item Type | Remarks     |
-|------------|---------------------------|-----------|-------------|
-| rawMessage | [rawmessage](#channels)   | String    |             |
-| rawPayload | [rawpayload](#channels)   | String    |             |
-| pulses     | [pulses](#channels)       | String    |             |
+| Name       | Channel Type            | Item Type | Remarks |
+| ---------- | ----------------------- | --------- | ------- |
+| rawMessage | [rawmessage](#channels) | String    |         |
+| rawPayload | [rawpayload](#channels) | String    |         |
+| pulses     | [pulses](#channels)     | String    |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Raw items cannot provide a device ID, so to receive RAW messages use
-        a Device Id of RAW. For transmit only devices, use any Device Id.
-
-*   subType - Sub Type
-    *   Specifies message sub type.
-
-        *   RAW_PACKET1
-        *   RAW_PACKET2
-        *   RAW_PACKET3
-        *   RAW_PACKET4
-
-*   repeat - Repeat
-    *   Number of times to repeat message on transmit. Defaults to 5.
-
-*   onPulses - On Pulses
-    *   Pulses to send for an ON command. Space delimited pulse lengths
-        in usec. Must be an even number of pulse lengths, with a maximum
-        of 142 total pulses. Max pulse length is 65535. Pulses of value 0
-        will be transmitted as 10000. See the RFXtfx user guide for more
-        information.
-
-*   offPulses - Off Pulses
-    *   Pulses to send for an OFF command. Space delimited pulse lengths
-        in usec. Must be an even number of pulse lengths, with a maximum
-        of 142 total pulses. Max pulse length is 65535. Pulses of value 0
-        will be transmitted as 10000. See the RFXtfx user guide for more
-        information.
-
-*   openPulses - Open Pulses
-    *   Pulses to send for an OPEN command. Space delimited pulse lengths
-        in usec. Must be an even number of pulse lengths, with a maximum
-        of 142 total pulses. Max pulse length is 65535. Pulses of value 0
-        will be transmitted as 10000. See the RFXtfx user guide for more
-        information.
-
-*   closedPulses - Closed Pulses
-    *   Pulses to send for a CLOSED command. Space delimited pulse lengths
-        in usec. Must be an even number of pulse lengths, with a maximum
-        of 142 total pulses. Max pulse length is 65535. Pulses of value 0
-        will be transmitted as 10000. See the RFXtfx user guide for more
-        information.
+- deviceId - Device Id
+  - Raw items cannot provide a device ID, so to receive RAW messages use a Device Id of RAW. For transmit only devices, use any Device Id
+- subType - Sub Type
+  - Specifies message sub type
+    - RAW_PACKET1
+    - RAW_PACKET2
+    - RAW_PACKET3
+    - RAW_PACKET4
+- repeat - Repeat
+  - Number of times to repeat message on transmit. Defaults to 5.
+- onPulses - On Pulses
+  - Pulses to send for an ON command. Space delimited pulse lengths in usec.
+  Must be an even number of pulse lengths, with a maximum of 142 total pulses.
+  Max pulse length is 65535. Pulses of value 0 will be transmitted as 10000. See the RFXtfx user guide for more information.
+- offPulses - Off Pulses
+  - Pulses to send for an OFF command.
+  Space delimited pulse lengths in usec.
+  Must be an even number of pulse lengths, with a maximum of 142 total pulses.
+  Max pulse length is 65535. Pulses of value 0 will be transmitted as 10000. See the RFXtfx user guide for more information.
+- openPulses - Open Pulses
+  - Pulses to send for an OPEN command.
+  Space delimited pulse lengths in usec.
+  Must be an even number of pulse lengths, with a maximum of 142 total pulses.
+  Max pulse length is 65535. Pulses of value 0 will be transmitted as 10000. See the RFXtfx user guide for more information.
+- closedPulses - Closed Pulses
+  - Pulses to send for an CLOSED command.
+  Space delimited pulse lengths in usec.
+  Must be an even number of pulse lengths, with a maximum of 142 total pulses.
+  Max pulse length is 65535.
+  Pulses of value 0 will be transmitted as 10000.
+  See the RFXtfx user guide for more information.
 
 #### Examples
 
 This can be used to transmit raw messages.
 
-The first step is to work out the right pulses for the device. You can do this using RFXmngr, or
-you can do this using openhab:
+The first step is to work out the right pulses for the device.
+You can do this using RFXmngr, or you can do this using openhab:
 
 1. Set up a RAW thing to receive raw pulses:
 
-    ```
+    ```java
     Bridge rfxcom:tcpbridge:rfxtrx0 [ host="192.168.42.10", port=10001, enableUndecoded=true ] {
         Thing raw RAW [ deviceId="RAW", subType="RAW_PACKET1" ]
     }
     ```
 
-2. Add an item to see what the pulses are:
+1. Add an item to see what the pulses are:
 
-    ```
+    ```java
     String RawPulses { channel="rfxcom:raw:rfxtrx0:RAW:pulses" }
     ```
 
-3. Activate the device and look at the pulses that are set. Look for a higher value in the pulses, that is
-   likely to be a gap for a repeat. Take the pulses from before the gap. Make sure there are an
-   even number, and if not, drop a 0 on the end.
+1. Activate the device and look at the pulses that are set.
+Look for a higher value in the pulses, that is likely to be a gap for a repeat.
+Take the pulses from before the gap. Make sure there are an even number, and if not, drop a 0 on the end.
 
 Now you have the pulses, set up a send device:
 
 1. Set up a RAW thing to send a command:
 
-    ```
+    ```java
     Bridge rfxcom:tcpbridge:rfxtrx0 [ host="192.168.42.10", port=10001, enableUndecoded=true ] {
         Thing raw MySwitch [ deviceId="MySwitch", subType="RAW_PACKET1", onPulses="100 200 300 0", offPulses="400 500 600 0" ]
     }
     ```
 
-2. Add an item to send the command:
+1. Add an item to send the command:
 
-    ```
+    ```java
     Switch MySwitch { channel="rfxcom:raw:rfxtrx0:MySwitch:command" }
     ```
 
-3. Use the command to send the raw message.
+1. Use the command to send the raw message.
 
-### rfxsensor - RFXCOM RFXSensor 
+### rfxsensor - RFXCOM RFXSensor
 
 A RFXSensor sensor
 
 #### Channels
 
-| Name             | Channel Type                        | Item Type  | Remarks |
-|------------------|-------------------------------------|------------|---------|
-| pressure         | [pressure](#channels)               | Number     |         |
-| humidity         | [humidity](#channels)               | Number     |         |
-| referenceVoltage | [voltage](#channels)                | Number     |         |
-| voltage          | [voltage](#channels)                | Number     |         |
-| temperature      | [temperature](#channels)            | Number     |         |
-| signalLevel      | [system.signal-strength](#channels) | Number     |         |
+| Name             | Channel Type                        | Item Type | Remarks |
+| ---------------- | ----------------------------------- | --------- | ------- |
+| pressure         | [pressure](#channels)               | Number    |         |
+| humidity         | [humidity](#channels)               | Number    |         |
+| referenceVoltage | [voltage](#channels)                | Number    |         |
+| voltage          | [voltage](#channels)                | Number    |         |
+| temperature      | [temperature](#channels)            | Number    |         |
+| signalLevel      | [system.signal-strength](#channels) | Number    |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Unit Id. Example 100
+- deviceId - Device Id
+  - Unit Id. Example 100
 
 ### rfy - RFXCOM Rfy Actuator
 
@@ -1054,7 +978,7 @@ A Rfy device
 #### Channels
 
 | Name            | Channel Type                        | Item Type     | Remarks                                                                     |
-|-----------------|-------------------------------------|---------------|-----------------------------------------------------------------------------|
+| --------------- | ----------------------------------- | ------------- | --------------------------------------------------------------------------- |
 | command         | [command](#channels)                | Switch        | Sends a program command to pair with a device when switched from off to on. |
 | program         | [command](#channels)                | Switch        | Send Program Command                                                        |
 | shutter         | [shutter](#channels)                | Rollershutter | Shutter                                                                     |
@@ -1064,15 +988,12 @@ A Rfy device
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Unit Id + unit code, separated by dot. Example 100.1
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   RFY - RFY
-        *   RFY\_EXT - RFY Ext
-
+- deviceId - Device Id
+  - Unit Id + unit code, separated by dot. Example 100.1
+- subType - Sub Type
+  - Specifies device sub type.
+    - RFY - RFY
+    - RFY\_EXT - RFY Ext
 
 ### security1 - RFXCOM Security1 Sensor
 
@@ -1080,35 +1001,31 @@ A Security1 device
 
 #### Channels
 
-| Name         | Channel Type                        | Item Type | Remarks  |
-|--------------|-------------------------------------|-----------|----------|
-| status       | [status](#channels)                 | String    |          |
-| contact      | [command](#channels)                | Contact   |          |
-| motion       | [motion](#channels)                 | Switch    |          |
-| signalLevel  | [system.signal-strength](#channels) | Number    |          |
-| batteryLevel | [system.battery-level](#channels)   | Number    |          |
-| lowBattery   | [system.low-battery](#channels)     | Switch    |          |
-
+| Name         | Channel Type                        | Item Type | Remarks |
+| ------------ | ----------------------------------- | --------- | ------- |
+| status       | [status](#channels)                 | String    |         |
+| contact      | [command](#channels)                | Contact   |         |
+| motion       | [motion](#channels)                 | Switch    |         |
+| signalLevel  | [system.signal-strength](#channels) | Number    |         |
+| batteryLevel | [system.battery-level](#channels)   | Number    |         |
+| lowBattery   | [system.low-battery](#channels)     | Switch    |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Remote/sensor Id. Example 10001
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   X10\_SECURITY - X10 security door/window sensor
-        *   X10\_SECURITY\_MOTION - X10 security motion sensor
-        *   X10\_SECURITY\_REMOTE - X10 security remote (no alive packets)
-        *   KD101 - KD101 (no alive packets)
-        *   VISONIC\_POWERCODE\_SENSOR\_PRIMARY\_CONTACT - Visonic PowerCode door/window sensor – primary contact (with alive packets)
-        *   VISONIC\_POWERCODE\_MOTION - Visonic PowerCode motion sensor (with alive packets)
-        *   VISONIC\_CODESECURE - Visonic CodeSecure (no alive packets)
-        *   VISONIC\_POWERCODE\_SENSOR\_AUX\_CONTACT - Visonic PowerCode door/window sensor – auxiliary contact (no alive packets)
-        *   MEIANTECH - Meiantech
-        *   SA30 - SA30 (no alive packets)
-
+- deviceId - Device Id
+  - Remote/sensor Id. Example 10001
+- subType - Sub Type
+  - Specifies device sub type.
+    - X10\_SECURITY - X10 security door/window sensor
+    - X10\_SECURITY\_MOTION - X10 security motion sensor
+    - X10\_SECURITY\_REMOTE - X10 security remote (no alive packets)
+    - KD101 - KD101 (no alive packets)
+    - VISONIC\_POWERCODE\_SENSOR\_PRIMARY\_CONTACT - Visonic PowerCode door/window sensor – primary contact (with alive packets)
+    - VISONIC\_POWERCODE\_MOTION - Visonic PowerCode motion sensor (with alive packets)
+    - VISONIC\_CODESECURE - Visonic CodeSecure (no alive packets)
+    - VISONIC\_POWERCODE\_SENSOR\_AUX\_CONTACT - Visonic PowerCode door/window sensor – auxiliary contact (no alive packets)
+    - MEIANTECH - Meiantech
+    - SA30 - SA30 (no alive packets)
 
 ### temperaturehumiditybarometric - RFXCOM Temperature-Humidity-Barometric Sensor
 
@@ -1117,7 +1034,7 @@ A Temperature-Humidity-Barometric device
 #### Channels
 
 | Name           | Channel Type                        | Item Type | Remarks |
-|----------------|-------------------------------------|-----------|---------|
+| -------------- | ----------------------------------- | --------- | ------- |
 | temperature    | [temperature](#channels)            | Number    |         |
 | humidity       | [humidity](#channels)               | Number    |         |
 | humidityStatus | [humiditystatus](#channels)         | String    |         |
@@ -1127,18 +1044,15 @@ A Temperature-Humidity-Barometric device
 | batteryLevel   | [system.battery-level](#channels)   | Number    |         |
 | lowBattery     | [system.low-battery](#channels)     | Switch    |         |
 
-
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Sensor Id. Example 59648
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   THB1 - BTHR918, BTHGN129
-        *   THB2 - BTHR918N, BTHR968
+- deviceId - Device Id
+  - Sensor Id. Example 59648
 
+- subType - Sub Type
+  - Specifies device sub type.
+    - THB1 - BTHR918, BTHGN129
+    - THB2 - BTHR918N, BTHR968
 
 ### temperaturehumidity - RFXCOM Temperature-Humidity Sensor
 
@@ -1146,38 +1060,35 @@ A Temperature-Humidity device
 
 #### Channels
 
-| Name           | Channel Type                        | Item Type | Remarks  |
-|----------------|-------------------------------------|-----------|----------|
-| temperature    | [temperature](#channels)            | Number    |          |
-| humidity       | [humidity](#channels)               | Number    |          |
-| humidityStatus | [humiditystatus](#channels)         | String    |          |
-| signalLevel    | [system.signal-strength](#channels) | Number    |          |
-| batteryLevel   | [system.battery-level](#channels)   | Number    |          |
-| lowBattery     | [system.low-battery](#channels)     | Switch    |          |
-
+| Name           | Channel Type                        | Item Type | Remarks |
+| -------------- | ----------------------------------- | --------- | ------- |
+| temperature    | [temperature](#channels)            | Number    |         |
+| humidity       | [humidity](#channels)               | Number    |         |
+| humidityStatus | [humiditystatus](#channels)         | String    |         |
+| signalLevel    | [system.signal-strength](#channels) | Number    |         |
+| batteryLevel   | [system.battery-level](#channels)   | Number    |         |
+| lowBattery     | [system.low-battery](#channels)     | Switch    |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Sensor Id. Example 56923
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   TH1 - THGN122/123, THGN132, THGR122/228/238/268
-        *   TH2 - THGR810, THGN800
-        *   TH3 - RTGR328
-        *   TH4 - THGR328
-        *   TH5 - WTGR800
-        *   TH6 - THGR918/928, THGRN228, THGN500
-        *   TH7 - TFA TS34C, Cresta
-        *   TH8 - WT260,WT260H,WT440H,WT450,WT450H
-        *   TH9 - Viking 02035,02038 (02035 has no humidity), Proove TSS320, 311501
-        *   TH10 - Rubicson
-        *   TH11 - EW109
-        *   TH12 - Imagintronix/Opus XT300 Soil sensor
-        *   TH13 - Alecto WS1700 and compatibles
-
+- deviceId - Device Id
+  - Sensor Id. Example 56923
+
+- subType - Sub Type
+  - Specifies device sub type.
+    - TH1 - THGN122/123, THGN132, THGR122/228/238/268
+    - TH2 - THGR810, THGN800
+    - TH3 - RTGR328
+    - TH4 - THGR328
+    - TH5 - WTGR800
+    - TH6 - THGR918/928, THGRN228, THGN500
+    - TH7 - TFA TS34C, Cresta
+    - TH8 - WT260,WT260H,WT440H,WT450,WT450H
+    - TH9 - Viking 02035,02038 (02035 has no humidity), Proove TSS320, 311501
+    - TH10 - Rubicson
+    - TH11 - EW109
+    - TH12 - Imagintronix/Opus XT300 Soil sensor
+    - TH13 - Alecto WS1700 and compatibles
 
 ### temperaturerain - RFXCOM Temperature-Rain Sensor
 
@@ -1185,24 +1096,21 @@ A Temperature-Rain device
 
 #### Channels
 
-| Name         | Channel Type                        | Item Type | Remarks  |
-|--------------|-------------------------------------|-----------|----------|
-| temperature  | [temperature](#channels)            | Number    |          |
-| rainTotal    | [raintotal](#channels)              | Number    |          |
-| signalLevel  | [system.signal-strength](#channels) | Number    |          |
-| batteryLevel | [system.battery-level](#channels)   | Number    |          |
-| lowBattery   | [system.low-battery](#channels)     | Switch    |          |
+| Name         | Channel Type                        | Item Type | Remarks |
+| ------------ | ----------------------------------- | --------- | ------- |
+| temperature  | [temperature](#channels)            | Number    |         |
+| rainTotal    | [raintotal](#channels)              | Number    |         |
+| signalLevel  | [system.signal-strength](#channels) | Number    |         |
+| batteryLevel | [system.battery-level](#channels)   | Number    |         |
+| lowBattery   | [system.low-battery](#channels)     | Switch    |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Sensor Id. Example 56923
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   WS1200 - WS1200
-
+- deviceId - Device Id
+  - Sensor Id. Example 56923
+- subType - Sub Type
+  - Specifies device sub type.
+    - WS1200 - WS1200
 
 ### temperature - RFXCOM Temperature Sensor
 
@@ -1210,33 +1118,30 @@ A Temperature device
 
 #### Channels
 
-| Name         | Channel Type                        | Item Type | Remarks  |
-|--------------|-------------------------------------|-----------|----------|
-| temperature  | [temperature](#channels)            | Number    |          |
-| signalLevel  | [system.signal-strength](#channels) | Number    |          |
-| batteryLevel | [system.battery-level](#channels)   | Number    |          |
-| lowBattery   | [system.low-battery](#channels)     | Switch    |          |
+| Name         | Channel Type                        | Item Type | Remarks |
+| ------------ | ----------------------------------- | --------- | ------- |
+| temperature  | [temperature](#channels)            | Number    |         |
+| signalLevel  | [system.signal-strength](#channels) | Number    |         |
+| batteryLevel | [system.battery-level](#channels)   | Number    |         |
+| lowBattery   | [system.low-battery](#channels)     | Switch    |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Sensor Id. Example 56923
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   TEMP1 - THR128/138, THC138
-        *   TEMP2 - THC238/268,THN132,THWR288,THRN122,THN122,AW129/131
-        *   TEMP3 - THWR800
-        *   TEMP4 - RTHN318
-        *   TEMP5 - La Crosse TX2, TX3, TX4, TX17
-        *   TEMP6 - TS15C. UPM temp only
-        *   TEMP7 - Viking 02811, Proove TSS330, 311346
-        *   TEMP8 - La Crosse WS2300
-        *   TEMP9 - Rubicson
-        *   TEMP10 - TFA 30.3133
-        *   TEMP11 - WT0122
-
+- deviceId - Device Id
+  - Sensor Id. Example 56923
+- subType - Sub Type
+  - Specifies device sub type.
+    - TEMP1 - THR128/138, THC138
+    - TEMP2 - THC238/268,THN132,THWR288,THRN122,THN122,AW129/131
+    - TEMP3 - THWR800
+    - TEMP4 - RTHN318
+    - TEMP5 - La Crosse TX2, TX3, TX4, TX17
+    - TEMP6 - TS15C. UPM temp only
+    - TEMP7 - Viking 02811, Proove TSS330, 311346
+    - TEMP8 - La Crosse WS2300
+    - TEMP9 - Rubicson
+    - TEMP10 - TFA 30.3133
+    - TEMP11 - WT0122
 
 ### thermostat1 - RFXCOM Thermostat1 Sensor
 
@@ -1244,25 +1149,21 @@ A Thermostat1 device
 
 #### Channels
 
-| Name        | Channel Type                        | Item Type | Remarks  |
-|-------------|-------------------------------------|-----------|----------|
-| contact     | [command](#channels)                | Contact   |          |
-| setpoint    | [setpoint](#channels)               | Number    |          |
-| temperature | [temperature](#channels)            | Number    |          |
-| signalLevel | [system.signal-strength](#channels) | Number    |          |
+| Name        | Channel Type                        | Item Type | Remarks |
+| ----------- | ----------------------------------- | --------- | ------- |
+| contact     | [command](#channels)                | Contact   |         |
+| setpoint    | [setpoint](#channels)               | Number    |         |
+| temperature | [temperature](#channels)            | Number    |         |
+| signalLevel | [system.signal-strength](#channels) | Number    |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Sensor Id. Example 56923
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   DIGIMAX - Digimax, TLX7506
-        *   DIGIMAX\_SHORT - Digimax with short format (no set point)
-
-
+- deviceId - Device Id
+  - Sensor Id. Example 56923
+- subType - Sub Type
+  - Specifies device sub type.
+    - DIGIMAX - Digimax, TLX7506
+    - DIGIMAX\_SHORT - Digimax with short format (no set point)
 
 ### thermostat3 - RFXCOM Thermostat3 Sensor
 
@@ -1270,99 +1171,92 @@ A Thermostat3 device.
 
 #### Channels
 
-| Name              | Channel Type                        | Item Type     | Remarks  |
-|-------------------|-------------------------------------|---------------|----------|
-| command           | [command](#channels)                | Switch        |          |
-| command2nd        | [command](#channels)                | Switch        |          |
-| control\*         | [tempcontrol](#channels)            | Rollershutter |          |
-| commandString\*\* | [commandString](#channels)          | String        |          |
-| signalLevel       | [system.signal-strength](#channels) | Number        |          |
+| Name              | Channel Type                        | Item Type     | Remarks |
+| ----------------- | ----------------------------------- | ------------- | ------- |
+| command           | [command](#channels)                | Switch        |         |
+| command2nd        | [command](#channels)                | Switch        |         |
+| control\*         | [tempcontrol](#channels)            | Rollershutter |         |
+| commandString\*\* | [commandString](#channels)          | String        |         |
+| signalLevel       | [system.signal-strength](#channels) | Number        |         |
 
 \* `control` supports:
 
-* UP
-* DOWN
-* STOP
+- UP
+- DOWN
+- STOP
 
 \*\* `commandString` supports:
 
-* OFF
-* ON
-* UP
-* DOWN
-* RUN_UP
-* RUN_DOWN
-* SECOND_ON
-* SECOND_OFF
-* STOP
+- OFF
+- ON
+- UP
+- DOWN
+- RUN_UP
+- RUN_DOWN
+- SECOND_ON
+- SECOND_OFF
+- STOP
 
 #### Configuration Options
 
- *   deviceId - Device Id
-    *   Sensor Id. Example 106411
-
- *   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   MERTIK\_\_G6R\_H4T1 - Mertik (G6R H4T1)
-        *   MERTIK\_\_G6R\_H4TB\_\_G6_H4T\_\_G6R\_H4T21\_Z22 - Mertik (G6R H4TB, G6R H4T, or G6R H4T21\-Z22)
-        *   MERTIK\_\_G6R\_H4TD\_\_G6R\_H4T16 - Mertik (G6R H4TD or G6R H4T16)
-        *   MERTIK\_\_G6R\_H4S\_TRANSMIT\_ONLY - Mertik (G6R H4S \- transmit only)
+- deviceId - Device Id
+  - Sensor Id. Example 106411
+- subType - Sub Type
+  - Specifies device sub type.
+    - MERTIK\_\_G6R\_H4T1 - Mertik (G6R H4T1)
+    - MERTIK\_\_G6R\_H4TB\_\_G6_H4T\_\_G6R\_H4T21\_Z22 - Mertik (G6R H4TB, G6R H4T, or G6R H4T21\-Z22)
+    - MERTIK\_\_G6R\_H4TD\_\_G6R\_H4T16 - Mertik (G6R H4TD or G6R H4T16)
+    - MERTIK\_\_G6R\_H4S\_TRANSMIT\_ONLY - Mertik (G6R H4S \- transmit only)
 
 #### Examples
 
-
 ### undecoded - RFXCOM Undecoded RF Messages
 
-Undecoded messages are messages where RFCOM understands the protocol and has converted
-the raw RF pulses into bytes, but has not attempted to decode the bytes into meaningful
-data.
+Undecoded messages are messages where RFCOM understands the protocol and has converted the raw RF pulses into bytes, but has not attempted to decode the bytes into meaningful data.
 
 Undecoded message are receive only, there is not way to transmit an undecoded message.
 If you need to repeat an undecoded message, consider looking at Raw messages instead.
 
 #### Channels
 
-| Name       | Channel Type              | Item Type | Remarks     |
-|------------|---------------------------|-----------|-------------|
-| rawMessage | [rawmessage](#channels)   | String    |             |
-| rawPayload | [rawpayload](#channels)   | String    |             |
+| Name       | Channel Type            | Item Type | Remarks |
+| ---------- | ----------------------- | --------- | ------- |
+| rawMessage | [rawmessage](#channels) | String    |         |
+| rawPayload | [rawpayload](#channels) | String    |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Undecoded items cannot provide a device ID, so this value is always UNDECODED.
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   AC - AC
-        *   ARC - ARC
-        *   ATI - ATI
-        *   HIDEKI\_UPM - Hideki, UPM
-        *   LACROSSE\_VIKING - La Crosse, Viking
-        *   AD - AD
-        *   MERTIK - Mertik Maxitrol Fireplace controllers
-        *   OREGON1 - Oregon Scientific 1
-        *   OREGON2 - Oregon Scientific 2
-        *   OREGON3 - Oregon Scientific 3
-        *   PROGUARD - ProGuard
-        *   VISONIC - Visonic
-        *   NEC - NEC
-        *   FS20 - FS20
-        *   RESERVED - Reserved
-        *   BLINDS - Blinds
-        *   RUBICSON - Rubicson
-        *   AE - AE
-        *   FINE\_OFFSET - Fine Offset
-        *   RGB - RGB
-        *   RTS - RTS
-        *   SELECT\_PLUS - Select Plus
-        *   HOME\_CONFORT - Home Confort
-        *   EDISIO - Edisio
-        *   HONEYWELL - Honeywell
-        *   FUNKBUS - Gira Funk-Bussystem
-        *   BYRONSX - Byron SX
+- deviceId - Device Id
+  - Undecoded items cannot provide a device ID, so this value is always UNDECODED.
+- subType - Sub Type
+  - Specifies device sub type.
+    - AC - AC
+    - ARC - ARC
+    - ATI - ATI
+    - HIDEKI\_UPM - Hideki, UPM
+    - LACROSSE\_VIKING - La Crosse, Viking
+    - AD - AD
+    - MERTIK - Mertik Maxitrol Fireplace controllers
+    - OREGON1 - Oregon Scientific 1
+    - OREGON2 - Oregon Scientific 2
+    - OREGON3 - Oregon Scientific 3
+    - PROGUARD - ProGuard
+    - VISONIC - Visonic
+    - NEC - NEC
+    - FS20 - FS20
+    - RESERVED - Reserved
+    - BLINDS - Blinds
+    - RUBICSON - Rubicson
+    - AE - AE
+    - FINE\_OFFSET - Fine Offset
+    - RGB - RGB
+    - RTS - RTS
+    - SELECT\_PLUS - Select Plus
+    - HOME\_CONFORT - Home Confort
+    - EDISIO - Edisio
+    - HONEYWELL - Honeywell
+    - FUNKBUS - Gira Funk-Bussystem
+    - BYRONSX - Byron SX
 
 ### uv - RFXCOM UV/Temperature Sensor
 
@@ -1370,27 +1264,23 @@ A UV/Temperature device
 
 #### Channels
 
-| Name         | Channel Type                        | Item Type | Remarks  |
-|--------------|-------------------------------------|-----------|----------|
-| uv           | [uv](#channels)                     | Number    |          |
-| temperature  | [temperature](#channels)            | Number    |          |
-| signalLevel  | [system.signal-strength](#channels) | Number    |          |
-| batteryLevel | [system.battery-level](#channels)   | Number    |          |
-| lowBattery   | [system.low-battery](#channels)     | Switch    |          |
-
+| Name         | Channel Type                        | Item Type | Remarks |
+| ------------ | ----------------------------------- | --------- | ------- |
+| uv           | [uv](#channels)                     | Number    |         |
+| temperature  | [temperature](#channels)            | Number    |         |
+| signalLevel  | [system.signal-strength](#channels) | Number    |         |
+| batteryLevel | [system.battery-level](#channels)   | Number    |         |
+| lowBattery   | [system.low-battery](#channels)     | Switch    |         |
 
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Sensor Id. Example 56923
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   UV1 - UVN128, UV138
-        *   UV2 - UVN800
-        *   UV3 - TFA
-
+- deviceId - Device Id
+  - Sensor Id. Example 56923
+- subType - Sub Type
+  - Specifies device sub type.
+    - UV1 - UVN128, UV138
+    - UV2 - UVN800
+    - UV3 - TFA
 
 ### wind - RFXCOM Wind Sensor
 
@@ -1399,7 +1289,7 @@ A Wind device
 #### Channels
 
 | Name             | Channel Type                        | Item Type | Remarks                               |
-|------------------|-------------------------------------|-----------|---------------------------------------|
+| ---------------- | ----------------------------------- | --------- | ------------------------------------- |
 | avgWindSpeed     | [windspeed](#channels)              | Number    | Average Wind Speed                    |
 | windSpeed        | [windspeed](#channels)              | Number    | Wind Gust                             |
 | windDirection    | [winddirection](#channels)          | Number    | Wind Direction                        |
@@ -1409,19 +1299,16 @@ A Wind device
 | batteryLevel     | [system.battery-level](#channels)   | Number    |                                       |
 | lowBattery       | [system.low-battery](#channels)     | Switch    |                                       |
 
-
 #### Configuration Options
 
-*   deviceId - Device Id
-    *   Sensor Id. Example 2983
-
-*   subType - Sub Type
-    *   Specifies device sub type.
-
-        *   WIND1 - WTGR800
-        *   WIND2 - WGR800
-        *   WIND3 - STR918, WGR918, WGR928
-        *   WIND4 - TFA
-        *   WIND5 - UPM WDS500
-        *   WIND6 - WS2300
-        *   WIND7 - Alecto WS4500, Auriol H13726, Hama EWS1500, Meteoscan W155/W160, Ventus WS155
+- deviceId - Device Id
+  - Sensor Id. Example 2983
+- subType - Sub Type
+  - Specifies device sub type.
+    - WIND1 - WTGR800
+    - WIND2 - WGR800
+    - WIND3 - STR918, WGR918, WGR928
+    - WIND4 - TFA
+    - WIND5 - UPM WDS500
+    - WIND6 - WS2300
+    - WIND7 - Alecto WS4500, Auriol H13726, Hama EWS1500, Meteoscan W155/W160, Ventus WS155
index f91e8b8730b72d723bf7a4be4ce400e95f2fb0d3..6c807b98c39307151a84ae5c7298fa7bc8602521 100644 (file)
@@ -6,7 +6,7 @@ Record of responses to some commands for working out how things work.
 
 These messages were received when testing different firmwares.
 
-```
+```text
 Ext    250   0D0100010253FA0400070001031C
 Ext    251   0D0100010253FB0400070001031C
 Ext    1001  140100010253010400070001031C03000000000000
@@ -22,7 +22,8 @@ Type2  1022  140100010253160080270001031C02000000000000
 These messages were sent by RFXMngr when enabling single modes.
 
 On Pro1 firmware 1044 RFXtrx443 at 433.92MHZ
-```
+
+```text
 enableUndecodedPackets        0D 00 00 03 03 53 00 80 00 00 00 00 00 00
 enableImagintronixOpusPackets 0D 00 00 04 03 53 00 40 00 00 00 00 00 00
 enableByronSXPackets          0D 00 00 05 03 53 00 20 00 00 00 00 00 00
@@ -54,4 +55,4 @@ enableX10Packets              0D 00 00 14 03 53 00 00 00 01 00 00 00 00
 
 enableHomeConfortPackets      0D 00 00 14 03 53 00 00 00 00 02 00 00 00
 enableKEELOQPackets           0D 00 00 14 03 53 00 00 00 00 01 00 00 00
-```
\ No newline at end of file
+```
index ebb598addbec7f63423e8bee0807a0a5efdc1829..60b918323808201ceb842dc5335407ca2c0432ea 100644 (file)
@@ -26,13 +26,13 @@ All devices support some of the following channels:
 
 .things
 
-```
+```java
 Thing rme:manager:m1 [ port="/dev/tty.usbserial-FTGVQA6D" ]
 ```
 
 .items
 
-```
+```java
 Number RMECisternLevel "Water level [%.1f %%]"(rme) {channel="rme:manager:m1:waterlevel"}
 String RMEMode (rme) {channel="rme:manager:m1:mode"}
 String RMESource (rme) {channel="rme:manager:m1:source"}
index d411ca988ae32839a77c76800cf7d26aa63cae37..dfba11834ec6851cb63373e81f1d00d6960c5826 100644 (file)
@@ -36,7 +36,6 @@ The following configuration settings are supported for the `mower` thing.
 | password       | no        | the password if authenticaiton is enabled in the firmware.                                        |
 | timezone       | no        | the timezone as configured in Robonect on the robot (default: Europe/Berlin)                      |
 
-
 An example things configuration might look like:
 
 ```java
@@ -61,12 +60,12 @@ Thing robonect:mower:automower "Mower" @ "Garden" [ host="192.168.2.1", pollInte
 | `wlan-signal`                | Number    | Retrieves the current WLAN Signal strength in dB                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
 | `error-code`                 | Number    | The mower manufacturer code in case the mower is in status 7 (error). The binding resets this to UNDEF, once the mower is not in error status anymore.                                                                                                                                                                                                                                                                                                                                                                                  |
 | `error-message`              | String    | The error message in case the mower is in status 7 (error). The binding resets this to UNDEF, once the mower is not in error status anymore.                                                                                                                                                                                                                                                                                                                                                                                            |
-| `error-date   `              | DateTime  | The date and time the error happened. The binding resets this to UNDEF, once the mower is not in error status anymore.                                                                                                                                                                                                                                                                                                                                                                                                                  |
+| `error-date`              | DateTime  | The date and time the error happened. The binding resets this to UNDEF, once the mower is not in error status anymore.                                                                                                                                                                                                                                                                                                                                                                                                                  |
 | `last-error-code`            | Number    | The mower manufacturer code of the last error happened                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
 | `last-error-message`         | String    | The error message of the last error happened                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
-| `last-error-date   `         | DateTime  | The date and time of the last error happened                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
+| `last-error-date`         | DateTime  | The date and time of the last error happened                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
 | `health-temperature`         | Number    | The temperature of the mower (just available for robonect firmware >= 1.0)                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
-| `health-humidity   `         | Number    | The humidity of the mower (just available for robonect firmware >= 1.0)                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
+| `health-humidity`         | Number    | The humidity of the mower (just available for robonect firmware >= 1.0)                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
 
 ### Offline Trigger Channel
 
index 011822e5dbed4c5549818230710651f3e4113f49..d846a87384c63a2d8b507690109d556c21f7a83d 100644 (file)
@@ -50,7 +50,7 @@ The following channels are available:
 
 Some Notes:
 
-* The values for `activeApp`, `playMode`, `timeElapsed`, `timeTotal`, `activeChannel`, `signalMode`, `signalQuality`, `channelName`, `programTitle`, `programDescription` & `programRating` refresh automatically per the configured `refresh` interval (10 seconds minimum).
+- The values for `activeApp`, `playMode`, `timeElapsed`, `timeTotal`, `activeChannel`, `signalMode`, `signalQuality`, `channelName`, `programTitle`, `programDescription` & `programRating` refresh automatically per the configured `refresh` interval (10 seconds minimum).
 
 **List of available button commands for Roku streaming devices:**  
 Home  
@@ -87,9 +87,9 @@ PowerOn
 
 ## Full Example
 
-roku.things:
+### roku.things:
 
-```
+```java
 // Roku streaming media player
 roku:roku_player:myplayer1 "My Roku" [ hostName="192.168.10.1", refresh=10 ]
 
@@ -98,9 +98,9 @@ roku:roku_tv:mytv1 "My Roku TV" [ hostName="192.168.10.1", refresh=10 ]
 
 ```
 
-roku.items:
+### roku.items:
 
-```
+```java
 // Roku streaming media player items:
 
 String Player_ActiveApp        "Current App: [%s]"         { channel="roku:roku_player:myplayer1:activeApp" }
@@ -126,9 +126,9 @@ String Player_ProgramRating      "Program Rating: [%s]"      { channel="roku:rok
 
 ```
 
-roku.sitemap:
+### roku.sitemap:
 
-```
+```perl
 sitemap roku label="Roku" {
     Frame label="My Roku" {
         Selection item=Player_ActiveApp icon="screen"
index 6fb0a92a769adb3f736b6bba4064243a71fc3f99..4fa8e652932fa7d3986716bebbcb00cded4185d7 100644 (file)
@@ -4,15 +4,15 @@ This binding can be used to control a Rotel audio device like a surround process
 
 The binding supports different kinds of connections:
 
-* serial connection,
-* serial over IP connection,
-* IP connection (for models providing a network interface).
+- serial connection,
+- serial over IP connection,
+- IP connection (for models providing a network interface).
 
 The binding supports all kinds of Rotel protocols:
 
-* HEX protocol,
-* Old ASCII protocol (named v1 in the binding),
-* Recent ASCII protocol (named v2 in the binding).
+- HEX protocol,
+- Old ASCII protocol (named v1 in the binding),
+- Recent ASCII protocol (named v2 in the binding).
 
 For users without serial connector on server side, of course you can add a serial to USB adapter.
 
@@ -138,15 +138,14 @@ Some have additional parameters listed in the next table:
 
 Some notes:
 
-* On Linux, you may get an error stating the serial port cannot be opened when the Rotel 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. Rotel 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 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 Rotel device specific):
+- On Linux, you may get an error stating the serial port cannot be opened when the Rotel 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. Rotel 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 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 Rotel device specific):
 
-```
+```text
 4444:raw:0:/dev/ttyUSB0:19200 8DATABITS NONE 1STOPBIT
 ```
 
-
 ## Channels
 
 The following channels are available:
@@ -278,7 +277,7 @@ Here are the available commands for the otherCommand channel depending on the th
 
 example.things using serial connection:
 
-```
+```java
 Thing rotel:rsp1066:preamp "RSP-1066" [ serialPort="COM1", inputLabelVideo1="VID 1", inputLabelVideo2="VID 2", inputLabelVideo3="VID 3", inputLabelVideo4="VID 4", inputLabelVideo5="VID 5" ]
 
 Thing rotel:rsp1570:preamp "RSP-1570" [ serialPort="COM2" ]
@@ -292,7 +291,7 @@ Thing rotel:a14:amp "A14" [ serialPort="/dev/ttyUSB0" ]
 
 example.things using serial over IP connection:
 
-```
+```java
 Thing rotel:rsp1066:preamp "RSP-1066" [ host="192.168.0.200", port=3000, inputLabelVideo1="VID 1", inputLabelVideo2="VID 2", inputLabelVideo3="VID 3", inputLabelVideo4="VID 4", inputLabelVideo5="VID 5" ]
 
 Thing rotel:rsp1570:preamp "RSP-1570" [ host="192.168.0.201", port=3000, inputLabelCd="CD", inputLabelTuner="TUNER", inputLabelTape="TAPE", inputLabelVideo1="VIDEO 1", inputLabelVideo2="VIDEO 2", inputLabelVideo3="VIDEO 3", inputLabelVideo4="VIDEO 4", inputLabelVideo5="VIDEO 5", inputLabelMulti="MULTI" ]
@@ -304,7 +303,7 @@ Thing rotel:cd14:cd "CD14" [ host="192.168.0.203", port=3000 ]
 
 example.items:
 
-```
+```java
 Switch preamp_power "Power" { channel="rotel:rsp1066:preamp:mainZone#power" }
 String preamp_source "Source Input [%s]" { channel="rotel:rsp1066:preamp:mainZone#source" }
 String preamp_rec "Record Source [%s]" { channel="rotel:rsp1066:preamp:mainZone#recordSource" }
@@ -362,7 +361,7 @@ Dimmer cd_brightness "Display brightness" { channel="rotel:cd14:cd:brightness" }
 
 example.sitemap:
 
-```
+```perl
 Switch item=preamp_power
 Selection item=preamp_source
 Selection item=preamp_rec
index d5b7d38742737e8c1baafb8bd5e3be2a032a351c..628cd9cdb3e2f2ceaf45de61192def4e418a81a7 100644 (file)
@@ -6,19 +6,19 @@ The protocol document can be found in the Russound Portal ("RIO Protocol for 3rd
 Please update to the latest firmware to provide full compatibility with this binding.
 This binding does provide full feedback from the Russound system if events occur outside of openHAB (such as keypad usage).
 
-*Warning:* Russound becomes unstable if you have two IP based clients connected to the same system.
+_Warning:_ Russound becomes unstable if you have two IP based clients connected to the same system.
 Do NOT run multiple instances of this binding against the same system - this definitely causes instability.
 Running this binding in addition to the MyRussound application seems to work fine, however.
 
-*Warning:* Try to avoid having multiple media management functions open in different clients (keypads, My Russound app, HABPanel, etc).
+_Warning:_ Try to avoid having multiple media management functions open in different clients (keypads, My Russound app, HABPanel, etc).
 Although it seems to work a majority of the times, there have been instances where the sessions become confused.
 
 ## Supported Bridges/Things
 
-*   Bridge: Russound System (usually the main controller)
-*   Bridge: Russound Controller (1-6 controllers supported)
-*   Thing: Russound Source (1-8 sources supported)
-*   Thing: Russound Zone (1-8 &lsqb;depending on the controller&rsqb; zones supported for each controller)
+- Bridge: Russound System (usually the main controller)
+- Bridge: Russound Controller (1-6 controllers supported)
+- Thing: Russound Source (1-8 sources supported)
+- Thing: Russound Zone (1-8 &lsqb;depending on the controller&rsqb; zones supported for each controller)
 
 ## Device Discovery
 
@@ -80,7 +80,7 @@ The following channels are supported for each bridge/thing
 
 #### Notes
 
--   The JSON will look like: `[{"id":1, "name":"XXX"},...]`.
+- The JSON will look like: `[{"id":1, "name":"XXX"},...]`.
 The controller channel will contain up to 6 controllers and the sources will contain up to 8 sources (depending on how the system is configured).
 
 ### Russound Source (please see source cross-reference below for what is supported by which sources)
@@ -121,9 +121,18 @@ The controller channel will contain up to 6 controllers and the sources will con
 
 #### Notes
 
-1.  Banks are only supported tuner sources and the JSON array will have exactly 6 banks in it (with IDs from 1 to 6).  For non-tuner sources, an empty JSON array (`[]`) will be returned.  For tuner sources, the JSON will look like: `[{"id":1, "name":"XXX"},...]`.  A bank's name can be updated by sending the representation back to the channel.  Example: `[{"id":1,"name":"FM1"},{"id":3,"name":"FM3"}]` will set the name of bank #1 to "FM1 and bank#3 to "FM3" (leaving all other bank names the same).  After an update, the banks channel will be refreshed with the full JSON representation of all banks.  If the name has not been changed in the refreshed value, the russound rejected the name change for some reason (generally too long of a name or a duplicate name).
-
-2.  All media management channels are ONLY valid on streaming sources (not tuners).  All channels will return a JSON representation like `{"id":xxx, "value":"yyy"}` where 'xxx' will be a sequential identifier of the message and 'yyy' will be the payload.  The payload will be a simple string in all cases.  However, the mmmenu string will be a raw JSON string representing the menu structure.  Please review the media management section in the RIO protocol document from russound for the specifications.
+1. Banks are only supported tuner sources and the JSON array will have exactly 6 banks in it (with IDs from 1 to 6).
+    For non-tuner sources, an empty JSON array (`[]`) will be returned.
+    For tuner sources, the JSON will look like: `[{"id":1, "name":"XXX"},...]`.
+    A bank's name can be updated by sending the representation back to the channel.
+    Example: `[{"id":1,"name":"FM1"},{"id":3,"name":"FM3"}]` will set the name of bank #1 to "FM1 and bank#3 to "FM3" (leaving all other bank names the same).
+    After an update, the banks channel will be refreshed with the full JSON representation of all banks.
+    If the name has not been changed in the refreshed value, the russound rejected the name change for some reason (generally too long of a name or a duplicate name).
+1. All media management channels are ONLY valid on streaming sources (not tuners).
+    All channels will return a JSON representation like `{"id":xxx, "value":"yyy"}` where 'xxx' will be a sequential identifier of the message and 'yyy' will be the payload.
+    The payload will be a simple string in all cases.
+    However, the mmmenu string will be a raw JSON string representing the menu structure.
+    Please review the media management section in the RIO protocol document from russound for the specifications.
 
 ### Russound Controller
 
@@ -131,10 +140,9 @@ The controller channel will contain up to 6 controllers and the sources will con
 |-----------------|------------|-----------|--------------------------------------------------------|
 | zones           | R          | String    | The JSON representation of all zones in the controller |
 
-
 #### Notes
 
-*   The JSON will look like: `[{"id":1, "name":"XXX"},...]`
+- The JSON will look like: `[{"id":1, "name":"XXX"},...]`
 
 ### Russound Zone
 
@@ -171,14 +179,19 @@ The controller channel will contain up to 6 controllers and the sources will con
 | mminit             | W          | Switch**** | Whether to initial a media management session (ON) or close an existing one (OFF)         |
 | mmcontextmenu      | W          | Switch**** | Whether to initial a media management context session (ON) or close an existing one (OFF) |
 
-
 #### Notes:
 
-1.  As of the time of this document, rating ON (like) produced an error in the firmware from the related command.  This has been reported to Russound.
-2.  keypress/keyrelease/keyhold/keycode/event are advanced commands that will pass the related event string to Russound (i.e. `EVENT C[x].Z[y]!KeyPress [stringtype]`).  Please see the "RIO Protocol for 3rd Party Integrators.pdf" (found at the Russound Portal) for proper string forms.
-3.  If you send an OnOffType to the volume will have the same affect as turning the zone on/off (ie sending OnOffType to "status")
-4.  The volume PercentType will be scaled to Russound's volume of 0-50 (ie 50% = volume of 25, 100% = volume of 50)
-5.  Initialize a media management session by sending ON to the channel.  The related source thing will then start sending out media management information in the MM channels.  To close the session - simply send OFF to the channel.  Sending OFF to the channel when a session has not been initialized does nothing.  Likewise if the related source is a tuner, this command does nothing.
+1. As of the time of this document, rating ON (like) produced an error in the firmware from the related command.
+    This has been reported to Russound.
+1. keypress/keyrelease/keyhold/keycode/event are advanced commands that will pass the related event string to Russound (i.e. `EVENT C[x].Z[y]!KeyPress [stringtype]`).
+    Please see the "RIO Protocol for 3rd Party Integrators.pdf" (found at the Russound Portal) for proper string forms.
+1. If you send an OnOffType to the volume will have the same affect as turning the zone on/off (ie sending OnOffType to "status")
+1. The volume PercentType will be scaled to Russound's volume of 0-50 (ie 50% = volume of 25, 100% = volume of 50)
+1. Initialize a media management session by sending ON to the channel.
+    The related source thing will then start sending out media management information in the MM channels.
+    To close the session - simply send OFF to the channel.
+    Sending OFF to the channel when a session has not been initialized does nothing.
+    Likewise if the related source is a tuner, this command does nothing.
 
 ##### System Favorites
 
@@ -189,24 +202,40 @@ This channel appears on the zone because when you send a system favorite represe
 
 There are three different ways to use this channel:
 
-1.  Save a system favorite.  Send a representation with "valid" set to true.  Example: to set system favorite 3 to what is playing in the zone: `[{"id":3,"valid":true,"name":"80s Rock"}]`.  If system favorite 3 was invalid, this would save what is currently playing and make it valid.  If system favorite 3 was already valid, this would overlay the favorite with what is currently playing and change its name.
-2.  Update the name of a system favorite.  Send a representation of an existing ID with "valid" set to true and the new name.  Example: we could update system favorite 3 (after the above statement) by sending: `[{"id":3,"valid":true,"name":"80s Rock Even More"}]`.  Note this will ONLY change the name (this will NOT save what is currently playing to the system favorite).  
-3.  Delete a system favorite.  Send a representation with "valid" as false.  Example: deleting system favorite 3 (after the above statements) by sending: `[{"id":3","valid":false"}]`
+1. Save a system favorite.  Send a representation with "valid" set to true.
+    Example: to set system favorite 3 to what is playing in the zone: `[{"id":3,"valid":true,"name":"80s Rock"}]`.
+    If system favorite 3 was invalid, this would save what is currently playing and make it valid.
+    If system favorite 3 was already valid, this would overlay the favorite with what is currently playing and change its name.
+1. Update the name of a system favorite.
+    Send a representation of an existing ID with "valid" set to true and the new name.
+    Example: we could update system favorite 3 (after the above statement) by sending: `[{"id":3,"valid":true,"name":"80s Rock Even More"}]`.
+    Note this will ONLY change the name (this will NOT save what is currently playing to the system favorite).
+1. Delete a system favorite.
+    Send a representation with "valid" as false.
+    Example: deleting system favorite 3 (after the above statements) by sending: `[{"id":3","valid":false"}]`
 
-The channel will be refreshed with the new representation after processing.  If the refreshed representation doesn't include the changes, the russound system rejected them for some reason (generally length of the name).
+The channel will be refreshed with the new representation after processing.
+If the refreshed representation doesn't include the changes, the russound system rejected them for some reason (generally length of the name).
 
 ##### Zone Favorites
 
-The JSON will look like `[{"id":xxx,"valid":true,"name":"yyyy"},...]` and will have a representation for each VALID favorite in the zone (ie where "valid" is true).  You will have up to 2 zone favorites in the JSON array (the ID field will be between 1 and 2).    
+The JSON will look like `[{"id":xxx,"valid":true,"name":"yyyy"},...]` and will have a representation for each VALID favorite in the zone (ie where "valid" is true).
+You will have up to 2 zone favorites in the JSON array (the ID field will be between 1 and 2).
 
 There are two different ways to use this channel:
 
-1.  Save a zone favorite.  Send a representation with "valid" set to true.  Example: to set zone favorite 2 to what is playing in the zone: `[{"id":2,"valid":true,"name":"80s Rock"}]`.
-2.  Delete a zone favorite.  Send a representation with "valid" as false.  Example: deleting zone favorite 2 (after the above statement) by sending: `[{"id":2","valid":false"}] `
+1. Save a zone favorite.
+    Send a representation with "valid" set to true.
+    Example: to set zone favorite 2 to what is playing in the zone: `[{"id":2,"valid":true,"name":"80s Rock"}]`.
+1. Delete a zone favorite.
+    Send a representation with "valid" as false.
+    Example: deleting zone favorite 2 (after the above statement) by sending: `[{"id":2","valid":false"}]`
 
-There is no ability to change JUST the name.  Sending a new name will save the new name AND set the favorite to what is currently playing.
+There is no ability to change JUST the name.
+Sending a new name will save the new name AND set the favorite to what is currently playing.
 
-The channel will be refreshed with the new representation after processing.  If the refreshed representation doesn't include the changes, the russound system rejected them for some reason (generally length of the name).
+The channel will be refreshed with the new representation after processing.
+If the refreshed representation doesn't include the changes, the russound system rejected them for some reason (generally length of the name).
 
 ##### Zone Presets
 
@@ -218,9 +247,15 @@ The "bank" and "bankPreset" are readonly (will be ignored if sent) and are infor
 
 There are two different ways to use this channel:
 
-1.  Save a preset.  Send a representation to an ID that is invalid with "valid" set to true.  Example: to set a zone pret 2 to what is playing in the zone: `[{"id":2,"valid":true,"name":"103.7 FM"}]`.
-2.  Save a preset with default name.  Send a representation to an ID that is invalid with "valid" set to true.  Example: to set a zone pret 2 to what is playing in the zone: `[{"id":2,"valid":true,"name":"103.7 FM"}]`.
-3.  Delete a zone favorite.  Send a representation with "valid" as false.  Example: deleting zone favorite 2 (after the above statement) by sending: `[{"id":2","valid":false"}]`
+1. Save a preset.
+    Send a representation to an ID that is invalid with "valid" set to true.
+    Example: to set a zone pret 2 to what is playing in the zone: `[{"id":2,"valid":true,"name":"103.7 FM"}]`.
+1. Save a preset with default name.
+    Send a representation to an ID that is invalid with "valid" set to true.
+    Example: to set a zone pret 2 to what is playing in the zone: `[{"id":2,"valid":true,"name":"103.7 FM"}]`.
+1. Delete a zone favorite.
+    Send a representation with "valid" as false.
+    Example: deleting zone favorite 2 (after the above statement) by sending: `[{"id":2","valid":false"}]`
 
 There is no ability to change JUST the name.
 Sending a new name will save the new name AND set the favorite to what is currently playing.
@@ -254,19 +289,19 @@ If the refreshed representation doesn't include the changes, the russound system
 | radiotext3         |        |    |      |               |               |         |                | X         |        |
 | radiotext4         |        |    |      |               |               |         |                | X         |        |
 
-1.  Sirius Internal Radio Only
+1. Sirius Internal Radio Only
 
 ## Example
 
 The following is an example of
 
-1.  Main controller (#1) at ipaddress 192.168.1.24
-2.  One Sources connected to it (#1 is the internal AM/FM)
-3.  Four zones on the controller (1-4 in various rooms)
+1. Main controller (#1) at ipaddress 192.168.1.24
+1. One Sources connected to it (#1 is the internal AM/FM)
+1. Four zones on the controller (1-4 in various rooms)
 
 .things
 
-```
+```java
 russound:rio:home [ ipAddress="192.168.1.24", ping=30, retryPolling=10 ]
 russound:controller:1 (russound:rio:home) [ controller=1 ]
 russound:source:1 (russound:rio:home) [ source=1 ]
@@ -279,7 +314,7 @@ russound:zone:4  (russound:controller:1) [ zone=4 ]
 This is an example of all the items that can be included (regardless of the above setup)
 .items
 
-```
+```java
 Switch Rio_Status "Status [%s]" { channel="russound:rio:home:status" }
 Switch Rio_AllOn "All Zones" { channel="russound:rio:home:allon" }
 
@@ -328,7 +363,7 @@ String Rio_Src_RadioText4 "Radio Text #4 [%s]" { channel="russound:source:1:radi
 
 .sitemap
 
-```
+```perl
 Frame label="Russound" {
  Text label="System" {
   Selection item=Rio_Lang mappings=[ENGLISH="English", RUSSIAN="Russian", CHINESE="Chinese"]
index 3cc96bde95d0ee67e6b374b1e51c0149972c9b63..1c590e83f760923327503cbbe6ca58b82fff49a1 100644 (file)
@@ -1,12 +1,12 @@
 # Sager Weathercaster Binding
 
-The Sager Weathercaster is a scientific instrument for accurate prediction of the weather. 
+The Sager Weathercaster is a scientific instrument for accurate prediction of the weather.
 
 ## Limitations
 
-* To operate, this binding will need to use channel values provided by other means (e.g. Weather Binding, Netatmo, a 1-Wire personal weather station...)
+- To operate, this binding will need to use channel values provided by other means (e.g. Weather Binding, Netatmo, a 1-Wire personal weather station...)
 
-* This binding buffers readings for some hours before producing weather forecasts (wind direction and sea level pressure). SagerWeatherCaster needs an observation period of minimum 6 hours.
+- This binding buffers readings for some hours before producing weather forecasts (wind direction and sea level pressure). SagerWeatherCaster needs an observation period of minimum 6 hours.
 
 For these reasons, this binding is not a binding in the usual sense.
 
@@ -22,10 +22,10 @@ The binding itself does not require any configuration.
 
 ### SagerCaster
 
-| Name               | Type     | Description                                                              |
-|--------------------|----------|--------------------------------------------------------------------------|
-| location (*)       | Location | Latitude and longitude of the desired weather forecast.                  |
-| observation-period | int      | Minimum delay (in hours) before producing forecasts. Defaulted to 6.     |
+| Name               | Type     | Description                                                          |
+| ------------------ | -------- | -------------------------------------------------------------------- |
+| location (*)       | Location | Latitude and longitude of the desired weather forecast.              |
+| observation-period | int      | Minimum delay (in hours) before producing forecasts. Defaulted to 6. |
 
 (*) Only latitude is used by the algorithm.
 
@@ -33,26 +33,26 @@ The binding itself does not require any configuration.
 
 The binding will use some input channels, that can be configured directly with profiles (sample below).
 
-| Name                | Group  |Type                 | Description                                                     |
-|---------------------|--------|---------------------|-----------------------------------------------------------------|
-| is-raining (*)      | input  |Switch               | On if it is raining, else Off.                                  |
-| rain-qtty  (*)      | input  |Number               | Any value that give indication of a current rain volume         |
-|                 or  | input  |Number:Speed         | Any value that give indication of a current rain volume eg mm/h |
-|                 or  | input  |Number:Length        | Any value that give indication of a current rain volume eg mm   |
-| cloudiness          | input  |Number:Dimensionless | Cloud cover percentage                                          |
-| wind-speed-beaufort | input  |Number               | Wind speed expressed using the Beaufort scale                   |
-| pressure            | input  |Number:Pressure      | Sea level pressure                                              |
-| wind-angle          | input  |Number:Angle         | Wind direction                                                  |
-| temperature         | input  |Number:Temperature   | Outside temperature                                             |
-| timestamp           | output |DateTime             | Timestamp of the last forecast update                           |
-| forecast            | output |String               | Description of the weather forecast                             |
-| velocity            | output |String               | Description of the expected wind evolution                      |
-| velocity-beaufort   | output |Number               | Expected wind evolution using the Beaufort scale                |
-| wind-from           | output |String               | Expected wind orientation                                       |
-| wind-to             | output |String               | Evolution of the expected wind orientation                      |
-| wind-evolution      | output |String               | Wind orientation evolution over observation period              |
-| pressure-trend      | output |String               | Pressure evolution over observation period                      |
-| temperature-trend   | output |String               | Temperature evolution over observation period                   |
+| Name                | Group  | Type                 | Description                                                     |
+| ------------------- | ------ | -------------------- | --------------------------------------------------------------- |
+| is-raining (*)      | input  | Switch               | On if it is raining, else Off.                                  |
+| rain-qtty  (*)      | input  | Number               | Any value that give indication of a current rain volume         |
+| or                  | input  | Number:Speed         | Any value that give indication of a current rain volume eg mm/h |
+| or                  | input  | Number:Length        | Any value that give indication of a current rain volume eg mm   |
+| cloudiness          | input  | Number:Dimensionless | Cloud cover percentage                                          |
+| wind-speed-beaufort | input  | Number               | Wind speed expressed using the Beaufort scale                   |
+| pressure            | input  | Number:Pressure      | Sea level pressure                                              |
+| wind-angle          | input  | Number:Angle         | Wind direction                                                  |
+| temperature         | input  | Number:Temperature   | Outside temperature                                             |
+| timestamp           | output | DateTime             | Timestamp of the last forecast update                           |
+| forecast            | output | String               | Description of the weather forecast                             |
+| velocity            | output | String               | Description of the expected wind evolution                      |
+| velocity-beaufort   | output | Number               | Expected wind evolution using the Beaufort scale                |
+| wind-from           | output | String               | Expected wind orientation                                       |
+| wind-to             | output | String               | Evolution of the expected wind orientation                      |
+| wind-evolution      | output | String               | Wind orientation evolution over observation period              |
+| pressure-trend      | output | String               | Pressure evolution over observation period                      |
+| temperature-trend   | output | String               | Temperature evolution over observation period                   |
 
 (*) You may use either is-raining, either rain-qtty depending upon the data available in your system.
 
@@ -60,7 +60,7 @@ The binding will use some input channels, that can be configured directly with p
 
 ### Things
 
-```
+```java
 sagercaster:sagercaster:triel "Sager Triel" @ "Outside" [location="48,2"]
 ```
 
@@ -68,20 +68,17 @@ sagercaster:sagercaster:triel "Sager Triel" @ "Outside" [location="48,2"]
 
 Input channel can be updated via profiles in versions of OH > 2.4.
 
-```
+```java
 Number:Pressure NWS_Abs_Pressure "Pression absolue" <pressure> {channel="netatmo:NAMain:home:insidews:AbsolutePressure", channel="sagercaster:sagercaster:triel:input#pressure" [profile="follow"]}
-Number:Angle NWS_wind_angle   "Orientation [%d°]"     {channel="netatmo:NAModule2:home:anemometre:WindAngle", channel="sagercaster:sagercaster:triel:input#wind-angle" [profile="follow"]}
+Number:Angle NWS_wind_angle   "Orientation [%d°]"  {channel="netatmo:NAModule2:home:anemometre:WindAngle", channel="sagercaster:sagercaster:triel:input#wind-angle" [profile="follow"]}
 Number:Dimensionless OWM_Cloudiness "Cloudiness [%d %unit%]" <clouds> {channel="openweathermap:weather-and-forecast:api:local:current#cloudiness", channel="sagercaster:sagercaster:triel:input#cloudiness" [profile="follow"] }
 Number Synop_beaufort "Beaufort [%d]" <beaufort> {channel="synopanalyzer:synopanalyzer:orly:wind-speed-beaufort", channel="sagercaster:sagercaster:triel:input#wind-speed-beaufort" [profile="follow"] }
 Number:Length NWS_rain_1h "Précipitation 1h [%.2f %unit%]" <rain> {channel="netatmo:NAModule3:home:pluviometre:SumRain1", channel="sagercaster:sagercaster:triel:input#rain-qtty" [profile="follow"]}
-
-               
 ```
 
 Here is the definition of output channels
 
-```
-   
+```java
 // Items directly derived from inputs
 String  SWC_windevolution       "Wind Evolution"                        (gSager)                {channel="sagercaster:sagercaster:triel:output#wind-evolution"}
 String  SWC_presstrend          "Pressure Trend"                        (gSager)                {channel="sagercaster:sagercaster:triel:output#pressure-trend"}
@@ -93,5 +90,3 @@ String  SWC_windfrom            "Wind from"                             (gSager)
  
 DateTime SWC_ObservationTime    "Timestamp [%1$tH:%1$tM]"       <time>  (gSager, gTrackAge)     {channel="sagercaster:sagercaster:triel:output#timestamp" }
 ```
-
-
index 711ae2a4efd9e1c9aebfae16cc830397db4a3170..8002292a9236da41b0f8fe978e058e3fe04696a5 100644 (file)
@@ -5,13 +5,13 @@ This binding integrates the [Samsung TV's](https://www.samsung.com).
 ## Supported Things
 
 Samsung TV C (2010), D (2011), E (2012) and F (2013) models should be supported.
-Also support added for TVs using websocket remote interface (2016+ models) 
+Also support added for TVs using websocket remote interface (2016+ models)
 Because Samsung does not publish any documentation about the TV's UPnP interface, there could be differences between different TV models, which could lead to mismatch problems.
 
 Tested TV models:
 
 | Model          | State   | Notes                                                                                                                                                  |
-|----------------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
+| -------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
 | KU6519         | PARTIAL | Supported channels: `volume`, `mute`, `power`,  `keyCode` (at least)                                                                                   |
 | LE40D579       | PARTIAL | Supported channels: `volume`, `mute`, `channel`, `keyCode`, `sourceName`,  `programTitle`, `channelName`,  `power`                                     |
 | LE40C650       | PARTIAL | Supported channels: `volume`, `mute`, `channel`, `keyCode`, `brightness`, `contrast`, `colorTemperature`, `power` (only power off, unable to power on) |
@@ -44,7 +44,7 @@ Additionally, a refresh interval can be configured in milliseconds to specify ho
 
 E.g.
 
-```
+```java
 Thing samsungtv:tv:livingroom [ hostName="192.168.1.10", port=55000, macAddress="78:bd:bc:9f:12:34", refreshInterval=1000 ]
 ```
 
@@ -54,29 +54,29 @@ Different ports are used in different models. It may be 55000, 8001 or 8002.
 
 TVs support the following channels:
 
-| Channel Type ID  | Item Type | Description                                                                                             |
-|------------------|-----------|---------------------------------------------------------------------------------------------------------|
-| volume           | Dimmer    | Volume level of the TV.                                                                                 |
-| mute             | Switch    | Mute state of the TV.                                                                                   |
-| brightness       | Dimmer    | Brightness of the TV picture.                                                                           |
-| contrast         | Dimmer    | Contrast of the TV picture.                                                                             |
-| sharpness        | Dimmer    | Sharpness of the TV picture.                                                                            |
-| colorTemperature | Number    | Color temperature of the TV picture. Minimum value is 0 and maximum 4.                                  |
-| sourceName       | String    | Name of the current source.                                                                             |
-| sourceId         | Number    | Id of the current source.                                                                               |
-| channel          | Number    | Selected TV channel number.                                                                             |
-| programTitle     | String    | Program title of the current channel.                                                                   |
-| channelName      | String    | Name of the current TV channel.                                                                         |
-| url              | String    | Start TV web browser and go the given web page.                                                         |
-| stopBrowser      | Switch    | Stop TV's web browser and go back to TV mode.                                                           |
-| power            | Switch    | TV power. Some of the Samsung TV models doesn't allow to set Power ON remotely.                         |
+| Channel Type ID  | Item Type | Description                                                                                                                         |
+| ---------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------- |
+| volume           | Dimmer    | Volume level of the TV.                                                                                                             |
+| mute             | Switch    | Mute state of the TV.                                                                                                               |
+| brightness       | Dimmer    | Brightness of the TV picture.                                                                                                       |
+| contrast         | Dimmer    | Contrast of the TV picture.                                                                                                         |
+| sharpness        | Dimmer    | Sharpness of the TV picture.                                                                                                        |
+| colorTemperature | Number    | Color temperature of the TV picture. Minimum value is 0 and maximum 4.                                                              |
+| sourceName       | String    | Name of the current source.                                                                                                         |
+| sourceId         | Number    | Id of the current source.                                                                                                           |
+| channel          | Number    | Selected TV channel number.                                                                                                         |
+| programTitle     | String    | Program title of the current channel.                                                                                               |
+| channelName      | String    | Name of the current TV channel.                                                                                                     |
+| url              | String    | Start TV web browser and go the given web page.                                                                                     |
+| stopBrowser      | Switch    | Stop TV's web browser and go back to TV mode.                                                                                       |
+| power            | Switch    | TV power. Some of the Samsung TV models doesn't allow to set Power ON remotely.                                                     |
 | artMode          | Switch    | TV art mode for e.g. Samsung The Frame TV's. Only relevant if power=off. If set to on when power=on, the power will be switched off |
-| sourceApp        | String    | Currently active App.                                                                                   |
-| keyCode          | String    | The key code channel emulates the infrared remote controller and allows to send virtual button presses. |
+| sourceApp        | String    | Currently active App.                                                                                                               |
+| keyCode          | String    | The key code channel emulates the infrared remote controller and allows to send virtual button presses.                             |
 
 E.g.
 
-```
+```java
 Group   gLivingRoomTV    "Living room TV" <screen>
 Dimmer  TV_Volume        "Volume"         <soundvolume>        (gLivingRoomTV)   { channel="samsungtv:tv:livingroom:volume" }
 Switch  TV_Mute          "Mute"           <soundvolume_mute>   (gLivingRoomTV)   { channel="samsungtv:tv:livingroom:mute" }
@@ -95,7 +95,7 @@ List of known apps and the respective name that can be passed on to the `sourceA
 Values are confirmed to work on UE50MU6179.
 
 | App           | Value in sourceApp | Description                       |
-|---------------|--------------------|-----------------------------------|
+| ------------- | ------------------ | --------------------------------- |
 | ARD Mediathek | `ARD Mediathek`    | German public TV broadcasting app |
 | Browser       | `Internet`         | Built-in WWW browser              |
 | Netflix       | `Netflix`          | Netflix App                       |
index 0fae89f751977352d488ad11a980e2291b9c8c2e..aa0f10fef70fe2c0cdeff92e9648c9a6809c5e9d 100644 (file)
@@ -17,7 +17,7 @@ More details and all documentation about Integra system you can find on their si
 This binding supports following thing types:
 
 | Thing type | Description                                                                                                                              |
-|------------|------------------------------------------------------------------------------------------------------------------------------------------|
+| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
 | ethm-1     | Ethernet bridge, supports [ETHM-1](https://www.satel.pl/en/product/115/) and [ETHM-1 Plus](https://www.satel.pl/en/product/698/) modules |
 | int-rs     | RS-232 bridge, supports [INT-RS](https://www.satel.pl/en/product/123/) and [INT-RS Plus](https://www.satel.pl/en/product/664/) modules   |
 | partition  | Set of zones representing some physical area or logical relation                                                                         |
@@ -28,7 +28,6 @@ This binding supports following thing types:
 | event-log  | A virtual thing that allows reading records from the alarm system event log                                                              |
 | atd-100    | Wireless temperature detector [ATD-100](https://www.satel.pl/en/produktid/503)                                                           |
 
-
 ## Discovery
 
 The binding discovers all devices (partitions, zones) defined in the system, but bridge things must be configured manually.
@@ -40,7 +39,7 @@ The binding discovers all devices (partitions, zones) defined in the system, but
 You can configure the following settings for this bridge:
 
 | Name          | Required | Description                                                                                                                                                                                                                                                                  |
-|---------------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| ------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
 | host          | yes      | Host name or IP addres of ETHM-1 module.                                                                                                                                                                                                                                     |
 | port          | no       | TCP port for the integration protocol, defaults to 7094.                                                                                                                                                                                                                     |
 | timeout       | no       | Timeout value in milliseconds for connect, read and write operations, defaults to 5000 (5secs).                                                                                                                                                                              |
@@ -52,12 +51,12 @@ You can configure the following settings for this bridge:
 
 Example:
 
-```
+```java
 Bridge satel:ethm-1:home [ host="192.168.0.2", refresh=1000, userCode="1234", encryptionKey="abcdefgh" ]
 ```
 
-**NOTE:** There can be only one client connected to ETHM-1 module. 
-It does not accept new connections if there is already a connection established. 
+**NOTE:** There can be only one client connected to ETHM-1 module.
+It does not accept new connections if there is already a connection established.
 In case you have troubles connecting to the system using this module, please make sure there is no other client (for example installed 1.x version of the binding) already connected to it.
 
 ### int-rs bridge
@@ -65,7 +64,7 @@ In case you have troubles connecting to the system using this module, please mak
 You can configure the following settings for this bridge:
 
 | Name        | Required | Description                                                                                                                                         |
-|-------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------|
+| ----------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
 | port        | yes      | Serial port connected to the module.                                                                                                                |
 | timeout     | no       | Timeout value in milliseconds for connect, read and write operations, defaults to 5000 (5secs).                                                     |
 | refresh     | no       | Polling interval in milliseconds, defaults to 5000 (5secs).                                                                                         |
@@ -75,7 +74,7 @@ You can configure the following settings for this bridge:
 
 Example:
 
-```
+```java
 Bridge satel:int-rs:home [ port="/dev/ttyS0", refresh=1000, userCode="1234" ]
 ```
 
@@ -84,13 +83,13 @@ Bridge satel:int-rs:home [ port="/dev/ttyS0", refresh=1000, userCode="1234" ]
 You can configure the following settings for a partition:
 
 | Name        | Required | Description                                                      |
-|-------------|----------|------------------------------------------------------------------|
+| ----------- | -------- | ---------------------------------------------------------------- |
 | id          | yes      | Partition number                                                 |
 | forceArming | no       | Arms the partition regardless of ongoing troubles and violations |
 
 Example:
 
-```
+```java
 Thing partition partition1 [ id=1, forceArming=true ]
 ```
 
@@ -99,14 +98,14 @@ Thing partition partition1 [ id=1, forceArming=true ]
 You can configure the following settings for a zone:
 
 | Name        | Required | Description                                                              |
-|-------------|----------|--------------------------------------------------------------------------|
+| ----------- | -------- | ------------------------------------------------------------------------ |
 | id          | yes      | Zone number                                                              |
 | invertState | no       | Changes active (ON) state to 0                                           |
 | wireless    | no       | This zone is monitored by a wireless detector like APD-100, AFD-100, etc |
 
 Example:
 
-```
+```java
 Thing zone zone1 [ id=1 ]
 ```
 
@@ -115,7 +114,7 @@ Thing zone zone1 [ id=1 ]
 You can configure the following settings for an output:
 
 | Name        | Required | Description                                                           |
-|-------------|----------|-----------------------------------------------------------------------|
+| ----------- | -------- | --------------------------------------------------------------------- |
 | id          | yes      | Output number                                                         |
 | invertState | no       | Changes active (ON) state to 0                                        |
 | commandOnly | no       | Accepts commands only, does not update state of the thing             |
@@ -123,7 +122,7 @@ You can configure the following settings for an output:
 
 Example:
 
-```
+```java
 Thing output output1 [ id=1, invertState=true, wireless=false ]
 ```
 
@@ -132,14 +131,14 @@ Thing output output1 [ id=1, invertState=true, wireless=false ]
 You can configure the following settings for a shutter:
 
 | Name        | Required | Description                                               |
-|-------------|----------|-----------------------------------------------------------|
+| ----------- | -------- | --------------------------------------------------------- |
 | upId        | yes      | Output number for "up" direction                          |
 | downId      | yes      | Output number for "down" direction                        |
 | commandOnly | no       | Accepts commands only, does not update state of the thing |
 
 Example:
 
-```
+```java
 Thing shutter shutter1 [ upId=10, downId=11, commandOnly=true ]
 ```
 
@@ -149,7 +148,7 @@ This thing type does not have any configuration parameters.
 
 Example:
 
-```
+```java
 Thing system System [ ]
 ```
 
@@ -159,7 +158,7 @@ This thing type does not have any configuration parameters.
 
 Example:
 
-```
+```java
 Thing event-log EventLog [ ]
 ```
 
@@ -168,13 +167,13 @@ Thing event-log EventLog [ ]
 You can configure the following settings for this thing:
 
 | Name    | Required | Description                                                |
-|---------|----------|------------------------------------------------------------|
+| ------- | -------- | ---------------------------------------------------------- |
 | id      | yes      | Zone number in the alarm system monitored by this detector |
 | refresh | no       | Polling interval in minutes, defaults to 15                |
 
 Example:
 
-```
+```java
 Thing atd-100 KitchenTemp [ id=10, refresh=30 ]
 ```
 
@@ -183,7 +182,7 @@ Thing atd-100 KitchenTemp [ id=10, refresh=30 ]
 ### partition
 
 | Name               | Type   | Description                       |
-|--------------------|--------|-----------------------------------|
+| ------------------ | ------ | --------------------------------- |
 | armed              | Switch | Armed                             |
 | really_armed       | Switch | Really armed                      |
 | armed_mode_1       | Switch | Armed in mode 1                   |
@@ -206,7 +205,7 @@ Thing atd-100 KitchenTemp [ id=10, refresh=30 ]
 ### zone
 
 | Name                   | Type   | Description                                               |
-|------------------------|--------|-----------------------------------------------------------|
+| ---------------------- | ------ | --------------------------------------------------------- |
 | violation              | Switch | Violation                                                 |
 | tamper                 | Switch | Tamper                                                    |
 | alarm                  | Switch | Alarm                                                     |
@@ -227,7 +226,7 @@ Thing atd-100 KitchenTemp [ id=10, refresh=30 ]
 **NOTE:** You can change state of mono/bistable outputs only.
 
 | Name          | Type   | Description                                               |
-|---------------|--------|-----------------------------------------------------------|
+| ------------- | ------ | --------------------------------------------------------- |
 | state         | Switch | State of the output                                       |
 | device_lobatt | Switch | Indicates low battery level in the wireless device        |
 | device_nocomm | Switch | Indicates communication troubles with the wireless device |
@@ -235,13 +234,13 @@ Thing atd-100 KitchenTemp [ id=10, refresh=30 ]
 ### shutter
 
 | Name          | Type          | Description          |
-|---------------|---------------|----------------------|
+| ------------- | ------------- | -------------------- |
 | shutter_state | Rollershutter | State of the shutter |
 
 ### system
 
 | Name            | Type     | Description                                                                                                                        |
-|-----------------|----------|------------------------------------------------------------------------------------------------------------------------------------|
+| --------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
 | date_time       | DateTime | Date and time on the alarm system                                                                                                  |
 | troubles        | Switch   | Active when the system has troubles (trouble LED is blinking on a panel)                                                           |
 | troubles_memory | Switch   | Memorized state of system troubles                                                                                                 |
@@ -256,7 +255,7 @@ Thing atd-100 KitchenTemp [ id=10, refresh=30 ]
 These channels and the thing will be removed in the future release of the binding. Please use `readEvent` rule action instead.
 
 | Name        | Type     | Description                                                                            |
-|-------------|----------|----------------------------------------------------------------------------------------|
+| ----------- | -------- | -------------------------------------------------------------------------------------- |
 | index       | Number   | Index of the current record in the event log. Send '-1' to get most recent record.     |
 | prev_index  | Number   | Index of the previous record in the event log. Use this value to iterate over the log. |
 | timestamp   | DateTime | Date and time when the event happened.                                                 |
@@ -266,7 +265,7 @@ These channels and the thing will be removed in the future release of the bindin
 ### atd-100
 
 | Name          | Type               | Description                                               |
-|---------------|--------------------|-----------------------------------------------------------|
+| ------------- | ------------------ | --------------------------------------------------------- |
 | temperature   | Number:Temperature | Current temperature in the zone                           |
 | device_lobatt | Switch             | Indicates low battery level in the wireless device        |
 | device_nocomm | Switch             | Indicates communication troubles with the wireless device |
@@ -275,11 +274,11 @@ These channels and the thing will be removed in the future release of the bindin
 
 ### readEvent
 
-This action allows you to read one record from the event log placed at index given by input parameter. 
+This action allows you to read one record from the event log placed at index given by input parameter.
 The result of this action is compatible with channels of `event-log` thing and contains following values:
 
 | Name        | Type          | Description                                                                            |
-|-------------|---------------|----------------------------------------------------------------------------------------|
+| ----------- | ------------- | -------------------------------------------------------------------------------------- |
 | index       | Number        | Index of this record in the event log.                                                 |
 | prev_index  | Number        | Index of the previous record in the event log. Use this value to iterate over the log. |
 | timestamp   | ZonedDateTime | Date and time when the event happened.                                                 |
@@ -288,10 +287,10 @@ The result of this action is compatible with channels of `event-log` thing and c
 
 Usage:
 
-```
-    val actions = getActions("satel", "satel:event-log:home:EventLog")
-    val eventRec = actions.readEvent(-1)
-    logInfo("EventLog", eventRec.get("description"))
+```java
+val actions = getActions("satel", "satel:event-log:home:EventLog")
+val eventRec = actions.readEvent(-1)
+logInfo("EventLog", eventRec.get("description"))
 ```
 
 **NOTE:** To have this action available, you must have `event-log` thing configured in openHAB.
@@ -300,7 +299,7 @@ Usage:
 
 ### satel.things
 
-```
+```java
 Bridge satel:ethm-1:home [ host="192.168.0.2", refresh=1000, userCode="1234", encryptionKey="abcdefgh" ] {
     Thing partition MainPartition [ id=1 ]
     Thing zone LivingRoomPIR [ id=1 ]
@@ -317,7 +316,7 @@ Bridge satel:ethm-1:home [ host="192.168.0.2", refresh=1000, userCode="1234", en
 
 ### satel.items
 
-```
+```java
 Group Satel
 Group:Switch:OR(ON,OFF) Alarms "Alarms [(%d)]" <siren>
 Switch PARTITION_ARMED "Partition armed" (Satel) { channel="satel:partition:home:MainPartition:armed" }
@@ -340,7 +339,7 @@ Switch KITCHEN_TEMP_NOCOMM "Kitchen sensor: no communication" (Satel) { channel=
 
 ### satel.sitemap
 
-```
+```perl
 Frame label="Alarm system" {
     Switch item=Alarms mappings=[OFF="Clear"]
     Switch item=PARTITION_ARMED mappings=[ON="Arm", OFF="Disarm"]
@@ -371,7 +370,7 @@ Frame label="Alarm system" {
 
 ### satel.rules
 
-```
+```java
 var String userCode = ""
 var Timer keypadTimer = null
 var Timer userCodeTimer = null
@@ -441,7 +440,7 @@ end
 
 ### binary items
 
-In openHAB all channels have strict types, which means you cannot use other type then designated for a channel. 
+In openHAB all channels have strict types, which means you cannot use other type then designated for a channel.
 In Satel binding all binary items are now of 'Switch' type. Using other item types, like 'Contact' is not possible in this version of the binding.
 For this reason, when migrating 1.x item files, besides changing binding configuration for each item, you must replace all 'Contact' items to 'Switch' type.
 
@@ -452,7 +451,7 @@ You can easily replace them with the following configuration:
 
 #### satel.items
 
-```
+```java
 Switch MODULE_CONNECTED "Connection status" <network> (Satel)
 DateTime MODULE_CONNECTED_SINCE "Connection established at [%1$tF %1$tR]" <time> (Satel)
 Number MODULE_CONNECTION_ERRORS "Connection errors [%d]" (Satel)
@@ -460,7 +459,7 @@ Number MODULE_CONNECTION_ERRORS "Connection errors [%d]" (Satel)
 
 #### satel.rules
 
-```
+```java
 rule "Satel bridge changed to ONLINE"
 when
     Thing "satel:ethm-1:home" changed to ONLINE
@@ -502,4 +501,4 @@ You can find such keypad in the [Full Example](#full-example) section.
 
 ## Media
 
-* [Arming and clearing troubles](https://www.youtube.com/watch?v=ogdgn0Dk1G8)
+- [Arming and clearing troubles](https://www.youtube.com/watch?v=ogdgn0Dk1G8)
index 2bc2b5c23b05c6bdba03e9743b80d0d774e490b7..1d9ed550ff1582dc5acabaa28ded96a98c97efa8 100644 (file)
@@ -1,14 +1,14 @@
 # SEMSPortal Binding
 
-This binding can help you include statistics of your SEMS / GoodWe solar panel installation into openHAB. 
-It is a read-only connection that maps collected parameters to openHAB channels. 
-It provides current, day, month and total yields, as well as some income statistics if you have configured these in the SEMS portal. 
+This binding can help you include statistics of your SEMS / GoodWe solar panel installation into openHAB.
+It is a read-only connection that maps collected parameters to openHAB channels.
+It provides current, day, month and total yields, as well as some income statistics if you have configured these in the SEMS portal.
 It requires a power station that is connected through the internet to the SEMS portal.
 
 ## Supported Things
 
 This binding provides two Thing types: a bridge to the SEMS Portal, and the Power Stations which are found at the Portal.
-The Portal (``semsportal:portal``) represents your account in the SEMS portal. 
+The Portal (``semsportal:portal``) represents your account in the SEMS portal.
 The Power Station (``semsportal:station``) is an installation of a Power Station or inverter that reports to the SEMS portal and is available to your account.
 
 ## Discovery
@@ -20,20 +20,20 @@ The discovered Power Stations will appear as new Things.
 
 ## Thing Configuration
 
-The configuration of the Portal Thing (Bridge) is pretty straight forward. 
-You need to have your power station set up in the SEMS portal, and you need to have an account that is allowed to view the power station data. 
-You should log in at least once in the portal with this account to activate it. 
-The Portal needs the username and password to connect and retrieve the data. 
-You can configure the update frequency between 1 and 60 minutes. 
+The configuration of the Portal Thing (Bridge) is pretty straight forward.
+You need to have your power station set up in the SEMS portal, and you need to have an account that is allowed to view the power station data.
+You should log in at least once in the portal with this account to activate it.
+The Portal needs the username and password to connect and retrieve the data.
+You can configure the update frequency between 1 and 60 minutes.
 The default is 5 minutes.
 
 Power Stations have no settings and will be auto discovered when you add a Portal Bridge.
 
 If you prefer manual configuration of things in thing files, you need to supply the power station UUID.
-It can be found in the SEMS portal URL after you have logged in. 
+It can be found in the SEMS portal URL after you have logged in.
 The URL will look like this:
 
-```
+```text
 https://www.semsportal.com/PowerStation/PowerStatusSnMin/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
 ```
 
@@ -41,7 +41,7 @@ Where the part after the last / character is the UUID to be used.
 
 Example portal configuration with a station:
 
-```
+```java
 Bridge semsportal:portal:myPortal [ username="my@username.com", password="MyPassword" ] {
     station solarPanels "Solar Panels" [ stationUUID="xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ]
 }
@@ -52,34 +52,33 @@ Bridge semsportal:portal:myPortal [ username="my@username.com", password="MyPass
 The Portal(Bridge) has no channels.
 The Power Station Thing has the following channels:
 
-| channel       | type             | description                                                                                                |
-| ------------- | ---------------- | ---------------------------------------------------------------------------------------------------------- |
-| lastUpdate    | DateTime         | Last time the powerStation sent information to the portal                                                  |
-| currentOutput | Number:Power     | The current output of the powerStation in Watt                                                             |
-| todayTotal    | Number:Energy    | Todays total generation of the station in kWh                                                              |
-| monthTotal    | Number:Energy    | This month's total generation of the station in kWh                                                        |
-| overallTotal  | Number:Energy    | The total generation of the station since installation, in kWh                                             |
-| todayIncome   | Number           | Todays income as reported by the portal, if you have configured the power rates of your energy provider    |
-| totalIncome   | Number           | The total income as reported by the portal, if you have configured the power rates of your energy provider |
+| channel       | type          | description                                                                                                |
+| ------------- | ------------- | ---------------------------------------------------------------------------------------------------------- |
+| lastUpdate    | DateTime      | Last time the powerStation sent information to the portal                                                  |
+| currentOutput | Number:Power  | The current output of the powerStation in Watt                                                             |
+| todayTotal    | Number:Energy | Todays total generation of the station in kWh                                                              |
+| monthTotal    | Number:Energy | This month's total generation of the station in kWh                                                        |
+| overallTotal  | Number:Energy | The total generation of the station since installation, in kWh                                             |
+| todayIncome   | Number        | Todays income as reported by the portal, if you have configured the power rates of your energy provider    |
+| totalIncome   | Number        | The total income as reported by the portal, if you have configured the power rates of your energy provider |
 
 ## Parameters
 
 The Power Station Thing has no configuration parameters when auto discovered.
 When using thing files you need to provide the station UUID.
 
-
-| Parameter   | Required? | Description                                                                                                |
-| ----------- |:---------:| ---------------------------------------------------------------------------------------------------------- |
-| stationUUID | X         | UUID of the station. Can be found on the SEMS portal URL (see description above)                           |
+| Parameter   | Required? | Description                                                                      |
+| ----------- | :-------: | -------------------------------------------------------------------------------- |
+| stationUUID |     X     | UUID of the station. Can be found on the SEMS portal URL (see description above) |
 
 The Bridge has the following configuration parameters:
 
-| Parameter   | Required? | Description                                                                                                |
-| ----------- |:---------:| ---------------------------------------------------------------------------------------------------------- |
-| username    | X         | Account name (email address) at the SEMS portal. Account must have been used at least once to log in.      |
-| password    | X         | Password of the SEMS portal                                                                                |
-| interval    |           | Number of minutes between two updates. Between 1 and 60 minutes, defaults to 5 minutes                     |
+| Parameter | Required? | Description                                                                                           |
+| --------- | :-------: | ----------------------------------------------------------------------------------------------------- |
+| username  |     X     | Account name (email address) at the SEMS portal. Account must have been used at least once to log in. |
+| password  |     X     | Password of the SEMS portal                                                                           |
+| interval  |           | Number of minutes between two updates. Between 1 and 60 minutes, defaults to 5 minutes                |
 
 ## Credits
 
-This binding has been created using the information provided by RogerG007 in this forum topic: https://community.openhab.org/t/connecting-goodwe-solar-panel-inverter-to-openhab/85480
+This binding has been created using the information provided by RogerG007 in this forum topic: <https://community.openhab.org/t/connecting-goodwe-solar-panel-inverter-to-openhab/85480>
index 9e8075fbac276c908b000b02cf64961af6c61070..22fad8764cfac38bfde75f75d5520464c979bd0d 100644 (file)
@@ -9,21 +9,21 @@ Examples: Lights, pool filters, wash machines, ...
 
 ## Supported Things
 
-| Thing type id        | Name                                          |
-|----------------------|-----------------------------------------------|
-| senechome            | Senec Home Lithium Battery, V2.0, V2.1, V3 and V3duo |
+| Thing type id | Name                                                 |
+| ------------- | ---------------------------------------------------- |
+| senechome     | Senec Home Lithium Battery, V2.0, V2.1, V3 and V3duo |
 
-**Note:** Not all channels are available for all Senec Home types. E.g. 
+**Note:** Not all channels are available for all Senec Home types. E.g.
 
-* only V3, V3duo have a power generator and thus MPPs (V3 has 2 MPP, V3duo has 3 MPP)
-* not equipped battery packs will return 0 for all ...Pack channels
-* currently channels for the first wallbox are implemented (senec could handle 4 wallboxes)
+- only V3, V3duo have a power generator and thus MPPs (V3 has 2 MPP, V3duo has 3 MPP)
+- not equipped battery packs will return 0 for all ...Pack channels
+- currently channels for the first wallbox are implemented (senec could handle 4 wallboxes)
 
 ## Thing Configuration
 
 demo.things
 
-```
+```java
 Thing senechome:senechome:pvbattery [ hostname="192.168.0.128", refreshInterval=60, limitationTresholdValue=70, limitationDuration=60 ]
 ```
 
@@ -35,90 +35,90 @@ The property `limitationTresholdValue` is used as threshold for channel `powerLi
 
 ## Channels
 
-| Channel               | Type      | Description                                                              |
-|-----------------------|-----------|--------------------------------------------------------------------------|
-| powerLimitation       | percent   | How much is your pv generator limited (0% if not limited anyway)         |
-| powerLimitationState  | ON/OFF    | Power limitation active (based on configuration)                         |
-| currentMPP1           | ampere    | PV generator current on MPP1                                             |
-| currentMPP2           | ampere    | PV generator current on MPP2                                             |
-| currentMPP3           | ampere    | PV generator current on MPP3                                             |
-| powerMPP1             | watt      | PV generator power on MPP1                                               |
-| powerMPP2             | watt      | PV generator power on MPP2                                               |
-| powerMPP3             | watt      | PV generator power on MPP3                                               |
-| voltageMPP1           | volt      | PV generator voltage on MPP1                                             |
-| voltageMPP2           | volt      | PV generator voltage on MPP2                                             |
-| voltageMPP3           | volt      | PV generator voltage on MPP3                                             |
-| houseConsumption      | watt      | Current power consumption of your house/living                           |
-| energyProduction      | watt      | Energy generated by your pv / inverter                                   |
-| batteryPower          | watt      | Energy processed by battery negative discharge, positive charge          |
-| batteryCurrent        | ampere    | Battery current negative discharge, positive charge                      |
-| batteryVoltage        | volt      | Battery Voltage                                                          |
-| batteryFuelCharge     | percent   | Fuel charge of your battery (0 - 100%)                                   |
-| systemState           |           | Text describing current action of the senec home system (e.g. CHARGE)    |
-| systemStateValue      |           | Value describing current action of the senec home system (e.g. 14)       |
-| gridPower             | watt      | Grid power level, negative for supply, positive values for drawing power |
-| gridPowerDraw         | watt      | Absolute power level of power draw, zero while supplying                 |
-| gridPowerSupply       | watt      | Absolute power level of power supply, zero while drawing                 |
-| gridPowerPhase1       | watt      | Grid power level on Phase 1, negative for supply, positive for drawing   |
-| gridPowerPhase2       | watt      | Grid power level on Phase 2, negative for supply, positive for drawing   |
-| gridPowerPhase3       | watt      | Grid power level on Phase 3, negative for supply, positive for drawing   |
-| gridCurrentPhase1     | ampere    | Grid current on Phase 1, always a positive number                        |
-| gridCurrentPhase2     | ampere    | Grid current on Phase 2, always a positive number                        |
-| gridCurrentPhase3     | ampere    | Grid current on Phase 3, always a positive number                        |
-| gridVoltagePhase1     | volt      | Grid voltage on Phase 1                                                  |
-| gridVoltagePhase2     | volt      | Grid voltage on Phase 2                                                  |
-| gridVoltagePhase3     | volt      | Grid voltage on Phase 3                                                  |
-| gridFrequency         | hertz     | Grid frequency                                                           |
-| liveBatCharge         | kilo watt hour | Live Total Bat Charge                                               |
-| liveBatDischarge      | kilo watt hour | Live Total Bat Discharge                                            |
-| liveGridImport        | kilo watt hour | Live Total Grid Import                                              |
-| liveGridExport        | kilo watt hour | Live Total Grid Export                                              |
-| liveHouseConsumption  | kilo watt hour | Live Total House Consumption (without WB)                           |
-| livePowerGenerator    | kilo watt hour | Live Total PV generator generated energy                            |
-| liveEnergyWallbox1    | kilo watt hour | Live Total Wallbox 1 charged energy                                 |
-| chargedEnergyPack1    | kilo watt hour | total charged energy battery pack 1                                 |
-| chargedEnergyPack2    | kilo watt hour | total charged energy battery pack 2                                 |
-| chargedEnergyPack3    | kilo watt hour | total charged energy battery pack 3                                 |
-| chargedEnergyPack4    | kilo watt hour | total charged energy battery pack 4                                 |
-| dischargedEnergyPack1 | kilo watt hour | total discharged energy battery pack 1                              |
-| dischargedEnergyPack2 | kilo watt hour | total discharged energy battery pack 2                              |
-| dischargedEnergyPack3 | kilo watt hour | total discharged energy battery pack 3                              |
-| dischargedEnergyPack4 | kilo watt hour | total discharged energy battery pack 4                              |
-| cyclesPack1           |           | battery charge/discharge cycles pack 1                                   |
-| cyclesPack2           |           | battery charge/discharge cycles pack 2                                   |
-| cyclesPack3           |           | battery charge/discharge cycles pack 3                                   |
-| cyclesPack4           |           | battery charge/discharge cycles pack 4                                   |
-| currentPack1          | ampere    | battery current pack 1                                                   |
-| currentPack2          | ampere    | battery current pack 2                                                   |
-| currentPack3          | ampere    | battery current pack 3                                                   |
-| currentPack4          | ampere    | battery current pack 4                                                   |
-| voltagePack1          | volt      | battery voltage pack 1                                                   |
-| voltagePack2          | volt      | battery voltage pack 2                                                   |
-| voltagePack3          | volt      | battery voltage pack 3                                                   |
-| voltagePack4          | volt      | battery voltage pack 4                                                   |
-| maxCellVoltagePack1   | volt      | maximum cell voltage battery pack 1                                      |
-| maxCellVoltagePack2   | volt      | maximum cell voltage battery pack 2                                      |
-| maxCellVoltagePack3   | volt      | maximum cell voltage battery pack 3                                      |
-| maxCellVoltagePack4   | volt      | maximum cell voltage battery pack 4                                      |
-| minCellVoltagePack1   | volt      | minimum cell voltage battery pack 1                                      |
-| minCellVoltagePack2   | volt      | minimum cell voltage battery pack 2                                      |
-| minCellVoltagePack3   | volt      | minimum cell voltage battery pack 3                                      |
-| minCellVoltagePack4   | volt      | minimum cell voltage battery pack 4                                      |
-| batteryTemperature    | celsius   | battery temperature (maximum of all battery packs)                       |
-| caseTemperature       | celsius   | case temperature                                                         |
-| mcuTemperature        | celsius   | MCU (main control unit) temperature                                      |
-| wallbox1State         |           | Wallbox 1 state as Text (e.g. Charging)                                  |
-| wallbox1StateValue    |           | Wallbox 1 state as value (e.g. 194)                                      |
-| wallbox1ChargingCurrentPhase1 | ampere | Wallbox 1 charging current Phase 1                                  |
-| wallbox1ChargingCurrentPhase2 | ampere | Wallbox 1 charging current Phase 2                                  |
-| wallbox1ChargingCurrentPhase3 | ampere | Wallbox 1 charging current Phase 3                                  |
-| wallbox1ChargingPower         | watt   | Wallbox 1 charging power                                            |
+| Channel                       | Type           | Description                                                              |
+| ----------------------------- | -------------- | ------------------------------------------------------------------------ |
+| powerLimitation               | percent        | How much is your pv generator limited (0% if not limited anyway)         |
+| powerLimitationState          | ON/OFF         | Power limitation active (based on configuration)                         |
+| currentMPP1                   | ampere         | PV generator current on MPP1                                             |
+| currentMPP2                   | ampere         | PV generator current on MPP2                                             |
+| currentMPP3                   | ampere         | PV generator current on MPP3                                             |
+| powerMPP1                     | watt           | PV generator power on MPP1                                               |
+| powerMPP2                     | watt           | PV generator power on MPP2                                               |
+| powerMPP3                     | watt           | PV generator power on MPP3                                               |
+| voltageMPP1                   | volt           | PV generator voltage on MPP1                                             |
+| voltageMPP2                   | volt           | PV generator voltage on MPP2                                             |
+| voltageMPP3                   | volt           | PV generator voltage on MPP3                                             |
+| houseConsumption              | watt           | Current power consumption of your house/living                           |
+| energyProduction              | watt           | Energy generated by your pv / inverter                                   |
+| batteryPower                  | watt           | Energy processed by battery negative discharge, positive charge          |
+| batteryCurrent                | ampere         | Battery current negative discharge, positive charge                      |
+| batteryVoltage                | volt           | Battery Voltage                                                          |
+| batteryFuelCharge             | percent        | Fuel charge of your battery (0 - 100%)                                   |
+| systemState                   |                | Text describing current action of the senec home system (e.g. CHARGE)    |
+| systemStateValue              |                | Value describing current action of the senec home system (e.g. 14)       |
+| gridPower                     | watt           | Grid power level, negative for supply, positive values for drawing power |
+| gridPowerDraw                 | watt           | Absolute power level of power draw, zero while supplying                 |
+| gridPowerSupply               | watt           | Absolute power level of power supply, zero while drawing                 |
+| gridPowerPhase1               | watt           | Grid power level on Phase 1, negative for supply, positive for drawing   |
+| gridPowerPhase2               | watt           | Grid power level on Phase 2, negative for supply, positive for drawing   |
+| gridPowerPhase3               | watt           | Grid power level on Phase 3, negative for supply, positive for drawing   |
+| gridCurrentPhase1             | ampere         | Grid current on Phase 1, always a positive number                        |
+| gridCurrentPhase2             | ampere         | Grid current on Phase 2, always a positive number                        |
+| gridCurrentPhase3             | ampere         | Grid current on Phase 3, always a positive number                        |
+| gridVoltagePhase1             | volt           | Grid voltage on Phase 1                                                  |
+| gridVoltagePhase2             | volt           | Grid voltage on Phase 2                                                  |
+| gridVoltagePhase3             | volt           | Grid voltage on Phase 3                                                  |
+| gridFrequency                 | hertz          | Grid frequency                                                           |
+| liveBatCharge                 | kilo watt hour | Live Total Bat Charge                                                    |
+| liveBatDischarge              | kilo watt hour | Live Total Bat Discharge                                                 |
+| liveGridImport                | kilo watt hour | Live Total Grid Import                                                   |
+| liveGridExport                | kilo watt hour | Live Total Grid Export                                                   |
+| liveHouseConsumption          | kilo watt hour | Live Total House Consumption (without WB)                                |
+| livePowerGenerator            | kilo watt hour | Live Total PV generator generated energy                                 |
+| liveEnergyWallbox1            | kilo watt hour | Live Total Wallbox 1 charged energy                                      |
+| chargedEnergyPack1            | kilo watt hour | total charged energy battery pack 1                                      |
+| chargedEnergyPack2            | kilo watt hour | total charged energy battery pack 2                                      |
+| chargedEnergyPack3            | kilo watt hour | total charged energy battery pack 3                                      |
+| chargedEnergyPack4            | kilo watt hour | total charged energy battery pack 4                                      |
+| dischargedEnergyPack1         | kilo watt hour | total discharged energy battery pack 1                                   |
+| dischargedEnergyPack2         | kilo watt hour | total discharged energy battery pack 2                                   |
+| dischargedEnergyPack3         | kilo watt hour | total discharged energy battery pack 3                                   |
+| dischargedEnergyPack4         | kilo watt hour | total discharged energy battery pack 4                                   |
+| cyclesPack1                   |                | battery charge/discharge cycles pack 1                                   |
+| cyclesPack2                   |                | battery charge/discharge cycles pack 2                                   |
+| cyclesPack3                   |                | battery charge/discharge cycles pack 3                                   |
+| cyclesPack4                   |                | battery charge/discharge cycles pack 4                                   |
+| currentPack1                  | ampere         | battery current pack 1                                                   |
+| currentPack2                  | ampere         | battery current pack 2                                                   |
+| currentPack3                  | ampere         | battery current pack 3                                                   |
+| currentPack4                  | ampere         | battery current pack 4                                                   |
+| voltagePack1                  | volt           | battery voltage pack 1                                                   |
+| voltagePack2                  | volt           | battery voltage pack 2                                                   |
+| voltagePack3                  | volt           | battery voltage pack 3                                                   |
+| voltagePack4                  | volt           | battery voltage pack 4                                                   |
+| maxCellVoltagePack1           | volt           | maximum cell voltage battery pack 1                                      |
+| maxCellVoltagePack2           | volt           | maximum cell voltage battery pack 2                                      |
+| maxCellVoltagePack3           | volt           | maximum cell voltage battery pack 3                                      |
+| maxCellVoltagePack4           | volt           | maximum cell voltage battery pack 4                                      |
+| minCellVoltagePack1           | volt           | minimum cell voltage battery pack 1                                      |
+| minCellVoltagePack2           | volt           | minimum cell voltage battery pack 2                                      |
+| minCellVoltagePack3           | volt           | minimum cell voltage battery pack 3                                      |
+| minCellVoltagePack4           | volt           | minimum cell voltage battery pack 4                                      |
+| batteryTemperature            | celsius        | battery temperature (maximum of all battery packs)                       |
+| caseTemperature               | celsius        | case temperature                                                         |
+| mcuTemperature                | celsius        | MCU (main control unit) temperature                                      |
+| wallbox1State                 |                | Wallbox 1 state as Text (e.g. Charging)                                  |
+| wallbox1StateValue            |                | Wallbox 1 state as value (e.g. 194)                                      |
+| wallbox1ChargingCurrentPhase1 | ampere         | Wallbox 1 charging current Phase 1                                       |
+| wallbox1ChargingCurrentPhase2 | ampere         | Wallbox 1 charging current Phase 2                                       |
+| wallbox1ChargingCurrentPhase3 | ampere         | Wallbox 1 charging current Phase 3                                       |
+| wallbox1ChargingPower         | watt           | Wallbox 1 charging power                                                 |
 
 ## Items
 
 Sample:
 
-```
+```java
 Number SenecPowerLimitation      "pv generator limit [%d %%]"                <heating> { channel="senechome:senechome:pvbattery:powerLimitation" }
 Switch SenecPowerLimitationState "Power limitation active"                    <switch> { channel="senechome:senechome:pvbattery:powerLimitationState" }
 Number SenecHouseConsumption     "Current power consumption [%d W]"           <energy> { channel="senechome:senechome:pvbattery:houseConsumption" }
@@ -151,7 +151,7 @@ Number SenecLiveGridExport       "Live Grid Export [%d kWh]"                  <e
 
 Sample:
 
-```
+```perl
 Text label="Power Grid"{
     Frame label="Photovoltaik" {
         Default item=SenecPowerLimitation
index 278d0ee483911b9a7b4ccb91eb4b2ca8e78322db..1cbbc09863a6146b066d55d770e9758654dc2fb3 100644 (file)
@@ -5,14 +5,14 @@ This binding integrates the [Seneye aquarium monitoring system](https://www.sene
 ## Introduction
 
 The seneye monitor monitors what is happening inside your aquarium to ensure that the aquatic life remains healthy.
-The monitor allows you to continuously track the changes in the water parameters, alerting you to the problems before they affect the fish. 
+The monitor allows you to continuously track the changes in the water parameters, alerting you to the problems before they affect the fish.
 
 At least one Seneye monitor is required ([Home / pond or reef](https://www.seneye.com/devices/compare)) and the measure results must be synced to the seneye cloud by using a seneye web server (see [shop](https://www.seneye.com/store), there is one for wifi and one for a wired network)
 Each monitor is represented by one seneye thing.
 
 ## Supported Things
 
-This binding provides one thing type: 'seneye'. 
+This binding provides one thing type: 'seneye'.
 You can have multiple seneye devices in your home, just make sure that your aquarium_name is properly set for each seneye thing.
 
 ## Discovery
@@ -23,46 +23,46 @@ Discovery is not supported, the seneye monitor must be configured manually.
 
 The following settings must be configured in order to make your seneye binding work:
 
-| Setting              |                                                                                 |
-|----------------------|---------------------------------------------------------------------------------|
-| aquarium_name        | The name of the aquarium, as specified in [seneye.me](https://www.seneye.me/).  |
-|                      | Useful to distinguish multiple seneye installations.                            |
-| username             | Your login name for [seneye.me](https://www.seneye.me/)                         |
-| password             | Your password for [seneye.me](https://www.seneye.me/)                           |
-| poll_time            | How often (in minutes) should the seneye account be checked.                    |
+| Setting       |                                                                                |
+| ------------- | ------------------------------------------------------------------------------ |
+| aquarium_name | The name of the aquarium, as specified in [seneye.me](https://www.seneye.me/). |
+|               | Useful to distinguish multiple seneye installations.                           |
+| username      | Your login name for [seneye.me](https://www.seneye.me/)                        |
+| password      | Your password for [seneye.me](https://www.seneye.me/)                          |
+| poll_time     | How often (in minutes) should the seneye account be checked.                   |
 
 ## Channels
 
 The following channels are supported:
 
-| Channel Type ID         | Item Type    | Description                                                      |
-|-------------------------|--------------|------------------------------------------------------------------|
-| temperature             | String       | The water temperature                                            |
-| ph                      | String       | The PH level of the water                                        |
-| nh3                     | String       | The level of Ammonia (NH3) in the water                          |
-| nh4                     | String       | The level of Ammonium (NH4) in the water                         |
-| O2                      | String       | The level of oxygene in the water                                |
-| lux                     | String       | The lux level of your aquarium lightning, if available           |
-| par                     | String       | The par level of your aquarium lightning, if available           |
-| kelvin                  | String       | The kelvin level of your aquarium lightning, if available        |
-| lastreading             | DateTime     | The moment when the last readings are received from the monitor  |
-| slideexpires            | DateTime     | The moment when the current slide will expire                    |
-| wrongslide              | String       | The Slide is not valid (normally expired)                        | 
-| slideserial             | String       | The serial number of the Slide                                   | 
-| outofwater              | String       | The Slide is reporting being out of the water                    | 
-| disconnected            | String       | The Seneye has not uploaded any updates recently                 | 
+| Channel Type ID | Item Type | Description                                                     |
+| --------------- | --------- | --------------------------------------------------------------- |
+| temperature     | String    | The water temperature                                           |
+| ph              | String    | The PH level of the water                                       |
+| nh3             | String    | The level of Ammonia (NH3) in the water                         |
+| nh4             | String    | The level of Ammonium (NH4) in the water                        |
+| O2              | String    | The level of oxygene in the water                               |
+| lux             | String    | The lux level of your aquarium lightning, if available          |
+| par             | String    | The par level of your aquarium lightning, if available          |
+| kelvin          | String    | The kelvin level of your aquarium lightning, if available       |
+| lastreading     | DateTime  | The moment when the last readings are received from the monitor |
+| slideexpires    | DateTime  | The moment when the current slide will expire                   |
+| wrongslide      | String    | The Slide is not valid (normally expired)                       |
+| slideserial     | String    | The serial number of the Slide                                  |
+| outofwater      | String    | The Slide is reporting being out of the water                   |
+| disconnected    | String    | The Seneye has not uploaded any updates recently                |
 
 ## Full example
 
 A manual configuration through a `things/seneye.things` file could look like this:
 
-```
+```java
 Thing seneye:monitor:mySeneye "Seneye" @ "Living Room" [aquarium_name="MyAquarium", username="mail@example.com", password="xxx", poll_time=5]
 ```
 
 A manual configuration through a `demo.items` file could look like this:
 
-```
+```java
 String mySeneye_Temperature  "Temp [%s] C"        { channel="seneye:monitor:mySeneye:temperature" }
 String mySeneye_PH           "PH [%s]"            { channel="seneye:monitor:mySeneye:ph" }
 String mySeneye_NH3          "NH3 [%s]"           { channel="seneye:monitor:mySeneye:nh3" }
@@ -70,7 +70,7 @@ String mySeneye_NH3          "NH3 [%s]"           { channel="seneye:monitor:mySe
 
 The sitemap could look like this:
 
-```
+```perl
 sitemap home label="My home" {
     Frame label="Aquarium" {
         Text item=mySeneye_Temperature label="Temperature [%.1f °C]" icon="temperature"
index 7c53fd0c867ba5384aa260dfeffd50f97f83d2fb..03fdb543eeb2f2fc8bf323be11d61e3b8ae107fe 100644 (file)
@@ -28,7 +28,7 @@ The binding has no configuration options itself, all configuration is done at 'T
 The senseBox thing requires the box Id (which can be obtained on the map) and an interval in seconds for the API polling.
 The senseBox support team wrote in an email that polling even every five minutes is still o.k., therefore the minimum is hardcoded to be 300 seconds.
 
-```
+```java
 Thing sensebox:box:home [ senseBoxId = "foothesmurfingbar", refreshInterval = 600 ]
 ```
 
@@ -38,7 +38,7 @@ In the table is shown more detailed information about each Channel type.
 The binding introduces the following channels:
 
 | Channel ID                                      | Channel Description                                         | Supported item type  | Advanced |
-|-------------------------------------------------|-------------------------------------------------------------|----------------------|----------|
+| ----------------------------------------------- | ----------------------------------------------------------- | -------------------- | -------- |
 | descriptors#location                            | Location of the box                                         | Point                | False    |
 | measurements#uvIntensity                        | Intensity of Ultraviolet radiation                          | Number:Intensity     | False    |
 | measurements#illuminance                        | Illuminance                                                 | Number:Illuminance   | False    |
@@ -64,13 +64,13 @@ This is to show an example of using Units of Measurements to display data withou
 
 sensebox.things:
 
-```
+```java
 Thing sensebox:box:davos [ senseBoxId = "5b94a2c97c51910019097f14", refreshInterval = 900 ]
 ```
 
 sensebox.items:
 
-```
+```java
 Location             Davos_Location      "Davos Location"                                       { channel = "sensebox:box:davos:descriptors#location" }
 
 Number:Intensity     Davos_UVIntensity   "Davos UvIntensity [%.2f %unit%]"      <light>         { channel = "sensebox:box:davos:measurements#uvIntensity" }
@@ -84,7 +84,7 @@ Number:Density       Davos_PM10          "Davos PM10 [%.2f %unit%]"
 
 sensebox.sitemap:
 
-```
+```perl
 sitemap sensebox label="SenseBox Davos" {
     Text item=Davos_Temperature
     Text item=Davos_Pressure
@@ -99,9 +99,9 @@ sitemap sensebox label="SenseBox Davos" {
 
 ## senseBox API
 
-*   <https://docs.opensensemap.org/>
-*   <https://docs.opensensemap.org/#api-Boxes-findBox>
-*   <https://docs.opensensemap.org/#api-Measurements-getMeasurements>
+- <https://docs.opensensemap.org/>
+- <https://docs.opensensemap.org/#api-Boxes-findBox>
+- <https://docs.opensensemap.org/#api-Measurements-getMeasurements>
 
-*   <https://api.opensensemap.org/boxes/:boxId>
-*   <https://api.opensensemap.org/boxes/:senseBoxId/sensors>
+- <https://api.opensensemap.org/boxes/:boxId>
+- <https://api.opensensemap.org/boxes/:senseBoxId/sensors>
index 26daa2104ea7dbe878f4550b5e56ff709de39cc7..366de79da2c1a7a2c18594814bc2b07f6d568d72 100644 (file)
@@ -1,19 +1,19 @@
 # Sensibo Binding
 
-This binding integrates the Sensibo Sky aircondition remote control 
-See https://www.sensibo.com/
+This binding integrates the Sensibo Sky aircondition remote control
+See <https://www.sensibo.com/>
 
 ## Supported Things
 
 This binding supports Sensibo Sky only.
 
-* `account` = Sensibo API - the account bridge
-* `sensibosky` = Sensibo Sky remote control
+- `account` = Sensibo API - the account bridge
+- `sensibosky` = Sensibo Sky remote control
 
 ## Discovery
 
-In order to do discovery, add a thing of type Sensibo API and add the API key. 
-API key can be obtained here: https://home.sensibo.com/me/api
+In order to do discovery, add a thing of type Sensibo API and add the API key.
+API key can be obtained here: <https://home.sensibo.com/me/api>
 
 ## Thing Configuration
 
@@ -21,12 +21,12 @@ See full example below for how to configure using thing files.
 
 ### Account
 
-* `apiKey` = API key obtained here: https://home.sensibo.com/me/api
-* `refreshInterval` = number of seconds between refresh calls to the server
+- `apiKey` = API key obtained here: <https://home.sensibo.com/me/api>
+- `refreshInterval` = number of seconds between refresh calls to the server
 
 ### Sensibo Sky
 
-* `macAddress` = network mac address of device.
+- `macAddress` = network mac address of device.
 
 Can be found printed on the back of the device
 Or you can find it during discovery.
@@ -35,22 +35,22 @@ Or you can find it during discovery.
 
 ### Sensibo Sky
 
-| Channel             | Read/write    | Item type             | Description |
-| ------------------- | ------------- | --------------------- | ----------- |
-| currentTemperature  | R             | Number:Temperature    | Measured temperature  |
-| currentHumidity     | R             | Number:Dimensionless  | Measured relative humidity, reported in percent |
-| targetTemperature   | R/W           | Number:Temperature    | Current target temperature for this room |
-| masterSwitch        | R/W           | Switch                | Switch AC ON or OFF |
-| mode                | R/W           | String                | Current mode (cool, heat, etc, actual modes provided provided by the API) being active |
-| fanLevel            | R/W           | String                | Current fan level (low, auto etc, actual levels provided provided by the API |
-| swingMode           | R/W           | String                | Current swing mode (actual modes provided provided by the API |
-| timer               | R/W           | Number                | Number of seconds until AC is switched off automatically. Setting to a value less than 60 seconds will cancel timer |
+| Channel            | Read/write | Item type            | Description                                                                                                         |
+| ------------------ | ---------- | -------------------- | ------------------------------------------------------------------------------------------------------------------- |
+| currentTemperature | R          | Number:Temperature   | Measured temperature                                                                                                |
+| currentHumidity    | R          | Number:Dimensionless | Measured relative humidity, reported in percent                                                                     |
+| targetTemperature  | R/W        | Number:Temperature   | Current target temperature for this room                                                                            |
+| masterSwitch       | R/W        | Switch               | Switch AC ON or OFF                                                                                                 |
+| mode               | R/W        | String               | Current mode (cool, heat, etc, actual modes provided provided by the API) being active                              |
+| fanLevel           | R/W        | String               | Current fan level (low, auto etc, actual levels provided provided by the API                                        |
+| swingMode          | R/W        | String               | Current swing mode (actual modes provided provided by the API                                                       |
+| timer              | R/W        | Number               | Number of seconds until AC is switched off automatically. Setting to a value less than 60 seconds will cancel timer |
 
 ## Full Example
 
 sensibo.things:
 
-```
+```java
 Bridge sensibo:account:home "Sensibo account" [apiKey="XYZASDASDAD", refreshInterval=120] {
     Thing sensibosky office "Sensibo Sky Office" [ macAddress="001122334455" ]
 }
@@ -58,7 +58,7 @@ Bridge sensibo:account:home "Sensibo account" [apiKey="XYZASDASDAD", refreshInte
 
 sensibo.items:
 
-```
+```java
 Number:Temperature AC_Office_Room_Current_Temperature "Temperature [%.1f %unit%]" <temperature>  {channel="sensibo:sensibosky:home:office:currentTemperature"}
 Number:Dimensionless AC_Office_Room_Current_Humidity "Relative humidity [%.1f %%]" <humidity  >  {channel="sensibo:sensibosky:home:office:currentHumidity"}
 Number:Temperature AC_Office_Room_Target_Temperature "Target temperature [%d %unit%]" <temperature>  {channel="sensibo:sensibosky:home:office:targetTemperature"}
@@ -71,7 +71,7 @@ Number AC_Office_Heater_Timer "Timer seconds [%d]" <timer>  {channel="sensibo:se
 
 sitemap:
 
-```
+```perl
 Switch item=AC_Office_Heater_MasterSwitch
 Selection item=AC_Office_Room_Mode 
 Setpoint item=AC_Office_Room_Target_Temperature
@@ -80,4 +80,3 @@ Selection item=AC_Office_Room_Swing_Mode
 Text item=AC_Office_Room_Current_Temperature  
 Text item=AC_Office_Room_Current_Humidity
 ```
-
index dc37e8ffc83c236900dd8268fc8fb7cf2d0f9168..8eed5486d77456ac732ef906264c9762d810f230 100644 (file)
@@ -2,7 +2,7 @@
 
 The Serial binding allows openHAB to communicate over serial ports attached to the openHAB server.
 
-The binding allows data to be sent and received from a serial port. 
+The binding allows data to be sent and received from a serial port.
 The binding does not support any particular serial protocols and simply reads what is available and sends what is provided.
 
 The binding can be used to communicate with simple serial devices for which a dedicated openHAB binding does not exist.
@@ -15,25 +15,25 @@ The Serial binding represents a serial port as a bridge thing and data matching
 
 A Serial Bridge thing (`serialBridge`) represents a single serial port.
 
-The bridge supports a String channel which is set to the currently received data from the serial port. 
+The bridge supports a String channel which is set to the currently received data from the serial port.
 Sending a command to this channel sends the command as a string to the serial port.
 
-The bridge also supports a String channel which encodes the received data as the string representation of a RawType to handle data that is 
-not supported by the REST interface. 
+The bridge also supports a String channel which encodes the received data as the string representation of a RawType to handle data that is
+not supported by the REST interface.
 A command sent to this channel will only be sent to the serial port if it is encoded as the string representation of a RawType.
 
 A trigger channel is also provided which triggers when data is received.
 
 ### Serial Device
 
-A Serial Device thing (`serialDevice`) can be used to represent data matching a defined pattern as a device. 
-The serial port may be providing data for many different devices/sensors, such as a temperature sensor or a doorbell. 
-Usually such devices can be identified by performing a pattern match on the received data. 
+A Serial Device thing (`serialDevice`) can be used to represent data matching a defined pattern as a device.
+The serial port may be providing data for many different devices/sensors, such as a temperature sensor or a doorbell.
+Usually such devices can be identified by performing a pattern match on the received data.
 For example, a Serial Device could be configured to represent a temperature sensor.
 
-The thing will only update its channels if the received data matches the defined pattern. 
+The thing will only update its channels if the received data matches the defined pattern.
 
-The thing supports generic String and Number channels which can apply a transform on the received data to set the channel state. 
+The thing supports generic String and Number channels which can apply a transform on the received data to set the channel state.
 Commands sent to the channels can be formatted and transformed before being sent to the device.
 
 The thing also supports Switch and Rollershutter channels which provide simple mappings for the ON, OFF, UP, DOWN and STOP commands.
@@ -44,57 +44,55 @@ When using a Serial Device the expectation is that the received data for each de
 
 The configuration for the `serialBridge` consists of the following parameters:
 
-| Parameter           | Description                                                                                            |
-|---------------------|--------------------------------------------------------------------------------------------------------|
-| serialPort          | The serial port to use (e.g. Linux: /dev/ttyUSB0, Windows: COM1) (mandatory)                           |
-| baudRate            | Set the baud rate. Valid values: 4800, 9600, 19200, 38400, 57600, 115200 (default 9600)                |
-| dataBits            | Set the data bits. Valid values: 5, 6, 7, 8 (default 8)                                                |
-| parity              | Set the parity. Valid values: N(one), O(dd), E(even), M(ark), S(pace) (default N)                      |
-| stopBits            | Set the stop bits. Valid values: 1, 1.5, 2 (default 1)                                                 |
-| charset             | The charset to use for converting between bytes and string (e.g. UTF-8,ISO-8859-1)                     |
+| Parameter  | Description                                                                             |
+| ---------- | --------------------------------------------------------------------------------------- |
+| serialPort | The serial port to use (e.g. Linux: /dev/ttyUSB0, Windows: COM1) (mandatory)            |
+| baudRate   | Set the baud rate. Valid values: 4800, 9600, 19200, 38400, 57600, 115200 (default 9600) |
+| dataBits   | Set the data bits. Valid values: 5, 6, 7, 8 (default 8)                                 |
+| parity     | Set the parity. Valid values: N(one), O(dd), E(even), M(ark), S(pace) (default N)       |
+| stopBits   | Set the stop bits. Valid values: 1, 1.5, 2 (default 1)                                  |
+| charset    | The charset to use for converting between bytes and string (e.g. UTF-8,ISO-8859-1)      |
 
 The configuration for the `serialDevice` consists of the following parameters:
 
-| Parameter           | Description                                                                                            |
-|---------------------|--------------------------------------------------------------------------------------------------------|
-| patternMatch        | Regular expression used to identify device from received data (must match the whole line) (mandatory)  |
+| Parameter    | Description                                                                                           |
+| ------------ | ----------------------------------------------------------------------------------------------------- |
+| patternMatch | Regular expression used to identify device from received data (must match the whole line) (mandatory) |
 
 ## Channels
 
 The channels supported by the `serialBridge` are:
 
-| Channel  | Type             | Description                                                                                              |
-|----------|------------------|----------------------------------------------------------------------------------------------------------|
-| `string`   | String           | Channel for sending/receiving data as a string to/from the serial port. The channel will update its state to a StringType that is the data received from the serial port. A command sent to this channel will be sent out as data through the serial port. |
-| `binary`   | String           | Channel for sending/receiving data in Base64 format to/from the serial port. The channel will update its state to a StringType which is the string representation of a RawType that contains the data received from the serial port. A command sent to this channel must be encoded as the string representation of a RawType, e.g. `"data:application/octet-stream;base64,MjA7MDU7Q3Jlc3RhO0lEPTI4MDE7VEVNUD0yNTtIVU09NTU7QkFUPU9LOwo="` |
-| `data`     | system.rawbutton | Trigger which emits `PRESSED` events (no `RELEASED` events) whenever data is available on the serial port                                                                                                                                     |
-
+| Channel  | Type             | Description                                                                                                                                                                                                                                                                                                                                                                                                                               |
+| -------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `string` | String           | Channel for sending/receiving data as a string to/from the serial port. The channel will update its state to a StringType that is the data received from the serial port. A command sent to this channel will be sent out as data through the serial port.                                                                                                                                                                                |
+| `binary` | String           | Channel for sending/receiving data in Base64 format to/from the serial port. The channel will update its state to a StringType which is the string representation of a RawType that contains the data received from the serial port. A command sent to this channel must be encoded as the string representation of a RawType, e.g. `"data:application/octet-stream;base64,MjA7MDU7Q3Jlc3RhO0lEPTI4MDE7VEVNUD0yNTtIVU09NTU7QkFUPU9LOwo="` |
+| `data`   | system.rawbutton | Trigger which emits `PRESSED` events (no `RELEASED` events) whenever data is available on the serial port                                                                                                                                                                                                                                                                                                                                 |
 
 The channels supported by the `serialDevice` are:
 
-| Channel Type  | Type             | Description                                                                                              |
-|---------------|------------------|----------------------------------------------------------------------------------------------------------|
-| `string` | String | Channel for receiving string based commands. The channel can be configured to apply a transform on the received data to convert to the channel state. Commands received by the channel can be formatted and transformed before sending to the device. |
-| `number` | Number | Channel for receiving number based commands. The channel can be configured to apply a transform on the received data to convert to the channel state. Commands received by the channel can be formatted and transformed before sending to the device. |
-| `dimmer` | Dimmer | Channel for receiving commands from a Dimmer. The channel can be configured to apply a transform on the received data to convert to the channel state. The channel can be configured to apply a simple mapping for the ON, OFF, INCREASE and DECREASE commands. |
-| `switch` | Switch | Channel for receiving commands from a Switch. The channel can be configured to apply a transform on the received data to convert to the channel state. The channel can be configured to apply a simple mapping for the ON and OFF commands. |
-| `rollershutter` | Rollershutter | Channel for receiving commands from a Rollershutter. The channel can be configured to apply a transform on the received data to convert to the channel state. The channel can be configured to apply a simple mapping for the UP, DOWN and STOP commands. |
+| Channel Type    | Type          | Description                                                                                                                                                                                                                                                     |
+| --------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `string`        | String        | Channel for receiving string based commands. The channel can be configured to apply a transform on the received data to convert to the channel state. Commands received by the channel can be formatted and transformed before sending to the device.           |
+| `number`        | Number        | Channel for receiving number based commands. The channel can be configured to apply a transform on the received data to convert to the channel state. Commands received by the channel can be formatted and transformed before sending to the device.           |
+| `dimmer`        | Dimmer        | Channel for receiving commands from a Dimmer. The channel can be configured to apply a transform on the received data to convert to the channel state. The channel can be configured to apply a simple mapping for the ON, OFF, INCREASE and DECREASE commands. |
+| `switch`        | Switch        | Channel for receiving commands from a Switch. The channel can be configured to apply a transform on the received data to convert to the channel state. The channel can be configured to apply a simple mapping for the ON and OFF commands.                     |
+| `rollershutter` | Rollershutter | Channel for receiving commands from a Rollershutter. The channel can be configured to apply a transform on the received data to convert to the channel state. The channel can be configured to apply a simple mapping for the UP, DOWN and STOP commands.       |
 
 The configuration for the `serialBridge` channels consists of the following parameters:
 
-| Parameter        | Description                                                                            | Supported Channels |
-|------------------|----------------------------------------------------------------------------------------|--------------------|
-| `stateTransformation` | One or more transformation (concatenated with `∩`) used to convert device data to channel state, e.g. `REGEX:.*?STATE=(.*?);.*` | string, number, dimmer, switch, rollershutter |
-| `commandTransformation` | One or more transformation (concatenated with `∩`) used to convert command to device data, e.g. `JS:device.js` | string, number, dimmer, switch, rollershutter |
-| `commandFormat` | Format string applied to the command before transform, e.g. `ID=671;COMMAND=%s` | string, number, dimmer, rollershutter |
-| `onValue` | Send this value when receiving an ON command | switch, dimmer |
-| `offValue` | Send this value when receiving an OFF command | switch, dimmer |
-| `increaseValue` | Send this value when receiving an INCREASE command | dimmer |
-| `decreaseValue` | Send this value when receiving a DECREASE command | dimmer |
-| `upValue` | Send this value when receiving an UP command | rollershutter |
-| `downValue` | Send this value when receiving a DOWN command | rollershutter |
-| `stopValue` | Send this value when receiving a STOP command | rollershutter |
-
+| Parameter               | Description                                                                                                                     | Supported Channels                            |
+| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- |
+| `stateTransformation`   | One or more transformation (concatenated with `∩`) used to convert device data to channel state, e.g. `REGEX:.*?STATE=(.*?);.*` | string, number, dimmer, switch, rollershutter |
+| `commandTransformation` | One or more transformation (concatenated with `∩`) used to convert command to device data, e.g. `JS:device.js`                  | string, number, dimmer, switch, rollershutter |
+| `commandFormat`         | Format string applied to the command before transform, e.g. `ID=671;COMMAND=%s`                                                 | string, number, dimmer, rollershutter         |
+| `onValue`               | Send this value when receiving an ON command                                                                                    | switch, dimmer                                |
+| `offValue`              | Send this value when receiving an OFF command                                                                                   | switch, dimmer                                |
+| `increaseValue`         | Send this value when receiving an INCREASE command                                                                              | dimmer                                        |
+| `decreaseValue`         | Send this value when receiving a DECREASE command                                                                               | dimmer                                        |
+| `upValue`               | Send this value when receiving an UP command                                                                                    | rollershutter                                 |
+| `downValue`             | Send this value when receiving a DOWN command                                                                                   | rollershutter                                 |
+| `stopValue`             | Send this value when receiving a STOP command                                                                                   | rollershutter                                 |
 
 ## Full Example
 
@@ -104,7 +102,7 @@ The data for the sensor of interest is `20;05;Cresta;ID=2801;TEMP=25;HUM=55;BAT=
 
 demo.things:
 
-```
+```java
 Bridge serial:serialBridge:sensors [serialPort="/dev/ttyUSB01", baudRate=57600] {
     Thing serialDevice temperatureSensor [patternMatch="20;05;Cresta;ID=2801;.*"] {
         Channels:
@@ -130,7 +128,7 @@ Bridge serial:serialBridge:sensors [serialPort="/dev/ttyUSB01", baudRate=57600]
 
 demo.items:
 
-```
+```java
 Number:Temperature myTemp "My Temperature" {channel="serial:serialDevice:sensors:temperatureSensor:temperature"}
 Number myHum "My Humidity" {channel="serial:serialDevice:sensors:temperatureSensor:humidity"}
 Switch serialRelay "Relay Q1" (Entrance) {channel="serial:serialDevice:sensors:relay:serialRelay"}
index a05ba8209434b130d55836ae4c88a85b2af51b84..fb4048cb2de6a4b5bb1b6ec6d8688255562f1177 100644 (file)
@@ -6,7 +6,7 @@ This is a binding for probably one of the simplest devices possible: A simple pu
 
 The binding defines a single thing type called `button`.
 
-A button requires the single configuration parameter `port`, which specifies the serial port that should be used. 
+A button requires the single configuration parameter `port`, which specifies the serial port that should be used.
 
 The only available channel is a `SYSTEM_RAWBUTTON` channel called `button`, which emits `PRESSED` events (no `RELEASED` events though) whenever data is available on the serial port (which will be read and discarded).
 
@@ -17,25 +17,25 @@ Using the default toggle profile, this means that you can use this channel to to
 
 demo.things:
 
-```
+```java
 serialbutton:button:mybutton "My Button" [ port="/dev/ttyS0" ]
 ```
 
 demo.items:
 
-```
+```java
 Switch MyLight { channel="serialbutton:button:mybutton:button" }
 ```
 
 _Note:_ This is a trigger channel, so you will most likely bind a second (state) channel to your item, which will control your physical light, so you might end up with the following, if you want to use your button with a Hue bulb:
 
-```
+```java
 Switch MyLight { channel="hue:0210:1:bulb1:color,serialbutton:button:mybutton:button" }
 ```
 
 demo.sitemap:
 
-```
+```perl
 sitemap demo label="Main Menu"
 {
     Frame {
index 80288be00fd95fdd25edd3f8d3fe2207ee9e1d0e..d55f7ae1aa7ed923ffab3286d7d339de49f6e715 100644 (file)
@@ -2,9 +2,9 @@
 
 This Binding integrates [Shelly devices](https://shelly.cloud) devloped by Allterco.
 
-![](https://shop.shelly.cloud/image/cache/catalog/shelly_1/s1_x1-80x80.jpg)  ![](https://shop.shelly.cloud/image/cache/catalog/shelly_dimmer2/shelly_dimmer2_x1-80x80.jpg)  ![](https://shop.shelly.cloud/image/cache/catalog/shelly_vintage/shelly_vintage_A60-80x80.jpg)   ![](https://shop.shelly.cloud/image/cache/catalog/shelly_plug_s/s_plug_s_x1-80x80.jpg)   ![](https://shop.shelly.cloud/image/cache/catalog/shelly_button1/shelly_button1_x1-80x80.jpg)   ![](https://shop.shelly.cloud/image/cache/catalog/shelly_gas/shelly_gas_eu-80x80.jpg)   ![](https://shop.shelly.cloud/image/cache/catalog/shelly_ht/s_ht_x1-80x80.jpg)
+![shelly 1](https://shop.shelly.cloud/image/cache/catalog/shelly_1/s1_x1-80x80.jpg) ![shelly dimmer 2](https://shop.shelly.cloud/image/cache/catalog/shelly_dimmer2/shelly_dimmer2_x1-80x80.jpg) ![shelly vintage a60](https://shop.shelly.cloud/image/cache/catalog/shelly_vintage/shelly_vintage_A60-80x80.jpg) ![shelly plug s](https://shop.shelly.cloud/image/cache/catalog/shelly_plug_s/s_plug_s_x1-80x80.jpg) ![shelly button 1](https://shop.shelly.cloud/image/cache/catalog/shelly_button1/shelly_button1_x1-80x80.jpg) ![shelly gas eu](https://shop.shelly.cloud/image/cache/catalog/shelly_gas/shelly_gas_eu-80x80.jpg) ![shelly ht](https://shop.shelly.cloud/image/cache/catalog/shelly_ht/s_ht_x1-80x80.jpg)
 
-Allterco provides a rich set of smart home devices. All of them are WiFi enabled (2,4GHz, IPv4 only) and provide a documented API. 
+Allterco provides a rich set of smart home devices. All of them are WiFi enabled (2,4GHz, IPv4 only) and provide a documented API.
 The binding is officially acknowledged by Allterco and openHAB is listed as a reference and directly supports the openHAB community.
 
 The binding controls the devices independently from the Allterco Shelly Cloud (in fact it can be disabled).
@@ -20,7 +20,7 @@ Also check out the [Shelly Manager](doc/ShellyManager.md), which
 
 - provides detailed information on your Shellys
 - helps to diagnose WiFi issues or device instabilities
-- includes some common actions and 
+- includes some common actions and
 - simplifies firmware updates.
 
 [Shelly Manager](doc/ShellyManager.md) could also act as a firmware upgrade proxy - the device doesn't need to connect directly to the Internet, instead openHAB services as a download proxy, which improves device security.
@@ -36,62 +36,62 @@ The binding provides the same feature set across all devices as good as possible
 
 ### Generation 1
 
-| thing-type         | Model                                                  | Vendor ID |
-|--------------------|--------------------------------------------------------|-----------|
-| shelly1            | Shelly 1 Single Relay Switch                           | SHSW-1    |
-| shelly1l           | Shelly 1L Single Relay Switch                          | SHSW-L    |
-| shelly1pm          | Shelly Single Relay Switch with integrated Power Meter | SHSW-PM   |
-| shelly2-relay      | Shelly Double Relay Switch in relay mode               | SHSW-21   |
-| shelly2-roller     | Shelly2 in Roller Mode                                 | SHSW-21   |
-| shelly25-relay     | Shelly 2.5 in Relay Switch                             | SHSW-25   |
-| shelly25-roller    | Shelly 2.5 in Roller Mode                              | SHSW-25   |
-| shelly4pro         | Shelly 4x Relay Switch                                 | SHSW-44   |
-| shellydimmer       | Shelly Dimmer                                          | SHDM-1    |
-| shellydimmer2      | Shelly Dimmer2                                         | SHDM-2    |
-| shellyix3          | Shelly ix3                                             | SHIX3-1   |
-| shellyuni          | Shelly UNI                                             | SHUNI-1   |
-| shellyplug         | Shelly Plug                                            | SHPLG2-1  |
-| shellyplugs        | Shelly Plug-S                                          | SHPLG-S   |
-| shellyem           | Shelly EM with integrated Power Meters                 | SHEM      |
-| shellyem3          | Shelly 3EM with 3 integrated Power Meter               | SHEM-3    |
-| shellyrgbw2-color  | Shelly RGBW2 Controller in Color Mode                  | SHRGBW2   |
-| shellyrgbw2-white  | Shelly RGBW2 Controller in White Mode                  | SHRGBW2   |
-| shellybulb-color   | Shelly Bulb in Color Mode                              | SHBLB-1   |
-| shellybulb-white   | Shelly Bulb in White Mode                              | SHBLB-1   |
-| shellybulbduo      | Shelly Duo White                                       | SHBDUO-1  |
-| shellybulbduo      | Shelly Duo White G10                                   | SHBDUO-1  |
-| shellycolorbulb    | Shelly Duo Color G10                                   | SHCB-1    |
-| shellyvintage      | Shelly Vintage (White Mode)                            | SHVIN-1   |
-| shellyht           | Shelly Sensor (temperature+humidity)                   | SHHT-1    |
-| shellyflood        | Shelly Flood Sensor                                    | SHWT-1    |
-| shellysmoke        | Shelly Smoke Sensor                                    | SHSM-1    |
-| shellymotion       | Shelly Motion Sensor                                   | SHMOS-01  |
-| shellymotion2      | Shelly Motion Sensor 2                                 | SHMOS-02  |
-| shellygas          | Shelly Gas Sensor                                      | SHGS-1    |
-| shellydw           | Shelly Door/Window                                     | SHDW-1    |
-| shellydw2          | Shelly Door/Window 2                                   | SHDW-2    |
-| shellybutton1      | Shelly Button 1                                        | SHBTN-1   |
-| shellybutton2      | Shelly Button 2                                        | SHBTN-2   |
-| shellysense        | Shelly Motion and IR Controller                        | SHSEN-1   |
-| shellytrv          | Shelly TRV                                             | SHTRV-01  |
-| shellydevice       | A password protected Shelly device or an unknown type  |           |
+| thing-type        | Model                                                  | Vendor ID |
+| ----------------- | ------------------------------------------------------ | --------- |
+| shelly1           | Shelly 1 Single Relay Switch                           | SHSW-1    |
+| shelly1l          | Shelly 1L Single Relay Switch                          | SHSW-L    |
+| shelly1pm         | Shelly Single Relay Switch with integrated Power Meter | SHSW-PM   |
+| shelly2-relay     | Shelly Double Relay Switch in relay mode               | SHSW-21   |
+| shelly2-roller    | Shelly2 in Roller Mode                                 | SHSW-21   |
+| shelly25-relay    | Shelly 2.5 in Relay Switch                             | SHSW-25   |
+| shelly25-roller   | Shelly 2.5 in Roller Mode                              | SHSW-25   |
+| shelly4pro        | Shelly 4x Relay Switch                                 | SHSW-44   |
+| shellydimmer      | Shelly Dimmer                                          | SHDM-1    |
+| shellydimmer2     | Shelly Dimmer2                                         | SHDM-2    |
+| shellyix3         | Shelly ix3                                             | SHIX3-1   |
+| shellyuni         | Shelly UNI                                             | SHUNI-1   |
+| shellyplug        | Shelly Plug                                            | SHPLG2-1  |
+| shellyplugs       | Shelly Plug-S                                          | SHPLG-S   |
+| shellyem          | Shelly EM with integrated Power Meters                 | SHEM      |
+| shellyem3         | Shelly 3EM with 3 integrated Power Meter               | SHEM-3    |
+| shellyrgbw2-color | Shelly RGBW2 Controller in Color Mode                  | SHRGBW2   |
+| shellyrgbw2-white | Shelly RGBW2 Controller in White Mode                  | SHRGBW2   |
+| shellybulb-color  | Shelly Bulb in Color Mode                              | SHBLB-1   |
+| shellybulb-white  | Shelly Bulb in White Mode                              | SHBLB-1   |
+| shellybulbduo     | Shelly Duo White                                       | SHBDUO-1  |
+| shellybulbduo     | Shelly Duo White G10                                   | SHBDUO-1  |
+| shellycolorbulb   | Shelly Duo Color G10                                   | SHCB-1    |
+| shellyvintage     | Shelly Vintage (White Mode)                            | SHVIN-1   |
+| shellyht          | Shelly Sensor (temperature+humidity)                   | SHHT-1    |
+| shellyflood       | Shelly Flood Sensor                                    | SHWT-1    |
+| shellysmoke       | Shelly Smoke Sensor                                    | SHSM-1    |
+| shellymotion      | Shelly Motion Sensor                                   | SHMOS-01  |
+| shellymotion2     | Shelly Motion Sensor 2                                 | SHMOS-02  |
+| shellygas         | Shelly Gas Sensor                                      | SHGS-1    |
+| shellydw          | Shelly Door/Window                                     | SHDW-1    |
+| shellydw2         | Shelly Door/Window 2                                   | SHDW-2    |
+| shellybutton1     | Shelly Button 1                                        | SHBTN-1   |
+| shellybutton2     | Shelly Button 2                                        | SHBTN-2   |
+| shellysense       | Shelly Motion and IR Controller                        | SHSEN-1   |
+| shellytrv         | Shelly TRV                                             | SHTRV-01  |
+| shellydevice      | A password protected Shelly device or an unknown type  |           |
 
 ### Generation 2 Plus series
 
-| thing-type          | Model                                                    | Vendor ID      |
-|---------------------|----------------------------------------------------------|----------------|
-| shellyplus1         | Shelly Plus 1 with 1x relay                              | SNSW-001X16EU  |
-| shellyplus1pm       | Shelly Plus 1PM with 1x relay + power meter              | SNSW-001P16EU  |
-| shellyplus2pm-relay | Shelly Plus 2PM with 2x relay + power meter, relay mode  | SNSW-002P16EU  |
-| shellyplus2pm-roller| Shelly Plus 2PM with 2x relay + power meter, roller mode | SNSW-002P16EU  |
-| shellyplusi4        | Shelly Plus i4 with 4x AC input                          | SNSN-0024X     |
-| shellyplusi4dc      | Shelly Plus i4 with 4x DC input                          | SNSN-0D24X     |
-| shellyplusht        | Shelly Plus HT with temperature + humidity sensor        | SNSN-0013A     |
+| thing-type           | Model                                                    | Vendor ID     |
+| -------------------- | -------------------------------------------------------- | ------------- |
+| shellyplus1          | Shelly Plus 1 with 1x relay                              | SNSW-001X16EU |
+| shellyplus1pm        | Shelly Plus 1PM with 1x relay + power meter              | SNSW-001P16EU |
+| shellyplus2pm-relay  | Shelly Plus 2PM with 2x relay + power meter, relay mode  | SNSW-002P16EU |
+| shellyplus2pm-roller | Shelly Plus 2PM with 2x relay + power meter, roller mode | SNSW-002P16EU |
+| shellyplusi4         | Shelly Plus i4 with 4x AC input                          | SNSN-0024X    |
+| shellyplusi4dc       | Shelly Plus i4 with 4x DC input                          | SNSN-0D24X    |
+| shellyplusht         | Shelly Plus HT with temperature + humidity sensor        | SNSN-0013A    |
 
 ### Generation 2 Pro series
 
 | thing-type          | Model                                                    | Vendor ID      |
-|---------------------|----------------------------------------------------------|----------------|
+| ------------------- | -------------------------------------------------------- | -------------- |
 | shellypro1          | Shelly Pro 1 with 1x relay                               | SPSW-001XE16EU |
 | shellypro1pm        | Shelly Pro 1 PM with 1x relay + power meter              | SPSW-001PE16EU |
 | shellypro2-relay    | Shelly Pro 2 with 2x relay, relay mode                   | SPSW-002XE16EU |
@@ -100,18 +100,17 @@ The binding provides the same feature set across all devices as good as possible
 | shellypro3          | Shelly Pro 3 with 3x relay (dry contacts)                | SPSW-003XE16EU |
 | shellypro4pm        | Shelly Pro 4 PM with 4x relay + power meter              | SPSW-004PE16EU |
 
-
 ## Binding Configuration
 
 The binding has the following configuration options:
 
 ### Generation 1
 
-| Parameter      |Description                                                         |Mandatory|Default                                         |
-|----------------|--------------------------------------------------------------------|---------|------------------------------------------------|
-| defaultUserId  |Default user id for HTTP authentication when not set in the Thing   |    no   |admin                                           |
-| defaultPassword|Default password for HTTP authentication when not set in the Thing  |    no   |admin                                           |
-| autoCoIoT      |Auto-enable CoIoT events when firmware 1.6+ is enabled (Gen1 only). |    no   |true                                            |
+| Parameter       | Description                                                         | Mandatory | Default |
+| --------------- | ------------------------------------------------------------------- | --------- | ------- |
+| defaultUserId   | Default user id for HTTP authentication when not set in the Thing   | no        | admin   |
+| defaultPassword | Default password for HTTP authentication when not set in the Thing  | no        | admin   |
+| autoCoIoT       | Auto-enable CoIoT events when firmware 1.6+ is enabled (Gen1 only). | no        | true    |
 
 `defaultUserId` and `defaultPassword:` will be used by the binding if device protection is enabled.
 However, the Plus/Pro devices have a fixed user id admin`. Nevertheless the binding provide that option to allow a mixed operation of Gen 1 and 2 devices in the same installation having same defaults.
@@ -124,7 +123,7 @@ Disabling this feature allows granular control, which event types will be used.
 This is also required when the Shelly devices are not located on the same IP subnet (e.g. using a VPN).
 In this case autoCoIoT should be disabled, CoIoT events will not work, because the underlying CoAP protocol is based on Multicast IP, which usually doesn't passes a VPN or routed network.
 
-'Generation 2:' 
+'Generation 2:'
 
 ### Generation 2 (Plus
 
@@ -149,11 +148,11 @@ openHAB will restore the channel/item linkage from the previous configuration, t
 In general devices need to be active to be discovered by the binding.
 Battery powered devices need to wake up by pressing the button, they will stay active for a minute or so, which gives you enough time to start the discovery.
 
-The binding uses mDNS to discover the Shelly devices. 
+The binding uses mDNS to discover the Shelly devices.
 They periodically announce their presence, which is used by the binding to find them on the local network.
 Sometimes you need to run the manual discovery multiple times until you see all your devices.
 
-`Important for Generation 1 Devices`: 
+`Important for Generation 1 Devices`:
 It's recommended to enable CoIoT in the device settings for faster response times (event driven rather than polling).
 Open the device's Web UI, section "COIOT settings" and select "Enable COCIOT".
 It's recommended to switch the Shelly devices to CoAP peer mode if you have only your openHAB system controlling the device.
@@ -169,12 +168,12 @@ In this case you need to set these values in the Thing configuration after appro
 If you have multiple devices protected by the same credentials it's recommended to set the default user id and password in the binding configuration BEFORE running the discovery.
 In this case the binding could directly access the device to retrieve the required information using those credentials.
 Otherwise a Thing of type shellyprotected is created in the Inbox and you could set the credentials while adding the Thing.
-In this case the credentials are persisted as part of the Thing configuration. 
+In this case the credentials are persisted as part of the Thing configuration.
 
 ### Dynamic creation of channels
 
-The Shelly series of devices has many combinations of relays, meters (different versions), sensors etc. 
-For this the binding creates various channels dynamically based on the status information provided by the device at initialization time. 
+The Shelly series of devices has many combinations of relays, meters (different versions), sensors etc.
+For this the binding creates various channels dynamically based on the status information provided by the device at initialization time.
 If a channel is missing make sure the Thing was discovered correctly and is ONLINE.
 If a channel is missing delete the Thing and re-discover it.
 Creation of those channels takes about 5-10sec, maybe you need to reload the page to update the browser status.
@@ -199,16 +198,16 @@ Values 1-4 are selecting the corresponding favorite id in the Shelly App, 0 mean
 
 The binding sets the following Thing status depending on the device status:
 
-| Status         |Description                                                       |
-|----------------|------------------------------------------------------------------|
-| INITIALIZING   | This is the default status while initializing the Thing. Once the initialization is triggered the Thing switches to Status UNKNOWN. |
-| UNKNOWN        | Indicates that the status is currently unknown, which must not show a problem. Usually the Thing stays in this status when the device is in sleep mode. Once the device is reachable and was initialized the Thing switches to status ONLINE.|
-| ONLINE         | ONLINE indicates that the device can be accessed and is responding properly. Battery powered devices also stay ONLINE when in sleep mode. The binding has an integrated watchdog timer supervising the device, see below. The Thing switches to status OFFLINE when some type of communication error occurs. | 
-| OFFLINE        | Communication with the device failed. Check the Thing status in the UI and openHAB's log for an indication of the error. Try restarting OH or deleting and re-discovering the Thing. You could also post to the community thread if the problem persists. |
-| CONFIG PENDING | The thing has been initialized, but device initialization is in progress or pending (e.g. waiting for device wake-up) |
-| ERROR: COMM    | Communication with the device has reported an error, check detailed status. |
+| Status         | Description                                                                                                                                                                                                                                                                                                  |
+| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| INITIALIZING   | This is the default status while initializing the Thing. Once the initialization is triggered the Thing switches to Status UNKNOWN.                                                                                                                                                                          |
+| UNKNOWN        | Indicates that the status is currently unknown, which must not show a problem. Usually the Thing stays in this status when the device is in sleep mode. Once the device is reachable and was initialized the Thing switches to status ONLINE.                                                                |
+| ONLINE         | ONLINE indicates that the device can be accessed and is responding properly. Battery powered devices also stay ONLINE when in sleep mode. The binding has an integrated watchdog timer supervising the device, see below. The Thing switches to status OFFLINE when some type of communication error occurs. |
+| OFFLINE        | Communication with the device failed. Check the Thing status in the UI and openHAB's log for an indication of the error. Try restarting OH or deleting and re-discovering the Thing. You could also post to the community thread if the problem persists.                                                    |
+| CONFIG PENDING | The thing has been initialized, but device initialization is in progress or pending (e.g. waiting for device wake-up)                                                                                                                                                                                        |
+| ERROR: COMM    | Communication with the device has reported an error, check detailed status.                                                                                                                                                                                                                                  |
 
-`Battery powered devices:` 
+`Battery powered devices:`
 If the device is in sleep mode and can't be reached by the binding, the Thing will change into CONFIG_PENDING.
 Once the device wakes up, the Thing will perform initialization and the state will change to ONLINE.
 
@@ -230,52 +229,51 @@ The period is computed depending on the device type and configuration:
 - else, if CoIoT or WebSocket is enabled: 3*&lt;update Period from device settings&gt;+10sec, usually3*15+10=45sec
 - else 2*60+10sec = 130sec
 
-Once the timer expires the device switches to OFFFLINE and the bindings starts to re-initialize the device periodically. 
+Once the timer expires the device switches to OFFFLINE and the bindings starts to re-initialize the device periodically.
 
 You could also create a rule to catch those status changes or device alarms (see rule examples).
 
 ## Thing Configuration
 
-|Parameter         |Description                                                   |Mandatory|Default                                           |
-|------------------|--------------------------------------------------------------|---------|--------------------------------------------------|
-|deviceIp          |IP address of the Shelly device                               |    yes  |none                                              |
-|userId            |The user id used for HTTP authentication                      |    no   |none                                              |
-|password          |Password for HTTP authentication                              |    no   |none                                              |
-|brightnessAutoOn  |true: Output will be activated when brightness > 0 is set     |    no   |true                                              |
-|lowBattery        |Threshold for battery level. Set alert when level is below.   |    no   |20 (=20%), only for battery powered devices       |
-|updateInterval    |Interval for the background status check in seconds.          |    no   |1h for battery powered devices, 60s for all others|
-|eventsButton      |true: register event "trigger when a button is pushed"        |    no   |false                                             |
-|eventsPush        |true: register event "trigger on short and long push"         |    no   |false                                             |
-|eventsSwitch      |true: register event "trigger of switching the relay output"  |    no   |true                                              |
-|eventsSensorReport|true: register event "posted updated sensor data"             |    no   |true for sensor devices                           |
-|eventsCoIoT       |true: Listen for CoIoT/COAP events                            |    no   |true for battery devices, false for others        |
-|eventsRoller      |true: register event "trigger" when the roller updates status |    no   |true for roller devices                           |
-|favoriteUP        |0-4: Favorite id for UP (see Roller Favorites)                |    no   |0 = no favorite id                                |
-|favoriteDOWN      |0-4: Favorite id for DOWN (see Roller Favorites)              |    no   |0 = no favorite id                                |
-
+| Parameter          | Description                                                   | Mandatory | Default                                            |
+| ------------------ | ------------------------------------------------------------- | --------- | -------------------------------------------------- |
+| deviceIp           | IP address of the Shelly device                               | yes       | none                                               |
+| userId             | The user id used for HTTP authentication                      | no        | none                                               |
+| password           | Password for HTTP authentication                              | no        | none                                               |
+| brightnessAutoOn   | true: Output will be activated when brightness > 0 is set     | no        | true                                               |
+| lowBattery         | Threshold for battery level. Set alert when level is below.   | no        | 20 (=20%), only for battery powered devices        |
+| updateInterval     | Interval for the background status check in seconds.          | no        | 1h for battery powered devices, 60s for all others |
+| eventsButton       | true: register event "trigger when a button is pushed"        | no        | false                                              |
+| eventsPush         | true: register event "trigger on short and long push"         | no        | false                                              |
+| eventsSwitch       | true: register event "trigger of switching the relay output"  | no        | true                                               |
+| eventsSensorReport | true: register event "posted updated sensor data"             | no        | true for sensor devices                            |
+| eventsCoIoT        | true: Listen for CoIoT/COAP events                            | no        | true for battery devices, false for others         |
+| eventsRoller       | true: register event "trigger" when the roller updates status | no        | true for roller devices                            |
+| favoriteUP         | 0-4: Favorite id for UP (see Roller Favorites)                | no        | 0 = no favorite id                                 |
+| favoriteDOWN       | 0-4: Favorite id for DOWN (see Roller Favorites)              | no        | 0 = no favorite id                                 |
 
 ### General Notes
 
 Every device has a channel group `device` with the following channels:
 
-|Group     |Channel            |Type    |read-only|Description                                                                      |
-|----------|-------------------|--------|---------|---------------------------------------------------------------------------------|
-|device    |deviceName         |String  |yes      |Device name as configured in the Shelly App                                      |
-|          |uptime             |Number  |yes      |Number of seconds since the device was powered up                                |
-|          |wifiSignal         |Number  |yes      |WiFi signal strength (4=excellent, 3=good, 2=not string, 1=unreliable, 0=none)   |
-|          |internalTemp       |Number  |yes      |Internal device temperature (when provided by the device)                        |
-|          |selfTest           |String  |yes      |Result from device self-test (pending/not_completed/running/completed/unknown)   |
-|          |alarm              |Trigger |yes      |Self-Test result not_completed/completed/running/pending                         |
-|          |supplyVoltage      |Number  |yes      |Shelly 1PM, 1L, 2.5: Supply voltage (fixed or measured depending on device)      |
-|          |accumulatedWatts   |Number  |yes      |Accumulated power in W of the device (including all meters)                      |
-|          |accumulatedTotal   |Number  |yes      |Accumulated total power in kwh of the device (including all meters)              |
-|          |accumulatedReturned|Number  |yes      |Accumulated returned power in kwh of the device (including all meters)           |
-|          |heartBeat          |DateTime|yes      |Timestamp of the last successful device communication                            |
-|          |updateAvailable    |Switch  |yes      |ON: A firmware update is available                                               |
-|          |statusLed          |Switch  |r/w      |ON: Status LED is disabled, OFF: LED enabled                                     |
-|          |powerLed           |Switch  |r/w      |ON: Power LED is disabled, OFF: LED enabled                                      |
-|          |charger            |Switch  |yes      |ON: USB charging cable is connected external power supply activated.             |
-|          |calibrated         |Switch  |yes      |ON: Device/sensor is calibrated (if supported by device).                        |
+| Group  | Channel             | Type     | read-only | Description                                                                    |
+| ------ | ------------------- | -------- | --------- | ------------------------------------------------------------------------------ |
+| device | deviceName          | String   | yes       | Device name as configured in the Shelly App                                    |
+|        | uptime              | Number   | yes       | Number of seconds since the device was powered up                              |
+|        | wifiSignal          | Number   | yes       | WiFi signal strength (4=excellent, 3=good, 2=not string, 1=unreliable, 0=none) |
+|        | internalTemp        | Number   | yes       | Internal device temperature (when provided by the device)                      |
+|        | selfTest            | String   | yes       | Result from device self-test (pending/not_completed/running/completed/unknown) |
+|        | alarm               | Trigger  | yes       | Self-Test result not_completed/completed/running/pending                       |
+|        | supplyVoltage       | Number   | yes       | Shelly 1PM, 1L, 2.5: Supply voltage (fixed or measured depending on device)    |
+|        | accumulatedWatts    | Number   | yes       | Accumulated power in W of the device (including all meters)                    |
+|        | accumulatedTotal    | Number   | yes       | Accumulated total power in kwh of the device (including all meters)            |
+|        | accumulatedReturned | Number   | yes       | Accumulated returned power in kwh of the device (including all meters)         |
+|        | heartBeat           | DateTime | yes       | Timestamp of the last successful device communication                          |
+|        | updateAvailable     | Switch   | yes       | ON: A firmware update is available                                             |
+|        | statusLed           | Switch   | r/w       | ON: Status LED is disabled, OFF: LED enabled                                   |
+|        | powerLed            | Switch   | r/w       | ON: Power LED is disabled, OFF: LED enabled                                    |
+|        | charger             | Switch   | yes       | ON: USB charging cable is connected external power supply activated.           |
+|        | calibrated          | Switch   | yes       | ON: Device/sensor is calibrated (if supported by device).                      |
 
 Availability of channels is depending on the device type.
 The binding detects many of those channels on-the-fly (when Thing changes to ONLINE state) and adjusts the Thing's channel structure.
@@ -290,39 +288,37 @@ The LED channels are available for the Plug-S with firmware 1.6x and for various
 Depending on the firmware release the Shelly devices supports 2 different mechanims to report sensor updates or events.
 
 1. Action URLs
+    Usually the binding polls the device to update the status and maps the returned values to the various channels.
+    In addition the binding can register so-called Action URLs. Those events are triggered by the device to report special events.
+    You need to disable autoCoIoT in the binding configuration to make specific selections for the Action events.
 
-Usually the binding polls the device to update the status and maps the returned values to the various channels.
-In addition the binding can register so-called Action URLs. Those events are triggered by the device to report special events.
-You need to disable autoCoIoT in the binding configuration to make specific selections for the Action events.
-
-The following event types could be registered when enabled in the Thing configuration:
+    The following event types could be registered when enabled in the Thing configuration:
 
-|Event Type        |Description                                                                                                    |
-|------------------|---------------------------------------------------------------------------------------------------------------|
-|eventsButton      |This event is triggered when the device is in button mode. The device reports the ON/OFF status of the button. |
-|eventsSwitch      |This event reports the status of the relay output. This could change by the button or API calls.               |
-|eventsPush        |The device reports the short/longpush events when in  button mode momentary, momentary_on_release, one_button or two_button |
-|eventsSensorReport|Sensor devices (like H&T) provide sensor updates when this action URL is enabled.                              |
+    | Event Type         | Description                                                                                                                 |
+    | ------------------ | --------------------------------------------------------------------------------------------------------------------------- |
+    | eventsButton       | This event is triggered when the device is in button mode. The device reports the ON/OFF status of the button.              |
+    | eventsSwitch       | This event reports the status of the relay output. This could change by the button or API calls.                            |
+    | eventsPush         | The device reports the short/longpush events when in  button mode momentary, momentary_on_release, one_button or two_button |
+    | eventsSensorReport | Sensor devices (like H&T) provide sensor updates when this action URL is enabled.                                           |
 
-Important: The binding defaults to CoIoT when firmware 1.6 or newer is detected.
-This has significant experience improvements and also prevents interfering with other applications, because the device only supports one set of Action URLs.
+    Important: The binding defaults to CoIoT when firmware 1.6 or newer is detected.
+    This has significant experience improvements and also prevents interfering with other applications, because the device only supports one set of Action URLs.
+1. CoIoT / CoAP
+    Starting with version 1.6 the devices reports most status values via the CoIoT protocol.
+    CoIoT provides near-realtime updates and better event support.
+    Firmware 1.7 adds additional status values, also supported by the binding.
+    Version 1.8 introduces CoIoT version 2, which fixes various issues with version 1 and provides almost all relevant status updates.
 
-2. CoIoT / CoAP
+    If there is no specific reason you should enable CoIoT.
+    Check section Network Settings [here](doc/AdvancedUsers.md) for more information.
 
-Starting with version 1.6 the devices reports most status values via the CoIoT protocol.
-CoIoT provides near-realtime updates and better event support.
-Firmware 1.7 adds additional status values, also supported by the binding.
-Version 1.8 introduces CoIoT version 2, which fixes various issues with version 1 and provides almost all relevant status updates.
-
-If there is no specific reason you should enable CoIoT. Check section Network Settings [here](doc/AdvancedUsers.md) for more information.
-
-Enable the autoCoIoT option in the binding configuration or eventsCoIoT in the Thing configuration to activate CoIoT.
+    Enable the autoCoIoT option in the binding configuration or eventsCoIoT in the Thing configuration to activate CoIoT.
 
 ### Generation 2: WebSockets
 
 The Plus and Pro series of devices use WebSockets for device communication.
 Usually the binding establishes a WebSocket connection to the device (http port 80).
-However, battery powered devices like the Plus HT are not reachable while the device is in sleep mode. 
+However, battery powered devices like the Plus HT are not reachable while the device is in sleep mode.
 For those the binding sets up a so called "Outbound WebSocket" during device initialization.
 Afterwards the device wakes up and calls the configured URL, which is the processed by the binding.
 The device UI shows the URL when active.
@@ -335,22 +331,22 @@ This could be a switch connected to the SW input of the relay or the Button 1 or
 
 The following trigger types are sent:
 
-|Event Type         |Description                                                                                                    |
-|-------------------|---------------------------------------------------------------------------------------------------------------|
-|SHORT_PRESSED      |The button was pressed once for a short time (lastEvent=S)                                                     |
-|DOUBLE_PRESSED     |The button was pressed twice with short delay (lastEvent=SS)                                                   |
-|TRIPLE_PRESSED     |The button was pressed three times with short delay (lastEvent=SSS)                                            |
-|LONG_PRESSED       |The button was pressed for a longer time (lastEvent=L)                                                         |
-|SHORT_LONG_PRESSED |A short followed by a long button push (lastEvent=SL)                                                          |
-|LONG_SHORT_PRESSED |A long followed by a short button push (lastEvent=LS)                                                          |
+| Event Type         | Description                                                         |
+| ------------------ | ------------------------------------------------------------------- |
+| SHORT_PRESSED      | The button was pressed once for a short time (lastEvent=S)          |
+| DOUBLE_PRESSED     | The button was pressed twice with short delay (lastEvent=SS)        |
+| TRIPLE_PRESSED     | The button was pressed three times with short delay (lastEvent=SSS) |
+| LONG_PRESSED       | The button was pressed for a longer time (lastEvent=L)              |
+| SHORT_LONG_PRESSED | A short followed by a long button push (lastEvent=SL)               |
+| LONG_SHORT_PRESSED | A long followed by a short button push (lastEvent=LS)               |
+
 Check the channel definitions for the various devices to see if the device supports those events.
-You could use the Shelly App to set the timing for those events. 
+You could use the Shelly App to set the timing for those events.
 
 If you want to use those events triggering a rule:
 
 - If a physical switch is connected to the Shelly use the input channel(`input` or `input1`/`input2`) to trigger a rule
-- For a momentary button use the `button` trigger channel as trigger, channels `lastEvent` and `eventCount` will provide details on the event 
+- For a momentary button use the `button` trigger channel as trigger, channels `lastEvent` and `eventCount` will provide details on the event
 
 ### Alarms
 
@@ -361,30 +357,30 @@ A new alarm will be triggered on a new condition or every 5 minutes if the condi
 
 ### Non-battery powered devices
 
-|Event Type|Description|
-|------------|-----------------------------------------------------------------------------------------------------------------|
-|RESTARTED   |The device has been restarted. This could be an indicator for a firmware problem.                                |
-|WEAK_SIGNAL |An alarm is triggered when RSSI is < -80, which indicates an unstable connection.                                |
-|OVER_TEMP   |The device is overheating, check installation and housing.                                                       |
-|OVER_LOAD   |An over load condition has been detected, e.g. from the roller motor.                                            |
-|OVER_POWER  |Maximum allowed power was exceeded. The relay was turned off.                                                    |
-|LOAD_ERROR  |Device reported a load problem, so far Dimmer only.                                                              |
+| Event Type  | Description                                                                       |
+| ----------- | --------------------------------------------------------------------------------- |
+| RESTARTED   | The device has been restarted. This could be an indicator for a firmware problem. |
+| WEAK_SIGNAL | An alarm is triggered when RSSI is < -80, which indicates an unstable connection. |
+| OVER_TEMP   | The device is overheating, check installation and housing.                        |
+| OVER_LOAD   | An over load condition has been detected, e.g. from the roller motor.             |
+| OVER_POWER  | Maximum allowed power was exceeded. The relay was turned off.                     |
+| LOAD_ERROR  | Device reported a load problem, so far Dimmer only.                               |
 
 ### Sensors
 
-|Event Type|Description|
-|------------|-----------------------------------------------------------------------------------------------------------------|
-|POWERON     |Device was powered on.                                                                                           |
-|PERIODIC    |Periodic wakeup.                                                                                                 |
-|BUTTON      |Button was pressed, e.g. to wake up the device.                                                                  |
-|SENSOR      |Wake-up due to updated sensor data.                                                                              |
-|ALARM       |Alarm condition was detected, check status, could be OPENED for the DW, flood alarm, smoke alarm                 |
-|BATTERY     |Device reported an update to the battery status.                                                                 |
-|TEMP_UNDER  |Below "temperature under" threshold                                                                              |
-|TEMP_OVER   |Above "temperature over" threshold                                                                               |
-|VIBRATION   |A vibration/tamper was detected (DW2 only)                                                                       |
+| Event Type | Description                                                                                      |
+| ---------- | ------------------------------------------------------------------------------------------------ |
+| POWERON    | Device was powered on.                                                                           |
+| PERIODIC   | Periodic wakeup.                                                                                 |
+| BUTTON     | Button was pressed, e.g. to wake up the device.                                                  |
+| SENSOR     | Wake-up due to updated sensor data.                                                              |
+| ALARM      | Alarm condition was detected, check status, could be OPENED for the DW, flood alarm, smoke alarm |
+| BATTERY    | Device reported an update to the battery status.                                                 |
+| TEMP_UNDER | Below "temperature under" threshold                                                              |
+| TEMP_OVER  | Above "temperature over" threshold                                                               |
+| VIBRATION  | A vibration/tamper was detected (DW2 only)                                                       |
 
-Refer to section [Full Example:shelly.rules](#shelly-rules) for examples how to catch alarm triggers in openHAB rules
+Refer to section [Full Example:shelly.rules](#shellyrules) for examples how to catch alarm triggers in openHAB rules
 
 ## Channels
 
@@ -392,47 +388,47 @@ Depending on the device type and firmware release channels might be not availabl
 
 ### Shelly 1 (thing-type: shelly1)
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay     |output       |Switch   |r/w      |Controls the relay's output channel (on/off)                                     |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see general notes on channels                       |
-|          |button       |Trigger  |yes      |Event trigger with payload, see SHORT_PRESSED or LONG_PRESSED                    |
-|          |lastEvent    |String   |yes      |Last event type (S/SS/SSS/L)                                                     |
-|          |eventCount   |Number   |yes      |Counter gets incremented every time the device issues a button event.            |
-|          |autoOn       |Number   |r/w      |Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #1: ON: An auto-on/off timer is active                                     |
-|sensors   |temperature1 |Number   |yes      |Temperature value of external sensor #1 (if connected to temp/hum addon)         |
-|          |temperature2 |Number   |yes      |Temperature value of external sensor #2 (if connected to temp/hum addon)         |
-|          |temperature3 |Number   |yes      |Temperature value of external sensor #3 (if connected to temp/hum addon)         |
-|          |humidity     |Number   |yes      |Humidity in percent (if connected to temp/hum addon)                             |
-|          |input1       |Contact  |yes      |Status of the reed contact (OPEN/CLOSE), only with external switch add-on        |
+| Group   | Channel      | Type    | read-only | Description                                                                       |
+| ------- | ------------ | ------- | --------- | --------------------------------------------------------------------------------- |
+| relay   | output       | Switch  | r/w       | Controls the relay's output channel (on/off)                                      |
+|         | outputName   | String  | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|         | input        | Switch  | yes       | ON: Input/Button is powered, see general notes on channels                        |
+|         | button       | Trigger | yes       | Event trigger with payload, see SHORT_PRESSED or LONG_PRESSED                     |
+|         | lastEvent    | String  | yes       | Last event type (S/SS/SSS/L)                                                      |
+|         | eventCount   | Number  | yes       | Counter gets incremented every time the device issues a button event.             |
+|         | autoOn       | Number  | r/w       | Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|         | autoOff      | Number  | r/w       | Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|         | timerActive  | Switch  | yes       | Relay #1: ON: An auto-on/off timer is active                                      |
+| sensors | temperature1 | Number  | yes       | Temperature value of external sensor #1 (if connected to temp/hum addon)          |
+|         | temperature2 | Number  | yes       | Temperature value of external sensor #2 (if connected to temp/hum addon)          |
+|         | temperature3 | Number  | yes       | Temperature value of external sensor #3 (if connected to temp/hum addon)          |
+|         | humidity     | Number  | yes       | Humidity in percent (if connected to temp/hum addon)                              |
+|         | input1       | Contact | yes       | Status of the reed contact (OPEN/CLOSE), only with external switch add-on         |
 
 ### Shelly 1L (thing-type: shelly1l)
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay     |output       |Switch   |r/w      |Controls the relay's output channel (on/off)                                     |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input1       |Switch   |yes      |ON: Input/Button for input 1 is powered, see general notes on channels           |
-|          |button1      |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|          |lastEvent1   |String   |yes      |Last event type (S/SS/SSS/L) for input 1                                         |
-|          |eventCount1  |Number   |yes      |Counter gets incremented every time the device issues a button event.            |
-|          |input2       |Switch   |yes      |ON: Input/Button for channel 2 is powered, see general notes on channels         |
-|          |button2      |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|          |lastEvent2   |String   |yes      |Last event type (S/SS/SSS/L) for input 2                                         |
-|          |eventCount2  |Number   |yes      |Counter gets incremented every time the device issues a button event.            |
-|          |autoOn       |Number   |r/w      |Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #1: ON: An auto-on/off timer is active                                     |
-|meter     |currentWatts |Number   |yes      |Current power consumption in Watts                                               |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                                |
-|sensors   |temperature1 |Number   |yes      |Temperature value of external sensor #1 (if connected to temp/hum addon)         |
-|          |temperature2 |Number   |yes      |Temperature value of external sensor #2 (if connected to temp/hum addon)         |
-|          |temperature3 |Number   |yes      |Temperature value of external sensor #3 (if connected to temp/hum addon)         |
-|          |humidity     |Number   |yes      |Humidity in percent (if connected to temp/hum addon)                             |
-|          |input1       |Contact  |yes      |Status of the reed contact (OPEN/CLOSE), only with external switch add-on        |
+| Group   | Channel      | Type     | read-only | Description                                                                       |
+| ------- | ------------ | -------- | --------- | --------------------------------------------------------------------------------- |
+| relay   | output       | Switch   | r/w       | Controls the relay's output channel (on/off)                                      |
+|         | outputName   | String   | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|         | input1       | Switch   | yes       | ON: Input/Button for input 1 is powered, see general notes on channels            |
+|         | button1      | Trigger  | yes       | Event trigger, see section Button Events                                          |
+|         | lastEvent1   | String   | yes       | Last event type (S/SS/SSS/L) for input 1                                          |
+|         | eventCount1  | Number   | yes       | Counter gets incremented every time the device issues a button event.             |
+|         | input2       | Switch   | yes       | ON: Input/Button for channel 2 is powered, see general notes on channels          |
+|         | button2      | Trigger  | yes       | Event trigger, see section Button Events                                          |
+|         | lastEvent2   | String   | yes       | Last event type (S/SS/SSS/L) for input 2                                          |
+|         | eventCount2  | Number   | yes       | Counter gets incremented every time the device issues a button event.             |
+|         | autoOn       | Number   | r/w       | Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|         | autoOff      | Number   | r/w       | Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|         | timerActive  | Switch   | yes       | Relay #1: ON: An auto-on/off timer is active                                      |
+| meter   | currentWatts | Number   | yes       | Current power consumption in Watts                                                |
+|         | lastUpdate   | DateTime | yes       | Timestamp of the last measurement                                                 |
+| sensors | temperature1 | Number   | yes       | Temperature value of external sensor #1 (if connected to temp/hum addon)          |
+|         | temperature2 | Number   | yes       | Temperature value of external sensor #2 (if connected to temp/hum addon)          |
+|         | temperature3 | Number   | yes       | Temperature value of external sensor #3 (if connected to temp/hum addon)          |
+|         | humidity     | Number   | yes       | Humidity in percent (if connected to temp/hum addon)                              |
+|         | input1       | Contact  | yes       | Status of the reed contact (OPEN/CLOSE), only with external switch add-on         |
 
 Note: The `meter`for the Shelly 1L is kind of fake.
 It doesn't have a real power meter, but you could setup an estimated consumption in the Shelly App, e.g. 60W if you have attached a good old light bulb to the output channel.
@@ -440,150 +436,148 @@ In this case the is no real measurement based on power consumption, but the Shel
 
 ### Shelly 1PM (thing-type: shelly1pm)
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay     |output       |Switch   |r/w      |Controls the relay's output channel (on/off)                                     |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                       |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|meter     |currentWatts |Number   |yes      |Current power consumption in Watts                                               |
-|          |lastPower1   |Number   |yes      |Energy consumption for a round minute, 1 minute  ago                             |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kwh since the device powered up (resets on restart)  
-|
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                                |
-|sensors   |temperature1 |Number   |yes      |Temperature value of external sensor #1 (if connected to temp/hum addon)         |
-|          |temperature2 |Number   |yes      |Temperature value of external sensor #2 (if connected to temp/hum addon)         |
-|          |temperature3 |Number   |yes      |Temperature value of external sensor #3 (if connected to temp/hum addon)         |
-|          |humidity     |Number   |yes      |Humidity in percent (if connected to temp/hum addon)                             |
-|          |input1       |Contact  |yes      |Status of the reed contact (OPEN/CLOSE), only with external switch add-on        |
+| Group   | Channel      | Type     | read-only | Description                                                                     |
+| ------- | ------------ | -------- | --------- | ------------------------------------------------------------------------------- |
+| relay   | output       | Switch   | r/w       | Controls the relay's output channel (on/off)                                    |
+|         | outputName   | String   | yes       | Logical name of this relay output as configured in the Shelly App               |
+|         | input        | Switch   | yes       | ON: Input/Button is powered, see General Notes on Channels                      |
+|         | button       | Trigger  | yes       | Event trigger, see section Button Events                                        |
+| meter   | currentWatts | Number   | yes       | Current power consumption in Watts                                              |
+|         | lastPower1   | Number   | yes       | Energy consumption for a round minute, 1 minute  ago                            |
+|         | totalKWH     | Number   | yes       | Total energy consumption in kwh since the device powered up (resets on restart) |
+|         |              |          |           |                                                                                 |
+|         | lastUpdate   | DateTime | yes       | Timestamp of the last measurement                                               |
+| sensors | temperature1 | Number   | yes       | Temperature value of external sensor #1 (if connected to temp/hum addon)        |
+|         | temperature2 | Number   | yes       | Temperature value of external sensor #2 (if connected to temp/hum addon)        |
+|         | temperature3 | Number   | yes       | Temperature value of external sensor #3 (if connected to temp/hum addon)        |
+|         | humidity     | Number   | yes       | Humidity in percent (if connected to temp/hum addon)                            |
+|         | input1       | Contact  | yes       | Status of the reed contact (OPEN/CLOSE), only with external switch add-on       |
 
 ### Shelly EM (thing-type: shellyem)
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay     |output       |Switch   |r/w      |Controls the relay's output channel (on/off)                                     |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see general notes on channels                       |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|          |lastEvent    |String   |yes      |Last event type (S/SS/SSS/L)                                                     |
-|          |eventCount   |Number   |yes      |Counter gets incremented every time the device issues a button event.            |
-|          |autoOn       |Number   |r/w      |Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #1: ON: An auto-on/off timer is active                                     |
-|meter1    |currentWatts |Number   |yes      |Current power consumption in Watts                                               |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kwh since the device powered up (resets on restart)  |
-|          |returnedKWH  |Number   |yes      |Total returned energy, kwh                                                       |
-|          |reactiveWatts|Number   |yes      |Instantaneous reactive power, Watts                                              |
-|          |voltage      |Number   |yes      |RMS voltage, Volts                                                               |
-|          |powerFactor  |Number   |yes      |Power Factor in percent                                                          |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                                |
-|meter2    |currentWatts |Number   |yes      |Current power consumption in Watts                                               |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kwh since the device powered up (resets on restart)  |
-|          |returnedKWH  |Number   |yes      |Total returned energy, kwh                                                       |
-|          |reactiveWatts|Number   |yes      |Instantaneous reactive power, Watts                                              |
-|          |voltage      |Number   |yes      |RMS voltage, Volts                                                               |
-|          |powerFactor  |Number   |yes      |Power Factor in percent                                                          |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                                |
+| Group  | Channel       | Type     | read-only | Description                                                                       |
+| ------ | ------------- | -------- | --------- | --------------------------------------------------------------------------------- |
+| relay  | output        | Switch   | r/w       | Controls the relay's output channel (on/off)                                      |
+|        | outputName    | String   | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|        | input         | Switch   | yes       | ON: Input/Button is powered, see general notes on channels                        |
+|        | button        | Trigger  | yes       | Event trigger, see section Button Events                                          |
+|        | lastEvent     | String   | yes       | Last event type (S/SS/SSS/L)                                                      |
+|        | eventCount    | Number   | yes       | Counter gets incremented every time the device issues a button event.             |
+|        | autoOn        | Number   | r/w       | Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|        | autoOff       | Number   | r/w       | Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|        | timerActive   | Switch   | yes       | Relay #1: ON: An auto-on/off timer is active                                      |
+| meter1 | currentWatts  | Number   | yes       | Current power consumption in Watts                                                |
+|        | totalKWH      | Number   | yes       | Total energy consumption in kwh since the device powered up (resets on restart)   |
+|        | returnedKWH   | Number   | yes       | Total returned energy, kwh                                                        |
+|        | reactiveWatts | Number   | yes       | Instantaneous reactive power, Watts                                               |
+|        | voltage       | Number   | yes       | RMS voltage, Volts                                                                |
+|        | powerFactor   | Number   | yes       | Power Factor in percent                                                           |
+|        | lastUpdate    | DateTime | yes       | Timestamp of the last measurement                                                 |
+| meter2 | currentWatts  | Number   | yes       | Current power consumption in Watts                                                |
+|        | totalKWH      | Number   | yes       | Total energy consumption in kwh since the device powered up (resets on restart)   |
+|        | returnedKWH   | Number   | yes       | Total returned energy, kwh                                                        |
+|        | reactiveWatts | Number   | yes       | Instantaneous reactive power, Watts                                               |
+|        | voltage       | Number   | yes       | RMS voltage, Volts                                                                |
+|        | powerFactor   | Number   | yes       | Power Factor in percent                                                           |
+|        | lastUpdate    | DateTime | yes       | Timestamp of the last measurement                                                 |
 
 ### Shelly 3EM (thing-type: shellyem3)
 
-Please note: The product is called Shelly 3EM whereas the device propagates the service under shellyem3. 
+Please note: The product is called Shelly 3EM whereas the device propagates the service under shellyem3.
 The Thing id is derived from the service name, so that's the reason why the Thing is named shelly**em3** and not shelly3em.
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay     |output       |Switch   |r/w      |Controls the relay's output channel (on/off)                                     |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see general notes on channels                       |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|          |lastEvent    |String   |yes      |Last event type (S/SS/SSS/L)                                                     |
-|          |eventCount   |Number   |yes      |Counter gets incremented every time the device issues a button event.            |
-|          |autoOn       |Number   |r/w      |Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #1: ON: An auto-on/off timer is active                                     |
-|meter1    |currentWatts |Number   |yes      |Current power consumption in Watts                                               |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kwh since the device powered up (resets on restart)  |
-|          |returnedKWH  |Number   |yes      |Total returned energy, kwh                                                       |
-|          |reactiveWatts|Number   |yes      |Instantaneous reactive power, Watts                                              |
-|          |voltage      |Number   |yes      |RMS voltage, Volts                                                               |
-|          |current      |Number   |yes      |Current in A                                                                     |
-|          |powerFactor  |Number   |yes      |Power Factor in percent                                                          |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                                |
-|meter2    |currentWatts |Number   |yes      |Current power consumption in Watts                                               |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kwh since the device powered up (resets on restart)  |
-|          |returnedKWH  |Number   |yes      |Total returned energy, kwh                                                       |
-|          |reactiveWatts|Number   |yes      |Instantaneous reactive power, Watts                                              |
-|          |voltage      |Number   |yes      |RMS voltage, Volts                                                               |
-|          |current      |Number   |yes      |Current in A                                                                     |
-|          |powerFactor  |Number   |yes      |Power Factor in percent                                                          |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                                |
-|meter3    |currentWatts |Number   |yes      |Current power consumption in Watts                                               |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kwh since the device powered up (resets on restart)  |
-|          |returnedKWH  |Number   |yes      |Total returned energy, kwh                                                       |
-|          |reactiveWatts|Number   |yes      |Instantaneous reactive power, Watts                                              |
-|          |voltage      |Number   |yes      |RMS voltage, Volts                                                               |
-|          |current      |Number   |yes      |Current in A                                                                     |
-|          |powerFactor  |Number   |yes      |Power Factor in percent                                                          |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                                |
-
+| Group  | Channel       | Type     | read-only | Description                                                                       |
+| ------ | ------------- | -------- | --------- | --------------------------------------------------------------------------------- |
+| relay  | output        | Switch   | r/w       | Controls the relay's output channel (on/off)                                      |
+|        | outputName    | String   | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|        | input         | Switch   | yes       | ON: Input/Button is powered, see general notes on channels                        |
+|        | button        | Trigger  | yes       | Event trigger, see section Button Events                                          |
+|        | lastEvent     | String   | yes       | Last event type (S/SS/SSS/L)                                                      |
+|        | eventCount    | Number   | yes       | Counter gets incremented every time the device issues a button event.             |
+|        | autoOn        | Number   | r/w       | Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|        | autoOff       | Number   | r/w       | Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|        | timerActive   | Switch   | yes       | Relay #1: ON: An auto-on/off timer is active                                      |
+| meter1 | currentWatts  | Number   | yes       | Current power consumption in Watts                                                |
+|        | totalKWH      | Number   | yes       | Total energy consumption in kwh since the device powered up (resets on restart)   |
+|        | returnedKWH   | Number   | yes       | Total returned energy, kwh                                                        |
+|        | reactiveWatts | Number   | yes       | Instantaneous reactive power, Watts                                               |
+|        | voltage       | Number   | yes       | RMS voltage, Volts                                                                |
+|        | current       | Number   | yes       | Current in A                                                                      |
+|        | powerFactor   | Number   | yes       | Power Factor in percent                                                           |
+|        | lastUpdate    | DateTime | yes       | Timestamp of the last measurement                                                 |
+| meter2 | currentWatts  | Number   | yes       | Current power consumption in Watts                                                |
+|        | totalKWH      | Number   | yes       | Total energy consumption in kwh since the device powered up (resets on restart)   |
+|        | returnedKWH   | Number   | yes       | Total returned energy, kwh                                                        |
+|        | reactiveWatts | Number   | yes       | Instantaneous reactive power, Watts                                               |
+|        | voltage       | Number   | yes       | RMS voltage, Volts                                                                |
+|        | current       | Number   | yes       | Current in A                                                                      |
+|        | powerFactor   | Number   | yes       | Power Factor in percent                                                           |
+|        | lastUpdate    | DateTime | yes       | Timestamp of the last measurement                                                 |
+| meter3 | currentWatts  | Number   | yes       | Current power consumption in Watts                                                |
+|        | totalKWH      | Number   | yes       | Total energy consumption in kwh since the device powered up (resets on restart)   |
+|        | returnedKWH   | Number   | yes       | Total returned energy, kwh                                                        |
+|        | reactiveWatts | Number   | yes       | Instantaneous reactive power, Watts                                               |
+|        | voltage       | Number   | yes       | RMS voltage, Volts                                                                |
+|        | current       | Number   | yes       | Current in A                                                                      |
+|        | powerFactor   | Number   | yes       | Power Factor in percent                                                           |
+|        | lastUpdate    | DateTime | yes       | Timestamp of the last measurement                                                 |
 
 ### Shelly 2 - relay mode (thing-type: shelly2-relay)
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay1    |output       |Switch   |r/w      |Relay #1: Controls the relay's output channel (on/off)                           |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                       |
-|          |autoOn       |Number   |r/w      |Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #1: ON: An auto-on/off timer is active                                     |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|relay2    |output       |Switch   |r/w      |Relay #2: Controls the relay's output channel (on/off)                           |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                       |
-|          |autoOn       |Number   |r/w      |Relay #2: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #2: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #2: ON: An auto-on/off timer is active                                     |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|meter     |currentWatts |Number   |yes      |Current power consumption in Watts                                               |
-|          |lastPower1   |Number   |yes      |Energy consumption for a round minute, 1 minute  ago                             |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kwh since the device powered up (resets on restart)  |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                                |
+| Group  | Channel      | Type     | read-only | Description                                                                       |
+| ------ | ------------ | -------- | --------- | --------------------------------------------------------------------------------- |
+| relay1 | output       | Switch   | r/w       | Relay #1: Controls the relay's output channel (on/off)                            |
+|        | outputName   | String   | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|        | input        | Switch   | yes       | ON: Input/Button is powered, see General Notes on Channels                        |
+|        | autoOn       | Number   | r/w       | Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|        | autoOff      | Number   | r/w       | Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|        | timerActive  | Switch   | yes       | Relay #1: ON: An auto-on/off timer is active                                      |
+|        | button       | Trigger  | yes       | Event trigger, see section Button Events                                          |
+| relay2 | output       | Switch   | r/w       | Relay #2: Controls the relay's output channel (on/off)                            |
+|        | outputName   | String   | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|        | input        | Switch   | yes       | ON: Input/Button is powered, see General Notes on Channels                        |
+|        | autoOn       | Number   | r/w       | Relay #2: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|        | autoOff      | Number   | r/w       | Relay #2: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|        | timerActive  | Switch   | yes       | Relay #2: ON: An auto-on/off timer is active                                      |
+|        | button       | Trigger  | yes       | Event trigger, see section Button Events                                          |
+| meter  | currentWatts | Number   | yes       | Current power consumption in Watts                                                |
+|        | lastPower1   | Number   | yes       | Energy consumption for a round minute, 1 minute  ago                              |
+|        | totalKWH     | Number   | yes       | Total energy consumption in kwh since the device powered up (resets on restart)   |
+|        | lastUpdate   | DateTime | yes       | Timestamp of the last measurement                                                 |
 
 ### Shelly 2 - roller mode thing-type: shelly2-roller)
 
-|Group     |Channel      |Type     |read-only|Description                                                                           |
-|----------|-------------|---------|---------|--------------------------------------------------------------------------------------|
-|roller    |control      |Rollershutter|r/w  |can be open (0%), stop, or close (100%); could also handle ON (open) and OFF (close)  |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                            |
-|          |event        |Trigger  |yes      |Roller event/trigger with payload ROLLER_OPEN / ROLLER_CLOSE / ROLLER_STOP            |
-|          |rollerpos    |Number   |r/w      |Roller position: 100%=open...0%=closed; gets updated when the roller stops, see Notes |
-|          |rollerFav    |Number   |r/w      |Select roller position favorite (1-4, 0=no), see Notes                                |
-|          |state        |String   |yes      |Roller state: open/close/stop                                                         |
-|          |stopReason   |String   |yes      |Last stop reasons: normal, safety_switch or obstacle                                  |
-|          |safety       |Switch   |yes      |Indicates status of the Safety Switch, ON=problem detected, powered off               |
-|meter     |currentWatts |Number   |yes      |Current power consumption in Watts                                                    |
-|          |lastPower1   |Number   |yes      |Accumulated energy consumption in Watts for the full last minute                      |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kwh since the device powered up (reset on restart)        |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                                     |
-
-*Note: The Roller should be calibrated using the device Web UI or Shelly App, otherwise the position can't be set.*
+| Group  | Channel      | Type          | read-only | Description                                                                           |
+| ------ | ------------ | ------------- | --------- | ------------------------------------------------------------------------------------- |
+| roller | control      | Rollershutter | r/w       | can be open (0%), stop, or close (100%); could also handle ON (open) and OFF (close)  |
+|        | input        | Switch        | yes       | ON: Input/Button is powered, see General Notes on Channels                            |
+|        | event        | Trigger       | yes       | Roller event/trigger with payload ROLLER_OPEN / ROLLER_CLOSE / ROLLER_STOP            |
+|        | rollerpos    | Number        | r/w       | Roller position: 100%=open...0%=closed; gets updated when the roller stops, see Notes |
+|        | rollerFav    | Number        | r/w       | Select roller position favorite (1-4, 0=no), see Notes                                |
+|        | state        | String        | yes       | Roller state: open/close/stop                                                         |
+|        | stopReason   | String        | yes       | Last stop reasons: normal, safety_switch or obstacle                                  |
+|        | safety       | Switch        | yes       | Indicates status of the Safety Switch, ON=problem detected, powered off               |
+| meter  | currentWatts | Number        | yes       | Current power consumption in Watts                                                    |
+|        | lastPower1   | Number        | yes       | Accumulated energy consumption in Watts for the full last minute                      |
+|        | totalKWH     | Number        | yes       | Total energy consumption in kwh since the device powered up (reset on restart)        |
+|        | lastUpdate   | DateTime      | yes       | Timestamp of the last measurement                                                     |
+
+_Note: The Roller should be calibrated using the device Web UI or Shelly App, otherwise the position can't be set._
 
 The roller positioning calibration has to be performed using the Shelly Web UI or App before the position can be set in percent.
-Refer to [Smartify Roller Shutters with openHAB and Shelly](doc/UseCaseSmartRoller.md) for more information on roller integration. 
+Refer to [Smartify Roller Shutters with openHAB and Shelly](doc/UseCaseSmartRoller.md) for more information on roller integration.
 
-### Shelly 2.5 - relay mode (thing-type:shelly25-relay) 
+### Shelly 2.5 - relay mode (thing-type:shelly25-relay)
 
 The Shelly 2.5 includes 2 meters, one for each channel.
 Firmware 1.9.2 or newer is required to use the roller position favorites, which are defined in the Shelly App.
 
-
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay1    |             |         |         |See group relay1 for Shelly 2                                                    |
-|relay2    |             |         |         |See group relay1 for Shelly 2                                                    |
-|meter1    |             |         |         |See group meter1 for Shelly 2                                                    |
-|meter2    |             |         |         |See group meter1 for Shelly 2                                                    |
+| Group  | Channel | Type | read-only | Description                   |
+| ------ | ------- | ---- | --------- | ----------------------------- |
+| relay1 |         |      |           | See group relay1 for Shelly 2 |
+| relay2 |         |      |           | See group relay1 for Shelly 2 |
+| meter1 |         |      |           | See group meter1 for Shelly 2 |
+| meter2 |         |      |           | See group meter1 for Shelly 2 |
 
 ### Shelly 2.5 - roller mode (thing-type: shelly25-roller)
 
@@ -591,65 +585,64 @@ The Shelly 2.5 includes 2 meters, one for each channel.
 However, it doesn't make sense to differ power consumption for the roller moving up vs. moving down.
 For this the binding aggregates the power consumption of both relays and includes the values in "meter1".
 
-|Group     |Channel      |Type     |read-only|Description                                                                          |
-|----------|-------------|---------|---------|-------------------------------------------------------------------------------------|
-|roller    |control      |Rollershutter |r/w |can be open (0%), stop, or close (100%); could also handle ON (open) and OFF (close) |
-|          |rollerpos    |Dimmer   |r/w      |Roller position: 100%=open...0%=closed; gets updated when the roller stopped         |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                           |
-|          |state        |String   |yes      |Roller state: open/close/stop                                                        |
-|          |stopReason   |String   |yes      |Last stop reasons: normal, safety_switch or obstacle                                 |
-|          |safety       |Switch   |yes      |Indicates status of the Safety Switch, ON=problem detected, powered off              |
-|          |event        |Trigger  |yes      |Roller event/trigger with payload ROLLER_OPEN / ROLLER_CLOSE / ROLLER_STOP           |
-|meter1    |             |         |         |See group meter1 for Shelly 2                                                        |
-|meter2    |             |         |         |See group meter1 for Shelly 2                                                        |
+| Group  | Channel    | Type          | read-only | Description                                                                          |
+| ------ | ---------- | ------------- | --------- | ------------------------------------------------------------------------------------ |
+| roller | control    | Rollershutter | r/w       | can be open (0%), stop, or close (100%); could also handle ON (open) and OFF (close) |
+|        | rollerpos  | Dimmer        | r/w       | Roller position: 100%=open...0%=closed; gets updated when the roller stopped         |
+|        | input      | Switch        | yes       | ON: Input/Button is powered, see General Notes on Channels                           |
+|        | state      | String        | yes       | Roller state: open/close/stop                                                        |
+|        | stopReason | String        | yes       | Last stop reasons: normal, safety_switch or obstacle                                 |
+|        | safety     | Switch        | yes       | Indicates status of the Safety Switch, ON=problem detected, powered off              |
+|        | event      | Trigger       | yes       | Roller event/trigger with payload ROLLER_OPEN / ROLLER_CLOSE / ROLLER_STOP           |
+| meter1 |            |               |           | See group meter1 for Shelly 2                                                        |
+| meter2 |            |               |           | See group meter1 for Shelly 2                                                        |
 
 The roller positioning calibration has to be performed using the Shelly Web UI or App before the position can be set in percent.
-Refer to [Smartify Roller Shutters with openHAB and Shelly](doc/UseCaseSmartRoller.md) for more information on roller integration. 
+Refer to [Smartify Roller Shutters with openHAB and Shelly](doc/UseCaseSmartRoller.md) for more information on roller integration.
 
 ### Shelly4 Pro (thing-type: shelly4pro)
 
 The Shelly 4Pro provides 4 relays and 4 power meters.
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay1    |             |         |         |See group relay1 for Shelly 2                                                    |
-|relay2    |             |         |         |See group relay1 for Shelly 2                                                    |
-|relay3    |             |         |         |See group relay1 for Shelly 2                                                    |
-|relay4    |             |         |         |See group relay1 for Shelly 2                                                    |
-|meter1    |             |         |         |See group meter1 for Shelly 2                                                    |
-|meter2    |             |         |         |See group meter1 for Shelly 2                                                    |
-|meter3    |             |         |         |See group meter1 for Shelly 2                                                    |
-|meter4    |             |         |         |See group meter1 for Shelly 2                                                    |
+
+| Group  | Channel | Type | read-only | Description                   |
+| ------ | ------- | ---- | --------- | ----------------------------- |
+| relay1 |         |      |           | See group relay1 for Shelly 2 |
+| relay2 |         |      |           | See group relay1 for Shelly 2 |
+| relay3 |         |      |           | See group relay1 for Shelly 2 |
+| relay4 |         |      |           | See group relay1 for Shelly 2 |
+| meter1 |         |      |           | See group meter1 for Shelly 2 |
+| meter2 |         |      |           | See group meter1 for Shelly 2 |
+| meter3 |         |      |           | See group meter1 for Shelly 2 |
+| meter4 |         |      |           | See group meter1 for Shelly 2 |
 
 ### Shelly Plug-S (thing-type: shellyplugs)
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay     |             |         |         |See group relay1 for Shelly 2                                                    |
-|meter     |             |         |         |See group meter1 for Shelly 2                                                    |
+| Group | Channel | Type | read-only | Description                   |
+| ----- | ------- | ---- | --------- | ----------------------------- |
+| relay |         |      |           | See group relay1 for Shelly 2 |
+| meter |         |      |           | See group meter1 for Shelly 2 |
 
 ### Shelly Dimmer 1 + 2 (thing-type: shellydimmer, shellydimmer2)
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay     |brightness   |Dimmer   |r/w      |Currently selected brightness.                                                   |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input1       |Switch   |yes      |ON: Input/Button for input 1 is powered, see general notes on channels           |
-|          |button1      |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|          |lastEvent1   |String   |yes      |Last event type (S/SS/SSS/L) for input 1                                         |
-|          |eventCount1  |Number   |yes      |Counter gets incremented every time the device issues a button event.            |
-|          |input2       |Switch   |yes      |ON: Input/Button for channel 2 is powered, see general notes on channels         |
-|          |button2      |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|          |lastEvent2   |String   |yes      |Last event type (S/SS/SSS/L) for input 2                                         |
-|          |eventCount2  |Number   |yes      |Counter gets incremented every time the device issues a button event.            |
-|          |autoOn       |Number   |r/w      |Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #1: ON: An auto-on/off timer is active                                     |
-|meter     |currentWatts |Number   |yes      |Current power consumption in Watts                                               |
-|          |lastPower1   |Number   |yes      |Energy consumption for a round minute, 1 minute  ago                             |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kwh since the device powered up (resets on restart)  |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                                |
-
+| Group | Channel      | Type     | read-only | Description                                                                       |
+| ----- | ------------ | -------- | --------- | --------------------------------------------------------------------------------- |
+| relay | brightness   | Dimmer   | r/w       | Currently selected brightness.                                                    |
+|       | outputName   | String   | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|       | input1       | Switch   | yes       | ON: Input/Button for input 1 is powered, see general notes on channels            |
+|       | button1      | Trigger  | yes       | Event trigger, see section Button Events                                          |
+|       | lastEvent1   | String   | yes       | Last event type (S/SS/SSS/L) for input 1                                          |
+|       | eventCount1  | Number   | yes       | Counter gets incremented every time the device issues a button event.             |
+|       | input2       | Switch   | yes       | ON: Input/Button for channel 2 is powered, see general notes on channels          |
+|       | button2      | Trigger  | yes       | Event trigger, see section Button Events                                          |
+|       | lastEvent2   | String   | yes       | Last event type (S/SS/SSS/L) for input 2                                          |
+|       | eventCount2  | Number   | yes       | Counter gets incremented every time the device issues a button event.             |
+|       | autoOn       | Number   | r/w       | Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|       | autoOff      | Number   | r/w       | Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|       | timerActive  | Switch   | yes       | Relay #1: ON: An auto-on/off timer is active                                      |
+| meter | currentWatts | Number   | yes       | Current power consumption in Watts                                                |
+|       | lastPower1   | Number   | yes       | Energy consumption for a round minute, 1 minute  ago                              |
+|       | totalKWH     | Number   | yes       | Total energy consumption in kwh since the device powered up (resets on restart)   |
+|       | lastUpdate   | DateTime | yes       | Timestamp of the last measurement                                                 |
 
 `Note: The Dimmer should be calibrated using the device Web UI or Shelly App.`
 
@@ -659,147 +652,145 @@ Using the Thing configuration option `brightnessAutoOn` you could decide if the
 
 ### Shelly ix3 (thing-type: shellyix3)
 
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|status1   |input        |Switch   |yes      |State of Input 1                                                       |
-|          |button       |Trigger  |yes      |Event trigger: Event trigger, see section Button Events                |
-|          |lastEvent    |String   |yes      |S/SS/SSS for 1/2/3x Shortpush or L for Longpush                        |
-|          |eventCount   |Number   |yes      |Counter gets incremented every time the device issues a button event.  |
-|status2   |             |         |         |Same for Input 2                                                       |
-|status3   |             |         |         |Same for Input 3                                                       |
+| Group   | Channel    | Type    | read-only | Description                                                           |
+| ------- | ---------- | ------- | --------- | --------------------------------------------------------------------- |
+| status1 | input      | Switch  | yes       | State of Input 1                                                      |
+|         | button     | Trigger | yes       | Event trigger: Event trigger, see section Button Events               |
+|         | lastEvent  | String  | yes       | S/SS/SSS for 1/2/3x Shortpush or L for Longpush                       |
+|         | eventCount | Number  | yes       | Counter gets incremented every time the device issues a button event. |
+| status2 |            |         |           | Same for Input 2                                                      |
+| status3 |            |         |           | Same for Input 3                                                      |
 
 Channels lastEvent and eventCount are only available if input type is set to momentary button
 
 ### Shelly UNI (thing-type: shellyuni)
 
-|Group     |Channel      |Type     |read-only|Description                                                                 |
-|----------|-------------|---------|---------|----------------------------------------------------------------------------|
-|relay1    |             |         |         |See group relay1 for Shelly 2, no autoOn/autoOff/timerActive channels       |
-|relay2    |             |         |         |See group relay1 for Shelly 2, no autoOn/autoOff/timerActive channels       |
-|sensors   |temperature1 |Number   |yes      |Temperature value of external sensor #1 (if connected to temp/hum addon)    |
-|          |temperature2 |Number   |yes      |Temperature value of external sensor #2 (if connected to temp/hum addon)    |
-|          |temperature3 |Number   |yes      |Temperature value of external sensor #3 (if connected to temp/hum addon)    |
-|          |humidity     |Number   |yes      |Humidity in percent (if connected to temp/hum addon)                        |
-|          |voltage      |Number   |yes      |ADCS voltage                                                                |
-|status    |input1       |Switch   |yes      |State of Input 1                                                            |
-|          |input2       |Switch   |yes      |State of Input 2                                                            |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                                    |
-|          |lastEvent    |String   |yes      |S/SS/SSS for 1/2/3x Shortpush or L for Longpush                             |
-|          |eventCount   |Number   |yes      |Counter gets incremented every time the device issues a button event.       |
+| Group   | Channel      | Type    | read-only | Description                                                              |
+| ------- | ------------ | ------- | --------- | ------------------------------------------------------------------------ |
+| relay1  |              |         |           | See group relay1 for Shelly 2, no autoOn/autoOff/timerActive channels    |
+| relay2  |              |         |           | See group relay1 for Shelly 2, no autoOn/autoOff/timerActive channels    |
+| sensors | temperature1 | Number  | yes       | Temperature value of external sensor #1 (if connected to temp/hum addon) |
+|         | temperature2 | Number  | yes       | Temperature value of external sensor #2 (if connected to temp/hum addon) |
+|         | temperature3 | Number  | yes       | Temperature value of external sensor #3 (if connected to temp/hum addon) |
+|         | humidity     | Number  | yes       | Humidity in percent (if connected to temp/hum addon)                     |
+|         | voltage      | Number  | yes       | ADCS voltage                                                             |
+| status  | input1       | Switch  | yes       | State of Input 1                                                         |
+|         | input2       | Switch  | yes       | State of Input 2                                                         |
+|         | button       | Trigger | yes       | Event trigger, see section Button Events                                 |
+|         | lastEvent    | String  | yes       | S/SS/SSS for 1/2/3x Shortpush or L for Longpush                          |
+|         | eventCount   | Number  | yes       | Counter gets incremented every time the device issues a button event.    |
 
 ### Shelly Bulb (thing-type: shellybulb)
 
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|control   |power        |Switch   |r/w      |Switch light ON/OFF                                                    |
-|          |mode         |Switch   |r/w      |Color mode: color or white                                             |
-|          |autoOn       |Number   |r/w      |Sets a  timer to turn the device ON after every OFF; in sec            |
-|          |autoOff      |Number   |r/w      |Sets a  timer to turn the device OFF after every ON: in sec            |
-|          |timerActive  |Switch   |yes      |ON: An auto-on/off timer is active                                     |
-|color     |             |         |         |Color settings: only valid in COLOR mode                               |
-|          |hsb          |HSB      |r/w      |Represents the color picker (HSBType), control r/g/b, but not white    |
-|          |full         |String   |r/w      |Set Red / Green / Blue / Yellow / White mode and switch mode           |
-|          |             |         |r/w      |Valid settings: "red", "green", "blue", "yellow", "white" or "r,g,b,w" | 
-|          |red          |Dimmer   |r/w      |Red brightness: 0..100% or 0..255 (control only the red channel)       |
-|          |green        |Dimmer   |r/w      |Green brightness: 0..100% or 0..255 (control only the green channel)   |
-|          |blue         |Dimmer   |r/w      |Blue brightness: 0..100% or 0..255 (control only the blue channel)     |
-|          |white        |Dimmer   |r/w      |White brightness: 0..100% or 0..255 (control only the white channel)   |
-|          |gain         |Dimmer   |r/w      |Gain setting: 0..100%     or 0..100                                    |
-|          |effect       |Number   |r/w      |Puts the light into effect mode: 0..6)                                 |
-|          |             |         |         |  0=No effect, 1=Meteor Shows, 2=Gradual Change, 3=Breath              |
-|          |             |         |         |  4=Flash, 5=On/Off Gradual, 6=Red/Green Change                        |
-|white     |             |         |         |Color settings: only valid in WHITE mode                               |
-|          |temperature  |Number   |r/w      |color temperature (K): 0..100% or 3000..6500                           |
-|          |brightness   |Dimmer   |         |Brightness: 0..100% or 0..100                                          |
+| Group   | Channel     | Type   | read-only | Description                                                            |
+| ------- | ----------- | ------ | --------- | ---------------------------------------------------------------------- |
+| control | power       | Switch | r/w       | Switch light ON/OFF                                                    |
+|         | mode        | Switch | r/w       | Color mode: color or white                                             |
+|         | autoOn      | Number | r/w       | Sets a  timer to turn the device ON after every OFF; in sec            |
+|         | autoOff     | Number | r/w       | Sets a  timer to turn the device OFF after every ON: in sec            |
+|         | timerActive | Switch | yes       | ON: An auto-on/off timer is active                                     |
+| color   |             |        |           | Color settings: only valid in COLOR mode                               |
+|         | hsb         | HSB    | r/w       | Represents the color picker (HSBType), control r/g/b, but not white    |
+|         | full        | String | r/w       | Set Red / Green / Blue / Yellow / White mode and switch mode           |
+|         |             |        | r/w       | Valid settings: "red", "green", "blue", "yellow", "white" or "r,g,b,w" |
+|         | red         | Dimmer | r/w       | Red brightness: 0..100% or 0..255 (control only the red channel)       |
+|         | green       | Dimmer | r/w       | Green brightness: 0..100% or 0..255 (control only the green channel)   |
+|         | blue        | Dimmer | r/w       | Blue brightness: 0..100% or 0..255 (control only the blue channel)     |
+|         | white       | Dimmer | r/w       | White brightness: 0..100% or 0..255 (control only the white channel)   |
+|         | gain        | Dimmer | r/w       | Gain setting: 0..100%     or 0..100                                    |
+|         | effect      | Number | r/w       | Puts the light into effect mode: 0..6)                                 |
+|         |             |        |           | 0=No effect, 1=Meteor Shows, 2=Gradual Change, 3=Breath                |
+|         |             |        |           | 4=Flash, 5=On/Off Gradual, 6=Red/Green Change                          |
+| white   |             |        |           | Color settings: only valid in WHITE mode                               |
+|         | temperature | Number | r/w       | color temperature (K): 0..100% or 3000..6500                           |
+|         | brightness  | Dimmer |           | Brightness: 0..100% or 0..100                                          |
 
 Note: The openHAB color picker has only values for red/green/blue (RGB), not for white as supported by the RGBW2.
 Beside channel `hsb` the binding also offers the `white` channel (hsb as only RGB values).
 Or control each color separately with channels `red`, `blue`, `green` (those are advanced channels).
 
-
 ### Shelly Duo (thing-type: shellybulbduo)
 
 This information applies to the Shelly Duo-1 as well as the Duo White for the G10 socket.
 
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|control   |autoOn       |Number   |r/w      |Sets a  timer to turn the device ON after every OFF; in sec            |
-|          |autoOff      |Number   |r/w      |Sets a  timer to turn the device OFF after every ON: in sec            |
-|          |timerActive  |Switch   |yes      |ON: An auto-on/off timer is active                                     |
-|white     |             |         |         |Color settings: only valid in WHITE mode                               |
-|          |temperature  |Number   |r/w      |color temperature (K): 0..100% or 2700..6500                           |
-|          |brightness   |Dimmer   |         |Brightness: 0..100% or 0..100                                          |
-|meter     |currentWatts |Number   |yes      |Current power consumption in Watts                                     |
-|          |lastPower1   |Number   |yes      |Energy consumption in Watts for a round minute, 1 minute  ago          |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kwh since the device powered up (resets on restart)|
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                      |
+| Group   | Channel      | Type     | read-only | Description                                                                     |
+| ------- | ------------ | -------- | --------- | ------------------------------------------------------------------------------- |
+| control | autoOn       | Number   | r/w       | Sets a  timer to turn the device ON after every OFF; in sec                     |
+|         | autoOff      | Number   | r/w       | Sets a  timer to turn the device OFF after every ON: in sec                     |
+|         | timerActive  | Switch   | yes       | ON: An auto-on/off timer is active                                              |
+| white   |              |          |           | Color settings: only valid in WHITE mode                                        |
+|         | temperature  | Number   | r/w       | color temperature (K): 0..100% or 2700..6500                                    |
+|         | brightness   | Dimmer   |           | Brightness: 0..100% or 0..100                                                   |
+| meter   | currentWatts | Number   | yes       | Current power consumption in Watts                                              |
+|         | lastPower1   | Number   | yes       | Energy consumption in Watts for a round minute, 1 minute  ago                   |
+|         | totalKWH     | Number   | yes       | Total energy consumption in kwh since the device powered up (resets on restart) |
+|         | lastUpdate   | DateTime | yes       | Timestamp of the last measurement                                               |
+
 ### Shelly Vintage (thing-type: shellyvintage)
 
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|control   |autoOn       |Number   |r/w      |Sets a  timer to turn the device ON after every OFF; in sec            |
-|          |autoOff      |Number   |r/w      |Sets a  timer to turn the device OFF after every ON: in sec            |
-|          |timerActive  |Switch   |yes      |ON: An auto-on/off timer is active                                     |
-|white     |             |         |         |Color settings: only valid in WHITE mode                               |
-|          |brightness   |Dimmer   |         |Brightness: 0..100% or 0..100                                          |
-|meter     |currentWatts |Number   |yes      |Current power consumption in Watts                                     |
-|          |lastPower1   |Number   |yes      |Energy consumption for a round minute, 1 minute  ago                   |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kWh since the device powered up (resets on restart)|
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                      |
+| Group   | Channel      | Type     | read-only | Description                                                                     |
+| ------- | ------------ | -------- | --------- | ------------------------------------------------------------------------------- |
+| control | autoOn       | Number   | r/w       | Sets a  timer to turn the device ON after every OFF; in sec                     |
+|         | autoOff      | Number   | r/w       | Sets a  timer to turn the device OFF after every ON: in sec                     |
+|         | timerActive  | Switch   | yes       | ON: An auto-on/off timer is active                                              |
+| white   |              |          |           | Color settings: only valid in WHITE mode                                        |
+|         | brightness   | Dimmer   |           | Brightness: 0..100% or 0..100                                                   |
+| meter   | currentWatts | Number   | yes       | Current power consumption in Watts                                              |
+|         | lastPower1   | Number   | yes       | Energy consumption for a round minute, 1 minute  ago                            |
+|         | totalKWH     | Number   | yes       | Total energy consumption in kWh since the device powered up (resets on restart) |
+|         | lastUpdate   | DateTime | yes       | Timestamp of the last measurement                                               |
+
 ### Shelly Duo Color (thing-type: shellyduocolor-color)
 
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|control   |power        |Switch   |r/w      |Switch light ON/OFF                                                    |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                               |
-|          |autoOn       |Number   |r/w      |Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |ON: An auto-on/off timer is active                                     |
-|color     |             |         |         |Color settings: only valid in COLOR mode                               |
-|          |hsb          |HSB      |r/w      |Represents the color picker (HSBType), control r/g/b, but not white    |
-|          |full         |String   |r/w      |Set Red / Green / Blue / Yellow / White mode and switch mode           |
-|          |             |         |r/w      |Valid settings: "red", "green", "blue", "yellow", "white" or "r,g,b,w" | 
-|          |red          |Dimmer   |r/w      |Red brightness: 0..100% or 0..255 (control only the red channel)       |
-|          |green        |Dimmer   |r/w      |Green brightness: 0..100% or 0..255 (control only the green channel)   |
-|          |blue         |Dimmer   |r/w      |Blue brightness: 0..100% or 0..255 (control only the blue channel)     |
-|          |white        |Dimmer   |r/w      |White brightness: 0..100% or 0..255 (control only the white channel)   |
-|          |gain         |Dimmer   |r/w      |Gain setting: 0..100%     or 0..100                                    |
-|          |effect       |Number   |r/w      |Puts the light into effect mode: 0=No effect, 1=Meteor Shower, 2=Gradual Change, 3=Flash |
-|white     |             |         |         |Color settings: only valid in WHITE mode                               |
-|          |temperature  |Number   |r/w      |color temperature (K): 0..100% or 3000..6500                           |
-|          |brightness   |Dimmer   |         |Brightness: 0..100% or 0..100                                          |
-|meter     |currentWatts |Number   |yes      |Current power consumption in Watts                                     |
+| Group   | Channel      | Type    | read-only | Description                                                                              |
+| ------- | ------------ | ------- | --------- | ---------------------------------------------------------------------------------------- |
+| control | power        | Switch  | r/w       | Switch light ON/OFF                                                                      |
+|         | button       | Trigger | yes       | Event trigger, see section Button Events                                                 |
+|         | autoOn       | Number  | r/w       | Sets a  timer to turn the device ON after every OFF command; in seconds                  |
+|         | autoOff      | Number  | r/w       | Sets a  timer to turn the device OFF after every ON command; in seconds                  |
+|         | timerActive  | Switch  | yes       | ON: An auto-on/off timer is active                                                       |
+| color   |              |         |           | Color settings: only valid in COLOR mode                                                 |
+|         | hsb          | HSB     | r/w       | Represents the color picker (HSBType), control r/g/b, but not white                      |
+|         | full         | String  | r/w       | Set Red / Green / Blue / Yellow / White mode and switch mode                             |
+|         |              |         | r/w       | Valid settings: "red", "green", "blue", "yellow", "white" or "r,g,b,w"                   |
+|         | red          | Dimmer  | r/w       | Red brightness: 0..100% or 0..255 (control only the red channel)                         |
+|         | green        | Dimmer  | r/w       | Green brightness: 0..100% or 0..255 (control only the green channel)                     |
+|         | blue         | Dimmer  | r/w       | Blue brightness: 0..100% or 0..255 (control only the blue channel)                       |
+|         | white        | Dimmer  | r/w       | White brightness: 0..100% or 0..255 (control only the white channel)                     |
+|         | gain         | Dimmer  | r/w       | Gain setting: 0..100%     or 0..100                                                      |
+|         | effect       | Number  | r/w       | Puts the light into effect mode: 0=No effect, 1=Meteor Shower, 2=Gradual Change, 3=Flash |
+| white   |              |         |           | Color settings: only valid in WHITE mode                                                 |
+|         | temperature  | Number  | r/w       | color temperature (K): 0..100% or 3000..6500                                             |
+|         | brightness   | Dimmer  |           | Brightness: 0..100% or 0..100                                                            |
+| meter   | currentWatts | Number  | yes       | Current power consumption in Watts                                                       |
 
 Using the Thing configuration option `brightnessAutoOn` you could decide if the light is turned on when a brightness > 0 is set.
 `true`:  Brightness will be set and device output is powered = light turns on with the new brightness
 `false`: Brightness will be set, but output stays unchanged so light will not be switched on when it's currently off.
 
-
 ### Shelly Duo RGBW Color Bulb (thing-type: shellycolorbulb)
 
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|control   |power        |Switch   |r/w      |Switch light ON/OFF                                                    |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                               |
-|          |autoOn       |Number   |r/w      |Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |ON: An auto-on/off timer is active                                     |
-|color     |             |         |         |Color settings: only valid in COLOR mode                               |
-|          |hsb          |HSB      |r/w      |Represents the color picker (HSBType), control r/g/b, bight not white  |
-|          |full         |String   |r/w      |Set Red / Green / Blue / Yellow / White mode and switch mode           |
-|          |             |         |r/w      |Valid settings: "red", "green", "blue", "yellow", "white" or "r,g,b,w" | 
-|          |red          |Dimmer   |r/w      |Red brightness: 0..100% or 0..255 (control only the red channel)       |
-|          |green        |Dimmer   |r/w      |Green brightness: 0..100% or 0..255 (control only the green channel)   |
-|          |blue         |Dimmer   |r/w      |Blue brightness: 0..100% or 0..255 (control only the blue channel)     |
-|          |white        |Dimmer   |r/w      |White brightness: 0..100% or 0..255 (control only the white channel)   |
-|          |gain         |Dimmer   |r/w      |Gain setting: 0..100%     or 0..100                                    |
-|          |effect       |Number   |r/w      |Puts the light into effect mode: 0..3)                                 |
-|          |             |         |         |0=No effect, 1=Meteor Shower, 2=Gradual Change, 3=Flash                |
-|meter     |currentWatts |Number   |yes      |Current power consumption in Watts                                     |
-
-Channels in group `color`or `white`apply depending on the selected mode - they are not active at the same time. 
+| Group   | Channel      | Type    | read-only | Description                                                             |
+| ------- | ------------ | ------- | --------- | ----------------------------------------------------------------------- |
+| control | power        | Switch  | r/w       | Switch light ON/OFF                                                     |
+|         | button       | Trigger | yes       | Event trigger, see section Button Events                                |
+|         | autoOn       | Number  | r/w       | Sets a  timer to turn the device ON after every OFF command; in seconds |
+|         | autoOff      | Number  | r/w       | Sets a  timer to turn the device OFF after every ON command; in seconds |
+|         | timerActive  | Switch  | yes       | ON: An auto-on/off timer is active                                      |
+| color   |              |         |           | Color settings: only valid in COLOR mode                                |
+|         | hsb          | HSB     | r/w       | Represents the color picker (HSBType), control r/g/b, bight not white   |
+|         | full         | String  | r/w       | Set Red / Green / Blue / Yellow / White mode and switch mode            |
+|         |              |         | r/w       | Valid settings: "red", "green", "blue", "yellow", "white" or "r,g,b,w"  |
+|         | red          | Dimmer  | r/w       | Red brightness: 0..100% or 0..255 (control only the red channel)        |
+|         | green        | Dimmer  | r/w       | Green brightness: 0..100% or 0..255 (control only the green channel)    |
+|         | blue         | Dimmer  | r/w       | Blue brightness: 0..100% or 0..255 (control only the blue channel)      |
+|         | white        | Dimmer  | r/w       | White brightness: 0..100% or 0..255 (control only the white channel)    |
+|         | gain         | Dimmer  | r/w       | Gain setting: 0..100%     or 0..100                                     |
+|         | effect       | Number  | r/w       | Puts the light into effect mode: 0..3)                                  |
+|         |              |         |           | 0=No effect, 1=Meteor Shower, 2=Gradual Change, 3=Flash                 |
+| meter   | currentWatts | Number  | yes       | Current power consumption in Watts                                      |
+
+Channels in group `color`or `white`apply depending on the selected mode - they are not active at the same time.
 
 Using the Thing configuration option `brightnessAutoOn` you could decide if the light is turned on when a brightness > 0 is set.
 `true`:  Brightness will be set and device output is powered = light turns on with the new brightness
@@ -807,56 +798,56 @@ Using the Thing configuration option `brightnessAutoOn` you could decide if the
 
 ### Shelly RGBW2 in Color Mode (thing-type: shellyrgbw2-color)
 
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|control   |power        |Switch   |r/w      |Switch light ON/OFF                                                    |
-|          |autoOn       |Number   |r/w      |Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |ON: An auto-on/off timer is active                                     |
-|color     |hsb          |HSB      |r/w      |Represents the color picker (HSBType), control r/g/b, bight not white  |
-|          |full         |String   |r/w      |Set Red / Green / Blue / Yellow / White mode and switch mode           |
-|          |             |         |r/w      |Valid settings: "red", "green", "blue", "yellow", "white" or "r,g,b,w" | 
-|          |red          |Dimmer   |r/w      |Red brightness: 0..100% or 0..255 (control only the red channel)       |
-|          |green        |Dimmer   |r/w      |Green brightness: 0..100% or 0..255 (control only the green channel)   |
-|          |blue         |Dimmer   |r/w      |Blue brightness: 0..100% or 0..255 (control only the blue channel)     |
-|          |white        |Dimmer   |r/w      |White brightness: 0..100% or 0..255 (control only the white channel)   |
-|          |gain         |Dimmer   |r/w      |Gain setting: 0..100%     or 0..100                                    |
-|          |effect       |Number   |r/w      |Puts the light into effect mode: 0..3)                                 |
-|          |             |         |         |0=No effect, 1=Meteor Shower, 2=Gradual Change, 3=Flash                |
-|meter     |currentWatts |Number   |yes      |Current power consumption in Watts                                     |
-|          |lastPower1   |Number   |yes      |Energy consumption for a round minute, 1 minute  ago                   |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kWh since the device powered up (resets on restart)|
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                      |
+| Group   | Channel      | Type     | read-only | Description                                                                     |
+| ------- | ------------ | -------- | --------- | ------------------------------------------------------------------------------- |
+| control | power        | Switch   | r/w       | Switch light ON/OFF                                                             |
+|         | autoOn       | Number   | r/w       | Sets a  timer to turn the device ON after every OFF command; in seconds         |
+|         | autoOff      | Number   | r/w       | Sets a  timer to turn the device OFF after every ON command; in seconds         |
+|         | timerActive  | Switch   | yes       | ON: An auto-on/off timer is active                                              |
+| color   | hsb          | HSB      | r/w       | Represents the color picker (HSBType), control r/g/b, bight not white           |
+|         | full         | String   | r/w       | Set Red / Green / Blue / Yellow / White mode and switch mode                    |
+|         |              |          | r/w       | Valid settings: "red", "green", "blue", "yellow", "white" or "r,g,b,w"          |
+|         | red          | Dimmer   | r/w       | Red brightness: 0..100% or 0..255 (control only the red channel)                |
+|         | green        | Dimmer   | r/w       | Green brightness: 0..100% or 0..255 (control only the green channel)            |
+|         | blue         | Dimmer   | r/w       | Blue brightness: 0..100% or 0..255 (control only the blue channel)              |
+|         | white        | Dimmer   | r/w       | White brightness: 0..100% or 0..255 (control only the white channel)            |
+|         | gain         | Dimmer   | r/w       | Gain setting: 0..100%     or 0..100                                             |
+|         | effect       | Number   | r/w       | Puts the light into effect mode: 0..3)                                          |
+|         |              |          |           | 0=No effect, 1=Meteor Shower, 2=Gradual Change, 3=Flash                         |
+| meter   | currentWatts | Number   | yes       | Current power consumption in Watts                                              |
+|         | lastPower1   | Number   | yes       | Energy consumption for a round minute, 1 minute  ago                            |
+|         | totalKWH     | Number   | yes       | Total energy consumption in kWh since the device powered up (resets on restart) |
+|         | lastUpdate   | DateTime | yes       | Timestamp of the last measurement                                               |
 
 ### Shelly RGBW2 in White Mode (thing-type: shellyrgbw2-white)
 
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|control   |input        |Switch   |yes      |State of Input                                                         |
-|channel1  |brightness   |Dimmer   |r/w      |Channel 1: Brightness: 0..100, control power state with ON/OFF         |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                               |
-|          |autoOn       |Number   |r/w      |Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |ON: An auto-on/off timer is active                                     |
-|channel2  |brightness   |Dimmer   |r/w      |Channel 2: Brightness: 0..100, control power state with ON/OFF         |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                               |
-|          |autoOn       |Number   |r/w      |Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |ON: An auto-on/off timer is active                                     |
-|channel3  |brightness   |Dimmer   |r/w      |Channel 3: Brightness: 0..100, control power state with ON/OFF         |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                               |
-|          |autoOn       |Number   |r/w      |Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |ON: An auto-on/off timer is active                                     |
-|channel4  |brightness   |Dimmer   |r/w      |Channel 4: Brightness: 0..100, control power state with ON/OFF         |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                               |
-|          |autoOn       |Number   |r/w      |Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |ON: An auto-on/off timer is active                                     |
-|meter     |currentWatts |Number   |yes      |Current power consumption in Watts (all channels)                      |
+| Group    | Channel      | Type    | read-only | Description                                                             |
+| -------- | ------------ | ------- | --------- | ----------------------------------------------------------------------- |
+| control  | input        | Switch  | yes       | State of Input                                                          |
+| channel1 | brightness   | Dimmer  | r/w       | Channel 1: Brightness: 0..100, control power state with ON/OFF          |
+|          | button       | Trigger | yes       | Event trigger, see section Button Events                                |
+|          | autoOn       | Number  | r/w       | Sets a  timer to turn the device ON after every OFF command; in seconds |
+|          | autoOff      | Number  | r/w       | Sets a  timer to turn the device OFF after every ON command; in seconds |
+|          | timerActive  | Switch  | yes       | ON: An auto-on/off timer is active                                      |
+| channel2 | brightness   | Dimmer  | r/w       | Channel 2: Brightness: 0..100, control power state with ON/OFF          |
+|          | button       | Trigger | yes       | Event trigger, see section Button Events                                |
+|          | autoOn       | Number  | r/w       | Sets a  timer to turn the device ON after every OFF command; in seconds |
+|          | autoOff      | Number  | r/w       | Sets a  timer to turn the device OFF after every ON command; in seconds |
+|          | timerActive  | Switch  | yes       | ON: An auto-on/off timer is active                                      |
+| channel3 | brightness   | Dimmer  | r/w       | Channel 3: Brightness: 0..100, control power state with ON/OFF          |
+|          | button       | Trigger | yes       | Event trigger, see section Button Events                                |
+|          | autoOn       | Number  | r/w       | Sets a  timer to turn the device ON after every OFF command; in seconds |
+|          | autoOff      | Number  | r/w       | Sets a  timer to turn the device OFF after every ON command; in seconds |
+|          | timerActive  | Switch  | yes       | ON: An auto-on/off timer is active                                      |
+| channel4 | brightness   | Dimmer  | r/w       | Channel 4: Brightness: 0..100, control power state with ON/OFF          |
+|          | button       | Trigger | yes       | Event trigger, see section Button Events                                |
+|          | autoOn       | Number  | r/w       | Sets a  timer to turn the device ON after every OFF command; in seconds |
+|          | autoOff      | Number  | r/w       | Sets a  timer to turn the device OFF after every ON command; in seconds |
+|          | timerActive  | Switch  | yes       | ON: An auto-on/off timer is active                                      |
+| meter    | currentWatts | Number  | yes       | Current power consumption in Watts (all channels)                       |
 
 Please note that the settings of channel group color are only valid in color mode and vice versa for white mode.
-The current firmware doesn't support the timestamp report for the meters. 
+The current firmware doesn't support the timestamp report for the meters.
 The binding emulates this by using the system time on every update.
 
 In white mode each RGBW2 channel is defined as DimmableLight.
@@ -866,434 +857,430 @@ This means that the brightness channel has 2 functions
 - Sending a Number to set the brightness (percentage 0..100)
 
 Sending brightness 0 will automatically turn off the channel if it's currently on.
-Sending brightness > 0 will automatically turn on the channel if it's currently off. 
+Sending brightness > 0 will automatically turn on the channel if it's currently off.
 You can define 2 items (1 Switch, 1 Number) mapping to the same channel, see example rules.
 
 ### Shelly H&T (thing-type: shellyht)
 
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|sensors   |temperature  |Number   |yes      |Temperature, unit is reported by tempUnit                              |
-|          |humidity     |Number   |yes      |Relative humidity in %                                                 |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last update (any sensor value changed)                |
-|battery   |batteryLevel |Number   |yes      |Battery Level in %                                                     |
-|          |lowBattery   |Switch   |yes      |Low battery alert (< 20%)                                              |
+| Group   | Channel      | Type     | read-only | Description                                             |
+| ------- | ------------ | -------- | --------- | ------------------------------------------------------- |
+| sensors | temperature  | Number   | yes       | Temperature, unit is reported by tempUnit               |
+|         | humidity     | Number   | yes       | Relative humidity in %                                  |
+|         | lastUpdate   | DateTime | yes       | Timestamp of the last update (any sensor value changed) |
+| battery | batteryLevel | Number   | yes       | Battery Level in %                                      |
+|         | lowBattery   | Switch   | yes       | Low battery alert (< 20%)                               |
 
 `Please Note:` If you have connected an USB cable to the H&T, but channel charger is off make sure that "Use external power supply" settings is activated in the Shelly App's device settings.
 
 ### Shelly Flood (thing-type: shellyflood)
 
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|sensors   |temperature  |Number   |yes      |Temperature, unit is reported by tempUnit                              |
-|          |flood        |Switch   |yes      |ON: Flooding condition detected, OFF: no flooding                      |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last update (any sensor value changed)                |
-|battery   |batteryLevel |Number   |yes      |Battery Level in %                                                     |
-|          |lowBattery   |Switch   |yes      |Low battery alert (< 20%)                                              |
+| Group   | Channel      | Type     | read-only | Description                                             |
+| ------- | ------------ | -------- | --------- | ------------------------------------------------------- |
+| sensors | temperature  | Number   | yes       | Temperature, unit is reported by tempUnit               |
+|         | flood        | Switch   | yes       | ON: Flooding condition detected, OFF: no flooding       |
+|         | lastUpdate   | DateTime | yes       | Timestamp of the last update (any sensor value changed) |
+| battery | batteryLevel | Number   | yes       | Battery Level in %                                      |
+|         | lowBattery   | Switch   | yes       | Low battery alert (< 20%)                               |
 
 ### Shelly Door/Window (thing-type: shellydw, shellydw2)
 
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|sensors   |state        |Contact  |yes      |OPEN: Contact is open, CLOSED: Contact is closed                       |
-|          |lux          |Number   |yes      |Brightness in Lux                                                      |
-|          |illumination |String   |yes      |Current illumination: dark/twilight/bright                             |
-|          |tilt         |Number   |yes      |Tilt in ° (angle), -1 indicates that the sensor is not calibrated      |
-|          |vibration    |Switch   |yes      |ON: Vibration detected                                                 |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last update (any sensor value changed)                |
-|          |lastError    |String   |yes      |Last device error.                                                     |
-|battery   |batteryLevel |Number   |yes      |Battery Level in %                                                     |
-|          |lowBattery   |Switch   |yes      |Low battery alert (< 20%)                                              |
-|device    |alarm        |Trigger  |yes      |Will receive trigger VIBRATION if DW2 detects vibration                |
+| Group   | Channel      | Type     | read-only | Description                                                       |
+| ------- | ------------ | -------- | --------- | ----------------------------------------------------------------- |
+| sensors | state        | Contact  | yes       | OPEN: Contact is open, CLOSED: Contact is closed                  |
+|         | lux          | Number   | yes       | Brightness in Lux                                                 |
+|         | illumination | String   | yes       | Current illumination: dark/twilight/bright                        |
+|         | tilt         | Number   | yes       | Tilt in ° (angle), -1 indicates that the sensor is not calibrated |
+|         | vibration    | Switch   | yes       | ON: Vibration detected                                            |
+|         | lastUpdate   | DateTime | yes       | Timestamp of the last update (any sensor value changed)           |
+|         | lastError    | String   | yes       | Last device error.                                                |
+| battery | batteryLevel | Number   | yes       | Battery Level in %                                                |
+|         | lowBattery   | Switch   | yes       | Low battery alert (< 20%)                                         |
+| device  | alarm        | Trigger  | yes       | Will receive trigger VIBRATION if DW2 detects vibration           |
 
 ### Shelly Motion (thing-type: shellymotion)
 
-Note: You might need to restart the device to enable the discovery mode for 3 minutes(use the Web UI). 
+Note: You might need to restart the device to enable the discovery mode for 3 minutes(use the Web UI).
 As an alternativ you could press the reset button shortly (refer to the manual to locate the reset button).
 While the device is in low power mode (usual operation) it will not respond to discovery requests
 
-|Group     |Channel        |Type     |read-only|Description                                                          |
-|----------|---------------|---------|---------|---------------------------------------------------------------------|
-|sensors   |motion         |Switch   |yes      |ON: Motion was detected                                              |
-|          |motionTimestamp|DateTime |yes      |Time when motion started/was detected                                |
-|          |lux            |Number   |yes      |Brightness in Lux                                                    |
-|          |illumination   |String   |yes      |Current illumination: dark/twilight/bright                           |
-|          |vibration      |Switch   |yes      |ON: Vibration detected                                               |
-|          |charger        |Switch   |yes      |ON: USB charging cable is connected external power supply activated. |
-|          |motionActive   |Switch   |yes      |ON: Motion detection is currently active                             |
-|          |sensorSleepTime|Number   |no       |Specifies the number of sec the sensor should not report events      ]
-|          |lastUpdate     |DateTime |yes      |Timestamp of the last update (any sensor value changed)              |
-|battery   |batteryLevel   |Number   |yes      |Battery Level in %                                                   |
-|          |lowBattery     |Switch   |yes      |Low battery alert (< 20%)                                            |
-
-Use case for the 'sensorSleepTime': 
-You have a Motion controlling your light. 
+| Group   | Channel         | Type     | read-only | Description                                                            |
+| ------- | --------------- | -------- | --------- | ---------------------------------------------------------------------- |
+| sensors | motion          | Switch   | yes       | ON: Motion was detected                                                |
+|         | motionTimestamp | DateTime | yes       | Time when motion started/was detected                                  |
+|         | lux             | Number   | yes       | Brightness in Lux                                                      |
+|         | illumination    | String   | yes       | Current illumination: dark/twilight/bright                             |
+|         | vibration       | Switch   | yes       | ON: Vibration detected                                                 |
+|         | charger         | Switch   | yes       | ON: USB charging cable is connected external power supply activated.   |
+|         | motionActive    | Switch   | yes       | ON: Motion detection is currently active                               |
+|         | sensorSleepTime | Number   | no        | Specifies the number of sec the sensor should not report events      ] |
+|         | lastUpdate      | DateTime | yes       | Timestamp of the last update (any sensor value changed)                |
+| battery | batteryLevel    | Number   | yes       | Battery Level in %                                                     |
+|         | lowBattery      | Switch   | yes       | Low battery alert (< 20%)                                              |
+
+Use case for the 'sensorSleepTime':
+You have a Motion controlling your light.
 You switch off the light and want to leave the room, but the motion sensor immediately switches light back on.
-Using 'sensorSleepTime' you could suppress motion events while leaving the room, e.g. for 5sec and the light doesn's switch on. 
+Using 'sensorSleepTime' you could suppress motion events while leaving the room, e.g. for 5sec and the light doesn's switch on.
 
 ### Shelly Motion 2 (thing-type: shellymotion2)
 
-|Group     |Channel        |Type     |read-only|Description                                                          |
-|----------|---------------|---------|---------|---------------------------------------------------------------------|
-|sensors   |motion         |Switch   |yes      |ON: Motion was detected                                              |
-|          |motionTimestamp|DateTime |yes      |Time when motion started/was detected                                |
-|          |lux            |Number   |yes      |Brightness in Lux                                                    |
-|          |illumination   |String   |yes      |Current illumination: dark/twilight/bright                           |
-|          |temperature    |Number   |yes      |Temperature measured by the sensor                                   |
-|          |vibration      |Switch   |yes      |ON: Vibration detected                                               |
-|          |charger        |Switch   |yes      |ON: USB charging cable is connected external power supply activated. |
-|          |motionActive   |Switch   |yes      |ON: Motion detection is currently active                             |
-|          |sensorSleepTime|Number   |no       |Specifies the number of sec the sensor should not report events      ]
-|          |lastUpdate     |DateTime |yes      |Timestamp of the last update (any sensor value changed)              |
-|battery   |batteryLevel   |Number   |yes      |Battery Level in %                                                   |
-|          |lowBattery     |Switch   |yes      |Low battery alert (< 20%)                                            |
+| Group   | Channel         | Type     | read-only | Description                                                            |
+| ------- | --------------- | -------- | --------- | ---------------------------------------------------------------------- |
+| sensors | motion          | Switch   | yes       | ON: Motion was detected                                                |
+|         | motionTimestamp | DateTime | yes       | Time when motion started/was detected                                  |
+|         | lux             | Number   | yes       | Brightness in Lux                                                      |
+|         | illumination    | String   | yes       | Current illumination: dark/twilight/bright                             |
+|         | temperature     | Number   | yes       | Temperature measured by the sensor                                     |
+|         | vibration       | Switch   | yes       | ON: Vibration detected                                                 |
+|         | charger         | Switch   | yes       | ON: USB charging cable is connected external power supply activated.   |
+|         | motionActive    | Switch   | yes       | ON: Motion detection is currently active                               |
+|         | sensorSleepTime | Number   | no        | Specifies the number of sec the sensor should not report events      ] |
+|         | lastUpdate      | DateTime | yes       | Timestamp of the last update (any sensor value changed)                |
+| battery | batteryLevel    | Number   | yes       | Battery Level in %                                                     |
+|         | lowBattery      | Switch   | yes       | Low battery alert (< 20%)                                              |
 
 ### Shelly TRV (thing-type: shellytrv)
 
-Note: You might need to reboot the device to enable the discovery mode for 3 minutes(use the Web UI). 
+Note: You might need to reboot the device to enable the discovery mode for 3 minutes(use the Web UI).
 As an alternative you could press the reset button shortly (refer to the manual to locate the reset button).
 While the device is in low power mode (usual operation) it will not respond to discovery requests
 
 You should calibrate the valve using the device Web UI or Shelly App before starting to control it using openHAB.
 
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|sensors   |temperature  |Number   |yes      |Current Temperature in °C                                              |
-|          |state        |Contact  |yes      |Valve status: OPEN or CLOSED (position = 0)                            |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last update (any sensor value changed)                |
-|control   |targetTemp   |Number   |no       |Temperature in °C: 4=Low/Min; 5..30=target temperature;31=Hi/Max       |
-|          |position     |Dimmer   |no       |Set valve to manual mode (0..100%) disables auto-temp)                 |
-|          |mode         |String   |no       |Switch between manual and automatic mode                               |
-|          |selectedProfile|String |no       |Select profile Id: "0"=disable, "1"-"n": profile index                 |
-|          |boost        |Number   |no       |Enable/disable boost mode (full heating power)                         |
-|          |boostTimer   |Number   |no       |Number of minutes to heat at full power while boost mode is enabled    |
-|          |schedule     |Switch   |yes      |ON: Schedule is active                                                 |
-|battery   |batteryLevel |Number   |yes      |Battery Level in %                                                     |
-|          |batteryAlert |Switch   |yes      |Low battery alert                                                      |
+| Group   | Channel         | Type     | read-only | Description                                                         |
+| ------- | --------------- | -------- | --------- | ------------------------------------------------------------------- |
+| sensors | temperature     | Number   | yes       | Current Temperature in °C                                           |
+|         | state           | Contact  | yes       | Valve status: OPEN or CLOSED (position = 0)                         |
+|         | lastUpdate      | DateTime | yes       | Timestamp of the last update (any sensor value changed)             |
+| control | targetTemp      | Number   | no        | Temperature in °C: 4=Low/Min; 5..30=target temperature;31=Hi/Max    |
+|         | position        | Dimmer   | no        | Set valve to manual mode (0..100%) disables auto-temp)              |
+|         | mode            | String   | no        | Switch between manual and automatic mode                            |
+|         | selectedProfile | String   | no        | Select profile Id: "0"=disable, "1"-"n": profile index              |
+|         | boost           | Number   | no        | Enable/disable boost mode (full heating power)                      |
+|         | boostTimer      | Number   | no        | Number of minutes to heat at full power while boost mode is enabled |
+|         | schedule        | Switch   | yes       | ON: Schedule is active                                              |
+| battery | batteryLevel    | Number   | yes       | Battery Level in %                                                  |
+|         | batteryAlert    | Switch   | yes       | Low battery alert                                                   |
 
 ### Shelly Button 1 or 2 (thing-type: shellybutton1 / shellybutton2)
 
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|status    |lastEvent    |String   |yes      |S/SS/SSS for 1/2/3x Shortpush or L for Longpush                        |
-|          |eventCount   |Number   |yes      |Counter gets incremented every time the device issues a button event.  |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels             |
-|          |button       |Trigger  |yes      |Event trigger with payload SHORT_PRESSED, DOUBLE_PRESSED...            |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last update (any value changed)                       |
-|battery   |batteryLevel |Number   |yes      |Battery Level in %                                                     |
-|          |lowBattery   |Switch   |yes      |Low battery alert (< 20%)                                              |
+| Group   | Channel      | Type     | read-only | Description                                                           |
+| ------- | ------------ | -------- | --------- | --------------------------------------------------------------------- |
+| status  | lastEvent    | String   | yes       | S/SS/SSS for 1/2/3x Shortpush or L for Longpush                       |
+|         | eventCount   | Number   | yes       | Counter gets incremented every time the device issues a button event. |
+|         | input        | Switch   | yes       | ON: Input/Button is powered, see General Notes on Channels            |
+|         | button       | Trigger  | yes       | Event trigger with payload SHORT_PRESSED, DOUBLE_PRESSED...           |
+|         | lastUpdate   | DateTime | yes       | Timestamp of the last update (any value changed)                      |
+| battery | batteryLevel | Number   | yes       | Battery Level in %                                                    |
+|         | lowBattery   | Switch   | yes       | Low battery alert (< 20%)                                             |
 
 ### Shelly Smoke (thing-type: shellysmoke)
 
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|sensors   |temperature  |Number   |yes      |Temperature, unit is reported by tempUnit                              |
-|          |smoke        |Number   |yes      |ON: Smoke detected                                                     |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last update (any sensor value changed)                |
-|          |lastError    |String   |yes      |Last device error.                                                     |
-|battery   |batteryLevel |Number   |yes      |Battery Level in %                                                     |
-|          |lowBattery   |Switch   |yes      |Low battery alert (< 20%)                                              |
+| Group   | Channel      | Type     | read-only | Description                                             |
+| ------- | ------------ | -------- | --------- | ------------------------------------------------------- |
+| sensors | temperature  | Number   | yes       | Temperature, unit is reported by tempUnit               |
+|         | smoke        | Number   | yes       | ON: Smoke detected                                      |
+|         | lastUpdate   | DateTime | yes       | Timestamp of the last update (any sensor value changed) |
+|         | lastError    | String   | yes       | Last device error.                                      |
+| battery | batteryLevel | Number   | yes       | Battery Level in %                                      |
+|         | lowBattery   | Switch   | yes       | Low battery alert (< 20%)                               |
 
 ### Shelly Gas (thing-type: shellygas)
 
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|sensors   |ppm          |Number   |yes      |Gas concentration (ppm)                                                |
-|          |sensorState  |String   |yes      |Sensor state: unknown/warmup/normal/fault                              |
-|          |alarmState   |String   |yes      |Alarm state: unknown/none/mild/heavy/test                              |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last update (any sensor value changed)                |
-
-### Shelly Sense (thing-type: shellysense) 
-
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|control   |key          |String   |r/w      |Send an IR key to the sense. There a 3 different types supported       |
-|          |             |         |         |Stored key: send the key code defined by the App , e.g. 123_1_up       |
-|          |             |         |         |Pronto hex: send a Pronto Code in hex format, e.g. 0000 006C 0022 ...  |
-|          |             |         |         |Pronto base64: in base64 format, will be send 1:1 to the Sense         |
-|          |motionTime   |Number   |r/w      |Define the number of seconds when the Sense should report motion       |
-|          |motionLED    |Switch   |r/w      |Control the motion LED: ON when motion is detected or OFF              |
-|          |charger      |Switch   |yes      |ON: charger connected, OFF: charger not connected.                     |
-|sensors   |temperature  |Number   |yes      |Temperature in °C                                                      |
-|          |humidity     |Number   |yes      |Relative humidity in %                                                 |
-|          |lux          |Number   |yes      |Brightness in Lux                                                      |
-|          |motion       |Switch   |yes      |ON: Motion detected, OFF: No motion (check also motionTime)            |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last update (any sensor value changed)                |
-|battery   |batteryLevel |Number   |yes      |Battery Level in %                                                     |
-|          |batteryAlert |Switch   |yes      |Low battery alert                                                      |
+| Group   | Channel     | Type     | read-only | Description                                             |
+| ------- | ----------- | -------- | --------- | ------------------------------------------------------- |
+| sensors | ppm         | Number   | yes       | Gas concentration (ppm)                                 |
+|         | sensorState | String   | yes       | Sensor state: unknown/warmup/normal/fault               |
+|         | alarmState  | String   | yes       | Alarm state: unknown/none/mild/heavy/test               |
+|         | lastUpdate  | DateTime | yes       | Timestamp of the last update (any sensor value changed) |
+
+### Shelly Sense (thing-type: shellysense)
+
+| Group   | Channel      | Type     | read-only | Description                                                           |
+| ------- | ------------ | -------- | --------- | --------------------------------------------------------------------- |
+| control | key          | String   | r/w       | Send an IR key to the sense. There a 3 different types supported      |
+|         |              |          |           | Stored key: send the key code defined by the App , e.g. 123_1_up      |
+|         |              |          |           | Pronto hex: send a Pronto Code in hex format, e.g. 0000 006C 0022 ... |
+|         |              |          |           | Pronto base64: in base64 format, will be send 1:1 to the Sense        |
+|         | motionTime   | Number   | r/w       | Define the number of seconds when the Sense should report motion      |
+|         | motionLED    | Switch   | r/w       | Control the motion LED: ON when motion is detected or OFF             |
+|         | charger      | Switch   | yes       | ON: charger connected, OFF: charger not connected.                    |
+| sensors | temperature  | Number   | yes       | Temperature in °C                                                     |
+|         | humidity     | Number   | yes       | Relative humidity in %                                                |
+|         | lux          | Number   | yes       | Brightness in Lux                                                     |
+|         | motion       | Switch   | yes       | ON: Motion detected, OFF: No motion (check also motionTime)           |
+|         | lastUpdate   | DateTime | yes       | Timestamp of the last update (any sensor value changed)               |
+| battery | batteryLevel | Number   | yes       | Battery Level in %                                                    |
+|         | batteryAlert | Switch   | yes       | Low battery alert                                                     |
 
 ## Shelly Plus Series
 
 ### Shelly Plus 1 (thing-type: shellyplus1)
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay     |output       |Switch   |r/w      |Relay #1: Controls the relay's output channel (on/off)                           |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                       |
-|          |autoOn       |Number   |r/w      |Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #1: ON: An auto-on/off timer is active                                     |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                                         |
+| Group | Channel     | Type    | read-only | Description                                                                       |
+| ----- | ----------- | ------- | --------- | --------------------------------------------------------------------------------- |
+| relay | output      | Switch  | r/w       | Relay #1: Controls the relay's output channel (on/off)                            |
+|       | outputName  | String  | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|       | input       | Switch  | yes       | ON: Input/Button is powered, see General Notes on Channels                        |
+|       | autoOn      | Number  | r/w       | Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|       | autoOff     | Number  | r/w       | Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|       | timerActive | Switch  | yes       | Relay #1: ON: An auto-on/off timer is active                                      |
+|       | button      | Trigger | yes       | Event trigger, see section Button Events                                          |
 
 If the Shelly Add-On is installed:
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|sensors   |temperature1 |Number   |yes      |Temperature value of external sensor #1                                          |
-|          |temperature2 |Number   |yes      |Temperature value of external sensor #2                                          |
-|          |temperature3 |Number   |yes      |Temperature value of external sensor #3                                          |
-|          |temperature4 |Number   |yes      |Temperature value of external sensor #4                                          |
-|          |temperature5 |Number   |yes      |Temperature value of external sensor #5                                          |
-|          |humidity     |Number   |yes      |Relative Humidity in percent                                                     |
-|          |voltage      |Number   |yes      |Measured voltage                                                                 |
-|          |analogInput  |Number   |yes      |Percentage of reference voltage (VREF) at analogous input                        |
-|          |digitalInput |Switch   |yes      |State of digital input (ON/OFF)                                                  |
+| Group   | Channel      | Type   | read-only | Description                                               |
+| ------- | ------------ | ------ | --------- | --------------------------------------------------------- |
+| sensors | temperature1 | Number | yes       | Temperature value of external sensor #1                   |
+|         | temperature2 | Number | yes       | Temperature value of external sensor #2                   |
+|         | temperature3 | Number | yes       | Temperature value of external sensor #3                   |
+|         | temperature4 | Number | yes       | Temperature value of external sensor #4                   |
+|         | temperature5 | Number | yes       | Temperature value of external sensor #5                   |
+|         | humidity     | Number | yes       | Relative Humidity in percent                              |
+|         | voltage      | Number | yes       | Measured voltage                                          |
+|         | analogInput  | Number | yes       | Percentage of reference voltage (VREF) at analogous input |
+|         | digitalInput | Switch | yes       | State of digital input (ON/OFF)                           |
 
 ### Shelly Plus 1PM (thing-type: shellyplus1pm)
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay     |output       |Switch   |r/w      |Relay #1: Controls the relay's output channel (on/off)                           |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                       |
-|          |autoOn       |Number   |r/w      |Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #1: ON: An auto-on/off timer is active                                     |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|meter     |currentWatts |Number   |yes      |Current power consumption in Watts                                               |
-|          |lastPower1   |Number   |yes      |Energy consumption for a round minute, 1 minute  ago                             |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kwh since the device powered up (resets on restart)  |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                                |
+| Group | Channel      | Type     | read-only | Description                                                                       |
+| ----- | ------------ | -------- | --------- | --------------------------------------------------------------------------------- |
+| relay | output       | Switch   | r/w       | Relay #1: Controls the relay's output channel (on/off)                            |
+|       | outputName   | String   | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|       | input        | Switch   | yes       | ON: Input/Button is powered, see General Notes on Channels                        |
+|       | autoOn       | Number   | r/w       | Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|       | autoOff      | Number   | r/w       | Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|       | timerActive  | Switch   | yes       | Relay #1: ON: An auto-on/off timer is active                                      |
+|       | button       | Trigger  | yes       | Event trigger, see section Button Events                                          |
+| meter | currentWatts | Number   | yes       | Current power consumption in Watts                                                |
+|       | lastPower1   | Number   | yes       | Energy consumption for a round minute, 1 minute  ago                              |
+|       | totalKWH     | Number   | yes       | Total energy consumption in kwh since the device powered up (resets on restart)   |
+|       | lastUpdate   | DateTime | yes       | Timestamp of the last measurement                                                 |
 
 If the Shelly Add-On is installed:
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|sensors   |temperature1 |Number   |yes      |Temperature value of external sensor #1                                          |
-|          |temperature2 |Number   |yes      |Temperature value of external sensor #2                                          |
-|          |temperature3 |Number   |yes      |Temperature value of external sensor #3                                          |
-|          |temperature4 |Number   |yes      |Temperature value of external sensor #4                                          |
-|          |temperature5 |Number   |yes      |Temperature value of external sensor #5                                          |
-|          |humidity     |Number   |yes      |Relative Humidity in percent                                                     |
-|          |voltage      |Number   |yes      |Measured voltage                                                                 |
-|          |analogInput  |Number   |yes      |Percentage of reference voltage (VREF) at analogous input                        |
-|          |digitalInput |Switch   |yes      |State of digital input (ON/OFF)                                                  |
+| Group   | Channel      | Type   | read-only | Description                                               |
+| ------- | ------------ | ------ | --------- | --------------------------------------------------------- |
+| sensors | temperature1 | Number | yes       | Temperature value of external sensor #1                   |
+|         | temperature2 | Number | yes       | Temperature value of external sensor #2                   |
+|         | temperature3 | Number | yes       | Temperature value of external sensor #3                   |
+|         | temperature4 | Number | yes       | Temperature value of external sensor #4                   |
+|         | temperature5 | Number | yes       | Temperature value of external sensor #5                   |
+|         | humidity     | Number | yes       | Relative Humidity in percent                              |
+|         | voltage      | Number | yes       | Measured voltage                                          |
+|         | analogInput  | Number | yes       | Percentage of reference voltage (VREF) at analogous input |
+|         | digitalInput | Switch | yes       | State of digital input (ON/OFF)                           |
 
 ### Shelly Plus 2PM - relay mode (thing-type: shellyplus2pm-relay)
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay1    |output       |Switch   |r/w      |Relay #1: Controls the relay's output channel (on/off)                           |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                       |
-|          |autoOn       |Number   |r/w      |Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #1: ON: An auto-on/off timer is active                                     |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|meter1    |currentWatts |Number   |yes      |Current power consumption in Watts                                               |
-|          |lastPower1   |Number   |yes      |Energy consumption for a round minute, 1 minute  ago                             |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kwh since the device powered up (resets on restart)  |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                                |
-|relay2    |output       |Switch   |r/w      |Relay #2: Controls the relay's output channel (on/off)                           |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                       |
-|          |autoOn       |Number   |r/w      |Relay #2: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #2: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #2: ON: An auto-on/off timer is active                                     |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|meter2    |currentWatts |Number   |yes      |Current power consumption in Watts                                               |
-|          |lastPower1   |Number   |yes      |Energy consumption for a round minute, 1 minute  ago                             |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kwh since the device powered up (resets on restart)  |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                                |
+| Group  | Channel      | Type     | read-only | Description                                                                       |
+| ------ | ------------ | -------- | --------- | --------------------------------------------------------------------------------- |
+| relay1 | output       | Switch   | r/w       | Relay #1: Controls the relay's output channel (on/off)                            |
+|        | outputName   | String   | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|        | input        | Switch   | yes       | ON: Input/Button is powered, see General Notes on Channels                        |
+|        | autoOn       | Number   | r/w       | Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|        | autoOff      | Number   | r/w       | Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|        | timerActive  | Switch   | yes       | Relay #1: ON: An auto-on/off timer is active                                      |
+|        | button       | Trigger  | yes       | Event trigger, see section Button Events                                          |
+| meter1 | currentWatts | Number   | yes       | Current power consumption in Watts                                                |
+|        | lastPower1   | Number   | yes       | Energy consumption for a round minute, 1 minute  ago                              |
+|        | totalKWH     | Number   | yes       | Total energy consumption in kwh since the device powered up (resets on restart)   |
+|        | lastUpdate   | DateTime | yes       | Timestamp of the last measurement                                                 |
+| relay2 | output       | Switch   | r/w       | Relay #2: Controls the relay's output channel (on/off)                            |
+|        | outputName   | String   | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|        | input        | Switch   | yes       | ON: Input/Button is powered, see General Notes on Channels                        |
+|        | autoOn       | Number   | r/w       | Relay #2: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|        | autoOff      | Number   | r/w       | Relay #2: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|        | timerActive  | Switch   | yes       | Relay #2: ON: An auto-on/off timer is active                                      |
+|        | button       | Trigger  | yes       | Event trigger, see section Button Events                                          |
+| meter2 | currentWatts | Number   | yes       | Current power consumption in Watts                                                |
+|        | lastPower1   | Number   | yes       | Energy consumption for a round minute, 1 minute  ago                              |
+|        | totalKWH     | Number   | yes       | Total energy consumption in kwh since the device powered up (resets on restart)   |
+|        | lastUpdate   | DateTime | yes       | Timestamp of the last measurement                                                 |
 
 ### Shelly Plus 2PM - roller mode (thing-type: shellyplus2pm-roller)
 
-|Group     |Channel      |Type     |read-only|Description                                                                          |
-|----------|-------------|---------|---------|-------------------------------------------------------------------------------------|
-|roller    |control      |Rollershutter |r/w |can be open (0%), stop, or close (100%); could also handle ON (open) and OFF (close) |
-|          |rollerPos    |Dimmer   |r/w      |Roller position: 100%=open...0%=closed; gets updated when the roller stopped         |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                           |
-|          |state        |String   |yes      |Roller state: open/close/stop                                                        |
-|          |stopReason   |String   |yes      |Last stop reasons: normal, safety_switch or obstacle                                 |
-|          |safety       |Switch   |yes      |Indicates status of the Safety Switch, ON=problem detected, powered off              |
-|          |event        |Trigger  |yes      |Roller event/trigger with payload ROLLER_OPEN / ROLLER_CLOSE / ROLLER_STOP           |
-|meter     |             |         |         |See group meter description                                                          |
+| Group  | Channel    | Type          | read-only | Description                                                                          |
+| ------ | ---------- | ------------- | --------- | ------------------------------------------------------------------------------------ |
+| roller | control    | Rollershutter | r/w       | can be open (0%), stop, or close (100%); could also handle ON (open) and OFF (close) |
+|        | rollerPos  | Dimmer        | r/w       | Roller position: 100%=open...0%=closed; gets updated when the roller stopped         |
+|        | input      | Switch        | yes       | ON: Input/Button is powered, see General Notes on Channels                           |
+|        | state      | String        | yes       | Roller state: open/close/stop                                                        |
+|        | stopReason | String        | yes       | Last stop reasons: normal, safety_switch or obstacle                                 |
+|        | safety     | Switch        | yes       | Indicates status of the Safety Switch, ON=problem detected, powered off              |
+|        | event      | Trigger       | yes       | Roller event/trigger with payload ROLLER_OPEN / ROLLER_CLOSE / ROLLER_STOP           |
+| meter  |            |               |           | See group meter description                                                          |
 
 The roller positioning calibration has to be performed using the Shelly Web UI or App before the position can be set in percent.
-Refer to [Smartify Roller Shutters with openHAB and Shelly](doc/UseCaseSmartRoller.md) for more information on roller integration. 
+Refer to [Smartify Roller Shutters with openHAB and Shelly](doc/UseCaseSmartRoller.md) for more information on roller integration.
 
 ### Shelly Plus i4, i4DC (thing-types: shellyplusi4, shellyplusi4dc)
 
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|status1   |input        |Switch   |yes      |State of Input 1                                                       |
-|          |button       |Trigger  |yes      |Event trigger: Event trigger, see section Button Events                |
-|          |lastEvent    |String   |yes      |S/SS/SSS for 1/2/3x Shortpush or L for Longpush                        |
-|          |eventCount   |Number   |yes      |Counter gets incremented every time the device issues a button event.  |
-|status2   |             |         |         |Same for Input 2                                                       |
-|status3   |             |         |         |Same for Input 3                                                       |
-|status4   |             |         |         |Same for Input 4                                                       |
+| Group   | Channel    | Type    | read-only | Description                                                           |
+| ------- | ---------- | ------- | --------- | --------------------------------------------------------------------- |
+| status1 | input      | Switch  | yes       | State of Input 1                                                      |
+|         | button     | Trigger | yes       | Event trigger: Event trigger, see section Button Events               |
+|         | lastEvent  | String  | yes       | S/SS/SSS for 1/2/3x Shortpush or L for Longpush                       |
+|         | eventCount | Number  | yes       | Counter gets incremented every time the device issues a button event. |
+| status2 |            |         |           | Same for Input 2                                                      |
+| status3 |            |         |           | Same for Input 3                                                      |
+| status4 |            |         |           | Same for Input 4                                                      |
 
 Channels lastEvent and eventCount are only available if input type is set to momentary button
 
 ### Shelly Plus HT (thing-type: shellyplusht)
 
-|Group     |Channel      |Type     |read-only|Description                                                            |
-|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|sensors   |temperature  |Number   |yes      |Temperature, unit is reported by tempUnit                              |
-|          |humidity     |Number   |yes      |Relative humidity in %                                                 |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last update (any sensor value changed)                |
-|battery   |batteryLevel |Number   |yes      |Battery Level in %                                                     |
-|          |lowBattery   |Switch   |yes      |Low battery alert (< 20%)                                              |
-
+| Group   | Channel      | Type     | read-only | Description                                             |
+| ------- | ------------ | -------- | --------- | ------------------------------------------------------- |
+| sensors | temperature  | Number   | yes       | Temperature, unit is reported by tempUnit               |
+|         | humidity     | Number   | yes       | Relative humidity in %                                  |
+|         | lastUpdate   | DateTime | yes       | Timestamp of the last update (any sensor value changed) |
+| battery | batteryLevel | Number   | yes       | Battery Level in %                                      |
+|         | lowBattery   | Switch   | yes       | Low battery alert (< 20%)                               |
 
 ## Shelly Pro Series
 
 ### Shelly Pro 1 (thing-type: shellypro1)
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay     |output       |Switch   |r/w      |Controls the relay's output channel (on/off)                                     |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input1       |Switch   |yes      |ON: Input/Button for input 1 is powered, see general notes on channels           |
-|          |button1      |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|          |lastEvent1   |String   |yes      |Last event type (S/SS/SSS/L) for input 1                                         |
-|          |eventCount1  |Number   |yes      |Counter gets incremented every time the device issues a button event.            |
-|          |input2       |Switch   |yes      |ON: Input/Button for channel 2 is powered, see general notes on channels         |
-|          |button2      |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|          |lastEvent2   |String   |yes      |Last event type (S/SS/SSS/L) for input 2                                         |
-|          |eventCount2  |Number   |yes      |Counter gets incremented every time the device issues a button event.            |
-|          |autoOn       |Number   |r/w      |Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #1: ON: An auto-on/off timer is active                                     |
+| Group | Channel     | Type    | read-only | Description                                                                       |
+| ----- | ----------- | ------- | --------- | --------------------------------------------------------------------------------- |
+| relay | output      | Switch  | r/w       | Controls the relay's output channel (on/off)                                      |
+|       | outputName  | String  | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|       | input1      | Switch  | yes       | ON: Input/Button for input 1 is powered, see general notes on channels            |
+|       | button1     | Trigger | yes       | Event trigger, see section Button Events                                          |
+|       | lastEvent1  | String  | yes       | Last event type (S/SS/SSS/L) for input 1                                          |
+|       | eventCount1 | Number  | yes       | Counter gets incremented every time the device issues a button event.             |
+|       | input2      | Switch  | yes       | ON: Input/Button for channel 2 is powered, see general notes on channels          |
+|       | button2     | Trigger | yes       | Event trigger, see section Button Events                                          |
+|       | lastEvent2  | String  | yes       | Last event type (S/SS/SSS/L) for input 2                                          |
+|       | eventCount2 | Number  | yes       | Counter gets incremented every time the device issues a button event.             |
+|       | autoOn      | Number  | r/w       | Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|       | autoOff     | Number  | r/w       | Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|       | timerActive | Switch  | yes       | Relay #1: ON: An auto-on/off timer is active                                      |
 
 ### Shelly Pro 1 PM (thing-type: shellypro1pm)
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay     |output       |Switch   |r/w      |Controls the relay's output channel (on/off)                                     |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input1       |Switch   |yes      |ON: Input/Button for input 1 is powered, see general notes on channels           |
-|          |button1      |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|          |lastEvent1   |String   |yes      |Last event type (S/SS/SSS/L) for input 1                                         |
-|          |eventCount1  |Number   |yes      |Counter gets incremented every time the device issues a button event.            |
-|          |input2       |Switch   |yes      |ON: Input/Button for channel 2 is powered, see general notes on channels         |
-|          |button2      |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|          |lastEvent2   |String   |yes      |Last event type (S/SS/SSS/L) for input 2                                         |
-|          |eventCount2  |Number   |yes      |Counter gets incremented every time the device issues a button event.            |
-|          |autoOn       |Number   |r/w      |Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #1: ON: An auto-on/off timer is active                                     |
-|meter     |currentWatts |Number   |yes      |Current power consumption in Watts                                               |
-|          |lastPower1   |Number   |yes      |Energy consumption for a round minute, 1 minute  ago                             |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kwh since the device powered up (resets on restart)  |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                                |
-
+| Group | Channel      | Type     | read-only | Description                                                                       |
+| ----- | ------------ | -------- | --------- | --------------------------------------------------------------------------------- |
+| relay | output       | Switch   | r/w       | Controls the relay's output channel (on/off)                                      |
+|       | outputName   | String   | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|       | input1       | Switch   | yes       | ON: Input/Button for input 1 is powered, see general notes on channels            |
+|       | button1      | Trigger  | yes       | Event trigger, see section Button Events                                          |
+|       | lastEvent1   | String   | yes       | Last event type (S/SS/SSS/L) for input 1                                          |
+|       | eventCount1  | Number   | yes       | Counter gets incremented every time the device issues a button event.             |
+|       | input2       | Switch   | yes       | ON: Input/Button for channel 2 is powered, see general notes on channels          |
+|       | button2      | Trigger  | yes       | Event trigger, see section Button Events                                          |
+|       | lastEvent2   | String   | yes       | Last event type (S/SS/SSS/L) for input 2                                          |
+|       | eventCount2  | Number   | yes       | Counter gets incremented every time the device issues a button event.             |
+|       | autoOn       | Number   | r/w       | Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|       | autoOff      | Number   | r/w       | Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|       | timerActive  | Switch   | yes       | Relay #1: ON: An auto-on/off timer is active                                      |
+| meter | currentWatts | Number   | yes       | Current power consumption in Watts                                                |
+|       | lastPower1   | Number   | yes       | Energy consumption for a round minute, 1 minute  ago                              |
+|       | totalKWH     | Number   | yes       | Total energy consumption in kwh since the device powered up (resets on restart)   |
+|       | lastUpdate   | DateTime | yes       | Timestamp of the last measurement                                                 |
 
 ### Shelly Pro 2 (thing-type: shellypro2-relay)
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay1    |output       |Switch   |r/w      |Relay #1: Controls the relay's output channel (on/off)                           |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                       |
-|          |autoOn       |Number   |r/w      |Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #1: ON: An auto-on/off timer is active                                     |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|relay2    |output       |Switch   |r/w      |Relay #2: Controls the relay's output channel (on/off)                           |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                       |
-|          |autoOn       |Number   |r/w      |Relay #2: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #2: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #2: ON: An auto-on/off timer is active                                     |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                                         |
-
+| Group  | Channel     | Type    | read-only | Description                                                                       |
+| ------ | ----------- | ------- | --------- | --------------------------------------------------------------------------------- |
+| relay1 | output      | Switch  | r/w       | Relay #1: Controls the relay's output channel (on/off)                            |
+|        | outputName  | String  | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|        | input       | Switch  | yes       | ON: Input/Button is powered, see General Notes on Channels                        |
+|        | autoOn      | Number  | r/w       | Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|        | autoOff     | Number  | r/w       | Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|        | timerActive | Switch  | yes       | Relay #1: ON: An auto-on/off timer is active                                      |
+|        | button      | Trigger | yes       | Event trigger, see section Button Events                                          |
+| relay2 | output      | Switch  | r/w       | Relay #2: Controls the relay's output channel (on/off)                            |
+|        | outputName  | String  | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|        | input       | Switch  | yes       | ON: Input/Button is powered, see General Notes on Channels                        |
+|        | autoOn      | Number  | r/w       | Relay #2: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|        | autoOff     | Number  | r/w       | Relay #2: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|        | timerActive | Switch  | yes       | Relay #2: ON: An auto-on/off timer is active                                      |
+|        | button      | Trigger | yes       | Event trigger, see section Button Events                                          |
 
 ### Shelly Pro 2 PM - relay mode (thing-type: shellypro2pm-relay)
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay1    |output       |Switch   |r/w      |Relay #1: Controls the relay's output channel (on/off)                           |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                       |
-|          |autoOn       |Number   |r/w      |Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #1: ON: An auto-on/off timer is active                                     |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|relay2    |output       |Switch   |r/w      |Relay #2: Controls the relay's output channel (on/off)                           |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                       |
-|          |autoOn       |Number   |r/w      |Relay #2: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #2: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #2: ON: An auto-on/off timer is active                                     |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|meter     |currentWatts |Number   |yes      |Current power consumption in Watts                                               |
-|          |lastPower1   |Number   |yes      |Energy consumption for a round minute, 1 minute  ago                             |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kwh since the device powered up (resets on restart)  |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                                |
+| Group  | Channel      | Type     | read-only | Description                                                                       |
+| ------ | ------------ | -------- | --------- | --------------------------------------------------------------------------------- |
+| relay1 | output       | Switch   | r/w       | Relay #1: Controls the relay's output channel (on/off)                            |
+|        | outputName   | String   | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|        | input        | Switch   | yes       | ON: Input/Button is powered, see General Notes on Channels                        |
+|        | autoOn       | Number   | r/w       | Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|        | autoOff      | Number   | r/w       | Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|        | timerActive  | Switch   | yes       | Relay #1: ON: An auto-on/off timer is active                                      |
+|        | button       | Trigger  | yes       | Event trigger, see section Button Events                                          |
+| relay2 | output       | Switch   | r/w       | Relay #2: Controls the relay's output channel (on/off)                            |
+|        | outputName   | String   | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|        | input        | Switch   | yes       | ON: Input/Button is powered, see General Notes on Channels                        |
+|        | autoOn       | Number   | r/w       | Relay #2: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|        | autoOff      | Number   | r/w       | Relay #2: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|        | timerActive  | Switch   | yes       | Relay #2: ON: An auto-on/off timer is active                                      |
+|        | button       | Trigger  | yes       | Event trigger, see section Button Events                                          |
+| meter  | currentWatts | Number   | yes       | Current power consumption in Watts                                                |
+|        | lastPower1   | Number   | yes       | Energy consumption for a round minute, 1 minute  ago                              |
+|        | totalKWH     | Number   | yes       | Total energy consumption in kwh since the device powered up (resets on restart)   |
+|        | lastUpdate   | DateTime | yes       | Timestamp of the last measurement                                                 |
 
 ### Shelly Pro 2 PM - roller mode (thing-type: shellypro2pm-roller)
 
-|Group     |Channel      |Type     |read-only|Description                                                                          |
-|----------|-------------|---------|---------|-------------------------------------------------------------------------------------|
-|roller    |control      |Rollershutter |r/w |can be open (0%), stop, or close (100%); could also handle ON (open) and OFF (close) |
-|          |rollerPos    |Dimmer   |r/w      |Roller position: 100%=open...0%=closed; gets updated when the roller stopped         |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                           |
-|          |state        |String   |yes      |Roller state: open/close/stop                                                        |
-|          |stopReason   |String   |yes      |Last stop reasons: normal, safety_switch or obstacle                                 |
-|          |safety       |Switch   |yes      |Indicates status of the Safety Switch, ON=problem detected, powered off              |
-|          |event        |Trigger  |yes      |Roller event/trigger with payload ROLLER_OPEN / ROLLER_CLOSE / ROLLER_STOP           |
-|meter     |currentWatts |Number   |yes      |Current power consumption in Watts                                                   |
-|          |lastPower1   |Number   |yes      |Energy consumption for a round minute, 1 minute  ago                                 |
-|          |totalKWH     |Number   |yes      |Total energy consumption in kwh since the device powered up (resets on restart)      |
-|          |lastUpdate   |DateTime |yes      |Timestamp of the last measurement                                                    |
-
+| Group  | Channel      | Type          | read-only | Description                                                                          |
+| ------ | ------------ | ------------- | --------- | ------------------------------------------------------------------------------------ |
+| roller | control      | Rollershutter | r/w       | can be open (0%), stop, or close (100%); could also handle ON (open) and OFF (close) |
+|        | rollerPos    | Dimmer        | r/w       | Roller position: 100%=open...0%=closed; gets updated when the roller stopped         |
+|        | input        | Switch        | yes       | ON: Input/Button is powered, see General Notes on Channels                           |
+|        | state        | String        | yes       | Roller state: open/close/stop                                                        |
+|        | stopReason   | String        | yes       | Last stop reasons: normal, safety_switch or obstacle                                 |
+|        | safety       | Switch        | yes       | Indicates status of the Safety Switch, ON=problem detected, powered off              |
+|        | event        | Trigger       | yes       | Roller event/trigger with payload ROLLER_OPEN / ROLLER_CLOSE / ROLLER_STOP           |
+| meter  | currentWatts | Number        | yes       | Current power consumption in Watts                                                   |
+|        | lastPower1   | Number        | yes       | Energy consumption for a round minute, 1 minute  ago                                 |
+|        | totalKWH     | Number        | yes       | Total energy consumption in kwh since the device powered up (resets on restart)      |
+|        | lastUpdate   | DateTime      | yes       | Timestamp of the last measurement                                                    |
 
 ### Shelly Pro 3 (thing-type: shellypro3)
 
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay1    |output       |Switch   |r/w      |Relay #1: Controls the relay's output channel (on/off)                           |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                       |
-|          |autoOn       |Number   |r/w      |Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #1: ON: An auto-on/off timer is active                                     |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|relay2    |output       |Switch   |r/w      |Relay #2: Controls the relay's output channel (on/off)                           |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                       |
-|          |autoOn       |Number   |r/w      |Relay #2: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #2: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #2: ON: An auto-on/off timer is active                                     |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                                         |
-|relay3    |output       |Switch   |r/w      |Relay #3: Controls the relay's output channel (on/off)                           |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                       |
-|          |autoOn       |Number   |r/w      |Relay #3: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #3: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #3: ON: An auto-on/off timer is active                                     |
-|          |button       |Trigger  |yes      |Relay #3:  Event trigger, see section Button Events                                         |
+| Group  | Channel     | Type    | read-only | Description                                                                       |
+| ------ | ----------- | ------- | --------- | --------------------------------------------------------------------------------- |
+| relay1 | output      | Switch  | r/w       | Relay #1: Controls the relay's output channel (on/off)                            |
+|        | outputName  | String  | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|        | input       | Switch  | yes       | ON: Input/Button is powered, see General Notes on Channels                        |
+|        | autoOn      | Number  | r/w       | Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|        | autoOff     | Number  | r/w       | Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|        | timerActive | Switch  | yes       | Relay #1: ON: An auto-on/off timer is active                                      |
+|        | button      | Trigger | yes       | Event trigger, see section Button Events                                          |
+| relay2 | output      | Switch  | r/w       | Relay #2: Controls the relay's output channel (on/off)                            |
+|        | outputName  | String  | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|        | input       | Switch  | yes       | ON: Input/Button is powered, see General Notes on Channels                        |
+|        | autoOn      | Number  | r/w       | Relay #2: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|        | autoOff     | Number  | r/w       | Relay #2: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|        | timerActive | Switch  | yes       | Relay #2: ON: An auto-on/off timer is active                                      |
+|        | button      | Trigger | yes       | Event trigger, see section Button Events                                          |
+| relay3 | output      | Switch  | r/w       | Relay #3: Controls the relay's output channel (on/off)                            |
+|        | outputName  | String  | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|        | input       | Switch  | yes       | ON: Input/Button is powered, see General Notes on Channels                        |
+|        | autoOn      | Number  | r/w       | Relay #3: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|        | autoOff     | Number  | r/w       | Relay #3: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|        | timerActive | Switch  | yes       | Relay #3: ON: An auto-on/off timer is active                                      |
+|        | button      | Trigger | yes       | Relay #3:  Event trigger, see section Button Events                               |
 
 ### Shelly Pro 4PM (thing-type: shelly4pro)
-|Group     |Channel      |Type     |read-only|Description                                                                      |
-|----------|-------------|---------|---------|---------------------------------------------------------------------------------|
-|relay1    |output       |Switch   |r/w      |Relay #1: Controls the relay's output channel (on/off)                           |
-|          |outputName   |String   |yes      |Logical name of this relay output as configured in the Shelly App                |
-|          |input        |Switch   |yes      |ON: Input/Button is powered, see General Notes on Channels                       |
-|          |autoOn       |Number   |r/w      |Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds|
-|          |autoOff      |Number   |r/w      |Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds|
-|          |timerActive  |Switch   |yes      |Relay #1: ON: An auto-on/off timer is active                                     |
-|          |button       |Trigger  |yes      |Event trigger, see section Button Events                                         |
 
+| Group  | Channel     | Type    | read-only | Description                                                                       |
+| ------ | ----------- | ------- | --------- | --------------------------------------------------------------------------------- |
+| relay1 | output      | Switch  | r/w       | Relay #1: Controls the relay's output channel (on/off)                            |
+|        | outputName  | String  | yes       | Logical name of this relay output as configured in the Shelly App                 |
+|        | input       | Switch  | yes       | ON: Input/Button is powered, see General Notes on Channels                        |
+|        | autoOn      | Number  | r/w       | Relay #1: Sets a  timer to turn the device ON after every OFF command; in seconds |
+|        | autoOff     | Number  | r/w       | Relay #1: Sets a  timer to turn the device OFF after every ON command; in seconds |
+|        | timerActive | Switch  | yes       | Relay #1: ON: An auto-on/off timer is active                                      |
+|        | button      | Trigger | yes       | Event trigger, see section Button Events                                          |
 
 ## Full Example
 
 ### shelly.things
 
-```
+```java
 /* Shelly 2.5 Roller */
 Thing shelly:shelly25-roller:XXXXX1 "Shelly 25 Roller XXXXX1" @ "Home Theater" [deviceIp="x.x.x.x", userId="", password=""]
 Thing shelly:shelly25-roller:XXXXX2 "Shelly 25 Roller XXXXX2" @ "Living Room"  [deviceIp="x.x.x.x", userId="admin", password="secret"]
@@ -1313,7 +1300,7 @@ Thing shelly:shellyflood:XXXXXX "ShellyFlood" @ "cellar" [ deviceIp="10.0.0.103"
 
 ### shelly.items
 
-```
+```java
 /* Relays */
 Switch Shelly_XXXXX3_Relay        "Garage Light"                  {channel="shelly:shelly1:XXXXX3:relay#output"}
 Number Shelly_XXXXX3_AutoOnTimer  "Garage Light Auto On Timer"    {channel="shelly:shelly1:XXXXX3:relay#autoOn"}
@@ -1345,7 +1332,7 @@ Number Shelly_Power     "Bath Room Light Power"                {channel="shelly:
 
 #### Catch alarms
 
-```
+```java
 rule "Monitor Shelly Restart"
 when
     Channel "shelly:shelly2-relay:XXXXXX:device#alarm" triggered OVERTEMP
@@ -1356,7 +1343,7 @@ end
 
 #### Trigger scene with Button-1
 
-```
+```java
 rule "Button-1 SHORT_PRESSED"
 when
     Channel "shelly:shellybutton1:d8f15bXXXXXX:status#button" triggered SHORT_PRESSED
@@ -1389,7 +1376,7 @@ pre-requisites:
 - Link battery channel for all your Shelly battery powered devices
 - Add battery items to group gBattery
 
-```
+```java
 val String mailTo     = "alarm@openhab.me"
 
 /* ------------- Battery Monitor ----------- */
@@ -1425,8 +1412,8 @@ Usage & Requirements:
 
 - 4 Items per Thing required. Example:
 
-```
-Group gCCT_LED        "All CCT LEDs"
+```java
+Group     gCCT_LED        "All CCT LEDs"
 Dimmer    LED1_brightness     "Brightness"    (gCCT_LED)
 Dimmer    LED1_temperature    "Temperature"   (gCCT_LED)
 Dimmer    LED1_cw         "cold white Channel"
@@ -1437,7 +1424,7 @@ Dimmer    LED1_ww         "warm white Channel"
 - Items "LED1_cw" and "LED_ww" are items linked to Thing channel. Not required in sitemaps. Do NOT include in this group
 - Prefix: needs to be constant per Thing.
 
-```
+```java
 val String strSuffixSeparator = "_"             //Separator: 1 unique separator
 val String strSuffixBrightness = "brightness"           //Suffix: at your choice
 val String strSuffixTemperature = "temperature"         //Suffix: at your choice
@@ -1471,7 +1458,7 @@ end
 
 #### Reading colors from Color Picker:
 
-```
+```java
 import org.openhab.core.library.types.*
 
 rule "Get input change from garage light"
@@ -1516,7 +1503,7 @@ end
 
 ### shelly.sitemap
 
-```
+```perl
 sitemap demo label="Home"
 {
         Frame label="Dimmer" {
index 67993549e38110c2e0291b8df154ed51bc384e63..09181e8cf79506b121ab305f80668b5eb65b043c 100644 (file)
@@ -9,7 +9,7 @@ The Siemens RDS binding provides the infrastructure for connecting openHAB to th
 The binding supports two types of Thing as follows..
 
 | Thing Type           | Description                                                                                                              |
-|----------------------|--------------------------------------------------------------------------------------------------------------------------|
+| -------------------- | ------------------------------------------------------------------------------------------------------------------------ |
 | Climatix IC Account  | User account on the Siemens Climatix IC cloud server (bridge) to connect with respective Smart Thermostat Things below.. |
 | RDS Smart Thermostat | Siemens RDS model Smart Thermostat devices                                                                               |
 
@@ -17,23 +17,23 @@ The binding supports two types of Thing as follows..
 
 You have to manually create a single (Bridge) Thing for the Climatix IC Account, and enter the required Configuration Parameters (see Thing Configuration for Climatix IC Account below).
 If the Configuration Parameters are all valid, then the Climatix IC Account Thing will automatically attempt to connect and sign on to the Siemens Climatix IC cloud server.
-If the sign on succeeds, the Thing will indicate its status as Online, otherwise it will show an error status. 
+If the sign on succeeds, the Thing will indicate its status as Online, otherwise it will show an error status.
 
 Once the Thing of the type Climatix IC Account has been created and successfully signed on to the cloud server, it will automatically interrogate the server to discover all the respective RDS Smart Thermostat Things associated with that account.
 After a short while, all discovered RDS Smart Thermostat Things will be displayed in the Inbox.
-If in future you add new RDS Smart Thermostat devices to your Siemens account (e.g. via the Siemens App) then these new devices will also appear in the Inbox.    
+If in future you add new RDS Smart Thermostat devices to your Siemens account (e.g. via the Siemens App) then these new devices will also appear in the Inbox.
 
 ## Thing Configuration for "Climatix IC Account"
 
 The Climatix IC Account connects to the Siemens Climatix IC cloud server (bridge) to communicate with any respective RDS Smart Thermostats associated with that account.
 It signs on to the cloud server using the supplied user's credentials, and it polls the server at regular intervals to read and write the data for each Smart Thermostat that is configured in that account.
-Before it can connect to the server, the following Configuration Parameters must be entered.   
+Before it can connect to the server, the following Configuration Parameters must be entered.
 
-| Configuration Parameter | Description
-|-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| userEmail               | The e-mail address of the user account on the cloud server; as entered in the Siemens App when first registering a thermostat.                                      |
-| userPassword            | The password of the user account on the cloud server; as entered in the Siemens App.                                                                                |
-| pollingInterval         | Time interval in seconds between polling requests to the cloud server; the value must be between 8..60 seconds; the Default value (recommended) is 60 seconds.      |
+| Configuration Parameter | Description                                                                                                                                                                      |
+| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| userEmail               | The e-mail address of the user account on the cloud server; as entered in the Siemens App when first registering a thermostat.                                                   |
+| userPassword            | The password of the user account on the cloud server; as entered in the Siemens App.                                                                                             |
+| pollingInterval         | Time interval in seconds between polling requests to the cloud server; the value must be between 8..60 seconds; the Default value (recommended) is 60 seconds.                   |
 | apiKey                  | The key code needed to access the application program interface on the Siemens Climatix IC cloud server; you can request a key code from Siemens customer support <sup>1)</sup>. |
 
 <sup>1)</sup> The Siemens Climatix IC cloud server exists primarily for supporting Original Equipment Manufacturing (OEM) customers who use the Climatix range of HVACR control products.
@@ -43,34 +43,34 @@ Do not accept that answer!
 You need to insist that you are requesting the Climatix IC cloud server API key _**for the RDS smart thermostat range**_ – it is a <u>different</u> key than those for OEM commercial customers.
 You can also get the API key by observing the traffic between your RDS App and the server, as explained [below](#observing-the-api-key).
 
-Note: You must create ONLY ONE Thing of the type Climatix IC Account; duplicate Climatix IC Account Things risk causing communication errors with the cloud server.   
+Note: You must create ONLY ONE Thing of the type Climatix IC Account; duplicate Climatix IC Account Things risk causing communication errors with the cloud server.
 
 ## Thing Configuration for "RDS Smart Thermostat"
 
 Each RDS Smart Thermostat Thing is identified in the Climatix IC Account by means of a unique Plant Id code.
 The automatic discovery determines the Plant Id codes of all connected thermostats automatically.
 
-| Configuration Parameter | Description                                                                                                 | 
-|-------------------------|-------------------------------------------------------------------------------------------------------------|
-| plantId                 | The unique code to identify a specific RDS Smart Thermostat Thing on the Siemens Climatix IC cloud server.  |
+| Configuration Parameter | Description                                                                                                |
+| ----------------------- | ---------------------------------------------------------------------------------------------------------- |
+| plantId                 | The unique code to identify a specific RDS Smart Thermostat Thing on the Siemens Climatix IC cloud server. |
 
 ## Channels for RDS Smart Thermostat
 
-The RDS Smart Thermostat supports several channels as shown below. 
-
-| Channel                  | Data Type          | Description                                                                 |
-|--------------------------|--------------------|-----------------------------------------------------------------------------|
-| roomTemperature          | Number:Temperature | Actual Room Temperature                                                     |
-| targetTemperature        | Number:Temperature | Target temperature setting for the room                                     |
-| thermostatOutputState    | String             | The output state of the thermostat (Heating, Off, Cooling)                  |
-| roomHumidity            | Number:Dimensionless| Actual Room Humidity                                                       |
-| roomAirQuality           | String             | Actual Room Air Quality (Poor..Good)                                        |
-| outsideTemperature       | Number:Temperature | Actual Outside temperature                                                  |
-| energySavingsLevel       | String             | Energy saving level (Green Leaf score) (Poor..Excellent)                    |
-| occupancyModePresent     | Switch             | The Thermostat is in the Present Occupancy Mode (Off=Absent, On=Present)    |
-| thermostatAutoMode       | Switch             | The Thermostat is in Automatic Mode (Off=Manual, On=Automatic)              |
-| hotWaterAutoMode         | Switch             | The Domestic Water Heating is in Automatic Mode (Off=Manual, On=Automatic)  |
-| hotWaterOutputState      | Switch             | The On/Off state of the domestic water heating                              |
+The RDS Smart Thermostat supports several channels as shown below.
+
+| Channel               | Data Type            | Description                                                                |
+| --------------------- | -------------------- | -------------------------------------------------------------------------- |
+| roomTemperature       | Number:Temperature   | Actual Room Temperature                                                    |
+| targetTemperature     | Number:Temperature   | Target temperature setting for the room                                    |
+| thermostatOutputState | String               | The output state of the thermostat (Heating, Off, Cooling)                 |
+| roomHumidity          | Number:Dimensionless | Actual Room Humidity                                                       |
+| roomAirQuality        | String               | Actual Room Air Quality (Poor..Good)                                       |
+| outsideTemperature    | Number:Temperature   | Actual Outside temperature                                                 |
+| energySavingsLevel    | String               | Energy saving level (Green Leaf score) (Poor..Excellent)                   |
+| occupancyModePresent  | Switch               | The Thermostat is in the Present Occupancy Mode (Off=Absent, On=Present)   |
+| thermostatAutoMode    | Switch               | The Thermostat is in Automatic Mode (Off=Manual, On=Automatic)             |
+| hotWaterAutoMode      | Switch               | The Domestic Water Heating is in Automatic Mode (Off=Manual, On=Automatic) |
+| hotWaterOutputState   | Switch               | The On/Off state of the domestic water heating                             |
 
 ## Observing the API Key
 
@@ -104,7 +104,7 @@ Bridge siemensrds:climatixic:mybridgename "Climatix IC Account" [ userEmail="ema
 Number:Temperature Upstairs_RoomTemperature "Room Temperature" { channel="siemensrds:rds:mybridgename:myupstairs:roomTemperature" }
 Number:Temperature Upstairs_TargetTemperature "Target Temperature" { channel="siemensrds:rds:mybridgename:myupstairs:targetTemperature" }
 String Upstairs_ThermostatOutputState "Thermostat Output State" { channel="siemensrds:rds:mybridgename:myupstairs:thermostatOutputState" }
-Number:Dimensionless Upstairs_RoomHumidity "Room Humidity"     { channel="siemensrds:rds:mybridgename:myupstairs:roomHumidity" }
+Number:Dimensionless Upstairs_RoomHumidity "Room Humidity" { channel="siemensrds:rds:mybridgename:myupstairs:roomHumidity" }
 String Upstairs_RoomAirQuality "Room Air Quality" { channel="siemensrds:rds:mybridgename:myupstairs:roomAirQuality" }
 Number:Temperature Upstairs_OutsideTemperature "Outside Temperature" { channel="siemensrds:rds:mybridgename:myupstairs:outsideTemperature" }
 String Upstairs_EnergySavingsLevel "Energy Savings Level" { channel="siemensrds:rds:mybridgename:myupstairs:energySavingsLevel" }
@@ -116,7 +116,7 @@ Switch Upstairs_HotWaterOutputState "Hotwater Output State" { channel="siemensrd
 
 ### `demo.sitemap` File
 
-```php
+```perl
 sitemap siemensrds label="Siemens RDS"
 {
 Frame label="Heating" {
index 867a713e963cdb5ca1400db182d0c51ca65f201c..21757f6bb34d033d695d3904cecaa18198471571 100644 (file)
@@ -4,9 +4,8 @@ This binding integrates the Silvercrest Wifi Socket SWS-A1 sold by Lidl and the
 
 ## Supported Things
 
--   Silvercrest Wifi Socket SWS-A1 - [(Owner Manual)](https://www.lidl-service.com/static/118127777/103043_FI.pdf)   --   Tested with firmware version: 1.41, 1.60, 1.70
--   EasyHome Wifi Socket DIS-124 <https://www.aldi-sued.de/de/infos/aldi-sued-a-bis-z/s/serviceportal/ergebnisliste/sis/si/wifi-steckdose/>
-
+- Silvercrest Wifi Socket SWS-A1 - [(Owner Manual)](https://www.lidl-service.com/static/118127777/103043_FI.pdf)   --   Tested with firmware version: 1.41, 1.60, 1.70
+- EasyHome Wifi Socket DIS-124 <https://www.aldi-sued.de/de/infos/aldi-sued-a-bis-z/s/serviceportal/ergebnisliste/sis/si/wifi-steckdose/>
 
 ## Discovery
 
@@ -27,7 +26,7 @@ Supported vendors are either Silvercrest (Lidl) or EasyHome (Aldi).
 Wifi Socket thing parameters:
 
 | Parameter ID   | Parameter Type | Mandatory | Description                                                                   | Default          |
-|----------------|----------------|-----------|-------------------------------------------------------------------------------|------------------|
+| -------------- | -------------- | --------- | ----------------------------------------------------------------------------- | ---------------- |
 | macAddress     | text           | true      | The socket MAC address                                                        |                  |
 | hostAddress    | text           | false     | The socket Host address. The binding is capable to discover the host address. |                  |
 | updateInterval | integer        | false     | Update time interval in seconds to request the status of the socket.          | 60               |
@@ -35,7 +34,7 @@ Wifi Socket thing parameters:
 
 E.g.
 
-```
+```java
 Thing silvercrestwifisocket:wifiSocket:lamp [ macAddress="ACCF23343C50", vendor="ALDI_EASYHOME" ]
 ```
 
@@ -44,5 +43,5 @@ Thing silvercrestwifisocket:wifiSocket:lamp [ macAddress="ACCF23343C50", vendor=
 The Silvercrest Wifi Socket support the following channel:
 
 | Channel Type ID | Item Type | Description         |
-|-----------------|-----------|---------------------|
+| --------------- | --------- | ------------------- |
 | switch          | Switch    | Wifi Socket Switch. |
index 3ebbef5e281564ea3618b02bf6ee2bb1a56912c7..02f586ca1c9dd5da6adb4de91af7976319304b2f 100644 (file)
@@ -12,23 +12,23 @@ Right now, only the thermostat devices (3000W and 4000W) (TH1120RF) are supporte
 
 ## Discovery
 
-The Sinopé Gateway (bridge) discovery is not supported for now. 
+The Sinopé Gateway (bridge) discovery is not supported for now.
 It will be added in future release.
-The Sinopé devices discovery is implemented. 
+The Sinopé devices discovery is implemented.
 
 ## Prerequisites
 
-### Bridge or the Sinopé Gateway 
+### Bridge or the Sinopé Gateway
 
 First, you will need to get your API key from your Sinopé gateway.
 
 Grab the latest release of the [sinope-core library](<https://github.com/chaton78/sinope-core/releases>)
 
-On Windows, you can run the SinopeProtocol.exe (in the zip release). 
-The gateway parameter is written on the back of the SinopéGateway (example, 002f-c2c2-dd88-aaaa). 
+On Windows, you can run the SinopeProtocol.exe (in the zip release).
+The gateway parameter is written on the back of the SinopéGateway (example, 002f-c2c2-dd88-aaaa).
 The addr parameter is the IP given to your gateway.
 
-```
+```shell
 SinopeProtocol.exe -addr [YOUR_GATEWAY_IP_OR_HOSTNAME]  -gateway [YOUR_GATEWAY_ID] -login
 Getting API Key  - PRESS WEB Button
 Your api Key is: 0x12 0x57 0x55 0xD5 0xCD 0x4A 0xD5 0x33
@@ -36,7 +36,7 @@ Your api Key is: 0x12 0x57 0x55 0xD5 0xCD 0x4A 0xD5 0x33
 
  On other operating systems, using only a JVM, you can invoke directly the java command from the latest release of the [sinope-core library](<https://github.com/chaton78/sinope-core/releases>):
 
-```
+```shell
 java -jar core-0.0.3-shaded.jar -addr [YOUR_GATEWAY_IP_OR_HOSTNAME]   -gateway [YOUR_GATEWAY_ID] -login
 Getting API Key  - PRESS WEB Button
 Your api Key is: 0x12 0x57 0x55 0xD5 0xCD 0x4A 0xD5 0x33
@@ -44,15 +44,15 @@ Your api Key is: 0x12 0x57 0x55 0xD5 0xCD 0x4A 0xD5 0x33
 
 ### Thing Discovery
 
-You can use the same procedure to discover each device you want to use. 
-You will need to provide the api key from the previous step. 
-If you use spaces, please, use double quotes to pass the api key (i.e. "0x12 0x57 0x55 0xD5 0xCD 0x4A 0xD5 0x33") 
+You can use the same procedure to discover each device you want to use.
+You will need to provide the api key from the previous step.
+If you use spaces, please, use double quotes to pass the api key (i.e. "0x12 0x57 0x55 0xD5 0xCD 0x4A 0xD5 0x33")
 
-Use the device procedure to discover it. 
-For a thermostat, you need to push both buttons. 
+Use the device procedure to discover it.
+For a thermostat, you need to push both buttons.
 The application will loop forever, press ctrl-c to exit.
 
-```
+```shell
 SinopeProtocol.exe -addr [YOUR_GATEWAY_IP_OR_HOSTNAME]  -gateway [YOUR_GATEWAY_ID] -api "[YOUR_API_KEY]" -discover
 
 It is now time to push both buttons on your device!
@@ -64,7 +64,7 @@ Press crtl-c to exit!
 
 On other operating systems, using only a JVM, you can invoke directly the java command:
 
-```
+```shell
 java -jar core-0.0.3-shaded.jar -addr [YOUR_GATEWAY_IP_OR_HOSTNAME]  -gateway [YOUR_GATEWAY_ID] -api "[YOUR_API_KEY]" -discover
 
 It is now time to push both buttons on your device!
@@ -79,13 +79,13 @@ Press crtl-c to exit!
 The Sinopé bridge requires the address, the gateway id and the API key in order for the binding to know where and how to access it.
 In the thing file, this looks e.g. like
 
-```
+```java
 Bridge sinope:gateway:home [ hostname="[YOUR_GATEWAY_IP_OR_HOSTNAME]", gatewayId="[YOUR_GATEWAY_ID]", apiKey="0x1F 0x5D 0xC8 0xD5 0xCD 0x3A 0xD7 0x23"]
 ```
 
 The devices are identified by the ids that a Sinopé device returns when you have discovered it.
 
-```
+```shell
 thermostat room [ deviceId = "0x00 0x00 0x35 0x86" ]
 ```
 
@@ -93,13 +93,13 @@ thermostat room [ deviceId = "0x00 0x00 0x35 0x86" ]
 
 Thermostat devices support some of the following channels:
 
- Channel Type ID     | Item Type   | Description                                                                                                                            
----------------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------|
- insideTemperature   | Number (R)  | Inside Temperature                                                                                                                     |   
- outsideTemperature  | Number (R)  | Outside Temperature                                                                                                                    | 
- setpointTemperature | Number (RW) | Set Point Temperature                                                                                                                  | 
- setpointMode        | String (RW) | Thermostat set point mode                                                                                                              |     
- heatingLevel        | Number (R)  | Heating Level                                                                                                                             | 
+| Channel Type ID     | Item Type   | Description               |
+| ------------------- | ----------- | ------------------------- |
+| insideTemperature   | Number (R)  | Inside Temperature        |
+| outsideTemperature  | Number (R)  | Outside Temperature       |
+| setpointTemperature | Number (RW) | Set Point Temperature     |
+| setpointMode        | String (RW) | Thermostat set point mode |
+| heatingLevel        | Number (R)  | Heating Level             |
 
 ## Full Example
 
@@ -107,7 +107,7 @@ In this example setup the Sinopé Gateway is represented as a Bridge **Home** wi
 
 ### demo.things:
 
-```
+```java
 Bridge sinope:gateway:home [ hostname="sinope", gatewayId="1234-4567-1234-1234", apiKey="0x12 0x34 0x56 0x78 0x9A 0xBC 0xDE 0xF0"] {
   thermostat room [ deviceId = "00003586" ]
 }
@@ -115,7 +115,7 @@ Bridge sinope:gateway:home [ hostname="sinope", gatewayId="1234-4567-1234-1234",
 
 ### demo.items:
 
-```
+```java
 Number Room_In  "Room Temp. [%.2f °C]" <temperature> { channel="sinope:thermostat:home:room:insideTemperature" }
 Number Room_Out "Outside Temp. [%.2f °C]" <temperature> { channel="sinope:thermostat:home:room:outsideTemperature" }
 Number Room_SetPoint "Room Set Point [%.2f °C]" <temperature> { channel="sinope:thermostat:home:room:setpointTemperature" }
@@ -125,7 +125,7 @@ Number Room_HeatLevel "Room Heating level [%d]" <heating> { channel="sinope:ther
 
 ### demo.sitemap:
 
-```
+```perl
 sitemap demo label="Main Menu"
 { 
   Frame label="Sinope" {
index 8bafc9f3e2a1a36b669aa2365be3b56d74acd092..4e47a9f47a140882ec2f4981bc4e59c1b77a9c87 100644 (file)
@@ -49,7 +49,7 @@ Each bed requires a bed ID as defined by the SleepIQ service.
 
 ### Sample Thing Configuration
 
-```
+```java
 Bridge sleepiq:cloud:1 [ username="mail@example.com", password="password", pollingInterval=60, logging=false ]
 {
     Thing dualBed master [ bedId="-9999999999999999999" ]
@@ -83,7 +83,7 @@ All channels within this group are read-only.
 
 Here is a sample item configuration:
 
-```
+```java
 Switch      MasterBedroom_SleepIQ_InBed_Alice          "In Bed [%s]"        { channel="sleepiq:dualBed:1:master:left#inBed" }
 Number      MasterBedroom_SleepIQ_SleepNumber_Alice    "Sleep Number [%s]"  { channel="sleepiq:dualBed:1:master:left#sleepNumber" }
 Number      MasterBedroom_SleepIQ_Pressure_Alice       "Pressure [%s]"      { channel="sleepiq:dualBed:1:master:left#pressure" }
index 46025054f0dec37a18935b46ba8310f667b163a8..bec95aad8ae4cebf6e9d79131a400809734058c0 100644 (file)
@@ -2,7 +2,6 @@
 
 This binding retrieves and reads SML messages (PUSH) and supports IEC 62056-21 modes A,B,C (PULL) and D (PUSH).
 
-
 ## Supported Things
 
 This binding supports only one Thing: `meter`
@@ -11,18 +10,17 @@ This binding supports only one Thing: `meter`
 
 Discovery is not available, as the binding only reads from serial ports.
 
-
 ## Thing Configuration
 
 The smartmeter thing requires the serial port where the meter device is connected and optionally a refresh interval.
 
-| Parameter | Name | Description | Required | Default |
-|-----------|------|-------------|----------|---------|
-| `port` | The serial port to connect to| URL to use for playing notification sounds, e.g. `/dev/ttyUSB0` | yes | |
-| `refresh` | The refresh interval in seconds | Defines at which interval the values of the meter device shall be read | no | 20 |
-| `mode` | The protocol mode to use | Can be `SML` (PUSH mode), `ABC` (PULL) or `D` (PUSH) | no | `SML` |
-| `baudrateChangeDelay` | Delay of baudrate change in ms | USB to serial converters often require a delay of up to 250ms after the ACK before changing baudrate (only relevant for 'C' mode) | no | 0 |
-| `baudrate` | (initial) Baudrate | The baudrate of the serial port. If set to `AUTO`, it will be negotiated with the meter. The default is `300` baud for modes A, B, and C and `2400` baud for mode D, and `9600` baud for SML. | no | `AUTO` |
+| Parameter             | Name                            | Description                                                                                                                                                                                   | Required | Default |
+| --------------------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------- |
+| `port`                | The serial port to connect to   | URL to use for playing notification sounds, e.g. `/dev/ttyUSB0`                                                                                                                               | yes      |         |
+| `refresh`             | The refresh interval in seconds | Defines at which interval the values of the meter device shall be read                                                                                                                        | no       | 20      |
+| `mode`                | The protocol mode to use        | Can be `SML` (PUSH mode), `ABC` (PULL) or `D` (PUSH)                                                                                                                                          | no       | `SML`   |
+| `baudrateChangeDelay` | Delay of baudrate change in ms  | USB to serial converters often require a delay of up to 250ms after the ACK before changing baudrate (only relevant for 'C' mode)                                                             | no       | 0       |
+| `baudrate`            | (initial) Baudrate              | The baudrate of the serial port. If set to `AUTO`, it will be negotiated with the meter. The default is `300` baud for modes A, B, and C and `2400` baud for mode D, and `9600` baud for SML. | no       | `AUTO`  |
 
 ## Channels
 
@@ -34,22 +32,21 @@ Following conversion from OBIS codes to channel ID is done:
 
 e.g.
 
-| OBIS code   | Channel ID |
-|-------------|------------|
-|`1-0:1.8.1` | `1-0_1-8-1` |
-|`1.8.0*00` | `1-8-0_00` |
-
+| OBIS code   | Channel ID  |
+| ----------- | ----------- |
+| `1-0:1.8.1` | `1-0_1-8-1` |
+| `1.8.0*00`  | `1-8-0_00`  |
 
 ### Channel Configuration
 
-**negate:** Energy meters often provide absolute values and provide information about the *energy direction* in a separate bit. 
+**negate:** Energy meters often provide absolute values and provide information about the _energy direction_ in a separate bit.
 With this config you can specify the channel where this bit is located, the bit position and the bits value which shall be set.
 
 `<negate> ::= <CHANNEL_ID>:<BIT_POSITION>:<BIT_VALUE>[:status]`
 
 e.g.:
 
-```
+```text
 "1-0_1-8-0:5:1:status" // negate if status(1-0_1-8-0) and 2^5 = 1
 "1-0_96-5-5:5:1" // negate if 1-0#96-5-5 and 2^5 = 1
 ```
@@ -58,13 +55,13 @@ e.g.:
 
 Please use the [Units Of Measurement](https://www.openhab.org/docs/concepts/units-of-measurement.html) concept of openHAB for unit conversion which is fully supported by this binding.
 Please see the item example on how to use it.
-*NOTE:* your meter device needs to provide correct unit information to work properly.
+_NOTE:_ your meter device needs to provide correct unit information to work properly.
 
 ## Full Example
 
 Things:
 
-```
+```java
 smartmeter:meter:heating  [ port="COM1", refresh=10 ]
 smartmeter:meter:house [ port="rfc2217://xxx.xxx.xxx.xxx:3002" ]
 
@@ -80,7 +77,7 @@ smartmeter:meter:BinderPower     [port="/dev/ttyUSB0", refresh=5] {
 
 Items:
 
-```
+```java
 Number:Energy HeatingTarif1        "Heating high price tariff [%.2f kWh]"      { channel="smartmeter:meter:heating:1-0_1-8-1" }
 Number:Energy HeatingTarif2        "Heating low price tariff [%.2f kWh]"       {  channel="smartmeter:meter:heating:1-0_1-8-2" }
 
@@ -93,11 +90,9 @@ Number:Power HouseActualUsage     "Current usage [%.2f %unit%]"               {
 ## Known Limitations
 
 - Octet encoding for OBIS Codes
-    - '129-129:199.130.5'
+  - '129-129:199.130.5'
     - '1-0:0.0.9'
-    
-      doesn't work properly.
+        doesn't work properly.
 
 Any help/contribution is appreciated!
 
index bc9247c91292bda0b79609b4739959396f951bfd..bac51c8b6b0f808ed418ac2f8abfdaf7b0b81134 100644 (file)
@@ -4,7 +4,7 @@ This binding integrates the Samsung Smartthings Hub into openHAB.
 
 ## Supported things
 
-This binding supports most of the Smartthings devices that are defined in the [Smartthings Capabilities list](https://developer-preview.smartthings.com/docs/devices/capabilities/capabilities-reference/). If you find a device that doesn't work [follow these instructions](doc/Troubleshooting.md) to collect the required data so it can be added in a future release. 
+This binding supports most of the Smartthings devices that are defined in the [Smartthings Capabilities list](https://developer-preview.smartthings.com/docs/devices/capabilities/capabilities-reference/). If you find a device that doesn't work [follow these instructions](doc/Troubleshooting.md) to collect the required data so it can be added in a future release.
 
 ## Discovery
 
@@ -25,106 +25,126 @@ This binding is an openHAB binding and uses the Bridge / Thing design with the S
 
 The bridge requires the IP address and port used to connect the openHAB server to the Smartthings Hub.
 
-    Bridge smartthings:smartthings:Home    [ smartthingsIp="192.168.1.12", smartthingsPort=39500 ] {
+```java
+Bridge smartthings:smartthings:Home    [ smartthingsIp="192.168.1.12", smartthingsPort=39500 ] {
+```
 
 where:
 
-* **smartthings:smartthings:Home** identifies this is a smartthings hub named Home. The first two segments must be smartthings:smartthings. You can choose any unique name for the the last segment. The last segment is used when you identify items connected to this hubthingTypeId.
-* **smartthingsIp** is the IP address of the Smartthings Hub. Your router should be configured such that the Smartthings Hub is always assigned to this IP address.
-* **smartthingsPort** is the port the Smartthings hub listens on. 39500 is the port assigned by Smartthings so it should be used unless you have a good reason for using another port.
+- **smartthings:smartthings:Home** identifies this is a smartthings hub named Home.
+    The first two segments must be smartthings:smartthings.
+    You can choose any unique name for the the last segment.
+    The last segment is used when you identify items connected to this hubthingTypeId.
+- **smartthingsIp** is the IP address of the Smartthings Hub.
+    Your router should be configured such that the Smartthings Hub is always assigned to this IP address.
+- **smartthingsPort** is the port the Smartthings hub listens on. 39500 is the port assigned by Smartthings so it should be used unless you have a good reason for using another port.
 
-**Warning** This binding only supports one Bridge. If you try to configure a second bridge it will be ignored.
+**Warning** This binding only supports one Bridge.
+If you try to configure a second bridge it will be ignored.
 
 ### Thing Configuration
 
 Each attached thing must specify the type of device and it's Smartthings device name. The format of the Thing description is:
 
-    Thing <thingTypeId> name [ smartthingsName="<deviceName>", {smartthingsTimeout=<timeout>} ]
+```java
+Thing <thingTypeId> name [ smartthingsName="<deviceName>", {smartthingsTimeout=<timeout>} ]
+```
 
 where:
 
-* **[thingTypeId](https://developer-preview.smartthings.com/docs/devices/capabilities/capabilities-reference/)** corresponds to the "Preferences Reference" in the Smartthings Capabilities document but without the capability. prefix. i.e. A dimmer switch in the Capabilities document has a Preferences reference of capability.switchLevel, therefore the &lt;thingTypeId&gt; is switchLevel.
-* **name** is what you want to call this thing and is used in defining the items that use this thing.
-* **deviceName** is the name you assigned to the device when you discovered and connected to it in the Smartthings App
-* Optional: **timeout** is how long openHAB will wait for a response to the request before throwing a timeout exception. The default is 3 seconds.
+- **[thingTypeId](https://developer-preview.smartthings.com/docs/devices/capabilities/capabilities-reference/)** corresponds to the "Preferences Reference" in the Smartthings Capabilities document but without the capability.prefix. i.e. A dimmer switch in the Capabilities document has a Preferences reference of capability.switchLevel, therefore the &lt;thingTypeId&gt; is switchLevel.
+- **name** is what you want to call this thing and is used in defining the items that use this thing.
+- **deviceName** is the name you assigned to the device when you discovered and connected to it in the Smartthings App
+- Optional: **timeout** is how long openHAB will wait for a response to the request before throwing a timeout exception. The default is 3 seconds.
 
+#### Example
 
-**Example**
-
-    Bridge smartthings:smartthings:Home    [ smartthingsIp="192.168.1.12", smartthingsPort=39500 ] {
-        Thing switchLevel              KitchenLights           [ smartthingsName="Kitchen lights" ]
-        Thing contactSensor            MainGarageDoor          [ smartthingsName="Garage Door Open Sensor" ]
-        Thing temperatureMeasurement   MainGarageTemp          [ smartthingsName="Garage Door Open Sensor" ]
-        Thing battery                  MainGarageBattery       [ smartthingsName="Garage Door Open Sensor" ]
-        Thing switch                   OfficeLight             [ smartthingsName="Office Light", smartthingsTimeout=7 ]
-        Thing valve                    SimulatedValve          [ smartthingsName="Simulated Valve" ]
-    }
+```java
+Bridge smartthings:smartthings:Home    [ smartthingsIp="192.168.1.12", smartthingsPort=39500 ] {
+    Thing switchLevel              KitchenLights           [ smartthingsName="Kitchen lights" ]
+    Thing contactSensor            MainGarageDoor          [ smartthingsName="Garage Door Open Sensor" ]
+    Thing temperatureMeasurement   MainGarageTemp          [ smartthingsName="Garage Door Open Sensor" ]
+    Thing battery                  MainGarageBattery       [ smartthingsName="Garage Door Open Sensor" ]
+    Thing switch                   OfficeLight             [ smartthingsName="Office Light", smartthingsTimeout=7 ]
+    Thing valve                    SimulatedValve          [ smartthingsName="Simulated Valve" ]
+}
+```
 
 ## Items
 
-These are specified in the .items file. This section describes the specifics related to this binding. Please see the [Items documentation](https://www.openhab.org/docs/configuration/items.html) for a full explanation of configuring items.
+These are specified in the .items file. This section describes the specifics related to this binding.
+Please see the [Items documentation](https://www.openhab.org/docs/configuration/items.html) for a full explanation of configuring items.
 
 The most important thing is getting the **channel** specification correct. The general format is:
 
-    { channel="smartthings:<thingTypeId>:<hubName>:<thingName>:<channelId>" }
+```java
+{ channel="smartthings:<thingTypeId>:<hubName>:<thingName>:<channelId>" }
+```
 
 The parts (separated by :) are defined as:
 
 1. **smartthings** to specify this is a smartthings device
-2. **thingTypeId** specifies the type of the thing  you are connecting to. This is the same as described in the last section.
-3. **hubName** identifies the name of the hub specified above. This corresponds to the third segment in the **Bridge** definition.
-4. **thingName** identifes the thing this is attached to and is the "name" you specified in the **Thing** definition.
-5. **channelId** corresponds the the attribute in the [Smartthings Capabilities list](https://docs.smartthings.com/en/latest/capabilities-reference.html). For switch it would be "switch".
-
-**Example**
-
-    Dimmer  KitchenLights        "Kitchen lights level"     <slider>          { channel="smartthings:switchLevel:Home:KitchenLights:level" }
-    Switch  KitchenLightSwitch   "Kitchen lights switch"    <light>           { channel="smartthings:switchLevel:Home:KitchenLights:switch" }
-    Contact MainGarageDoor       "Garage door status [%s]" <garagedoor>       { channel="smartthings:contactSensor:Home:MainGarageDoor:contact" }
-    Number  MainGarageTemp       "Garage temperature [%.0f]"  <temperature>   { channel="smartthings:temperatureMeasurement:Home:MainGarageTemp:temperature" }
-    Number  MainGarageBattery    "Garage battery [%.0f]"  <battery>           { channel="smartthings:battery:Home:MainGarageBattery:battery" }
-    Switch  OfficeLight          "Office light"    <light>                    { channel="smartthings:switch:Home:OfficeLight:switch" }
-    String  SimulatedValve       "Simulated valve"                            { channel="smartthings:valve:Home:SimulatedValve:valve" }
+1. **thingTypeId** specifies the type of the thing  you are connecting to. This is the same as described in the last section.
+1. **hubName** identifies the name of the hub specified above. This corresponds to the third segment in the **Bridge** definition.
+1. **thingName** identifes the thing this is attached to and is the "name" you specified in the **Thing** definition.
+1. **channelId** corresponds the the attribute in the [Smartthings Capabilities list](https://docs.smartthings.com/en/latest/capabilities-reference.html). For switch it would be "switch".
+
+### Example
+
+```java
+Dimmer  KitchenLights        "Kitchen lights level"     <slider>          { channel="smartthings:switchLevel:Home:KitchenLights:level" }
+Switch  KitchenLightSwitch   "Kitchen lights switch"    <light>           { channel="smartthings:switchLevel:Home:KitchenLights:switch" }
+Contact MainGarageDoor       "Garage door status [%s]" <garagedoor>       { channel="smartthings:contactSensor:Home:MainGarageDoor:contact" }
+Number  MainGarageTemp       "Garage temperature [%.0f]"  <temperature>   { channel="smartthings:temperatureMeasurement:Home:MainGarageTemp:temperature" }
+Number  MainGarageBattery    "Garage battery [%.0f]"  <battery>           { channel="smartthings:battery:Home:MainGarageBattery:battery" }
+Switch  OfficeLight          "Office light"    <light>                    { channel="smartthings:switch:Home:OfficeLight:switch" }
+String  SimulatedValve       "Simulated valve"                            { channel="smartthings:valve:Home:SimulatedValve:valve" }
+```
 
 **Special note about Valves**
 Smarttings includes a **valve** which can be Open or Closed but openHAB does not include a Valve item type. Therefore, the valve is defined as a having an item type of String. And, therefore the item needs to be defined with an item type of string. It can be controlled in the sitemap by specifying the Element type of Switch and providing a mapping of: mappings=[open="Open", closed="Close"]. Such as:
 
-    Switch item=SimulatedValve mappings=[open="Open", closed="Close"]
+```java
+Switch item=SimulatedValve mappings=[open="Open", closed="Close"]
+```
 
 **RGB Bulb example**
 Here is a sample configuration for a RGB bulb, such as a Sengled model E11-N1EA bulb. Currently this binding does not have a RGB specific bulb therefore a Thing is required for each part of the bulb.
 
-**Example**
-
-**things file**
-
-    colorControl            SengledColorControl         [ smartthingsName="Sengled Bulb"]
-    colorTemperature        SengledColorTemperature     [ smartthingsName="Sengled Bulb"]
-    switch                  SengledSwitch               [ smartthingsName="Sengled Bulb"]
-    switchLevel             SengledSwitchLevel          [ smartthingsName="Sengled Bulb"]
-
-**items file**
+## Full Example
 
-    Color  SengledColorControl    "Sengled bulb color"   <colorpicker>   {channel="smartthings:colorControl:Home:SengledColorControl:color"}
-    Number SengledTemperature     "Sengled bulb color temperature"       {channel="smartthings:colorTemperature:Home:SengledColorTemperature:colorTemperature"}
-    Switch SengledSwitch          "Sengled bulb switch"   <switch>       {channel="smartthings:switch:Home:SengledSwitch:switch"}
-    Dimmer SengledDimmer          "Sengled bulb dimmer"   <slider>       {channel="smartthings:switchLevel:Home:SengledSwitchLevel:level"}
+### Things File
 
-**sitemap file**
+```java
+colorControl            SengledColorControl         [ smartthingsName="Sengled Bulb"]
+colorTemperature        SengledColorTemperature     [ smartthingsName="Sengled Bulb"]
+switch                  SengledSwitch               [ smartthingsName="Sengled Bulb"]
+switchLevel             SengledSwitchLevel          [ smartthingsName="Sengled Bulb"]
+```
 
-    Frame label="Sengled RGBW Bulb" {
-        Switch item=SengledSwitch label="Switch"
-        Slider  item=SengledDimmer label="Level [%d]"
-        Text item=SengledTemperature label="Color Temperature [%d]"
-        Colorpicker item=SengledColorControl label="Color [%s]"  icon="colorwheel"
-    }
+### Items File
 
+```java
+Color  SengledColorControl    "Sengled bulb color"   <colorpicker>   {channel="smartthings:colorControl:Home:SengledColorControl:color"}
+Number SengledTemperature     "Sengled bulb color temperature"       {channel="smartthings:colorTemperature:Home:SengledColorTemperature:colorTemperature"}
+Switch SengledSwitch          "Sengled bulb switch"   <switch>       {channel="smartthings:switch:Home:SengledSwitch:switch"}
+Dimmer SengledDimmer          "Sengled bulb dimmer"   <slider>       {channel="smartthings:switchLevel:Home:SengledSwitchLevel:level"}
+```
 
+### Sitemap File
 
+```perl
+Frame label="Sengled RGBW Bulb" {
+    Switch item=SengledSwitch label="Switch"
+    Slider  item=SengledDimmer label="Level [%d]"
+    Text item=SengledTemperature label="Color Temperature [%d]"
+    Colorpicker item=SengledColorControl label="Color [%s]"  icon="colorwheel"
+}
+```
 
 ## References
 
 1. [openHAB configuration documentation](https://openhab.org/docs/configuration/index.html)
-2. [Smartthings Capabilities Reference](https://docs.smartthings.com/en/latest/capabilities-reference.html)
-3. [Smartthings Developers Documentation](https://docs.smartthings.com/en/latest/index.html)
-4. [Smartthings Development Environment](https://graph.api.smartthings.com/)
+1. [Smartthings Capabilities Reference](https://docs.smartthings.com/en/latest/capabilities-reference.html)
+1. [Smartthings Developers Documentation](https://docs.smartthings.com/en/latest/index.html)
+1. [Smartthings Development Environment](https://graph.api.smartthings.com/)
index 64771eee95556af4a8aed7aac896a4aa7e5885dc..a81f079244b19710e75fac3c0df059616d7e3a69 100644 (file)
@@ -1,21 +1,20 @@
 # Smhi Binding
 
-This binding gets hourly and daily forecast from SMHI - the Swedish Meteorological and Hydrological Institute. 
+This binding gets hourly and daily forecast from SMHI - the Swedish Meteorological and Hydrological Institute.
 It can get forecasts for the nordic countries (Sweden, Norway, Denmark and Finland).
 
 ## Supported Things
 
-The binding support only one thing-type: forecast. 
+The binding support only one thing-type: forecast.
 The thing can be configured to get hourly forecasts for up to 24 hours, and daily forecasts for up to 10 days.
 
-
 ## Discovery
 
 This binding does not support automatic discovery.
 
 ## Thing Configuration
 
-The forecast thing needs to be configured with the latitude and longitude for the location of the forecast. 
+The forecast thing needs to be configured with the latitude and longitude for the location of the forecast.
 You can also choose for which hours and which days you would like to get forecasts.
 
 | Parameter        | Description                     | Required |
@@ -35,10 +34,10 @@ or the number of hours/days from now) + the channel id, concatenated with a `#`.
 
 Examples:
 
-* Temperature for the current hour: `hour_0#t`
-* Total precipitation 3 days from now: `day_3#ptotal`
+- Temperature for the current hour: `hour_0#t`
+- Total precipitation 3 days from now: `day_3#ptotal`
 
-#### Basic channels
+### Basic channels
 
 | channel                 | type                 | channel id | description                                                               |
 |-------------------------|----------------------|------------|---------------------------------------------------------------------------|
@@ -59,7 +58,7 @@ Examples:
 | Total cloud cover       | Number:Dimensionless | tcc_mean   | Mean value of total cloud cover in percent                                |
 | Weather condition**     | Number               | wsymb2     | Short description of the weather conditions                               |
 
-#### Advanced channels
+### Advanced channels
 
 | channel                  | type                 | channel id | description                                                                                |
 |--------------------------|----------------------|------------|--------------------------------------------------------------------------------------------|
@@ -116,18 +115,17 @@ Examples:
 | 26    | Moderate snowfall      |
 | 27    | Heavy snowfall         |
 
-
 ## Full Example
 
-demo.things
+### demo.things
 
-```
+```java
 Thing smhi:forecast:demoforecast "Demo forecast" [ latitude=57.997072, longitude=15.990068, hourlyForecasts=0,1,2, dailyForecasts=0,1 ]
 ```
 
-demo.items
+### demo.items
 
-```
+```java
 Number:Temperature Smhi_Temperature_Now "Current temperature [%.1f °C]" {channel="smhi:forecast:demoforecast:hour_0#t"}
 Number:Speed Smhi_Min_Precipitation_Now "Current precipitation (min) [%.1f mm/h]" {channel="smhi:forecast:demoforecast:hour_0#pmin"}
 
@@ -138,9 +136,9 @@ Number:Temperature Smhi_Temperature_Tomorrow "Temperature tomorrow [%.1f °C]" {
 Number:Speed Smhi_Min_Precipitation_Tomorrow "Precipitaion tomorrow (min) [%.1f mm/h]" {channel="smhi:forecast:demoforecast:hour_1#pmin"}
 ```
 
-demo.sitemap
+### demo.sitemap
 
-```
+```java
 sitemap demo label="Smhi" {
     Frame label="Current weather" {
         Text item=Smhi_Temperature_Now
index 84e3fa6db22dd0aa7798a6534e1bc1095694120e..3b5b1f04e9bc873c7f356850c04fdbe91d03f3c0 100644 (file)
@@ -4,104 +4,100 @@ This binding connects to a USB serial GSM modem (or a network exposed one, see s
 
 Serial modem should all use the same communication protocol (AT message) and therefore this binding _should_ be compatible with every dongle.
 However, there is a gap between theory and reality and success may vary.
-The protocol stack is based on the no longer supported smslib project (more precisely a v4 fork), and all modems supported by this library should be OK. 
+The protocol stack is based on the no longer supported smslib project (more precisely a v4 fork), and all modems supported by this library should be OK.
 
 The following devices have been reported functional :
 
--  Huawei E180
+- Huawei E180
 
 ## Supported Things
 
 Two things are supported by this binding :
 
-- A *smsmodembridge*, representing the dongle connected on the local computer
-- A *smsmodemremotebridge*, representing the dongle exposed over the network (with ser2net or other similar software)
-- A *smsconversation*, representing a conversation between one distant msisdn and the msisdn on the sim card in the dongle.
+- A _smsmodembridge_, representing the dongle connected on the local computer
+- A _smsmodemremotebridge_, representing the dongle exposed over the network (with ser2net or other similar software)
+- A _smsconversation_, representing a conversation between one distant msisdn and the msisdn on the sim card in the dongle.
 
 ## Discovery
 
-There is no discovery process for *smsmodembridge* or *smsmodemremotebridge* thing.
-A *smsconversation* thing will be discovered and added to the inbox everytime the modem should receive a SMS by a new sender.
+There is no discovery process for _smsmodembridge_ or _smsmodemremotebridge_ thing.
+A _smsconversation_ thing will be discovered and added to the inbox everytime the modem should receive a SMS by a new sender.
 
 ## Thing Configuration
 
-The *smsmodembridge* or *smsmodemremotebridge* things requires at least two parameters to work properly.
+The _smsmodembridge_ or _smsmodemremotebridge_ things requires at least two parameters to work properly.
 
-For local *smsmodembridge*:
+For local _smsmodembridge_:
 
-| Parameter Name | type | direct serial modem   |
-|----------------|-------|----------------------|
-|serialPort| text | The serial port to access (eg. /dev/tty/USBx) |
-|baud| integer | Baud rate        |
+| Parameter Name | type    | direct serial modem                           |
+| -------------- | ------- | --------------------------------------------- |
+| serialPort     | text    | The serial port to access (eg. /dev/tty/USBx) |
+| baud           | integer | Baud rate                                     |
 
-For remote *smsmodemremotebridge*:
-
-| Parameter Name | type | serial over network                  |
-|----------------|-------|----------------------|
-|ip| text | IP address of the computer hosting the ser2net service|
-|networkPort| integer | The network port of the ser2net service |
+For remote _smsmodemremotebridge_:
 
+| Parameter Name | type    | serial over network                                    |
+| -------------- | ------- | ------------------------------------------------------ |
+| ip             | text    | IP address of the computer hosting the ser2net service |
+| networkPort    | integer | The network port of the ser2net service                |
 
 The other parameters are optional :
 
-| Parameter Name | type | description     |
-|-----------------|------|---------------------|
-|simPin          | text | If your sim card is protected, fill this field with the PIN code|
-|pollingInterval| integer | Delay between two checks for new message (in seconds)|
-|delayBetweenSend| integer | Delay to wait between two messages post (in milliseconds, could be necessary for slow modem)|
-
-The *smsconversation* thing is just a shortcut to address/receive messages with a specific msisdn. It is not mandatory to use the binding, as you can use action and trigger channel to send/receive a message once the smsmodem bridge is configured.
-
-| Parameter Name | type | description               |
-|------------|----------|----------|
-| recipient | text | The msisdn of the phone you want to discuss with.|
-| deliveryReport | boolean | If enabled, ask the network for a delivery report (default false)|
-| encoding | text | The encoding to use when sending the message (either Enc7, Enc8, EncUcs2, EncCustom, default is Enc7). EncUcs2 is good for non latin character, but SMS character size limit is then reduced|
+| Parameter Name   | type    | description                                                                                  |
+| ---------------- | ------- | -------------------------------------------------------------------------------------------- |
+| simPin           | text    | If your sim card is protected, fill this field with the PIN code                             |
+| pollingInterval  | integer | Delay between two checks for new message (in seconds)                                        |
+| delayBetweenSend | integer | Delay to wait between two messages post (in milliseconds, could be necessary for slow modem) |
 
+The _smsconversation_ thing is just a shortcut to address/receive messages with a specific msisdn. It is not mandatory to use the binding, as you can use action and trigger channel to send/receive a message once the smsmodem bridge is configured.
 
+| Parameter Name | type    | description                                                                                                                                                                                  |
+| -------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| recipient      | text    | The msisdn of the phone you want to discuss with.                                                                                                                                            |
+| deliveryReport | boolean | If enabled, ask the network for a delivery report (default false)                                                                                                                            |
+| encoding       | text    | The encoding to use when sending the message (either Enc7, Enc8, EncUcs2, EncCustom, default is Enc7). EncUcs2 is good for non latin character, but SMS character size limit is then reduced |
 
 ## Channels
 
-The *smsconversation* supports the following channels :
-| channel  | type   | description                  |
-|----------|--------|------------------------------|
-| receive | String| The last message received |
-| send | String| A message to send |
-|deliverystatus| String| Delivery status (either UNKNOWN, QUEUED, SENT, PENDING, DELIVERED, EXPIRED, or FAILED). Several status are only possible if the delivery report parameter is enabled|
+The _smsconversation_ supports the following channels :
+| channel        | type   | description                                                                                                                                                          |
+| -------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| receive        | String | The last message received                                                                                                                                            |
+| send           | String | A message to send                                                                                                                                                    |
+| deliverystatus | String | Delivery status (either UNKNOWN, QUEUED, SENT, PENDING, DELIVERED, EXPIRED, or FAILED). Several status are only possible if the delivery report parameter is enabled |
 
 ## Trigger channels
 
-The *smsmodembridge* and *smsmodemremotebridge* has the following trigger channel :
-| Channel ID          | event                      |  
-|---------------------|----------------------------|
-|receivetrigger| The msisdn and message received (concatened with the '\|' character as a separator)|
-
+The _smsmodembridge_ and _smsmodemremotebridge_ has the following trigger channel :
+| Channel ID     | event                                                                               |
+| -------------- | ----------------------------------------------------------------------------------- |
+| receivetrigger | The msisdn and message received (concatened with the '\|' character as a separator) |
 
 ## Rule action
 
 This binding includes a rule action to send SMS.
 
-```
+```javascript
 (Rule DSL)
 val smsAction = getActions("smsmodem","smsmodem:smsmodembridge:<uid>")
 ```
 
-```
+```javascript
 (javascript JSR)
 var smsAction = actions.get("smsmodem","smsmodem:smsmodembridge:<uid>");
 ```
 
-Where uid is the Bridge UID of the *smsmodembridge* thing.
+Where uid is the Bridge UID of the _smsmodembridge_ thing.
 
 Once this action instance is retrieved, you can invoke the 'send' method on it:
 
-```
+```java
 smsAction.sendSMS("1234567890", "Hello world!")
 ```
 
 Or with a special encoding:
 
-```
+```java
 smsAction.sendSMS("1234567890", "Hello world!", "EncUcs2")
 ```
 
@@ -111,7 +107,7 @@ smsAction.sendSMS("1234567890", "Hello world!", "EncUcs2")
 
 things/smsmodem.things:
 
-```
+```java
 Bridge smsmodem:smsmodembridge:adonglename "USB 3G Dongle " [ serialPort="/dev/ttyUSB0", baud="19200" ] {
     Thing smsconversation aconversationname [ recipient="XXXXXXXXXXX", deliveryReport="true" ]
 }
index 0c6ad36a733f1220383c19a29d27ffdbad899209..f7e3a122fbbb74164ef6fe6df6eb417f75ccd47f 100644 (file)
@@ -5,49 +5,47 @@ This is based on live API provided by DIGITALSNCF.
 
 Get your API key on [DIGITALSNCF web site](https://www.digital.sncf.com/startup/api/token-developpeur)
 
-Note : SNCF Api is based on the open [API Navitia](https://doc.navitia.io/#getting-started). 
+Note : SNCF Api is based on the open [API Navitia](https://doc.navitia.io/#getting-started).
 This binding uses a very small subset of it, restricted to its primary purpose.
 
 (*) According to DIGITALSNCF Transilien may only be available for schedule, maybe not real-time.
 
 ## Supported Things
 
-Bridge: The binding supports a bridge to connect to the [DIGITALSNCF service](https://www.digital.sncf.com/startup/api/token developpeur). 
+Bridge: The binding supports a bridge to connect to the [DIGITALSNCF service](<https://www.digital.sncf.com/startup/api/token> developpeur).
 A bridge uses the thing ID "api".
 
 Station: Represents a given bus, train station.
 
 Of course, you can add as many stations as needed.
 
-
 ## Discovery
 
 This binding takes care of auto discovery. This method is strongly recommended as it is the only way to get proper station ID depending upon transportation type.
 
-To enable auto-discovery, your location system setting must be defined. 
+To enable auto-discovery, your location system setting must be defined.
 Once done, at first launch, discovery will search every station in a radius of 2000 m around the system, extending it by step of 500 m until it finds a first set of results.
 Every following manual successive launch will extend this radius by 500 m, increasing the number of stations discovered.
 
-
 ## Binding Configuration
 
 The binding has no configuration options, all configuration is done at Thing level.
 
 ## Bridge Configuration
 
-The bridge configuration only holds the api key : 
+The bridge configuration only holds the api key :
 
-| Parameter | Description                                                    |
-|-----------|----------------------------------------------------------------|
-| apiID     | API ID provided by the DIGITALSNCF service. Mandatory.         |
+| Parameter | Description                                            |
+| --------- | ------------------------------------------------------ |
+| apiID     | API ID provided by the DIGITALSNCF service. Mandatory. |
 
 ## Thing Configuration
 
 The 'Station' thing has only one configuration parameter:
 
-| Parameter   | Description                                                  |
-|-------------|--------------------------------------------------------------|
-| stopPointId | Identifier of the station in the DIGITALSNCF network.        |
+| Parameter   | Description                                           |
+| ----------- | ----------------------------------------------------- |
+| stopPointId | Identifier of the station in the DIGITALSNCF network. |
 
 The thing will auto-update depending on the timestamp of the earliest event detected to trigger (arrival or departure).
 
@@ -55,19 +53,19 @@ The thing will auto-update depending on the timestamp of the earliest event dete
 
 The Station thing holds two groups of channels (arrivals and departures) containing these channels:
 
-| Channel ID            | Item Type | Description                                      |
-|-----------------------|-----------|--------------------------------------------------|
-| direction             | String    | The direction of the route                       |
-| lineName              | String    | Commercial name of the line                      |
-| name                  | String    | Name of the line                                 |
-| network               | String    | Name of the network ruling the line              |
-| timestamp             | DateTime  | Timestamp of the event (departure, arrival)      |
+| Channel ID | Item Type | Description                                 |
+| ---------- | --------- | ------------------------------------------- |
+| direction  | String    | The direction of the route                  |
+| lineName   | String    | Commercial name of the line                 |
+| name       | String    | Name of the line                            |
+| network    | String    | Name of the network ruling the line         |
+| timestamp  | DateTime  | Timestamp of the event (departure, arrival) |
 
 ## Full Example
 
 sncf.things:
 
-```
+```java
 Bridge sncf:api:8901d44a68 "Bridge" [apiID="xxx-yyy-zzz"] {
     station MyHouse "Krakow"[stopPointId="stop_point:SNCF:87561951:Bus"]
 }
@@ -75,13 +73,11 @@ Bridge sncf:api:8901d44a68 "Bridge" [apiID="xxx-yyy-zzz"] {
 
 sncf.items:
 
-```
+```java
 String      Arrival_Direction   { channel="sncf:station:8901d44a68:87381475_RapidTransit:arrivals#direction" }
 String      Arrival_Line        { channel="sncf:station:8901d44a68:87381475_RapidTransit:arrivals#lineName" }
 DateTime    Arrival_Time        { channel="sncf:station:8901d44a68:87381475_RapidTransit:arrivals#timestamp" }
 String      Departure_Direction { channel="sncf:station:8901d44a68:87381475_RapidTransit:departures#direction" }
 String      Departure_Line      { channel="sncf:station:8901d44a68:87381475_RapidTransit:departures#lineName" }
 DateTime    Departure_Time      { channel="sncf:station:8901d44a68:87381475_RapidTransit:departures#timestamp" }
-
 ```
-
index 951dcc4720f9169fff8b70277e88691f0c9a56c5..a795fc7bb97e0fc48edfb4fe098b665dd752e527 100644 (file)
@@ -7,7 +7,7 @@ Currently protocol version 1 and 2c are supported.
 ## Supported Things
 
 Only one thing is supported: `target`.
-It represents a single network device. 
+It represents a single network device.
 Things can be extended with `number`, `string` and `switch` channels.
 
 ## Binding Configuration
@@ -21,28 +21,27 @@ Therefore it is recommended to bind to a port higher than 1024 (e.g. 8162).
 In case the trap sending equipment does not allow to change the destination port (e.g. Mikrotik routers), it is necessary to forward the received packets to the new port.
 This can be done either by software like _snmptrapd_ or by adding a firewall rule to your system, e.g. by executing
 
-```
+```shell
 iptables -t nat -I PREROUTING --src 0/0 --dst 192.168.0.10 -p udp --dport 162 -j REDIRECT --to-ports 8162
 ```
 
-would forward all TCP packets addressed to 192.168.0.10 from port 162 to 8162. 
-Check with your operating system manual how to make that change permanent. 
+would forward all TCP packets addressed to 192.168.0.10 from port 162 to 8162.
+Check with your operating system manual how to make that change permanent.
 
 Example configuration for using port 8162:
 
-```
+```text
 # Configuration for the SNMP Binding
 #
 # Port used for receiving traps.
 # This setting defaults to 0 (disabled / not receiving traps)
 port=8162
-
 ```
 
 ## Thing Configuration
 
 The `target` thing has one mandatory parameter: `hostname`.
-It can be set as FQDN or IP address. 
+It can be set as FQDN or IP address.
 
 Optional configuration parameters are `community`, `version` and `refresh`.
 
@@ -57,7 +56,6 @@ The default is `v1`.
 By using the `refresh` parameter the time between two subsequent GET requests to the target can be set.
 The default is `60` for 60s.
 
-
 Three advanced parameters are available `port`, `timeout`, `retries`
 Usually these do not need to be changed.
 
@@ -101,12 +99,11 @@ In `READ`, `READ_WRITE` or `TRAP` mode they change to either `ON` or `OFF` on th
 The parameters used for defining the values are `onvalue` and `offvalue`.
 The `datatype` parameter is used to convert the configuration strings to the needed values.
 
-| type     | item   | description                     |
-|----------|--------|---------------------------------|
-| number   | Number | a channel with a numeric value  |
-| string   | String | a channel with a string value   |
-| switch   | Switch | a channel that has two states   |
-
+| type   | item   | description                    |
+| ------ | ------ | ------------------------------ |
+| number | Number | a channel with a numeric value |
+| string | String | a channel with a string value  |
+| switch | Switch | a channel that has two states  |
 
 ### SNMP Exception (Error) Handling
 
@@ -124,7 +121,7 @@ Valid values are all valid values for that channel (i.e. `ON`/`OFF` for a switch
 
 demo.things:
 
-```
+```java
 Thing snmp:target:router [ hostname="192.168.0.1", protocol="v2c" ] {
     Channels:
         Type number : inBytes [ oid=".1.3.6.1.2.1.31.1.1.1.6.2", mode="READ", unit="B" ]
@@ -138,7 +135,7 @@ Thing snmp:target:router [ hostname="192.168.0.1", protocol="v2c" ] {
 
 demo.items:
 
-```
+```java
 Number inBytes "Router bytes in [%d]" { channel="snmp:target:router:inBytes" }
 Number inGigaBytes "Router gigabytes in [%d GB]" { channel="snmp:target:router:inBytes" }
 Number outBytes "Router bytes out [%d]" { channel="snmp:target:router:outBytes" }
@@ -150,7 +147,7 @@ Switch receivedValue "Received 00 AA 11 [%s]" { channel="snmp:target:router:valu
 
 demo.sitemap:
 
-```
+```perl
 sitemap demo label="Main Menu"
 {
     Frame {
index e5377f60262c7901274f4c04c1b3580d68f6237f..060481385a0e9afc105e237cde8b6c5a51a81de8 100644 (file)
@@ -33,7 +33,7 @@ When using this token, see also `usePrivateApi` and `meterInstalled`.
 E.g. for Firefox, use the built-in [Storage Inspector](https://developer.mozilla.org/en-US/docs/Tools/Storage_Inspector) to retrieve the token.
 
 - **solarId** (required)  
-Id of your inverter at SolarEdge (can be found in the URL after successful login: https://monitoring.solaredge.com/solaredge-web/p/site/ **&lt;solarId&gt;** /#/dashboard)
+Id of your inverter at SolarEdge (can be found in the URL after successful login: <https://monitoring.solaredge.com/solaredge-web/p/site/> **&lt;solarId&gt;** /#/dashboard)
 
 - **usePrivateApi** (optional)  
 can be set to true to use the private API.
@@ -51,11 +51,11 @@ This can be set either to true or false when using the API key. (default = false
 
 - **liveDataPollingInterval** (optional)  
 interval (minutes) in which live data values are retrieved from Solaredge.
-Setting less than 10 minutes is only allowed when using private API. (default = 10) 
+Setting less than 10 minutes is only allowed when using private API. (default = 10)
 
 - **aggregateDataPollingInterval** (optional)  
 interval (minutes) in which aggregate data values are retrieved from Solaredge.
-Setting less than 60 is only allowed when using private API. (default = 60) 
+Setting less than 60 is only allowed when using private API. (default = 60)
 
 ## Channels
 
@@ -65,7 +65,7 @@ This means you can easily change the desired unit e.g. MWh instead of kWh just i
 Following channels are currently available:
 
 | Channel Type ID                               | Item Type            | Description                                      | Remark                                           |
-|-----------------------------------------------|----------------------|--------------------------------------------------|--------------------------------------------------|
+| --------------------------------------------- | -------------------- | ------------------------------------------------ | ------------------------------------------------ |
 | live#production                               | Number:Power         | Current PV production                            | general available                                |
 | live#pv_status                                | String               | Current PV status                                | requires meter attached and 'meterInstalled' set |
 | live#consumption                              | Number:Power         | Current power consumption                        | requires meter attached and 'meterInstalled' set |
@@ -108,39 +108,38 @@ Following channels are currently available:
 | aggregate_year#import                         | Number:Energy        | Year Aggregate import from grid                  | requires meter attached and 'meterInstalled' set |
 | aggregate_year#export                         | Number:Energy        | Year Aggregate export to grid                    | requires meter attached and 'meterInstalled' set |
 
+## Full Example
 
-## Full Example                                                                                                                                                              
-
-### Thing                                                                                                                                                                    
+### Thing
 
 - minimum configuration
 
-```
+```java
 solaredge:generic:se2200 [ tokenOrApiKey="...", solarId="..."]
 ```
 
 - with pollingIntervals
 
-```
+```java
 solaredge:generic:se2200[ tokenOrApiKey="...", solarId="...", liveDataPollingInterval=..., aggregateDataPollingInterval=... ]
 ```
 
 - maximum version
 
-```
+```java
 solaredge:generic:se2200     [ tokenOrApiKey="secret", solarId="4711", meterInstalled=true, usePrivateApi=true, liveDataPollingInterval=15, aggregateDataPollingInterval=60 ]
 ```
 
 - multiple inverters
 
-```
+```java
 solaredge:generic:home1 [ tokenOrApiKey="...", solarId="..."]
 solaredge:generic:home2  [ tokenOrApiKey="...", solarId="..."]
 ```
 
 ### Items
 
-```
+```java
 Number:Power            SE2200_Live_Production   "PV Produktion [%.2f %unit%]"    {channel="solaredge:generic:se2200:live#production"}
 Number:Dimensionless    SE2200_Live_Level        "Batterieladung"                 {channel="solaredge:generic:se2200:live#battery_level"}
 Number:Energy           SE2200_Day_Production    "PV Produktion [%.2f kWh]"       {channel="solaredge:generic:se2200:aggregate_day#production"}
index 8175dd3b4be27019455f6ffb41663d19a9ac7740..fe6056919d0426654971235d2721f036bb842686 100644 (file)
@@ -1,10 +1,10 @@
-# Solar-Log Binding 
+# Solar-Log Binding
 
 The [Solar-Log Family](https://www.solar-log.com/en/) of monitoring devices for PV installations provide a MODBUS (TCP) and JSON-based API to access a number of internal data related to power generation and consumption. This binding implements access to the data via the JSON API.
 
 ## Use of the binding
 
-The Solar-Log is exposed as one thing with a number of channels that can be used to read the values for different aspects of your Solar-Log installation. 
+The Solar-Log is exposed as one thing with a number of channels that can be used to read the values for different aspects of your Solar-Log installation.
 
 ## Setup of the binding
 
@@ -14,8 +14,8 @@ You can either configure the Thing via the openHAB UI or via a `*.things` file,
 
 The parameters to be used are simple:
 
-* `url` denotes the URL of your Solar-Log. If you have not changed anything, this defaults to `http://solar-log`.
-* `refreshInterval` is the interval to fetch new data. Solar-Log updates its data every 15 - 60 seconds. `15` is the default value. Values lower than this will return the result from the last 15 seconds period. No value lower than this can be set in the UI.
+- `url` denotes the URL of your Solar-Log. If you have not changed anything, this defaults to `http://solar-log`.
+- `refreshInterval` is the interval to fetch new data. Solar-Log updates its data every 15 - 60 seconds. `15` is the default value. Values lower than this will return the result from the last 15 seconds period. No value lower than this can be set in the UI.
 
 Currently, the binding does not support authenticated access to the Solar-Log JSON API (which was introduced with newer firmwares). If must set the API access to `Open` in the Solar-Log configuration in order for the binding to work.
 
@@ -23,28 +23,28 @@ Currently, the binding does not support authenticated access to the Solar-Log JS
 
 The following table is taken from the official manual and contains all available channels. If you want to manually define Items, this can for example be done as follows:
 
-`Number solarlog_meter_pv_yieldday "Yield Day [% W]" (gSolarLog, gUtilityRoom) { channel="solarlog:meter:pv:yieldday" }` 
-
-Data point          | Unit                  | Index Description
-------------------- | --------------------- | -----------------   
-lastupdate          | Time in the format dd.mm.yy; hh.minmin, secsec | 100 Time
-pac                 | W  | 101 Total output PAC from all of the inverters and meters in inverter mode
-pdc                 | W  | 102 Total output PAC from all of the inverters
-uac                 | V  | 103 Average voltage UAC from the inverter
-udc                 | V  | 104 Average voltage UDC from the inverter
-yieldday            | Wh | 105 Total yield for the day from all of the inverters
-yieldyesterday      | Wh | 106 Total yield for the previous day from all of the inverters
-yieldmonth          | Wh | 107 Total yield for the month from all of the inverters
-yieldyear           | Wh | 108 Total yield for the year from all of the inverters
-yieldtotal          | Wh | 109 Total yield from all of the inverters
-conspac             | W  | 110 Current total consumption PAC from all of the consumption meters
-consyieldday        | Wh | 111 Total consumption from all of the consumption meters
-consyieldyesterday  | Wh | 112 Total consumption for the previous day; all of the consumption meters
-consyieldmonth      | Wh | 113 Total consumption for the month; all of the consumption meters
-consyieldyear       | Wh | 114 Total consumption for the year; all of the consumption meters
-consyieldtotal      | Wh | 115 Accumulated total consumption, all Consumption meter
-totalpower          | Wp | 116 Installed generator power
+`Number solarlog_meter_pv_yieldday "Yield Day [% W]" (gSolarLog, gUtilityRoom) { channel="solarlog:meter:pv:yieldday" }`
+
+| Data point         | Unit                                           | Index Description                                                          |
+| ------------------ | ---------------------------------------------- | -------------------------------------------------------------------------- |
+| lastupdate         | Time in the format dd.mm.yy; hh.minmin, secsec | 100 Time                                                                   |
+| pac                | W                                              | 101 Total output PAC from all of the inverters and meters in inverter mode |
+| pdc                | W                                              | 102 Total output PAC from all of the inverters                             |
+| uac                | V                                              | 103 Average voltage UAC from the inverter                                  |
+| udc                | V                                              | 104 Average voltage UDC from the inverter                                  |
+| yieldday           | Wh                                             | 105 Total yield for the day from all of the inverters                      |
+| yieldyesterday     | Wh                                             | 106 Total yield for the previous day from all of the inverters             |
+| yieldmonth         | Wh                                             | 107 Total yield for the month from all of the inverters                    |
+| yieldyear          | Wh                                             | 108 Total yield for the year from all of the inverters                     |
+| yieldtotal         | Wh                                             | 109 Total yield from all of the inverters                                  |
+| conspac            | W                                              | 110 Current total consumption PAC from all of the consumption meters       |
+| consyieldday       | Wh                                             | 111 Total consumption from all of the consumption meters                   |
+| consyieldyesterday | Wh                                             | 112 Total consumption for the previous day; all of the consumption meters  |
+| consyieldmonth     | Wh                                             | 113 Total consumption for the month; all of the consumption meters         |
+| consyieldyear      | Wh                                             | 114 Total consumption for the year; all of the consumption meters          |
+| consyieldtotal     | Wh                                             | 115 Accumulated total consumption, all Consumption meter                   |
+| totalpower         | Wp                                             | 116 Installed generator power                                              |
 
 ## More information
 
-More information about the Solar-Log Data interfaces and the exact meaning of the various channels and the documentation of the JSON API can be found in the [Manual](https://www.solar-log.com/manuals/manuals/en_GB/SolarLog_Manual_3x_EN.pdf). 
+More information about the Solar-Log Data interfaces and the exact meaning of the various channels and the documentation of the JSON API can be found in the [Manual](https://www.solar-log.com/manuals/manuals/en_GB/SolarLog_Manual_3x_EN.pdf).
index 9af6c406d01a939bae96ff63464aad913dc27b73..088187b236e1d6c24081d4e97cb48792f24379ae 100644 (file)
@@ -21,7 +21,6 @@ Each inverter requires the following configuration parameters:
 | port            | no       | 12345   | Port number to connect to. This should be `12345` for most inverters |
 | refreshInterval | no       | 15      | Interval (in seconds) to refresh the channel values.                 |
 
-
 ## Properties
 
 | property        | description                                            |
@@ -29,7 +28,6 @@ Each inverter requires the following configuration parameters:
 | softwareVersion | Software Version installed on the SolarMax device      |
 | buildNumber     | Firmware Build Number installed on the SolarMax device |
 
-
 ## Channels
 
 | channel                  | type                     | description                                  |
@@ -60,7 +58,7 @@ Below you can find some example textual configuration for a solarmax with some b
 
 _inverter.things:_
 
-```
+```java
 Thing solarmax:inverter:solarmax "SolarMax Inverter" [
     host="192.168.1.151",
     port="12345",
@@ -70,7 +68,7 @@ Thing solarmax:inverter:solarmax "SolarMax Inverter" [
 
 _inverter.items:_
 
-```
+```java
 Group    gInverter   "SolarMax Inverter"
 
 DateTime lastUpdated "Last Updated" <clock> (gInverter) {channel="solarmax:inverter:solarmax:lastUpdated"}
@@ -105,7 +103,7 @@ Number:Temperature heatSinkTemperature "Heat Sink Temperature in degrees celcius
 
 _heatpump.sitemap:_
 
-```
+```perl
 sitemap heatpump label="Heatpump" {
     Frame label="Heatpump" {
         Text item=HeatPump_State_Ext
index 668117e25b40cb8136bce5db4b95c5fab4d86499..93ccb5b184199a548be66e6ab5e268700f4bb0ac 100644 (file)
@@ -6,16 +6,16 @@ All supported values and devices were discovered while playing with my own energ
 
 ## Supported Things
 
-| Thing Type ID | Devices |
-|------|---------------|
-| energymanager | EnergyManager itself. |
-| location | Location part of the EnergyManager. | 
-| pvplant | Power producing part of the EnergyManager. |
-| gridflow | Grid interaction part of the EnergyManager. |
-| inverter | inverter producing AC current; e.g. MyReserve, Fronius |
-| batteryconverter | battery storage systems; e.g. MyReserve |
-| powermeter | powermeters; e.g. S0BusCounter, MyReserve |
-| evstation | electric-vehicle charging station; e.g. Keba Wallbox |
+| Thing Type ID    | Devices                                                |
+| ---------------- | ------------------------------------------------------ |
+| energymanager    | EnergyManager itself.                                  |
+| location         | Location part of the EnergyManager.                    |
+| pvplant          | Power producing part of the EnergyManager.             |
+| gridflow         | Grid interaction part of the EnergyManager.            |
+| inverter         | inverter producing AC current; e.g. MyReserve, Fronius |
+| batteryconverter | battery storage systems; e.g. MyReserve                |
+| powermeter       | powermeters; e.g. S0BusCounter, MyReserve              |
+| evstation        | electric-vehicle charging station; e.g. Keba Wallbox   |
 
 ## Discovery
 
@@ -26,126 +26,126 @@ The attached devices and supported channels are discovered automatically.
 
 ### EnergyManager
 
-| Property | Default | Required | Description |
-|----------|---------|----------|-------------|
-| hostname | None | Yes | hostname or ip-address of the energy manager. |
-| refresh | 30 | No | Refresh interval in seconds for the current values of the channels. |
-| rescan | 5 | No | Rescan interval in minutes for the redetection of channgels and things. |
+| Property | Default | Required | Description                                                             |
+| -------- | ------- | -------- | ----------------------------------------------------------------------- |
+| hostname | None    | Yes      | hostname or ip-address of the energy manager.                           |
+| refresh  | 30      | No       | Refresh interval in seconds for the current values of the channels.     |
+| rescan   | 5       | No       | Rescan interval in minutes for the redetection of channgels and things. |
 
 ### Child Things
 
-| Property | Default | Required | Description |
-|----------|---------|----------|-------------|
-| guid | None | Yes | Guid of the device as used by the solarwatt energymanager. |
+| Property | Default | Required | Description                                                |
+| -------- | ------- | -------- | ---------------------------------------------------------- |
+| guid     | None    | Yes      | Guid of the device as used by the solarwatt energymanager. |
 
 ## Channels
 
 ### EnergyManager
 
-| Channel Type ID | Item Type | Description |
-|-----------------|-----------|-------------|
-|timestamp | Number | Milliseconds since the epoch set to the last NTP time sync |
-|datetime | DateTime | Date and time of the last NTP time sync in the timezone of the energy manager |
-|idTimezone | String | Timezone the energy manager is running in. All  timestamps are milliseconds since the epoch within this timezone |
-|fractionCPULoadTotal | Number:Dimensionless | Total CPU load in % |
-|fractionCPULoadUser | Number:Dimensionless | Userspace CPU load in % |
-|fractionCPULoadKernel | Number:Dimensionless | Kernelspace CPU load in % |
-|fractionCPULoadAverageLastMinute | Number:Dimensionless | Average 1 minute CPU load in % |
-|fractionCPULoadAverageLastFiveMinutes | Number:Dimensionless | Average 5 minute CPU load in % |
-|fractionCPULoadAverageLastFifteenMinutes | Number:Dimensionless | Average 15 minute CPU load in % |
+| Channel Type ID                          | Item Type            | Description                                                                                                      |
+| ---------------------------------------- | -------------------- | ---------------------------------------------------------------------------------------------------------------- |
+| timestamp                                | Number               | Milliseconds since the epoch set to the last NTP time sync                                                       |
+| datetime                                 | DateTime             | Date and time of the last NTP time sync in the timezone of the energy manager                                    |
+| idTimezone                               | String               | Timezone the energy manager is running in. All  timestamps are milliseconds since the epoch within this timezone |
+| fractionCPULoadTotal                     | Number:Dimensionless | Total CPU load in %                                                                                              |
+| fractionCPULoadUser                      | Number:Dimensionless | Userspace CPU load in %                                                                                          |
+| fractionCPULoadKernel                    | Number:Dimensionless | Kernelspace CPU load in %                                                                                        |
+| fractionCPULoadAverageLastMinute         | Number:Dimensionless | Average 1 minute CPU load in %                                                                                   |
+| fractionCPULoadAverageLastFiveMinutes    | Number:Dimensionless | Average 5 minute CPU load in %                                                                                   |
+| fractionCPULoadAverageLastFifteenMinutes | Number:Dimensionless | Average 15 minute CPU load in %                                                                                  |
 
 ### PVPlant
 
-| Channel Type ID | Item Type | Description |
-|-----------------|-----------|-------------|
-| powerACOut | Number:Power | Energy produced by the PV in watts |
-| workACOut | Number:Energy | Energy produced by the PV in watt hours |
+| Channel Type ID | Item Type     | Description                             |
+| --------------- | ------------- | --------------------------------------- |
+| powerACOut      | Number:Power  | Energy produced by the PV in watts      |
+| workACOut       | Number:Energy | Energy produced by the PV in watt hours |
 
 ### Location
 
-| Channel Type ID | Item Type | Description |
-|-----------------|-----------|-------------|
-| powerBuffered | Number:Power | Power flow into the storage system
-| powerSelfConsumed | Number:Power | Power consumed direct from PV plus energy stored
-| powerSelfSupplied | Number:Power | Power consumed direct from PV plus energy consumed from storage
-| powerConsumedFromGrid | Number:Power | Power consumed from the grid  
-| powerConsumedFromStorage | Number:Power | Power consumed from storage
-| powerConsumedUnmetered | Number:Power | Power consumed in the inner side (outer consumers are subtracted)
-| powerConsumed | Number:Power | Total power consumed. All inner and outer consumers.
-| powerDirectConsumed | Number:Power | Power consumed directly from PV without buffering
-| powerProduced | Number:Power | Power produced by the PV
-| powerOut | Number:Power | Power delivered to the grid  
-| powerDirectConsumed | Number:Power | Power consumed directly without energy put into storage or taken from storage
-| workBuffered | Number:Energy | Energy flow into the storage system
-| workSelfConsumed | Number:Energy | Energy consumed direct from PV plus energy stored
-| workSelfSupplied | Number:Energy | Energy consumed direct from PV plus energy consumed from storage
-| workConsumedFromGrid | Number:Energy | Energy consumed from the grid  
-| workConsumedFromStorage | Number:Energy | Energy consumed from storage
-| workConsumedUnmetered | Number:Energy | Energy consumed in the inner side (outer consumers are subtracted)
-| workConsumed | Number:Energy | Total energy consumed. All inner and outer consumers.
-| workDirectConsumed | Number:Energy | Energy consumed directly from PV without buffering
-| workProduced | Number:Energy | Energy produced by the PV
-| workOut | Number:Energy | Energy delivered to the grid  
-| workDirectConsumed | Number:Energy | Energy consumed directly without energy put into storage or taken from storage
+| Channel Type ID          | Item Type     | Description                                                                    |
+| ------------------------ | ------------- | ------------------------------------------------------------------------------ |
+| powerBuffered            | Number:Power  | Power flow into the storage system                                             |
+| powerSelfConsumed        | Number:Power  | Power consumed direct from PV plus energy stored                               |
+| powerSelfSupplied        | Number:Power  | Power consumed direct from PV plus energy consumed from storage                |
+| powerConsumedFromGrid    | Number:Power  | Power consumed from the grid                                                   |
+| powerConsumedFromStorage | Number:Power  | Power consumed from storage                                                    |
+| powerConsumedUnmetered   | Number:Power  | Power consumed in the inner side (outer consumers are subtracted)              |
+| powerConsumed            | Number:Power  | Total power consumed. All inner and outer consumers.                           |
+| powerDirectConsumed      | Number:Power  | Power consumed directly from PV without buffering                              |
+| powerProduced            | Number:Power  | Power produced by the PV                                                       |
+| powerOut                 | Number:Power  | Power delivered to the grid                                                    |
+| powerDirectConsumed      | Number:Power  | Power consumed directly without energy put into storage or taken from storage  |
+| workBuffered             | Number:Energy | Energy flow into the storage system                                            |
+| workSelfConsumed         | Number:Energy | Energy consumed direct from PV plus energy stored                              |
+| workSelfSupplied         | Number:Energy | Energy consumed direct from PV plus energy consumed from storage               |
+| workConsumedFromGrid     | Number:Energy | Energy consumed from the grid                                                  |
+| workConsumedFromStorage  | Number:Energy | Energy consumed from storage                                                   |
+| workConsumedUnmetered    | Number:Energy | Energy consumed in the inner side (outer consumers are subtracted)             |
+| workConsumed             | Number:Energy | Total energy consumed. All inner and outer consumers.                          |
+| workDirectConsumed       | Number:Energy | Energy consumed directly from PV without buffering                             |
+| workProduced             | Number:Energy | Energy produced by the PV                                                      |
+| workOut                  | Number:Energy | Energy delivered to the grid                                                   |
+| workDirectConsumed       | Number:Energy | Energy consumed directly without energy put into storage or taken from storage |
 
 ### PowerMeter, S0Counter, MyReservePowerMeter
 
-| Channel Type ID | Item Type | Description |
-|-----------------|-----------|-------------|
-| channelDirectionMetering | String | Representing which energy flow directions are metered. One off *IN*, *OUT*, *BIDIRECTIONAL* 
-| powerIn | Number:Power | Power metered flowing into the consumer
-| powerOut | Number:Power | Power metered flowing out of the producer  
-| workIn | Number:Energy | Energy metered flowing into the consumer
-| workOut | Number:Energy | Energy metered flowing out of the producer  
-| consumptionEnergySum | Number:Energy | Total energy in watt hours 
+| Channel Type ID          | Item Type     | Description                                                                                 |
+| ------------------------ | ------------- | ------------------------------------------------------------------------------------------- |
+| channelDirectionMetering | String        | Representing which energy flow directions are metered. One off _IN_, _OUT_, _BIDIRECTIONAL_ |
+| powerIn                  | Number:Power  | Power metered flowing into the consumer                                                     |
+| powerOut                 | Number:Power  | Power metered flowing out of the producer                                                   |
+| workIn                   | Number:Energy | Energy metered flowing into the consumer                                                    |
+| workOut                  | Number:Energy | Energy metered flowing out of the producer                                                  |
+| consumptionEnergySum     | Number:Energy | Total energy in watt hours                                                                  |
 
 ### Inverter, MyReserveInverter, SunSpecInverter
 
-| Channel Type ID | Item Type | Description |
-|-----------------|-----------|-------------|
-| powerACOutMax | Number:Power | Maximum power production 
-| powerACOutLimit | Number:Power | Limit of power production
-| powerACOut | Number:Power | Power delivered by the inverter
-| workACOut | Number:Energy | Energy delivered by the inverter
-| powerInstallledPeak | Number:Power | Technical peak power available 
+| Channel Type ID     | Item Type     | Description                      |
+| ------------------- | ------------- | -------------------------------- |
+| powerACOutMax       | Number:Power  | Maximum power production         |
+| powerACOutLimit     | Number:Power  | Limit of power production        |
+| powerACOut          | Number:Power  | Power delivered by the inverter  |
+| workACOut           | Number:Energy | Energy delivered by the inverter |
+| powerInstallledPeak | Number:Power  | Technical peak power available   |
 
 ### BatteryConverter, MyReserve
 
-All of *Inverter* plus
+All of _Inverter_ plus
 
-| Channel Type ID | Item Type | Description |
-|-----------------|-----------|-------------|
-| powerACIn | Number:Power | Power fed into battery
-| workACIn | Number:Energy | Energy fed into battery
-| stateOfCharge | Number | Charging state of battery in percent
-| stateOfHealth | Number | Internal health metric in percent
-| temperatureBattery | Number:Temperature | Temperature of the battery in celsius
-| modeConverter | Switch | Current mode of converter. *ON* or *OFF*
-| voltageBatteryCellMin | Number:Voltage | minimum voltage of all batteries
-| voltageBatteryCellMean | Number:Voltage | mean voltage of all batteries
-| voltageBatteryCellMax | Number:Voltage | maximum voltage of all batteries
+| Channel Type ID        | Item Type          | Description                              |
+| ---------------------- | ------------------ | ---------------------------------------- |
+| powerACIn              | Number:Power       | Power fed into battery                   |
+| workACIn               | Number:Energy      | Energy fed into battery                  |
+| stateOfCharge          | Number             | Charging state of battery in percent     |
+| stateOfHealth          | Number             | Internal health metric in percent        |
+| temperatureBattery     | Number:Temperature | Temperature of the battery in celsius    |
+| modeConverter          | Switch             | Current mode of converter. _ON_ or _OFF_ |
+| voltageBatteryCellMin  | Number:Voltage     | minimum voltage of all batteries         |
+| voltageBatteryCellMean | Number:Voltage     | mean voltage of all batteries            |
+| voltageBatteryCellMax  | Number:Voltage     | maximum voltage of all batteries         |
 
 ### EVStation, KebaEv
 
-| Channel Type ID | Item Type | Description |
-|-----------------|-----------|-------------|
-| powerACIn | Number:Power | Power consumed by the charger
-| workACIn | Number:Energy | Energy consumed by the charger
-| workACInSession | Number:Energy | Work consumed during current/last charging session
-| modeStation | String | Current mode of the charger. One off *STANDBY*, *CHARGING*, *OFF*
-| connectivityStatus | String | Current state of the charging connection. One off *ONLINE* or *OFFLINE*
+| Channel Type ID    | Item Type     | Description                                                             |
+| ------------------ | ------------- | ----------------------------------------------------------------------- |
+| powerACIn          | Number:Power  | Power consumed by the charger                                           |
+| workACIn           | Number:Energy | Energy consumed by the charger                                          |
+| workACInSession    | Number:Energy | Work consumed during current/last charging session                      |
+| modeStation        | String        | Current mode of the charger. One off _STANDBY_, _CHARGING_, _OFF_       |
+| connectivityStatus | String        | Current state of the charging connection. One off _ONLINE_ or _OFFLINE_ |
 
 ### GridFlow
 
-| Channel Type ID | Item Type | Description |
-|-----------------|-----------|-------------|
-| feedInLimit | Number:Dimensionless | Current derating setting in percent
+| Channel Type ID | Item Type            | Description                         |
+| --------------- | -------------------- | ----------------------------------- |
+| feedInLimit     | Number:Dimensionless | Current derating setting in percent |
 
 ## Example
 
 demo.things:
 
-```
+```java
 Bridge solarwatt:energymanager:56f4ac2fa2 [hostname="192.168.0.64", refresh=30, rescan=5]
 // the individual things configured with their energy manager guid
 Thing solarwatt:batteryconverter:56f4ac2fa2:5c7d5929-8fa4-42c5-8737-48bef77b61f5 [guid="5c7d5929-8fa4-42c5-8737-48bef77b61f5"] (solarwatt:energymanager:56f4ac2fa2)
@@ -155,7 +155,7 @@ Thing solarwatt:evstation:56f4ac2fa2:urn-keba-evstation-20652876 [guid="urn:keba
 
 demo.items:
 
-```
+```java
 // Location DeviceClass com.kiwigrid.devices.location.Location Guid b4e4978b96404e61977bfacd3eab299d
 Number:Power Solarwatt_Location_b4e4978b96404e61977bfacd3eab299d_PowerBuffered "PowerBuffered [%.2f W]" <energy> ["Measurement", "Power"] {channel="solarwatt:location:56f4ac2fa2:b4e4978b-9640-4e61-977b-facd3eab299d:powerBuffered"}
 Number:Power Solarwatt_Location_b4e4978b96404e61977bfacd3eab299d_PowerBufferedFromGrid "PowerBufferedFromGrid [%.2f W]" <energy> ["Measurement", "Power"] {channel="solarwatt:location:56f4ac2fa2:b4e4978b-9640-4e61-977b-facd3eab299d:powerBufferedFromGrid"}
index c4eaffee123d5b44adede1ce97cb424b994709c2..f18cbf369d7862dca6ace99dfd681d1d084042ca 100644 (file)
@@ -21,38 +21,38 @@ Once the Somfy MyLink bridge is ONLINE you can start a scan that will detect and
 
 ### mylink
 
-| Parameter        | Parameter ID      | Required/Optional | Description |
-|------------------|-------------------|-------------------|-------------|
-| IP or Hostname   | ipAddress         | Required          | Hostname or IP Address of the myLink device |
-| System Id        | systemId          | Required          | The system id configured on the myLink device  |
+| Parameter      | Parameter ID | Required/Optional | Description                                   |
+| -------------- | ------------ | ----------------- | --------------------------------------------- |
+| IP or Hostname | ipAddress    | Required          | Hostname or IP Address of the myLink device   |
+| System Id      | systemId     | Required          | The system id configured on the myLink device |
 
 ### shade
 
-| Parameter        | Parameter ID      | Required/Optional | Description |
-|------------------|-------------------|-------------------|-------------|
-| Target ID        | targetId          | Required          | Address of shade in the Somfy system |
+| Parameter | Parameter ID | Required/Optional | Description                          |
+| --------- | ------------ | ----------------- | ------------------------------------ |
+| Target ID | targetId     | Required          | Address of shade in the Somfy system |
 
 ### scene
 
-| Parameter        | Parameter ID      | Required/Optional | Description |
-|------------------|-------------------|-------------------|-------------|
-| Scene ID         | sceneId           | Required          | Address of scene in the Somfy system |
+| Parameter | Parameter ID | Required/Optional | Description                          |
+| --------- | ------------ | ----------------- | ------------------------------------ |
+| Scene ID  | sceneId      | Required          | Address of scene in the Somfy system |
 
 ## Channels
 
 The following channels are supported by the binding. Note that specific weather station models may support only some or all of these channels.
 
-| Channel ID                      | Item Type               | Description                                                   |
-|---------------------------------|-------------------------|---------------------------------------------------------------|
-| shadeControl                    | Rollershutter           | Device control (UP, DOWN, STOP)                               |
-| scenelist                       | String                  | Comma-separated list of scenes of form sceneId=sceneName      |
-| button                          | Switch                  | Button to trigger a scene or rule                             |
+| Channel ID   | Item Type     | Description                                              |
+| ------------ | ------------- | -------------------------------------------------------- |
+| shadeControl | Rollershutter | Device control (UP, DOWN, STOP)                          |
+| scenelist    | String        | Comma-separated list of scenes of form sceneId=sceneName |
+| button       | Switch        | Button to trigger a scene or rule                        |
 
 ## Example
 
 ### Things
 
-```
+```java
 Bridge somfymylink:mylink:mylink1 "myLink Bridge" @ "Office" [ ipAddress="192.168.1.1", systemId="mysystemidhere" ] {
     Thing shade shade1 "Living Room" [ targetId="CC114A21.1" ]
 }
index 0eee7667a287a4e17cb221e2861a9937c8c70f0e..0132673f2c8069ca8b21db09a17f41dfcd280d15 100644 (file)
@@ -99,7 +99,7 @@ Please see the example below.
 ## Channels
 
 | Thing                                                                              | Channel                         | Note                                                                                                                                                                                                                              |
-|------------------------------------------------------------------------------------|---------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| ---------------------------------------------------------------------------------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
 | bridge                                                                             | N.A                             | bridge does not expose any channel                                                                                                                                                                                                |
 | gateway                                                                            | status                          | status of your gateway                                                                                                                                                                                                            |
 | gateway                                                                            | scenarios                       | used to run the scenarios defined in the cloud portal                                                                                                                                                                             |
@@ -226,13 +226,13 @@ When a roller shutter-like thing receives STOP command, there are two possible b
 
 If you want to set the MY position of a roller shutter and you don't care the possible movement, try sending the MOVE command (OH2 does not know MY, so it stands for "move to MY position")
 
-```
+```java
 CONTROL_CHANNEL.sendCommand(MOVE)
 ```
 
 Blinds and adjustable slats roller shutters can control their closure and orientation by sending a comma separated string consisting of closure (0-100) and orientation (0-100) to the "closure_orientaion" channel.
 
-```
+```java
 CLOSURE_ORIENTATION_CHANNEL.sendCommand("50,50")
 ```
 
@@ -240,7 +240,7 @@ CLOSURE_ORIENTATION_CHANNEL.sendCommand("50,50")
 
 .things file
 
-```
+```java
 Bridge somfytahoma:bridge:237dbae7 "Somfy Tahoma Bridge" [ email="my@email.com", password="MyPassword", refresh=10 , statusTimeout=30] {
     Thing gateway 1214-4519-8041 "Tahoma gateway" [ id="1214-4519-8041" ]
     Thing rollershutter 31da8dac-8e09-455a-bc7a-6ed70f740001 "Bedroom" [ url="io://0204-1234-8041/6825356" ]
@@ -266,7 +266,7 @@ Awnings, garage doors, screens, blinds, and windows things have the same notatio
 
 .items file
 
-```
+```java
 String TahomaVersion "Tahoma version [%s]" { channel="somfytahoma:gateway:237dbae7:1214-4519-8041:version" }
 Rollershutter RollerShutterBedroom "Roller shutter [%d %%]"  {channel="somfytahoma:rollershutter:237dbae7:31da8dac-8e09-455a-bc7a-6ed70f740001:control"}
 Dimmer RollerShutterBedroomD "Roller shutter dimmer [%.1f]"  {channel="somfytahoma:rollershutter:237dbae7:31da8dac-8e09-455a-bc7a-6ed70f740001:control"}
@@ -318,7 +318,7 @@ Switch HeatingSwitch "Ext heating switch"  { channel="somfytahoma:exteriorheatin
 
 .sitemap file
 
-```
+```perl
 Text item=TahomaVersion
 Switch item=Rollers1UP label="Roller shutters 1st floor" mappings=[ON="UP"]
 Switch item=Rollers1DOWN  label="Roller shutters 1st floor" mappings=[ON="DOWN"]
@@ -359,7 +359,7 @@ This binding is compatible with the official Alexa Smart Home Skill.
 Since Rolleshutter items are unsupported, only Dimmer with control channel can be used.
 Syntax in .item file is as follows:
 
-```
+```java
 Dimmer RollerShutterLivingD "Roller shutter living [%.1f]"  [ "Lighting" ] {channel="somfytahoma:rollershutter:237dbae7:87bf0403-a45d-4037-b874-28f4ece30004:control"}
 ```
 
index 70cca0fe5a81bfef8f84d9d0821bdead3c9599cf..96887d9bc0c08b0161b5d00e083e4542c3d62f04 100644 (file)
@@ -13,59 +13,59 @@ This binding does only support one Thing:
 The Philips Somneo thing requires the `hostname` it can connect to.
 Its API only allows HTTPS access, but unfortunately the SSL certificate is not trusted and must be ignored by the parameter.
 
-| Parameter           | Values                                    | Default |
-|---------------------|-------------------------------------------|---------|
-| hostname            | Hostname or IP address of the device      | -       |
-| port                | Port number                               | 443     |
-| refreshInterval     | Interval the device is polled in sec      | 30      |
-| ignoreSSLErrors     | Ignore SSL Errors                         | true    |
+| Parameter       | Values                               | Default |
+| --------------- | ------------------------------------ | ------- |
+| hostname        | Hostname or IP address of the device | -       |
+| port            | Port number                          | 443     |
+| refreshInterval | Interval the device is polled in sec | 30      |
+| ignoreSSLErrors | Ignore SSL Errors                    | true    |
 
 ## Channels
 
-| Channel               | Type                 | Read/Write | Description                                                 |
-|-----------------------|----------------------|------------|-------------------------------------------------------------|
-| _Sensor_              |                      |            |                                                             |
-| sensor#illuminance    | Number:Illuminance   | R          | The current illuminance in lux                              |
-| sensor#temperature    | Number:Temperature   | R          | The current temperature                                     |
-| sensor#humidity       | Number:Dimensionless | R          | The current humidity in %                                   |
-| sensor#noise          | Number:Dimensionless | R          | The current noise in dB                                     |
-| _Light_               |                      |            |                                                             |
-| light#main            | Switch               | RW         | Turn the light on, off and set the brightness               |
-| light#night           | Switch               | RW         | Turn the night light on or off                              |
-| _Sunset_              |                      |            |                                                             |
-| sunset#switch         | Switch               | RW         | Turn the sunset program on or off                           |
-| sunset#remainingTime  | Number:Time          | R          | Remaining time from an activated program                    |
-| sunset#lightIntensity | Dimmer               | RW         | Set the brightness during the sunset programme              |
-| sunset#duration       | Number:Time          | RW         | The duration of sunset program in minutes                   |
-| sunset#colorSchema    | Number               | RW         | Choose a personal sunset                                    |
-| sunset#ambientNoise   | String               | RW         | Ambient noise played during the sunset                      |
-| sunset#volume         | Dimmer               | RW         | Set the volume during the sunset programme                  |
-| _Relax_               |                      |            |                                                             |
-| relax#switch          | Switch               | RW         | Turn the relax breathe program on or off                    |
-| relax#remainingTime   | Number:Time          | R          | Remaining time from an activated program                    |
-| relax#breathingRate   | Number               | RW         | Breathing rate per minute during the relax program          |
-| relax#duration        | Number:Time          | RW         | The duration of breathe program in minutes                  |
-| relax#guidanceType    | Number               | RW         | Select a breath guidance type during the relax program      |
-| relax#lightIntensity  | Dimmer               | RW         | Set the brightness during the breathe programme             |
-| relax#volume          | Dimmer               | RW         | Set the volume during the breathe programme                 |
-| _Audio_               |                      |            |                                                             |
-| audio#radio           | Player               | RW         | Controlling the radio and seeking for a frequency           |
-| audio#aux             | Switch               | RW         | Turn the AUX input on or off                                |
-| audio#volume          | Dimmer               | RW         | Change the sound volume of the device                       |
-| audio#preset          | String               | RW         | The Device has 5 presets to store radio frequencies         |
-| audio#frequency       | String               | R          | The currently selected radio frequency                      |
+| Channel               | Type                 | Read/Write | Description                                            |
+| --------------------- | -------------------- | ---------- | ------------------------------------------------------ |
+| _Sensor_              |                      |            |                                                        |
+| sensor#illuminance    | Number:Illuminance   | R          | The current illuminance in lux                         |
+| sensor#temperature    | Number:Temperature   | R          | The current temperature                                |
+| sensor#humidity       | Number:Dimensionless | R          | The current humidity in %                              |
+| sensor#noise          | Number:Dimensionless | R          | The current noise in dB                                |
+| _Light_               |                      |            |                                                        |
+| light#main            | Switch               | RW         | Turn the light on, off and set the brightness          |
+| light#night           | Switch               | RW         | Turn the night light on or off                         |
+| _Sunset_              |                      |            |                                                        |
+| sunset#switch         | Switch               | RW         | Turn the sunset program on or off                      |
+| sunset#remainingTime  | Number:Time          | R          | Remaining time from an activated program               |
+| sunset#lightIntensity | Dimmer               | RW         | Set the brightness during the sunset programme         |
+| sunset#duration       | Number:Time          | RW         | The duration of sunset program in minutes              |
+| sunset#colorSchema    | Number               | RW         | Choose a personal sunset                               |
+| sunset#ambientNoise   | String               | RW         | Ambient noise played during the sunset                 |
+| sunset#volume         | Dimmer               | RW         | Set the volume during the sunset programme             |
+| _Relax_               |                      |            |                                                        |
+| relax#switch          | Switch               | RW         | Turn the relax breathe program on or off               |
+| relax#remainingTime   | Number:Time          | R          | Remaining time from an activated program               |
+| relax#breathingRate   | Number               | RW         | Breathing rate per minute during the relax program     |
+| relax#duration        | Number:Time          | RW         | The duration of breathe program in minutes             |
+| relax#guidanceType    | Number               | RW         | Select a breath guidance type during the relax program |
+| relax#lightIntensity  | Dimmer               | RW         | Set the brightness during the breathe programme        |
+| relax#volume          | Dimmer               | RW         | Set the volume during the breathe programme            |
+| _Audio_               |                      |            |                                                        |
+| audio#radio           | Player               | RW         | Controlling the radio and seeking for a frequency      |
+| audio#aux             | Switch               | RW         | Turn the AUX input on or off                           |
+| audio#volume          | Dimmer               | RW         | Change the sound volume of the device                  |
+| audio#preset          | String               | RW         | The Device has 5 presets to store radio frequencies    |
+| audio#frequency       | String               | R          | The currently selected radio frequency                 |
 
 ## Full Example
 
 somneo.things:
 
-```
+```java
 Thing somneo:hf367x:1 "Philips Somneo" @ "Bedroom" [ hostname="192.168.0.110", ignoreSSLErrors=true ]
 ```
 
 somneo.items:
 
-```
+```java
 // Sensors
 Number:Illuminance   PhilipsSomneo_Illuminance "Illuminance" <Sun>         ["Measurement", "Light"]       { channel="somneo:hf367x:1:sensor#illuminance" }
 Number:Temperature   PhilipsSomneo_Temperature "Temperature" <Temperature> ["Measurement", "Temperature"] { channel="somneo:hf367x:1:sensor#temperature" }
@@ -100,7 +100,7 @@ String PhilipsSomneo_AudioFrequency "FM Frequency"                 ["Status"]
 
 somneo.sitemap:
 
-```
+```perl
 sitemap somneo label="Philips Somneo" {
     Frame label="Sensors" {
         Default item=PhilipsSomneo_Illuminance
@@ -147,6 +147,6 @@ sitemap somneo label="Philips Somneo" {
 
 Thanks to:
 
-* [homebridge-somneo](https://github.com/zackwag/homebridge-somneo) - For creating a similar plugin in another platform and exposing endpoints for control.
-* [somneo-client](https://github.com/DonkerNet/somneo-client) - For creating a similar plugin in another platform and exposing endpoints for control.
-* HTTP Binding and other OpenHAB addons - Which was used as examples.
+- [homebridge-somneo](https://github.com/zackwag/homebridge-somneo) - For creating a similar plugin in another platform and exposing endpoints for control.
+- [somneo-client](https://github.com/DonkerNet/somneo-client) - For creating a similar plugin in another platform and exposing endpoints for control.
+- HTTP Binding and other OpenHAB addons - Which was used as examples.
index 0e30d5f84bbcc8b50fda47299c24f269de11a725..a5888ccb06f9ea22348b540392ccf7ca3847f356 100644 (file)
@@ -6,51 +6,48 @@ More information about the sonnen battery can be found [here](https://sonnen.de/
 ## Supported Things
 
 | Thing Type    | Description                    |
-|---------------|--------------------------------|
+| ------------- | ------------------------------ |
 | sonnenbattery | Monitoring of a sonnen battery |
 
-
 ## Thing Configuration
 
 Only the parameter `hostIP` is required; this is the IP address of the sonnen battery in your local network.
 
-
 ## Channels
 
 The following channels are yet supported:
 
-
-| Channel | Type  | Access| Description|
-|---------|-------|-------|------------|
-|batteryChargingState|Switch|read|Indicates if the Battery is charging at that moment|
-|batteryCharging|Number:Energy|read|Indicates the actual current charging the Battery. Otherwise 0.|
-|batteryDischargingState|Switch|read|Indicates if the Battery is discharging at that moment|
-|batteryDischarging|Number:Energy|read|Indicates the actual current discharging the Battery. Otherwise 0.|
-|batteryFeedIn|Number:Energy|read|Indicates the actual charging current of the Battery in watt|
-|batteryDischarging|Number:Energy|read|Indicates the actual current discharging the Battery in watt|
-|consumption|Number:Energy|read|Indicates the actual consumption of the consumer in watt|
-|gridFeedIn|Number:Energy|read|Indicates the actual current feeding to the Grid in watt.0 if nothing is feeded|
-|gridConsumption|Number:Energy|read|Indicates the actual current consumption from the Grid in watt.0 if nothing is received|
-|solarProduction|Number:Energy|read|Indicates the actual production of the Solar system in watt|
-|batteryLevel|Number|read|Indicates the actual Battery Level in % from 0 - 100|
-|flowConsumptionBatteryState|Switch|read|Indicates if there is a current flow from Battery towards Consumption|
-|flowConsumptionGridState|Switch|read|Indicates if there is a current flow from Grid towards Consumption|
-|flowConsumptionProductionState|Switch|read|Indicates if there is a current flow from Solar Production towards Consumption|
-|flowGridBatteryState|Switch|read|Indicates if there is a current flow from Grid towards Battery|
-|flowProductionBatteryState|Switch|read|Indicates if there is a current flow from Production towards Battery|
-|flowProductionGridState|Switch|read|Indicates if there is a current flow from Production towards Grid|
+| Channel                        | Type          | Access | Description                                                                             |
+| ------------------------------ | ------------- | ------ | --------------------------------------------------------------------------------------- |
+| batteryChargingState           | Switch        | read   | Indicates if the Battery is charging at that moment                                     |
+| batteryCharging                | Number:Energy | read   | Indicates the actual current charging the Battery. Otherwise 0.                         |
+| batteryDischargingState        | Switch        | read   | Indicates if the Battery is discharging at that moment                                  |
+| batteryDischarging             | Number:Energy | read   | Indicates the actual current discharging the Battery. Otherwise 0.                      |
+| batteryFeedIn                  | Number:Energy | read   | Indicates the actual charging current of the Battery in watt                            |
+| batteryDischarging             | Number:Energy | read   | Indicates the actual current discharging the Battery in watt                            |
+| consumption                    | Number:Energy | read   | Indicates the actual consumption of the consumer in watt                                |
+| gridFeedIn                     | Number:Energy | read   | Indicates the actual current feeding to the Grid in watt.0 if nothing is feeded         |
+| gridConsumption                | Number:Energy | read   | Indicates the actual current consumption from the Grid in watt.0 if nothing is received |
+| solarProduction                | Number:Energy | read   | Indicates the actual production of the Solar system in watt                             |
+| batteryLevel                   | Number        | read   | Indicates the actual Battery Level in % from 0 - 100                                    |
+| flowConsumptionBatteryState    | Switch        | read   | Indicates if there is a current flow from Battery towards Consumption                   |
+| flowConsumptionGridState       | Switch        | read   | Indicates if there is a current flow from Grid towards Consumption                      |
+| flowConsumptionProductionState | Switch        | read   | Indicates if there is a current flow from Solar Production towards Consumption          |
+| flowGridBatteryState           | Switch        | read   | Indicates if there is a current flow from Grid towards Battery                          |
+| flowProductionBatteryState     | Switch        | read   | Indicates if there is a current flow from Production towards Battery                    |
+| flowProductionGridState        | Switch        | read   | Indicates if there is a current flow from Production towards Grid                       |
 
 ## Full Example
 
 example.things:
 
-```
+```java
 Thing sonnen:sonnenbattery:myBattery "Sonnen Battery"  [ hostIP="192.168.0.10"]
 ```
 
 example.items:
 
-```
+```java
 Number:Energy Consumption { channel="sonnen:sonnenbattery:myBattery:consumption" }
 Number:Energy GridFeeding { channel="sonnen:sonnenbattery:myBattery:gridFeedIn" }
 Number BatteryLevel { channel="sonnen:sonnenbattery:myBattery:batteryLevel" }
index 9c3f7a6693d82fd2fa9b6946dd44c6fb6a76a67b..5694d5a7277d670caa5917dc8a4a18b4fe1380de 100644 (file)
@@ -2,10 +2,10 @@
 
 This binding integrates the [Sonos Multi-Room Audio system](https://www.sonos.com).
 
-**Attention:** 
-You might run into trouble if your control system (the binding) is in another subnet than your Sonos device. 
+**Attention:**
+You might run into trouble if your control system (the binding) is in another subnet than your Sonos device.
 Sonos devices make use of multicast which in most cases needs additional router configuration outside of a single subnet.
-If you observe communication errors (COMMUNICATION_ERROR/not registered), you might need to configure your router to increase the TTL of the packets send by your Sonos device. 
+If you observe communication errors (COMMUNICATION_ERROR/not registered), you might need to configure your router to increase the TTL of the packets send by your Sonos device.
 This happens because of a TTL=1 for ALIVE packets send by Sonos devices, resulting in dropped packets after one hop.
 
 ## Supported Things
@@ -27,10 +27,10 @@ The Sonos devices are discovered through UPnP in the local network and all devic
 
 The binding has the following configuration options, which can be set for "binding:sonos":
 
-| Parameter   | Name             | Description                                                              | Required |
-|-------------|------------------|--------------------------------------------------------------------------|----------|
-| opmlUrl     | OPML Service URL | URL for the OPML/tunein.com service                                      | no       |
-| callbackUrl | Callback URL     | URL to use for playing notification sounds, e.g. http://192.168.0.2:8080 | no       |
+| Parameter   | Name             | Description                                                                | Required |
+| ----------- | ---------------- | -------------------------------------------------------------------------- | -------- |
+| opmlUrl     | OPML Service URL | URL for the OPML/tunein.com service                                        | no       |
+| callbackUrl | Callback URL     | URL to use for playing notification sounds, e.g. `http://192.168.0.2:8080` | no       |
 
 ## Thing Configuration
 
@@ -40,7 +40,7 @@ Additionally, a refresh interval, used to poll the Sonos device, can be specifie
 You can use the `notificationVolume` property for setting a default volume (in percent) to be used to play notifications.
 In the thing file, this looks e.g. like
 
-```
+```java
 Thing sonos:PLAY1:1 [udn="RINCON_000E58D8403A0XXXX", refresh=60, notificationVolume=25]
 ```
 
@@ -48,72 +48,72 @@ Thing sonos:PLAY1:1 [udn="RINCON_000E58D8403A0XXXX", refresh=60, notificationVol
 
 The devices support the following channels:
 
-| Channel Type ID     | Item Type | Access Mode | Description                                                                                                                                               | Thing types                          |
-|---------------------|-----------|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
-| add                 | String    | W           | Add the given Zone Player to the group of this Zone Player                                                                                                | all                                  |
-| alarm               | Switch    | W           | Set the first occurring alarm either ON or OFF. Alarms first have to be defined through the Sonos Controller app                                          | all                                  |
-| alarmproperties     | String    | R           | Properties of the alarm currently running                                                                                                                 | all                                  |
-| alarmrunning        | Switch    | R           | Set to ON if the alarm was triggered                                                                                                                      | all                                  |
-| bass                | Number    | RW          | Set or get the bass level adjustment (value in range -10 / 10)                                                                                            | all                                  |
-| batterycharging     | Switch    | R           | Indicator set to ON when the battery is charging                                                                                                          | Move, Roam, RoamSL                   |
-| batterylevel        | Number    | R           | Current battery level                                                                                                                                     | Move, Roam, RoamSL                   |
-| clearqueue          | Switch    | W           | Suppress all songs from the current queue                                                                                                                 | all                                  |
-| codec               | String    | R           | Name of codec currently being decoded                                                                                                                     | Arc, Arc SL, PLAYBAR, PLAYBASE, Beam, Amp        |
-| control             | Player    | RW          | Control the Zone Player, e.g. PLAY/PAUSE/NEXT/PREVIOUS                                                                                      | all                                  |
-| coordinator         | String    | R           | UDN of the coordinator for the current group                                                                                                              | all                                  |
-| currentalbum        | String    | R           | Name of the album currently playing                                                                                                                       | all                                  |
-| currentalbumart     | Image     | R           | Cover art of the album currently playing                                                                                                                  | all                                  |
-| currentalbumarturl  | String    | R           | Cover art URL of the album currently playing                                                                                                              | all                                  |
-| currentartist       | String    | R           | Name of the artist currently playing                                                                                                                      | all                                  |
-| currenttitle        | String    | R           | Title of the song currently playing                                                                                                                       | all                                  |
-| currenttrack        | String    | R           | Name of the current track or radio station currently playing                                                                                              | all                                  |
-| currenttrackuri     | String    | R           | URI of the current track                                                                                                                                  | all                                  |
-| currenttransporturi | String    | R           | URI of the current AV transport                                                                                                                           | all                                  |
-| favorite            | String    | W           | Play the given favorite entry. The favorite entry has to be predefined in the Sonos Controller app                                                        | all                                  |
-| heightlevel         | Number    | RW          | Set or get the height level adjustment (value in range -10 / 10)                                                                                          | Arc, Arc SL                          |
-| led                 | Switch    | RW          | Set or get the status of the white LED on the front of the Zone Player                                                                                    | all                                  |
-| linein              | Switch    | R           | Indicator set to ON when the line-in of the Zone Player is connected                                                                                      | PLAY5, Five, CONNECT, CONNECTAMP, PLAYBAR, PLAYBASE, Beam, Port |
-| analoglinein        | Switch    | R           | Indicator set to ON when the analog line-in of the Zone Player is connected                                                                               | Amp                                  |
-| digitallinein       | Switch    | R           | Indicator set to ON when the digital line-in of the Zone Player is connected                                                                              | Amp                                  |
-| localcoordinator    | Switch    | R           | Indicator set to ON if the this Zone Player is the Zone Group Coordinator                                                                                 | all                                  |
-| loudness            | Switch    | RW          | Enable or disable the loudness                                                                                                                            | all                                  |
-| microphone          | Switch    | R           | Indicator set to ON when the microphone is enabled                                                                                                        | Arc, Beam, Move, One, Roam           |
-| mute                | Switch    | RW          | Set or get the mute state of the master volume of the Zone Player                                                                                         | all                                  |
-| nightmode           | Switch    | RW          | Enable or disable the night mode feature                                                                                                                  | PLAYBAR, PLAYBASE, Beam, Amp         |
-| notificationsound   | String    | W           | Play a notification sound by a given URI                                                                                                                  | all                                  |
-| playlinein          | String    | W           | This channel supports playing the audio source connected to the line-in of the zoneplayer identified by the Thing UID or UPnP UDN provided by the String. | All                                  |
-| playlist            | String    | W           | Play the given playlist. The playlist has to predefined in the Sonos Controller app                                                                       | all                                  |
-| playqueue           | Switch    | W           | Play the songs from the current queue                                                                                                                     | all                                  |
-| playtrack           | Number    | W           | Play the given track number from the current queue                                                                                                        | all                                  |
-| playuri             | String    | W           | Play the given URI                                                                                                                                        | all                                  |
-| publicaddress       | Switch    | W           | Put all Zone Players in one group, and stream audio from the line-in from the Zone Player that triggered the command                                      | all except Amp                       |
-| publicanalogaddress | Switch    | W           | Put all Zone Players in one group, and stream audio from the analog line-in from the Zone Player that triggered the command                               | Amp                                  |
-| publicdigitaladdress| Switch    | W           | Put all Zone Players in one group, and stream audio from the digital line-in from the Zone Player that triggered the command                              | Amp                                  |
-| radio               | String    | W           | Play the given radio station. The radio station has to be predefined in the Sonos Controller app                                                          | all                                  |
-| remove              | String    | W           | Remove the given Zone Player from the group of this Zone Player                                                                                           | all                                  |
-| repeat              | String    | RW          | Repeat the track or queue playback. The accepted values are OFF, ONE and ALL                                                                              | all                                  |
-| restore             | Switch    | W           | Restore the state of the Zone Player                                                                                                                      | all                                  |
-| restoreall          | Switch    | W           | Restore the state of all the Zone Players                                                                                                                 | all                                  |
-| save                | Switch    | W           | Save the state of the Zone Player                                                                                                                         | all                                  |
-| saveall             | Switch    | W           | Save the state of all the Zone Players                                                                                                                    | all                                  |
-| shuffle             | Switch    | RW          | Shuffle the queue playback                                                                                                                                | all                                  |
-| sleeptimer          | Number    | RW          | Set/show the duration of the SleepTimer in seconds                                                                                                        | all                                  |
-| snooze              | Number    | W           | Snooze the running alarm, if any, with the given number of minutes                                                                                        | all                                  |
-| speechenhancement   | Switch    | RW          | Enable or disable the speech enhancement feature                                                                                                          | PLAYBAR, PLAYBASE, Beam, One, Amp    |
-| standalone          | Switch    | W           | Make the Zone Player leave its Group and become a standalone Zone Player                                                                                  | all                                  |
-| state               | String    | R           | The State channel contains state of the Zone Player, e.g. PLAYING, STOPPED, ...                                                                           | all                                  |
-| stop                | Switch    | W           | Write `ON` to this channel: Stops the Zone Player player.                                                                                                 | all                                  |
-| treble              | Number    | RW          | Set or get the treble level adjustment (value in range -10 / 10)                                                                                          | all                                  |
-| subwoofer           | Switch    | RW          | Enable or disable the subwoofer                                                                                                                           | Arc, Arc SL                          |
-| subwoofergain       | Number    | RW          | Set or get the subwoofer gain adjustment (value in range -15 / 15)                                                                                        | Arc, Arc SL                          |
-| surround            | Switch    | RW          | Enable or disable the surround audio                                                                                                                      | Arc, Arc SL                          |
-| surroundmusicmode   | String    | RW          | Set or get the surround playback mode for music, either 0 for Ambient or 1 for full                                                                       | Arc, Arc SL                          |
-| surroundmusiclevel  | Number    | RW          | Set or get the surround level adjustment for music (value in range -15 / 15)                                                                              | Arc, Arc SL                          |
-| surroundtvlevel     | Number    | RW          | Set or get the surround level adjustment for TV (value in range -15 / 15)                                                                                 | Arc, Arc SL                          |
-| tuneinstationid     | String    | RW          | Provide the current TuneIn station id or play the TuneIn radio given by its station id                                                                    | all                                  |
-| volume              | Dimmer    | RW          | Set or get the master volume of the Zone Player                                                                                                           | all                                  |
-| zonegroupid         | String    | R           | Id of the Zone Group the Zone Player belongs to                                                                                                           | all                                  |
-| zonename            | String    | R           | Name of the Zone associated to the Zone Player                                                                                                            | all                                  |
+| Channel Type ID      | Item Type | Access Mode | Description                                                                                                                                               | Thing types                                                     |
+| -------------------- | --------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
+| add                  | String    | W           | Add the given Zone Player to the group of this Zone Player                                                                                                | all                                                             |
+| alarm                | Switch    | W           | Set the first occurring alarm either ON or OFF. Alarms first have to be defined through the Sonos Controller app                                          | all                                                             |
+| alarmproperties      | String    | R           | Properties of the alarm currently running                                                                                                                 | all                                                             |
+| alarmrunning         | Switch    | R           | Set to ON if the alarm was triggered                                                                                                                      | all                                                             |
+| bass                 | Number    | RW          | Set or get the bass level adjustment (value in range -10 / 10)                                                                                            | all                                                             |
+| batterycharging      | Switch    | R           | Indicator set to ON when the battery is charging                                                                                                          | Move, Roam, RoamSL                                              |
+| batterylevel         | Number    | R           | Current battery level                                                                                                                                     | Move, Roam, RoamSL                                              |
+| clearqueue           | Switch    | W           | Suppress all songs from the current queue                                                                                                                 | all                                                             |
+| codec                | String    | R           | Name of codec currently being decoded                                                                                                                     | Arc, Arc SL, PLAYBAR, PLAYBASE, Beam, Amp                       |
+| control              | Player    | RW          | Control the Zone Player, e.g. PLAY/PAUSE/NEXT/PREVIOUS                                                                                                    | all                                                             |
+| coordinator          | String    | R           | UDN of the coordinator for the current group                                                                                                              | all                                                             |
+| currentalbum         | String    | R           | Name of the album currently playing                                                                                                                       | all                                                             |
+| currentalbumart      | Image     | R           | Cover art of the album currently playing                                                                                                                  | all                                                             |
+| currentalbumarturl   | String    | R           | Cover art URL of the album currently playing                                                                                                              | all                                                             |
+| currentartist        | String    | R           | Name of the artist currently playing                                                                                                                      | all                                                             |
+| currenttitle         | String    | R           | Title of the song currently playing                                                                                                                       | all                                                             |
+| currenttrack         | String    | R           | Name of the current track or radio station currently playing                                                                                              | all                                                             |
+| currenttrackuri      | String    | R           | URI of the current track                                                                                                                                  | all                                                             |
+| currenttransporturi  | String    | R           | URI of the current AV transport                                                                                                                           | all                                                             |
+| favorite             | String    | W           | Play the given favorite entry. The favorite entry has to be predefined in the Sonos Controller app                                                        | all                                                             |
+| heightlevel          | Number    | RW          | Set or get the height level adjustment (value in range -10 / 10)                                                                                          | Arc, Arc SL                                                     |
+| led                  | Switch    | RW          | Set or get the status of the white LED on the front of the Zone Player                                                                                    | all                                                             |
+| linein               | Switch    | R           | Indicator set to ON when the line-in of the Zone Player is connected                                                                                      | PLAY5, Five, CONNECT, CONNECTAMP, PLAYBAR, PLAYBASE, Beam, Port |
+| analoglinein         | Switch    | R           | Indicator set to ON when the analog line-in of the Zone Player is connected                                                                               | Amp                                                             |
+| digitallinein        | Switch    | R           | Indicator set to ON when the digital line-in of the Zone Player is connected                                                                              | Amp                                                             |
+| localcoordinator     | Switch    | R           | Indicator set to ON if the this Zone Player is the Zone Group Coordinator                                                                                 | all                                                             |
+| loudness             | Switch    | RW          | Enable or disable the loudness                                                                                                                            | all                                                             |
+| microphone           | Switch    | R           | Indicator set to ON when the microphone is enabled                                                                                                        | Arc, Beam, Move, One, Roam                                      |
+| mute                 | Switch    | RW          | Set or get the mute state of the master volume of the Zone Player                                                                                         | all                                                             |
+| nightmode            | Switch    | RW          | Enable or disable the night mode feature                                                                                                                  | PLAYBAR, PLAYBASE, Beam, Amp                                    |
+| notificationsound    | String    | W           | Play a notification sound by a given URI                                                                                                                  | all                                                             |
+| playlinein           | String    | W           | This channel supports playing the audio source connected to the line-in of the zoneplayer identified by the Thing UID or UPnP UDN provided by the String. | All                                                             |
+| playlist             | String    | W           | Play the given playlist. The playlist has to predefined in the Sonos Controller app                                                                       | all                                                             |
+| playqueue            | Switch    | W           | Play the songs from the current queue                                                                                                                     | all                                                             |
+| playtrack            | Number    | W           | Play the given track number from the current queue                                                                                                        | all                                                             |
+| playuri              | String    | W           | Play the given URI                                                                                                                                        | all                                                             |
+| publicaddress        | Switch    | W           | Put all Zone Players in one group, and stream audio from the line-in from the Zone Player that triggered the command                                      | all except Amp                                                  |
+| publicanalogaddress  | Switch    | W           | Put all Zone Players in one group, and stream audio from the analog line-in from the Zone Player that triggered the command                               | Amp                                                             |
+| publicdigitaladdress | Switch    | W           | Put all Zone Players in one group, and stream audio from the digital line-in from the Zone Player that triggered the command                              | Amp                                                             |
+| radio                | String    | W           | Play the given radio station. The radio station has to be predefined in the Sonos Controller app                                                          | all                                                             |
+| remove               | String    | W           | Remove the given Zone Player from the group of this Zone Player                                                                                           | all                                                             |
+| repeat               | String    | RW          | Repeat the track or queue playback. The accepted values are OFF, ONE and ALL                                                                              | all                                                             |
+| restore              | Switch    | W           | Restore the state of the Zone Player                                                                                                                      | all                                                             |
+| restoreall           | Switch    | W           | Restore the state of all the Zone Players                                                                                                                 | all                                                             |
+| save                 | Switch    | W           | Save the state of the Zone Player                                                                                                                         | all                                                             |
+| saveall              | Switch    | W           | Save the state of all the Zone Players                                                                                                                    | all                                                             |
+| shuffle              | Switch    | RW          | Shuffle the queue playback                                                                                                                                | all                                                             |
+| sleeptimer           | Number    | RW          | Set/show the duration of the SleepTimer in seconds                                                                                                        | all                                                             |
+| snooze               | Number    | W           | Snooze the running alarm, if any, with the given number of minutes                                                                                        | all                                                             |
+| speechenhancement    | Switch    | RW          | Enable or disable the speech enhancement feature                                                                                                          | PLAYBAR, PLAYBASE, Beam, One, Amp                               |
+| standalone           | Switch    | W           | Make the Zone Player leave its Group and become a standalone Zone Player                                                                                  | all                                                             |
+| state                | String    | R           | The State channel contains state of the Zone Player, e.g. PLAYING, STOPPED, ...                                                                           | all                                                             |
+| stop                 | Switch    | W           | Write `ON` to this channel: Stops the Zone Player player.                                                                                                 | all                                                             |
+| treble               | Number    | RW          | Set or get the treble level adjustment (value in range -10 / 10)                                                                                          | all                                                             |
+| subwoofer            | Switch    | RW          | Enable or disable the subwoofer                                                                                                                           | Arc, Arc SL                                                     |
+| subwoofergain        | Number    | RW          | Set or get the subwoofer gain adjustment (value in range -15 / 15)                                                                                        | Arc, Arc SL                                                     |
+| surround             | Switch    | RW          | Enable or disable the surround audio                                                                                                                      | Arc, Arc SL                                                     |
+| surroundmusicmode    | String    | RW          | Set or get the surround playback mode for music, either 0 for Ambient or 1 for full                                                                       | Arc, Arc SL                                                     |
+| surroundmusiclevel   | Number    | RW          | Set or get the surround level adjustment for music (value in range -15 / 15)                                                                              | Arc, Arc SL                                                     |
+| surroundtvlevel      | Number    | RW          | Set or get the surround level adjustment for TV (value in range -15 / 15)                                                                                 | Arc, Arc SL                                                     |
+| tuneinstationid      | String    | RW          | Provide the current TuneIn station id or play the TuneIn radio given by its station id                                                                    | all                                                             |
+| volume               | Dimmer    | RW          | Set or get the master volume of the Zone Player                                                                                                           | all                                                             |
+| zonegroupid          | String    | R           | Id of the Zone Group the Zone Player belongs to                                                                                                           | all                                                             |
+| zonename             | String    | R           | Name of the Zone associated to the Zone Player                                                                                                            | all                                                             |
 
 The `playline` channel accepts as command either the thing UID or the UPnP UDN.
 Note that you can prefix your command value with "Analog," or "Digital," to distinguish the line-in of your Sonos device.
@@ -134,13 +134,13 @@ Instead, these will be sent to the `playuri` channel.
 
 demo.things:
 
-```
+```java
 Thing sonos:PLAY1:living [ udn="RINCON_000E58D8403A0XXXX", refresh=60]
 ```
 
 demo.items:
 
-```
+```java
 Group Sonos <player>
 
 Player Sonos_Controller   "Controller"                          (Sonos) {channel="sonos:PLAY1:living:control"}
@@ -153,16 +153,16 @@ String Sonos_State        "Status [%s]"      <text>             (Sonos) {channel
 
 demo.sitemap:
 
-```
+```perl
 sitemap demo label="Main Menu"
 {
-               Frame label="Sonos" {
-                       Default item=Sonos_Controller
-                       Slider  item=Sonos_Volume
-                       Switch  item=Sonos_Mute
-                       Switch  item=Sonos_LED
-                       Text    item=Sonos_CurrentTrack         
-                       Text    item=Sonos_State
-               }
+    Frame label="Sonos" {
+        Default item=Sonos_Controller
+        Slider  item=Sonos_Volume
+        Switch  item=Sonos_Mute
+        Switch  item=Sonos_LED
+        Text    item=Sonos_CurrentTrack
+        Text    item=Sonos_State
+    }
 }
 ```
index 6e8eddbef9de03bb2f7b501abb72bee1cae41563..c2838c0347590fd16326c28a9bc4e4ec9152e97d 100644 (file)
@@ -5,13 +5,13 @@ This binding integrates the [Sony Audio Control API](https://developer.sony.com/
 ## Supported Things
 
 For the moment the devices that are supported by this binding are
- * STR-DN1080
- * HT-CT800
- * SRS-ZR5
- * HT-ST5000
- * HT-Z9F
- * HT-ZF9
- * HT-MT500
+- STR-DN1080
+- HT-CT800
+- SRS-ZR5
+- HT-ST5000
+- HT-Z9F
+- HT-ZF9
+- HT-MT500
 
 When being defined in a \*.things file, the specific thing types
 STR-DN1080, HT-ST5000, HT-ZF9, HT-Z9F, HT-CT800, HT-MT500 and SRS-ZR5 should be used.
@@ -27,7 +27,7 @@ The SonyAudio devices are discovered through UPnP in the local network and all d
 The SonyAudio Thing requires the network address, port and path as a configuration value in order for the binding to know how to access the device.
 Additionally, a refresh interval, used to poll the Sony Audio device, can be specified (in seconds).
 
-```
+```java
 Thing sonyaudio:HT-ST5000:1 [ipAddress="192.168.123.123", port=10000, path="/sony", refresh=60]
 ```
 
@@ -36,7 +36,7 @@ Thing sonyaudio:HT-ST5000:1 [ipAddress="192.168.123.123", port=10000, path="/son
 The devices support the following channels:
 
 | Channel Type ID            | Item Type | Access Mode | Description                                                                           | Thing types                                            |
-|----------------------------|-----------|-------------|---------------------------------------------------------------------------------------|--------------------------------------------------------|
+| -------------------------- | --------- | ----------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------ |
 | power                      | Switch    | RW          | Main power on/off                                                                     | HT-CT800, SRS-ZR5, HT-ST5000, HT-ZF9, HT-Z9F, HT-MT500 |
 | input                      | String    | RW          | Set or get the input source                                                           | HT-CT800, SRS-ZR5, HT-ST5000, HT-ZF9, HT-Z9F, HT-MT500 |
 | volume                     | Dimmer    | RW          | Set or get the master volume                                                          | HT-CT800, SRS-ZR5, HT-ST5000, HT-ZF9, HT-Z9F, HT-MT500 |
@@ -65,18 +65,17 @@ The devices support the following channels:
 | radio#broadcastSeekStation | String    | W           | Seek for new broadcast station, forward search "fwdSeeking" and backward "bwdSeeking" | STR-1080                                               |
 | nightMode                  | Switch    | RW          | Set or get the Night Mode state                                                       | HT-ZF9                                                 |
 
-
 ## Full Example
 
 demo.things:
 
-```
+```java
 Thing sonyaudio:HT-ST5000:living [ipAddress="192.168.123.123"]
 ```
 
 demo.items:
 
-```
+```java
 Group  SonyAudio <sonyaudio>
 
 Dimmer Sony_Volume       "Volume [%.0f %%]"  <soundvolume>      (SonyAudio) {channel="sonyaudio:HT-ST5000:living:volume"}
@@ -86,7 +85,7 @@ String Sony_Sound_Field  "Sound Field: [%s]" <text>             (SonyAudio) {cha
 
 demo.sitemap:
 
-```
+```perl
 sitemap demo label="Main Menu" {
     Frame label="Sony" {
         Text label="Volume" icon="soundvolume" {
index 35489e05818846d13e7a8588b36e54db86cc7b3a..40d3795597575e01747e386143b082b32e7a7902 100644 (file)
@@ -2,9 +2,9 @@
 
 This binding can be used to conrol Sony Projectors through:
 
-* an Ethernet connection using PJ Talk
-* or a (direct) serial connection
-* or a serial over IP connection
+- an Ethernet connection using PJ Talk
+- or a (direct) serial connection
+- or a serial over IP connection
 
 For serial connection, you have to use a D-Sub 9 Pin cross (reverse) cable also called null modem.
 For this cable, you will need a female connector on openHAB server side and a male connector on projector side (projector connector is female).
@@ -18,76 +18,76 @@ In such a case, setup a serial over IP connection thing type in openHAB.
 
 Here is the list of supported Sony projectors based on Sony protocol manuals:
 
-* VPL-HW15
-* VPL-HW20
-* VPL-HW30ES
-* VPL-HW35ES
-* VPL-HW40ES
-* VPL-HW50ES
-* VPL-HW55ES
-* VPL-HW58ES
-* VPL-HW60
-* VPL-HW65
-* VPL-HW68
-* VPL-VW40
-* VPL-VW50
-* VPL-VW60
-* VPL-VW70
-* VPL-VW85
-* VPL-VW95ES
-* VPL-VW100
-* VPL-VW315
-* VPL-VW320
-* VPL-VW328
-* VPL-VW365
-* VPL-VW515
-* VPL-VW520
-* VPL-VW528
-* VPL-VW665
-* VPL-VW1000ES
-* VPL-VW1100ES
+- VPL-HW15
+- VPL-HW20
+- VPL-HW30ES
+- VPL-HW35ES
+- VPL-HW40ES
+- VPL-HW50ES
+- VPL-HW55ES
+- VPL-HW58ES
+- VPL-HW60
+- VPL-HW65
+- VPL-HW68
+- VPL-VW40
+- VPL-VW50
+- VPL-VW60
+- VPL-VW70
+- VPL-VW85
+- VPL-VW95ES
+- VPL-VW100
+- VPL-VW315
+- VPL-VW320
+- VPL-VW328
+- VPL-VW365
+- VPL-VW515
+- VPL-VW520
+- VPL-VW528
+- VPL-VW665
+- VPL-VW1000ES
+- VPL-VW1100ES
 
 Here is the list of supported Sony projectors but not sure due to assumptions done based on Sony user manuals and protocol manuals of other similar models (because Sony protocol manuals unfortunately not available for these models):
 
-* VPL-HW10
-* VPL-HW45ES
-* VPL-VW80
-* VPL-VW90ES
-* VPL-VW200
-* VPL-VW260ES
-* VPL-VW270ES
-* VPL-VW285ES
-* VPL-VW295ES
-* VPL-VW300ES
-* VPL-VW350ES
-* VPL-VW385ES
-* VPL-VW500ES
-* VPL-VW550ES (= VW675)
-* VPL-VW570ES
-* VPL-VW600ES
-* VPL-VW675ES
-* VPL-VW695ES
-* VPL-VW760ES
-* VPL-VW870ES
-* VPL-VW885ES
-* VPL-VW995ES
+- VPL-HW10
+- VPL-HW45ES
+- VPL-VW80
+- VPL-VW90ES
+- VPL-VW200
+- VPL-VW260ES
+- VPL-VW270ES
+- VPL-VW285ES
+- VPL-VW295ES
+- VPL-VW300ES
+- VPL-VW350ES
+- VPL-VW385ES
+- VPL-VW500ES
+- VPL-VW550ES (= VW675)
+- VPL-VW570ES
+- VPL-VW600ES
+- VPL-VW675ES
+- VPL-VW695ES
+- VPL-VW760ES
+- VPL-VW870ES
+- VPL-VW885ES
+- VPL-VW995ES
 
 Control of other (HW or VW) models could work with the binding by selecting one of the supported models but without any guarantee.
 Here is a list of potential candidates:
 
-* VPL-VW10HT
-* VPL-VW11HT
-* VPL-VW12HT
-* VPL-VW360ES
-* VPL-VW685ES
-* VPL-VW5000ES
+- VPL-VW10HT
+- VPL-VW11HT
+- VPL-VW12HT
+- VPL-VW360ES
+- VPL-VW685ES
+- VPL-VW5000ES
+
 ## Supported Things
 
 This binding supports the following thing types:
 
 | Thing Type             | Description                                             |
-|------------------------|---------------------------------------------------------|
+| ---------------------- | ------------------------------------------------------- |
 | ethernetconnection     | Ethernet connection to the Sony projector using PJ Talk |
 | serialconnection       | Serial connection to the Sony projector                 |
 | serialoveripconnection | Serial over IP connection to the Sony projector         |
@@ -108,46 +108,46 @@ All settings are through thing configuration parameters.
 
 The Ethernet connection thing requires the following configuration parameters:
 
-| Parameter Label | Parameter ID | Description                                                              | Required | Default | Accepted values |
-|-----------------|--------------|--------------------------------------------------------------------------|----------|---------|-----------------|
-| Address         | host         | Host name or IP address of the projector                                 | true     |         |                 |
-| Port            | port         | Communication port. Default is 53484                                     | false    | 53484   |                 |
+| Parameter Label | Parameter ID | Description                                                              | Required | Default | Accepted values                                                                                                                                                                                                                                                                                                                                                                                           |
+| --------------- | ------------ | ------------------------------------------------------------------------ | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Address         | host         | Host name or IP address of the projector                                 | true     |         |                                                                                                                                                                                                                                                                                                                                                                                                           |
+| Port            | port         | Communication port. Default is 53484                                     | false    | 53484   |                                                                                                                                                                                                                                                                                                                                                                                                           |
 | Model           | model        | Projector model to be controlled. Default is AUTO                        | false    | AUTO    | AUTO, VPL-HW60, VPL-HW65, VPL-HW68, VPL-VW100, VPL-VW200, VPL-VW260ES, VPL-VW270ES, VPL-VW285ES, VPL-VW295ES, VPL-VW300ES, VPL-VW315, VPL-VW320, VPL-VW328, VPL-VW350ES, VPL-VW365, VPL-VW385ES, VPL-VW500ES, VPL-VW515, VPL-VW520, VPL-VW528, VPL-VW550ES, VPL-VW570ES, VPL-VW600ES, VPL-VW665, VPL-VW675ES, VPL-VW695ES, VPL-VW760ES, VPL-VW870ES, VPL-VW885ES, VPL-VW995ES, VPL-VW1000ES, VPL-VW1100ES |
-| Community       | community    | Community of the projector. Length must be 4 characters. Default is SONY | false    | SONY    |                 |
+| Community       | community    | Community of the projector. Length must be 4 characters. Default is SONY | false    | SONY    |                                                                                                                                                                                                                                                                                                                                                                                                           |
 
 Some notes:
 
-* Take care to enable PJ Talk on your projector.
+- Take care to enable PJ Talk on your projector.
 
 ### Serial connection
 
 The serial connection thing requires the following configuration parameters:
 
-| Parameter Label | Parameter ID | Description                                        | Required | Default   | Accepted values |
-|-----------------|--------------|----------------------------------------------------|----------|-----------|-----------------|
-| Serial Port     | port         | Serial port to use for connecting to the projector | true     |           |                 |
+| Parameter Label | Parameter ID | Description                                        | Required | Default   | Accepted values                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
+| --------------- | ------------ | -------------------------------------------------- | -------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Serial Port     | port         | Serial port to use for connecting to the projector | true     |           |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
 | Model           | model        | Projector model to be controlled                   | true     | VPL-VW528 | VPL-HW10, VPL-HW15, VPL-HW20, VPL-HW30ES, VPL-HW35ES, VPL-HW40ES, VPL-HW45ES, VPL-HW50ES, VPL-HW55ES, VPL-HW58ES, VPL-HW60, VPL-HW65, VPL-HW68, VPL-VW40, VPL-VW50, VPL-VW60, VPL-VW70, VPL-VW80, VPL-VW85, VPL-VW90ES, VPL-VW95ES, VPL-VW100, VPL-VW200, VPL-VW260ES, VPL-VW270ES, VPL-VW285ES, VPL-VW295ES, VPL-VW300ES, VPL-VW315, VPL-VW320, VPL-VW328, VPL-VW350ES, VPL-VW365, VPL-VW385ES, VPL-VW500ES, VPL-VW515, VPL-VW520, VPL-VW528, VPL-VW550ES, VPL-VW570ES, VPL-VW600ES, VPL-VW665, VPL-VW675ES, VPL-VW695ES, VPL-VW760ES, VPL-VW870ES, VPL-VW885ES, VPL-VW995ES, VPL-VW1000ES, VPL-VW1100ES |
 
 Some notes:
 
-* On Linux, you may get an error stating the serial port cannot be opened when the SonyProjector 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. SonyProjector and RFXcom. See the [general documentation about serial port configuration](/docs/administration/serial.html) for more on symlinking the USB ports.
+- On Linux, you may get an error stating the serial port cannot be opened when the SonyProjector 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. SonyProjector and RFXcom. See the [general documentation about serial port configuration](/docs/administration/serial.html) for more on symlinking the USB ports.
 
 ### Serial over IP connection
 
 The serial over IP connection thing requires the following configuration parameters:
 
-| Parameter Label | Parameter ID | Description                                                       | Required | Default   | Accepted values |
-|-----------------|--------------|-------------------------------------------------------------------|----------|-----------|-----------------|
-| Address         | host         | Host name or IP address of the machine connected to the projector | true     |           |                 |
-| Port            | port         | Communication port                                                | true     |           |                 |
+| Parameter Label | Parameter ID | Description                                                       | Required | Default   | Accepted values                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
+| --------------- | ------------ | ----------------------------------------------------------------- | -------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Address         | host         | Host name or IP address of the machine connected to the projector | true     |           |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
+| Port            | port         | Communication port                                                | true     |           |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
 | Model           | model        | Projector model to be controlled                                  | true     | VPL-VW528 | VPL-HW10, VPL-HW15, VPL-HW20, VPL-HW30ES, VPL-HW35ES, VPL-HW40ES, VPL-HW45ES, VPL-HW50ES, VPL-HW55ES, VPL-HW58ES, VPL-HW60, VPL-HW65, VPL-HW68, VPL-VW40, VPL-VW50, VPL-VW60, VPL-VW70, VPL-VW80, VPL-VW85, VPL-VW90ES, VPL-VW95ES, VPL-VW100, VPL-VW200, VPL-VW260ES, VPL-VW270ES, VPL-VW285ES, VPL-VW295ES, VPL-VW300ES, VPL-VW315, VPL-VW320, VPL-VW328, VPL-VW350ES, VPL-VW365, VPL-VW385ES, VPL-VW500ES, VPL-VW515, VPL-VW520, VPL-VW528, VPL-VW550ES, VPL-VW570ES, VPL-VW600ES, VPL-VW665, VPL-VW675ES, VPL-VW695ES, VPL-VW760ES, VPL-VW870ES, VPL-VW885ES, VPL-VW995ES, VPL-VW1000ES, VPL-VW1100ES |
 
 Some notes:
 
-* Here is an example of ser2net.conf you can use to share your serial port /dev/ttyUSB0 on IP port 3333 using [ser2net Linux tool](https://sourceforge.net/projects/ser2net/):
+- Here is an example of ser2net.conf you can use to share your serial port /dev/ttyUSB0 on IP port 3333 using [ser2net Linux tool](https://sourceforge.net/projects/ser2net/):
 
-```
+```text
 3333:raw:0:/dev/ttyUSB0:38400 8DATABITS EVEN 1STOPBIT
 ```
 
@@ -156,7 +156,7 @@ Some notes:
 The following channels are available:
 
 | Channel ID        | Label                    | Item Type | Access Mode | Description                                                             | Possible values (depends on model)                                                                                                                 |
-|-------------------|--------------------------|-----------|-------------|-------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|
+| ----------------- | ------------------------ | --------- | ----------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
 | power             | Power                    | Switch    | RW          | Power ON/OFF the projector                                              | ON, OFF                                                                                                                                            |
 | powerstate        | Power State              | String    | R           | Current detailed power state of the projector                           |                                                                                                                                                    |
 | input             | Video Input              | String    | RW          | Select the equipment from which to display images                       | Video, SVideo, InputA, Component, HDMI, HDMI1, HDMI2, DVI                                                                                          |
@@ -192,7 +192,7 @@ The following channels are available:
 
 example.things:
 
-```
+```java
 Thing sonyprojector:ethernetconnection:proj "Projector" [ host="192.168.0.200" ]
 Thing sonyprojector:ethernetconnection:proj2 "Projector" [ host="192.168.0.205", port=53484, model="VPL-VW365", community="SONY" ]
 Thing sonyprojector:serialconnection:proj3 "Projector" [ port="/dev/ttyUSB0", model="VPL-HW55ES" ]
@@ -201,7 +201,7 @@ Thing sonyprojector:serialoveripconnection:proj4 "Projector" [ host="192.168.0.2
 
 example.items:
 
-```
+```java
 Switch proj_power "Power" { channel = "sonyprojector:ethernetconnection:proj:power" }
 String proj_powerstate "Power State [%s]" { channel = "sonyprojector:ethernetconnection:proj:powerstate" }
 String proj_input "Video Input [%s]" { channel = "sonyprojector:ethernetconnection:proj:input" }
@@ -298,7 +298,7 @@ Number proj4_lampusetime "Lamp Use Time [%d]" { channel = "sonyprojector:serialo
 
 example.sitemap:
 
-```
+```perl
     Frame label="Projector" {
         Switch item=proj_power
         Text item=proj_powerstate
index c28ab59f94e308a762456b5338df69c67b5be69a..7ae7929806b9b13554c1b92b2b50e84085b79ce3 100644 (file)
@@ -1,6 +1,6 @@
 # Souliss Binding
 
-[Souliss](http://www.souliss.net/) is a networking framework for Arduino and compatibles boards, and is designed to let you easily build a smart home that is distributed over multiple boards via Ethernet, WiFi, wireless point-to-point and RS485 bus. 
+[Souliss](http://www.souliss.net/) is a networking framework for Arduino and compatibles boards, and is designed to let you easily build a smart home that is distributed over multiple boards via Ethernet, WiFi, wireless point-to-point and RS485 bus.
 
 Souliss is an open-source and community driven project, you can use the [wiki](https://github.com/souliss/souliss/wiki) and [Community](https://github.com/souliss/souliss/wiki/Community) to get help and share your results.  
 
@@ -19,19 +19,18 @@ You can use SoulissApp and the Souliss binding at the same time, and generally u
 
 ### Sketches
 
-The easiest way is start with a simple example to control an ON/OFF light (though a relay). 
+The easiest way is start with a simple example to control an ON/OFF light (though a relay).
 You can go to project [Souliss](https://github.com/souliss/souliss), see a lot of examples sketches: [Souliss examples](https://github.com/souliss/souliss/tree/friariello/examples)
 
-
 ## Discovery
 
 First add a gateway (one only is permitted on LAN at this moment), then discovery can find other things (Souliss Typicals)
 
 ## Supported Things
 
-In Souliss Framework a Typical is one of predefined logic dedicated to smart home devices like lights, heating or antitheft. 
+In Souliss Framework a Typical is one of predefined logic dedicated to smart home devices like lights, heating or antitheft.
 
-Typical can be one of T11, T12, T13, T14, etc... 
+Typical can be one of T11, T12, T13, T14, etc...
 
 They are defined [here](https://github.com/souliss/souliss/wiki/Typicals).
 
@@ -99,7 +98,6 @@ mode = COOLING_MODE, HEATING_MODE, POWEREDOFF_MODE
 
 fan = AUTO, HIGH, MEDIUM, LOW, FANOFF
 
-
 | Thing type / Channel | DateTime / lastStatusStored | Number / healthy | Number / value |
 |----------------------|-----------------------------|------------------|----------------|
 | t51                  | x                           | x                | x              |
@@ -153,14 +151,11 @@ fan = AUTO, HIGH, MEDIUM, LOW, FANOFF
 | T5x        |                                   |                                                                                                       |
 | T6x        |                                   |                                                                                                       |
 
-
 ## Full Example
 
-
-
 souliss.things:
 
-```
+```java
 Bridge souliss:gateway:105 "Souliss Gateway - 105" [gatewayLanAddress="192.168.1.105", gatewayPortNumber=230, preferredLocalPortNumber=0, pingInterval=30, subscriptionInterval=2, healthyInterval=38, userIndex=72, nodeIndex=38,  timeoutToRequeue=5000, timeoutToRemovePacket=20000]
 {  
 Thing t14 1-6 "Portoncino"@"Rientro" [node=1,slot=6] //thing UID is named as node-slot only as mnemonic convention, but you are free to assign other values
@@ -175,8 +170,8 @@ Thing t52 4-12 "Temp.Pannelli Gruppo 2"@"Soggiorno" [node=4,slot=12]
 Thing t52 3-0 "Temperatura Boiler Solare Termico" [node=3,slot=0]
 Thing t52 3-2 "Temperatura Termocamino" [node=3,slot=2]
 Thing t11 3-4 "Acqua Termocamino" [node=3,slot=4]
-Thing t11 3-6 "Auto: Boiler / Termocamino" [node=3,slot=6]      
-Thing t31 3-7  "Acqua Auto: Boiler / Termocamino" [node=3,slot=7]      
+Thing t11 3-6 "Auto: Boiler / Termocamino" [node=3,slot=6]
+Thing t31 3-7  "Acqua Auto: Boiler / Termocamino" [node=3,slot=7]
 
 Thing t31 6-0 "Termostato Soggiorno"@"Soggiorno" [node=6,slot=0]
 Thing t53 6-7 "Umidità"@"Soggiorno" [node=6,slot=7]
@@ -198,10 +193,9 @@ Thing t52 11-3 "Birra - Temp 2"@"Soppalco" [node=11,slot=3]
 
 You have to write your Gateway IP Number and leave all other to default values
 
-
 default.items:
 
-```
+```java
 Group    Home                 "Tonino"        <house>
 
 Group    FamilyRoom           "Soggiorno"     <parents_2_4>   (Home)
@@ -212,46 +206,45 @@ Group    Elettricita
 Group    Diagnostic
 Group    TermostatoSoggiorno
 
-Switch   tettoia  "Tettoia"  <light>    (Outside)   ["Lighting"]   {autoupdate="false", channel="souliss:t11:105:5-0:onoff"}
-String  tettoia_aggiornamento  "Agg [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]"     <keyring> (Outside, Diagnostic)  {channel="souliss:t31:105:5-0:lastStatusStored"}
+Switch   tettoia                "Tettoia"                                   <light>     (Outside)   ["Lighting"]    {autoupdate="false", channel="souliss:t11:105:5-0:onoff"}
+String   tettoia_aggiornamento  "Agg [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]" <keyring>   (Outside, Diagnostic)       {channel="souliss:t31:105:5-0:lastStatusStored"}
 
-Switch   portoncino         "Portoncino"          <light>         (FamilyRoom)         ["Lighting"]   {autoupdate="false",channel="souliss:t14:105:1-6:pulse"}
-Switch   cancello         "Cancello"          <light>         (FamilyRoom)         ["Lighting"]   {autoupdate="false",channel="souliss:t14:105:1-7:pulse"}
+Switch   portoncino             "Portoncino"            <light>         (FamilyRoom)         ["Lighting"]   {autoupdate="false",channel="souliss:t14:105:1-6:pulse"}
+Switch   cancello               "Cancello"              <light>         (FamilyRoom)         ["Lighting"]   {autoupdate="false",channel="souliss:t14:105:1-7:pulse"}
 
-Number   FamilyRoom_Temperature   "Temperatura [%.1f °C]"   <temperature>  (FamilyRoom)                  {channel="souliss:t31:105:6-0:measured"}
-Number   FamilyRoom_Humidity      "Umidità [%.1f %%]"       <humidity>      (FamilyRoom)                     {channel="souliss:t53:105:6-7:value"}
-String AggiornamentoNodo6      "Agg [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]"     <keyring> (FamilyRoom, Diagnostic)  {channel="souliss:t31:105:6-0:lastStatusStored"}
+Number   FamilyRoom_Temperature   "Temperatura [%.1f °C]"                       <temperature>   (FamilyRoom)              {channel="souliss:t31:105:6-0:measured"}
+Number   FamilyRoom_Humidity      "Umidità [%.1f %%]"                           <humidity>      (FamilyRoom)              {channel="souliss:t53:105:6-7:value"}
+String   AggiornamentoNodo6       "Agg [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]"   <keyring>       (FamilyRoom, Diagnostic)  {channel="souliss:t31:105:6-0:lastStatusStored"}
 
-Number   Consumo      "Consumo [%.1f W]"       <energy>      (FamilyRoom, Elettricita)                     {channel="souliss:t57:105:1-4:value"}
-Number   Fotovoltaico      "Fotovoltaico [%.1f W]"       <energy>      (FamilyRoom, Elettricita)                     {channel="souliss:t57:105:4-0:value"}
-String AggiornamentoNodo1      "Agg.Consumi [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]"     <keyring> (FamilyRoom, Elettricita, Diagnostic)  {channel="souliss:t57:105:1-4:lastStatusStored"}
-String AggiornamentoNodo4      "Agg.Fotovoltaico [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]"        <keyring> (FamilyRoom, Elettricita, Diagnostic)  {channel="souliss:t57:105:4-0:lastStatusStored"}
+Number   Consumo            "Consumo [%.1f W]"                                          <energy>  (FamilyRoom, Elettricita)              {channel="souliss:t57:105:1-4:value"}
+Number   Fotovoltaico       "Fotovoltaico [%.1f W]"                                     <energy>  (FamilyRoom, Elettricita)              {channel="souliss:t57:105:4-0:value"}
+String   AggiornamentoNodo1 "Agg.Consumi [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]"         <keyring> (FamilyRoom, Elettricita, Diagnostic)  {channel="souliss:t57:105:1-4:lastStatusStored"}
+String   AggiornamentoNodo4 "Agg.Fotovoltaico [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]"    <keyring> (FamilyRoom, Elettricita, Diagnostic)  {channel="souliss:t57:105:4-0:lastStatusStored"}
                                   
-Switch divano "Divano" <light> (FamilyRoom, Divano ) ["Switchable"] {autoupdate="false", channel="souliss:t11:105:12-0:onOff"}
-String divano_aggiornamento    "Agg. [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]"    <keyring> (FamilyRoom, Divano, Diagnostic)  {channel="souliss:t57:105:12-0:lastStatusStored"}
-String divano_healthy  "Salute"        <keyring> (FamilyRoom, Divano, Diagnostic)  {channel="souliss:t57:105:12-0:healthy"}
+Switch divano               "Divano"                                        <light> (FamilyRoom, Divano ) ["Switchable"]    {autoupdate="false", channel="souliss:t11:105:12-0:onOff"}
+String divano_aggiornamento "Agg. [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]"    <keyring> (FamilyRoom, Divano, Diagnostic)      {channel="souliss:t57:105:12-0:lastStatusStored"}
+String divano_healthy       "Salute"                                        <keyring> (FamilyRoom, Divano, Diagnostic)      {channel="souliss:t57:105:12-0:healthy"}
 
-Number termostatosoggiorno_temperatura  "Temperatura [%.1f °C]" <temperature> (TermostatoSoggiorno) {channel="souliss:t31:105:6-0:measured"}
-Number termostatosoggiorno_umidita "Umidità [%.1f %%]" <temperature>   (TermostatoSoggiorno)       {channel="souliss:t53:105:6-7:value" }
+Number termostatosoggiorno_temperatura  "Temperatura [%.1f °C]" <temperature>   (TermostatoSoggiorno) {channel="souliss:t31:105:6-0:measured"}
+Number termostatosoggiorno_umidita      "Umidità [%.1f %%]"     <temperature>   (TermostatoSoggiorno) {channel="souliss:t53:105:6-7:value" }
 
 Number termostatosoggiorno_umidita "Umidità" <humidity>   (TermostatoSoggiorno)  {channel="souliss:t53:105:6-7:value" }
 
-Number termostatosoggiorno_temperatura  "Temperatura" <temperature> (TermostatoSoggiorno) {channel="souliss:t31:105:6-0:measured"}
-Number termostatosoggiorno_setpoint "Regola Set Point [%.1f °c]"    <heating> (TermostatoSoggiorno) {autoupdate="false", channel="souliss:t31:105:6-0:sePpoint"}
-Switch termostatosoggiorno_setasmeasured "Set temp. attuale" <heating> (TermostatoSoggiorno)  {channel="souliss:t31:105:6-0:setAsMeasured"}
-String termostatosoggiorno_modo "Modo" (TermostatoSoggiorno) {autoupdate="false", channel="souliss:t31:105:6-0:mode"}
-Switch termostatosoggiorno_power "Termostato" <powerIcon> (TermostatoSoggiorno) {channel="souliss:t31:105:6-0:system"}
-Switch termostatosoggiorno_fire "Fire" <fire> (TermostatoSoggiorno) {channel="souliss:t31:105:6-0:fire"}
-
-Dimmer  TermostatoSoggiorno_displayBright   "Lumin.min. display" (TermostatoSoggiorno)      {channel="souliss:t19:105:6-9" }
-String TermostatoSoggiorno_aggiornamento "Agg.[%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]" <keyring> (TermostatoSoggiorno, Diagnostic)  {channel="souliss:t31:105:6-0:lastStatusStored"}
-Number TermostatoSoggiorno_healthy "Salute" <keyring> (TermostatoSoggiorno, Diagnostic )  {channel="souliss:t31:105:6-0:healthy"}
+Number termostatosoggiorno_temperatura      "Temperatura"                   <temperature>   (TermostatoSoggiorno) {channel="souliss:t31:105:6-0:measured"}
+Number termostatosoggiorno_setpoint         "Regola Set Point [%.1f °c]"    <heating>       (TermostatoSoggiorno) {autoupdate="false", channel="souliss:t31:105:6-0:sePpoint"}
+Switch termostatosoggiorno_setasmeasured    "Set temp. attuale"             <heating>       (TermostatoSoggiorno) {channel="souliss:t31:105:6-0:setAsMeasured"}
+String termostatosoggiorno_modo             "Modo"                                          (TermostatoSoggiorno) {autoupdate="false", channel="souliss:t31:105:6-0:mode"}
+Switch termostatosoggiorno_power            "Termostato"                    <powerIcon>     (TermostatoSoggiorno) {channel="souliss:t31:105:6-0:system"}
+Switch termostatosoggiorno_fire             "Fire"                          <fire>          (TermostatoSoggiorno) {channel="souliss:t31:105:6-0:fire"}
 
+Dimmer  TermostatoSoggiorno_displayBright   "Lumin.min. display"                                    (TermostatoSoggiorno)               {channel="souliss:t19:105:6-9" }
+String TermostatoSoggiorno_aggiornamento    "Agg.[%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]" <keyring>   (TermostatoSoggiorno, Diagnostic)   {channel="souliss:t31:105:6-0:lastStatusStored"}
+Number TermostatoSoggiorno_healthy          "Salute"                                    <keyring>   (TermostatoSoggiorno, Diagnostic )  {channel="souliss:t31:105:6-0:healthy"}
 ```
 
 default.sitemaps:
 
-```
+```perl
 sitemap default label="Tonino" {
     Frame {
         Text label="Rientro casa" icon="light" {
@@ -276,7 +269,7 @@ Frame {
        Group item=Divano icon="light"
 }
 
-Frame label="Temperature"{     
+Frame label="Temperature"{
 
             Text label="Temperatura e umidità" icon="temperature" {
             Default item=FamilyRoom_Temperature label="Temperatura"
@@ -293,10 +286,10 @@ Text label="Termostato soggiorno" icon="temperature" {
             Switch item=termostatosoggiorno_modo label="Heating Mode" mappings=[HEATING_MODE="Set"] 
             Switch item=termostatosoggiorno_power label="Power On/Off"
             Default item=termostatosoggiorno_fire label="Fire"
-               Text item=termostatoSoggiorno_aggiornamento label="Aggiornato: [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]" icon="icon16x16"
+            Text item=termostatoSoggiorno_aggiornamento label="Aggiornato: [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]" icon="icon16x16"
             Default item=termostatoSoggiorno_healthy
-               Slider item=termostatoSoggiorno_displayBright
-       }               
+            Slider item=termostatoSoggiorno_displayBright
+   }
  }
 }
 ```
@@ -311,7 +304,7 @@ English Group, [here](https://groups.google.com/forum/#!forum/souliss)
 
 Italian Group, [here](https://groups.google.com/forum/#!forum/souliss-it)
 
-Spanish Group, [here] (https://groups.google.com/forum/#!forum/souliss-es)
+Spanish Group, [here](https://groups.google.com/forum/#!forum/souliss-es)
 
 ## Contribution
 
index 446b370c75240ef7179ea415a7d626bae2a2d0ad..95ce1aa7d3238f4b7027cd6073eccc320e93069d 100644 (file)
@@ -47,19 +47,18 @@ You can force reinitialization by authorizing on the connect Spotify page, even
 
 The following configuration options are available on the Spotify Bridge player:
 
-| Parameter     | Description                                                                                                                                                   |
-|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| clientId      | This is the Client ID provided by Spotify when you add a new Application for openHAB to your Spotify Account. Go to https://developer.spotify.com/ (Required) |
-| clientSecret  | This is the Client Secret provided by Spotify when you add a new Application for openHAB to your Spotify Account.   (Required)                                |
-| refreshPeriod | This is the frequency of the polling requests to the Spotify Connect Web API in seconds.                                                                      |
+| Parameter     | Description                                                                                                                                                     |
+| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| clientId      | This is the Client ID provided by Spotify when you add a new Application for openHAB to your Spotify Account. Go to <https://developer.spotify.com/> (Required) |
+| clientSecret  | This is the Client Secret provided by Spotify when you add a new Application for openHAB to your Spotify Account.   (Required)                                  |
+| refreshPeriod | This is the frequency of the polling requests to the Spotify Connect Web API in seconds.                                                                        |
 
 The following configuration option is available on the Spotify device:
 
 | Parameter  | Description                                             |
-|------------|---------------------------------------------------------|
+| ---------- | ------------------------------------------------------- |
 | deviceName | This is the device name provided by Spotify (Required). |
 
-
 ## Supported Things
 
 All Spotify Connect capable devices should be discoverable through this binding.
@@ -88,49 +87,49 @@ It only knows about a device if your account is currently associated with the de
 
 The channels on the bridge are the ones used to both control the active device and get details of currently playing music on the Spotify Account associated with the bridge.
 
-__Common Channels:__
-
-| Channel Type ID | Item Type | Read/Write | Description                                                                                      |
-|-----------------|-----------|------------|--------------------------------------------------------------------------------------------------|
-| deviceName      | String    | Read-write | Name of the currently active Connect Device,                                                     |
-| devices         | Selection | Read-write | List of currently active Connect Devices, Set the device ID to transfer play to that device.     |
-| deviceVolume    | Dimmer    | Read-write | Get or set the active Connect Device volume.                                                     |
-| deviceShuffle   | Switch    | Read-write | Turn on/off shuffle play on the active device.                                                   |
-| trackPlay       | String    | Read-write | Set which music  to play on the active device. This channel accepts Spotify URIs and URLs.       |
-| trackPlayer     | Player    | Read-write | The Player Control of the active device. Accepts PLAY/PAUSE/NEXT/PREVIOUS commands.              |
-| trackRepeat     | String    | Read-only  | `track` repeats the current track. `context` repeats the current context. `off` turns repeat off.|
-| trackName       | String    | Read-only  | The name of the currently playing track.                                                         |
-| trackDuration   | String    | Read-only  | The duration (m:ss) of the currently playing track. This is updated every second.                |
-| trackDurationMs | Number    | Read-only  | The duration of the currently playing track in milliseconds.                                     |
-| trackProgress   | String    | Read-only  | The progress (m:ss) of the currently playing track. This is updated every second.                |
-| trackProgressMs | Number    | Read-only  | The progress of the currently playing track in milliseconds.                                     |
-| playlists       | Selection | Read-write | This channel will be populated with the users playlists. Set the playlist ID to start.           |
-| playlistName    | String    | Read-write | The currently playing playlist. Or empty if no playing list is playing.                          |
-| albumName       | String    | Read-only  | Album Name of the currently playing track.                                                       |
-| albumImage      | RawType   | Read-only  | Album Image of the currently playing track.                                                      |
-| albumImageUrl   | String    | Read-only  | Url to the album Image of the currently playing track.                                           |
-| artistName      | String    | Read-only  | Artist Name of the currently playing track.                                                      |
+**Common Channels:**
+
+| Channel Type ID | Item Type | Read/Write | Description                                                                                       |
+| --------------- | --------- | ---------- | ------------------------------------------------------------------------------------------------- |
+| deviceName      | String    | Read-write | Name of the currently active Connect Device,                                                      |
+| devices         | Selection | Read-write | List of currently active Connect Devices, Set the device ID to transfer play to that device.      |
+| deviceVolume    | Dimmer    | Read-write | Get or set the active Connect Device volume.                                                      |
+| deviceShuffle   | Switch    | Read-write | Turn on/off shuffle play on the active device.                                                    |
+| trackPlay       | String    | Read-write | Set which music  to play on the active device. This channel accepts Spotify URIs and URLs.        |
+| trackPlayer     | Player    | Read-write | The Player Control of the active device. Accepts PLAY/PAUSE/NEXT/PREVIOUS commands.               |
+| trackRepeat     | String    | Read-only  | `track` repeats the current track. `context` repeats the current context. `off` turns repeat off. |
+| trackName       | String    | Read-only  | The name of the currently playing track.                                                          |
+| trackDuration   | String    | Read-only  | The duration (m:ss) of the currently playing track. This is updated every second.                 |
+| trackDurationMs | Number    | Read-only  | The duration of the currently playing track in milliseconds.                                      |
+| trackProgress   | String    | Read-only  | The progress (m:ss) of the currently playing track. This is updated every second.                 |
+| trackProgressMs | Number    | Read-only  | The progress of the currently playing track in milliseconds.                                      |
+| playlists       | Selection | Read-write | This channel will be populated with the users playlists. Set the playlist ID to start.            |
+| playlistName    | String    | Read-write | The currently playing playlist. Or empty if no playing list is playing.                           |
+| albumName       | String    | Read-only  | Album Name of the currently playing track.                                                        |
+| albumImage      | RawType   | Read-only  | Album Image of the currently playing track.                                                       |
+| albumImageUrl   | String    | Read-only  | Url to the album Image of the currently playing track.                                            |
+| artistName      | String    | Read-only  | Artist Name of the currently playing track.                                                       |
 
 The `playlists` channel has 2 parameters:
 
 | Parameter | Description                                                                |
-|-----------|----------------------------------------------------------------------------|
+| --------- | -------------------------------------------------------------------------- |
 | offset    | The index of the first playlist to return. Default `0`, max `100.000`      |
 | limit     | The maximum number of playlists to return. Default `20`, min `1`, max `50` |
 
 The `albumImage` and `albumImageUrl` channels has 1 parameter:
 
 | Parameter  | Description                                                                                |
-|------------|--------------------------------------------------------------------------------------------|
+| ---------- | ------------------------------------------------------------------------------------------ |
 | imageIndex | Index in list of to select size of the image to show. 0:large (default), 1:medium, 2:small |
 
 Note: The `deviceName` and `playlist` channels are Selection channels.
 They are dynamically populated by the binding with the user specific devices and playlists.
 
-__Advanced Channels:__
+**Advanced Channels:**
 
 | Channel Type ID | Item Type | Read/Write | Description                                                 |
-|-----------------|-----------|------------|-------------------------------------------------------------|
+| --------------- | --------- | ---------- | ----------------------------------------------------------- |
 | accessToken     | String    | Read-only  | The current accessToken used in communication with Web API. |
 | deviceId        | String    | Read-write | The Spotify Connect device Id.                              |
 | trackId         | String    | Read-only  | Track Id of the currently playing track.                    |
@@ -157,20 +156,20 @@ The difference between these overlapping channels are that the device channels a
 E.g. if you assign a playlist to the _trackPlay_ channel of the device, the playing of that playlist will be activated on that particular device.
 Assigning a playlist to the _trackPlay_ channel of the bridge will start playing the list on whatever device is active.
 
-__Common Channels:__
+**Common Channels:**
 
 | Channel Type ID | Item Type | Read/Write | Description                                                     |
-|-----------------|-----------|------------|-----------------------------------------------------------------|
+| --------------- | --------- | ---------- | --------------------------------------------------------------- |
 | trackPlay       | String    | Write-only | Update to play a track, playlist, artist. Activates the device. |
 | deviceName      | String    | Read-only  | Name of the device.                                             |
 | deviceVolume    | Dimmer    | Read-write | Volume setting for the device.                                  |
 | devicePlayer    | Player    | Read-write | Player Control of the device.                                   |
 | deviceShuffle   | Switch    | Read-write | Turn on/off shuffle play.                                       |
 
-__Advanced Channels:__
+**Advanced Channels:**
 
 | Channel Type ID  | Item Type | Read/Write | Description                                                                                                |
-|------------------|-----------|------------|------------------------------------------------------------------------------------------------------------|
+| ---------------- | --------- | ---------- | ---------------------------------------------------------------------------------------------------------- |
 | deviceId         | String    | Read-write | The Spotify Connect device Id.                                                                             |
 | deviceType       | String    | Read-only  | The type of device e.g. Speaker, Smartphone.                                                               |
 | deviceActive     | Switch    | Read-only  | Indicates if the device is active or not. Should be the same as Thing status ONLINE/OFFLINE.               |
@@ -181,21 +180,20 @@ __Advanced Channels:__
 The bridge supports an action to play a track or other context uri.
 The following actions are supported:
 
-```
+```java
 play(String context_uri)
 play(String context_uri, int offset, int position_ms)
 play(String context_uri, String device_id)
 play(String context_uri, String device_id, int offset, int position_ms)
 ```
 
-
 ## Full Example
 
-In this example there is a bridge configured with Thing ID __user1__ and illustrating that the bridge is authorized to play in the context of the Spotify user account __user1__.
+In this example there is a bridge configured with Thing ID **user1** and illustrating that the bridge is authorized to play in the context of the Spotify user account **user1**.
 
 spotify.things:
 
-```
+```java
 Bridge spotify:player:user1 "Me" [clientId="<your client id>", clientSecret="<your client secret>"] {
   Things:
     device device1 "Device 1" [deviceName="<spotify device name>"]
@@ -208,7 +206,7 @@ Bridge spotify:player:user1 "Me" [clientId="<your client id>", clientSecret="<yo
 
 spotify.items:
 
-```
+```java
 Player spotifyTrackPlayer    "Player"               {channel="spotify:player:user1:trackPlayer"}
 String spotifyDevices        "Active device [%s]"   {channel="spotify:player:user1:devices"}
 Switch spotifyDeviceShuffle  "Shuffle mode"         {channel="spotify:player:user1:deviceShuffle"}
@@ -235,7 +233,7 @@ Switch device2DeviceShuffle {channel="spotify:device:user1:device2:deviceShuffle
 
 spotify.sitemap:
 
-```
+```perl
 sitemap spotify label="Spotify Sitemap" {
 
   Frame label="Spotify Player Info" {
@@ -270,7 +268,7 @@ sitemap spotify label="Spotify Sitemap" {
 
 spotify.rules
 
-```
+```java
 val spotifyActions = getActions("spotify", "spotify:player:user1")
 // play the song
 spotifyActions.play("spotify:track:4cOdK2wGLETKBW3PvgPWqT")
index 147c88c9e5e984232d8d7e31ba67f1bf130c0a09..6f147252b27c96fdab6d6eb69b4248f04d5a8442 100644 (file)
@@ -27,17 +27,18 @@ Squeeze players may be official Logitech products or other players like [Squeeze
 A Squeeze Server is discovered through UPnP in the local network.
 Once it is added as a Thing the Squeeze Server bridge will discover Squeeze Players automatically.
 If your Squeeze Server is not discovered automatically, you can add it manually by creating a .thing file containing something like this (more example [below](https://www.openhab.org/addons/bindings/squeezebox/#thing-configuration)):
-```
+
+```java
 Bridge squeezebox:squeezeboxserver:myServer [ ipAddress="192.168.1.10", webport=9000, cliport=9090 ]
-````
+```
 
 ## Binding Configuration
 
 The binding has the following configuration options, which can be set for "binding:squeezebox":
 
-| Parameter   | Name             | Description                                                              | Required |
-|-------------|------------------|--------------------------------------------------------------------------|----------|
-| callbackUrl | Callback URL     | URL to use for playing notification sounds, e.g. http://192.168.0.2:8080 | no       |
+| Parameter   | Name         | Description                                                                | Required |
+| ----------- | ------------ | -------------------------------------------------------------------------- | -------- |
+| callbackUrl | Callback URL | URL to use for playing notification sounds, e.g. `http://192.168.0.2:8080` | no       |
 
 When a SqueezeBox is used as an audio sink, the SqueezeBox player connects to openHAB to get the audio stream.
 By default, the binding sends the SqueezeBox the URL for getting the audio stream based on the Primary
@@ -56,7 +57,7 @@ A notification volume can be optionally specified, which, if provided, will over
 
 Here are some examples of how to define the Squeeze Server and Player things in a things file.
 
-```
+```java
 Bridge squeezebox:squeezeboxserver:myServer [ ipAddress="192.168.1.10", webport=9000, cliport=9090 ]
 {
     Thing squeezeboxplayer myplayer[ mac="00:f1:bb:00:00:f1" ]
@@ -65,7 +66,7 @@ Bridge squeezebox:squeezeboxserver:myServer [ ipAddress="192.168.1.10", webport=
 
 If Squeeze Server authentication is enabled, the user ID and password can be specified for the Squeeze Server:
 
-```
+```java
 Bridge squeezebox:squeezeboxserver:myServer [ ipAddress="192.168.1.10", webport=9000, cliport=9090, userId="yourid", password="yourpassword" ]
 {
     Thing squeezeboxplayer myplayer[ mac="00:f1:bb:00:00:f1" ]
@@ -74,7 +75,7 @@ Bridge squeezebox:squeezeboxserver:myServer [ ipAddress="192.168.1.10", webport=
 
 The notification timeout and/or notification volume can be specified for the Squeeze Player:
 
-```
+```java
 Bridge squeezebox:squeezeboxserver:myServer [ ipAddress="192.168.1.10", webport=9000, cliport=9090 ]
 {
     Thing squeezeboxplayer myplayer[ mac="00:f1:bb:00:00:f1", notificationTimeout=30, notificationVolume=35 ]
@@ -85,47 +86,47 @@ Bridge squeezebox:squeezeboxserver:myServer [ ipAddress="192.168.1.10", webport=
 
 The Squeezebox server supports the following channel:
 
-| Channel Type ID         | Item Type | Description                                                                            |
-|-------------------------|-----------|----------------------------------------------------------------------------------------|
-| favoritesList           | String    | Comma-separated list of favorite IDs & names, updated whenever list changes on server  |
+| Channel Type ID | Item Type | Description                                                                           |
+| --------------- | --------- | ------------------------------------------------------------------------------------- |
+| favoritesList   | String    | Comma-separated list of favorite IDs & names, updated whenever list changes on server |
 
 ## Player Channels
 
 All devices support some of the following channels:
 
-| Channel Type ID         | Item Type | Description                                                                            |
-|-------------------------|-----------|----------------------------------------------------------------------------------------|
-| power                   | Switch    | Power on/off your device                                                               |
-| mute                    | Switch    | Mute/unmute your device                                                                |
-| volume                  | Dimmer    | Volume of your device                                                                  |
-| stop                    | Switch    | Stop the current title                                                                 |
-| control                 | Player    | Control the Zone Player, e.g.  play/pause/next/previous/ffward/rewind                  |
-| stream                  | String    | Play the given HTTP or file stream (file:// or http://)                                |
-| source                  | String    | Shows the source of the currently playing playlist entry. (i.e. http://radio.org/radio.mp3 |
-| sync                    | String    | Add another player to your device for synchronized playback (other player mac address) |
-| playListIndex           | Number    | Playlist Index                                                                         |
-| currentPlayingTime      | Number    | Current Playing Time                                                                   |
-| duration                | Number    | Duration of currently playing track (in seconds)                                       |
-| currentPlaylistShuffle  | Number    | Current playlist shuffle mode (0 No Shuffle, 1 Shuffle Songs, 2 Shuffle Albums)        |
-| currentPlaylistRepeat   | Number    | Current playlist repeat Mode (0 No Repeat, 1 Repeat Song, 2 Repeat Playlist)           |
-| title                   | String    | Title of the current song                                                              |
-| remotetitle             | String    | Remote Title (Radio) of the current song                                               |
-| album                   | String    | Album name of the current song                                                         |
-| artist                  | String    | Artist name of the current song                                                        |
-| year                    | String    | Release year of the current song                                                       |
-| genre                   | String    | Genre name of the current song                                                         |
-| coverartdata            | Image     | Image data of cover art of the current song                                            |
-| ircode                  | String    | Received IR code                                                                       |
-| numberPlaylistTracks    | Number    | Number of playlist tracks                                                              |
-| playFavorite            | String    | ID of Favorite to play (channel's state options contains available favorites)          |
-| rate                    | Switch    | "Like" or "unlike" the currently playing song (if supported by the streaming service)  |
-| sleep                   | Number    | Power off the player in the specified number of minutes. Sending 0 cancels the timer   |
+| Channel Type ID        | Item Type | Description                                                                                  |
+| ---------------------- | --------- | -------------------------------------------------------------------------------------------- |
+| power                  | Switch    | Power on/off your device                                                                     |
+| mute                   | Switch    | Mute/unmute your device                                                                      |
+| volume                 | Dimmer    | Volume of your device                                                                        |
+| stop                   | Switch    | Stop the current title                                                                       |
+| control                | Player    | Control the Zone Player, e.g.  play/pause/next/previous/ffward/rewind                        |
+| stream                 | String    | Play the given HTTP or file stream (file:// or http://)                                      |
+| source                 | String    | Shows the source of the currently playing playlist entry. (i.e. `http://radio.org/radio.mp3` |
+| sync                   | String    | Add another player to your device for synchronized playback (other player mac address)       |
+| playListIndex          | Number    | Playlist Index                                                                               |
+| currentPlayingTime     | Number    | Current Playing Time                                                                         |
+| duration               | Number    | Duration of currently playing track (in seconds)                                             |
+| currentPlaylistShuffle | Number    | Current playlist shuffle mode (0 No Shuffle, 1 Shuffle Songs, 2 Shuffle Albums)              |
+| currentPlaylistRepeat  | Number    | Current playlist repeat Mode (0 No Repeat, 1 Repeat Song, 2 Repeat Playlist)                 |
+| title                  | String    | Title of the current song                                                                    |
+| remotetitle            | String    | Remote Title (Radio) of the current song                                                     |
+| album                  | String    | Album name of the current song                                                               |
+| artist                 | String    | Artist name of the current song                                                              |
+| year                   | String    | Release year of the current song                                                             |
+| genre                  | String    | Genre name of the current song                                                               |
+| coverartdata           | Image     | Image data of cover art of the current song                                                  |
+| ircode                 | String    | Received IR code                                                                             |
+| numberPlaylistTracks   | Number    | Number of playlist tracks                                                                    |
+| playFavorite           | String    | ID of Favorite to play (channel's state options contains available favorites)                |
+| rate                   | Switch    | "Like" or "unlike" the currently playing song (if supported by the streaming service)        |
+| sleep                  | Number    | Power off the player in the specified number of minutes. Sending 0 cancels the timer         |
 
 ## Example .Items File
 
 Add the items you want to use to an .items file, for example:
 
-```
+```java
 Switch YourPlayer_Power    "Squeezebox Power"  {channel="squeezebox:squeezeboxplayer:736549a3:00042016e7a0:power"}
 Dimmer YourPlayer_Volume   "Squeezebox Volume" {channel="squeezebox:squeezeboxplayer:736549a3:00042016e7a0:volume"}
 Image  YourPlayer_AlbumArt "Squeezebox Cover"  {channel="squeezebox:squeezeboxplayer:736549a3:00042016e7a0:coverartdata"}
@@ -133,7 +134,7 @@ Image  YourPlayer_AlbumArt "Squeezebox Cover"  {channel="squeezebox:squeezeboxpl
 
 ## Playing Favorites
 
-Using the **playFavorite** channel, you can play a favorite from the *Favorites* list on the Logitech Media Server (LMS).
+Using the **playFavorite** channel, you can play a favorite from the _Favorites_ list on the Logitech Media Server (LMS).
 The favorites from the LMS will be populated into the state options of the **playFavorite** channel.
 The Selection widget in HABpanel can be used to present the favorites as a choice list.
 Selecting from that choice list will play the favorite on the SqueezeBox player.
@@ -141,36 +142,29 @@ Currently, only favorites from the root level of the LMS favorites list are expo
 
 ### How to Set Up Favorites
 
--   Add some favorites to your favorites list in LMS (local music playlists, Pandora, Slacker, Internet radio, etc.).
-Keep all favorites at the root level (i.e. favorites in sub-folders will be ignored).
-
--   If you're on an older openHAB build, you may need to delete and re-add your squeezebox server and player things to pick up the new channels.
-
--   Create a new item on each player
+- Add some favorites to your favorites list in LMS (local music playlists, Pandora, Slacker, Internet radio, etc.).
+    Keep all favorites at the root level (i.e. favorites in sub-folders will be ignored).
+- If you're on an older openHAB build, you may need to delete and re-add your squeezebox server and player things to pick up the new channels.
+- Create a new item on each player
 
-```
+```java
 String YourPlayer_PlayFavorite "Play Favorite [%s]" { channel="squeezebox:squeezeboxplayer:736549a3:00042016e7a0:playFavorite" }
 ```
 
 #### For HABpanel (do this for each player)
 
--   Add a Selection widget to your dashboard
-
--   In the Selection widget settings
-
-    -  Enter the **YourPlayer_PlayFavorite** item
-
-    -  Select *Choices source* of *Server-provided item options*
-
-    -  Modify other settings to suite your taste
-
--   When you load the dashboard and click on the selection widget, you should see the favorites. Selecting a favorite from the list will play it.
+- Add a Selection widget to your dashboard
+- In the Selection widget settings
+  - Enter the **YourPlayer_PlayFavorite** item
+  - Select _Choices source_ of _Server-provided item options_
+  - Modify other settings to suite your taste
+- When you load the dashboard and click on the selection widget, you should see the favorites. Selecting a favorite from the list will play it.
 
 #### For Sitemap
 
--   To use state options on the playFavorite channel, simply omit the *mappings* from the Selection widget.
+- To use state options on the playFavorite channel, simply omit the _mappings_ from the Selection widget.
 
-```
+```java
 Selection item=YourPlayer_PlayFavorite label="Play Favorite"
 ```
 
@@ -187,7 +181,7 @@ You can override the default notification volume by supplying it as a parameter
 
 You can play notifications from within rules.
 
-```
+```java
 rule "Garage Door Open Notification"
 when
     Item GarageDoorOpenNotification received command ON
@@ -201,7 +195,7 @@ end
 
 And, you can play sounds from the `conf/sounds` directory.
 
-```
+```java
 rule "Play Sounds"
 when
     Item PlaySounds received command ON
@@ -216,25 +210,21 @@ end
 ## Rating Songs
 
 Some streaming services, such as Pandora and Slacker, all songs to be rated.
-When playing from these streaming services, sending commands to the `rate` channel can be used to *like* or *unlike* the currently playing song.
-Sending the ON command will *like* the song.
-Sending the OFF command will *unlike* the song.
+When playing from these streaming services, sending commands to the `rate` channel can be used to _like_ or _unlike_ the currently playing song.
+Sending the ON command will _like_ the song.
+Sending the OFF command will _unlike_ the song.
 If the streaming service doesn't support rating, sending commands to the `rate` channel has no effect.
 
 ### Known Issues
 
--   There are some versions of squeezelite that will not correctly play very short duration mp3 files.
-Versions of squeezelite after v1.7 and before v1.8.6 will not play very short duration mp3 files reliably.
-For example, if you're using piCorePlayer (which uses squeezelite), please check your version of squeezelite if you're having trouble playing notifications.
-This bug has been fixed in squeezelite version 1.8.6-985, which is included in piCorePlayer version 3.20.
-
--   When streaming from a remote service (such as Pandora or Spotify), after the notification plays, the Squeezebox Server starts playing a new track, instead of picking up from where it left off on the currently playing track.
-
--   There have been reports that notifications do not play reliably, or do not play at all, when using Logitech Media Server (LMS) version 7.7.5.
-Therefore, it is recommended that the LMS be on a more current version than 7.7.5.
-
--   There have been reports that the LMS does not play some WAV files reliably. If you're using a TTS service that produces WAV files, and the notifications are not playing, try using an MP3-formatted TTS notification.
-This issue reportedly was [fixed in the LMS](https://github.com/Logitech/slimserver/issues/307) by accepting additional MIME types for WAV files.
-
--   The LMS treats player MAC addresses as case-sensitive.
-Therefore, the case of MAC addresses in the Squeeze Player thing configuration must match the case displayed on the *Information* tab in the LMS Settings.
+- There are some versions of squeezelite that will not correctly play very short duration mp3 files.
+    Versions of squeezelite after v1.7 and before v1.8.6 will not play very short duration mp3 files reliably.
+    For example, if you're using piCorePlayer (which uses squeezelite), please check your version of squeezelite if you're having trouble playing notifications.
+    This bug has been fixed in squeezelite version 1.8.6-985, which is included in piCorePlayer version 3.20.
+- When streaming from a remote service (such as Pandora or Spotify), after the notification plays, the Squeezebox Server starts playing a new track, instead of picking up from where it left off on the currently playing track.
+- There have been reports that notifications do not play reliably, or do not play at all, when using Logitech Media Server (LMS) version 7.7.5.
+    Therefore, it is recommended that the LMS be on a more current version than 7.7.5.
+- There have been reports that the LMS does not play some WAV files reliably. If you're using a TTS service that produces WAV files, and the notifications are not playing, try using an MP3-formatted TTS notification.
+    This issue reportedly was [fixed in the LMS](https://github.com/Logitech/slimserver/issues/307) by accepting additional MIME types for WAV files.
+- The LMS treats player MAC addresses as case-sensitive.
+    Therefore, the case of MAC addresses in the Squeeze Player thing configuration must match the case displayed on the _Information_ tab in the LMS Settings.
index 04e93b1a998f01aa65bf7621888b6e05546410d9..c27f3a97f245cab82a38fed56696a7c15dc9dea4 100644 (file)
@@ -2,25 +2,25 @@
 
 This binding offers integration to the Sure Petcare API, supporting cloud-connected cat flaps and feeders.
 
-### Features
+## Features
 
 1. Read access to all attributes for households, devices (hubs, flaps) and pets through individual things/channels.
-2. Manual setting of pet location.
-3. Setting of LED Mode (hub), Locking Mode (flaps) and Curfews.
+1. Manual setting of pet location.
+1. Setting of LED Mode (hub), Locking Mode (flaps) and Curfews.
 
 ### Restrictions / TODO
 
 1. The Sure Petcare API is not publicly available and this binding has been based on observed interactions between their mobile phone app and the cloud API.
    If the Sure Petcare API changes, this binding might stop working.
-2. The current version of the binding supports only cat/pet flaps. Feeders are not yet supported as I don't own one yet.
+1. The current version of the binding supports only cat/pet flaps. Feeders are not yet supported as I don't own one yet.
 
 ### Credits
 
 The binding code is based on a lot of work done by other developers:
 
-- Holger Eisold (https://github.com/HerzScheisse) - Python use in openHAB and various PRs (https://github.com/HerzScheisse/SurePetcare-openHAB-JSR223-Rules)
-- Alex Toft (https://github.com/alextoft) - PHP implementation (https://github.com/alextoft/sureflap)
-- rcastberg (https://github.com/rcastberg) - Python implementation (https://github.com/rcastberg/sure_petcare)
+- Holger Eisold (<https://github.com/HerzScheisse>) - Python use in openHAB and various PRs (<https://github.com/HerzScheisse/SurePetcare-openHAB-JSR223-Rules>)
+- Alex Toft (<https://github.com/alextoft>) - PHP implementation (<https://github.com/alextoft/sureflap>)
+- rcastberg (<https://github.com/rcastberg>) - Python implementation (<https://github.com/rcastberg/sure_petcare>)
 
 ## Supported Things
 
@@ -152,7 +152,7 @@ Channel names in **bold** are read/write, everything else is read-only
 
 ### Things configuration
 
-```
+```java
 Bridge surepetcare:bridge:bridge1 "Demo API Bridge" @ "SurePetcare" [ username="<USERNAME>", password="<PASSWORD>", refreshIntervalTopology=36000, refreshIntervalStatus=300 ]
 {
   Thing household     12345  "My Household" @ "SurePetcare"
@@ -165,7 +165,7 @@ Bridge surepetcare:bridge:bridge1 "Demo API Bridge" @ "SurePetcare" [ username="
 
 ### Items configuration
 
-```
+```java
 /* *****************************************
  * Bridge
  * *****************************************/
@@ -228,7 +228,7 @@ String      UR_1e_Species           "Pet Species [%s]"                      (dgP
 Image       UR_1e_Photo             "Pet Photo"                             (dgPet) {channel="surepetcare:pet:bridge1:12345:photo"}
 String      UR_1e_TagIdentifier     "Pet Tag Identifier [%s]"               (dgPet) {channel="surepetcare:pet:bridge1:12345:tagIdentifier"}
 String      UR_1e_Location          "Pet Location [%s]"                     (dgPet) {channel="surepetcare:pet:bridge1:12345:location"}
-String      UR_1e_LocationTimeoffset"Pet Switch Location [%s]"              (gCats)    {channel="surepetcare:pet:bridge1:20584:locationTimeoffset"}
+String      UR_1e_LocationTimeoffset"Pet Switch Location [%s]"              (gCats) {channel="surepetcare:pet:bridge1:20584:locationTimeoffset"}
 DateTime    UR_1e_LocationChanged   "Pet Loc. Updated [%1$ta. %1$tH:%1$tM]" (dgPet) {channel="surepetcare:pet:bridge1:12345:locationChanged"}
 String      UR_1e_LocationThrough   "Pet Entered / Left through [%s]"       (dgPet) {channel="surepetcare:pet:bridge1:12345:locationChangedThrough"}
 Number:Mass UR_1e_Weight            "Pet Weight [%.1f %unit%]"              (dgPet) {channel="surepetcare:pet:bridge1:12345:weight"}
@@ -265,7 +265,7 @@ Number      UR_1f_HubRSSI               "Feeder Hub Signal [%.2f dB]"
 
 ### Sitemap Configuration
 
-```
+```perl
 sitemap surepetcare label="My home automation" {
   Frame label="Bridge" {
     Text item=UR_1a_Online valuecolor=[ON="green", OFF="red"]
@@ -362,24 +362,23 @@ Please Note: the location for each pet gets updated only if the current location
 This can be very useful if you have alot of pets that often enter the home by any window/door.
 Your .items file should contain this:
 
-```
-Group:String:OR(1,2)   gLocation               "Cats inside [%d]"                                                              
-String                                 UR_1e_Location  "Pet Location [%s]"             (dgPet, gLocation)              {channel="surepetcare:pet:bridge1:12345:location"}
+```java
+Group:String:OR(1,2)  gLocation      "Cats inside [%d]"
+String                UR_1e_Location "Pet Location [%s]"  (dgPet, gLocation)  {channel="surepetcare:pet:bridge1:12345:location"}
 ```
 
 And your .sitemap file could look like this:
 
-```
+```perl
 Frame label="Group Pet/Cats items" {
   Selection item=gLocation label="Set ALL cats to:" mappings=[1="Inside", 2="Outside"] icon="text"
   Switch item=gLocation label="Set ALL cats to: []" mappings=[1="Inside", 2="Outside"]
   Group item=gLocation
 }
 ```
+
 ## Troubleshooting
 
 | Problem                                     | Solution                                                                            |
 |---------------------------------------------|-------------------------------------------------------------------------------------|
 | Bridge cannot connect to Sure Petcare API    | Check if you can logon to the Sure Petcare app with the given username/password.    |
-
index f87559182d030ba694cc9ab0d2c4e718c2bff3d6..bd2dfec94d0b6827142efcb4e94291a69f9ee32e 100644 (file)
@@ -15,13 +15,11 @@ There is exactly one supported thing, which represents a Synop message. It has t
 If a system location is set, the nearest available Synop station be automatically discovered for this location.
 The search radius will expand at each successive scan.
 
-
 ## Thing Configuration
 
 Besides the Synop Station Number (as ```synopID``` as a [StationID](https://www.ogimet.com/gsynop_nav.phtml.en) string), the second configuration parameter is ```refreshInterval``` which defines the refresh interval in minutes.
 Synop message are typically updated every hour.
 
-
 ## Channels
 
 The weather information that is retrieved is available as these channels:
@@ -40,7 +38,7 @@ The weather information that is retrieved is available as these channels:
 | time-utc              | DateTime           | Observation time of the Synop message      |
 | horizontal-visibility | String             | Horizontal visibility range                |
 
-*   ”cloud attenuation factor” (Kc) as defined by Kasten and Czeplak (1980)
+- ”cloud attenuation factor” (Kc) as defined by Kasten and Czeplak (1980)
 
 ## Example
 
@@ -48,13 +46,13 @@ The weather information that is retrieved is available as these channels:
 
 Here is an example of thing definition :
 
-```
+```java
 synopanalyzer:synopanalyzer:orly [ stationId=7149 ]
 ```
 
 ### Items
 
-```
+```java
 Number Synop_Temperature "Temperature [%.1f °C]" <temperature> { channel = "synopanalyzer:synopanalyzer:trappes:temperature" }
 Number Synop_Pressure "Pressure [%.1f mb]" <pressure> { channel = "synopanalyzer:synopanalyzer:trappes:pressure" }
 Number Synop_Wind_Angle "Wind Angle [%d°]" <wind>     { channel = "synopanalyzer:synopanalyzer:trappes:wind-angle"}
index 1d01a923ab3223a93e4f202cc9694dc6ff4d1af5..4731686e4c1d0cfc4b283676406759cfd32c3132 100644 (file)
@@ -2,17 +2,17 @@
 
 The system information binding provides operating system and hardware information including:
 
--   Operating system name, version and manufacturer;
--   CPU average load for last 1, 5, 15 minutes, name, description, number of physical and logical cores, running threads number, system uptime;
--   Free, total and available memory;
--   Free, total and available swap memory;
--   Hard drive name, model and serial number;
--   Free, total, available storage space and storage type (NTSFS, FAT32 ..);
--   Battery information - estimated remaining time, capacity, name;
--   Sensors information - CPU voltage and temperature, fan speeds;
--   Display information;
--   Network IP,name and adapter name, mac, data sent and received, packets sent and received;
--   Process information - size of RAM memory used, CPU load, process name, path, number of threads.
+- Operating system name, version and manufacturer;
+- CPU average load for last 1, 5, 15 minutes, name, description, number of physical and logical cores, running threads number, system uptime;
+- Free, total and available memory;
+- Free, total and available swap memory;
+- Hard drive name, model and serial number;
+- Free, total, available storage space and storage type (NTSFS, FAT32 ..);
+- Battery information - estimated remaining time, capacity, name;
+- Sensors information - CPU voltage and temperature, fan speeds;
+- Display information;
+- Network IP,name and adapter name, mac, data sent and received, packets sent and received;
+- Process information - size of RAM memory used, CPU load, process name, path, number of threads.
 
 The binding uses the [OSHI](https://github.com/oshi/oshi) library to access this information regardless of the underlying OS and hardware.
 
@@ -22,11 +22,11 @@ The binding supports only one thing type - **computer**. This thing represents a
 
 The thing has the following properties:
 
--   `cpu_logicalCores` - Number of CPU logical cores
--   `cpu_physicalCores` - Number of CPU physical cores
--   `os_manufacturer` - The manufacturer of the operating system
--   `os_version` - The version of the operating system
--   `os_family` - The family of the operating system
+- `cpu_logicalCores` - Number of CPU logical cores
+- `cpu_physicalCores` - Number of CPU physical cores
+- `os_manufacturer` - The manufacturer of the operating system
+- `os_version` - The version of the operating system
+- `os_family` - The family of the operating system
 
 If multiple storage or display devices support is needed, a new thing type has to be defined.
 
@@ -42,14 +42,14 @@ The configuration of the Thing gives the user the possibility to update channels
 
 The thing has two configuration parameters:
 
-*   **interval_high** - refresh interval in seconds for channels with 'High' priority configuration. Default value is 1 s.
-*   **interval_medium** - refresh interval in seconds for channels with 'Medium' priority configuration. Default value is 60s.
+- **interval_high** - refresh interval in seconds for channels with 'High' priority configuration. Default value is 1 s.
+- **interval_medium** - refresh interval in seconds for channels with 'Medium' priority configuration. Default value is 60s.
 
 That means that by default configuration:
 
-*   channels with priority set to 'High' are updated every second
-*   channels with priority set to 'Medium' are updated every minute
-*   channels with priority set to 'Low' are updated only at initialization or if the `REFRESH` command is sent to the channel.
+- channels with priority set to 'High' are updated every second
+- channels with priority set to 'Medium' are updated every minute
+- channels with priority set to 'Low' are updated only at initialization or if the `REFRESH` command is sent to the channel.
 
 For more info see [channel configuration](#channel-configuration)
 
@@ -61,39 +61,39 @@ In the list below, you can find, how are channel group and channels id`s related
 
 **thing** `computer`
 
-*   **group** `memory`
-  * **channel** `available, total, used, availablePercent, usedPercent, usedHeapPercent, availableHeap`
-*   **group** `swap`
-  * **channel** `available, total, used, availablePercent, usedPercent`
-*   **group** `storage` (deviceIndex)
-  * **channel** `available, total, used, availablePercent, usedPercent, name, description, type`
-*   **group** `drive` (deviceIndex)
-  * **channel** `name, model, serial`
-*   **group** `display` (deviceIndex)
-  * **channel** `information`
-*   **group** `battery` (deviceIndex)
-  * **channel** `name, remainingCapacity, remainingTime`
-*   **group** `cpu`
-  * **channel** `name, description, load, load1, load5, load15, uptime, threads`
-*   **group** `sensors`
-  * **channel** `cpuTemp, cpuVoltage, fanSpeed`
-*   **group** `network` (deviceIndex)
-  * **channel** `ip, mac, networkDisplayName, networkName, packetsSent, packetsReceived, dataSent, dataReceived`
-*   **group** `currentProcess`
-  * **channel** `load, used, name, threads, path`
-*   **group** `process` (pid)
-  * **channel** `load, used, name, threads, path`
+- **group** `memory`
+  - **channel** `available, total, used, availablePercent, usedPercent, usedHeapPercent, availableHeap`
+- **group** `swap`
+  - **channel** `available, total, used, availablePercent, usedPercent`
+- **group** `storage` (deviceIndex)
+  - **channel** `available, total, used, availablePercent, usedPercent, name, description, type`
+- **group** `drive` (deviceIndex)
+  - **channel** `name, model, serial`
+- **group** `display` (deviceIndex)
+  - **channel** `information`
+- **group** `battery` (deviceIndex)
+  - **channel** `name, remainingCapacity, remainingTime`
+- **group** `cpu`
+  - **channel** `name, description, load, load1, load5, load15, uptime, threads`
+- **group** `sensors`
+  - **channel** `cpuTemp, cpuVoltage, fanSpeed`
+- **group** `network` (deviceIndex)
+  - **channel** `ip, mac, networkDisplayName, networkName, packetsSent, packetsReceived, dataSent, dataReceived`
+- **group** `currentProcess`
+  - **channel** `load, used, name, threads, path`
+- **group** `process` (pid)
+  - **channel** `load, used, name, threads, path`
 
 The groups marked with "(deviceIndex)" may have device index attached to the Channel Group.
 
--   channel ::= channel_group & (deviceIndex) & # channel_id
--   deviceIndex ::= number >= 0
--   (e.g. *storage1#available*)
+- channel ::= channel_group & (deviceIndex) & # channel_id
+- deviceIndex ::= number >= 0
+- (e.g. _storage1#available_)
 
 The `fanSpeed` channel in the `sensors` group may have a device index attached to the Channel.
 
--   channel ::= channel_group & # channel_id & (deviceIndex)
--   deviceIndex ::= number >= 0
+- channel ::= channel_group & # channel_id & (deviceIndex)
+- deviceIndex ::= number >= 0
 
 Channels or channel groups without a trailing index will show the data for the first device (index 0) if multiple exist.
 If only one device for a group exists, no channels or channel groups with indexes will be created.
@@ -154,9 +154,9 @@ The binding will trigger the necessary changes (reduce or increase the refresh t
 Each of the channels has a default configuration parameter - priority.
 It has the following options:
 
--   **High**
--   **Medium**
--   **Low**
+- **High**
+- **Medium**
+- **Low**
 
 The ''load'' channel will update total or by process CPU load at the frequency defined by the priority update interval, by default high priority, every second.
 The value corresponds to the average CPU load over the interval.
@@ -187,13 +187,13 @@ For a general problem with the binding report the issue directly to openHAB.
 
 Things:
 
-```
+```java
 Thing systeminfo:computer:work [interval_high=3, interval_medium=60]
 ```
 
 Items:
 
-```
+```java
 /* Network information*/
 String Network_AdapterName         "Adapter name"        <network>       { channel="systeminfo:computer:work:network#networkDisplayName" }
 String Network_Name                "Name"                <network>       { channel="systeminfo:computer:work:network#networkName" }
@@ -273,7 +273,7 @@ String Process_path                "Path"                <none>          { chann
 
 Sitemap:
 
-```
+```perl
 sitemap systeminfo label="Systeminfo" {
     Frame label="Network Information" {
         Default item=Network_AdapterName