/// <summary>
        /// Initializes a new instance of the <see cref="ZipatoSensors"/> class.
        /// The list of UUIDs from the SettingsData is used to create the device instances.
        /// </summary>
        /// <param name="zipato"></param>
        public ZipatoSensors(IZipato zipato)
        {
            _zipato = zipato;

            foreach (var uuid in zipato.SensorsInfo.VirtualMeters)
            {
                VirtualMeters.Add(new VirtualMeter(zipato, uuid));
            }

            foreach (var uuid in zipato.SensorsInfo.ConsumptionMeters)
            {
                ConsumptionMeters.Add(new ConsumptionMeter(zipato, uuid));
            }

            foreach (var uuid in zipato.SensorsInfo.TemperatureSensors)
            {
                TemperatureSensors.Add(new TemperatureSensor(zipato, uuid));
            }

            foreach (var uuid in zipato.SensorsInfo.HumiditySensors)
            {
                HumiditySensors.Add(new HumiditySensor(zipato, uuid));
            }

            foreach (var uuid in zipato.SensorsInfo.LuminanceSensors)
            {
                LuminanceSensors.Add(new LuminanceSensor(zipato, uuid));
            }

            Status = _zipato?.Data?.Status ?? Uncertain;
        }
        /// <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;
        }
Exemple #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ZipatoController"/> class.
 /// </summary>
 /// <param name="zipato">The Zipato instance.</param>
 /// <param name="options">The application options.</param>
 /// <param name="logger">The application logger.</param>
 public ZipatoController(IZipato zipato,
                         IOptions <AppSettings> options,
                         ILogger <ZipatoController> logger)
     : base(logger, options)
 {
     _zipato = zipato;
 }
Exemple #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HealthCheck"/> class.
 /// </summary>
 /// <param name="zipato">The IZipato instance.</param>
 /// <param name="options">The application options.</param>
 /// <param name="logger">The application logger.</param>
 public HealthCheck(IZipato zipato,
                    IOptions <AppSettings> options,
                    ILogger <HealthCheck> logger)
     : base(logger, options)
 {
     _zipato = zipato;
 }
 /// <summary>
 /// Initializes an instance of the <see cref="ZipatoHub"/> class.
 /// </summary>
 /// <param name="zipato">The Zipato instance.</param>
 /// <param name="logger">The application logger.</param>
 /// <param name="options">The application options.</param>
 public ZipatoHub(IZipato zipato,
                  ILogger <ZipatoHub> logger,
                  IOptions <AppSettings> options)
     : base(logger, options)
 {
     _zipato = zipato;
 }
Exemple #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Dimmer"/> class.
 /// </summary>
 /// <remarks>Requires a valid list of endpoints, attributes, and values.</remarks>
 /// <param name="zipato"></param>
 /// <param name="uuid"></param>
 public Dimmer(IZipato zipato, Guid uuid)
 {
     _zipato   = zipato;
     Uuid      = uuid;
     Name      = zipato.GetEndpoint(uuid)?.Name;
     Intensity = zipato.GetAttributeByName(uuid, "INTENSITY");
     Refresh();
 }
