/// <summary>
        /// Initializes a new instance of the <see cref="InterfaceSkelton"/> class.
        /// </summary>
        public InterfaceSkelton()
        {
            // Creating modules would normally be done in either the connect method or within the GetModules() Method
            // See https://github.com/Bounz/HomeGenie-BE/blob/master/MIG/MIG.Interfaces.HomeAutomation.ZWave/ZWave.cs for an example
            // The default constuctor can then be removed.
            this.modules = new List <InterfaceModule>();

            // manually add some fake modules
            var module_1 = new InterfaceModule
            {
                Domain     = this.GetDomain(),
                Address    = "1",
                ModuleType = ModuleTypes.Light
            };

            var module_2 = new InterfaceModule
            {
                Domain     = this.GetDomain(),
                Address    = "2",
                ModuleType = ModuleTypes.Sensor
            };

            var module_3 = new InterfaceModule
            {
                Domain     = this.GetDomain(),
                Address    = "3",
                ModuleType = ModuleTypes.Sensor
            };

            // add them to the modules list
            this.modules.Add(module_1);
            this.modules.Add(module_2);
            this.modules.Add(module_3);
        }
Ejemplo n.º 2
0
        public List <InterfaceModule> GetModules()
        {
            List <InterfaceModule> modules = new List <InterfaceModule>();

            if (x10lib != null)
            {
                InterfaceModule module = new InterfaceModule();

                // CM-15 RF receiver
                if (this.GetOption("Port").Value.Equals("USB"))
                {
                    module.Domain     = this.GetDomain();
                    module.Address    = "RF";
                    module.ModuleType = ModuleTypes.Sensor;
                    modules.Add(module);
                }

                // Standard X10 modules
                foreach (var kv in x10lib.Modules)
                {
                    module             = new InterfaceModule();
                    module.Domain      = this.GetDomain();
                    module.Address     = kv.Value.Code;
                    module.ModuleType  = ModuleTypes.Switch;
                    module.Description = "X10 Module";
                    modules.Add(module);
                }

                // CM-15 RF Security modules
                modules.AddRange(securityModules);
            }
            return(modules);
        }
Ejemplo n.º 3
0
        private void W800Rf32_RfCommandReceived(object sender, RfCommandReceivedEventArgs args)
        {
            string address = args.HouseCode.ToString() + args.UnitCode.ToString().Split('_')[1];

            if (args.UnitCode == X10UnitCode.Unit_NotSet)
            {
                return;
            }
            var module = modules.Find(m => m.Address == address);

            if (module == null)
            {
                module             = new InterfaceModule();
                module.Domain      = X10_DOMAIN;
                module.Address     = address;
                module.Description = "W800RF32 module";
                module.ModuleType  = ModuleTypes.Switch;
                module.CustomData  = 0.0D;
                modules.Add(module);
                OnInterfacePropertyChanged(this.GetDomain(), "1", "W800RF32 Receiver", ModuleEvents.Receiver_Status, "Added module " + address);
                OnInterfaceModulesChanged(X10_DOMAIN);
            }
            switch (args.Command)
            {
            case X10RfFunction.On:
                module.CustomData = 1.0D;
                break;

            case X10RfFunction.Off:
                module.CustomData = 0.0D;
                break;

            case X10RfFunction.Bright:
                double lbri = module.CustomData;
                lbri += 0.1;
                if (lbri > 1)
                {
                    lbri = 1;
                }
                module.CustomData = lbri;
                break;

            case X10RfFunction.Dim:
                double ldim = module.CustomData;
                ldim -= 0.1;
                if (ldim < 0)
                {
                    ldim = 0;
                }
                module.CustomData = ldim;
                break;

            case X10RfFunction.AllLightsOn:
                break;

            case X10RfFunction.AllLightsOff:
                break;
            }
            OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Module", ModuleEvents.Status_Level, module.CustomData);
        }
Ejemplo n.º 4
0
        public List <InterfaceModule> GetModules()
        {
            List <InterfaceModule> modules = new List <InterfaceModule>();

            if (controller != null)
            {
                for (int d = 0; d < controller.Devices.Count; d++)
                {
                    var node = controller.Devices[d];
                    if (node.NodeId == 0x01) // zwave controller id
                    {
                        continue;
                    }
                    //
                    // add new module
                    InterfaceModule module = new InterfaceModule();
                    module.Domain  = this.Domain;
                    module.Address = node.NodeId.ToString();
                    //module.Description = "ZWave Node";
                    module.ModuleType = ModuleTypes.Generic;
                    if (node.GenericClass != 0x00)
                    {
                        switch (node.GenericClass)
                        {
                        case 0x10: // BINARY SWITCH
                            module.Description = "ZWave Switch";
                            module.ModuleType  = ModuleTypes.Switch;
                            break;

                        case 0x11: // MULTILEVEL SWITCH (DIMMER)
                            module.Description = "ZWave Multilevel Switch";
                            module.ModuleType  = ModuleTypes.Dimmer;
                            break;

                        case 0x08: // THERMOSTAT
                            module.Description = "ZWave Thermostat";
                            module.ModuleType  = ModuleTypes.Thermostat;
                            break;

                        case 0x20: // BINARY SENSOR
                            module.Description = "ZWave Sensor";
                            module.ModuleType  = ModuleTypes.Sensor;
                            break;

                        case 0x21: // MULTI-LEVEL SENSOR
                            module.Description = "ZWave Multilevel Sensor";
                            module.ModuleType  = ModuleTypes.Sensor;
                            break;

                        case 0x31: // METER
                            module.Description = "ZWave Meter";
                            module.ModuleType  = ModuleTypes.Sensor;
                            break;
                        }
                    }
                    modules.Add(module);
                }
            }
            return(modules);
        }
Ejemplo n.º 5
0
        public List <InterfaceModule> GetModules()
        {
            var module  = new InterfaceModule();
            var modules = new List <InterfaceModule>();

            // CM15 / CM19 RF transceiver
            if (portName == Cm15LibDriverPort || portName == Cm19LibDriverPort)
            {
                module.Domain  = this.GetDomain();
                module.Address = "RF";
                if (portName == Cm15LibDriverPort)
                {
                    module.Description = "CM15 Transceiver";
                }
                else
                {
                    module.Description = "CM19 Transceiver";
                }
                module.ModuleType = ModuleTypes.Sensor;
                modules.Add(module);
            }
            // Standard X10 modules
            foreach (var kv in x10Lib.Modules)
            {
                module             = new InterfaceModule();
                module.Domain      = this.GetDomain();
                module.Address     = kv.Value.Code;
                module.ModuleType  = ModuleTypes.Switch;
                module.Description = "X10 Module";
                modules.Add(module);
            }
            // CM15 / CM19 RF Security modules
            modules.AddRange(securityModules);
            return(modules);
        }
Ejemplo n.º 6
0
 public void OnSetOption(Option option)
 {
     // parse option
     if (option.Name == "Port" && option.Value != null)
     {
         Disconnect();
         portName = this.GetOption("Port").Value.Replace("|", "/");
     }
     else if (option.Name == "HouseCodes" && option.Value != null)
     {
         // this option ends up in XTenLib to build the modules list that is used by CM19Lib as well
         var houseCodes = this.GetOption("HouseCodes");
         x10Lib.HouseCode = houseCodes.Value; // this will rebuild XTenLib.Modules list
         // Build CM19Lib module list to store modules Level value (uses XTenLib.Modules to enumerate standard modules)
         standardModules.Clear();
         foreach (var m in x10Lib.Modules)
         {
             var module = new InterfaceModule();
             module.Domain      = this.GetDomain();
             module.Address     = m.Value.Code;
             module.Description = m.Value.Description;
             module.ModuleType  = ModuleTypes.Switch;
             module.CustomData  = m.Value.Level;
             standardModules.Add(module);
         }
         OnInterfaceModulesChanged(this.GetDomain());
     }
     // re-connect if an interface option is updated
     if (IsEnabled)
     {
         Connect();
     }
 }
