Updated external content (Jenkins build 791)

pull/1839/head
openHAB Build Server 2022-02-13 03:36:06 +00:00
parent 5daec7478f
commit e030f66db0
9 changed files with 267 additions and 64 deletions

View File

@ -19,9 +19,14 @@ This binding is for any weather station that sends data to an IP Observer module
The weather stations that do this are made by a company in China called `Fine Offset` and then re-branded by many distribution companies around the world.
Some of the brands include Aercus (433mhz), Ambient Weather (915mhz), Frogitt, Misol (433mhz), Pantech (433mhz), Sainlogic and many more.
Whilst Ambient Weather has it own cloud based binding, the other brands will not work with that binding and Ambient Weather do not sell outside of the United States.
This binding works fully offline and uses local scraping of the weather station data at 12 second resolution if you wish and is easy to setup.
This binding works fully offline and can work via one of two methods:
1. Local scraping of the weather station's `livedata` webpage at 12 second resolution (non WiFi models only).
2. Both WiFi and RJ45 models can be setup to push the data directly to the openHAB (default 8080) server directly and the binding can parse the data from the weather underground data.
The other binding worth mentioning is the weather underground binding that allows the data to be intercepted on its way to WU, however many of the weather stations do not allow the redirection of the WU data and require you to know how to do redirections with a custom DNS server on your network.
This binding is by far the easiest method and works for all the brands and will not stop the data still being sent to WU if you wish to do both at the same time.
This binding with method 1 and a RJ45 model is by far the easiest method and works for all the brands and will not stop the data still being sent to WU if you wish to do both at the same time.
If your weather station came with a LCD screen instead of the IP Observer, you can add on the unit and the LCD screen will still work in parallel as the RF data is sent 1 way from the outdoor unit to the inside screens and IP Observer units.
## Supported Things
@ -30,15 +35,21 @@ There is only one thing that can be added and is called `weatherstation`.
## Discovery
Auto discovery is supported and may take a while to complete as it scans all IP addresses on your network one by one.
Auto discovery is supported for the RJ45 models, while the WiFi IP Observer will need to be manually added.
Discovery may take a while to complete as it scans all IP addresses on your network one by one.
## Thing Configuration
When the id and password are supplied, you need to set the custom WU path to `/weatherstation/updateweatherstation.php` and the port to be the same as openHAB (port 8080 by default).
If they are left blank, the binding will work in the scraping mode (RJ45 model only).
| Parameter | Required | Description |
|-|-|-|
| `address` | Y | Hostname or IP for the IP Observer |
| `pollTime` | Y | Time in seconds between each Scan of the livedata.htm from the IP Observer |
| `autoReboot` | Y | Time in milliseconds to wait for a reply before rebooting the IP Observer. A value of 0 disables this feature allowing you to manually trigger or use a rule to handle the reboots. |
| `id` | N | The weather underground's `station ID` that is setup in the ipobservers settings. |
| `password` | N | The weather underground's `station key` that is setup in the ipobservers settings. |
## Channels

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

View File

