Initial commit
This commit is contained in:
72
remotectrl/_RemoteCtrl.py
Normal file
72
remotectrl/_RemoteCtrl.py
Normal file
@@ -0,0 +1,72 @@
|
||||
import logging
|
||||
from xmlrpc.server import SimpleXMLRPCServer
|
||||
|
||||
import config
|
||||
import control
|
||||
|
||||
class RemoteCtrl:
|
||||
def __init__(self, host="localhost", port=64001):
|
||||
self.__log = logging.getLogger()
|
||||
self.__server = SimpleXMLRPCServer((host, port), allow_none=True)
|
||||
self.__server.register_function(self.set_runtime, 'set_runtime')
|
||||
self.__server.register_function(self.get_runtime, 'get_runtime')
|
||||
self.__server.register_function(self.get_target_temperature, 'get_target_temperature')
|
||||
self.__server.register_function(self.get_temperature_step, 'get_temperature_step')
|
||||
self.__server.register_function(self.set_target_temperature, 'set_target_temperature')
|
||||
self.__server.register_function(self.switch_on, 'switch_on')
|
||||
self.__server.register_function(self.switch_off, 'switch_off')
|
||||
self.__server.register_function(self.state, 'state')
|
||||
self.__server.register_function(self.time_to_switch_off, 'time_to_switch_off')
|
||||
|
||||
self.__config = config.Config()
|
||||
self.__ctrl = control.Control(int(self.__config.heat_pin()))
|
||||
self.__ctrl.set_target_temperature(self.__config.target_temperature())
|
||||
self.__ctrl.set_runtime(self.__config.runtime())
|
||||
|
||||
|
||||
def set_runtime(self, runtime):
|
||||
self.__ctrl.set_runtime(runtime)
|
||||
|
||||
|
||||
def get_runtime(self):
|
||||
return str(self.__ctrl.get_runtime)
|
||||
|
||||
|
||||
def get_target_temperature(self):
|
||||
return self.__ctrl.get_target_temperature()
|
||||
|
||||
|
||||
def get_temperature_step(self):
|
||||
return self.__config.temperature_step()
|
||||
|
||||
|
||||
def set_target_temperature(self, target_temperature):
|
||||
self.__ctrl.set_target_temperature(target_temperature)
|
||||
self.__config.update_target_temperature(target_temperature)
|
||||
|
||||
|
||||
def switch_on(self):
|
||||
self.__ctrl.switch_on()
|
||||
|
||||
|
||||
def switch_off(self):
|
||||
self.__ctrl.switch_off()
|
||||
|
||||
|
||||
def state(self):
|
||||
return self.__ctrl.state()
|
||||
|
||||
|
||||
def time_to_switch_off(self):
|
||||
return str(self.__ctrl.time_to_switch_off())
|
||||
|
||||
|
||||
def start(self):
|
||||
self.__log.info('Control-c to quit')
|
||||
self.__ctrl.start()
|
||||
self.__server.serve_forever()
|
||||
|
||||
self.__log.info("Shutting down...")
|
||||
self.__ctrl.stop()
|
||||
self.switch_off()
|
||||
self.__log.info("...done. Exiting...")
|
1
remotectrl/__init__.py
Normal file
1
remotectrl/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
from ._RemoteCtrl import RemoteCtrl
|
Reference in New Issue
Block a user