Ejemplo n.º 7
0
        public List <InterfaceModule> GetModules()
        {
            List <InterfaceModule> modules = new List <InterfaceModule>();

            if (x10lib != null)
            {
                // CM-15 RF receiver
                // TODO: this shouldn't be created for CM-11
                InterfaceModule module = new InterfaceModule();
                module.Domain     = this.Domain;
                module.Address    = "RF";
                module.ModuleType = ModuleTypes.Sensor;
                modules.Add(module);

                foreach (var kv in x10lib.Modules)
                {
                    module             = new InterfaceModule();
                    module.Domain      = this.Domain;
                    module.Address     = kv.Value.Code;
                    module.ModuleType  = ModuleTypes.Generic;
                    module.Description = "X10 Module";
                    modules.Add(module);
                }
            }
            return(modules);
        }
Ejemplo n.º 8
0
        public List <InterfaceModule> GetModules()
        {
            List <InterfaceModule> modules = new List <InterfaceModule>();
            InterfaceModule        module  = new InterfaceModule();

            module.Domain     = this.Domain;
            module.Address    = "RF";
            module.ModuleType = ModuleTypes.Sensor;
            modules.Add(module);
            return(modules);
        }
Ejemplo n.º 9
0
        private void controPoint_OnAddedDevice(UpnpSmartControlPoint sender, UPnPDevice device)
        {
            if (String.IsNullOrWhiteSpace(device.StandardDeviceType))
            {
                return;
            }

            //foreach (UPnPService s in device.Services)
            //{
            //    s.Subscribe(1000, new UPnPService.UPnPEventSubscribeHandler(_subscribe_sink));
            //}

            lock (deviceOperationLock)
            {
                InterfaceModule module = new InterfaceModule();
                module.Domain      = this.Domain;
                module.Address     = device.UniqueDeviceName;
                module.Description = device.FriendlyName + " (" + device.ModelName + ")";
                if (device.StandardDeviceType == "MediaRenderer")
                {
                    module.ModuleType = MIG.ModuleTypes.MediaReceiver;
                }
                else if (device.StandardDeviceType == "MediaServer")
                {
                    module.ModuleType = MIG.ModuleTypes.MediaTransmitter;
                }
                else if (device.StandardDeviceType == "SwitchPower")
                {
                    module.ModuleType = MIG.ModuleTypes.Switch;
                }
                else if (device.StandardDeviceType == "BinaryLight")
                {
                    module.ModuleType = MIG.ModuleTypes.Light;
                }
                else if (device.StandardDeviceType == "DimmableLight")
                {
                    module.ModuleType = MIG.ModuleTypes.Dimmer;
                }
                else
                {
                    module.ModuleType = MIG.ModuleTypes.Sensor;
                }
                module.CustomData = new DeviceHolder()
                {
                    Device = device, Initialized = false
                };
                modules.Add(module);
                //
                OnInterfacePropertyChanged(this.GetDomain(), "1", "DLNA/UPnP Controller", "Controller.Status", "Added node " + module.Description);
            }
            OnInterfaceModulesChanged(this.GetDomain());
        }
Ejemplo n.º 10
0
        /// <summary>
        /// The GetModules
        /// </summary>
        /// <returns>The <see cref="List{InterfaceModule}"/></returns>
        public List <InterfaceModule> GetModules()
        {
            List <InterfaceModule> modules = new List <InterfaceModule>();

            InterfaceModule module = new InterfaceModule();

            module.Domain      = this.GetDomain();
            module.Address     = "AV0";
            module.Description = "Video 4 Linux Video Input";
            module.ModuleType  = MIG.ModuleTypes.Sensor;
            modules.Add(module);

            return(modules);
        }
Ejemplo n.º 11
0
 public W800RF()
 {
     w800Rf32 = new RfReceiver();
     w800Rf32.RfCommandReceived += W800Rf32_RfCommandReceived;
     w800Rf32.RfDataReceived += W800Rf32_RfDataReceived;
     w800Rf32.RfSecurityReceived += W800Rf32_RfSecurityReceived;
     modules = new List<InterfaceModule>();
     // Add RF receiver module
     InterfaceModule module = new InterfaceModule();
     module.Domain = this.GetDomain();
     module.Address = "RF";
     module.ModuleType = ModuleTypes.Sensor;
     modules.Add(module);
 }
        /// <summary>
        /// Gets the Interface Modules
        /// </summary>
        /// <returns>List containing the interfaces modules</returns>
        public List <InterfaceModule> GetModules()
        {
            var modules = new List <InterfaceModule>();

            // Get Devices from the controller
            this.devices = this.LoadAllDevices();

            foreach (var device in this.devices)
            {
                var module = new InterfaceModule
                {
                    Domain  = this.GetDomain(),
                    Address = device.ID.ToString()
                };

                switch (device.ApplicationType)
                {
                case DeviceType.Light:
                    Log.Debug($"Adding Module {device.ApplicationType}");
                    module.Description = "Light";
                    module.ModuleType  = ModuleTypes.Dimmer;
                    break;

                case DeviceType.Remote:
                    Log.Debug($"Adding Module {device.ApplicationType}");
                    module.Description = "Binary Switch";
                    module.ModuleType  = ModuleTypes.Switch;
                    break;

                case DeviceType.Unknown_1:
                    Log.Debug($"Adding Module {device.ApplicationType}");
                    break;

                case DeviceType.Unknown_2:
                    Log.Debug($"Adding Module {device.ApplicationType}");
                    break;

                default:
                    Log.Debug($"Adding Module {device.ApplicationType}");
                    module.Description = "Unknown Type";
                    module.ModuleType  = ModuleTypes.Generic;
                    break;
                }

                modules.Add(module);
            }

            return(modules);
        }
Ejemplo n.º 13
0
        private int SensorUpdated(
            string protocol, string model, int id, int dataType, string val, int timestamp, int callbackId, object obj,
            UnmanagedException ex)
        {
            Console.WriteLine("TS: " + protocol + ", " + model + ", " + id + ", " + dataType + ", " + val + ", " + timestamp + ", " + callbackId);
            var module = interfaceModules.FirstOrDefault(i => i.Address == id.ToString());

            if (module == null)
            {
                module = new InterfaceModule
                {
                    Domain      = Domain,
                    Address     = id.ToString(),
                    Description = model + " - " + protocol,
                    ModuleType  = ModuleTypes.Sensor
                };
                interfaceModules.Add(module);

                InterfaceModulesChangedAction(new InterfaceModulesChangedAction
                {
                    Domain = Domain
                });
            }

            var path = ModuleParameters.MODPAR_STATUS_LEVEL;

            if (dataType == (int)TelldusLib.DataType.TEMPERATURE)
            {
                path = ModuleParameters.MODPAR_SENSOR_TEMPERATURE;
            }
            else if (dataType == (int)TelldusLib.DataType.HUMIDITY)
            {
                path = ModuleParameters.MODPAR_SENSOR_HUMIDITY;
            }

            InterfacePropertyChangedAction(new InterfacePropertyChangedAction()
            {
                Domain     = Domain,
                SourceId   = module.Address,
                SourceType = "Tellstick Sensor",
                Path       = path,
                Value      = val
            });

            //Sensor.Temperature
            //MODPAR_SENSOR_TEMPERATURE

            return(1);
        }
Ejemplo n.º 14
0
        public W800RF()
        {
            w800Rf32 = new RfReceiver();
            w800Rf32.RfCommandReceived  += W800Rf32_RfCommandReceived;
            w800Rf32.RfDataReceived     += W800Rf32_RfDataReceived;
            w800Rf32.RfSecurityReceived += W800Rf32_RfSecurityReceived;
            modules = new List <InterfaceModule>();
            // Add RF receiver module
            InterfaceModule module = new InterfaceModule();

            module.Domain     = this.GetDomain();
            module.Address    = "RF";
            module.ModuleType = ModuleTypes.Sensor;
            modules.Add(module);
        }
Ejemplo n.º 15
0
        private InterfaceModule AddSecurityModule(ModuleTypes moduleType, string address)
        {
            InterfaceModule module = new InterfaceModule();

            module.Domain      = this.GetDomain();
            module.Address     = address;
            module.Description = "X10 Security";
            module.ModuleType  = moduleType;
            module.CustomData  = 0D;
            securityModules.Add(module);
            SerializeModules(SecurityModulesDb, securityModules);
            OnInterfacePropertyChanged(module.Domain, "RF", "X10 RF Receiver", ModuleEvents.Receiver_Status, "Added module " + address + " (" + moduleType + ")");
            OnInterfaceModulesChanged(module.Domain);
            return(module);
        }
