[solarforecast] Add missing @ActionOutput annotation (#17506)

* [solarforecast] Add missing @ActionOutput annotation

Related to #17504

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
This commit is contained in:
lolodomo 2024-10-04 21:48:14 +02:00 committed by GitHub
parent e0d1defbd8
commit 088099c462
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 15 deletions

View File

@ -197,7 +197,7 @@ Check log or catch exceptions for error handling
- `IllegalArgumentException` thrown in case of problems with call arguments - `IllegalArgumentException` thrown in case of problems with call arguments
- `SolarForecastException` thrown in case of problems with timestamp and available forecast data - `SolarForecastException` thrown in case of problems with timestamp and available forecast data
### `getDay` ### `getEnergyOfDay`
| Parameter | Type | Description | | Parameter | Type | Description |
|-----------|---------------|--------------------------------------------------------------------------------------------| |-----------|---------------|--------------------------------------------------------------------------------------------|
@ -310,7 +310,7 @@ rule "Tomorrow Forecast Calculation"
Item ForecastSolarHome_Today received update Item ForecastSolarHome_Today received update
then then
val solarforecastActions = getActions("solarforecast","solarforecast:fs-site:homeSite") val solarforecastActions = getActions("solarforecast","solarforecast:fs-site:homeSite")
val energyState = solarforecastActions.getDay(LocalDate.now.plusDays(1)) val energyState = solarforecastActions.getEnergyOfDay(LocalDate.now.plusDays(1))
logInfo("SF Tests","{}",energyState) logInfo("SF Tests","{}",energyState)
ForecastSolarHome_Tomorrow.postUpdate(energyState) ForecastSolarHome_Tomorrow.postUpdate(energyState)
end end

View File

@ -26,13 +26,13 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.solarforecast.internal.utils.Utils; import org.openhab.binding.solarforecast.internal.utils.Utils;
import org.openhab.core.automation.annotation.ActionInput; import org.openhab.core.automation.annotation.ActionInput;
import org.openhab.core.automation.annotation.ActionOutput;
import org.openhab.core.automation.annotation.RuleAction; import org.openhab.core.automation.annotation.RuleAction;
import org.openhab.core.library.types.QuantityType; import org.openhab.core.library.types.QuantityType;
import org.openhab.core.library.unit.Units; import org.openhab.core.library.unit.Units;
import org.openhab.core.thing.binding.ThingActions; import org.openhab.core.thing.binding.ThingActions;
import org.openhab.core.thing.binding.ThingActionsScope; import org.openhab.core.thing.binding.ThingActionsScope;
import org.openhab.core.thing.binding.ThingHandler; import org.openhab.core.thing.binding.ThingHandler;
import org.openhab.core.types.State;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -48,9 +48,9 @@ public class SolarForecastActions implements ThingActions {
private Optional<ThingHandler> thingHandler = Optional.empty(); private Optional<ThingHandler> thingHandler = Optional.empty();
@RuleAction(label = "@text/actionDayLabel", description = "@text/actionDayDesc") @RuleAction(label = "@text/actionDayLabel", description = "@text/actionDayDesc")
public QuantityType<Energy> getDay( public @ActionOutput(name = "getEnergyOfDay", type = "QuantityType<Energy>") QuantityType<Energy> getEnergyOfDay(
@ActionInput(name = "localDate", label = "@text/actionInputDayLabel", description = "@text/actionInputDayDesc") LocalDate localDate, @ActionInput(name = "localDate", label = "@text/actionInputDayLabel", description = "@text/actionInputDayDesc") LocalDate localDate,
String... args) { @ActionInput(name = "args") String... args) {
if (thingHandler.isPresent()) { if (thingHandler.isPresent()) {
List<SolarForecast> l = ((SolarForecastProvider) thingHandler.get()).getSolarForecasts(); List<SolarForecast> l = ((SolarForecastProvider) thingHandler.get()).getSolarForecasts();
if (!l.isEmpty()) { if (!l.isEmpty()) {
@ -78,9 +78,9 @@ public class SolarForecastActions implements ThingActions {
} }
@RuleAction(label = "@text/actionPowerLabel", description = "@text/actionPowerDesc") @RuleAction(label = "@text/actionPowerLabel", description = "@text/actionPowerDesc")
public QuantityType<Power> getPower( public @ActionOutput(name = "getPower", type = "QuantityType<Power>") QuantityType<Power> getPower(
@ActionInput(name = "timestamp", label = "@text/actionInputDateTimeLabel", description = "@text/actionInputDateTimeDesc") Instant timestamp, @ActionInput(name = "timestamp", label = "@text/actionInputDateTimeLabel", description = "@text/actionInputDateTimeDesc") Instant timestamp,
String... args) { @ActionInput(name = "args") String... args) {
if (thingHandler.isPresent()) { if (thingHandler.isPresent()) {
List<SolarForecast> l = ((SolarForecastProvider) thingHandler.get()).getSolarForecasts(); List<SolarForecast> l = ((SolarForecastProvider) thingHandler.get()).getSolarForecasts();
if (!l.isEmpty()) { if (!l.isEmpty()) {
@ -108,10 +108,10 @@ public class SolarForecastActions implements ThingActions {
} }
@RuleAction(label = "@text/actionEnergyLabel", description = "@text/actionEnergyDesc") @RuleAction(label = "@text/actionEnergyLabel", description = "@text/actionEnergyDesc")
public QuantityType<Energy> getEnergy( public @ActionOutput(name = "getEnergy", type = "QuantityType<Energy>") QuantityType<Energy> getEnergy(
@ActionInput(name = "start", label = "@text/actionInputDateTimeBeginLabel", description = "@text/actionInputDateTimeBeginDesc") Instant start, @ActionInput(name = "start", label = "@text/actionInputDateTimeBeginLabel", description = "@text/actionInputDateTimeBeginDesc") Instant start,
@ActionInput(name = "end", label = "@text/actionInputDateTimeEndLabel", description = "@text/actionInputDateTimeEndDesc") Instant end, @ActionInput(name = "end", label = "@text/actionInputDateTimeEndLabel", description = "@text/actionInputDateTimeEndDesc") Instant end,
String... args) { @ActionInput(name = "args") String... args) {
if (thingHandler.isPresent()) { if (thingHandler.isPresent()) {
List<SolarForecast> l = ((SolarForecastProvider) thingHandler.get()).getSolarForecasts(); List<SolarForecast> l = ((SolarForecastProvider) thingHandler.get()).getSolarForecasts();
if (!l.isEmpty()) { if (!l.isEmpty()) {
@ -139,7 +139,7 @@ public class SolarForecastActions implements ThingActions {
} }
@RuleAction(label = "@text/actionForecastBeginLabel", description = "@text/actionForecastBeginDesc") @RuleAction(label = "@text/actionForecastBeginLabel", description = "@text/actionForecastBeginDesc")
public Instant getForecastBegin() { public @ActionOutput(name = "getForecastBegin", type = "java.time.Instant") Instant getForecastBegin() {
if (thingHandler.isPresent()) { if (thingHandler.isPresent()) {
List<SolarForecast> forecastObjectList = ((SolarForecastProvider) thingHandler.get()).getSolarForecasts(); List<SolarForecast> forecastObjectList = ((SolarForecastProvider) thingHandler.get()).getSolarForecasts();
return Utils.getCommonStartTime(forecastObjectList); return Utils.getCommonStartTime(forecastObjectList);
@ -150,7 +150,7 @@ public class SolarForecastActions implements ThingActions {
} }
@RuleAction(label = "@text/actionForecastEndLabel", description = "@text/actionForecastEndDesc") @RuleAction(label = "@text/actionForecastEndLabel", description = "@text/actionForecastEndDesc")
public Instant getForecastEnd() { public @ActionOutput(name = "getForecastEnd", type = "java.time.Instant") Instant getForecastEnd() {
if (thingHandler.isPresent()) { if (thingHandler.isPresent()) {
List<SolarForecast> forecastObjectList = ((SolarForecastProvider) thingHandler.get()).getSolarForecasts(); List<SolarForecast> forecastObjectList = ((SolarForecastProvider) thingHandler.get()).getSolarForecasts();
return Utils.getCommonEndTime(forecastObjectList); return Utils.getCommonEndTime(forecastObjectList);
@ -172,15 +172,15 @@ public class SolarForecastActions implements ThingActions {
} }
} }
public static State getDay(ThingActions actions, LocalDate ld, String... args) { public static QuantityType<Energy> getEnergyOfDay(ThingActions actions, LocalDate ld, String... args) {
return ((SolarForecastActions) actions).getDay(ld, args); return ((SolarForecastActions) actions).getEnergyOfDay(ld, args);
} }
public static State getPower(ThingActions actions, Instant dateTime, String... args) { public static QuantityType<Power> getPower(ThingActions actions, Instant dateTime, String... args) {
return ((SolarForecastActions) actions).getPower(dateTime, args); return ((SolarForecastActions) actions).getPower(dateTime, args);
} }
public static State getEnergy(ThingActions actions, Instant begin, Instant end, String... args) { public static QuantityType<Energy> getEnergy(ThingActions actions, Instant begin, Instant end, String... args) {
return ((SolarForecastActions) actions).getEnergy(begin, end, args); return ((SolarForecastActions) actions).getEnergy(begin, end, args);
} }