public string InitIO(string port) { var initLogString = $"{Utility.PluginName} MainPlugin InitIo started"; Console.WriteLine(initLogString); _logging.Log(initLogString); _config = new MainConfig(_logging, _hs, _iniSettings, _callback, this); _config.RegisterConfigs(); _callback.RegisterEventCB(Enums.HSEvent.VALUE_CHANGE, Utility.PluginName, ""); _logging.Log($"Done creating configs"); _iniSettings.IniSettingsChanged += _logging.IniSettingHasChanged; _homeSeerHandler = new HomeSeerHandler(_hs, _logging); _logging.Log($"Done creating HomeSeerHandler"); _storageHandler = new StorageHandler(_logging, _iniSettings); _logging.Log($"Done creating StorageHandler"); _triggerHandler = new TriggerHandler(_hs, _callback, _iniSettings, _logging, _collectionFactory, _homeSeerHandler, _storageHandler); _logging.Log($"Done creating _triggerHandler "); //_callback.RegisterEventCB(Enums.HSEvent.CONFIG_CHANGE, Utility.PluginName, ""); //Register callback on every event of value change. This is the method to find if this is a value of a device we are following _logging.Log($"Done registering callback"); _logging.Log($"{Utility.PluginName} MainPlugin InitIo Complete"); return(""); }
public string Build(DataCurveTriggerSettings triggerSettings, IHomeSeerHandler homeSeerHandler = null) { var sb = new StringBuilder(); sb.AppendLine("<table>"); var floorDropDown = CreateFloorDropdown(triggerSettings.FloorChosen, triggerSettings.UidString, triggerSettings.UniqueControllerId); var roomDropdown = CreateRoomDropdown(triggerSettings.RoomChosen, triggerSettings.UidString, triggerSettings.UniqueControllerId); if (!_floorsRomsAndDevices.RoomExists(triggerSettings.RoomChosen)) { triggerSettings.RoomChosen = ""; } if (!_floorsRomsAndDevices.FloorExists(triggerSettings.FloorChosen)) { triggerSettings.FloorChosen = ""; } var deviceDropdown = CreateDeviceDropdown(triggerSettings.FloorChosen, triggerSettings.RoomChosen, triggerSettings.DeviceIdChosen, triggerSettings.UidString, triggerSettings.UniqueControllerId); var timePicker = CreateTimePicker(triggerSettings.TimeSpanChosen, triggerSettings.UidString, triggerSettings.UniqueControllerId, Constants.TimeSpanKey); var ascendingDescendingDropdown = CreateAscendingDescendingDropdown(triggerSettings.AscendingOrDescending, triggerSettings.UidString, triggerSettings.UniqueControllerId); sb.AppendLine($"<tr><td>A data curve of device values for the device {floorDropDown} {roomDropdown} {deviceDropdown} has had {ascendingDescendingDropdown} curve for the last {timePicker}</td></tr>"); //Future computation ui sb.AppendLine(CreateChoicesForFutureComputation(triggerSettings)); sb.AppendLine("</table>"); return(sb.ToString()); }
public DataCurveTriggerB(IHSApplication hs, ILogging logging, IHsCollectionFactory collectionFactory, IHomeSeerHandler homeSeerHandler, IReformatCopiedAction reformatCopiedAction = null, IDataCurveTriggerUi dataCurveUi = null, IDataCurveComputationHandlerB dataCurveComputationHandler = null) { _collectionFactory = collectionFactory; _logging = logging; _homeSeerHandler = homeSeerHandler; _hs = hs; _dataCurveComputationHandler = dataCurveComputationHandler; if (reformatCopiedAction == null) { _reformatCopiedAction = new ReformatCopiedAction(_logging); } if (dataCurveUi == null) { _dataCurveUi = new DataCurveTriggerBUi(_homeSeerHandler, _hs); } if (_dataCurveComputationHandler == null) { _dataCurveComputationHandler = new ComputationTriggerBHandler(_logging); } }
public TriggerHandler(IHSApplication hs, IAppCallbackAPI callback, IIniSettings iniSettings, ILogging logging, IHsCollectionFactory collectionFactory, IHomeSeerHandler homeSeerHandler, IStorageHandler storageHandler) { _hs = hs; _callback = callback; _iniSettings = iniSettings; _logging = logging; _collectionFactory = collectionFactory; _homeSeerHandler = homeSeerHandler; _storageHandler = storageHandler; _logging.LogDebug("Creating trigger types"); _triggerTypes = CreateTriggerTypes(); _logging.LogDebug("Starting thread to fetch triggers"); GetPluginTriggersFromHomeSeerInNewThread(); _logging.LogDebug("Done init TriggerHandler"); }
public string Build(DataCurveTriggerBSettings triggerSettings, IHomeSeerHandler homeSeerHandler = null) { var sb = new StringBuilder(); sb.AppendLine("<table>"); var floorDropDown = CreateFloorDropdown(triggerSettings.FloorChosen, triggerSettings.UidString, triggerSettings.UniqueControllerId); var roomDropdown = CreateRoomDropdown(triggerSettings.RoomChosen, triggerSettings.UidString, triggerSettings.UniqueControllerId); if (!_floorsRoomsAndDevices.RoomExists(triggerSettings.RoomChosen)) { triggerSettings.RoomChosen = ""; } if (!_floorsRoomsAndDevices.FloorExists(triggerSettings.FloorChosen)) { triggerSettings.FloorChosen = ""; } var deviceDropdown = CreateDeviceDropdown(triggerSettings.FloorChosen, triggerSettings.RoomChosen, triggerSettings.DeviceIdChosen, triggerSettings.UidString, triggerSettings.UniqueControllerId); var ascendingDescendingDropdown = CreateAscendingDescendingDropdown(triggerSettings.AscendingOrDescending, triggerSettings.UidString, triggerSettings.UniqueControllerId); var thresholdDefaultText = ""; if (triggerSettings.ThresholdValue.HasValue) { thresholdDefaultText = triggerSettings.ThresholdValue.Value.ToString(CultureInfo.CreateSpecificCulture("en-US")); } var thresholdValueTextbox = CreateJqTextBox(Constants.ThresholdValueKey, thresholdDefaultText, triggerSettings, 3); var numberOfLastDataPointsText = ""; if (triggerSettings.NumberOfLastMeasurements.HasValue) { numberOfLastDataPointsText = triggerSettings.NumberOfLastMeasurements.Value.ToString(CultureInfo.CreateSpecificCulture("en-US")); } var numberOfMeasurementsTextBox = CreateJqTextBox(Constants.NumberOfLastMeasurementsKey, numberOfLastDataPointsText, triggerSettings, 3); sb.AppendLine($"<tr><td>The threshold value of {thresholdValueTextbox } has been reached for the device {floorDropDown} {roomDropdown} {deviceDropdown} and it has had {ascendingDescendingDropdown} curve for the {numberOfMeasurementsTextBox} last measurements</td></tr>"); sb.AppendLine("</table>"); return(sb.ToString()); }
public DataCurveTriggerUi(IHomeSeerHandler homeSeerHandler, IHSApplication hs) { _homeSeerHandler = homeSeerHandler; _hs = hs; PopulateWithHomeSeerData(); }
public static ITrigger Get(IHSApplication hs, string triggerType, ILogging logging, ITriggerHandler triggerHandler, IAppCallbackAPI callback, IHsCollectionFactory collectionFactory, IHomeSeerHandler homeSeerHandler) { switch (triggerType) { case "DataCurveSeer.TriggerHandling.Triggers.DataCurveTrigger": return(new DataCurveTrigger(hs, logging, collectionFactory, homeSeerHandler)); case "DataCurveSeer.TriggerHandling.Triggers.DataCurveTriggerB.DataCurveTriggerB": return(new DataCurveTrigger(hs, logging, collectionFactory, homeSeerHandler)); default: logging.Log($"Could not find any match for {triggerType}. Alert the creator and tell him to check for errors."); break; } return(null); }