/* This code is running one time when program is enabled */ public void Setup() { EventHelper.ModuleChangedHandler((o, m, p) => { // filter digital switch - change module address if (m.Domain == Domains.VIRTUAL && m.Address == "N24S0" && p.Property == "Sensor.DigitalValue"){ // filter when switch on event if (p.Value == "1") { //Console.WriteLine(m.Address + " in program id "+ Program.ProgramId.ToString()+ " driver "+ m.Domain + " address "+ m.Address + " property "+ p.Property + " value " + p.Value); //here are commands to execute in sequence - change commands to suit your configuration DriverHelper.ProcessCommad(Domains.VIRTUAL, "N8S0", "ControlUp", ""); System.Threading.Thread.Sleep(3000); DriverHelper.ProcessCommad(Domains.VIRTUAL, "N17S0", "ControlUp", ""); } else { //Console.WriteLine(m.Address + " in program id "+ Program.ProgramId.ToString()+ " driver "+ m.Domain + " address "+ m.Address + " property "+ p.Property + " value " + p.Value); //here are commands to execute in sequence - change commands to suit your configuration DriverHelper.ProcessCommad(Domains.VIRTUAL, "N8S0", "ControlDown", ""); System.Threading.Thread.Sleep(3000); DriverHelper.ProcessCommad(Domains.VIRTUAL, "N17S0", "ControlDown", ""); } } System.Threading.Thread.Sleep(500); if (m.Domain == Domains.VIRTUAL && m.Address == "N27S0" && p.Property == "Sensor.DigitalValue"){ // filter when switch on event if (p.Value == "1") { //here are commands to execute in sequence - change commands to suit your configuration //DriverHelper.ProcessCommad(Domains.VIRTUAL, "N8S0", "ControlUp", ""); DriverHelper.ProcessCommad(Domains.VIRTUAL, "N8S0", "ControlLevel", "20"); } else { //here are commands to execute in sequence - change commands to suit your configuration DriverHelper.ProcessCommad(Domains.VIRTUAL, "N8S0", "ControlDown", ""); } } return true; }); } /* This code is running periodicaly when program is enabled. Cron job detirmine running period. */ public void Run() { }