Exemplo n.º 1
0
        protected override void ActivateInternal()
        {
            var setting        = Resolver.GetInstance <DeconzToMqttSetting>();
            var logManager     = Resolver.GetInstance <ILogManager>();
            var metricRecorder = Resolver.GetInstance <IMetricRecorder>();

            var sensorRepository = new SensorRepository(setting.DeconzApiKey, new Uri($"ws://{setting.DeconzAddress}:{setting.DeconzApiPort}"));
            var lightRepository  = new LightRepository(setting.DeconzApiKey, new Uri($"ws://{setting.DeconzAddress}:{setting.DeconzApiPort}"));

            var healthCheckService = new HealthCheckService(logManager.GetLogger <HealthCheckService>());
            var websockerReceiver  = new WebsocketReceiver(logManager.GetLogger <WebsocketReceiver>(), new Uri($"ws://{setting.DeconzAddress}:{setting.DeconzWebsocketPort}"));
            var mqttClient         = new MqttClient(logManager.GetLogger <MqttClient>(), metricRecorder, logManager, setting.MqttAddress, setting.MqttUsername, setting.MqttPassword);
            var eventHandler       = new EventHandlingService(logManager.GetLogger <EventHandlingService>(), websockerReceiver, mqttClient, sensorRepository);
            var telemetryService   = new TelemetryService(logManager.GetLogger <TelemetryService>(), metricRecorder, new DeconzRepository[] {
                sensorRepository,
                lightRepository
            }, mqttClient);

            healthCheckService.AddHealthCheck(websockerReceiver);
            healthCheckService.AddHealthCheck(mqttClient);

            mqttClient.Start();
            eventHandler.Start();
            websockerReceiver.Start();
            telemetryService.Start();
            healthCheckService.Start();
        }