108 lines
3.5 KiB
Python
108 lines
3.5 KiB
Python
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
from platypush.message.event import Event
|
|
|
|
|
|
class NewWeatherConditionEvent(Event):
|
|
"""
|
|
Event triggered when the weather condition changes
|
|
"""
|
|
|
|
def __init__(
|
|
self,
|
|
*args,
|
|
plugin_name: str,
|
|
summary: Optional[str] = None,
|
|
icon: Optional[str] = None,
|
|
image: Optional[str] = None,
|
|
precip_intensity: Optional[float] = None,
|
|
precip_type: Optional[str] = None,
|
|
temperature: Optional[float] = None,
|
|
apparent_temperature: Optional[float] = None,
|
|
humidity: Optional[float] = None,
|
|
pressure: Optional[float] = None,
|
|
rain_chance: Optional[float] = None,
|
|
wind_speed: Optional[float] = None,
|
|
wind_gust: Optional[float] = None,
|
|
wind_direction: Optional[float] = None,
|
|
cloud_cover: Optional[float] = None,
|
|
visibility: Optional[float] = None,
|
|
sunrise: Optional[datetime] = None,
|
|
sunset: Optional[datetime] = None,
|
|
units: str = 'metric',
|
|
**kwargs,
|
|
):
|
|
"""
|
|
:param plugin_name: Plugin that triggered the event.
|
|
:param summary: Summary of the weather condition.
|
|
:param icon: Icon representing the weather condition.
|
|
:param image: Image URL representing the weather condition.
|
|
:param precip_intensity: Intensity of the precipitation.
|
|
:param precip_type: Type of precipitation.
|
|
:param temperature: Temperature, in the configured unit system.
|
|
:param apparent_temperature: Apparent temperature, in the configured
|
|
unit system.
|
|
:param humidity: Humidity percentage, between 0 and 100.
|
|
:param pressure: Pressure, in the configured unit system.
|
|
:param rain_chance: Chance of rain, between 0 and 100.
|
|
:param wind_speed: Wind speed, in the configured unit system.
|
|
:param wind_gust: Wind gust, in the configured unit system.
|
|
:param wind_direction: Wind direction, in degrees.
|
|
:param cloud_cover: Cloud cover percentage, between 0 and 100.
|
|
:param visibility: Visibility, in meters.
|
|
:param sunrise: Sunrise time.
|
|
:param sunset: Sunset time.
|
|
:param units: Unit system (default: metric).
|
|
"""
|
|
super().__init__(
|
|
*args,
|
|
plugin_name=plugin_name,
|
|
summary=summary,
|
|
icon=icon,
|
|
image=image,
|
|
precip_intensity=precip_intensity,
|
|
precip_type=precip_type,
|
|
temperature=temperature,
|
|
apparent_temperature=apparent_temperature,
|
|
humidity=humidity,
|
|
pressure=pressure,
|
|
rain_chance=rain_chance,
|
|
wind_speed=wind_speed,
|
|
wind_gust=wind_gust,
|
|
wind_direction=wind_direction,
|
|
cloud_cover=cloud_cover,
|
|
visibility=visibility,
|
|
sunrise=sunrise,
|
|
sunset=sunset,
|
|
units=units,
|
|
**kwargs,
|
|
)
|
|
|
|
|
|
class NewPrecipitationForecastEvent(Event):
|
|
"""
|
|
Event triggered when the precipitation forecast changes
|
|
"""
|
|
|
|
def __init__(
|
|
self,
|
|
*args,
|
|
plugin_name: Optional[str] = None,
|
|
average: float,
|
|
total: float,
|
|
time_frame: int,
|
|
**kwargs,
|
|
):
|
|
super().__init__(
|
|
*args,
|
|
plugin_name=plugin_name,
|
|
average=average,
|
|
total=total,
|
|
time_frame=time_frame,
|
|
**kwargs,
|
|
)
|
|
|
|
|
|
# vim:sw=4:ts=4:et:
|