public XMLRPCHomegearConnectionService( Homegear homegear, RPCController rpcController, ILightSwitchesPersistenceService lightSwitchesPersistence, IDoorWindowSensorPersistenceService doorWindowSensorActivityPersistence, IExternalWallSocketsPersistenceService externalWallSocketPersistenceService, ILogger <XMLRPCHomegearConnectionService> logger, IDevicesService <LightSwitchModel> lightSwitchesService) { _homegearController = rpcController; _homegear = homegear; _logger = logger; _homegearController.ServerConnected += rpc_serverConnected; //this.homegear.Reloaded += homegear_OnReloaded; //this.homegear.ConnectError += homegear_OnConnectError; _homegear.ReloadRequired += homegear_OnReloadRequired; _homegear.DeviceReloadRequired += homegear_OnDeviceReloadRequired; _homegear.DeviceVariableUpdated += homegear_OnDeviceVariableUpdated; _eventLoggerFactory = new EventHandlerFactory(); _eventLoggerFactory.RegisterEventLogger(HomegearDeviceTypes.LightSwitch, LightSwitchVariables.STATE, new LightSwitchEventHandler(lightSwitchesPersistence)); _eventLoggerFactory.RegisterEventLogger(HomegearDeviceTypes.DoorWindowMagneticSensor, DoorWindowSensorVariables.STATE, new DoorWindowSensorStateEventHandler(doorWindowSensorActivityPersistence, lightSwitchesService)); _eventLoggerFactory.RegisterEventLogger(HomegearDeviceTypes.DoorWindowMagneticSensor, DoorWindowSensorVariables.LOWBAT, new DoorWindowSensorLowBatteryEventHandler(doorWindowSensorActivityPersistence)); _eventLoggerFactory.RegisterEventLogger(HomegearDeviceTypes.ExternalWallSocket, ExternalWallSocketVariables.CURRENT, new ExternalWallSocketHandler(externalWallSocketPersistenceService)); _eventLoggerFactory.RegisterEventLogger(HomegearDeviceTypes.ExternalWallSocket, ExternalWallSocketVariables.VOLTAGE, new ExternalWallSocketHandler(externalWallSocketPersistenceService)); _eventLoggerFactory.RegisterEventLogger(HomegearDeviceTypes.ExternalWallSocket, ExternalWallSocketVariables.FREQUENCY, new ExternalWallSocketHandler(externalWallSocketPersistenceService)); _eventLoggerFactory.RegisterEventLogger(HomegearDeviceTypes.ExternalWallSocket, ExternalWallSocketVariables.ENERGY_COUNTER, new ExternalWallSocketHandler(externalWallSocketPersistenceService)); }