Ejemplo n.º 16
0
        public List <InterfaceModule> GetModules()
        {
            List <InterfaceModule> modules = new List <InterfaceModule>();

            foreach (var rv in GpioPins)
            {
                InterfaceModule module = new InterfaceModule();
                module.Domain      = this.Domain;
                module.Address     = rv.Key;
                module.Description = "Raspberry Pi GPIO";
                module.ModuleType  = MIG.ModuleTypes.Switch;
                modules.Add(module);
            }

            return(modules);
        }
Ejemplo n.º 17
0
        public List <InterfaceModule> GetModules()
        {
            List <InterfaceModule> modules = new List <InterfaceModule>();

            foreach (var rv in RegPins)
            {
                InterfaceModule module = new InterfaceModule();
                module.Domain      = this.Domain;
                module.ModuleType  = MIG.ModuleTypes.Sensor;
                module.Address     = rv.Key;
                module.Description = "Weeco-4M Register";
                modules.Add(module);
                InterfacePropertyChangedAction(new InterfacePropertyChangedAction()
                {
                    Domain     = module.Domain,
                    SourceId   = module.Address,
                    SourceType = module.Description,
                    Path       = "Status.Level",
                    Value      = rv.Value
                });
            }

            // digital in/out
            foreach (var rv in GpioPins)
            {
                InterfaceModule module = new InterfaceModule();
                module.Domain      = this.Domain;
                module.Address     = rv.Key;
                module.Description = "Weeco-4M GPIO";
                module.ModuleType  = MIG.ModuleTypes.Switch;
                modules.Add(module);
                InterfacePropertyChangedAction(new InterfacePropertyChangedAction()
                {
                    Domain     = module.Domain,
                    SourceId   = module.Address,
                    SourceType = module.Description,
                    Path       = "Status.Level",
                    Value      = (rv.Value ? "1" : "0")
                });
            }

            return(modules);
        }
 public InterfaceSkelton()
 {
     modules = new List<InterfaceModule>();
     // manually add some fake modules
     var module_1 = new InterfaceModule();
     module_1.Domain = this.GetDomain();
     module_1.Address = "1";
     module_1.ModuleType = ModuleTypes.Light;
     var module_2 = new InterfaceModule();
     module_2.Domain = this.GetDomain();
     module_2.Address = "2";
     module_2.ModuleType = ModuleTypes.Sensor;
     var module_3 = new InterfaceModule();
     module_3.Domain = this.GetDomain();
     module_3.Address = "3";
     module_3.ModuleType = ModuleTypes.Sensor;
     // add them to the modules list
     modules.Add(module_1);
     modules.Add(module_2);
     modules.Add(module_3);
 }
Ejemplo n.º 19
0
        public List <InterfaceModule> GetModules()
        {
            List <InterfaceModule> modules = new List <InterfaceModule>();

            InterfaceModule module = new InterfaceModule();

            module.Domain      = this.Domain;
            module.Address     = "AV0";
            module.Description = "Video 4 Linux Video Input";
            module.ModuleType  = MIG.ModuleTypes.Sensor;
            InterfacePropertyChangedAction(new InterfacePropertyChangedAction()
            {
                Domain     = this.Domain,
                SourceId   = module.Address,
                SourceType = "Camera Input",
                Path       = "Widget.DisplayModule",
                Value      = "homegenie/generic/camerainput"
            });
            modules.Add(module);

            return(modules);
        }
Ejemplo n.º 20
0
        private int SensorUpdated(
            string protocol, string model, int id, int dataType, string val, int timestamp, int callbackId, object obj,
            UnmanagedException ex)
        {
            Console.WriteLine("TS: " + protocol + ", " + model + ", " + id + ", " + dataType + ", " + val + ", " + timestamp + ", " + callbackId);
            var module = interfaceModules.FirstOrDefault(i => i.Address == id.ToString());

            if (module == null)
            {
                module = new InterfaceModule
                {
                    Domain      = Domain,
                    Address     = id.ToString(),
                    Description = model + " - " + protocol,
                    ModuleType  = ModuleTypes.Sensor
                };
                interfaceModules.Add(module);

                OnInterfaceModulesChanged(this.GetDomain());
            }

            var path = ModuleEvents.Status_Level;

            if (dataType == (int)TelldusLib.DataType.TEMPERATURE)
            {
                path = ModuleEvents.Sensor_Temperature;
            }
            else if (dataType == (int)TelldusLib.DataType.HUMIDITY)
            {
                path = ModuleEvents.Sensor_Humidity;
            }

            OnInterfacePropertyChanged(this.GetDomain(), module.Address, Event_Sensor_Description, path, val);

            return(1);
        }
Ejemplo n.º 21
0
        public InterfaceSkelton()
        {
            modules = new List <InterfaceModule>();
            // manually add some fake modules
            var module_1 = new InterfaceModule();

            module_1.Domain     = this.GetDomain();
            module_1.Address    = "1";
            module_1.ModuleType = ModuleTypes.Light;
            var module_2 = new InterfaceModule();

            module_2.Domain     = this.GetDomain();
            module_2.Address    = "2";
            module_2.ModuleType = ModuleTypes.Sensor;
            var module_3 = new InterfaceModule();

            module_3.Domain     = this.GetDomain();
            module_3.Address    = "3";
            module_3.ModuleType = ModuleTypes.Sensor;
            // add them to the modules list
            modules.Add(module_1);
            modules.Add(module_2);
            modules.Add(module_3);
        }
Ejemplo n.º 22
0
        public List<InterfaceModule> GetModules()
        {
            List<InterfaceModule> modules = new List<InterfaceModule>();
            if (x10lib != null)
            {

                InterfaceModule module = new InterfaceModule();

                // CM-15 RF receiver
                if (this.GetOption("Port").Value.Equals("USB"))
                {
                    module.Domain = this.GetDomain();
                    module.Address = "RF";
                    module.ModuleType = ModuleTypes.Sensor;
                    modules.Add(module);
                }

                // Standard X10 modules
                foreach (var kv in x10lib.Modules)
                {

                    module = new InterfaceModule();
                    module.Domain = this.GetDomain();
                    module.Address = kv.Value.Code;
                    module.ModuleType = ModuleTypes.Switch;
                    module.Description = "X10 Module";
                    modules.Add(module);

                }

                // CM-15 RF Security modules
                modules.AddRange(securityModules);

            }
            return modules;
        }
Ejemplo n.º 23
0
	    private int SensorUpdated(
		    string protocol, string model, int id, int dataType, string val, int timestamp, int callbackId, object obj,
		    UnmanagedException ex)
	    {
		    Console.WriteLine("TS: " + protocol + ", " + model + ", " + id + ", " + dataType + ", " + val + ", " + timestamp + ", " + callbackId);
			var module = interfaceModules.FirstOrDefault(i => i.Address == id.ToString());
		    if (module == null)
		    {

				module = new InterfaceModule
				{
					Domain = Domain,
					Address = id.ToString(),
					Description = model + " - " + protocol,
					ModuleType = ModuleTypes.Sensor
				};
				interfaceModules.Add(module);

                InterfaceModulesChangedAction(new InterfaceModulesChangedAction
                {
                    Domain = Domain
                });
            }
			
			var path = ModuleParameters.MODPAR_STATUS_LEVEL;
			if(dataType == (int)TelldusLib.DataType.TEMPERATURE)
				path = ModuleParameters.MODPAR_SENSOR_TEMPERATURE;
			else if(dataType == (int)TelldusLib.DataType.HUMIDITY)
				path = ModuleParameters.MODPAR_SENSOR_HUMIDITY;
            
			InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                Domain = Domain,
                SourceId = module.Address,
                SourceType = "Tellstick Sensor",
                Path = path,
                Value = val
            });

			//Sensor.Temperature
			//MODPAR_SENSOR_TEMPERATURE

			return 1;
	    }
