36 lines
1000 B
Python
36 lines
1000 B
Python
# environment/__init__.py
|
|
|
|
import logging
|
|
from datetime import datetime
|
|
|
|
import requests
|
|
|
|
from constants import HOME_LOCATION
|
|
from tools.geometry import Coordinate
|
|
|
|
from .local_sensors import Sensors
|
|
from .pysky import Moon, Sun
|
|
from .smhi import SMHI
|
|
from .wireless_sensor import WirelessSensor
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class Weather:
|
|
def __init__(self, location: Coordinate = HOME_LOCATION) -> None:
|
|
self.location = location
|
|
self.session = requests.Session()
|
|
self.smhi_api = SMHI(self.location, self.session)
|
|
self.sensor_data = Sensors()
|
|
self.wireless_sensor = WirelessSensor(self.session)
|
|
|
|
def get(self, date: datetime) -> dict:
|
|
logger.debug("Collecting weather data from all sensors...")
|
|
return (
|
|
self.sensor_data.get()
|
|
| self.wireless_sensor.get()
|
|
| Moon.get_illumination(date)
|
|
| Sun.get_sunset_sunrise(self.location, date)
|
|
| self.smhi_api.get()
|
|
)
|