Initial release
This commit is contained in:
162
Domoticz.py
Normal file
162
Domoticz.py
Normal file
@@ -0,0 +1,162 @@
|
||||
from datetime import datetime
|
||||
|
||||
Images = {}
|
||||
Devices = {}
|
||||
|
||||
###################
|
||||
class ImageObj(object):
|
||||
ID = 0
|
||||
def __init__(self, obj):
|
||||
pass
|
||||
|
||||
class DzImage(object):
|
||||
__name = None
|
||||
def __init__(self, name):
|
||||
if name[-4:].lower() != ".zip":
|
||||
raise ValueError
|
||||
self.__name = name[:-4]
|
||||
|
||||
def Create(self):
|
||||
global Images
|
||||
Images[self.__name] = ImageObj(self)
|
||||
|
||||
###################
|
||||
class DeviceObj(object):
|
||||
TimedOut = 0
|
||||
sValue = ""
|
||||
nValue = 0
|
||||
Image = None
|
||||
Name=None
|
||||
|
||||
__unit=None
|
||||
__type=None
|
||||
__subtype=None
|
||||
__switchtype=None
|
||||
__options=None
|
||||
__image=None
|
||||
__used=None
|
||||
|
||||
def __init__(self, Unit=None, Name=None, Type=None, Subtype=None, Switchtype=None, Options=None, Image=None, Used=None):
|
||||
self.Name = Name
|
||||
self.Image = Image
|
||||
|
||||
self.__unit = Unit
|
||||
self.__type = Type
|
||||
self.__subtype = Subtype
|
||||
self.__switchtype = Switchtype
|
||||
self.__options = Options
|
||||
self.__used = Used
|
||||
|
||||
def __repr__(self):
|
||||
res = ""
|
||||
res = res + f"Unit : {self.__unit}"
|
||||
res = res + f"Name : {self.__name}"
|
||||
res = res + f"Type : {self.__type}"
|
||||
res = res + f"Subtype : {self.__subtype}"
|
||||
res = res + f"Switchtype: {self.__switchtype}"
|
||||
res = res + f"Image : {self.Image}"
|
||||
res = res + f"Options : {self.__options}"
|
||||
res = res + f"Used : {self.__used}"
|
||||
return res
|
||||
|
||||
def Update(self, nValue=None, sValue=None, TimedOut=None, Image=None):
|
||||
if nValue is not None and self.nValue != nValue:
|
||||
self.nValue = nValue
|
||||
if sValue is not None and self.sValue != sValue:
|
||||
self.sValue = sValue
|
||||
if TimedOut is not None and self.TimedOut != TimedOut:
|
||||
self.TimedOut = TimedOut
|
||||
if Image is not None and self.Image != Image:
|
||||
self.Image = Image
|
||||
|
||||
def Touch(self):
|
||||
pass
|
||||
|
||||
class DzDevice(object):
|
||||
__data=None
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
self.__data = kwargs
|
||||
|
||||
def Create(self):
|
||||
global Devices
|
||||
Devices[self.__data["Unit"]] = DeviceObj(**self.__data)
|
||||
|
||||
###################
|
||||
class BaseDomoticz(object):
|
||||
__debuglevel = 0
|
||||
__heartbeat = 30
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def __print(message):
|
||||
print(datetime.now().strftime("%d/%m/%Y %H:%M:%S"), "-", message)
|
||||
|
||||
@staticmethod
|
||||
def Image(name):
|
||||
return DzImage(name)
|
||||
|
||||
@staticmethod
|
||||
def Device(**kwargs):
|
||||
return DzDevice(**kwargs)
|
||||
|
||||
def Debugging(self, level):
|
||||
self.__debuglevel = int(level)
|
||||
|
||||
def Debug(self, message):
|
||||
if self.__debuglevel > 0:
|
||||
self.__print("[DEBUG] "+message)
|
||||
|
||||
def Log(self, message):
|
||||
self.__print("[LOG] "+message)
|
||||
|
||||
def Status(self, message):
|
||||
self.__print("[STATUS] "+message)
|
||||
|
||||
def Error(self, message):
|
||||
self.__print("[ERROR] "+message)
|
||||
|
||||
def Heartbeat(self, duration):
|
||||
self.__heartbeat = duration
|
||||
|
||||
def GetHeartbeat(self):
|
||||
return self.__heartbeat
|
||||
|
||||
domo = BaseDomoticz()
|
||||
|
||||
###################
|
||||
|
||||
def Debugging(level):
|
||||
"""Debugging"""
|
||||
domo.Debugging(level)
|
||||
|
||||
def Debug(message):
|
||||
"""Debug"""
|
||||
domo.Debug(message)
|
||||
|
||||
def Log(message):
|
||||
"""Debugging"""
|
||||
domo.Log(message)
|
||||
|
||||
def Status(message):
|
||||
"""Status"""
|
||||
domo.Status(message)
|
||||
|
||||
def Error(message):
|
||||
"""Error"""
|
||||
domo.Error(message)
|
||||
|
||||
def Heartbeat(duration):
|
||||
"""Heartbeat"""
|
||||
|
||||
def DomoticzImage(name):
|
||||
"""Image"""
|
||||
return domo.Image(name)
|
||||
|
||||
def Device(*args, **kwargs):
|
||||
"""Device"""
|
||||
return domo.Device(**kwargs)
|
||||
|
||||
###################
|
||||
Reference in New Issue
Block a user