diff --git a/src/KineIntercom.json b/src/KineIntercom.json index 67b52a6..749960a 100644 --- a/src/KineIntercom.json +++ b/src/KineIntercom.json @@ -3,8 +3,8 @@ "NUM_AUTORISE": "0607297154", "DTMF_CODE": "*", "DTMF_DURATION": 1, - "HORAIRES": [{ - "monday":{ + "HORAIRES": { + "Monday":{ "00h00":0,"00h30":0,"01h00":0,"01h30":0,"02h00":0,"02h30":0,"03h00":0, "03h30":0,"04h00":0,"04h30":0,"05h00":0,"05h30":0,"06h00":1,"06h30":1, "07h00":1,"07h30":1,"08h00":1,"08h30":1,"09h00":1,"09h30":1,"10h00":1, @@ -13,7 +13,7 @@ "17h30":1,"18h00":1,"18h30":1,"19h00":1,"19h30":1,"20h00":0,"20h30":0, "21h00":0,"21h30":0,"22h00":0,"22h30":0,"23h00":0,"23h30":0 }, - "MARDI": { + "Tuesday": { "00h00":0,"00h30":0,"01h00":0,"01h30":0,"02h00":0,"02h30":0,"03h00":0, "03h30":0,"04h00":0,"04h30":0,"05h00":0,"05h30":0,"06h00":1,"06h30":1, "07h00":1,"07h30":1,"08h00":1,"08h30":1,"09h00":1,"09h30":1,"10h00":1, @@ -21,6 +21,51 @@ "14h00":1,"14h30":1,"15h00":1,"15h30":1,"16h00":1,"16h30":1,"17h00":1, "17h30":1,"18h00":1,"18h30":1,"19h00":1,"19h30":1,"20h00":0,"20h30":0, "21h00":0,"21h30":0,"22h00":0,"22h30":0,"23h00":0,"23h30":0 + }, + "Wednesday": { + "00h00":0,"00h30":0,"01h00":0,"01h30":0,"02h00":0,"02h30":0,"03h00":0, + "03h30":0,"04h00":0,"04h30":0,"05h00":0,"05h30":0,"06h00":1,"06h30":1, + "07h00":1,"07h30":1,"08h00":1,"08h30":1,"09h00":1,"09h30":1,"10h00":1, + "10h30":1,"11h00":1,"11h30":1,"12h00":1,"12h30":1,"13h00":1,"13h30":1, + "14h00":1,"14h30":1,"15h00":1,"15h30":1,"16h00":1,"16h30":1,"17h00":1, + "17h30":1,"18h00":1,"18h30":1,"19h00":1,"19h30":1,"20h00":0,"20h30":0, + "21h00":0,"21h30":0,"22h00":0,"22h30":0,"23h00":0,"23h30":0 + }, + "Thursday": { + "00h00":0,"00h30":0,"01h00":0,"01h30":0,"02h00":0,"02h30":0,"03h00":0, + "03h30":0,"04h00":0,"04h30":0,"05h00":0,"05h30":0,"06h00":1,"06h30":1, + "07h00":1,"07h30":1,"08h00":1,"08h30":1,"09h00":1,"09h30":1,"10h00":1, + "10h30":1,"11h00":1,"11h30":1,"12h00":1,"12h30":1,"13h00":1,"13h30":1, + "14h00":1,"14h30":1,"15h00":1,"15h30":1,"16h00":1,"16h30":1,"17h00":1, + "17h30":1,"18h00":1,"18h30":1,"19h00":1,"19h30":1,"20h00":0,"20h30":0, + "21h00":0,"21h30":0,"22h00":0,"22h30":0,"23h00":0,"23h30":0 + }, + "Friday": { + "00h00":0,"00h30":0,"01h00":0,"01h30":0,"02h00":0,"02h30":0,"03h00":0, + "03h30":0,"04h00":0,"04h30":0,"05h00":0,"05h30":0,"06h00":1,"06h30":1, + "07h00":1,"07h30":1,"08h00":1,"08h30":1,"09h00":1,"09h30":1,"10h00":1, + "10h30":1,"11h00":1,"11h30":1,"12h00":1,"12h30":1,"13h00":1,"13h30":1, + "14h00":1,"14h30":1,"15h00":1,"15h30":1,"16h00":1,"16h30":1,"17h00":1, + "17h30":1,"18h00":1,"18h30":1,"19h00":1,"19h30":1,"20h00":0,"20h30":0, + "21h00":0,"21h30":0,"22h00":0,"22h30":0,"23h00":0,"23h30":0 + }, + "Saturday": { + "00h00":0,"00h30":0,"01h00":0,"01h30":0,"02h00":0,"02h30":0,"03h00":0, + "03h30":0,"04h00":0,"04h30":0,"05h00":0,"05h30":0,"06h00":0,"06h30":0, + "07h00":0,"07h30":0,"08h00":0,"08h30":0,"09h00":0,"09h30":0,"10h00":0, + "10h30":0,"11h00":0,"11h30":0,"12h00":0,"12h30":0,"13h00":0,"13h30":0, + "14h00":0,"14h30":0,"15h00":0,"15h30":0,"16h00":0,"16h30":0,"17h00":0, + "17h30":0,"18h00":0,"18h30":0,"19h00":0,"19h30":0,"20h00":0,"20h30":0, + "21h00":0,"21h30":0,"22h00":0,"22h30":0,"23h00":0,"23h30":0 + }, + "Sunday": { + "00h00":0,"00h30":0,"01h00":0,"01h30":0,"02h00":0,"02h30":0,"03h00":0, + "03h30":0,"04h00":0,"04h30":0,"05h00":0,"05h30":0,"06h00":0,"06h30":0, + "07h00":0,"07h30":0,"08h00":0,"08h30":0,"09h00":0,"09h30":0,"10h00":0, + "10h30":0,"11h00":0,"11h30":0,"12h00":0,"12h30":0,"13h00":0,"13h30":0, + "14h00":0,"14h30":0,"15h00":0,"15h30":0,"16h00":0,"16h30":0,"17h00":0, + "17h30":0,"18h00":0,"18h30":0,"19h00":0,"19h30":0,"20h00":0,"20h30":0, + "21h00":0,"21h30":0,"22h00":0,"22h30":0,"23h00":0,"23h30":0 } - }] + } } diff --git a/src/intercom.py b/src/intercom.py index bb2fa65..96f381f 100644 --- a/src/intercom.py +++ b/src/intercom.py @@ -12,7 +12,8 @@ import sys, os, re import serial import logging as log import time -from datetime import datetime +from datetime import datetime, date +import calendar import json ################################################################### @@ -86,7 +87,15 @@ def init_com(serObj=None, config=None, log=None): :return bool: ''' - cmd_lst = ['AT', 'ATE1', 'AT+CMEE=2', 'AT+CPIN?', 'AT+CREG?', 'AT+CSQ', 'AT+CLTS=1', 'AT+CLIP=1', 'AT+VTD='+str(config['DTMF_DURATION'])] + cmd_lst = ['AT', + 'ATE1', + 'AT+CMEE=2', + 'AT+CPIN?', + 'AT+CREG?', + 'AT+CSQ', + 'AT+CLTS=1', + 'AT+CLIP=1', + 'AT+VTD='+str(config['DTMF_DURATION'])] for cmd in cmd_lst: ret = send_at_cmd(cmd=cmd, serObj=serObj, log=log) if not ret: @@ -120,6 +129,26 @@ def verify_caller(buf="", num="", log=None): return False, phone_number return True, phone_number +def verify_open_hours(conf=None, log=None): + ''' + :param conf: + configuration object + + :param log: + logger object + + :return bool: + True if authorized, False otherwise + ''' + my_date = date.today() + day = calendar.day_name[my_date.weekday()] + log.debug("Current day is {}".format(day)) + log.debug("CONF {}".format(conf[day])) + now = datetime.now() + current_time = now.strftime("%Hh%M") + log.debug("current time : {}".format(current_time)) + return True + ################################################################### # Corps principal du programme # @@ -154,6 +183,10 @@ def main(): rtscts=False, dsrdtr=False) + # Verify date and time + ret = verify_open_hours(conf=config['HORAIRES'], log=logger) + exit(0) + if ser.isOpen(): logger.info("Le port de communication avec le GNSS_HAT est ouvert") try: @@ -174,6 +207,8 @@ def main(): logger.debug("out: {}".format(out)) time.sleep(.1) if out.startswith('+CLIP: '): + # Verify date and time + ret = verify_open_hours(conf=config['HORAIRES'], log=logger) # Verify caller phone number ret, phone_number = verify_caller(buf=out, num=config['NUM_AUTORISE'], log=logger) if not ret: