示例#1
0
 public UpperBathroomConfiguration(
     CCToolsDeviceService ccToolsBoardService,
     IDeviceRegistryService deviceService,
     ISchedulerService schedulerService,
     IAreaRegistryService areaService,
     ISettingsService settingsService,
     AutomationFactory automationFactory,
     ActuatorFactory actuatorFactory,
     SensorFactory sensorFactory,
     IMessageBrokerService messageBroker,
     IDeviceMessageBrokerService deviceMessageBrokerService,
     ILogService logService)
 {
     _messageBroker = messageBroker;
     _deviceMessageBrokerService = deviceMessageBrokerService;
     _logService          = logService;
     _ccToolsBoardService = ccToolsBoardService ?? throw new ArgumentNullException(nameof(ccToolsBoardService));
     _deviceService       = deviceService ?? throw new ArgumentNullException(nameof(deviceService));
     _schedulerService    = schedulerService ?? throw new ArgumentNullException(nameof(schedulerService));
     _areaService         = areaService ?? throw new ArgumentNullException(nameof(areaService));
     _settingsService     = settingsService ?? throw new ArgumentNullException(nameof(settingsService));
     _automationFactory   = automationFactory ?? throw new ArgumentNullException(nameof(automationFactory));
     _actuatorFactory     = actuatorFactory ?? throw new ArgumentNullException(nameof(actuatorFactory));
     _sensorFactory       = sensorFactory ?? throw new ArgumentNullException(nameof(sensorFactory));
     _messageBroker       = messageBroker ?? throw new ArgumentNullException(nameof(sensorFactory));
 }
示例#2
0
        public OutpostLpdAdapter(string deviceName, IDeviceMessageBrokerService deviceMessageBroker)
        {
            _deviceName          = deviceName ?? throw new ArgumentNullException(nameof(deviceName));
            _deviceMessageBroker = deviceMessageBroker ?? throw new ArgumentNullException(nameof(deviceMessageBroker));

            _deviceMessageBroker.Subscribe($"HA4IoT/Device/{_deviceName}/Notification/LPD/Received", OnLpdCodeReceived);
        }
        public MqttBasedBinaryOutputAdapter(string topic, IDeviceMessageBrokerService deviceMessageBrokerService, ILogService logService)
        {
            _deviceMessageBrokerService = deviceMessageBrokerService ?? throw new ArgumentNullException(nameof(deviceMessageBrokerService));
            _log = logService?.CreatePublisher(nameof(MqttBasedButtonAdapter)) ?? throw new ArgumentNullException(nameof(logService));

            _topic = topic ?? throw new ArgumentNullException(nameof(topic));
        }
        public OutpostLpdBridgeAdapter(string id, string deviceName, IDeviceMessageBrokerService deviceMessageBroker)
        {
            _deviceName          = deviceName ?? throw new ArgumentNullException(nameof(deviceName));
            _deviceMessageBroker = deviceMessageBroker ?? throw new ArgumentNullException(nameof(deviceMessageBroker));

            Id = id ?? throw new ArgumentNullException(nameof(id));
            _deviceMessageBroker.Subscribe(OutpostTopicBuilder.BuildNotificationTopic(deviceName, "LPD/Received"), OnLpdCodeReceived);
        }
示例#5
0
        public SonoffDeviceService(IDeviceMessageBrokerService deviceMessageBrokerService)
        {
            if (deviceMessageBrokerService == null)
            {
                throw new ArgumentNullException(nameof(deviceMessageBrokerService));
            }

            _deviceMessageBrokerService = deviceMessageBrokerService;
        }
示例#6
0
        protected CCToolsDeviceBase(string id, I2CIPortExpanderDriver portExpanderDriver, IDeviceMessageBrokerService deviceMessageBrokerService, ILogger log)
        {
            Id   = id ?? throw new ArgumentNullException(nameof(id));
            _log = log ?? throw new ArgumentNullException(nameof(log));
            _portExpanderDriver         = portExpanderDriver ?? throw new ArgumentNullException(nameof(portExpanderDriver));
            _deviceMessageBrokerService = deviceMessageBrokerService ?? throw new ArgumentNullException(nameof(deviceMessageBrokerService));

            _committedState = new byte[portExpanderDriver.StateSize];
            _state          = new byte[portExpanderDriver.StateSize];
        }
        public MqttBasedNumericSensorAdapter(string topic, IDeviceMessageBrokerService deviceMessageBrokerService, ILogService logService)
        {
            if (deviceMessageBrokerService == null)
            {
                throw new ArgumentNullException(nameof(deviceMessageBrokerService));
            }

            _log = logService?.CreatePublisher(nameof(MqttBasedNumericSensorAdapter)) ?? throw new ArgumentNullException(nameof(logService));

            _topic = topic ?? throw new ArgumentNullException(nameof(topic));
            deviceMessageBrokerService.Subscribe(topic, ForwardValue);
        }
