12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- import config
- import devices
- import function
- import inspect
- import logging
- import mqtt
- import os
- import report
- import time
-
- logger = logging.getLogger(config.APP_NAME)
-
-
- class shellies(object):
- def __init__(self, mc):
- self.dinigroom = devices.shelly(mc, topic="shellies/diningroom") # http://shelly1l-84CCA8ADD055
- self.sleep_madi = devices.shelly(mc, topic="shellies/sleep_madi") # http://shelly1l-E8DB84A254C7
- # self._ = devices.shelly(mc, topic="") # http://
- # self._ = devices.shelly(mc, topic="") # http://
- # self._ = devices.shelly(mc, topic="") # http://
- # self._ = devices.shelly(mc, topic="") # http://
- # self._ = devices.shelly(mc, topic="") # http://
- # self._ = devices.shelly(mc, topic="") # http://
- # self._ = devices.shelly(mc, topic="") # http://
-
-
- class powerplugs(object):
- def __init__(self, mc):
- self.dining_floorlamp = devices.silvercrest_powerplug(mc, "zigbee_og_e/powerplug/dining_floorlamp")
- self.aux = devices.silvercrest_powerplug(mc, topic="zigbee_og_e/powerplug/aux")
- self.dirk = devices.my_powerplug(mc, "powerplug/dirk")
-
-
- class lights(object):
- def __init__(self, mc):
- self.sleep_madi = devices.tradfri_light(mc, topic="zigbee_og_e/light/sleep_madi")
- self.sleep_bed_di = devices.tradfri_light(mc, topic="zigbee_og_e/light/sleep_bed_di")
- # self._ = devices.tradfri_light(mc, topic="")
- # self._ = devices.tradfri_light(mc, topic="")
- # self._ = devices.tradfri_light(mc, topic="")
- # self._ = devices.tradfri_light(mc, topic="")
- # self._ = devices.tradfri_light(mc, topic="")
- # self._ = devices.tradfri_light(mc, topic="")
- # self._ = devices.tradfri_light(mc, topic="")
- # self._ = devices.tradfri_light(mc, topic="")
- # self._ = devices.tradfri_light(mc, topic="")
-
-
- class input_devices(object):
- def __init__(self, mc):
- self.og_east = devices.tradfri_button(mc, topic="zigbee_og_e/input_device/og_east")
-
-
- class all_devices(object):
- def __init__(self, mc):
- self.shellies = shellies(mc)
- self.powerplugs = powerplugs(mc)
- self.lights = lights(mc)
- self.input_devices = input_devices(mc)
-
- def devicelist(self):
- rv = []
- for name, obj in inspect.getmembers(self):
- if not name.startswith('_') and name != inspect.stack()[0][3]:
- for devicename, deviceobj in inspect.getmembers(obj):
- if not devicename.startswith('_'):
- rv.append(deviceobj)
- return rv
-
-
- if __name__ == "__main__":
- if config.DEBUG:
- report.stdoutLoggingConfigure(([config.APP_NAME, config.DEBUGLEVEL], ), report.LONG_FMT)
- else:
- report.stdoutLoggingConfigure(((config.APP_NAME, logging.INFO),
- (config.APP_NAME+'.devices', logging.WARNING)), report.SHORT_FMT)
- #
- mc = mqtt.mqtt_client(host=config.MQTT_SERVER, port=config.MQTT_PORT,
- username=config.MQTT_USER, password=config.MQTT_PASSWORD, name=config.APP_NAME)
-
- ad = all_devices(mc)
- func = function.all_functions(ad)
-
- # def wcb(device, txt):
- # logger.warning("%s: %s", device.topic, txt)
- # for device in ad.devicelist():
- # device.add_warning_callback(wcb)
-
- # def cb(device, key, data):
- # print("Callback: %s::%s" % (key, str(data)))
- # ad.shellies.dinigroom.add_callback(devices.shelly.KEY_OUTPUT_0, None, cb)
-
- while (True):
- time.sleep(1)
|