Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Documentation] Markdown improvements t to z #14371

Merged
merged 13 commits into from
Apr 11, 2023
48 changes: 22 additions & 26 deletions bundles/org.openhab.binding.tacmi/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,44 +6,41 @@ Since I only have the new UVR16x2, it has only been tested with this controller.
The binding supports two ways to interact with the C.M.I. and all devices connected to the C.M.I. via the CAN bus.
These modes are:


Via a "Schema API Page"

* Read values from output nodes
* Change values for controllable nodes
- Read values from output nodes
- Change values for controllable nodes

CoE (CAN over Ethernet) Connection

* Receive data from analog CAN-outputs defined in TAPPS2
* Receive data from digital CAN-outputs defined in TAPPS2
* Send ON/OFF to digital CAN-inputs defined in TAPPS2
* Send numeric values to analog CAN-inputs defined in TAPPS2

- Receive data from analog CAN-outputs defined in TAPPS2
- Receive data from digital CAN-outputs defined in TAPPS2
- Send ON/OFF to digital CAN-inputs defined in TAPPS2
- Send numeric values to analog CAN-inputs defined in TAPPS2

Depending on what you want to achieve, either the "Schema API Page" or the CoE way might be better.
As rough guidance: Anything you want to provide to the TA equipment it has to work / operate with the CoE might be better.
If you plan things mainly for user interaction the "Schema API Page" might be better.


## Prerequisites

### Setting up the "Schema API Page"

The "Schema API page" is a special schema page created via TA's *TA-Designer* application available as download on their web site.
The "Schema API page" is a special schema page created via TA's _TA-Designer_ application available as download on their web site.
This page just needs to exist and be deployed on the C.M.I. but it dosn't need to be linked by the other schema pages you are using to control your TA installation.

All objects from this special 'API' page are automatically mapped as channels of this thing, so the labels of the objects on this page have to follow a specific schema.

When adding objects to this page, the schema for the Object's *Pre-Text* field has to follow the schema `<channelName> <channel description>: `.
When adding objects to this page, the schema for the Object's _Pre-Text_ field has to follow the schema `<channelName> <channel description>:`.

Maybe this screenshot shows it best:

![screenshot-channel-object-details](doc/images/channel-object-details.png)

The Text from the *Pre-Text* will be used to define the channel.
The first word *tempCollector* (highlighted in the screenshot) will be used as channel name, so it has to be unique.
Everything else till the final *:* will be used as channel description.
Be sure to have at least 2 words in the *Pre-Text* as we need both - the channel name and a description.
The Text from the _Pre-Text_ will be used to define the channel.
The first word _tempCollector_ (highlighted in the screenshot) will be used as channel name, so it has to be unique.
Everything else till the final _:_ will be used as channel description.
Be sure to have at least 2 words in the _Pre-Text_ as we need both - the channel name and a description.
The binding will log an error otherwise.
Also keep in mind: for the channel name we have to adhere to the openHAB channel name conventions - so just use letters and numbers without any special sings here.
The type of the channel will be automatically determined by the type of the object added.
Expand Down Expand Up @@ -73,19 +70,19 @@ Don’t forget to reboot the CMI after you uploaded the coe.csv file.

## Supported Bridge and Things

* TA C.M.I. schema API connection - Thing
- TA C.M.I. schema API connection - Thing

This thing reflecting one of our 'schema API page' as defined in the prerequisites.
This thing doesn't need the bridge.
Multiple of these pages on different C.M.I.'s could be defined within an openHAB instance.

* TA C.M.I. CoE Bridge
- TA C.M.I. CoE Bridge

In order to get the CAN over Ethernet (COE) envionment working a `coe-bridge` has to be created.
The bridge itself opens the UDP port 5441 for communication with the C.M.I. devices.
The bridge could be used for multiple C.M.I. devices.

* TA C.M.I. CoE Connection - Thing
- TA C.M.I. CoE Connection - Thing

