BonPrinter v1.2.0
Thermal Printer tool
Loading...
Searching...
No Matches
Source.Model.day_light Namespace Reference

Functions

bool get_sun_light_status ()
 Get sun light status.
tuple[datetime, datetime] get_sun_light_time (float lat, float long, datetime date, int i_timezone)
 Get sun light time (rise and down time)
int get_timezone ()
 Get timezone from time settings.
bool is_day (datetime date, datetime sunrise, datetime sundown)
 Check if actual time is day (depend on rise and down time of sun)

Variables

 log = logging.getLogger(__title__)

Detailed Description


Function Documentation

◆ get_sun_light_status()

bool get_sun_light_status ( )

Get sun light status.

Returns
sun light status
Bug
Sonnenzeit stimmt nur für die hinterlegten Daten. Koordinaten anhand der Zeitzone automatisch abschätzen.

Definition at line 64 of file day_light.py.

64def get_sun_light_status() -> bool:
65 """!
66 @brief Get sun light status
67 @return sun light status
68 @bug Sonnenzeit stimmt nur für die hinterlegten Daten. Koordinaten anhand der Zeitzone automatisch abschätzen.
69 """
70 date = datetime.now()
71 i_timezone = get_timezone()
72
73 # location for 73269 Hochdorf
74 f_lat = 48.695 # Breitengrad
75 f_long = 9.4615 # Längengrad
76
77 sunrise, sundown = get_sun_light_time(f_lat, f_long, date, i_timezone)
78 sun_light_status = is_day(date, sunrise, sundown)
79
80 return sun_light_status

◆ get_sun_light_time()

tuple[datetime, datetime] get_sun_light_time ( float lat,
float long,
datetime date,
int i_timezone )

Get sun light time (rise and down time)

Parameters
lat: latitude of observer in degrees
long: longitude of observer in degrees
date: actual datetime
i_timezone: timezone
Returns
rise and down time of sun

Definition at line 17 of file day_light.py.

17def get_sun_light_time(lat: float, long: float, date: datetime, i_timezone: int) -> tuple[datetime, datetime]:
18 """!
19 @brief Get sun light time (rise and down time)
20 @param lat : latitude of observer in degrees
21 @param long : longitude of observer in degrees
22 @param date : actual datetime
23 @param i_timezone : timezone
24 @return rise and down time of sun
25 """
26 observer = ephem.Observer()
27 observer.lat = str(lat)
28 observer.long = str(long)
29 observer.date = date
30
31 sun = ephem.Sun() # pylint: disable=no-member
32 delta_timezone = timedelta(hours=i_timezone)
33 sunrise = observer.previous_rising(sun).datetime() + delta_timezone
34 sundown = observer.previous_setting(sun).datetime() + delta_timezone
35
36 return sunrise, sundown
37
38

◆ get_timezone()

int get_timezone ( )

Get timezone from time settings.

Returns
timezone in hours

Definition at line 50 of file day_light.py.

50def get_timezone() -> int:
51 """!
52 @brief Get timezone from time settings
53 @return timezone in hours
54 """
55 timezone_info = datetime.now(timezone.utc).astimezone().tzinfo
56 utcoffset = timezone_info.utcoffset(datetime.now()) if timezone_info else None
57 if utcoffset is not None:
58 i_timezone = int(utcoffset.total_seconds() / 60) // 60
59 else:
60 i_timezone = 0 # default timezone
61 return i_timezone
62
63

◆ is_day()

bool is_day ( datetime date,
datetime sunrise,
datetime sundown )

Check if actual time is day (depend on rise and down time of sun)

Parameters
date: Latitude position
sunrise: longitude position
sundown: timezone
Returns
day status

Definition at line 39 of file day_light.py.

39def is_day(date: datetime, sunrise: datetime, sundown: datetime) -> bool:
40 """!
41 @brief Check if actual time is day (depend on rise and down time of sun)
42 @param date : Latitude position
43 @param sunrise : longitude position
44 @param sundown : timezone
45 @return day status
46 """
47 return sunrise.time() <= date.time() <= sundown.time()
48
49

Variable Documentation

◆ log

log = logging.getLogger(__title__)

Definition at line 14 of file day_light.py.