Управление вентилями/нагревателями
This commit is contained in:
parent
720cf4bd60
commit
091dcbd3a3
47
GreenhouseController/ManageController.py
Normal file
47
GreenhouseController/ManageController.py
Normal file
@ -0,0 +1,47 @@
|
||||
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
|
||||
}
|
||||
self.producer.send(self.topic, value=status)
|
||||
print(f"Sent device status: {status}")
|
@ -3,7 +3,8 @@ import kafka
|
||||
import socket
|
||||
from json import dumps, loads
|
||||
import time
|
||||
|
||||
from ManageController import ManagerController
|
||||
greenhouse_controller = GreenhouseController(producer)
|
||||
consumer = KafkaConsumer(
|
||||
'commands',
|
||||
bootstrap_servers=['localhost:9092'],
|
||||
|
Loading…
Reference in New Issue
Block a user