Ejemplo n.º 24
0
        public List<InterfaceModule> GetModules()
        {
            List<InterfaceModule> modules = new List<InterfaceModule>();

            foreach (var rv in GpioPins)
            {
                InterfaceModule module = new InterfaceModule();
                module.Domain = this.Domain;
                module.Address = rv.Key;
                module.Description = "Raspberry Pi GPIO";
                module.ModuleType = MIG.ModuleTypes.Switch;
                modules.Add(module);
            }

            return modules;
        }
Ejemplo n.º 25
0
        private void controPoint_OnAddedDevice(UpnpSmartControlPoint sender, UPnPDevice device)
        {
            if (String.IsNullOrWhiteSpace(device.StandardDeviceType))
                return;

            //foreach (UPnPService s in device.Services)
            //{
            //    s.Subscribe(1000, new UPnPService.UPnPEventSubscribeHandler(_subscribe_sink));
            //}

            lock (deviceOperationLock)
            {
                InterfaceModule module = new InterfaceModule();
                module.Domain = this.Domain;
                module.Address = device.UniqueDeviceName;
                module.Description = device.FriendlyName + " (" + device.ModelName + ")";
                if (device.StandardDeviceType == "MediaRenderer")
                {
                    module.ModuleType = MIG.ModuleTypes.MediaReceiver;
                }
                else if (device.StandardDeviceType == "MediaServer")
                {
                    module.ModuleType = MIG.ModuleTypes.MediaTransmitter;
                }
                else if (device.StandardDeviceType == "SwitchPower")
                {
                    module.ModuleType = MIG.ModuleTypes.Switch;
                }
                else if (device.StandardDeviceType == "BinaryLight")
                {
                    module.ModuleType = MIG.ModuleTypes.Light;
                }
                else if (device.StandardDeviceType == "DimmableLight")
                {
                    module.ModuleType = MIG.ModuleTypes.Dimmer;
                }
                else
                {
                    module.ModuleType = MIG.ModuleTypes.Sensor;
                }
                module.CustomData = new DeviceHolder() { Device = device, Initialized = false };
                modules.Add(module);
                //
                if (InterfacePropertyChangedAction != null)
                    InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                        Domain = this.Domain,
                        SourceId = "1",
                        SourceType = "DLNA/UPnP Controller",
                        Path = "Controller.Status",
                        Value = "Added node " + module.Description
                    });
            }
            if (InterfaceModulesChangedAction != null) InterfaceModulesChangedAction(new InterfaceModulesChangedAction() { Domain = this.Domain });
        }
Ejemplo n.º 26
0
        public List<InterfaceModule> GetModules()
        {
            List<InterfaceModule> modules = new List<InterfaceModule>();

            InterfaceModule module = new InterfaceModule();
            module.Domain = this.GetDomain();
            module.Address = "AV0";
            module.Description = "Video 4 Linux Video Input";
            module.ModuleType = MIG.ModuleTypes.Sensor;
            modules.Add(module);

            return modules;
        }
Ejemplo n.º 27
0
 private void UpdateModuleLevel(InterfaceModule module)
 {
     OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Module", ModuleEvents.Status_Level, module.CustomData.ToString(CultureInfo.InvariantCulture));
 }
Ejemplo n.º 28
0
        public List<InterfaceModule> GetModules()
        {
            List<InterfaceModule> modules = new List<InterfaceModule>();

            foreach (var rv in RegPins)
            {
                InterfaceModule module = new InterfaceModule();
                module.Domain = this.Domain;
                module.ModuleType = MIG.ModuleTypes.Sensor;
                module.Address = rv.Key;
                module.Description = "Weeco-4M Register";
                modules.Add(module);
                InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                    Domain = module.Domain,
                    SourceId = module.Address,
                    SourceType = module.Description,
                    Path = "Status.Level",
                    Value = rv.Value
                });
            }

            // digital in/out
            foreach (var rv in GpioPins)
            {
                InterfaceModule module = new InterfaceModule();
                module.Domain = this.Domain;
                module.Address = rv.Key;
                module.Description = "Weeco-4M GPIO";
                module.ModuleType = MIG.ModuleTypes.Switch;
                modules.Add(module);
                InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                    Domain = module.Domain,
                    SourceId = module.Address,
                    SourceType = module.Description,
                    Path = "Status.Level",
                    Value = (rv.Value ? "1" : "0")
                });
            }

            return modules;
        }
Ejemplo n.º 29
0
        private void W800Rf32_RfSecurityReceived(object sender, RfSecurityReceivedEventArgs args)
        {
            //args.Event == X10RfSecurityEvent.
            string address    = "S-" + args.Address.ToString("X2");
            var    moduleType = ModuleTypes.Generic;

            if (args.Event.ToString().StartsWith("DoorSensor1_"))
            {
                address   += "01";
                moduleType = ModuleTypes.DoorWindow;
            }
            else if (args.Event.ToString().StartsWith("DoorSensor2_"))
            {
                address   += "02";
                moduleType = ModuleTypes.DoorWindow;
            }
            else if (args.Event.ToString().StartsWith("Motion_"))
            {
                moduleType = ModuleTypes.Sensor;
            }
            else if (args.Event.ToString().StartsWith("Remote_"))
            {
                address    = "S-REMOTE";
                moduleType = ModuleTypes.Sensor;
            }
            var module = modules.Find(m => m.Address == address);

            if (module == null)
            {
                module             = new InterfaceModule();
                module.Domain      = X10_DOMAIN;
                module.Address     = address;
                module.Description = "W800RF32 security module";
                module.ModuleType  = moduleType;
                module.CustomData  = 0.0D;
                modules.Add(module);
                RaisePropertyChanged(this.Domain, "1", "W800RF32 Receiver", "Receiver.Status", "Added security module " + address);
                if (InterfaceModulesChangedAction != null)
                {
                    InterfaceModulesChangedAction(new InterfaceModulesChangedAction()
                    {
                        Domain = this.Domain
                    });
                }
            }
            switch (args.Event)
            {
            case X10RfSecurityEvent.DoorSensor1_Alert:
            case X10RfSecurityEvent.DoorSensor2_Alert:
                RaisePropertyChanged(module.Domain, module.Address, "X10 Module", "Status.Level", 1);
                break;

            case X10RfSecurityEvent.DoorSensor1_Normal:
            case X10RfSecurityEvent.DoorSensor2_Normal:
                RaisePropertyChanged(module.Domain, module.Address, "X10 Module", "Status.Level", 0);
                break;

            case X10RfSecurityEvent.DoorSensor1_BatteryLow:
            case X10RfSecurityEvent.DoorSensor2_BatteryLow:
                RaisePropertyChanged(module.Domain, module.Address, "X10 Module", "Status.Battery", 10);
                break;

            case X10RfSecurityEvent.DoorSensor1_BatteryOk:
            case X10RfSecurityEvent.DoorSensor2_BatteryOk:
                RaisePropertyChanged(module.Domain, module.Address, "X10 Module", "Status.Battery", 100);
                break;

            case X10RfSecurityEvent.Motion_Alert:
                RaisePropertyChanged(module.Domain, module.Address, "X10 Module", "Status.Level", 1);
                break;

            case X10RfSecurityEvent.Motion_Normal:
                RaisePropertyChanged(module.Domain, module.Address, "X10 Module", "Status.Level", 0);
                break;

            case X10RfSecurityEvent.Remote_Arm:
            case X10RfSecurityEvent.Remote_Disarm:
            case X10RfSecurityEvent.Remote_Panic:
            case X10RfSecurityEvent.Remote_LightOn:
            case X10RfSecurityEvent.Remote_LightOff:
                var evt = args.Event.ToString();
                evt = evt.Substring(evt.IndexOf('_') + 1);
                RaisePropertyChanged(module.Domain, module.Address, "X10 Module", "Sensor.Key", evt);
                break;
            }
        }
Ejemplo n.º 30
0
        public List<InterfaceModule> GetModules()
        {
            List<InterfaceModule> modules = new List<InterfaceModule>();
            if (x10lib != null)
            {

                // CM-15 RF receiver
                // TODO: this shouldn't be created for CM-11
                InterfaceModule module = new InterfaceModule();
                module.Domain = this.Domain;
                module.Address = "RF";
                module.ModuleType = ModuleTypes.Sensor;
                modules.Add(module);

                foreach (var kv in x10lib.ModulesStatus)
                {

                    module = new InterfaceModule();
                    module.Domain = this.Domain;
                    module.Address = kv.Value.Code;
                    module.ModuleType = ModuleTypes.Generic;
                    module.Description = "X10 Module";
                    modules.Add(module);

                }

            }
            return modules;
        }