Exemple #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HumiditySensor"/> class.
 /// </summary>
 /// <remarks>Requires a valid list of endpoints, attributes, and values.</remarks>
 /// <param name="zipato"></param>
 /// <param name="uuid"></param>
 public HumiditySensor(IZipato zipato, Guid uuid)
 {
     _zipato  = zipato;
     Uuid     = uuid;
     Name     = zipato.GetEndpoint(uuid)?.Name;
     Humidity = zipato.GetAttributeByName(uuid, "HUMIDITY");
     Refresh();
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="LuminanceSensor"/> class.
 /// </summary>
 /// <remarks>Requires a valid list of endpoints, attributes, and values.</remarks>
 /// <param name="zipato"></param>
 /// <param name="uuid"></param>
 public LuminanceSensor(IZipato zipato, Guid uuid)
 {
     _zipato   = zipato;
     Uuid      = uuid;
     Name      = zipato.GetEndpoint(uuid)?.Name;
     Luminance = zipato.GetAttributeByName(uuid, "LUMINANCE");
     Refresh();
 }
Exemple #9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TemperatureSensor"/> class.
 /// </summary>
 /// <remarks>Requires a valid list of endpoints, attributes, and values.</remarks>
 /// <param name="zipato"></param>
 /// <param name="uuid"></param>
 public TemperatureSensor(IZipato zipato, Guid uuid)
 {
     _zipato     = zipato;
     Uuid        = uuid;
     Name        = zipato.GetEndpoint(uuid)?.Name;
     Temperature = zipato.GetAttributeByName(uuid, "TEMPERATURE");
     Refresh();
 }
Exemple #10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Switch"/> class.
 /// </summary>
 /// <remarks>Requires a valid list of endpoints, attributes, and values.</remarks>
 /// <param name="zipato"></param>
 /// <param name="uuid"></param>
 public Switch(IZipato zipato, Guid uuid)
 {
     _zipato = zipato;
     Uuid    = uuid;
     Name    = zipato.GetEndpoint(uuid)?.Name;
     State   = zipato.GetAttributeByName(uuid, "STATE");
     Refresh();
 }
Exemple #11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ConsumptionMeter"/> class.
 /// </summary>
 /// <remarks>Requires a valid list of endpoints, attributes, and values.</remarks>
 /// <param name="zipato"></param>
 /// <param name="uuid"></param>
 public ConsumptionMeter(IZipato zipato, Guid uuid)
 {
     _zipato = zipato;
     Uuid    = uuid;
     Name    = zipato.GetEndpoint(uuid)?.Name;
     CummulativeConsumption = zipato.GetAttributeByName(uuid, "CUMULATIVE_CONSUMPTION");
     CurrentConsumption     = zipato.GetAttributeByName(uuid, "CURRENT_CONSUMPTION");
     Refresh();
 }
Exemple #12
0
 /// <summary>
 /// Initializes an instance of the <see cref="ZipatoMonitor"/> class.
 /// </summary>
 /// <param name="zipato">The Zipato instance.</param>
 /// <param name="hub">The test data SignalR hub.</param>
 /// <param name="logger">The application logger.</param>
 /// <param name="options">The application options.</param>
 /// <param name="environment"></param>
 public ZipatoMonitor(IZipato zipato,
                      IHubContext <ZipatoHub> hub,
                      ILogger <ZipatoMonitor> logger,
                      IOptions <AppSettings> options,
                      IHostingEnvironment environment)
     : base(logger, options, environment)
 {
     _zipato = zipato;
     _hub    = hub;
 }
Exemple #13
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RunCommand"/> class.
        /// </summary>
        /// <param name="zipato">The Zipato instance.</param>
        /// <param name="logger">The logger instance.</param>
        /// <param name="options">The setting options instance.</param>
        /// <param name="environment">The hosting environment instance.</param>
        public RunCommand(IZipato zipato,
                          ILogger <RunCommand> logger,
                          IOptions <AppSettings> options,
                          IHostingEnvironment environment)
            : base(logger, options, environment)
        {
            _logger?.LogDebug("RunCommand()");

            // Setting the Zipato instance.
            _zipato = zipato;
        }
Exemple #14
0
        /// <summary>
        /// Initializes a new instance of the <see cref="TestCreate"/> class.
        /// </summary>
        /// <param name="outputHelper"></param>
        public TestCreate(ZipatoFixture fixture, ITestOutputHelper outputHelper)
        {
            // Set the default culture.
            CultureInfo.CurrentCulture = new CultureInfo("en-US");

            var loggerFactory = new LoggerFactory();

            loggerFactory.AddProvider(new XunitLoggerProvider(outputHelper));
            _logger = loggerFactory.CreateLogger <Zipato>();

            _zipato = fixture.Zipato;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="RGBControl"/> class.
 /// </summary>
 /// <remarks>Requires a valid list of endpoints, attributes, and values.</remarks>
 /// <param name="zipato"></param>
 /// <param name="uuid"></param>
 public RGBControl(IZipato zipato, Guid uuid)
 {
     _zipato   = zipato;
     Uuid      = uuid;
     Name      = zipato.GetEndpoint(uuid)?.Name;
     Intensity = zipato.GetAttributeByName(uuid, "INTENSITY");
     Red       = zipato.GetAttributeByName(uuid, "red");
     Green     = zipato.GetAttributeByName(uuid, "green");
     Blue      = zipato.GetAttributeByName(uuid, "blue");
     ColdWhite = zipato.GetAttributeByName(uuid, "coldWhite");
     WarmWhite = zipato.GetAttributeByName(uuid, "warmWhite");
     RGB       = zipato.GetAttributeByName(uuid, "rgb");
     RGBW      = zipato.GetAttributeByName(uuid, "rgbw");
     Refresh();
 }
Exemple #16
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ZipatoOthers"/> class.
        /// The list of UUIDs from the SettingsData is used to create the device instances.
        /// </summary>
        /// <param name="zipato"></param>
        public ZipatoOthers(IZipato zipato)
        {
            _zipato = zipato;

            foreach (var uuid in zipato.OthersInfo.Cameras)
            {
                Cameras.Add(new Camera(zipato, uuid));
            }

            foreach (var uuid in zipato.OthersInfo.Scenes)
            {
                Scenes.Add(new Scene(zipato, uuid));
            }

            Status = zipato?.Data.Status ?? Uncertain;
        }
Exemple #17
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RootCommand"/> class.
        /// The RootCommand sets default values for some properties using the application settings.
        /// </summary>
        /// <param name="zipato">The Zipato instance.</param>
        /// <param name="logger">The logger instance.</param>
        /// <param name="options">The setting options instance.</param>
        /// <param name="environment">The hosting environment instance.</param>
        public RootCommand(IZipato zipato,
                           ILogger <RootCommand> logger,
                           IOptions <AppSettings> options,
                           IHostingEnvironment environment)
            : base(logger, options, environment)
        {
            _logger?.LogDebug("RootCommand()");

            // Setting default options from appsettings.json file.
            BaseAddress = _settings.BaseAddress;
            Timeout     = _settings.Timeout;
            User        = _settings.User;
            Password    = _settings.Password;
            IsLocal     = _settings.IsLocal;

            // Setting the Zipato instance.
            _zipato = zipato;
        }
Exemple #18
0
        /// <summary>
        /// Initializes a new instance of the <see cref="VirtualMeter"/> class.
        /// </summary>
        /// <remarks>Requires a valid list of endpoints, attributes, and values.</remarks>
        /// <param name="zipato"></param>
        /// <param name="uuid"></param>
        public VirtualMeter(IZipato zipato, Guid uuid)
        {
            _zipato = zipato;
            Uuid    = uuid;
            Name    = zipato.GetEndpoint(uuid)?.Name;

            Value1  = zipato.GetAttributeByDefinition(uuid, "value1");
            Value2  = zipato.GetAttributeByDefinition(uuid, "value2");
            Value3  = zipato.GetAttributeByDefinition(uuid, "value3");
            Value4  = zipato.GetAttributeByDefinition(uuid, "value4");
            Value5  = zipato.GetAttributeByDefinition(uuid, "value5");
            Value6  = zipato.GetAttributeByDefinition(uuid, "value6");
            Value7  = zipato.GetAttributeByDefinition(uuid, "value7");
            Value8  = zipato.GetAttributeByDefinition(uuid, "value8");
            Value9  = zipato.GetAttributeByDefinition(uuid, "value9");
            Value10 = zipato.GetAttributeByDefinition(uuid, "value10");
            Value11 = zipato.GetAttributeByDefinition(uuid, "value11");
            Value12 = zipato.GetAttributeByDefinition(uuid, "value12");
            Value13 = zipato.GetAttributeByDefinition(uuid, "value13");
            Value14 = zipato.GetAttributeByDefinition(uuid, "value14");
            Value15 = zipato.GetAttributeByDefinition(uuid, "value15");
            Value16 = zipato.GetAttributeByDefinition(uuid, "value16");
            Refresh();
        }
Exemple #19
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Scene"/> class.
 /// </summary>
 /// <remarks>Requires a valid list of endpoints, attributes, and values.</remarks>
 /// <param name="zipato"></param>
 /// <param name="uuid"></param>
 public Scene(IZipato zipato, Guid uuid)
 {
     _zipato = zipato;
     Uuid    = uuid;
     Name    = zipato.GetScene(uuid)?.Name;
 }