示例#8
0
        public static void Publish(this IDeviceMessageBrokerService deviceMessageBrokerService, DeviceMessage deviceMessage)
        {
            if (deviceMessageBrokerService == null)
            {
                throw new ArgumentNullException(nameof(deviceMessageBrokerService));
            }
            if (deviceMessage == null)
            {
                throw new ArgumentNullException(nameof(deviceMessage));
            }

            deviceMessageBrokerService.Publish(deviceMessage.Topic, deviceMessage.Payload, deviceMessage.QosLevel);
        }
示例#9
0
        public static void Publish(this IDeviceMessageBrokerService deviceMessageBrokerService, string topic, string payload, MqttQosLevel qosLevel, bool retain)
        {
            if (deviceMessageBrokerService == null)
            {
                throw new ArgumentNullException(nameof(deviceMessageBrokerService));
            }
            if (topic == null)
            {
                throw new ArgumentNullException(nameof(topic));
            }
            if (payload == null)
            {
                throw new ArgumentNullException(nameof(payload));
            }

            deviceMessageBrokerService.Publish(topic, Encoding.UTF8.GetBytes(payload), qosLevel, retain);
        }
示例#10
0
        public static void Publish(this IDeviceMessageBrokerService deviceMessageBrokerService, string topic, JObject payload, MqttQosLevel qosLevel, bool retain)
        {
            if (deviceMessageBrokerService == null)
            {
                throw new ArgumentNullException(nameof(deviceMessageBrokerService));
            }
            if (topic == null)
            {
                throw new ArgumentNullException(nameof(topic));
            }
            if (payload == null)
            {
                throw new ArgumentNullException(nameof(payload));
            }

            deviceMessageBrokerService.Publish(topic, payload.ToString(Formatting.None), qosLevel, retain);
        }
示例#11
0
        public static void Publish(this IDeviceMessageBrokerService deviceMessageBrokerService, string topic,
                                   string message, MqttQosLevel qosLevel)
        {
            if (deviceMessageBrokerService == null)
            {
                throw new ArgumentNullException(nameof(deviceMessageBrokerService));
            }
            if (topic == null)
            {
                throw new ArgumentNullException(nameof(topic));
            }
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            deviceMessageBrokerService.Publish(topic, Encoding.UTF8.GetBytes(message), qosLevel);
        }
示例#12
0
        public OutpostDeviceService(
            IDeviceRegistryService deviceRegistryService,
            IDeviceMessageBrokerService deviceMessageBroker,
            II2CBusService i2CBusService,
            ISchedulerService schedulerService,
            ILogService logService)
        {
            if (deviceRegistryService == null)
            {
                throw new ArgumentNullException(nameof(deviceRegistryService));
            }
            _i2CBusService       = i2CBusService ?? throw new ArgumentNullException(nameof(i2CBusService));
            _schedulerService    = schedulerService ?? throw new ArgumentNullException(nameof(schedulerService));
            _deviceMessageBroker = deviceMessageBroker ?? throw new ArgumentNullException(nameof(deviceMessageBroker));
            _logService          = logService ?? throw new ArgumentNullException(nameof(logService));

            deviceRegistryService.RegisterDeviceFactory(new OutpostDeviceFactory(this));
        }
示例#13
0
        public static void PublishDeviceMessage(this IDeviceMessageBrokerService deviceMessageBrokerService, string deviceId, string notificationId, string payload)
        {
            if (deviceMessageBrokerService == null)
            {
                throw new ArgumentNullException(nameof(deviceMessageBrokerService));
            }
            if (deviceId == null)
            {
                throw new ArgumentNullException(nameof(deviceId));
            }
            if (notificationId == null)
            {
                throw new ArgumentNullException(nameof(notificationId));
            }

            var topic = GenerateDeviceNotificationTopic(deviceId, notificationId);

            deviceMessageBrokerService.Publish(topic, Encoding.UTF8.GetBytes(payload), MqttQosLevel.AtMostOnce);
        }
