Updated external content (Jenkins build 2488)

final
openHAB Build Server 2025-01-23 05:53:37 +00:00
parent 3f3d4e1803
commit 381fd5fecf
9 changed files with 46 additions and 24 deletions

File diff suppressed because one or more lines are too long

View File

@ -45,7 +45,9 @@ The following configuration parameters are available for the binding/bridge:
| username | yes | The username to login at Easee Cloud service. This should be an e-mail address or phone number. | | username | yes | The username to login at Easee Cloud service. This should be an e-mail address or phone number. |
| passord | yes | Your password to login at Easee Cloud service. | | passord | yes | Your password to login at Easee Cloud service. |
| siteId | yes | The ID of the site containing the wallbox(es) and circuit(s) that should be integrated into openHAB. The ID of your site can be found via the sites overview (<https://easee.cloud/sites>). You just need to click one of the sites listed there, the id will be part of the URL which is then opened. It will be a number with typically 6 digits. | | siteId | yes | The ID of the site containing the wallbox(es) and circuit(s) that should be integrated into openHAB. The ID of your site can be found via the sites overview (<https://easee.cloud/sites>). You just need to click one of the sites listed there, the id will be part of the URL which is then opened. It will be a number with typically 6 digits. |
| dataPollingInterval | no | Interval (seconds) in which live data values are retrieved from the Easee Cloud API. (default = 120) | | dataPollingInterval | no | Interval (seconds) in which live data values are retrieved from the Easee Cloud API. (default = 60) |
| webRequestInitialDelay | no | Initial time (seconds) to wait before first request is sent to the Easee Cloud API. (default = 10) |
| webRequestInterval | no | Interval (seconds) between two subsequent requests to be sent to the Easee Cloud API. (default = 2) |
## Thing configuration ## Thing configuration

View File

@ -202,6 +202,8 @@ Once the actions instance has been retrieved, you can invoke the following metho
- `forceBatteryCharging(QuantityType<Power> power)`: Force the battery to charge with the specified power (removes all battery control schedules first and applies all the time). - `forceBatteryCharging(QuantityType<Power> power)`: Force the battery to charge with the specified power (removes all battery control schedules first and applies all the time).
- `addForcedBatteryChargingSchedule(LocalTime from, LocalTime until, QuantityType<Power> power)`: Add a schedule to force the battery to charge with the specified power in the specified time range. - `addForcedBatteryChargingSchedule(LocalTime from, LocalTime until, QuantityType<Power> power)`: Add a schedule to force the battery to charge with the specified power in the specified time range.
- `addForcedBatteryChargingSchedule(ZonedDateTime from, ZonedDateTime until, QuantityType<Power> power)`: Add a schedule to force the battery to charge with the specified power in the specified time range. - `addForcedBatteryChargingSchedule(ZonedDateTime from, ZonedDateTime until, QuantityType<Power> power)`: Add a schedule to force the battery to charge with the specified power in the specified time range.
- `setBackupReservedBatteryCapacity(int percent)`: Set the reserved battery capacity for backup power.
- `setBackupReservedBatteryCapacity(PercentType percent)`: Set the reserved battery capacity for backup power.
All methods return a boolean value indicating whether the action was successful. All methods return a boolean value indicating whether the action was successful.
@ -218,6 +220,8 @@ froniusInverterActions.resetBatteryControl();
froniusInverterActions.addHoldBatteryChargeSchedule(time.toZDT('18:00'), time.toZDT('22:00')); froniusInverterActions.addHoldBatteryChargeSchedule(time.toZDT('18:00'), time.toZDT('22:00'));
froniusInverterActions.addForcedBatteryChargingSchedule(time.toZDT('22:00'), time.toZDT('23:59'), Quantity('5 kW')); froniusInverterActions.addForcedBatteryChargingSchedule(time.toZDT('22:00'), time.toZDT('23:59'), Quantity('5 kW'));
froniusInverterActions.addForcedBatteryChargingSchedule(time.toZDT('00:00'), time.toZDT('06:00'), Quantity('5 kW')); froniusInverterActions.addForcedBatteryChargingSchedule(time.toZDT('00:00'), time.toZDT('06:00'), Quantity('5 kW'));
froniusInverterActions.setBackupReservedBatteryCapacity(50);
``` ```
## Full Example ## Full Example

View File

@ -77,7 +77,7 @@ Thing lgwebos:WebOSTV:tv1 [host="192.168.2.119", key="6ef1dff6c7c936c8dc5056fc85
| volume | Dimmer | Current volume setting. Setting and reporting absolute percent values only works when using internal speakers. When connected to an external amp, the volume should be controlled using increase and decrease commands. | RW | | volume | Dimmer | Current volume setting. Setting and reporting absolute percent values only works when using internal speakers. When connected to an external amp, the volume should be controlled using increase and decrease commands. | RW |
| channel | String | Current channel. Use the channel number or channel id as command to update the channel. | RW | | channel | String | Current channel. Use the channel number or channel id as command to update the channel. | RW |
| toast | String | Displays a short message on the TV screen. See also rules section. | W | | toast | String | Displays a short message on the TV screen. See also rules section. | W |
| mediaPlayer | Player | Media control player | W | | mediaPlayer | Player | Media control player | RW |
| mediaStop | Switch | Media control stop | W | | mediaStop | Switch | Media control stop | W |
| appLauncher | String | Application ID of currently running application. This also allows to start applications on the TV by sending a specific Application ID to this channel. | RW | | appLauncher | String | Application ID of currently running application. This also allows to start applications on the TV by sending a specific Application ID to this channel. | RW |
| rcButton | String | Simulates pressing of a button on the TV's remote control. See below for a list of button names. | W | | rcButton | String | Simulates pressing of a button on the TV's remote control. See below for a list of button names. | W |
@ -86,6 +86,9 @@ The available application IDs for your TV can be listed using a console command
You have to use one of these IDs as command for the appLauncher channel. You have to use one of these IDs as command for the appLauncher channel.
Here are examples of values that could be available for your TV: airplay, amazon, com.apple.appletv, com.webos.app.browser, com.webos.app.externalinput.av1, com.webos.app.externalinput.av2, com.webos.app.externalinput.component, com.webos.app.hdmi1, com.webos.app.hdmi2, com.webos.app.hdmi3, com.webos.app.hdmi4, com.webos.app.homeconnect, com.webos.app.igallery, com.webos.app.livetv, com.webos.app.music, com.webos.app.photovideo, com.webos.app.recordings, com.webos.app.screensaver, googleplaymovieswebos, netflix, youtube.leanback.v4. Here are examples of values that could be available for your TV: airplay, amazon, com.apple.appletv, com.webos.app.browser, com.webos.app.externalinput.av1, com.webos.app.externalinput.av2, com.webos.app.externalinput.component, com.webos.app.hdmi1, com.webos.app.hdmi2, com.webos.app.hdmi3, com.webos.app.hdmi4, com.webos.app.homeconnect, com.webos.app.igallery, com.webos.app.livetv, com.webos.app.music, com.webos.app.photovideo, com.webos.app.recordings, com.webos.app.screensaver, googleplaymovieswebos, netflix, youtube.leanback.v4.
Older WebOS versions don't publish its play state, so the `mediaPlayer` channel is write-only.
Starting from WebOS version 7, the `mediaPlayer` channel receives the PLAY/PAUSE state from the TV.
### Remote Control Buttons ### Remote Control Buttons
This is a list of button codes that are known to work with several LG WebOS TV models. This is a list of button codes that are known to work with several LG WebOS TV models.
@ -148,7 +151,6 @@ String LG_TV0_Toast { channel="lgwebos:WebOSTV:3aab9eea
Switch LG_TV0_Stop "Stop" { autoupdate="false", channel="lgwebos:WebOSTV:3aab9eea-953b-4272-bdbd-f0cd0ecf4a46:mediaStop" } Switch LG_TV0_Stop "Stop" { autoupdate="false", channel="lgwebos:WebOSTV:3aab9eea-953b-4272-bdbd-f0cd0ecf4a46:mediaStop" }
String LG_TV0_Application "Application [%s]" { channel="lgwebos:WebOSTV:3aab9eea-953b-4272-bdbd-f0cd0ecf4a46:appLauncher"} String LG_TV0_Application "Application [%s]" { channel="lgwebos:WebOSTV:3aab9eea-953b-4272-bdbd-f0cd0ecf4a46:appLauncher"}
Player LG_TV0_Player { channel="lgwebos:WebOSTV:3aab9eea-953b-4272-bdbd-f0cd0ecf4a46:mediaPlayer"} Player LG_TV0_Player { channel="lgwebos:WebOSTV:3aab9eea-953b-4272-bdbd-f0cd0ecf4a46:mediaPlayer"}
``` ```
demo.sitemap: demo.sitemap:

View File

@ -35,10 +35,7 @@ The binding has the following extensions:
The rest of this page contains details for configuring this binding: The rest of this page contains details for configuring this binding:
{::options toc_levels="2..4"/} [[toc]]
- TOC
{:toc}
## Main Features ## Main Features

View File

@ -69,7 +69,7 @@ See section [Discovery](#discovery) for details.
| shellydimmer | Shelly Dimmer | SHDM-1 | | shellydimmer | Shelly Dimmer | SHDM-1 |
| shellydimmer2 | Shelly Dimmer2 | SHDM-2 | | shellydimmer2 | Shelly Dimmer2 | SHDM-2 |
| shellyix3 | Shelly ix3 | SHIX3-1 | | shellyix3 | Shelly ix3 | SHIX3-1 |
| shellyuni | Shelly UNI, Shelly Plus UNI | SHUNI-1, SNSN-0043X | | shellyuni | Shelly UNI, Shelly Plus UNI | SHUNI-1 |
| shellyplug | Shelly Plug | SHPLG2-1 | | shellyplug | Shelly Plug | SHPLG2-1 |
| shellyplugs | Shelly Plug-S | SHPLG-S | | shellyplugs | Shelly Plug-S | SHPLG-S |
| shellyem | Shelly EM with integrated Power Meters | SHEM | | shellyem | Shelly EM with integrated Power Meters | SHEM |
@ -103,13 +103,14 @@ See section [Discovery](#discovery) for details.
| shellyplus1pm | Shelly Plus 1PM with 1x relay + power meter | SNSW-001P16EU, S3SW-001P16EU | | shellyplus1pm | Shelly Plus 1PM with 1x relay + power meter | SNSW-001P16EU, S3SW-001P16EU |
| shellyplus2pm-relay | Shelly Plus 2PM with 2x relay + power meter, relay mode | SNSW-002P16EU, SNSW-102P16EU | | shellyplus2pm-relay | Shelly Plus 2PM with 2x relay + power meter, relay mode | SNSW-002P16EU, SNSW-102P16EU |
| shellyplus2pm-roller | Shelly Plus 2PM with 2x relay + power meter, roller mode | SNSW-002P16EU, SNSW-102P16EU | | shellyplus2pm-roller | Shelly Plus 2PM with 2x relay + power meter, roller mode | SNSW-002P16EU, SNSW-102P16EU |
| shellyplusplug | Shelly Plug-S | SNPL-00112EU | | shellyplusplug | Shelly Plus Plug | SNPL-00112EU |
| shellyplusplug | Shelly Plug-IT | SNPL-00110IT | | shellyplusplug | Shelly Plus Plug-IT | SNPL-00110IT |
| shellyplusplug | Shelly Plug-UK | SNPL-00112UK | | shellyplusplug | Shelly Plus Plug-UK | SNPL-00112UK |
| shellyplusplugus | Shelly Plug-US | SNPL-00116US | | shellyplusplugus | Shelly Plus Plug-US | SNPL-00116US |
| shellyplusi4 | Shelly Plus i4 with 4x AC input | SNSN-0024X, S3SN-0024X | | shellyplusi4 | Shelly Plus i4 with 4x AC input | SNSN-0024X, S3SN-0024X |
| shellyplusi4dc | Shelly Plus i4 with 4x DC input | SNSN-0D24X | | shellyplusi4dc | Shelly Plus i4 with 4x DC input | SNSN-0D24X |
| shellyplus10v | Shelly Plus Dimmer 0/10V (Gen 2) or 0/1/10V (Gen 3) | SNDM-00100WW, S3DM-0010WW | | shellyplus10v | Shelly Plus Dimmer 0/10V (Gen 2) or 0/1/10V (Gen 3) | SNDM-00100WW, S3DM-0010WW |
| shellyplusuni | Shelly Plus UNI | SNSN-0043X |
| shellyplusht | Shelly Plus HT with temperature + humidity sensor | SNSN-0013A | | shellyplusht | Shelly Plus HT with temperature + humidity sensor | SNSN-0013A |
| shellyhtg3 | Shelly Plus HT Gen 3 with temperature + humidity sensor | S3SN-0U12A | | shellyhtg3 | Shelly Plus HT Gen 3 with temperature + humidity sensor | S3SN-0U12A |
| shellyplussmoke | Shelly Plus Smoke sensor | SNSN-0031Z | | shellyplussmoke | Shelly Plus Smoke sensor | SNSN-0031Z |

View File

@ -52,6 +52,7 @@ Each service needs one `xx-site` for your location and at least one photovoltaic
[Solcast service](https://solcast.com/) requires a personal registration with an e-mail address. [Solcast service](https://solcast.com/) requires a personal registration with an e-mail address.
A free version for your personal home PV system is available in [Hobbyist Plan](https://toolkit.solcast.com.au/register/hobbyist) A free version for your personal home PV system is available in [Hobbyist Plan](https://toolkit.solcast.com.au/register/hobbyist)
(Limited to 10 API requests per day).
You need to configure your home photovoltaic system within the web interface. You need to configure your home photovoltaic system within the web interface.
The `resourceId` for each PV plane is provided afterwards. The `resourceId` for each PV plane is provided afterwards.
@ -342,7 +343,7 @@ rule "Exception Handling"
when when
System started System started
then then
val solcastActions = getActions("solarforecast","solarforecast:sc-site:3cadcde4dc") val solcastActions = getActions("solarforecast","solarforecast:sc-site:homeSite")
try { try {
val forecast = solcastActions.getPower(solcastActions.getForecastEnd.plus(30,ChronoUnit.MINUTES)) val forecast = solcastActions.getPower(solcastActions.getForecastEnd.plus(30,ChronoUnit.MINUTES))
} catch(RuntimeException e) { } catch(RuntimeException e) {
@ -371,10 +372,10 @@ rule "Solcast Actions"
val sixDayPessimistic = solarforecastActions.getEnergy(startTimestamp,endTimestamp, "pessimistic") val sixDayPessimistic = solarforecastActions.getEnergy(startTimestamp,endTimestamp, "pessimistic")
logInfo("SF Tests","Forecast Pessimist 6 days "+ sixDayPessimistic) logInfo("SF Tests","Forecast Pessimist 6 days "+ sixDayPessimistic)
// Query forecast TimesSeries Items via historicStata // Query forecast TimesSeries Items via persistedState
val energyAverage = (Solcast_Site_Average_Energyestimate.historicState(now.plusDays(1)).state as Number) val energyAverage = (Solcast_Site_Average_Energyestimate.persistedState(now.plusDays(1)).state as Number)
logInfo("SF Tests","Average energy {}",energyAverage) logInfo("SF Tests","Average energy {}",energyAverage)
val energyOptimistic = (Solcast_Site_Optimistic_Energyestimate.historicState(now.plusDays(1)).state as Number) val energyOptimistic = (Solcast_Site_Optimistic_Energyestimate.persistedState(now.plusDays(1)).state as Number)
logInfo("SF Tests","Optimist energy {}",energyOptimistic) logInfo("SF Tests","Optimist energy {}",energyOptimistic)
end end
``` ```
@ -398,11 +399,11 @@ end
rule "Solacast Updates" rule "Solacast Updates"
when when
Thing "solarforecast:sc-plane:homeSouthWest" changed to INITIALIZING or // Thing status changed to INITIALIZING Thing "solarforecast:sc-plane:homeSite:homeSouthWest" changed to INITIALIZING or // Thing status changed to INITIALIZING
Time cron "0 30 0/2 ? * * *" // every 2 hours at minute 30 Time cron "0 30 0/2 ? * * *" // every 2 hours at minute 30
then then
if(PV_Daytime.state == ON) { if(PV_Daytime.state == ON) {
val solarforecastActions = getActions("solarforecast","solarforecast:sc-plane:homeSouthWest") val solarforecastActions = getActions("solarforecast","solarforecast:sc-plane:homeSite:homeSouthWest")
solarforecastActions.triggerUpdate solarforecastActions.triggerUpdate
} // reject updates during night } // reject updates during night
end end

View File

@ -32,11 +32,7 @@ This service is provided "AS IS", and the user takes full responsibility of any
## Table of Contents ## Table of Contents
{::options toc_levels="2..4"/} [[toc]]
<!-- markdownlint-disable-next-line ul-style -->
- TOC
{:toc}
## Prerequisites ## Prerequisites

View File

@ -129,6 +129,25 @@
<config-description-ref uri="thing-type:shelly:relay-gen2"/> <config-description-ref uri="thing-type:shelly:relay-gen2"/>
</thing-type> </thing-type>
<thing-type id="shellyplusuni">
<label>Shelly Plus UNI</label>
<description>@text/thing-type.shelly.shellyplusuni.description</description>
<channel-groups>
<channel-group id="relay1" typeId="relayChannel">
<label>@text/channel-group-type.shelly.relayChannel1.label</label>
</channel-group>
<channel-group id="relay2" typeId="relayChannel">
<label>@text/channel-group-type.shelly.relayChannel2.label</label>
</channel-group>
<channel-group id="sensors" typeId="sensorData"/>
<channel-group id="device" typeId="deviceStatus"/>
</channel-groups>
<representation-property>serviceName</representation-property>
<config-description-ref uri="thing-type:shelly:relay"/>
</thing-type>
<thing-type id="shelly1mini"> <thing-type id="shelly1mini">
<label>ShellyPlus 1 Mini</label> <label>ShellyPlus 1 Mini</label>
<description>@text/thing-type.shelly.shelly1mini.description</description> <description>@text/thing-type.shelly.shelly1mini.description</description>