Ejemplo n.º 31
0
        public List<InterfaceModule> GetModules()
        {
            List<InterfaceModule> modules = new List<InterfaceModule>();

            for (int d = 0; d < this.UpnpControlPoint.DeviceTable.Count; d++)
            {
                var device = (UPnPDevice)(this.UpnpControlPoint.DeviceTable[d]);
                InterfaceModule module = new InterfaceModule();
                module.Domain = this.Domain;
                module.Address = device.UniqueDeviceName;
                module.Description = device.FriendlyName + " (" + device.ModelName + ")";
                module.ModuleType = MIG.ModuleTypes.Sensor;
                if (device.StandardDeviceType == "MediaRenderer")
                {
                    InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                        Domain = this.Domain,
                        SourceId = device.UniqueDeviceName,
                        SourceType = "UPnP " + device.FriendlyName,
                        Path = "UPnP.DeviceType",
                        Value = device.StandardDeviceType
                    });
                    module.ModuleType = MIG.ModuleTypes.MediaReceiver;
                    InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                        Domain = this.Domain,
                        SourceId = device.UniqueDeviceName,
                        SourceType = "UPnP " + device.FriendlyName,
                        Path = "Widget.DisplayModule",
                        Value = "homegenie/generic/mediareceiver"
                    });
                }
                else if (device.StandardDeviceType == "MediaServer")
                {
                    InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                        Domain = this.Domain,
                        SourceId = device.UniqueDeviceName,
                        SourceType = "UPnP " + device.FriendlyName,
                        Path = "Widget.DisplayModule",
                        Value = "homegenie/generic/mediaserver"
                    });
                }
                else if (device.StandardDeviceType == "SwitchPower")
                {
                    module.ModuleType = MIG.ModuleTypes.Switch;
                }
                else if (device.StandardDeviceType == "BinaryLight")
                {
                    module.ModuleType = MIG.ModuleTypes.Light;
                }
                else if (device.StandardDeviceType == "DimmableLight")
                {
                    module.ModuleType = MIG.ModuleTypes.Dimmer;
                }
                else if (device.HasPresentation)
                {
                    InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                        Domain = this.Domain,
                        SourceId = device.UniqueDeviceName,
                        SourceType = "UPnP " + device.FriendlyName,
                        Path = "Widget.DisplayModule",
                        Value = "homegenie/generic/link"
                    });
                    InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                        Domain = this.Domain,
                        SourceId = device.UniqueDeviceName,
                        SourceType = "UPnP " + device.FriendlyName,
                        Path = "FavouritesLink.Url",
                        Value = device.PresentationURL
                    });
                }

                InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                    Domain = this.Domain,
                    SourceId = device.UniqueDeviceName,
                    SourceType = "UPnP " + device.FriendlyName,
                    Path = "UPnP.DeviceURN",
                    Value = device.DeviceURN
                });
                InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                    Domain = this.Domain,
                    SourceId = device.UniqueDeviceName,
                    SourceType = "UPnP " + device.FriendlyName,
                    Path = "UPnP.DeviceURN_Prefix",
                    Value = device.DeviceURN_Prefix
                });
                InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                    Domain = this.Domain,
                    SourceId = device.UniqueDeviceName,
                    SourceType = "UPnP " + device.FriendlyName,
                    Path = "UPnP.FriendlyName",
                    Value = device.FriendlyName
                });
                InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                    Domain = this.Domain,
                    SourceId = device.UniqueDeviceName,
                    SourceType = "UPnP " + device.FriendlyName,
                    Path = "UPnP.LocationURL",
                    Value = device.LocationURL
                });
                InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                    Domain = this.Domain,
                    SourceId = device.UniqueDeviceName,
                    SourceType = "UPnP " + device.FriendlyName,
                    Path = "UPnP.Version",
                    Value = device.Major + "." + device.Minor
                });
                InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                    Domain = this.Domain,
                    SourceId = device.UniqueDeviceName,
                    SourceType = "UPnP " + device.FriendlyName,
                    Path = "UPnP.ModelName",
                    Value = device.ModelName
                });
                InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                    Domain = this.Domain,
                    SourceId = device.UniqueDeviceName,
                    SourceType = "UPnP " + device.FriendlyName,
                    Path = "UPnP.ModelNumber",
                    Value = device.ModelNumber
                });
                InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                    Domain = this.Domain,
                    SourceId = device.UniqueDeviceName,
                    SourceType = "UPnP " + device.FriendlyName,
                    Path = "UPnP.ModelDescription",
                    Value = device.ModelDescription
                });

                if (device.ModelURL != null)
                {
                    InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                        Domain = this.Domain,
                        SourceId = device.UniqueDeviceName,
                        SourceType = "UPnP " + device.FriendlyName,
                        Path = "UPnP.ModelURL",
                        Value = device.ModelURL.ToString()
                    });
                }

                InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                    Domain = this.Domain,
                    SourceId = device.UniqueDeviceName,
                    SourceType = "UPnP " + device.FriendlyName,
                    Path = "UPnP.Manufacturer",
                    Value = device.Manufacturer
                });
                InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                    Domain = this.Domain,
                    SourceId = device.UniqueDeviceName,
                    SourceType = "UPnP " + device.FriendlyName,
                    Path = "UPnP.ManufacturerURL",
                    Value = device.ManufacturerURL
                });
                InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                    Domain = this.Domain,
                    SourceId = device.UniqueDeviceName,
                    SourceType = "UPnP " + device.FriendlyName,
                    Path = "UPnP.PresentationURL",
                    Value = device.PresentationURL
                });
                InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                    Domain = this.Domain,
                    SourceId = device.UniqueDeviceName,
                    SourceType = "UPnP " + device.FriendlyName,
                    Path = "UPnP.UniqueDeviceName",
                    Value = device.UniqueDeviceName
                });
                InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                    Domain = this.Domain,
                    SourceId = device.UniqueDeviceName,
                    SourceType = "UPnP " + device.FriendlyName,
                    Path = "UPnP.SerialNumber",
                    Value = device.SerialNumber
                });
                InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                    Domain = this.Domain,
                    SourceId = device.UniqueDeviceName,
                    SourceType = "UPnP " + device.FriendlyName,
                    Path = "UPnP.StandardDeviceType",
                    Value = device.StandardDeviceType
                });

                modules.Add(module);
            }

            return modules;
        }
