Example #1
0
        private void HandleKnxEvent(object sender, KnxEventArgs e)
        {
            var statusProp = this.Properties[0];

            if (e.Address == this.TemperatureAddr)
            {
                var value = DataPointTranslator.Instance.FromASDU("9.001", e.Data);
                this.UpdatePropertyValue(statusProp, statusProp.Attributes[0], value);
            }
            else if (e.Address == this.RainAddr)
            {
                var value = DataPointTranslator.Instance.FromASDU("1.001", e.Data);
                this.UpdatePropertyValue(statusProp, statusProp.Attributes[1], value);
            }
            else if (e.Address == this.WindAddr)
            {
                var value = DataPointTranslator.Instance.FromASDU("9.001", e.Data);
                this.UpdatePropertyValue(statusProp, statusProp.Attributes[2], value);
            }
            else if (e.Address == this.DawnAddr)
            {
                var value = DataPointTranslator.Instance.FromASDU("9.001", e.Data);
                this.UpdatePropertyValue(statusProp, statusProp.Attributes[3], value);
            }
        }
Example #2
0
        private void HandleKnxEvent(object sender, KnxEventArgs e)
        {
            var statusProp = this.Properties[0];

            if (e.Address == this.OpModeStatusAddr)
            {
                var value = DataPointTranslator.Instance.FromASDU("20.102", e.Data);
                this.UpdatePropertyValue(statusProp, statusProp.Attributes[0], value);
            }
            else if (e.Address == this.TargetTemperatureStatusAddr)
            {
                var value = DataPointTranslator.Instance.FromASDU("9.001", e.Data);
                this.UpdatePropertyValue(statusProp, statusProp.Attributes[1], value);
            }
            else if (e.Address == this.TemperatureAddr)
            {
                var value = DataPointTranslator.Instance.FromASDU("9.001", e.Data);
                this.UpdatePropertyValue(statusProp, statusProp.Attributes[2], value);
            }
            else if (e.Address == this.HumidityAddr)
            {
                var value = DataPointTranslator.Instance.FromASDU("9.007", e.Data);
                this.UpdatePropertyValue(statusProp, statusProp.Attributes[3], Convert.ToInt32(value));
            }
            else if (e.Address == this.CO2Addr)
            {
                var value = DataPointTranslator.Instance.FromASDU("9.008", e.Data);
                this.UpdatePropertyValue(statusProp, statusProp.Attributes[4], Convert.ToInt32(value));
            }
        }
Example #3
0
 private void Event(object sender, KnxEventArgs args)
 {
     // Console.WriteLine("Received feedback from " + address + " with value " + (int) state[0]);
     if (LightOnOffAddress.Equals(args.DestinationAddress.ToString()) && args.State != null && args.State.Length == 1 && args.State[0] == 1)
     {
         ResetEvent.Set();
     }
 }
Example #4
0
        private void HandleKnxEvent(object sender, KnxEventArgs e)
        {
            var statusProp = this.Properties[0];

            if (e.Address == this.SwitchStatusAddr)
            {
                var value = DataPointTranslator.Instance.FromASDU("1.001", e.Data);
                this.UpdatePropertyValue(statusProp, statusProp.Attributes[0], value);
            }
        }
Example #5
0
        private static void Event(object sender, KnxEventArgs args)
        {
            if (!(args.DestinationAddress is KnxGroupAddress address))
            {
                return;
            }

            var state = args.State;

            if (address.Equals("1/2/1") || address.Equals("1/2/2"))
            {
                Console.WriteLine("New Event: device " + address + " has status (" + state + ") --> " + _connection.FromDataPoint("9.001", state));
            }
            else if (
                address.Equals("1/2/3") ||
                address.Equals("1/2/4") ||
                address.Equals("1/2/5") ||
                address.Equals("1/2/5") ||
                address.Equals("1/2/6") ||
                address.Equals("1/2/7") ||
                address.Equals("1/2/8") ||
                address.Equals("1/2/9") ||
                address.Equals("1/2/10") ||
                address.Equals("1/2/11") ||
                address.Equals("1/2/12") ||
                address.Equals("1/2/13") ||
                address.Equals("1/2/14") ||
                address.Equals("1/2/15") ||
                address.Equals("1/2/16") ||
                address.Equals("1/2/17") ||
                address.Equals("1/2/18"))
            {
                var data = string.Empty;

                if (state.Length == 1)
                {
                    data = state[0].ToString();
                }
                else
                {
                    var bytes = new byte[state.Length];
                    for (var i = 0; i < state.Length; i++)
                    {
                        bytes[i] = Convert.ToByte(state[i]);
                    }

                    data = state.Aggregate(data, (current, t) => current + t.ToString());
                }

                Console.WriteLine("New Event: device " + address + " has status (" + state + ") --> " + data);
            }
        }
Example #6
0
        internal void Event(KnxEventArgs args)
        {
            try
            {
                KnxEventDelegate?.Invoke(this, args);
            }
            catch (Exception e)
            {
                Logger.Error(ClassName, e);
            }

            Logger.Debug(ClassName, $"Device {args.SourceAddress} sent event {args.StateHex} to {args.DestinationAddress}");
        }
Example #7
0
        private void HandleKnxEvent(object sender, KnxEventArgs e)
        {
            var statusProp = this.Properties[0];

            if (e.Address == this.PresenceStatusAddr)
            {
                var value = DataPointTranslator.Instance.FromASDU("1.001", e.Data);
                this.UpdatePropertyValue(statusProp, statusProp.Attributes[0], value);

                Task.Run(async() => {
                    await Task.Delay(5000);
                    this.UpdatePropertyValue(statusProp, statusProp.Attributes[0], false);
                });
            }
        }
Example #8
0
        private void HandleKnxEvent(object sender, KnxEventArgs e)
        {
            var statusProp = this.Properties[0];

            if (e.Address == this.PositionStatusAddr)
            {
                var value = DataPointTranslator.Instance.FromASDU("5.001", e.Data);
                this.UpdatePropertyValue(statusProp, statusProp.Attributes[0], Convert.ToInt32(value));
            }
            else if (e.Address == this.FlapsStatusAddr)
            {
                var value = DataPointTranslator.Instance.FromASDU("5.001", e.Data);
                this.UpdatePropertyValue(statusProp, statusProp.Attributes[1], Convert.ToInt32(value));
            }
        }