parent
94952bf804
commit
edd1f95bc0
|
@ -31,8 +31,8 @@ Of course, you can add multiple Things, e.g. for measuring AQI for different loc
|
|||
|
||||
## Discovery
|
||||
|
||||
There is no discovery implemented.
|
||||
You have to create your things manually.
|
||||
Local Air Quality can be autodiscovered based on system location.
|
||||
You'll have complete default configuration with your apiKey.
|
||||
|
||||
## Binding Configuration
|
||||
|
||||
|
@ -62,22 +62,23 @@ If you always want to receive data from specific station and you know its unique
|
|||
|
||||
The AirQuality information that is retrieved is available as these channels:
|
||||
|
||||
| Channel ID | Item Type | Description |
|
||||
|-----------------|-----------|----------------------------------------------|
|
||||
| aqiLevel | Number | Air Quality Index |
|
||||
| aqiDescription | String | AQI Description |
|
||||
| locationName | String | Nearest measuring station location |
|
||||
| stationId | Number | Measuring station ID |
|
||||
| stationLocation | Location | Latitude/longitude of measuring station |
|
||||
| pm25 | Number | Fine particles pollution level (PM2.5) |
|
||||
| pm10 | Number | Coarse dust particles pollution level (PM10) |
|
||||
| o3 | Number | Ozone level (O3) |
|
||||
| no2 | Number | Nitrogen Dioxide level (NO2) |
|
||||
| co | Number | Carbon monoxide level (CO) |
|
||||
| observationTime | DateTime | Observation date and time |
|
||||
| temperature | Number | Temperature in Celsius degrees |
|
||||
| pressure | Number | Pressure level |
|
||||
| humidity | Number | Humidity level |
|
||||
| Channel ID | Item Type | Description |
|
||||
|-----------------|----------------------|----------------------------------------------|
|
||||
| aqiLevel | Number | Air Quality Index |
|
||||
| aqiDescription | String | AQI Description |
|
||||
| locationName | String | Nearest measuring station location |
|
||||
| stationId | Number | Measuring station ID |
|
||||
| stationLocation | Location | Latitude/longitude of measuring station |
|
||||
| pm25 | Number | Fine particles pollution level (PM2.5) |
|
||||
| pm10 | Number | Coarse dust particles pollution level (PM10) |
|
||||
| o3 | Number | Ozone level (O3) |
|
||||
| no2 | Number | Nitrogen Dioxide level (NO2) |
|
||||
| co | Number | Carbon monoxide level (CO) |
|
||||
| observationTime | DateTime | Observation date and time |
|
||||
| temperature | Number:Temperature | Temperature in Celsius degrees |
|
||||
| pressure | Number:Pressure | Pressure level |
|
||||
| humidity | Number:Dimensionless | Humidity level |
|
||||
| dominentPol | String | Dominent Polutor |
|
||||
|
||||
`AQI Description` item provides a human-readable output that can be interpreted e.g. by MAP transformation.
|
||||
|
||||
|
@ -127,9 +128,9 @@ Location Aqi_StationGeo "Station Location" <office> (AirQuality) { channel=
|
|||
Number Aqi_StationId "Station ID" <pie> (AirQuality) { channel="airquality:aqi:home:stationId" }
|
||||
DateTime Aqi_ObservationTime "Time of observation [%1$tH:%1$tM]" <clock> (AirQuality) { channel="airquality:aqi:home:observationTime" }
|
||||
|
||||
Number Aqi_Temperature "Temperature" <temperature> (AirQuality) { channel="airquality:aqi:home:temperature" }
|
||||
Number Aqi_Pressure "Pressure" <pressure> (AirQuality) { channel="airquality:aqi:home:pressure" }
|
||||
Number Aqi_Humidity "Humidity" <humidity> (AirQuality) { channel="airquality:aqi:home:humidity" }
|
||||
Number:Temperature Aqi_Temperature "Temperature" <temperature> (AirQuality) { channel="airquality:aqi:home:temperature" }
|
||||
Number:Pressure Aqi_Pressure "Pressure" <pressure> (AirQuality) { channel="airquality:aqi:home:pressure" }
|
||||
Number:DimensionLess Aqi_Humidity "Humidity" <humidity> (AirQuality) { channel="airquality:aqi:home:humidity" }
|
||||
```
|
||||
|
||||
airquality.sitemap:
|
||||
|
|
|
@ -0,0 +1,155 @@
|
|||
---
|
||||
id: denonmarantz
|
||||
label: Denon / Marantz
|
||||
title: Denon / Marantz - Bindings
|
||||
type: binding
|
||||
description: "This binding integrates Denon & Marantz AV receivers by using either Telnet or a (undocumented) HTTP API."
|
||||
since: 2x
|
||||
install: auto
|
||||
---
|
||||
|
||||
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
|
||||
|
||||
{% include base.html %}
|
||||
|
||||
# Denon / Marantz Binding
|
||||
|
||||
This binding integrates Denon & Marantz AV receivers by using either Telnet or a (undocumented) HTTP API.
|
||||
|
||||
## Introduction
|
||||
|
||||
This binding is an adaptation of the existing Denon 1.x binding.
|
||||
It can be fully configured without any configuration files.
|
||||
In most cases the AVRs can be discovered and will be added to the Inbox of the Paper UI.
|
||||
|
||||
## Supported Things
|
||||
|
||||
This binding supports Denon and Marantz receivers having a Telnet interface or a web based controller at `http://<AVR IP address>/`.
|
||||
|
||||
Tested models: Marantz SR5008, Denon AVR-X2000 / X3000 / X1200W / X2100W / X2200W / X3100W / X3300W
|
||||
|
||||
Denon models with HEOS support (`AVR-X..00H`) do not support the HTTP API. They do support Telnet.
|
||||
During Discovery this is auto-detected and configured.
|
||||
|
||||
## Discovery
|
||||
|
||||
This binding can discover Denon and Marantz receivers using mDNS.
|
||||
The serial number (which is the MAC address of the network interface) is used as unique identifier.
|
||||
|
||||
It tries to detect the number of zones (when the AVR responds to HTTP). It defaults to 2 zones.
|
||||
|
||||
## Binding Configuration
|
||||
|
||||
The AVR should be auto-discovered correctly.
|
||||
In case it does not work you can add the AVR manually.
|
||||
There are no configuration files for this binding.
|
||||
|
||||
## Thing Configuration
|
||||
|
||||
The DenonMarantz AVR thing requires the `host` it can connect to.
|
||||
There are more parameters which all have defaults set.
|
||||
|
||||
| Parameter | Values | Default |
|
||||
|---------------------|-------------------------------------------|---------|
|
||||
| host | hostname / IP address of the AVR | - |
|
||||
| zoneCount | [1, 2 or 3] | 2 |
|
||||
| telnetEnabled | true, false | false |
|
||||
| telnetPort | port number, e.g. 23 | 23 |
|
||||
| httpPort | port number, e.g. 80 | 80 |
|
||||
| httpPollingInterval | polling interval in seconds (minimal 5) | 5 |
|
||||
|
||||
### Static definition in a .things file
|
||||
|
||||
Example `.things` file entry:
|
||||
|
||||
```
|
||||
Thing denonmarantz:avr:0005cd123456 "Receiver" @ "Living room" [host="192.168.1.100"]
|
||||
```
|
||||
|
||||
## Channels
|
||||
|
||||
The DenonMarantz AVR supports the following channels (some channels are model specific):
|
||||
|
||||
| Channel Type ID | Item Type | Description |
|
||||
|-------------------------|--------------|--------------|
|
||||
| General
|
||||
| general#power | Switch (RW) | Power on/off
|
||||
| general#surroundProgram | String (R) | current surround program (e.g. STEREO)
|
||||
| general#artist | String (R) | artist of current track
|
||||
| general#album | String (R) | album of current track
|
||||
| general#track | String (R) | title of current track
|
||||
| general#command | String (W) | Command to send to the AVR (for use in Rules)
|
||||
|Now Playing
|
||||
| Main zone
|
||||
| mainZone#power | Switch (RW) | Main zone power on/off
|
||||
| mainZone#volume | Dimmer (RW) | Main zone volume
|
||||
| mainZone#volumeDB | Number (RW) | Main zone volume in dB (-80 offset)
|
||||
| mainZone#mute | Switch (RW) | Main zone mute
|
||||
| mainZone#input | String (RW) | Main zone input (e.g. TV, TUNER, ..)
|
||||
| Zone 2
|
||||
| zone2#power | Switch (RW) | Zone 2 power on/off
|
||||
| zone2#volume | Dimmer (RW) | Zone 2 volume
|
||||
| zone2#volumeDB | Number (RW) | Zone 2 volume in dB (-80 offset)
|
||||
| zone2#mute | Switch (RW) | Zone 2 mute
|
||||
| zone2#input | String (RW) | Zone 2 input
|
||||
| Zone 3
|
||||
| zone3#power | Switch (RW) | Zone 3 power on/off
|
||||
| zone3#volume | Dimmer (RW) | Zone 3 volume
|
||||
| zone3#volumeDB | Number (RW) | Zone 3 volume in dB (-80 offset)
|
||||
| zone3#mute | Switch (RW) | Zone 3 mute
|
||||
| zone3#input | String (RW) | Zone 3 input
|
||||
|
||||
(R) = read-only (no updates possible)
|
||||
(RW) = read-write
|
||||
(W) = write-only (no feedback)
|
||||
|
||||
## Item Configuration
|
||||
|
||||
Example of usage in `.items` files.
|
||||
|
||||
```
|
||||
Switch marantz_power "Receiver" <switch> {channel="denonmarantz:avr:0006781d58b1:general#power"}
|
||||
Dimmer marantz_volume "Volume" <soundvolume> {channel="denonmarantz:avr:0006781d58b1:mainZone#volume"}
|
||||
Number marantz_volumeDB "Volume [%.1f dB]" {channel="denonmarantz:avr:0006781d58b1:mainzone#volume"}
|
||||
Switch marantz_mute "Mute" <mute> {channel="denonmarantz:avr:0006781d58b1:mainZone#mute"}
|
||||
Switch marantz_z2power "Zone 2" {channel="denonmarantz:avr:0006781d58b1:zone2#power"}
|
||||
String marantz_input "Input [%s]" {channel="denonmarantz:avr:0006781d58b1:mainZone#input" }
|
||||
String marantz_surround "Surround: [%s]" {channel="denonmarantz:avr:0006781d58b1:general#surroundProgram"}
|
||||
String marantz_command {channel="denonmarantz:avr:0006781d58b1:general#command"}
|
||||
```
|
||||
|
||||
## Sitemap Configuration
|
||||
|
||||
Example of displaying the items in a `.sitemap` file.
|
||||
|
||||
```
|
||||
...
|
||||
Group item=marantz_input label="Receiver" icon="receiver" {
|
||||
Default item=marantz_power
|
||||
Default item=marantz_mute visibility=[marantz_power==ON]
|
||||
Setpoint item=marantz_volume label="Volume [%.1f]" minValue=0 maxValue=40 step=0.5 visibility=[marantz_power==ON]
|
||||
Default item-marantz_volumeDB visibility=[marantz_power==ON]
|
||||
Selection item=marantz_input mappings=[TV=TV,MPLAY=Kodi] visibility=[marantz_power==ON]
|
||||
Default item=marantz_surround visibility=[marantz_power==ON]
|
||||
}
|
||||
...
|
||||
```
|
||||
|
||||
## Using the command channel
|
||||
|
||||
In a `.rules` file you can use the sendCommand function to send a command to the AVR.
|
||||
|
||||
```
|
||||
marantz_command.sendCommand("MSMCH STEREO")
|
||||
```
|
||||
|
||||
## Control protocol documentation
|
||||
|
||||
These resources can be useful to learn what to send using the `command`channel:
|
||||
|
||||
- [AVR-X2000/E400](http://www2.aerne.com/Public/dok-sw.nsf/0c6187bc750a16fcc1256e3c005a9740/96a2ba120706d10dc1257bdd0033493f/$FILE/AVRX2000_E400_PROTOCOL(10.1.0)_V04.pdf)
|
||||
- [AVR-X4000](https://usa.denon.com/us/product/hometheater/receivers/avrx4000?docname=AVRX4000_PROTOCOL(10%203%200)_V03.pdf)
|
||||
- [AVR-3311CI/AVR-3311/AVR-991](http://www.awe-europe.com/documents/Control%20Docs/Denon/Archive/AVR3311CI_AVR3311_991_PROTOCOL_V7.1.0.pdf)
|
||||
- [CEOL Piccolo DRA-N5/RCD-N8](http://www.audioproducts.com.au/downloadcenter/products/Denon/CEOLPICCOLOBK/Manuals/DRAN5_RCDN8_PROTOCOL_V.1.0.0.pdf)
|
||||
- [Marantz Control Protocol (2014+)](http://m.us.marantz.com/DocumentMaster/US/Marantz%202014%20NR%20Series%20-%20SR%20Series%20RS232%20IP%20Protocol.xls)
|
||||
|
|
@ -3,7 +3,7 @@ id: jeelink
|
|||
label: Jeelink
|
||||
title: Jeelink - Bindings
|
||||
type: binding
|
||||
description: "This binding integrates JeeLink USB RF receivers."
|
||||
description: "This binding integrates JeeLink USB RF receivers and LaCrosseGateways."
|
||||
since: 2x
|
||||
install: auto
|
||||
---
|
||||
|
@ -14,21 +14,23 @@ install: auto
|
|||
|
||||
# Jeelink Binding
|
||||
|
||||
This binding integrates JeeLink USB RF receivers.
|
||||
This binding integrates JeeLink USB RF receivers and LaCrosseGateways.
|
||||
|
||||
## Introduction
|
||||
|
||||
Binding should be compatible with JeeLink USB receivers. It supports connected LaCrosse temperature sensors as well as EC3000 sensors and PCA301 power monitoring wireless sockets.
|
||||
Binding should be compatible with JeeLink USB receivers and LaCrosseGateways. It supports connected LaCrosse temperature sensors as well as EC3000 sensors and PCA301 power monitoring wireless sockets.
|
||||
|
||||
## Supported Things
|
||||
|
||||
This binding supports:
|
||||
|
||||
* JeeLink USB RF receivers (as bridge)
|
||||
* JeeLink USB RF receivers connected over TCP (as bridge)
|
||||
* LaCrosse Temperature Sensors connected to the bridge
|
||||
* EC3000 Power Monitors connected to the bridge
|
||||
* PCA301 power monitoring wireless sockets connected to the bridge
|
||||
* JeeLink (connected to USB)
|
||||
* JeeLink (connected over TCP)
|
||||
* LaCrosseGateway (connected to USB)
|
||||
* LaCrosseGateway (connected over TCP)
|
||||
* LaCrosse Temperature Sensors
|
||||
* EC3000 Power Monitors
|
||||
* PCA301 power monitoring wireless sockets
|
||||
|
||||
## Binding configuration
|
||||
|
||||
|
@ -36,29 +38,35 @@ Configuration of the binding is not needed.
|
|||
|
||||
## Thing discovery
|
||||
|
||||
Only sensor discovery is supported, the thing for the USB receiver has to be created manually. Pay attention to use the correct serial port, as otherwise the binding may interfere with other bindings accessing serial ports.
|
||||
Only sensor discovery is supported, the thing for the USB receiver / LaCrosseGateway has to be created manually. Pay attention to use the correct serial port, as otherwise the binding may interfere with other bindings accessing serial ports.
|
||||
|
||||
Afterwards, discovery reads from the USB receiver to find out which sensors are currently connected.
|
||||
It then creates a thing for every sensor for which currently no other thing with the same sensor ID is registered with the bridge.
|
||||
Afterwards, discovery reads from the USB receiver / LaCrosseGateways to find out which sensors are currently connected.
|
||||
It then creates a thing for every unknown sensor and puts it in the Inbox.
|
||||
|
||||
Discovery only creates things for sensors that actually send a value during discovery. LaCrosse temperature sensors send values every few seconds, so that they are normally caught by the discovery. In rare cases, a second discovery run is needed.
|
||||
|
||||
PCA301 sockets are polled every 120 seconds by default. This results in sockets not being found by the discovery. In order to make sure the socket is discovered, press the button on the socket during discovery (and make sure you have paired the socket to the USB stick / LaCrosseGateway before by pressing the button for 3 seconds while the receiver is powered).
|
||||
|
||||
## Thing configuration
|
||||
|
||||
#### JeeLink USB receivers
|
||||
#### JeeLink / LaCrosseGateway (connected to USB)
|
||||
|
||||
| Parameter | Item Type | Description |
|
||||
|---------------|-----------|----------------------------------------------------------------------------------------------------------------------------|
|
||||
| Serial Port | String | The serial port name for the USB receiver. Valid values are e.g. COM1 for Windows and /dev/ttyS0 or /dev/ttyUSB0 for Linux |
|
||||
| Baud Rate | Number | The baud rate of the USB Receiver. Valid values are 9600, 19200, 38400, 57600 (default), and 115200 |
|
||||
| Init Commands | String | A semicolon separated list of init commands that will be send to the Jeelink, e.g. "0a v" for disabling the LED |
|
||||
| Parameter | Item Type | Description |
|
||||
|---------------|-----------|----------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| Serial Port | String | The serial port name for the USB receiver / LaCrosseGateway. Valid values are e.g. COM1 for Windows and /dev/ttyS0 or /dev/ttyUSB0 for Linux |
|
||||
| Baud Rate | Number | The baud rate of the USB Receiver. Valid values are 9600, 19200, 38400, 57600 (default), and 115200 |
|
||||
| Init Commands | String | A semicolon separated list of init commands that will be send to the Jeelink / LaCrosseGateway, e.g. "0a" for disabling the LED |
|
||||
|
||||
The available init commands depend on the sketch that is running on the USB stick / LaCrosseGateway.
|
||||
|
||||
|
||||
#### JeeLink receivers connected over TCP
|
||||
#### JeeLink / LaCrosseGateway (connected over TCP)
|
||||
|
||||
| Parameter | Item Type | Description |
|
||||
|---------------|-----------|-----------------------------------------------------------------------------------------------------------------|
|
||||
| IP Address | String | The IP address of the Server to which the USB Receiver is connected |
|
||||
| TCP Port | Number | The TCP port over which the serial port is made available |
|
||||
| Init Commands | String | A semicolon separated list of init commands that will be send to the Jeelink, e.g. "0a v" for disabling the LED |
|
||||
| Parameter | Item Type | Description |
|
||||
|---------------|-----------|-----------------------------------------------------------------------------------------------------------------------------------|
|
||||
| IP Address | String | The IP address of the Server to which the USB Receiver is connected, or the IP address of the LaCrosseGateway |
|
||||
| TCP Port | Number | The TCP port over which the serial port is made available, or the LaCrosseGateway port (which usually is 81) |
|
||||
| Init Commands | String | A semicolon separated list of init commands that will be send to the Jeelink / LaCrosseGateway, e.g. "0a" for disabling the LED |
|
||||
|
||||
|
||||
#### LaCrosse temperature sensors
|
||||
|
@ -85,12 +93,11 @@ It then creates a thing for every sensor for which currently no other thing with
|
|||
|
||||
#### PCA301 power monitoring wireless sockets
|
||||
|
||||
| Parameter | Item Type | Description
|
||||
|-------------------|--------------|------------
|
||||
| Sensor ID | Number | The ID of the connected sensor
|
||||
| Sensor Timeout | Number | The amount of time in seconds that should result in OFFLINE status when no readings have
|
||||
been received from the sensor
|
||||
| Retry Count | Number | The number of times a switch command will be resent to the socket until giving up
|
||||
| Parameter | Item Type | Description |
|
||||
|-------------------|--------------|------------------------------------------------------------------------------------------------------------------------|
|
||||
| Sensor ID | Number | The ID of the connected sensor |
|
||||
| Sensor Timeout | Number | The amount of time in seconds that should result in OFFLINE status when no readings have been received from the sensor |
|
||||
| Retry Count | Number | The number of times a switch command will be resent to the socket until giving up |
|
||||
|
||||
## Channels
|
||||
|
||||
|
@ -116,19 +123,19 @@ been received from the sensor
|
|||
|
||||
#### PCA301 power monitoring wireless sockets
|
||||
|
||||
| Channel Type ID | Item Type | Description
|
||||
|-------------------------|--------------|------------
|
||||
| switchingState | Switch | Whether the sockets are currently switched on or off
|
||||
| currentWatt | Number | Instantaneous power in Watt
|
||||
| consumptionTotal | Number | Total energy consumption
|
||||
| Channel Type ID | Item Type | Description |
|
||||
|-------------------------|--------------|------------------------------------------------------|
|
||||
| switchingState | Switch | Whether the sockets are currently switched on or off |
|
||||
| currentWatt | Number | Instantaneous power in Watt |
|
||||
| consumptionTotal | Number | Total energy consumption |
|
||||
|
||||
## Commands
|
||||
|
||||
#### PCA301 power monitoring wireless sockets
|
||||
|
||||
| Channel Type ID | Item Type | Description
|
||||
|-------------------------|--------------|------------
|
||||
| switchingState | Switch | Supports ON and OFF commands to switch the socket.
|
||||
| Channel Type ID | Item Type | Description |
|
||||
|-------------------------|--------------|----------------------------------------------------|
|
||||
| switchingState | Switch | Supports ON and OFF commands to switch the socket. |
|
||||
|
||||
## Full Example
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ The Kodi thing supports the following channels:
|
|||
| album | String | Album name of the currently played song |
|
||||
| artist | String | Artist name of the currently played song or director of the currently played movie |
|
||||
| playuri | String | Plays the file with the provided URI |
|
||||
| playfavorite | String | Plays the favorite with the provided title (channel's state options contains available favorites) |
|
||||
| playfavorite | String | Plays or opens the favorite with the provided title (channel's state options contains available favorites) |
|
||||
| pvr-open-tv | String | Opens the PVR TV channel with the provided name (channel's state options contains available PVR TV channels) |
|
||||
| pvr-open-radio | String | Opens the PVR Radio channel with the provided name (channel's state options contains available PVR Radio channels) |
|
||||
| pvr-channel | String | Title of the currently played PVR channel |
|
||||
|
|
|
@ -41,7 +41,7 @@ mcp23017 supports 16 channels in 2 groups:
|
|||
| Group | Channels | Additional parameters |
|
||||
| --- | --- | --- |
|
||||
| input | A0, A1, A2, A3, A4, A5, A6, A7, B0, B1, B2, B3, B4, B5, B6, B7 | pull_mode (OFF, PULL_UP), default is OFF |
|
||||
| output| A0, A1, A2, A3, A4, A5, A6, A7, B0, B1, B2, B3, B4, B5, B6, B7 | default_state (LOW, HIGH), defauld is LOW |
|
||||
| output| A0, A1, A2, A3, A4, A5, A6, A7, B0, B1, B2, B3, B4, B5, B6, B7 | default_state (LOW, HIGH), default is LOW |
|
||||
|
||||
Channel determines MCP23017 PIN we want to use.
|
||||
|
||||
|
@ -64,10 +64,22 @@ Let's imagine a setup with:
|
|||
|
||||
* Things:
|
||||
|
||||
Minimal configuration:
|
||||
```
|
||||
Thing mcp23017:mcp23017:chipA "MCP23017 chip A" [address=20,bus=1]
|
||||
```
|
||||
|
||||
Configuration with default_state and pull_mode:
|
||||
```
|
||||
Thing mcp23017:mcp23017:chipA "MCP23017 chip A" [address=20,bus=1] {
|
||||
Type output_pin : output#A0 [default_state="HIGH"]
|
||||
Type output_pin : output#A1 [default_state="LOW"]
|
||||
|
||||
Type input_pin : input#B0 [pull_mode="PULL_UP"]
|
||||
Type input_pin : input#B1 [pull_mode="OFF"]
|
||||
}
|
||||
```
|
||||
|
||||
* Items:
|
||||
|
||||
```
|
||||
|
|
|
@ -0,0 +1,132 @@
|
|||
---
|
||||
id: robonect
|
||||
label: Robonect
|
||||
title: Robonect - Bindings
|
||||
type: binding
|
||||
description: "Robonect is a piece of hardware which has to be put into your Husqvarna, Gardena and other branded automower and makes"
|
||||
since: 2x
|
||||
install: auto
|
||||
---
|
||||
|
||||
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
|
||||
|
||||
{% include base.html %}
|
||||
|
||||
# Robonect Binding
|
||||
|
||||
Robonect is a piece of hardware which has to be put into your Husqvarna, Gardena and other branded automower and makes
|
||||
it accessible in your internal network.
|
||||
More details about the Robonect module can be found at [robonect.de](http://www.robonect.de)
|
||||
|
||||
This binding integrates mowers having the robonect module installed as a thing into the home automation solution, allowing to
|
||||
control the mower and react on mower status changes in rules.
|
||||
|
||||
## Supported Things
|
||||
|
||||
The binding exposes just one Thing type which is the `mower`.
|
||||
|
||||
Tested mowers
|
||||
|
||||
| Mower | Robonect module | Robonect firmware version |
|
||||
|-------------------------|------------------|---------------------------|
|
||||
| Husqvarna Automower 105 | Robonect Hx | 0.9c, 0.9e |
|
||||
| Husqvarna Automower 315 | Robonect Hx | 0.9e, 1.0 preview |
|
||||
| Husqvarna Automower 420 | Robonect Hx | 0.9e, 1.0 Beta2 |
|
||||
|
||||
## Discovery
|
||||
|
||||
Robonect does not support automatic discovery. So the thing has to be added manually either via Paper UI or things configuration.
|
||||
|
||||
## Thing Configuration
|
||||
|
||||
following configuration settings are supported for the `mower` thing.
|
||||
|
||||
| parameter name | mandatory | description |
|
||||
|----------------|-----------|---------------------------------------------------------------------------------------------------|
|
||||
| host | yes | the hostname or ip address of the mower. |
|
||||
| pollInterval | no | the interval for the binding to poll for mower status information. |
|
||||
| offlineTimeout | no | the maximum time, the mower can be offline before the binding triggers the offlineTrigger channel |
|
||||
| user | no | the username if authentication is enabled in the firmware. |
|
||||
| password | no | the password if authenticaiton is enabled in the firmware. |
|
||||
|
||||
|
||||
An example things configuration might look like
|
||||
|
||||
```java
|
||||
Thing robonect:mower:automower "Mower" @ "Garden" [ host="192.168.2.1", pollInterval="5", user="gardener", password = "cutter"]
|
||||
```
|
||||
|
||||
## Channels
|
||||
|
||||
| Channel ID | Item Type | Description |
|
||||
|------------------------------|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `name` | String | Retrieves or sets the name of the mower |
|
||||
| `battery` | Number | Retrieves the current battery status in percent |
|
||||
| `status-duration` | Number | Retrieves the duration of the current status (see `status`) of the mower |
|
||||
| `mowing-hours` | Number | Retrieves the number of hours of mowing operation |
|
||||
| `mode` | String | Retrieves or sets the mode of the mower. Possible values retrieval values are <ul><li>HOME</li><li>AUTO</li><li>MAN</li></ul> In addition he channel allows to set following values for triggering special actions <ul><li>EOD : triggers the "end of day" mode. The mower will switch in to the HOME mode and stay int this mode for the rest of the day</li><li>JOB : The mower will start a job according to the job parameters defined with the channels `job-remote-start`, `job-after-mode`, `job-start` and `job-end`</li></ul> |
|
||||
| `status` | Number | Retrieves the current mower status which can be <ul><li>0 : DETECTING_STATUS</li><li>1 : PARKING</li><li>2 : MOWING</li><li>3 : SEARCH_CHARGING_STATION</li><li>4 : CHARGING</li><li>5 : SEARCHING</li><li>6 : UNKNOWN_6</li><li>7 : ERROR_STATUS</li><li>16 : OFF</li><li>17 : SLEEPING</li><li>98 : OFFLINE (Binding cannot connect to mower)</li><li>99 : UNKNOWN</li></ul> |
|
||||
| `start` | Switch | Starts the mower. ON is started (analog to pressing the start button on mower) or OFF (analog to the stop button on mower). |
|
||||
| `job` | Switch | Starts a job. The channels can be configured with the three parameters `remoteStart`, `afterMode` and `duration`. `remoteStart` defines the mowing start point with the corresponding options `REMOTE_1`, `REMOTE_2` and `DEFAULT`. `afterMode` is the mode the mower will be set after the job is done. Allowed values are `AUTO`, `HOME` or `EOD`. `duration` is the job duration in minutes. Please note, if the mower is charging it will wait to start the job until it is fully charged, but the jobs duration is already started.|
|
||||
| `timer-status` | String | Retrieves the status of the timer which can be <ul><li>INACTIVE : no timer set</li><li>ACTIVE - timer set and currently running</li><li>STANDBY - timer set but not triggered/running yet</li></ul> |
|
||||
| `timer-next` | DateTime | Retrieves the Date and Time of the next timer set. This is just valid if there is an ACTIVE timer status (see `timer-status`). |
|
||||
| `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. |
|
||||
| `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 |
|
||||
| `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) |
|
||||
|
||||
### Offline Trigger Channel
|
||||
|
||||
This channel s triggered if the mower is longer than the configured `offlineTriggerTimeout` offline.
|
||||
This may indicate that the mower may stuck somewhere in error state but does not have a signal.
|
||||
|
||||
## Full Example
|
||||
|
||||
Things file `.things`
|
||||
|
||||
```java
|
||||
Thing robonect:mower:automower "Mower" @ "Garden" [ host="192.168.2.1", pollInterval=5, user="gardener", password = "cutter"]
|
||||
```
|
||||
|
||||
Items file `.items`
|
||||
|
||||
```java
|
||||
String mowerName "Mower name" {robonect:mower:automower:name"}
|
||||
Number mowerBattery "Mower battery [%d %%]" <energy> {channel="robonect:mower:automower:battery"}
|
||||
Number mowerHours "Mower operation hours [%d h]" <clock> {channel="robonect:mower:automower:mowing-hours"}
|
||||
Number mowerDuration "Duration of current mode" {channel="robonect:mower:automower:status-duration"}
|
||||
String mowerMode "Mower mode" {channel="robonect:mower:automower:mode"}
|
||||
Number mowerStatus "Mower Status [MAP(robonect_status.map):%s]" {channel="robonect:mower:automower:status"}
|
||||
Switch mowerStarted "Mower started" {channel="robonect:mower:automower:started"}
|
||||
String mowerTimerStatus "Mower timer status" {channel="robonect:mower:automower:timer-status"}
|
||||
DateTime mowerNextTimer "Next timer [%1$td/%1$tm %1$tH:%1$tM]" <clock> {channel="robonect:mower:automower:timer-next"}
|
||||
Number mowerWlanSignal "WLAN signal [%d dB ]" {channel="robonect:mower:automower:wlan-signal"}
|
||||
String mowerJobAfterMode "Mode after job execution" {channel="robonect:mower:automower:job-after-mode"}
|
||||
String mowerJobRemoteStart "Remote start on job execution" {channel="robonect:mower:automower:job-remote-start"}
|
||||
String mowerJobStart "Job start time" {channel="robonect:mower:automower:job-start"}
|
||||
String mowerJobEnd "Job end time" {channel="robonect:mower:automower:job-end"}
|
||||
Number mowerErrorCode "Error code" {channel="robonect:mower:automower:error-code"}
|
||||
String mowerErrorMessage "Error message" {channel="robonect:mower:automower:error-message"}
|
||||
DateTie mowerErrorDate "Error date [%1$td/%1$tm %1$tH:%1$tM]" {channel="robonect:mower:automower:error-date"}
|
||||
```
|
||||
|
||||
Map transformation for mower status (`robonect_status.map`)
|
||||
|
||||
```text
|
||||
0=DETECTING_STATUS
|
||||
1=PARKING
|
||||
2=MOWING
|
||||
3=SEARCH_CHARGING_STATION
|
||||
4=CHARGING
|
||||
5=SEARCHING
|
||||
7=ERROR_STATUS
|
||||
8=LOST_SIGNAL
|
||||
16=OFF
|
||||
17=SLEEPING
|
||||
99=UNKNOWN
|
||||
```
|
|
@ -41,6 +41,9 @@ cp -f light-on.svg light.svg
|
|||
cp -f lock-closed.png lock.png
|
||||
cp -f lock-closed.svg lock.svg
|
||||
|
||||
cp -f presence-on.png presence.png
|
||||
cp -f presence-on.svg presence.svg
|
||||
|
||||
cp -f receiver-on.png receiver.png
|
||||
cp -f receiver-on.svg receiver.svg
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 435 B |
|
@ -0,0 +1,44 @@
|
|||
<?xml version="1.0"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" style="enable-background:new 0 0 64 64">
|
||||
<defs>
|
||||
<linearGradient id="0" gradientUnits="userSpaceOnUse" x1="3" x2="61">
|
||||
<stop style="stop-color:#fff;stop-opacity:0"/>
|
||||
<stop offset=".2"/>
|
||||
<stop offset=".8"/>
|
||||
<stop offset="1" style="stop-color:#fff;stop-opacity:0"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path d="m3 46h58v1h-58z" style="fill:url(#0)"/>
|
||||
<path d="m12.5 59.5v-45.2l19.5-9.7 19.5 9.7v45.2z" style="fill:#c8ffc8"/>
|
||||
<path d="M32,5.1l19,9.5V59H13V14.6L32,5.1 M32,4L12,14v46h40V14L32,4L32,4z" style="fill:#52cc78"/>
|
||||
<path d="m12.5 33.5h39v13h-39z" style="fill:#c8ffc8"/>
|
||||
<path d="m51 34v12h-38v-12h38m1-1h-40v14h40v-14z" style="fill:#52cc78"/>
|
||||
<path d="m12.5 20.5h39v13h-39z" style="fill:#c8ffc8"/>
|
||||
<path d="m51 21v12h-38v-12h38m1-1h-40v14h40v-14z" style="fill:#52cc78"/>
|
||||
<path d="m17.5 23.5h5v6h-5z" style="fill:#c8ffc8"/>
|
||||
<path d="m22 24v5h-4v-5h4m1-1h-6v7h6v-7z" style="fill:#52cc78"/>
|
||||
<path d="m22.5 23.5h5v6h-5z" style="fill:#c8ffc8"/>
|
||||
<path d="m27 24v5h-4v-5h4m1-1h-6v7h6v-7z" style="fill:#52cc78"/>
|
||||
<path d="m40.5 36.5h6v10h-6z" style="fill:#c8ffc8"/>
|
||||
<path d="m46 37v9h-5v-9h5m1-1h-7v11h7v-11z" style="fill:#52cc78"/>
|
||||
<path d="m31.5 23.5h5v6h-5z" style="fill:#c8ffc8"/>
|
||||
<path d="m36 24v5h-4v-5h4m1-1h-6v7h6v-7z" style="fill:#52cc78"/>
|
||||
<path d="m17.5 36.5h5v6h-5z" style="fill:#c8ffc8"/>
|
||||
<path d="m22 37v5h-4v-5h4m1-1h-6v7h6v-7z" style="fill:#52cc78"/>
|
||||
<path d="m22.5 36.5h5v6h-5z" style="fill:#c8ffc8"/>
|
||||
<path d="m27 37v5h-4v-5h4m1-1h-6v7h6v-7z" style="fill:#52cc78"/>
|
||||
<path d="m31.5 36.5h5v6h-5z" style="fill:#c8ffc8"/>
|
||||
<path d="m36 37v5h-4v-5h4m1-1h-6v7h6v-7z" style="fill:#52cc78"/>
|
||||
<path d="m40.5 23.5h6v6h-6z" style="fill:#c8ffc8"/>
|
||||
<path d="m46 24v5h-5v-5h5m1-1h-7v7h7v-7z" style="fill:#52cc78"/>
|
||||
<g style="fill:#c8ffc8">
|
||||
<path d="m44 41h1v1h-1z" style="stroke-miterlimit:10;stroke:#52cc78"/>
|
||||
<path d="m12.5 20.5v-6.2l19.5-9.7 19.5 9.7v6.2z"/>
|
||||
</g>
|
||||
<path d="m32 5.1l19 9.5v5.4h-38v-5.4l19-9.5m0-1.1l-20 10v7h40v-7l-20-10z" style="fill:#52cc78"/>
|
||||
<path d="m58 17.5l-26-13-26 13" style="fill:none;stroke-miterlimit:10;stroke:#2e7de5;stroke-width:1.5"/>
|
||||
<path d="m25.5 12.5h5v5h-5z" style="fill:#c8ffc8"/>
|
||||
<path d="m30 13v4h-4v-4h4m1-1h-6v6h6v-6z" style="fill:#52cc78"/>
|
||||
<path d="m33.5 12.5h5v5h-5z" style="fill:#c8ffc8"/>
|
||||
<path d="m38 13v4h-4v-4h4m1-1h-6v6h6v-6z" style="fill:#52cc78"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
Loading…
Reference in New Issue