Ejemplo n.º 1
0
        public EnOceanDeviceBase(IHSApplication Hs, EnOceanController Ctrl, String deviceId, JObject config)
        {
            HS           = Hs;
            DeviceId     = deviceId;
            deviceConfig = config;
            Controller   = Ctrl;
            deviceType   = (EDeviceTypes)(int)config["device_type"];

            GetHSDevice(); // Fetch or allocate new hs device
        }
Ejemplo n.º 2
0
        public void Initialize()
        {
            Dictionary <int, Scheduler.Classes.DeviceClass> device_map = new Dictionary <int, Scheduler.Classes.DeviceClass>();
            Dictionary <int, bool> processed = new Dictionary <int, bool>();

            Scheduler.Classes.clsDeviceEnumeration devenum = HS.GetDeviceEnumerator() as Scheduler.Classes.clsDeviceEnumeration;

            while (!devenum.Finished)
            {
                Scheduler.Classes.DeviceClass dev = devenum.GetNext();
                if (dev.get_Interface(null) != Constants.PLUGIN_STRING_NAME)
                {
                    continue; // Not ours!
                }
                var extraData = dev.get_PlugExtraData_Get(HS);
                if (extraData == null)
                {
                    extraData = new PlugExtraData.clsPlugExtraData();
                }
                var typeStr = (string)extraData.GetNamed("EnOcean Type");
                if (typeStr == null)
                {
                    continue; // No type - continue
                }
                if (typeStr != "Controller")
                {
                    continue; // Not a controller
                }
                var dataStr = (string)extraData.GetNamed("EnOcean Cfg");
                if (dataStr == null)
                {
                    Console.WriteLine("No json data on device - skipping");
                    //                   extraData.AddNamed("EnOcean Cfg", config.ToString());
                    //                 rootDev.set_PlugExtraData_Set(HS, extraData);
                    continue; // Skip interface
                }
                else
                {
                    var config = JObject.Parse(dataStr);
                    Console.WriteLine("Loaded config: {0}", config.ToString());
                    var ctrlInstance = new EnOceanController(HS, HSCB, hspiInst, config);
                    ctrlInstance.Initialize();
                    AddInterface(ctrlInstance);
                }
            }
        }
Ejemplo n.º 3
0
        static public IEnOceanDevice CreateDeviceInstance(IHSApplication HS, EnOceanController Controller, String deviceId, String deviceType, JObject config)
        {
            EDeviceTypes DeviceType;

            if (Enum.TryParse <EDeviceTypes>(deviceType, out DeviceType))
            {
                config["device_type"] = (int)DeviceType;
                switch (DeviceType)
                {
                case EDeviceTypes.PUSHBUTTON_4x:
                {
                    Console.WriteLine("BUTTON THING");
                    var newDev = new EnOceanButtonDevice(HS, Controller, deviceId, config);
                    Controller.RegisterDevice(newDev);
                }
                break;

                case EDeviceTypes.DOORCONTACT:
                {
                    Console.WriteLine("DOOR THING");
                    var newDev = new EnOceanDoorContactDevice(HS, Controller, deviceId, config);
                    Controller.RegisterDevice(newDev);
                }
                break;

                case EDeviceTypes.TEMPERATURE_SENSOR:
                {
                    Console.WriteLine("TEMPERATURE THING");
                    var newDev = new EnOceanTempSensorDevice(HS, Controller, deviceId, config);
                    Controller.RegisterDevice(newDev);
                }
                break;
                }
            }
            else
            {
                Console.WriteLine("Error getting type: {0}", deviceType);
            }
            return(null);
        }
Ejemplo n.º 4
0
 public static IEnOceanDevice CreateDeviceInstance(IHSApplication HS, EnOceanController Controller, String deviceId, String deviceType, JObject config)
 {
     EDeviceTypes DeviceType;
     if (Enum.TryParse<EDeviceTypes>(deviceType, out DeviceType))
     {
         config["device_type"] = (int)DeviceType;
         switch (DeviceType)
         {
             case EDeviceTypes.PUSHBUTTON_4x:
                 {
                     Console.WriteLine("BUTTON THING");
                     var newDev = new EnOceanButtonDevice(HS, Controller, deviceId, config);
                     Controller.RegisterDevice(newDev);
                 }
                 break;
             case EDeviceTypes.DOORCONTACT:
                 {
                     Console.WriteLine("DOOR THING");
                     var newDev = new EnOceanDoorContactDevice(HS, Controller, deviceId, config);
                     Controller.RegisterDevice(newDev);
                 }
                 break;
             case EDeviceTypes.TEMPERATURE_SENSOR:
                 {
                     Console.WriteLine("TEMPERATURE THING");
                     var newDev = new EnOceanTempSensorDevice(HS, Controller, deviceId, config);
                     Controller.RegisterDevice(newDev);
                 }
                 break;
         }
     }
     else
     {
         Console.WriteLine("Error getting type: {0}", deviceType);
     }
     return null;
 }
