1515import static org .openhab .binding .smhi .internal .SmhiBindingConstants .*;
1616
1717import java .math .BigDecimal ;
18- import java .time .ZonedDateTime ;
1918import java .time .temporal .ChronoUnit ;
2019import java .util .List ;
2120
@@ -42,7 +41,7 @@ public static State max(SmhiTimeSeries timeSeries, int dayOffset, @Nullable Para
4241 if (metadata == null )
4342 return UnDefType .UNDEF ;
4443
45- List <Forecast > dayForecasts = timeSeries .getDay (dayOffset );
44+ List <Forecast > dayForecasts = timeSeries .getDay (dayOffset , false );
4645 return dayForecasts .stream ().map (forecast -> forecast .getParameter (metadata .name ()))
4746 .filter (p -> !metadata .missingValue ().equals (p )).max (BigDecimal ::compareTo )
4847 .map (value -> Util .getParameterAsState (metadata , value ))
@@ -61,7 +60,7 @@ public static State min(SmhiTimeSeries timeSeries, int dayOffset, @Nullable Para
6160 if (metadata == null )
6261 return UnDefType .UNDEF ;
6362
64- List <Forecast > dayForecasts = timeSeries .getDay (dayOffset );
63+ List <Forecast > dayForecasts = timeSeries .getDay (dayOffset , false );
6564 return dayForecasts .stream ().map (forecast -> forecast .getParameter (metadata .name ()))
6665 .filter (p -> !metadata .missingValue ().equals (p )).min (BigDecimal ::compareTo )
6766 .map (value -> Util .getParameterAsState (metadata , value ))
@@ -83,10 +82,7 @@ public static State total(SmhiTimeSeries timeSeries, int dayOffset, @Nullable Pa
8382 if (baseMetadata == null || totalMetadata == null )
8483 return UnDefType .UNDEF ;
8584
86- ZonedDateTime start = timeSeries .getReferenceTime ().plusDays (dayOffset ).withHour (0 );
87- ZonedDateTime end = start .plusDays (1 );
88- List <Forecast > dayForecasts = timeSeries
89- .filter (forecast -> forecast .getTime ().isAfter (start ) && !forecast .getTime ().isAfter (end ));
85+ List <Forecast > dayForecasts = timeSeries .getDay (dayOffset , true );
9086 if (dayForecasts .size () == 1 ) {
9187 return dayForecasts .getFirst ().getParameterAsState (baseMetadata );
9288 }
@@ -112,7 +108,7 @@ public static State noonOrFirst(SmhiTimeSeries timeSeries, int dayOffset, @Nulla
112108 if (metadata == null )
113109 return UnDefType .UNDEF ;
114110
115- List <Forecast > dayForecasts = timeSeries .getDay (dayOffset );
111+ List <Forecast > dayForecasts = timeSeries .getDay (dayOffset , false );
116112 return dayForecasts .stream ().filter (forecast -> forecast .getTime ().getHour () >= 12 ).findFirst ()
117113 .map (f -> f .getParameterAsState (metadata ))
118114 .orElseGet (() -> Util .getParameterAsState (metadata , metadata .missingValue ()));
0 commit comments