示例#14
0
 public Configuration(
     IDeviceRegistryService deviceRegistryService,
     IGpioService gpioService,
     IAreaRegistryService areaService,
     ActuatorFactory actuatorFactory,
     SensorFactory sensorFactory,
     AutomationFactory automationFactory,
     IMessageBrokerService messageBroker,
     IDeviceMessageBrokerService deviceMessageBrokerService)
 {
     _deviceRegistryService      = deviceRegistryService ?? throw new ArgumentNullException(nameof(deviceRegistryService));
     _gpioService                = gpioService ?? throw new ArgumentNullException(nameof(gpioService));
     _areaService                = areaService ?? throw new ArgumentNullException(nameof(areaService));
     _messageBroker              = messageBroker ?? throw new ArgumentNullException(nameof(messageBroker));
     _deviceMessageBrokerService = deviceMessageBrokerService ?? throw new ArgumentNullException(nameof(deviceMessageBrokerService));
     _actuatorFactory            = actuatorFactory ?? throw new ArgumentNullException(nameof(actuatorFactory));
     _sensorFactory              = sensorFactory ?? throw new ArgumentNullException(nameof(sensorFactory));
     _automationFactory          = automationFactory ?? throw new ArgumentNullException(nameof(automationFactory));
 }
示例#15
0
 public OfficeConfiguration(
     IDeviceRegistryService deviceService,
     IAreaRegistryService areaService,
     IRemoteSocketService remoteSocketService,
     ActuatorFactory actuatorFactory,
     SensorFactory sensorFactory,
     IMessageBrokerService messageBroker,
     IDeviceMessageBrokerService deviceMessageBroker,
     ILogService logService)
 {
     _messageBroker       = messageBroker ?? throw new ArgumentNullException(nameof(messageBroker));
     _deviceMessageBroker = deviceMessageBroker ?? throw new ArgumentNullException(nameof(deviceMessageBroker));
     _logService          = logService ?? throw new ArgumentNullException(nameof(logService));
     _deviceService       = deviceService ?? throw new ArgumentNullException(nameof(deviceService));
     _areaService         = areaService ?? throw new ArgumentNullException(nameof(areaService));
     _remoteSocketService = remoteSocketService ?? throw new ArgumentNullException(nameof(remoteSocketService));
     _actuatorFactory     = actuatorFactory ?? throw new ArgumentNullException(nameof(actuatorFactory));
     _sensorFactory       = sensorFactory ?? throw new ArgumentNullException(nameof(sensorFactory));
 }
示例#16
0
 public LivingRoomConfiguration(
     IDeviceRegistryService deviceService,
     IAreaRegistryService areaService,
     CCToolsDeviceService ccToolsBoardService,
     ActuatorFactory actuatorFactory,
     SensorFactory sensorFactory,
     IMessageBrokerService messageBrokerService,
     IDeviceMessageBrokerService deviceMessageBrokerService,
     ILogService logService)
 {
     _messageBrokerService       = messageBrokerService ?? throw new ArgumentNullException(nameof(messageBrokerService));
     _deviceMessageBrokerService = deviceMessageBrokerService;
     _logService          = logService;
     _deviceService       = deviceService ?? throw new ArgumentNullException(nameof(deviceService));
     _areaService         = areaService ?? throw new ArgumentNullException(nameof(areaService));
     _ccToolsBoardService = ccToolsBoardService ?? throw new ArgumentNullException(nameof(ccToolsBoardService));
     _actuatorFactory     = actuatorFactory ?? throw new ArgumentNullException(nameof(actuatorFactory));
     _sensorFactory       = sensorFactory ?? throw new ArgumentNullException(nameof(sensorFactory));
 }
示例#17
0
        public CCToolsDeviceService(IDeviceRegistryService deviceService, II2CBusService i2CBusService, IDeviceMessageBrokerService deviceMessageBrokerService, ILogService log)
        {
            if (i2CBusService == null)
            {
                throw new ArgumentNullException(nameof(i2CBusService));
            }
            if (log == null)
            {
                throw new ArgumentNullException(nameof(log));
            }
            if (deviceService == null)
            {
                throw new ArgumentNullException(nameof(deviceService));
            }

            _deviceService = deviceService;
            _i2CBusService = i2CBusService;
            _deviceMessageBrokerService = deviceMessageBrokerService;
            _log = log.CreatePublisher(nameof(CCToolsDeviceService));
        }
示例#18
0
 public KitchenConfiguration(
     ISystemEventsService systemEventsService,
     IAreaRegistryService areaService,
     IDeviceRegistryService deviceService,
     CCToolsDeviceService ccToolsDeviceService,
     AutomationFactory automationFactory,
     ActuatorFactory actuatorFactory,
     SensorFactory sensorFactory,
     IMessageBrokerService messageBroker,
     IDeviceMessageBrokerService deviceMessageBrokerService,
     ILogService logService)
 {
     _messageBroker = messageBroker ?? throw new ArgumentNullException(nameof(messageBroker));
     _deviceMessageBrokerService = deviceMessageBrokerService;
     _logService          = logService;
     _systemEventsService = systemEventsService ?? throw new ArgumentNullException(nameof(systemEventsService));
     _areaService         = areaService ?? throw new ArgumentNullException(nameof(areaService));
     _deviceService       = deviceService ?? throw new ArgumentNullException(nameof(deviceService));
     _ccToolsBoardService = ccToolsDeviceService ?? throw new ArgumentNullException(nameof(ccToolsDeviceService));
     _automationFactory   = automationFactory ?? throw new ArgumentNullException(nameof(automationFactory));
     _actuatorFactory     = actuatorFactory ?? throw new ArgumentNullException(nameof(actuatorFactory));
     _sensorFactory       = sensorFactory ?? throw new ArgumentNullException(nameof(sensorFactory));
 }
