Files
swift-mqtt-dewpoint/Sources/dewPoint-controller/main.swift
2021-10-16 15:01:47 -04:00

35 lines
1.0 KiB
Swift

import Bootstrap
import Logging
import Models
import MQTTNIO
import NIO
import RelayClient
import Foundation
var logger = Logger(label: "dewPoint-logger")
logger.logLevel = .debug
logger.debug("Swift Dew Point Controller!")
let eventLoopGroup = MultiThreadedEventLoopGroup(numberOfThreads: 1)
let environment = try bootstrap(eventLoopGroup: eventLoopGroup, logger: logger).wait()
let relayClient = environment.relayClient
let relay = Relay(topic: "frankensystem/relays/switch/relay_1/command")
let tempSensor = TemperatureSensor(topic: "frankensystem/relays/sensor/temperature_-_1/state")
defer {
logger.debug("Disconnecting")
_ = try? environment.mqttClient.disconnect().wait()
try? environment.mqttClient.syncShutdownGracefully()
}
while true {
logger.debug("Toggling relay.")
_ = try relayClient.toggle(relay).wait()
logger.debug("Reading temperature sensor.")
let temp = try environment.temperatureSensorClient.state(tempSensor, .imperial).wait()
logger.debug("Temperature: \(temp)")
Thread.sleep(forTimeInterval: 5)
}