Beispiel #1
0
        private void AddOrUpdateAccessory(PhilipsHueBridge bridge, Sensor accessory)
        {
            string accessoryKey = $"{bridge.BridgeId}-{accessory.Id}";

            AccessoryDataModel accessoryDataModel = null;

            if (TryGetDynamicChild(accessoryKey, out DynamicChild dynamicChild))
            {
                accessoryDataModel = (AccessoryDataModel)dynamicChild.BaseValue;
            }

            if (accessoryDataModel != null)
            {
                accessoryDataModel.HueSensor = accessory;
            }
            else
            {
                accessoryDataModel = accessory.Type switch
                {
                    "ZLLSwitch" => AddDynamicChild(accessoryKey, new DimmerSwitch(accessory), accessory.Name).Value,
                    "ZGPSwitch" => AddDynamicChild(accessoryKey, new Tap(accessory), accessory.Name).Value,
                    _ => null
                };
            }

            if (accessoryDataModel != null)
            {
                accessoryDataModel.DataModelDescription.Name = accessoryDataModel.Name;
            }
        }
Beispiel #2
0
        private void AddOrUpdateAccessory(PhilipsHueBridge bridge, Sensor accessory)
        {
            string             accessoryKey       = $"{bridge.BridgeId}-{accessory.Id}";
            AccessoryDataModel accessoryDataModel = DynamicChild <AccessoryDataModel>(accessoryKey);

            if (accessoryDataModel != null)
            {
                accessoryDataModel.HueSensor = accessory;
            }
            else
            {
                switch (accessory.Type)
                {
                case "ZLLSwitch":
                    accessoryDataModel = AddDynamicChild(new DimmerSwitch(accessory), accessoryKey);
                    break;

                case "ZGPSwitch":
                    accessoryDataModel = AddDynamicChild(new Tap(accessory), accessoryKey);
                    break;
                }
            }

            accessoryDataModel.DataModelDescription.Name = accessoryDataModel.Name;
        }