48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
from json import dumps
|
|
|
|
|
|
|
|
from json import dumps
|
|
|
|
class ManageController:
|
|
def __init__(self, producer, topic='commands'):
|
|
self.valve_state = "closed"
|
|
self.heater_state = "off"
|
|
self.producer = producer
|
|
self.topic = topic
|
|
|
|
def toggle_device(self, device, request_id, greenhouse_id):
|
|
|
|
|
|
if device == 'valve':
|
|
|
|
if self.valve_state == 'closed':
|
|
self.valve_state = 'open'
|
|
print("Valve opened")
|
|
else:
|
|
self.valve_state = 'closed'
|
|
print("Valve closed")
|
|
|
|
elif device == 'heater':
|
|
|
|
if self.heater_state == 'off':
|
|
self.heater_state = 'on'
|
|
print("Heater turned on")
|
|
else:
|
|
self.heater_state = 'off'
|
|
print("Heater turned off")
|
|
|
|
|
|
self.send_status(request_id, greenhouse_id)
|
|
|
|
def send_status(self, request_id, greenhouse_id):
|
|
|
|
status = {
|
|
'request_id': request_id,
|
|
'greenhouse_id': greenhouse_id,
|
|
'valve_state': self.valve_state,
|
|
'heater_state': self.heater_state
|
|
}
|
|
|
|
print(f"Sent device status: {status}")
|
|
return status |