diff --git a/run.py b/run.py index 2d788e3..8a23cee 100644 --- a/run.py +++ b/run.py @@ -1,19 +1,36 @@ +import os import time import Domoticz import plugin -Parameters = { - "Address":"localhost", - "Port":"8080", - "Username":"", - "Password":"", - "Mode1":"", - "Mode2":"", - "Mode3":"", - "Mode4":"", - "Mode5":"", - "Mode6":0 -} +def function_read_properties(filename:str, sep:str='=', comment_char:str='#')->dict: + """Convert a .properties file into a dictionary""" + dictionary = {} + + with open(filename, "r", encoding="utf-8") as fproperties: + for line in fproperties: + lstrip = line.strip() + if lstrip and not lstrip.startswith(comment_char): + key_value = lstrip.split(sep) + key = key_value[0].strip() + value = sep.join(key_value[1:]).strip().strip('"') + dictionary[key] = value + + return dictionary + +"""Read Parameter file? Format should be: +Address=xxx +Port=xxx +Username=xxx +Password=xxx +Mode1=xxx +Mode2=xxx +Mode3=xxx +Mode4=xxx +Mode5=xxx +Mode6=xxx +""" +Parameters = function_read_properties(os.path.join(os.path.dirname(__file__), "parameters.properties")) Images = Domoticz.Images Devices = Domoticz.Devices @@ -23,7 +40,10 @@ with open("./plugin.py", 'rb') as fileobj: onStart() -while True: - Domoticz.Log("## Plugin Heartbeat ##") - onHeartbeat() - time.sleep(Domoticz.domo.GetHeartbeat()) +try: + while True: + Domoticz.Log("## Plugin Heartbeat ##") + onHeartbeat() + time.sleep(Domoticz.domo.GetHeartbeat()) +finally: + onStop()