Exemple #1
0
        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();
        }
Exemple #3
0
        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();
        }