コード例 #1
0
        public void Battery_entities_existing_entries_are_retained()
        {
            // Arrange
            var filesystem  = new DummyFilesystem();
            var transformer = new LovelaceConfigTransformer(new DeviceTranslator());
            var generator   = new LovelaceConfigGenerator(filesystem, transformer);

            filesystem.WriteFileAsync(@"Z:\output\battery-entities.yaml", @"
- entity: sensor.my_existing_device_battery
  name: My existing device
");

            filesystem.WriteFileAsync(@"Z:\source\devices.yaml", @"
# My test device
- deviceId: Test device
  platform: hubitat
  sensors:
  - type: battery
".Trim());

            var expectedConfig = @"
- entity: sensor.my_existing_device_battery
  name: My existing device
- entity: sensor.test_device_battery
  name: Test device
".Trim();

            // Action
            Task.WaitAll(generator.GenerateConfigAsync(@"Z:\source", @"Z:\output"));
            var generatedConfig = filesystem.ReadFileAsync(@"Z:\output\battery-entities.yaml").Result;

            // Assert
            Assert.AreEqual(expectedConfig, generatedConfig.Trim(), "Config declared as expected");
        }
コード例 #2
0
        public void Button_entities_file_is_generated()
        {
            // Arrange
            var filesystem  = new DummyFilesystem();
            var transformer = new LovelaceConfigTransformer(new DeviceTranslator());
            var generator   = new LovelaceConfigGenerator(filesystem, transformer);

            filesystem.WriteFileAsync(@"Z:\source\devices.yaml", @"
# My test button
- deviceId: Test button
  platform: hubitat
  sensors:
  - type: button
  - type: hold-button
".Trim());

            var expectedConfig = @"
- type: custom:fold-entity-brick
  entity: binary_sensor.test_button_active
  entities:
  - entity: binary_sensor.test_button
    name: Push
  - entity: binary_sensor.test_button_hold
    name: Hold
".Trim();

            // Action
            Task.WaitAll(generator.GenerateConfigAsync(@"Z:\source", @"Z:\output"));
            var generatedConfig = filesystem.ReadFileAsync(@"Z:\output\button-entities.yaml").Result;

            // Assert
            Assert.AreEqual(expectedConfig, generatedConfig.Trim(), "Config declared as expected");
        }
コード例 #3
0
        public void Offline_entities_file_is_generated()
        {
            // Arrange
            var filesystem  = new DummyFilesystem();
            var transformer = new LovelaceConfigTransformer(new DeviceTranslator());
            var generator   = new LovelaceConfigGenerator(filesystem, transformer);

            filesystem.WriteFileAsync(@"Z:\source\devices.yaml", @"
# My test device
- deviceId: Test device
  platform: hubitat
  sensors:
  - type: offline
".Trim());

            var expectedConfig = @"
- entity: binary_sensor.test_device_offline
  name: Test device
".Trim();

            // Action
            Task.WaitAll(generator.GenerateConfigAsync(@"Z:\source", @"Z:\output"));
            var generatedConfig = filesystem.ReadFileAsync(@"Z:\output\offline-entities.yaml").Result;

            // Assert
            Assert.AreEqual(expectedConfig, generatedConfig.Trim(), "Config declared as expected");
        }
コード例 #4
0
        static void Main(string[] args)
        {
            var configuration = new AppSettingsReader().GenerateConfiguration();

            var filesystem       = new Filesystem();
            var deviceTranslator = new DeviceTranslator();

            var mqttConfigGenerator = new MqttConfigGenerator(
                filesystem,
                new MqttActuatorConfigTransformer(configuration),
                new MqttSensorConfigTransformer(configuration, deviceTranslator),
                new TemplateSensorConfigTransformer(configuration, deviceTranslator));
            var lovelaceConfigGenerator = new LovelaceConfigGenerator(
                filesystem,
                new LovelaceConfigTransformer(deviceTranslator));

            Task.WaitAll(
                mqttConfigGenerator.GenerateConfigAsync(configuration.GetMqttDevicesFolder(), configuration.OutputFolder),
                lovelaceConfigGenerator.GenerateConfigAsync(configuration.GetMqttDevicesFolder(), configuration.GetLovelaceIncludesFolder())
                );
        }