This thing reflects a connection to a node behind a specific C.M.I..
This node could be every CAN-Capable device from TA which allows to define a CAN-Input.
Expand Down Expand Up @@ -141,9 +138,9 @@ The channels have a parameter allowing to configure their update behavior:

The behavior in detail:

* `Default` (`0`): When the channel is 'read-only' the update-policy defaults to _On-Fetch_ . When the channel is linked to something that can be modified it defaults to _On-Change_ .
* `On-Fetch` (`1`): This is the default for read-only values. This means the channel is updated every time the schema page is polled. Ideally for values you want to monitor and log into charts.
* `On-Change` (`2`): When channel values can be changed via OH it is better to only update the channel when the value changes. The binding will cache the previous value and only send an update when it changes to the previous known value. This is especially useful if you intend to link other things (like i.e. Zigbee or Shelly switches) to the TA via OH that can be controlled by different sources. This prevents unintended toggles or even toggle-loops.
- `Default` (`0`): When the channel is 'read-only' the update-policy defaults to _On-Fetch_ . When the channel is linked to something that can be modified it defaults to _On-Change_ .
- `On-Fetch` (`1`): This is the default for read-only values. This means the channel is updated every time the schema page is polled. Ideally for values you want to monitor and log into charts.
- `On-Change` (`2`): When channel values can be changed via OH it is better to only update the channel when the value changes. The binding will cache the previous value and only send an update when it changes to the previous known value. This is especially useful if you intend to link other things (like i.e. Zigbee or Shelly switches) to the TA via OH that can be controlled by different sources. This prevents unintended toggles or even toggle-loops.

### TA C.M.I. CoE Connection

Expand Down Expand Up @@ -207,15 +204,14 @@ The known measure types are:
| 12 | Megawatthours | |
| 13..21 | Unknown | |


## Full Example

As there is no common configuration as everything depends on the configuration of the TA devices.
So we just can provide some samples providing the basics so you can build the configuration matching your system.

Example of a _.thing_ file:

