diff --git a/enocean/protocol/eep.py b/enocean/protocol/eep.py index 8da3156..e558c20 100644 --- a/enocean/protocol/eep.py +++ b/enocean/protocol/eep.py @@ -14,11 +14,15 @@ class EEP(object): logger = logging.getLogger('enocean.protocol.eep') - def __init__(self): + def __init__(self, file: str = None): self.init_ok = False self.telegrams = {} - eep_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'EEP.xml') + if file is None: + eep_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'EEP.xml') + else: + eep_path = os.path.join(os.path.dirname(os.curdir), file) + try: if version_info[0] > 2: with open(eep_path, 'r', encoding='UTF-8') as xml_file: diff --git a/enocean/protocol/packet.py b/enocean/protocol/packet.py index 14fdc34..50b9ce5 100644 --- a/enocean/protocol/packet.py +++ b/enocean/protocol/packet.py @@ -259,6 +259,11 @@ def parse(self): self.repeater_count = enocean.utils.from_bitarray(self._bit_status[4:]) return self.parsed + @classmethod + def set_eep_file(cls, eep_file): + ''' Set EEP file ''' + cls.eep = EEP(eep_file) + def select_eep(self, rorg_func, rorg_type, direction=None, command=None): ''' Set EEP based on FUNC and TYPE ''' # set EEP profile