home_emulation/home_emulation.py

54 satır
1.3 KiB
Python

import config
import devdi.devices
import home
import logging
import mqtt
import os
import report
import user_interface
# TODO: Add some test for smart_brain
# TODO: Implementation of missing devices in devices/__init__.py
logger = logging.getLogger(config.APP_NAME)
if __name__ == "__main__":
#
# Logging
#
if config.DEBUG:
report.appLoggingConfigure(None, 'stdout', ((config.APP_NAME, logging.DEBUG), ),
target_level=logging.WARNING, fmt=report.SHORT_FMT, host='localhost', port=19996)
else:
report.stdoutLoggingConfigure(((config.APP_NAME, logging.WARNING), ), report.SHORT_FMT)
#
# MQTT Client
#
mc = mqtt.mqtt_client(host=config.MQTT_SERVER, port=config.MQTT_PORT, username=config.MQTT_USER,
password=config.MQTT_PASSWORD, name=config.APP_NAME)
#
# Smarthome physical Devices
#
pd = devdi.devices.physical_devices(mc)
#
# Smart Home Functionality
#
home.functions(pd)
#
# User Interface
#
ui = user_interface.user_interface()
# Add the device commands
for d in pd.values():
try:
for cmd in d.user_cmds:
ui.add_command(cmd, d.user_cmds[cmd])
except AttributeError:
pass # device seems to have no user commands
ui.run()