3030 TIME_BEFORE_CHECK ,
3131 JERUSALEM_CANDLE ,
3232 TZEIT_HAKOCHAVIM ,
33+ USE_12H_TIME ,
3334 OMER_COUNT_TYPE ,
3435 DEFAULT_HAVDALAH_MINUTES ,
3536 DEFAULT_TIME_BEFORE_CHECK ,
3637 DEFAULT_TIME_AFTER_CHECK ,
3738 DEFAULT_JERUSALEM_CANDLE ,
3839 DEFAULT_TZEIT_HAKOCHAVIM ,
40+ DEFAULT_USE_12H_TIME ,
3941 DEFAULT_OMER_COUNT_TYPE ,
4042 OMER_DAYS ,
4143 HEBREW_WEEKDAY ,
5052
5153_LOGGER = logging .getLogger (__name__ )
5254
53- version = "2.5.1 "
55+ version = "2.6.0 "
5456
5557PLATFORM_SCHEMA = PLATFORM_SCHEMA .extend (
5658 {
6264 vol .Optional (TIME_AFTER_CHECK , default = DEFAULT_TIME_AFTER_CHECK ): cv .positive_int ,
6365 vol .Optional (JERUSALEM_CANDLE , default = DEFAULT_JERUSALEM_CANDLE ): cv .boolean ,
6466 vol .Optional (TZEIT_HAKOCHAVIM , default = DEFAULT_TZEIT_HAKOCHAVIM ): cv .boolean ,
67+ vol .Optional (USE_12H_TIME , default = DEFAULT_USE_12H_TIME ): cv .boolean ,
6568 vol .Optional (OMER_COUNT_TYPE , default = DEFAULT_OMER_COUNT_TYPE ): cv .positive_int ,
6669 vol .Optional (LANGUAGE , default = DEFAULT_LANGUAGE ): cv .string ,
6770 vol .Optional (
@@ -95,6 +98,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
9598 time_after = config .get (TIME_AFTER_CHECK )
9699 jerusalem_candle = config .get (JERUSALEM_CANDLE )
97100 tzeit_hakochavim = config .get (TZEIT_HAKOCHAVIM )
101+ use_12h_time = config .get (USE_12H_TIME )
98102 omer_count_type = config .get (OMER_COUNT_TYPE )
99103 language = config .get (LANGUAGE )
100104
@@ -120,11 +124,11 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
120124 time_after ,
121125 jerusalem_candle ,
122126 tzeit_hakochavim ,
127+ use_12h_time ,
123128 omer_count_type ,
124129 language ,
125130 )
126131 )
127-
128132 async_add_entities (entities , False )
129133
130134
@@ -160,6 +164,7 @@ def __init__(
160164 time_after ,
161165 jerusalem_candle ,
162166 tzeit_hakochavim ,
167+ use_12h_time ,
163168 omer_count_type ,
164169 language ,
165170
@@ -179,6 +184,7 @@ def __init__(
179184 self ._time_after = time_after
180185 self ._jerusalem_candle = jerusalem_candle
181186 self ._tzeit_hakochavim = tzeit_hakochavim
187+ self .use_12h_time = use_12h_time
182188 self ._omer_count_type = omer_count_type
183189 self ._language = language
184190 self .config_path = hass .config .path () + PLATFORM_FOLDER
@@ -355,7 +361,12 @@ async def filter_db(self, temp_db, state):
355361 self .temp_data .append (extract_data )
356362 if "day_zmanim" in list (extract_data .values ()):
357363 for x in LANGUAGE_DATA [self ._language ][4 ]:
358- self .zmanim .update ({LANGUAGE_DATA [self ._language ][4 ][x ]: extract_data [x ][11 :16 ]})
364+ if self .use_12h_time :
365+ temp_time = datetime .datetime .strptime (extract_data [x ][11 :16 ], "%H:%M" )
366+ temp_time = temp_time .strftime ("%I:%M %p" )
367+ self .zmanim .update ({LANGUAGE_DATA [self ._language ][4 ][x ]: str (temp_time )})
368+ else :
369+ self .zmanim .update ({LANGUAGE_DATA [self ._language ][4 ][x ]: extract_data [x ][11 :16 ]})
359370 self .zmanim .update ({'title' : 'day_zmanim' })
360371 self .temp_data .append (self .zmanim )
361372 # self.zmanim.pop('title')
@@ -526,29 +537,41 @@ async def set_local_timezone(self):
526537 async def get_shabbat_time_in (self ):
527538 """Get Shabbat entrance time"""
528539 if self .shabbat_in :
529- return self .is_time_format (str (self .shabbat_in )[11 :16 ])
540+ if self .use_12h_time :
541+ temp_time = self .shabbat_in .strftime ("%Y-%m-%dT%I:%M %p" )
542+ return self .is_time_format (str (temp_time )[11 :], self .use_12h_time )
543+ return self .is_time_format (str (self .shabbat_in )[11 :16 ], self .use_12h_time )
530544 return LANGUAGE_DATA [self ._language ][0 ]
531545
532546 async def get_shabbat_time_out (self ):
533547 """Get Shabbat exit time"""
534548 if self .shabbat_out :
535- return self .is_time_format (str (self .shabbat_out )[11 :16 ])
549+ if self .use_12h_time :
550+ temp_time = self .shabbat_out .strftime ("%Y-%m-%dT%I:%M %p" )
551+ return self .is_time_format (str (temp_time )[11 :], self .use_12h_time )
552+ return self .is_time_format (str (self .shabbat_out )[11 :16 ], self .use_12h_time )
536553 return LANGUAGE_DATA [self ._language ][0 ]
537554
538555 async def get_yomtov_time_in (self ):
539556 """Get Shabbat entrance time"""
540557 today = self .utc_to_local (datetime .datetime .utcnow (), self .local_timezone )
541558 if self .yomtov_in and self .yomtov_out :
542- if self .yomtov_out .date () > today .date ():
543- return self .is_time_format (str (self .yomtov_in )[11 :16 ])
559+ if self .yomtov_out .date () >= today .date ():
560+ if self .use_12h_time :
561+ temp_time = self .yomtov_in .strftime ("%Y-%m-%dT%I:%M %p" )
562+ return self .is_time_format (str (temp_time )[11 :], self .use_12h_time )
563+ return self .is_time_format (str (self .yomtov_in )[11 :16 ], self .use_12h_time )
544564 return LANGUAGE_DATA [self ._language ][0 ]
545565
546566 async def get_yomtov_time_out (self ):
547567 """Get Shabbat exit time"""
548568 today = self .utc_to_local (datetime .datetime .utcnow (), self .local_timezone )
549569 if self .yomtov_in and self .yomtov_out :
550- if self .yomtov_out .date () > today .date ():
551- return self .is_time_format (str (self .yomtov_out )[11 :16 ])
570+ if self .yomtov_out .date () >= today .date ():
571+ if self .use_12h_time :
572+ temp_time = self .yomtov_out .strftime ("%Y-%m-%dT%I:%M %p" )
573+ return self .is_time_format (str (temp_time )[11 :], self .use_12h_time )
574+ return self .is_time_format (str (self .yomtov_out )[11 :16 ], self .use_12h_time )
552575 return LANGUAGE_DATA [self ._language ][0 ]
553576
554577 async def get_parasha (self ) -> str :
@@ -665,7 +688,7 @@ async def get_yomtov_name(self) -> str:
665688 if x == "yomtov" :
666689 today = self .utc_to_local (datetime .datetime .utcnow (), self .local_timezone )
667690 date = datetime .datetime .strptime (extract_data ["date" ][:10 ], "%Y-%m-%d" ).date ()
668- if date > today .date ():
691+ if date >= today .date ():
669692 result = HEBREW_WEEKDAY [date .isoweekday ()]
670693 result = result + " " + extract_data ["title" ]
671694 return result
@@ -686,10 +709,14 @@ async def get_zmanim(self):
686709 return "זמנים הלכתיים עבור יום " + str (self .file_time_stamp )
687710
688711 @classmethod
689- def is_time_format (cls , input_time ) -> str :
712+ def is_time_format (cls , input_time , use_12h_time ) -> str :
690713 """Check if the time is correct"""
691714 try :
692- time .strptime (input_time , "%H:%M" )
693- return input_time
715+ if use_12h_time :
716+ time .strptime (input_time , "%H:%M %p" )
717+ return input_time
718+ else :
719+ time .strptime (input_time , "%H:%M" )
720+ return input_time
694721 except ValueError :
695722 return "Error"
0 commit comments