@ -3,7 +3,7 @@ id: renault
label: Renault
title: Renault - Bindings
type: binding
description: "This binding allow MyRenault App. users to get battery status and other data from their cars."
description: "This binding allows MyRenault App. users to get battery status and other data from their cars."
since: 3x
logo: images/addons/renault.png
install: manual
@ -15,44 +15,133 @@ install: manual
# Renault Binding
This binding allow 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.
A binding that translates the [python based renault-api](https://renault-api.readthedocs.io/en/latest/) in an easy to use 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
Supports MyRenault registered cars with an active Connected-Services account.
This binding can only retrieve information that is available in the the MyRenault App.
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.
| Parameter | Description | Required |
|-------------------|----------------------------------------|----------|
| myRenaultUsername | MyRenault Username. | yes |
| myRenaultPassword | MyRenault Password. | yes |
| locale | MyRenault Location (language_country). | yes |
| vin | Vehicle Identification Number. | yes |
| refreshInterval | Interval the car is polled in minutes. | no |
| Parameter | Description | Required |
|-------------------|----------------------------------------------------------------------------|----------|
| myRenaultUsername | MyRenault Username. | yes |
| myRenaultPassword | MyRenault Password. | yes |
| locale | MyRenault Location (language_country). | yes |
| 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 |
## Channels
Currently all available channels are read only:
| Channel ID | Type | Description |
|--------------|---------------|---------------------------------|
| batterylevel | Number | State of the battery in % |
| hvacstatus | Switch | HVAC status switch |
| image | String | Image URL of MyRenault |
| location | Location | The GPS position of the vehicle |
| odometer | Number:Length | Total distance travelled |
| Channel ID | Type | Description | Read Only |
|------------------------|--------------------|-------------------------------------------------|-----------|
| batteryavailableEnergy | Number:Energy | Battery Energy Available | Yes |
| batterylevel | Number | State of the battery in % | Yes |
| chargingmode | String | Charging mode. always_charging or schedule_mode | No |
| chargingstatus | String | Charging status | Yes |
| chargingremainingtime | Number:Time | Charging time remaining | Yes |
| plugstatus | String | Status of charging plug | Yes |
| estimatedrange | Number:Length | Estimated range of the car | Yes |
| odometer | Number:Length | Total distance travelled | Yes |
| hvacstatus | String | HVAC status HVAC Status (ON, OFF, PENDING) | No |
| hvactargettemperature | Number:Temperature | HVAC target temperature (19 to 21) | No |
| externaltemperature | Number:Temperature | Temperature outside of the car | Yes |
| image | String | Image URL of MyRenault | Yes |
| 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.
This seams to only allow values 19, 20 and 21 or else the pre-conditioning command will not work.
## Example
renaultcar.sitemap:
```
sitemap renaultcar label="Renault Car" {
Frame {
Image item=RenaultCar_ImageURL
Default item=RenaultCar_BatteryLevel icon="batterylevel"
Default item=RenaultCar_BatteryEnergyAvailable icon="energy"
Default item=RenaultCar_PlugStatus icon="poweroutlet"
Default item=RenaultCar_ChargingStatus icon="switch"
Selection item=RenaultCar_ChargingMode mappings=[SCHEDULE_MODE="Schedule mode",ALWAYS_CHARGING="Instant charge"] icon="switch"
Default item=RenaultCar_ChargingTimeRemaining icon="time"
Default item=RenaultCar_EstimatedRange
Default item=RenaultCar_Odometer
Selection item=RenaultCar_HVACStatus mappings=[ON="ON"] icon="switch"
Setpoint item=RenaultCar_HVACTargetTemperature minValue=19 maxValue=21 step=1 icon="temperature"
Default item=RenaultCar_LocationUpdate icon="time"
Default item=RenaultCar_Location
}
}
```
![Sitemap](doc/sitemap.png)
If you do not have a smart charger and want to limit the charge of the battery you can set up an active 15 minute charge schedule in the MyRenault App.
Then create a Dimmer item "RenaultCar_ChargeLimit" and set it to 80% for example. This rule will change the RenaultCar_ChargingMode to schedule_mode when the limit is reached.
This stops charging after the battery level reaches the charge limit.
ChargeRenaultCarLimit Code
```
configuration: {}
triggers:
- id: "1"
configuration:
itemName: RenaultCar_BatteryLevel
type: core.ItemStateUpdateTrigger
- id: "3"
configuration:
itemName: RenaultCar_ChargeLimit
type: core.ItemStateUpdateTrigger
- id: "4"
configuration:
itemName: RenaultCar_PlugStatus
type: core.ItemStateUpdateTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
type: application/vnd.openhab.dsl.rule
script: >-
if ( RenaultCar_PlugStatus.state.toString == 'PLUGGED' ) {
if ( RenaultCar_BatteryLevel.state as Number >= RenaultCar_ChargeLimit.state as Number ) {
if (RenaultCar_ChargingMode.state.toString == 'ALWAYS_CHARGING' ) {
RenaultCar_ChargingMode.sendCommand("SCHEDULE_MODE")
}
} else {
if (RenaultCar_ChargingMode.state.toString == 'SCHEDULE_MODE' ) {
RenaultCar_ChargingMode.sendCommand("ALWAYS_CHARGING")
}
}
}
type: script.ScriptAction
```

View File

@ -21,6 +21,10 @@
<label>Color Temperature</label>
<description>This channel supports adjusting the color temperature from cold (0%) to warm (100%).</description>
<category>ColorLight</category>
<tags>
<tag>Control</tag>
<tag>ColorTemperature</tag>
</tags>
</channel-type>
<channel-type id="program" advanced="true">

View File

@ -10,6 +10,8 @@
<channels>
<channel id="temperatureIndoor" typeId="temperatureIndoor"/>
<channel id="temperatureOutdoor" typeId="system.outdoor-temperature"/>
<channel id="temperatureWindChill" typeId="temperatureWindChill"/>
<channel id="temperatureDewPoint" typeId="temperatureDewPoint"/>
<channel id="humidityIndoor" typeId="humidityIndoor"/>
<channel id="humidityOutdoor" typeId="system.atmospheric-humidity"/>
<channel id="pressureAbsolute" typeId="pressureAbsolute"/>
@ -51,6 +53,16 @@
feature allowing you to manually trigger or use a rule to handle the reboots</description>
<default>2000</default>
</parameter>
<parameter name="id" type="text">
<label>Station ID</label>
<description>The station ID used to connect to WeatherUnderGround. Leave blank if you wish to poll the livedata.</description>
</parameter>
<parameter name="password" type="text">
<context>password</context>
<label>Station Password</label>
<description>The station password used to connect to WeatherUnderGround. Leave blank if you wish to poll the
livedata.</description>
</parameter>
</config-description>
</thing-type>
<channel-type id="responseTime" advanced="true">
@ -70,6 +82,20 @@
</tags>
<state pattern="%.1f %unit%" readOnly="true"/>
</channel-type>
<channel-type id="temperatureWindChill" advanced="true">
<item-type>Number:Temperature</item-type>
<label>Wind Chill Temperature</label>
<description>Wind Chill Temperature Outdoors</description>
<category>Temperature</category>
<state pattern="%.1f %unit%" readOnly="true"/>
</channel-type>
<channel-type id="temperatureDewPoint" advanced="true">
<item-type>Number:Temperature</item-type>
<label>Dew Point Temperature</label>
<description>Dew Point Temperature Outdoors</description>
<category>Temperature</category>
<state pattern="%.1f %unit%" readOnly="true"/>
</channel-type>
<channel-type id="humidityIndoor">
<item-type>Number:Dimensionless</item-type>
<label>Indoor Humidity</label>
@ -174,10 +200,6 @@
<label>Wind Max Gust</label>
<description>Max wind gust for today</description>
<category>Wind</category>
<tags>
<tag>Measurement</tag>
<tag>Wind</tag>
</tags>
<state pattern="%.1f %unit%" readOnly="true"/>
</channel-type>
<channel-type id="rainHourlyRate">
@ -207,10 +229,6 @@
<label>Rain for Week</label>
<description>Weekly Rain</description>
<category>Rain</category>
<tags>
<tag>Measurement</tag>
<tag>Rain</tag>
</tags>
<state pattern="%.2f %unit%" readOnly="true"/>
</channel-type>
<channel-type id="rainForMonth" advanced="true">
@ -218,10 +236,6 @@
<label>Rain for Month</label>
<description>Rain since 12:00 on the 1st of this month</description>
<category>Rain</category>
<tags>
<tag>Measurement</tag>
<tag>Rain</tag>
</tags>
<state pattern="%.2f %unit%" readOnly="true"/>
</channel-type>
<channel-type id="rainForYear">
@ -229,10 +243,6 @@
<label>Rain for Year</label>
<description>Total rain since 12:00 on 1st Jan</description>
<category>Rain</category>
<tags>
<tag>Measurement</tag>
<tag>Rain</tag>
</tags>
<state pattern="%.2f %unit%" readOnly="true"/>
</channel-type>
<channel-type id="lastUpdatedTime" advanced="true">

View File

@ -430,9 +430,6 @@
<item-type>String</item-type>
<label>Mode</label>
<description>Thermostat Mode Setting</description>
<tags>
<tag>heating</tag>
</tags>
<state pattern="%s" readOnly="false">
<options>
<option value="AUTOMATIC">AUTOMATIC</option>
@ -449,7 +446,8 @@
<description>Current measured room temperature</description>
<category>Temperature</category>
<tags>
<tag>heating</tag>
<tag>Measurement</tag>
<tag>Temperature</tag>
</tags>
<state pattern="%.1f %unit%" readOnly="true"/>
</channel-type>
@ -460,7 +458,8 @@
<description>Thermostat Setpoint temperature</description>
<category>Temperature</category>
<tags>
<tag>heating</tag>
<tag>Setpoint</tag>
<tag>Temperature</tag>
</tags>
<state min="4.5" max="30.5" step="0.5" pattern="%.1f %unit%"/>
</channel-type>

View File

@ -11,10 +11,19 @@
<channels>
<channel id="batterylevel" typeId="system.battery-level"/>
<channel id="batteryavailableenergy" typeId="batteryavailableenergy"/>
<channel id="plugstatus" typeId="plugstatus"/>
<channel id="chargingstatus" typeId="chargingstatus"/>
<channel id="chargingmode" typeId="chargingmode"/>
<channel id="chargingremainingtime" typeId="chargingremainingtime"/>
<channel id="estimatedrange" typeId="estimatedrange"/>
<channel id="odometer" typeId="odometer"/>
<channel id="hvacstatus" typeId="hvacstatus"/>
<channel id="hvactargettemperature" typeId="hvactargettemperature"/>
<channel id="externaltemperature" typeId="externaltemperature"/>
<channel id="image" typeId="image"/>
<channel id="location" typeId="system.location"/>
<channel id="odometer" typeId="odometer"/>
<channel id="locationupdated" typeId="locationupdated"/>
</channels>
<config-description>
@ -69,20 +78,72 @@
<description>Interval the car is polled in minutes.</description>
<default>10</default>
</parameter>
<parameter name="updateDelay" type="integer" unit="s" min="5" max="120">
<label>Update Delay</label>
<description>How long to wait for commands to reach car and update to server in seconds.</description>
<default>30</default>
</parameter>
</config-description>
</thing-type>
<!-- Sample Channel Type -->
<channel-type id="hvacstatus">
<item-type>Switch</item-type>
<label>HVAC Status</label>
<state readOnly="true"></state>
<channel-type id="batteryavailableenergy">
<item-type>Number:Energy</item-type>
<label>Battery Energy Available</label>
<state pattern="%.1f %unit%" readOnly="true"></state>
</channel-type>
<channel-type id="image">
<channel-type id="plugstatus">
<item-type>String</item-type>
<label>Image URL</label>
<description>Image URL of MyRenault</description>
<state readOnly="true"></state>
<label>Plug Status</label>
<description>Status of charging plug.</description>
<state readOnly="true">
<options>
<option value="UNPLUGGED">Unplugged</option>
<option value="PLUGGED">Plugged</option>
<option value="PLUG_ERROR">Plug error</option>
<option value="PLUG_UNKNOWN">Plug unknown</option>
<option value="UNKNOWN">Unknown</option>
</options>
</state>
</channel-type>
<channel-type id="chargingstatus">
<item-type>String</item-type>
<label>Charging Status</label>
<state readOnly="true">
<options>
<option value="NOT_IN_CHARGE">Not charging</option>
<option value="WAITING_FOR_A_PLANNED_CHARGE">Waiting for schedule</option>
<option value="CHARGE_ENDED">Charge ended</option>
<option value="WAITING_FOR_CURRENT_CHARGE">Waiting for charge</option>
<option value="ENERGY_FLAP_OPENED">Plug flap opened</option>
<option value="CHARGE_IN_PROGRESS">Charge in progress</option>
<option value="CHARGE_ERROR">Charge error</option>
<option value="UNAVAILABLE">Unavailable</option>
<option value="UNKNOWN">Unknown</option>
</options>
</state>
</channel-type>
<channel-type id="chargingmode">
<item-type>String</item-type>
<label>Charging Mode</label>
<state readOnly="false">
<options>
<option value="UNKNOWN">Unknown</option>
<option value="SCHEDULE_MODE">Schedule mode</option>
<option value="ALWAYS_CHARGING">Instant charge</option>
</options>
</state>
</channel-type>
<channel-type id="chargingremainingtime">
<item-type>Number:Time</item-type>
<label>Charging Time Remaining</label>
<category>Time</category>
<state pattern="%d %unit%" readOnly="true"></state>
</channel-type>
<channel-type id="estimatedrange">
<item-type>Number:Length</item-type>
<label>Estimated Range</label>
<description>Estimated range of the car.</description>
<state pattern="%.1f %unit%" readOnly="true"></state>
</channel-type>
<channel-type id="odometer">
<item-type>Number:Length</item-type>
@ -90,5 +151,42 @@
<description>Total distance travelled</description>
<state pattern="%.1f %unit%" readOnly="true"></state>
</channel-type>
<channel-type id="hvacstatus">
<item-type>String</item-type>
<label>HVAC Status (ON | OFF | PENDING)</label>
<state readOnly="false">
<options>
<option value="ON">On</option>
<option value="PENDING">Pending</option>
<option value="OFF">Off</option>
</options>
</state>
</channel-type>
<channel-type id="hvactargettemperature" advanced="true">
<item-type>Number:Temperature</item-type>
<label>HVAC Target Temperature</label>
<description>HVAC target temperature (19 to 21)</description>
<category>Temperature</category>
<state pattern="%.1f %unit%"></state>
</channel-type>
<channel-type id="externaltemperature" advanced="true">
<item-type>Number:Temperature</item-type>
<label>External Temperature</label>
<description>Temperature outside of the car</description>
<category>Temperature</category>
<state pattern="%.1f %unit%" readOnly="true"></state>
</channel-type>
<channel-type id="image">
<item-type>String</item-type>
<label>Image URL</label>
<description>Image URL of MyRenault</description>
<state readOnly="true"></state>
</channel-type>
<channel-type id="locationupdated">
<item-type>DateTime</item-type>
<label>Location Update</label>
<description>Timestamp of the last location update</description>
<state pattern="%1$tH:%1$tM %1$td.%1$tm.%1$tY" readOnly="true"></state>
</channel-type>
</thing:thing-descriptions>

View File

@ -251,6 +251,7 @@
<item-type>Number:Dimensionless</item-type>
<label>Humidity</label>
<description>Relative humidity in % (0..100%)</description>
<category>Humidity</category>
<tags>
<tag>Measurement</tag>
<tag>Humidity</tag>

View File

@ -56,21 +56,12 @@
<label>Background Color</label>
<description>The color channel allows to control the color of a light.</description>
<category>ColorLight</category>
<tags>
<tag>Control</tag>
<tag>Light</tag>
</tags>
</channel-type>
<channel-type id="nightlight">
<item-type>Switch</item-type>
<label>nightlight</label>
<description>The nightlight channel allows to switch to nightlight mode.
</description>
<tags>
<tag>Switch</tag>
<tag>Light</tag>
</tags>
<description>The nightlight channel allows to switch to nightlight mode.</description>
</channel-type>
</thing:thing-descriptions>