Ejemplo n.º 5
0
 public EnOceanButtonDevice(IHSApplication HS, EnOceanController Ctrl, String deviceId, JObject config) :
     base(HS, Ctrl, deviceId, config)
 {
     Console.WriteLine("Init of EnOceanButtonDevice : {0}", deviceId);
 }
Ejemplo n.º 6
0
 public void AddInterface(EnOceanController newInterface)
 {
     interfaceList.Add(newInterface.ControllerId, newInterface);
 }
Ejemplo n.º 7
0
        public PageReturn PostHandler_HS3_EnOcean_Interfaces(String pPageName, String pCleanName, NameValueCollection pArgs)
        {
            var stb = new StringBuilder();
            if (pArgs.Get("add_interface") != null)
            {
                String port = pArgs.Get("com_selector");
                Console.WriteLine("Adding interface: " + port);
                var ifList = mCore.GetInterfaces();
                foreach (var i in ifList)
                {
                    if (i.getPortName() == port)
                        return new PageReturn("ERROR - port exist");
                }

                var initCfg = new JObject();
                initCfg.Add("portname", port);
                var newCtrl = new EnOceanController(hsHost, hsHostCB, pluginInstance, initCfg);
                if (newCtrl.Initialize())
                {
                    newCtrl.SaveConfiguration();
                    mCore.AddInterface(newCtrl);
                }
                else
                {
                    Console.WriteLine("Error adding interface: could not get id");
                    newCtrl.Close();
                }

            }
            return new PageReturn("<script>window.location='" + pPageName + "';</script>\n", true);
        }
Ejemplo n.º 8
0
        public void Initialize()
        {
            Dictionary<int, Scheduler.Classes.DeviceClass> device_map = new Dictionary<int, Scheduler.Classes.DeviceClass>();
            Dictionary<int, bool> processed = new Dictionary<int, bool>();

            Scheduler.Classes.clsDeviceEnumeration devenum = HS.GetDeviceEnumerator() as Scheduler.Classes.clsDeviceEnumeration;

            while (!devenum.Finished)
            {
                Scheduler.Classes.DeviceClass dev = devenum.GetNext();
                if (dev.get_Interface(null) != Constants.PLUGIN_STRING_NAME)
                    continue; // Not ours!
                var extraData = dev.get_PlugExtraData_Get(HS);
                if (extraData == null)
                    extraData = new PlugExtraData.clsPlugExtraData();
                var typeStr = (string)extraData.GetNamed("EnOcean Type");
                if (typeStr == null)
                    continue; // No type - continue
                if (typeStr != "Controller")
                    continue; // Not a controller
                var dataStr = (string)extraData.GetNamed("EnOcean Cfg");
                if (dataStr == null)
                {
                    Console.WriteLine("No json data on device - skipping");
                    //                   extraData.AddNamed("EnOcean Cfg", config.ToString());
                    //                 rootDev.set_PlugExtraData_Set(HS, extraData);
                    continue; // Skip interface
                }
                else
                {
                    var config = JObject.Parse(dataStr);
                    Console.WriteLine("Loaded config: {0}", config.ToString());
                    var ctrlInstance = new EnOceanController(HS, HSCB, hspiInst, config);
                    ctrlInstance.Initialize();
                    AddInterface(ctrlInstance);
                }
            }
        }
Ejemplo n.º 9
0
 public void AddInterface(EnOceanController newInterface)
 {
     interfaceList.Add(newInterface.ControllerId, newInterface);
 }
Ejemplo n.º 10
0
 public EnOceanTempSensorDevice(IHSApplication HS, EnOceanController Ctrl, String deviceId, JObject config)
     : base(HS, Ctrl, deviceId, config)
 {
     Console.WriteLine("Init of EnOceanTempSensorDevice : {0}", deviceId);
 }
Ejemplo n.º 11
0
        public EnOceanDeviceBase(IHSApplication Hs, EnOceanController Ctrl, String deviceId, JObject config)
        {
            HS = Hs;
            DeviceId = deviceId;
            deviceConfig = config;
            Controller = Ctrl;
            deviceType = (EDeviceTypes)(int)config["device_type"];

            GetHSDevice(); // Fetch or allocate new hs device
        }