Ejemplo n.º 32
0
 private void W800Rf32_RfSecurityReceived(object sender, RfSecurityReceivedEventArgs args)
 {
     string address = "S-" + args.Address.ToString("X6");
     var moduleType = ModuleTypes.Sensor;
     if (args.Event.ToString().StartsWith("DoorSensor1_"))
     {
         address += "01";
         moduleType = ModuleTypes.DoorWindow;
     }
     else if (args.Event.ToString().StartsWith("DoorSensor2_"))
     {
         address += "02";
         moduleType = ModuleTypes.DoorWindow;
     }
     else if (args.Event.ToString().StartsWith("Motion_"))
     {
         moduleType = ModuleTypes.Sensor;
     }
     else if (args.Event.ToString().StartsWith("Remote_"))
     {
         address = "S-REMOTE";
         moduleType = ModuleTypes.Sensor;
     }
     var module = modules.Find(m => m.Address == address);
     if (module == null)
     {
         module = new InterfaceModule();
         module.Domain = X10_DOMAIN;
         module.Address = address;
         module.Description = "W800RF32 security module";
         module.ModuleType = moduleType;
         module.CustomData = 0.0D;
         modules.Add(module);
         RaisePropertyChanged(this.Domain, "1", "W800RF32 Receiver", "Receiver.Status", "Added security module " + address);
         if (InterfaceModulesChangedAction != null)
             InterfaceModulesChangedAction(new InterfaceModulesChangedAction(){ Domain = this.Domain });
     }
     switch (args.Event)
     {
     case X10RfSecurityEvent.DoorSensor1_Alert:
     case X10RfSecurityEvent.DoorSensor2_Alert:
         RaisePropertyChanged(module.Domain, module.Address, "X10 Module", ModuleParameters.MODPAR_STATUS_LEVEL, 1);
         break;
     case X10RfSecurityEvent.DoorSensor1_Normal:
     case X10RfSecurityEvent.DoorSensor2_Normal:
         RaisePropertyChanged(module.Domain, module.Address, "X10 Module", ModuleParameters.MODPAR_STATUS_LEVEL, 0);
         break;
     case X10RfSecurityEvent.DoorSensor1_BatteryLow:
     case X10RfSecurityEvent.DoorSensor2_BatteryLow:
         RaisePropertyChanged(module.Domain, module.Address, "X10 Module", ModuleParameters.MODPAR_STATUS_BATTERY, 10);
         break;
     case X10RfSecurityEvent.DoorSensor1_BatteryOk:
     case X10RfSecurityEvent.DoorSensor2_BatteryOk:
         RaisePropertyChanged(module.Domain, module.Address, "X10 Module", ModuleParameters.MODPAR_STATUS_BATTERY, 100);
         break;
     case X10RfSecurityEvent.Motion_Alert:
         RaisePropertyChanged(module.Domain, module.Address, "X10 Module", ModuleParameters.MODPAR_STATUS_LEVEL, 1);
         break;
     case X10RfSecurityEvent.Motion_Normal:
         RaisePropertyChanged(module.Domain, module.Address, "X10 Module", ModuleParameters.MODPAR_STATUS_LEVEL, 0);
         break;
     case X10RfSecurityEvent.Remote_Arm:
     case X10RfSecurityEvent.Remote_Disarm:
     case X10RfSecurityEvent.Remote_Panic:
     case X10RfSecurityEvent.Remote_LightOn:
     case X10RfSecurityEvent.Remote_LightOff:
         var evt = args.Event.ToString();
         evt = evt.Substring(evt.IndexOf('_') + 1);
         RaisePropertyChanged(module.Domain, module.Address, "X10 Module", "Sensor.Key", evt);
         break;
     }
 }
Ejemplo n.º 33
0
 private void W800Rf32_RfSecurityReceived(object sender, RfSecurityReceivedEventArgs args)
 {
     string address = "S-" + args.Address.ToString("X6");
     var moduleType = ModuleTypes.Sensor;
     if (args.Event.ToString().StartsWith("DoorSensor1_"))
     {
         address += "01";
         moduleType = ModuleTypes.DoorWindow;
     }
     else if (args.Event.ToString().StartsWith("DoorSensor2_"))
     {
         address += "02";
         moduleType = ModuleTypes.DoorWindow;
     }
     else if (args.Event.ToString().StartsWith("Motion_"))
     {
         moduleType = ModuleTypes.Sensor;
     }
     else if (args.Event.ToString().StartsWith("Remote_"))
     {
         address = "S-REMOTE";
         moduleType = ModuleTypes.Sensor;
     }
     var module = modules.Find(m => m.Address == address);
     if (module == null)
     {
         module = new InterfaceModule();
         module.Domain = X10_DOMAIN;
         module.Address = address;
         module.Description = "W800RF32 security module";
         module.ModuleType = moduleType;
         module.CustomData = 0.0D;
         modules.Add(module);
         OnInterfacePropertyChanged(this.GetDomain(), "1", "W800RF32 Receiver", ModuleEvents.Receiver_Status, "Added security module " + address);
         OnInterfaceModulesChanged(X10_DOMAIN);
     }
     switch (args.Event)
     {
     case X10RfSecurityEvent.DoorSensor1_Alert:
     case X10RfSecurityEvent.DoorSensor2_Alert:
         OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Status_Level, 1);
         OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Sensor_Tamper, 0);
         break;
     case X10RfSecurityEvent.DoorSensor1_Alert_Tarmper:
     case X10RfSecurityEvent.DoorSensor2_Alert_Tamper:
         OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Status_Level, 1);
         OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Sensor_Tamper, 1);
         break;
     case X10RfSecurityEvent.DoorSensor1_Normal:
     case X10RfSecurityEvent.DoorSensor2_Normal:
         OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Status_Level, 0);
         OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Sensor_Tamper, 0);
         break;
     case X10RfSecurityEvent.DoorSensor1_Normal_Tamper:
     case X10RfSecurityEvent.DoorSensor2_Normal_Tamper:
         OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Status_Level, 0);
         OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Sensor_Tamper, 1);
         break;
     case X10RfSecurityEvent.DoorSensor1_BatteryLow:
     case X10RfSecurityEvent.DoorSensor2_BatteryLow:
     case X10RfSecurityEvent.Motion_BatteryLow:
         OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Status_Battery, 10);
         break;
     case X10RfSecurityEvent.DoorSensor1_BatteryOk:
     case X10RfSecurityEvent.DoorSensor2_BatteryOk:
     case X10RfSecurityEvent.Motion_BatteryOk:
         OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Status_Battery, 100);
         break;
     case X10RfSecurityEvent.Motion_Alert:
         OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Status_Level, 1);
         break;
     case X10RfSecurityEvent.Motion_Normal:
         OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Status_Level, 0);
         break;
     case X10RfSecurityEvent.Remote_Arm:
     case X10RfSecurityEvent.Remote_Disarm:
     case X10RfSecurityEvent.Remote_Panic:
     case X10RfSecurityEvent.Remote_Panic_15:
     case X10RfSecurityEvent.Remote_LightOn:
     case X10RfSecurityEvent.Remote_LightOff:
         var evt = args.Event.ToString();
         evt = evt.Substring(evt.IndexOf('_') + 1);
         OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Remote", ModuleEvents.Sensor_Key, evt);
         break;
     }
 }
Ejemplo n.º 34
0
 private void W800Rf32_RfCommandReceived(object sender, RfCommandReceivedEventArgs args)
 {
     string address = args.HouseCode.ToString() + args.UnitCode.ToString().Split('_')[1];
     if (args.UnitCode == X10UnitCode.Unit_NotSet)
         return;
     var module = modules.Find(m => m.Address == address);
     if (module == null)
     {
         module = new InterfaceModule();
         module.Domain = X10_DOMAIN;
         module.Address = address;
         module.Description = "W800RF32 module";
         module.ModuleType = ModuleTypes.Switch;
         module.CustomData = 0.0D;
         modules.Add(module);
         OnInterfacePropertyChanged(this.GetDomain(), "1", "W800RF32 Receiver", ModuleEvents.Receiver_Status, "Added module " + address);
         OnInterfaceModulesChanged(X10_DOMAIN);
     }
     switch (args.Command)
     {
     case X10RfFunction.On:
         module.CustomData = 1.0D;
         break;
     case X10RfFunction.Off:
         module.CustomData = 0.0D;
         break;
     case X10RfFunction.Bright:
         double lbri = module.CustomData;
         lbri += 0.1;
         if (lbri > 1)
             lbri = 1;
         module.CustomData = lbri;
         break;
     case X10RfFunction.Dim:
         double ldim = module.CustomData;
         ldim -= 0.1;
         if (ldim < 0)
             ldim = 0;
         module.CustomData = ldim;
         break;
     case X10RfFunction.AllLightsOn:
         break;
     case X10RfFunction.AllLightsOff:
         break;
     }
     OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Module", ModuleEvents.Status_Level, module.CustomData);
 }
