mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-10 07:02:02 +01:00
[Documentation] Markdown improvements n to s (#13948)
Signed-off-by: Jerome Luckenbach <github@luckenba.ch>
This commit is contained in:
parent
d73218d882
commit
1ca9baf157
@ -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
|
||||
|
@ -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"]
|
||||
```
|
||||
|
@ -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
|
||||
|
@ -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="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="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="Contact" {
|
||||
Contact item=Window_Contact_State
|
||||
Switch item=Window_Contact_Battery_Low
|
||||
}
|
||||
|
||||
Frame label="Sensor" {
|
||||
Text item=Kitchen_Temperature
|
||||
}
|
||||
Frame label="Sensor" {
|
||||
Text item=Kitchen_Temperature
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -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" }
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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")
|
||||
|
@ -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"}
|
||||
|
||||
|
@ -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) | |
|
||||
|
@ -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"]
|
||||
```
|
||||
|
@ -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" }
|
||||
|
@ -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
|
||||
|
@ -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]
|
||||
```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.
|
||||
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"{
|
||||
|
@ -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 {
|
||||
|
@ -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" }
|
||||
```
|
||||
|
@ -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]"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
```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
|
||||
[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.
|
||||
|
@ -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
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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" }
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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"
|
||||
```
|
||||
|
||||
|
||||
|
@ -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 {
|
||||
|
@ -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"
|
||||
}
|
||||
|
@ -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).
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
- 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)
|
||||
#### `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"
|
||||
|
@ -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
|
||||
- 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):
|
||||
- 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
|
||||
|
@ -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_
|
||||
### 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" }
|
||||
```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
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
||||
|
@ -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"}
|
||||
|
@ -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
|
||||
```
|
||||
|
||||
|
@ -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.
|
||||
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
|
||||
- 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.
|
||||
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
|
||||
- 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
|
||||
}
|
||||
}
|
||||
```
|
||||
|
@ -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 |
|
||||
|
@ -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
|
||||
|
@ -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" {
|
||||
|
@ -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.
|
||||
|
@ -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"
|
||||
{
|
||||
|
||||
|
@ -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
|
||||
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_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
|
||||
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=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
|
||||
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
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
@ -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"}
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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" }
|
||||
```
|
||||
|
@ -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"]
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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"]
|
||||
|
@ -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"}
|
||||
|
@ -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
|
||||
|
@ -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" ]
|
||||
```
|
||||
|
||||
|
@ -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" }
|
||||
```
|
||||
|
@ -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"
|
||||
|
@ -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"]
|
||||
|
@ -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)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
```
|
||||
```
|
||||
|
@ -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"}
|
||||
|
@ -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
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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 [depending on the controller] 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 [depending on the controller] 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"]
|
||||
|
@ -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" }
|
||||
```
|
||||
|
||||
|
||||
|
@ -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 |
|
||||
|
@ -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)
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
```
|
||||
|
||||
|
@ -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"}
|
||||
|
@ -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 {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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.
|
||||
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 |
|
||||
| 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" {
|
||||
|
@ -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. |
|
||||
|
@ -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" {
|
||||
|
@ -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" }
|
||||
|
@ -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!
|
||||
|
||||
|
@ -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 <thingTypeId> 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 <thingTypeId> 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".
|
||||
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**
|
||||
### 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" }
|
||||
```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**
|
||||
## Full Example
|
||||
|
||||
**things file**
|
||||
### Things File
|
||||
|
||||
colorControl SengledColorControl [ smartthingsName="Sengled Bulb"]
|
||||
colorTemperature SengledColorTemperature [ smartthingsName="Sengled Bulb"]
|
||||
switch SengledSwitch [ smartthingsName="Sengled Bulb"]
|
||||
switchLevel SengledSwitchLevel [ smartthingsName="Sengled Bulb"]
|
||||
```java
|
||||
colorControl SengledColorControl [ smartthingsName="Sengled Bulb"]
|
||||
colorTemperature SengledColorTemperature [ smartthingsName="Sengled Bulb"]
|
||||
switch SengledSwitch [ smartthingsName="Sengled Bulb"]
|
||||
switchLevel SengledSwitchLevel [ smartthingsName="Sengled Bulb"]
|
||||
```
|
||||
|
||||
**items file**
|
||||
|
||||
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**
|
||||
|
||||
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/)
|
||||
|
@ -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
|
||||
|
@ -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" ]
|
||||
}
|
||||
|
@ -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" }
|
||||
|
||||
```
|
||||
|
||||
|
@ -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 {
|
||||
|
@ -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/ **<solarId>** /#/dashboard)
|
||||
Id of your inverter at SolarEdge (can be found in the URL after successful login: <https://monitoring.solaredge.com/solaredge-web/p/site/> **<solarId>** /#/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"}
|
||||
|
@ -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" }`
|
||||
`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
|
||||
| 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).
|
||||
|
@ -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
|
||||
|
@ -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"}
|
||||
|
@ -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" ]
|
||||
}
|
||||
|
@ -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"}
|
||||
```
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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" }
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
```
|
||||
|
@ -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" {
|
||||
|
@ -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
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user