```
```java
Thing tacmi:cmiSchema:apiLab "CMIApiPage"@"lab" [ host="192.168.178.33", username="user", password="secret", schemaId=4 ]
Bridge tacmi:coe-bridge:coe-bridge "TA C.M.I. Bridge"
{
Expand All @@ -233,7 +229,7 @@ Bridge tacmi:coe-bridge:coe-bridge "TA C.M.I. Bridge"

Sample _.items_-File:

```
```java
# APIPage-items
Number TACMI_Api_tempCollector "Collector temp [%.1f °C]" <temperature> {channel="tacmi:cmiSchema:apiLab:tempCollector"}
String TACMI_Api_hc1OperationMode "Heating Curcuit 1 Operation Mode [%s]" {channel="tacmi:cmiSchema:apiLab:hc1OperationMode"}
Expand All @@ -248,7 +244,7 @@ Switch TACMI_Digital_Out_1 "TA output switch 1 [%s]" {channel="tacmi:cmi:coe

Sample _.sitemap_ snipplet

```
```perl
sitemap heatingTA label="heatingTA"
{
Text item=TACMI_Api_tempCollector
Expand All @@ -269,7 +265,7 @@ You might already have noticed that some state information is in German.
As I have set the `Accept-Language`-Http-Header to `en` for all request and found no other way setting a language for the schema pages I assume it is a lack of internationalization in the C.M.I.
You could circumvent this by creating map files to map things properly to your language.

If you want to see the possible options of a multi-state field you could open the *schema API page* with your web browser and click on the object.
If you want to see the possible options of a multi-state field you could open the _schema API page_ with your web browser and click on the object.
A Popup with an option field will be shown showing all possible options, like in this screenshot:

![screenshot-operation-mode-values](doc/images/operation-mode-values.png)
Expand Down
21 changes: 10 additions & 11 deletions bundles/org.openhab.binding.tado/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,9 @@ Parameter | Required | Description
`username` | yes | Username used to log in at [my.tado](https://my.tado.com)
`password` | yes | Password of the username


Example `tado.things`

```
```java
Bridge tado:home:demo [ username="[email protected]", password="secret" ]
```

Expand All @@ -32,7 +31,7 @@ Name | Type | Description | Read/Write

## `zone` Thing

A *zone* is an area/room of your home.
A _zone_ is an area/room of your home.
You have defined them during installation.
One zone relates to one page in the tado° mobile- or webapp.

Expand All @@ -46,7 +45,7 @@ Zones can either be added through discovery or manually. Following up on the abo

Example `tado.things`

```
```java
Bridge tado:home:demo [ username="[email protected]", password="secret" ] {
zone heating [id=1]
zone ac [id=2]
Expand Down Expand Up @@ -121,7 +120,7 @@ If parts of the setting are missing, then the currently active zone setting is u

If the termination condition is missing, the binding first checks if an override is active.
If that is the case, the existing termination condition is used.
An existing timer, for example, just keeps running.
An existing timer, for example, just keeps running.
In case the zone is currently in smart-schedule mode and thus doesn't have a termination condition, then the default termination condition is used, as configured in the tado° app (settings -> select zone -> manual control on tado° device).

## `mobiledevice` Thing
Expand All @@ -138,7 +137,7 @@ It is again easiest to refer to discovery in order to find the `id`.

Example `tado.things`:

```
```java
Bridge tado:home:demo [ username="[email protected]", password="secret" ] {
mobiledevice phone [id=12345]
}
Expand All @@ -150,13 +149,13 @@ Name | Type | Description | Read/Write
-|-|-|-
`atHome` | Switch | ON if mobile device is in HOME mode, OFF if AWAY | R

Group `OR` can be used to define an item for *'is any device at home'*.
Group `OR` can be used to define an item for _'is any device at home'_.

# Full Example

## tado.things

```
```java
Bridge tado:home:demo [ username="[email protected]", password="secret" ] {
zone heating [id=1]
zone ac [id=2]
Expand All @@ -168,7 +167,7 @@ Bridge tado:home:demo [ username="[email protected]", password="secret" ] {

## tado.items

```
```java
Switch TADO_PRESENCE_home "Tado Presence: [MAP(presence.map):%s]" { channel="tado:home:demo:homePresence" }
Number:Temperature HEAT_inside_temperature "Inside Temperature" { channel="tado:zone:demo:heating:currentTemperature" }
Number HEAT_humidity "Humidity" { channel="tado:zone:demo:heating:humidity" }
Expand Down Expand Up @@ -203,7 +202,7 @@ Switch Phone_atHome "Phone location [MAP(presence.map)

## tado.sitemap

```
```perl
sitemap tado label="Tado"
{
Frame label="Status" {
Expand Down Expand Up @@ -255,7 +254,7 @@ sitemap tado label="Tado"

## presence.map

```
```text
ON=at home
OFF=away
NULL=lost
Expand Down
23 changes: 11 additions & 12 deletions bundles/org.openhab.binding.tankerkoenig/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,17 +72,16 @@ Note: All apikeys and locationids are only examples!

tankerkoenig.things:

```
```java
Bridge tankerkoenig:webservice:WebserviceName "MyWebserviceName" [ apikey="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", refresh= 60, modeOpeningTime =false ] {
Thing station StationName1 "MyStationName1" @ "GasStations"[ locationid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ]
Thing station StationName2 "MyStationName2" @ "GasStations"[ locationid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ]
}
```


tankerkoenig.items:

```
```java
Switch Station_Holidays "Today is holiday: [%s]" { channel="tankerkoenig:webservice:WebserviceName:holiday"}
Number E10_1 "E10 [%.3f €]" { channel="tankerkoenig:station:WebserviceName:StationName1:e10" }
Number E5_1 "E5 [%.3f €]" { channel="tankerkoenig:station:WebserviceName:StationName1:e5" }
Expand All @@ -108,7 +107,7 @@ Set the logging level for the binding to DEBUG (Karaf-Console command: "log:set
Create a new Station (in order to start the "initialize" routine).
Check the openhab.log for entries like:

```
```text
2017-06-25 16:02:12.679 [DEBUG] [ig.internal.data.TankerkoenigService] - getTankerkoenigDetailResult IOException:
java.io.IOException: java.util.concurrent.ExecutionException: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
......
Expand All @@ -121,15 +120,15 @@ Note: You must restart openHAB after a Java update.

If you receive the error because you are running an old Linux installation which does not have the latest java-versions available in its package-repositories, you may be able to fix the issue using one of the three options below:

1.) Update the Linux system and install the latest Java version

2.) Download the most recent JDK and install it directly on to your system without using a pre-composed package
1. Update the Linux system and install the latest Java version

1. Download the most recent JDK and install it directly on to your system without using a pre-composed package

1. Update the cacerts store by importing the missing certificate

3.) Update the cacerts store by importing the missing certificate

Check which CA has validated the certificate

Navigate to https://creativecommons.tankerkoenig.de/
Navigate to <https://creativecommons.tankerkoenig.de/>

Check which CA has validated the certificate

Expand Down Expand Up @@ -166,6 +165,6 @@ This switch can be set either manually (only suggested for testing!) or by a rul

## Tankerkönig API

* <https://creativecommons.tankerkoenig.de/> (sorry, only available in German)
- <https://creativecommons.tankerkoenig.de/> (sorry, only available in German)

* &lsqb;MTS-K&rsqb;: <https://www.bundeskartellamt.de/DE/Wirtschaftsbereiche/Mineral%C3%B6l/MTS-Kraftstoffe/Verbraucher/verbraucher_node.html>
- &lsqb;MTS-K&rsqb;: <https://www.bundeskartellamt.de/DE/Wirtschaftsbereiche/Mineral%C3%B6l/MTS-Kraftstoffe/Verbraucher/verbraucher_node.html>
11 changes: 4 additions & 7 deletions bundles/org.openhab.binding.tapocontrol/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ To satisfy this requirement while keeping the device isolated, your router shoul

## Discovery

Discovery is done by connecting to the Tapo-Cloud Service.
Discovery is done by connecting to the Tapo-Cloud Service.
All devices stored in your cloud account will be detected even if they are not in your network.
You need to know the IP-Adress of your device. This must be set manually in the thing configuration

Expand All @@ -59,7 +59,6 @@ The thing has the following configuration parameters:
| ipAddress | IP Address of the device. |
| pollingInterval | Refresh interval in seconds. Optional. The default is 30 seconds |


## Channels

All devices support some of the following channels:
Expand All @@ -80,18 +79,16 @@ All devices support some of the following channels:
| | todayEnergyUsage | Number:Energy | used energy today (Wh) | P110, P115 |
| | todayRuntime | Number:Time | seconds output was on today | P110, P115 |


## Channel Refresh

When the thing receives a `RefreshType` command the thing will send a new refreshRequest over http.
To minimize network traffic the default refresh-rate is set to 30 seconds. This can be reduced down to 10 seconds in advanced settings of the device. If any command was sent to a channel, it will do an immediately refresh of the whole device.


## Full Example

### tapocontrol.things:

```
```java
tapocontrol:bridge:myTapoBridge "Cloud-Login" [ username="[email protected]", password="verysecret" ]
tapocontrol:P100:myTapoBridge:mySocket "My-Socket" (tapocontrol:bridge:myTapoBridge) [ ipAddress="192.168.178.150", pollingInterval=30 ]
tapocontrol:L510:myTapoBridge:whiteBulb "white-light" (tapocontrol:bridge:myTapoBridge) [ ipAddress="192.168.178.151", pollingInterval=30 ]
Expand All @@ -105,6 +102,6 @@ Bridge tapocontrol:bridge:secondBridgeExample "Cloud-Login" [

### tapocontrol.items:

```
```java
Switch TAPO_SOCKET "socket" { channel="tapocontrol:P100:myTapoBridge:mySocket:actuator#output" }
```
```
Loading