示例#19
0
        public RgbDeviceAdapter(string topic, IDeviceMessageBrokerService messageBroker)
        {
            _messageBroker = messageBroker ?? throw new ArgumentNullException(nameof(messageBroker));

            _topic = topic;
        }
示例#20
0
 public HSRT16(string id, I2CSlaveAddress address, II2CBusService i2CBusService, IDeviceMessageBrokerService deviceMessageBrokerService, ILogger log)
     : base(id, new MAX7311Driver(address, i2CBusService), deviceMessageBrokerService, log)
 {
     SetState(new byte[] { 0x00, 0x00 });
     CommitChanges(true);
 }
示例#21
0
 public SonoffBinaryOutputAdapter(string topic, IDeviceMessageBrokerService deviceMessageBrokerService)
 {
     _topic = topic ?? throw new ArgumentNullException(nameof(topic));
     _deviceMessageBrokerService = deviceMessageBrokerService ?? throw new ArgumentNullException(nameof(deviceMessageBrokerService));
 }
示例#22
0
        public DeviceBinaryOutput(string topic, IDeviceMessageBrokerService messageBroker)
        {
            _messageBroker = messageBroker ?? throw new ArgumentNullException(nameof(messageBroker));

            _topic = topic;
        }
示例#23
0
 public OutpostRgbAdapter(string deviceName, IDeviceMessageBrokerService deviceMessageBroker)
 {
     _deviceName          = deviceName ?? throw new ArgumentNullException(nameof(deviceName));
     _deviceMessageBroker = deviceMessageBroker ?? throw new ArgumentNullException(nameof(deviceMessageBroker));
 }
示例#24
0
 public DeviceMessageBrokerScriptProxy(IDeviceMessageBrokerService deviceMessageBrokerService, IScriptingSession scriptingSession)
 {
     _scriptingSession           = scriptingSession ?? throw new ArgumentNullException(nameof(scriptingSession));
     _deviceMessageBrokerService = deviceMessageBrokerService ?? throw new ArgumentNullException(nameof(deviceMessageBrokerService));
 }
示例#25
0
 public HSREL5(string id, I2CSlaveAddress i2CAddress, II2CBusService i2CBusService, IDeviceMessageBrokerService deviceMessageBrokerService, ILogger log)
     : base(id, new PCF8574Driver(i2CAddress, i2CBusService), deviceMessageBrokerService, log)
 {
     // Ensure that all relays are off by default. The first 5 ports are hardware inverted! The other ports are not inverted but the
     // connected relays are inverted.
     SetState(new byte[] { 0xFF });
     CommitChanges(true);
 }
示例#26
0
 public HSPE8OutputOnly(string id, I2CSlaveAddress address, II2CBusService i2CBusService, IDeviceMessageBrokerService deviceMessageBrokerService, ILogger log)
     : base(id, new PCF8574Driver(address, i2CBusService), deviceMessageBrokerService, log)
 {
     FetchState();
 }
示例#27
0
        public HSPE16InputOnly(string id, I2CSlaveAddress address, II2CBusService i2cBusService, IDeviceMessageBrokerService deviceMessageBrokerService, ILogger log)
            : base(id, new MAX7311Driver(address, i2cBusService), deviceMessageBrokerService, log)
        {
            byte[] setupAsInputs = { 0x06, 0xFF, 0xFF };
            i2cBusService.Execute(address, b => b.Write(setupAsInputs));

            FetchState();
        }
示例#28
0
 public OutpostDeviceService(IDeviceMessageBrokerService deviceMessageBroker)
 {
     _deviceMessageBroker = deviceMessageBroker ?? throw new ArgumentNullException(nameof(deviceMessageBroker));
 }
示例#29
0
 public HSPE16OutputOnly(string id, I2CSlaveAddress address, II2CBusService i2cBusService, IDeviceMessageBrokerService deviceMessageBrokerService, ILogger log)
     : base(id, new MAX7311Driver(address, i2cBusService), deviceMessageBrokerService, log)
 {
     CommitChanges(true);
 }
示例#30
0
 public DeviceBinaryInput(string topic, IDeviceMessageBrokerService messageBroker)
 {
     messageBroker.Subscribe(topic, MqttCallback);
 }