Ejemplo n.º 35
0
        private void X10lib_RfSecurityReceived(object sender, RfSecurityReceivedEventArgs args)
        {
            string address    = "S-" + args.Address.ToString("X6");
            var    moduleType = ModuleTypes.Sensor;

            if (args.Event.ToString().StartsWith("DoorSensor1_"))
            {
                address   += "01";
                moduleType = ModuleTypes.DoorWindow;
            }
            else if (args.Event.ToString().StartsWith("DoorSensor2_"))
            {
                address   += "02";
                moduleType = ModuleTypes.DoorWindow;
            }
            else if (args.Event.ToString().StartsWith("Motion_"))
            {
                moduleType = ModuleTypes.Sensor;
            }
            else if (args.Event.ToString().StartsWith("Remote_"))
            {
                address    = "S-REMOTE";
                moduleType = ModuleTypes.Sensor;
            }
            var module = securityModules.Find(m => m.Address == address);

            if (module == null)
            {
                module             = new InterfaceModule();
                module.Domain      = this.GetDomain();
                module.Address     = address;
                module.Description = "X10 Security";
                module.ModuleType  = moduleType;
                module.CustomData  = 0.0D;
                securityModules.Add(module);
                OnInterfacePropertyChanged(this.GetDomain(), "RF", "X10 RF Receiver", ModuleEvents.Receiver_Status, "Added security module " + address);
                OnInterfaceModulesChanged(this.GetDomain());
            }
            switch (args.Event)
            {
            case X10RfSecurityEvent.DoorSensor1_Alert:
            case X10RfSecurityEvent.DoorSensor2_Alert:
                OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Status_Level, 1);
                OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Sensor_Tamper, 0);
                break;

            case X10RfSecurityEvent.DoorSensor1_Alert_Tarmper:
            case X10RfSecurityEvent.DoorSensor2_Alert_Tamper:
                OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Status_Level, 1);
                OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Sensor_Tamper, 1);
                break;

            case X10RfSecurityEvent.DoorSensor1_Normal:
            case X10RfSecurityEvent.DoorSensor2_Normal:
                OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Status_Level, 0);
                OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Sensor_Tamper, 0);
                break;

            case X10RfSecurityEvent.DoorSensor1_Normal_Tamper:
            case X10RfSecurityEvent.DoorSensor2_Normal_Tamper:
                OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Status_Level, 0);
                OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Sensor_Tamper, 1);
                break;

            case X10RfSecurityEvent.DoorSensor1_BatteryLow:
            case X10RfSecurityEvent.DoorSensor2_BatteryLow:
            case X10RfSecurityEvent.Motion_BatteryLow:
                OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Status_Battery, 10);
                break;

            case X10RfSecurityEvent.DoorSensor1_BatteryOk:
            case X10RfSecurityEvent.DoorSensor2_BatteryOk:
            case X10RfSecurityEvent.Motion_BatteryOk:
                OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Status_Battery, 100);
                break;

            case X10RfSecurityEvent.Motion_Alert:
                OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Status_Level, 1);
                break;

            case X10RfSecurityEvent.Motion_Normal:
                OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Sensor", ModuleEvents.Status_Level, 0);
                break;

            case X10RfSecurityEvent.Remote_Arm:
            case X10RfSecurityEvent.Remote_Disarm:
            case X10RfSecurityEvent.Remote_Panic:
            case X10RfSecurityEvent.Remote_Panic_15:
            case X10RfSecurityEvent.Remote_LightOn:
            case X10RfSecurityEvent.Remote_LightOff:
                var evt = args.Event.ToString();
                evt = evt.Substring(evt.IndexOf('_') + 1);
                OnInterfacePropertyChanged(module.Domain, module.Address, "X10 Security Remote", ModuleEvents.Sensor_Key, evt);
                break;
            }
        }
Ejemplo n.º 36
0
        public List<InterfaceModule> GetModules()
        {
            List<InterfaceModule> modules = new List<InterfaceModule>();

            InterfaceModule module = new InterfaceModule();
            module.Domain = this.Domain;
            module.Address = "AV0";
            module.Description = "Video 4 Linux Video Input";
            module.ModuleType = MIG.ModuleTypes.Sensor;
            InterfacePropertyChangedAction(new InterfacePropertyChangedAction() {
                Domain = this.Domain,
                SourceId = module.Address,
                SourceType = "Camera Input",
                Path = "Widget.DisplayModule",
                Value = "homegenie/generic/camerainput"
            });
            modules.Add(module);

            return modules;
        }
Ejemplo n.º 37
0
        public List <InterfaceModule> GetModules()
        {
            List <InterfaceModule> modules = new List <InterfaceModule>();

            if (IsConnected)
            {
                foreach (var sensor in _gateway.GetSensors())
                {
                    if (sensor.NodeId == 0) // My Sensors Gateway
                    {
                        continue;
                    }
                    //
                    // add new module
                    InterfaceModule module = new InterfaceModule
                    {
                        Domain  = this.Domain,
                        Address = string.Format("{0}.{1}", sensor.NodeId, sensor.Id)
                    };
                    //module.Description = "ZWave Node";
                    switch (sensor.SensorType)
                    {
                    case SensorPresentationType.S_DOOR:
                    {
                        module.Description = "MySensors Door/Window Sensor";
                        module.ModuleType  = ModuleTypes.DoorWindow;
                    }
                    break;

                    case SensorPresentationType.S_MOTION:
                    {
                        module.Description = "MySensors Motion Sensor";
                        module.ModuleType  = ModuleTypes.Motion;
                    }
                    break;

                    case SensorPresentationType.S_SMOKE:
                        break;

                    case SensorPresentationType.S_LIGHT:
                    {
                        module.Description = "MySensors Light Switch";
                        module.ModuleType  = ModuleTypes.Light;
                    }
                    break;

                    case SensorPresentationType.S_DIMMER:
                        break;

                    case SensorPresentationType.S_COVER:
                        break;

                    case SensorPresentationType.S_TEMP:
                        break;

                    case SensorPresentationType.S_HUM:
                        break;

                    case SensorPresentationType.S_BARO:
                        break;

                    case SensorPresentationType.S_WIND:
                        break;

                    case SensorPresentationType.S_RAIN:
                        break;

                    case SensorPresentationType.S_UV:
                        break;

                    case SensorPresentationType.S_WEIGHT:
                        break;

                    case SensorPresentationType.S_POWER:
                        break;

                    case SensorPresentationType.S_HEATER:
                        break;

                    case SensorPresentationType.S_DISTANCE:
                        break;

                    case SensorPresentationType.S_LIGHT_LEVEL:
                        break;

                    case SensorPresentationType.S_ARDUINO_NODE:
                        break;

                    case SensorPresentationType.S_ARDUINO_REPEATER_NODE:
                        break;

                    case SensorPresentationType.S_LOCK:
                        break;

                    case SensorPresentationType.S_IR:
                        break;

                    case SensorPresentationType.S_WATER:
                        break;

                    case SensorPresentationType.S_AIR_QUALITY:
                        break;

                    case SensorPresentationType.S_CUSTOM:
                        break;

                    case SensorPresentationType.S_DUST:
                        break;

                    case SensorPresentationType.S_SCENE_CONTROLLER:
                        break;

                    default:
                        module.ModuleType = ModuleTypes.Generic;
                        break;
                    }
                    modules.Add(module);
                }
            }
            return(modules);
        }
Ejemplo n.º 38
0
        public List<InterfaceModule> GetModules()
        {
            List<InterfaceModule> modules = new List<InterfaceModule>();
            if (controller != null)
            {
                for(int d = 0; d < controller.Devices.Count; d++)
                {
                    var node = controller.Devices[d];
                    if (node.Id == 0x01) // main zwave controller
                        continue;
                    //
                    // add new module
                    InterfaceModule module = new InterfaceModule();
                    module.Domain = this.Domain;
                    module.Address = node.Id.ToString();
                    //module.Description = "ZWave Node";
                    module.ModuleType = ModuleTypes.Generic;
                    if (node.GenericClass != (byte)GenericType.None)
                    {
                        switch (node.GenericClass)
                        {
                        case (byte)GenericType.StaticController:
                            module.Description = "Static Controller";
                            module.ModuleType = ModuleTypes.Generic;
                            break;

                        case (byte)GenericType.SwitchBinary:
                            module.Description = "Binary Switch";
                            module.ModuleType = ModuleTypes.Switch;
                            break;

                        case (byte)GenericType.SwitchMultilevel:
                            module.Description = "Multilevel Switch";
                            module.ModuleType = ModuleTypes.Dimmer;
                            break;

                        case (byte)GenericType.Thermostat:
                            module.Description = "Thermostat";
                            module.ModuleType = ModuleTypes.Thermostat;
                            break;

                        case (byte)GenericType.SensorAlarm:
                            module.Description = "Alarm Sensor";
                            module.ModuleType = ModuleTypes.Sensor;
                            break;

                        case (byte)GenericType.SensorBinary:
                            module.Description = "Binary Sensor";
                            module.ModuleType = ModuleTypes.Sensor;
                            break;

                        case (byte)GenericType.SensorMultilevel:
                            module.Description = "Multilevel Sensor";
                            module.ModuleType = ModuleTypes.Sensor;
                            break;

                        case (byte)GenericType.Meter:
                            module.Description = "ZWave Meter";
                            module.ModuleType = ModuleTypes.Sensor;
                            break;

                        case (byte)GenericType.EntryControl:
                            module.Description = "ZWave Door Lock";
                            module.ModuleType = ModuleTypes.DoorLock;
                            break;

                        }
                    }
                    modules.Add(module);
                }
            }
            return modules;
        }
