public string EncodeVGPairs(HomeSeerAPI.VSVGPairs.VSPair[] AllStatus, int DevID) { StringBuilder sb = new StringBuilder(); if (AllStatus.Count() == 0 || Instance.host.DeviceVGP_Count(DevID) == 0) { return(""); } foreach (var P in AllStatus) { try { HomeSeerAPI.VSVGPairs.VGPair V = Instance.host.DeviceVGP_Get(DevID, P.Value); sb.Append("VGPAIRTAG:"); sb.Append("PairType: " + V.PairType); sb.Append(",RangeEnd: " + V.RangeEnd); sb.Append(",RangeStart: " + V.RangeStart); sb.Append(",ProtectionSet: " + V.Protection); sb.Append(",Graphic: " + V.GetGraphic(V.Value)); sb.Append(",Set_Value: " + V.Value); } catch { } } return(sb.ToString()); }
public override void AddOrUpdateHSDeviceProperties() { Console.WriteLine("FIXME: Adding HS Device control status"); // hsDevice.MISC_Set(HS, Enums.dvMISC.NO_LOG); hsDevice.MISC_Set(HS, Enums.dvMISC.SHOW_VALUES); hsDevice.set_Relationship(HS, Enums.eRelationship.Standalone); // Clear existing VSP HS.DeviceVSP_ClearAll(hsDevice.get_Ref(null), true); VSVGPairs.VSPair v = new VSVGPairs.VSPair(ePairStatusControl.Status); v.PairType = VSVGPairs.VSVGPairType.Range; var vg = new HomeSeerAPI.VSVGPairs.VGPair(); vg.PairType = VSVGPairs.VSVGPairType.Range; //v.ControlStatus = ePairStatusControl.Status; //v.ControlUse = ePairControlUse. v.RangeStatusSuffix = " C"; v.RangeStart = -50; v.RangeEnd = 100; v.RangeStatusDecimals = 2; vg.RangeStart = -50; vg.RangeEnd = 100; vg.Graphic = "/images/HomeSeer/status/Thermometer-50.png"; v.Render = Enums.CAPIControlType.ValuesRange; hsDevice.MISC_Clear(HS, Enums.dvMISC.SHOW_VALUES); // Should be set or not ? HS.DeviceVSP_AddPair(hsDevice.get_Ref(null), v); HS.DeviceVGP_AddPair(hsDevice.get_Ref(null), vg); /* * VSVGPairs.VSPair v = new VSVGPairs.VSPair(ePairStatusControl.Status); * v.PairType = VSVGPairs.VSVGPairType.SingleValue; * v.Value = 0; * v.Status = "Closed"; * v.Render = Enums.CAPIControlType.Button; * v.Render_Location.Row = 1; * v.Render_Location.Column = 1; * v.ControlUse = ePairControlUse._Off; * HS.DeviceVSP_AddPair(hsDevice.get_Ref(null), v); * * VSVGPairs.VSPair v2 = new VSVGPairs.VSPair(ePairStatusControl.Status); * v2.PairType = VSVGPairs.VSVGPairType.SingleValue; * v2.Value = 1; * v2.Status = "Open"; * v2.Render = Enums.CAPIControlType.Button; * v2.Render_Location.Row = 1; * v2.Render_Location.Column = 2; * v2.ControlUse = ePairControlUse._On; * HS.DeviceVSP_AddPair(hsDevice.get_Ref(null), v2); */ SaveConfiguration(); }
public static HomeSeerAPI.VSVGPairs.VGPair[] DecodeVGPairs(String Encoded) { IList <HomeSeerAPI.VSVGPairs.VGPair> Pairs = new List <HomeSeerAPI.VSVGPairs.VGPair>(); var PO = Encoded.Split(new[] { "VGPAIRTAG:" }, StringSplitOptions.None); foreach (string L in PO) { if (L.Count() > 5) { var V = new HomeSeerAPI.VSVGPairs.VGPair(); V.RangeEnd = Double.Parse(L.Split(new[] { "RangeEnd: " }, StringSplitOptions.None)[1].Split(',')[0]); V.RangeStart = Double.Parse(L.Split(new[] { "RangeEnd: " }, StringSplitOptions.None)[1].Split(',')[0]); V.ProtectionSet = Int32.Parse(L.Split(new[] { "ProtectionSet: " }, StringSplitOptions.None)[1].Split(',')[0]); V.Graphic = L.Split(new[] { "Graphic: " }, StringSplitOptions.None)[1].Split(',')[0]; V.Set_Value = Double.Parse(L.Split(new[] { "Set_Value: " }, StringSplitOptions.None)[1].Split(',')[0]); string StatusControl = L.Split(new[] { "PairType: " }, StringSplitOptions.None)[1].Split(',')[0]; int SC = 1; switch (StatusControl) { case ("SingleValue"): { SC = 1; break; } case ("Range"): { SC = 2; break; } } V.PairType = (HomeSeerAPI.VSVGPairs.VSVGPairType)SC; Pairs.Add(V); } } return(Pairs.ToArray()); }
public override void AddOrUpdateHSDeviceProperties() { Console.WriteLine("FIXME: Adding HS Device control status"); // hsDevice.MISC_Set(HS, Enums.dvMISC.NO_LOG); hsDevice.MISC_Set(HS, Enums.dvMISC.SHOW_VALUES); hsDevice.set_Relationship(HS, Enums.eRelationship.Standalone); // Clear existing VSP HS.DeviceVSP_ClearAll(hsDevice.get_Ref(null), true); VSVGPairs.VSPair v = new VSVGPairs.VSPair(ePairStatusControl.Status); v.PairType = VSVGPairs.VSVGPairType.Range; var vg = new HomeSeerAPI.VSVGPairs.VGPair(); vg.PairType = VSVGPairs.VSVGPairType.Range; //v.ControlStatus = ePairStatusControl.Status; //v.ControlUse = ePairControlUse. v.RangeStatusSuffix = " C"; v.RangeStart = -50; v.RangeEnd = 100; v.RangeStatusDecimals = 2; vg.RangeStart = -50; vg.RangeEnd = 100; vg.Graphic = "/images/HomeSeer/status/Thermometer-50.png"; v.Render = Enums.CAPIControlType.ValuesRange; hsDevice.MISC_Clear(HS, Enums.dvMISC.SHOW_VALUES); // Should be set or not ? HS.DeviceVSP_AddPair(hsDevice.get_Ref(null), v); HS.DeviceVGP_AddPair(hsDevice.get_Ref(null), vg); /* VSVGPairs.VSPair v = new VSVGPairs.VSPair(ePairStatusControl.Status); v.PairType = VSVGPairs.VSVGPairType.SingleValue; v.Value = 0; v.Status = "Closed"; v.Render = Enums.CAPIControlType.Button; v.Render_Location.Row = 1; v.Render_Location.Column = 1; v.ControlUse = ePairControlUse._Off; HS.DeviceVSP_AddPair(hsDevice.get_Ref(null), v); VSVGPairs.VSPair v2 = new VSVGPairs.VSPair(ePairStatusControl.Status); v2.PairType = VSVGPairs.VSVGPairType.SingleValue; v2.Value = 1; v2.Status = "Open"; v2.Render = Enums.CAPIControlType.Button; v2.Render_Location.Row = 1; v2.Render_Location.Column = 2; v2.ControlUse = ePairControlUse._On; HS.DeviceVSP_AddPair(hsDevice.get_Ref(null), v2); */ SaveConfiguration(); }