/// <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; }
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)); } } }