public async Task StartAsync(CancellationToken cancellationToken) { await Log.ReportInfoFormatAsync(cancellationToken, "Starting zvsEngine {0}", Utils.ApplicationName); #region Install Base Commands and Properties var builtinCommandBuilder = new BuiltinCommandBuilder(EntityContextConnection); var repollMeResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand { UniqueIdentifier = "REPOLL_ME", Name = "Re-poll Device", ArgumentType = DataType.INTEGER, Description = "This will force a re-poll on an object." }, cancellationToken); if (repollMeResult.HasError) await Log.ReportResultAsync(repollMeResult, cancellationToken); var repollAllResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand { UniqueIdentifier = "REPOLL_ALL", Name = "Re-poll all Devices", ArgumentType = DataType.NONE, Description = "This will force a re-poll on all objects." }, cancellationToken); if (repollAllResult.HasError) await Log.ReportResultAsync(repollAllResult, cancellationToken); var groupOnResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand { UniqueIdentifier = "GROUP_ON", Name = "Turn Group On", ArgumentType = DataType.STRING, Description = "Activates a group." }, cancellationToken); if (groupOnResult.HasError) await Log.ReportResultAsync(groupOnResult, cancellationToken); var groupOffResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand { UniqueIdentifier = "GROUP_OFF", Name = "Turn Group Off", ArgumentType = DataType.STRING, Description = "Deactivates a group." }, cancellationToken); if (groupOffResult.HasError) await Log.ReportResultAsync(groupOffResult, cancellationToken); var timeDelayResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand { UniqueIdentifier = "TIMEDELAY", Name = "Time Delay (sec)", ArgumentType = DataType.INTEGER, Description = "Pauses a execution for x seconds." }, cancellationToken); if (timeDelayResult.HasError) await Log.ReportResultAsync(timeDelayResult, cancellationToken); var runSceneResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand { UniqueIdentifier = "RUN_SCENE", Name = "Run Scene", ArgumentType = DataType.INTEGER, Description = "Argument = SceneId" }, cancellationToken); if (runSceneResult.HasError) await Log.ReportResultAsync(runSceneResult, cancellationToken); #endregion await AdapterManager.StartAsync(cancellationToken); await PluginManager.StartAsync(cancellationToken); await ScheduledTaskRunner.StartAsync(cancellationToken); await TriggerRunner.StartAsync(cancellationToken); }
public async Task StartAsync(CancellationToken cancellationToken) { await Log.ReportInfoFormatAsync(cancellationToken, "Starting zvsEngine {0}", Utils.ApplicationName); #region Install Base Commands and Properties var builtinCommandBuilder = new BuiltinCommandBuilder(EntityContextConnection); var repollMeResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand { UniqueIdentifier = "REPOLL_ME", Name = "Re-poll Device", ArgumentType = DataType.INTEGER, Description = "This will force a re-poll on an object." }, cancellationToken); if (repollMeResult.HasError) { await Log.ReportResultAsync(repollMeResult, cancellationToken); } var repollAllResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand { UniqueIdentifier = "REPOLL_ALL", Name = "Re-poll all Devices", ArgumentType = DataType.NONE, Description = "This will force a re-poll on all objects." }, cancellationToken); if (repollAllResult.HasError) { await Log.ReportResultAsync(repollAllResult, cancellationToken); } var groupOnResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand { UniqueIdentifier = "GROUP_ON", Name = "Turn Group On", ArgumentType = DataType.STRING, Description = "Activates a group." }, cancellationToken); if (groupOnResult.HasError) { await Log.ReportResultAsync(groupOnResult, cancellationToken); } var groupOffResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand { UniqueIdentifier = "GROUP_OFF", Name = "Turn Group Off", ArgumentType = DataType.STRING, Description = "Deactivates a group." }, cancellationToken); if (groupOffResult.HasError) { await Log.ReportResultAsync(groupOffResult, cancellationToken); } var timeDelayResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand { UniqueIdentifier = "TIMEDELAY", Name = "Time Delay (sec)", ArgumentType = DataType.INTEGER, Description = "Pauses a execution for x seconds." }, cancellationToken); if (timeDelayResult.HasError) { await Log.ReportResultAsync(timeDelayResult, cancellationToken); } var runSceneResult = await builtinCommandBuilder.RegisterAsync(new BuiltinCommand { UniqueIdentifier = "RUN_SCENE", Name = "Run Scene", ArgumentType = DataType.INTEGER, Description = "Argument = SceneId" }, cancellationToken); if (runSceneResult.HasError) { await Log.ReportResultAsync(runSceneResult, cancellationToken); } #endregion await AdapterManager.StartAsync(cancellationToken); await PluginManager.StartAsync(cancellationToken); await ScheduledTaskRunner.StartAsync(cancellationToken); await TriggerRunner.StartAsync(cancellationToken); }