/// <summary> /// Cancels the current learning operation. /// </summary> /// <param name="controllerId">ID of the controller doing the learning.</param> /// <param name="lessonId">ID of the learning operation to cancel.</param> public static void CancelLearning(int controllerId, string lessonId) { BroadLinkController controller = ServiceWrapper.config.broadLinks.Get(controllerId); if (controller == null) { return; } controller.CancelLearning(lessonId); }
/// <summary> /// Returns the current lesson id or null if no learning operation is currently active. /// </summary> /// <param name="controllerId">ID of the controller doing the learning.</param> /// <returns></returns> public static string GetCurrentLessonId(int controllerId) { BroadLinkController controller = ServiceWrapper.config.broadLinks.Get(controllerId); if (controller == null) { return(null); } return(controller.GetCurrentLessonId()); }
/// <summary> /// Begins learning command codes for the specified command and returns the lesson ID which is a unique number assigned to this learning session. /// If the command ID is invalid, returns null. /// If a lesson operation is already in progress for the specified controller, returns empty string. /// </summary> /// <param name="controllerId">ID of the controller to do the learning.</param> /// <param name="commandId">Command ID to learn codes for.</param> /// <returns></returns> public static string BeginLearning(int controllerId, int commandId) { BroadLinkController controller = ServiceWrapper.config.broadLinks.Get(controllerId); if (controller == null) { return(null); } return(controller.BeginLearning(commandId)); }
/// <summary> /// Blocks until the specified learning operation is complete. /// </summary> /// <param name="controllerId">ID of the controller doing the learning.</param> /// <param name="lessonId">ID of the learning operation which was started.</param> public static void AwaitLearningResult(int controllerId, string lessonId) { BroadLinkController controller = ServiceWrapper.config.broadLinks.Get(controllerId); if (controller == null) { return; } controller.AwaitLearningResult(lessonId); }
/// <summary> /// Attempts to unlearn and return the command specified by the lessonId. Returns null if we aren't in the learning state or if the command does not exist. /// </summary> /// <param name="controllerId">ID of the controller doing the learning.</param> /// <param name="lessonId">ID of the learning operation which was started.</param> /// <returns></returns> public static BroadLinkCmd UnlearnCommandCodes(int controllerId, string lessonId) { BroadLinkController controller = ServiceWrapper.config.broadLinks.Get(controllerId); if (controller == null) { return(null); } return(controller.UnlearnCommandCodes(lessonId)); }
private static void ExecuteHotkey(Hotkey hotkey) { ParallelOptions parallelOptions = new ParallelOptions(); parallelOptions.MaxDegreeOfParallelism = 16; Parallel.ForEach(hotkey.effects, parallelOptions, effect => { switch (effect.type) { case EffectType.HttpGet: { if (!string.IsNullOrWhiteSpace(effect.data.httpget_url) && Uri.TryCreate(effect.data.httpget_url, UriKind.Absolute, out Uri result)) { http_fast.GET(effect.data.httpget_url); } break; } case EffectType.BroadLink: { BroadLinkController broadLink = ServiceWrapper.config.broadLinks.Get(effect.data.broadlink_name); if (broadLink == null) { Logger.Info("BroadLink \"" + effect.data.broadlink_name + "\" does not exist."); break; } broadLink.SendCommandSync(effect.data.broadlink_commandName, effect.data.broadlink_repeatCount); break; } case EffectType.iTach: { iTachController iTach = ServiceWrapper.config.iTachs.Get(effect.data.itach_name); if (iTach == null) { Logger.Info("iTach \"" + effect.data.itach_name + "\" does not exist."); break; } iTach.SendCommandSync(effect.data.itach_commandShortName, effect.data.itach_connectorAddress, effect.data.itach_repeatCount); break; } case EffectType.Vera: { VeraController vera = ServiceWrapper.config.veras.Get(effect.data.vera_name); if (vera == null) { Logger.Info("Vera \"" + effect.data.vera_name + "\" does not exist."); break; } vera.Send(effect.data); break; } case EffectType.HomeAssistant: { HomeAssistantServer hassServer = ServiceWrapper.config.homeAssistantServers.Get(effect.data.hass_servername); if (hassServer == null) { Logger.Info("HomeAssistant Server \"" + effect.data.hass_servername + "\" does not exist."); break; } hassServer.CallService(effect.data.hass_entityid, effect.data.hass_method.Value, effect.data.hass_value); break; } default: Logger.Info("Unhandled hotkey effect type: " + effect.type + " in hotkey with name \"" + hotkey.name + "\""); break; } }); }