Ejemplo n.º 39
0
        public List <InterfaceModule> GetModules()
        {
            List <InterfaceModule> modules = new List <InterfaceModule>();

            if (controller != null)
            {
                for (int d = 0; d < controller.Nodes.Count; d++)
                {
                    var node = controller.Nodes[d];
                    // add new module
                    InterfaceModule module = new InterfaceModule();
                    module.Domain  = this.GetDomain();
                    module.Address = node.Id.ToString();
                    //module.Description = "ZWave Node";
                    module.ModuleType = ModuleTypes.Generic;
                    if (node.ProtocolInfo.GenericType != (byte)GenericType.None)
                    {
                        switch (node.ProtocolInfo.GenericType)
                        {
                        case (byte)GenericType.StaticController:
                            module.Description = "Static Controller";
                            module.ModuleType  = ModuleTypes.Generic;
                            break;

                        case (byte)GenericType.SwitchBinary:
                            module.Description = "Binary Switch";
                            module.ModuleType  = ModuleTypes.Switch;
                            break;

                        case (byte)GenericType.SwitchMultilevel:
                            module.Description = "Multilevel Switch";
                            module.ModuleType  = ModuleTypes.Dimmer;
                            break;

                        case (byte)GenericType.Thermostat:
                            module.Description = "Thermostat";
                            module.ModuleType  = ModuleTypes.Thermostat;
                            break;

                        case (byte)GenericType.SensorAlarm:
                            module.Description = "Alarm Sensor";
                            module.ModuleType  = ModuleTypes.Sensor;
                            break;

                        case (byte)GenericType.SensorBinary:
                            module.Description = "Binary Sensor";
                            module.ModuleType  = ModuleTypes.Sensor;
                            break;

                        case (byte)GenericType.SensorMultilevel:
                            module.Description = "Multilevel Sensor";
                            module.ModuleType  = ModuleTypes.Sensor;
                            break;

                        case (byte)GenericType.Meter:
                            module.Description = "ZWave Meter";
                            module.ModuleType  = ModuleTypes.Sensor;
                            break;

                        case (byte)GenericType.EntryControl:
                            module.Description = "ZWave Door Lock";
                            module.ModuleType  = ModuleTypes.DoorLock;
                            break;
                        }
                    }
                    modules.Add(module);
                }
            }
            return(modules);
        }
Ejemplo n.º 40
0
 public List<InterfaceModule> GetModules()
 {
     List<InterfaceModule> modules = new List<InterfaceModule>();
     InterfaceModule module = new InterfaceModule();
     module.Domain = this.Domain;
     module.Address = "IR";
     module.ModuleType = ModuleTypes.Sensor;
     modules.Add(module);
     return modules;
 }
Ejemplo n.º 41
0
        public KnxInterface()
        {
            _modules = new List <InterfaceModule>();
            XmlDocument doc = new XmlDocument();

            doc.Load("groupaddresses.xml");

            var addresses = doc.GetElementsByTagName("GroupAddress");

            foreach (XmlNode item in addresses)
            {
                var attributes = item.Attributes;

                var address = attributes["Address"].Value.ToString();
                var name    = attributes["Name"].Value.ToString();
                if (attributes["DPTs"] == null)
                {
                    continue;
                }
                var dpt      = attributes["DPTs"].Value.ToString().Split('-');
                var maintype = int.Parse(dpt[1]);
                var subtype  = int.Parse(dpt[2]);

                var module = new InterfaceModule();
                module.Domain      = this.GetDomain();
                module.Address     = address.ToString().Replace("/", ".");
                module.Description = name;

                switch (maintype)
                {
                case 1:
                    switch (subtype)
                    {
                    case 1:
                    case 2:
                    case 3:
                        module.ModuleType = ModuleTypes.Switch;
                        break;
                    }

                    break;

                case 2:
                    module.ModuleType = ModuleTypes.Generic;
                    break;

                case 3:
                    module.ModuleType = ModuleTypes.Dimmer;
                    break;

                case 4:
                    module.ModuleType = ModuleTypes.Generic;
                    break;

                case 5:
                case 6:
                case 7:
                case 8:
                    module.ModuleType = ModuleTypes.Sensor;
                    break;

                case 9:
                    switch (subtype)
                    {
                    case 1:
                    case 2:
                    case 3:
                        module.ModuleType = ModuleTypes.Temperature;
                        break;

                    default:
                        module.ModuleType = ModuleTypes.Sensor;
                        break;
                    }
                    break;

                default:
                    module.ModuleType = ModuleTypes.Generic;
                    break;
                }
                _modules.Add(module);
            }
        }
Ejemplo n.º 42
0
        public List<InterfaceModule> GetModules()
        {
            List<InterfaceModule> modules = new List<InterfaceModule>();
            if (controller != null)
            {
                for(int d = 0; d < controller.Devices.Count; d++)
                {
                    var node = controller.Devices[d];
                    if (node.NodeId == 0x01) // zwave controller id
                        continue;
                    //
                    // add new module
                    InterfaceModule module = new InterfaceModule();
                    module.Domain = this.Domain;
                    module.Address = node.NodeId.ToString();
                    //module.Description = "ZWave Node";
                    module.ModuleType = ModuleTypes.Generic;
                    if (node.GenericClass != 0x00)
                    {
                        switch (node.GenericClass)
                        {
                        case 0x10: // BINARY SWITCH
                            module.Description = "ZWave Switch";
                            module.ModuleType = ModuleTypes.Switch;
                            break;

                        case 0x11: // MULTILEVEL SWITCH (DIMMER)
                            module.Description = "ZWave Multilevel Switch";
                            module.ModuleType = ModuleTypes.Dimmer;
                            break;

                        case 0x08: // THERMOSTAT
                            module.Description = "ZWave Thermostat";
                            module.ModuleType = ModuleTypes.Thermostat;
                            break;

                        case 0x20: // BINARY SENSOR
                            module.Description = "ZWave Sensor";
                            module.ModuleType = ModuleTypes.Sensor;
                            break;

                        case 0x21: // MULTI-LEVEL SENSOR
                            module.Description = "ZWave Multilevel Sensor";
                            module.ModuleType = ModuleTypes.Sensor;
                            break;

                        case 0x31: // METER
                            module.Description = "ZWave Meter";
                            module.ModuleType = ModuleTypes.Sensor;
                            break;
                        }
                    }
                    modules.Add(module);
                }
            }
            return modules;
        }
        private int SensorUpdated(
            string protocol, string model, int id, int dataType, string val, int timestamp, int callbackId, object obj,
            UnmanagedException ex)
        {
            Console.WriteLine("TS: " + protocol + ", " + model + ", " + id + ", " + dataType + ", " + val + ", " + timestamp + ", " + callbackId);
            var module = interfaceModules.FirstOrDefault(i => i.Address == id.ToString());
            if (module == null)
            {

                module = new InterfaceModule
                {
                    Domain = Domain,
                    Address = id.ToString(),
                    Description = model + " - " + protocol,
                    ModuleType = ModuleTypes.Sensor
                };
                interfaceModules.Add(module);

                OnInterfaceModulesChanged(this.GetDomain());
            }

            var path = ModuleEvents.Status_Level;
            if (dataType == (int)TelldusLib.DataType.TEMPERATURE)
                path = ModuleEvents.Sensor_Temperature;
            else if (dataType == (int)TelldusLib.DataType.HUMIDITY)
                path = ModuleEvents.Sensor_Humidity;

            OnInterfacePropertyChanged(this.GetDomain(), module.Address, Event_Sensor_Description, path, val);

            return 1;
        }