mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-10 15:11:59 +01:00
[openweathermap] Add daily moon channels to OneCall Thing (#16350)
* [openweathermap] Add daily moon channels to OneCall Thing This adds the daily moon data provided by the API (https://openweathermap.org/api/one-call-api#parameter) to the OneCall Thing. Also-by: Florian Hotze <florianh_dev@icloud.com> Signed-off-by: Erik De Boeck <deboeck.erik@gmail.com> Signed-off-by: Ciprian Pascu <contact@ciprianpascu.ro>
This commit is contained in:
parent
aa921731f3
commit
7f11ad1dd5
@ -192,10 +192,13 @@ In a future release, the `forecastHours01` to `forecastHours48` channel groups w
|
||||
### Daily Forecast
|
||||
|
||||
| Channel Group ID | Channel ID | Item Type | Description |
|
||||
|---------------------------------------------------------------------------------|----------------------|----------------------|----------------------------------------------------------------------------------|
|
||||
|---------------------------------------------------------------------------------|----------------------|----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| forecastToday, forecastTomorrow, forecastDay2, ... forecastDay16 | time-stamp | DateTime | Date of data forecasted. |
|
||||
| forecastDaily, forecastToday, forecastTomorrow, forecastDay2, ... forecastDay16 | sunrise | DateTime | Time of sunrise for the given day. |
|
||||
| forecastDaily, forecastToday, forecastTomorrow, forecastDay2, ... forecastDay16 | sunset | DateTime | Time of sunset for the given day. |
|
||||
| forecastDaily, forecastToday, forecastTomorrow, forecastDay2, ... forecastDay16 | moonrise | DateTime | Time of moonrise for the given day. |
|
||||
| forecastDaily, forecastToday, forecastTomorrow, forecastDay2, ... forecastDay16 | moonset | DateTime | Time of moonset for the given day. |
|
||||
| forecastDaily, forecastToday, forecastTomorrow, forecastDay2, ... forecastDay16 | moon-phase | Number:Dimensionless | Moon phase for the given day. 0 and 1 are 'new moon', 0.25 is 'first quarter moon', 0.5 is 'full moon' and 0.75 is 'last quarter moon'. The periods in between are called 'waxing crescent', 'waxing gibous', 'waning gibous', and 'waning crescent', respectively. |
|
||||
| forecastDaily, forecastToday, forecastTomorrow, forecastDay2, ... forecastDay16 | condition | String | Forecast weather condition. |
|
||||
| forecastDaily, forecastToday, forecastTomorrow, forecastDay2, ... forecastDay16 | condition-id | String | Id of the forecasted weather condition. **Advanced** |
|
||||
| forecastDaily, forecastToday, forecastTomorrow, forecastDay2, ... forecastDay16 | icon | Image | Icon representing the forecasted weather condition. |
|
||||
@ -224,6 +227,7 @@ In a future release, the `forecastHours01` to `forecastHours48` channel groups w
|
||||
| forecastDaily, forecastToday, forecastTomorrow, forecastDay2, ... forecastDay7 | apparent-night | Number:Temperature | Expected apparent temperature in the night. Only available in the One Call API |
|
||||
|
||||
The `forecastDaily` channel group provides [time series support](#persisting-time-series).
|
||||
The `moon*` channels are currently only provided by the OneCall API Weather and Forecast Thing.
|
||||
|
||||
In a future release, the `forecastToday` to `forecastDay7` channel groups won't be created anymore by default as usage of the time series channels instead is encouraged.
|
||||
|
||||
|
@ -83,6 +83,9 @@ public class OpenWeatherMapBindingConstants {
|
||||
public static final String CHANNEL_TIME_STAMP = "time-stamp";
|
||||
public static final String CHANNEL_SUNRISE = "sunrise";
|
||||
public static final String CHANNEL_SUNSET = "sunset";
|
||||
public static final String CHANNEL_MOONRISE = "moonrise";
|
||||
public static final String CHANNEL_MOONSET = "moonset";
|
||||
public static final String CHANNEL_MOON_PHASE = "moon-phase";
|
||||
public static final String CHANNEL_CONDITION = "condition";
|
||||
public static final String CHANNEL_CONDITION_ID = "condition-id";
|
||||
public static final String CHANNEL_CONDITION_ICON = "icon";
|
||||
|
@ -28,6 +28,10 @@ public class Daily {
|
||||
private int dt;
|
||||
private int sunrise;
|
||||
private int sunset;
|
||||
private int moonrise;
|
||||
private int moonset;
|
||||
@SerializedName("moon_phase")
|
||||
private double moonPhase;
|
||||
private Temp temp;
|
||||
@SerializedName("feels_like")
|
||||
private FeelsLikeTemp feelsLikeTemp;
|
||||
@ -61,6 +65,18 @@ public class Daily {
|
||||
return sunset;
|
||||
}
|
||||
|
||||
public int getMoonrise() {
|
||||
return moonrise;
|
||||
}
|
||||
|
||||
public int getMoonset() {
|
||||
return moonset;
|
||||
}
|
||||
|
||||
public double getMoonPhase() {
|
||||
return moonPhase;
|
||||
}
|
||||
|
||||
public Temp getTemp() {
|
||||
return temp;
|
||||
}
|
||||
|
@ -666,6 +666,15 @@ public class OpenWeatherMapOneCallHandler extends AbstractOpenWeatherMapHandler
|
||||
case CHANNEL_SUNSET:
|
||||
state = getDateTimeTypeState(forecastData.getSunset());
|
||||
break;
|
||||
case CHANNEL_MOONRISE:
|
||||
state = getDateTimeTypeState(forecastData.getMoonrise());
|
||||
break;
|
||||
case CHANNEL_MOONSET:
|
||||
state = getDateTimeTypeState(forecastData.getMoonset());
|
||||
break;
|
||||
case CHANNEL_MOON_PHASE:
|
||||
state = getDecimalTypeState(forecastData.getMoonPhase());
|
||||
break;
|
||||
case CHANNEL_CONDITION:
|
||||
if (!forecastData.getWeather().isEmpty()) {
|
||||
state = getStringTypeState(forecastData.getWeather().get(0).getDescription());
|
||||
|
@ -287,6 +287,14 @@ channel-type.openweathermap.gust-speed.description = Current gust speed.
|
||||
channel-type.openweathermap.hourly-forecast-time-stamp.label = Forecast Time
|
||||
channel-type.openweathermap.hourly-forecast-time-stamp.description = Time of data forecasted.
|
||||
channel-type.openweathermap.hourly-forecast-time-stamp.state.pattern = %1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS
|
||||
channel-type.openweathermap.moon-phase.label = Moon Phase
|
||||
channel-type.openweathermap.moon-phase.description = Moon phase for the given day. 0 and 1 are 'new moon', 0.25 is 'first quarter moon', 0.5 is 'full moon' and 0.75 is 'last quarter moon'. The periods in between are called 'waxing crescent', 'waxing gibous', 'waning gibous', and 'waning crescent', respectively.
|
||||
channel-type.openweathermap.moonrise.label = Moonrise Time
|
||||
channel-type.openweathermap.moonrise.description = Time of moonrise for the given day.
|
||||
channel-type.openweathermap.moonrise.state.pattern = %1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS
|
||||
channel-type.openweathermap.moonset.label = Moonset Time
|
||||
channel-type.openweathermap.moonset.description = Time of moonset for the given day.
|
||||
channel-type.openweathermap.moonset.state.pattern = %1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS
|
||||
channel-type.openweathermap.morning-temperature.label = Morning Temperature
|
||||
channel-type.openweathermap.morning-temperature.description = Forecasted outdoor temperature for the morning.
|
||||
channel-type.openweathermap.night-temperature.label = Night Temperature
|
||||
|
@ -223,6 +223,9 @@
|
||||
<channels>
|
||||
<channel id="sunrise" typeId="sunrise"/>
|
||||
<channel id="sunset" typeId="sunset"/>
|
||||
<channel id="moonrise" typeId="moonrise"/>
|
||||
<channel id="moonset" typeId="moonset"/>
|
||||
<channel id="moon-phase" typeId="moon-phase"/>
|
||||
<channel id="condition" typeId="condition"/>
|
||||
<channel id="condition-id" typeId="condition-id"/>
|
||||
<channel id="icon" typeId="condition-icon"/>
|
||||
@ -258,6 +261,9 @@
|
||||
<channel id="time-stamp" typeId="daily-forecast-time-stamp"/>
|
||||
<channel id="sunrise" typeId="sunrise"/>
|
||||
<channel id="sunset" typeId="sunset"/>
|
||||
<channel id="moonrise" typeId="moonrise"/>
|
||||
<channel id="moonset" typeId="moonset"/>
|
||||
<channel id="moon-phase" typeId="moon-phase"/>
|
||||
<channel id="condition" typeId="condition"/>
|
||||
<channel id="condition-id" typeId="condition-id"/>
|
||||
<channel id="icon" typeId="condition-icon"/>
|
||||
@ -389,6 +395,32 @@
|
||||
<state readOnly="true" pattern="%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="moonrise">
|
||||
<item-type>DateTime</item-type>
|
||||
<label>Moonrise Time</label>
|
||||
<description>Time of moonrise for the given day.</description>
|
||||
<category>Time</category>
|
||||
<state readOnly="true" pattern="%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="moonset">
|
||||
<item-type>DateTime</item-type>
|
||||
<label>Moonset Time</label>
|
||||
<description>Time of moonset for the given day.</description>
|
||||
<category>Time</category>
|
||||
<state readOnly="true" pattern="%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="moon-phase">
|
||||
<item-type>Number</item-type>
|
||||
<label>Moon Phase</label>
|
||||
<description>Moon phase for the given day. 0 and 1 are 'new moon', 0.25 is 'first quarter moon', 0.5 is 'full moon'
|
||||
and 0.75 is 'last quarter moon'. The periods in between are called 'waxing crescent', 'waxing gibous', 'waning
|
||||
gibous', and 'waning crescent', respectively.</description>
|
||||
<category>Moon</category>
|
||||
<state readOnly="true" pattern="%.2f"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="hourly-forecast-time-stamp">
|
||||
<item-type>DateTime</item-type>
|
||||
<label>Forecast Time</label>
|
||||
|
@ -238,7 +238,7 @@
|
||||
</channel-groups>
|
||||
|
||||
<properties>
|
||||
<property name="thingTypeVersion">1</property>
|
||||
<property name="thingTypeVersion">2</property>
|
||||
</properties>
|
||||
<representation-property>location</representation-property>
|
||||
|
||||
|
@ -143,6 +143,20 @@
|
||||
<type>openweathermap:snow</type>
|
||||
</add-channel>
|
||||
</instruction-set>
|
||||
<instruction-set targetVersion="2">
|
||||
<add-channel id="moonrise"
|
||||
groupIds="forecastDaily,forecastToday,forecastTomorrow,forecastDay2,forecastDay3,forecastDay4,forecastDay5,forecastDay6,forecastDay7">
|
||||
<type>openweathermap:moonrise</type>
|
||||
</add-channel>
|
||||
<add-channel id="moonset"
|
||||
groupIds="forecastDaily,forecastToday,forecastTomorrow,forecastDay2,forecastDay3,forecastDay4,forecastDay5,forecastDay6,forecastDay7">
|
||||
<type>openweathermap:moonset</type>
|
||||
</add-channel>
|
||||
<add-channel id="moon-phase"
|
||||
groupIds="forecastDaily,forecastToday,forecastTomorrow,forecastDay2,forecastDay3,forecastDay4,forecastDay5,forecastDay6,forecastDay7">
|
||||
<type>openweathermap:moon-phase</type>
|
||||
</add-channel>
|
||||
</instruction-set>
|
||||
</thing-type>
|
||||
|
||||
</update:update-descriptions>
|
||||
|
Loading…
Reference in New Issue
Block a user