Пример #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ZipatoDevices"/> class.
        /// The list of UUIDs from the SettingsData is used to create the device instances.
        /// </summary>
        /// <param name="zipato"></param>
        public ZipatoDevices(IZipato zipato)
        {
            _zipato = zipato;

            foreach (var uuid in zipato.DevicesInfo.Switches)
            {
                Switches.Add(new Switch(zipato, uuid));
            }

            foreach (var uuid in zipato.DevicesInfo.OnOffSwitches)
            {
                OnOffSwitches.Add(new OnOff(zipato, uuid));
            }

            foreach (var uuid in zipato.DevicesInfo.Wallplugs)
            {
                Wallplugs.Add(new Plug(zipato, uuid));
            }

            foreach (var uuid in zipato.DevicesInfo.Dimmers)
            {
                Dimmers.Add(new Dimmer(zipato, uuid));
            }

            foreach (var uuid in zipato.DevicesInfo.RGBControls)
            {
                RGBControls.Add(new RGBControl(zipato, uuid));
            }

            Status = _zipato?.Data?.Status ?? Uncertain;
        }
Пример #2
0
        public DimmerData GetDimmerData(int itemId)
        {
            if (Dimmers.TryGetValue(itemId, out DimmerData data))
            {
                return(data);
            }

            DimmerData dimmerData = null;

            using (DatabaseConnection dbConnection = Engine.Locator.ConnectionPool.PopConnection())
            {
                dbConnection.SetQuery("SELECT * FROM room_dimmer WHERE item_id = @itemId");
                dbConnection.AddParameter("@itemId", itemId);
                using (var reader = dbConnection.ExecuteReader())
                    if (reader.Read())
                    {
                        dimmerData = new DimmerData(reader, false);
                        Dimmers.Add(dimmerData.ItemId, dimmerData);
                        return(dimmerData);
                    }
                    else
                    {
                        return(NewDimmerData(itemId));
                    }
            }
        }