public static void AddBme680Config(this SystemConfiguration config)
        {
            var bme680Config = new Bme680Configuration
            {
                FilteringMode          = Bme680FilteringMode.C3,
                GasConversionIsEnabled = true,
                HeaterIsEnabled        = true,
                HeaterProfiles         = new List <Bme680HeaterConfiguration>
                {
                    new Bme680HeaterConfiguration
                    {
                        HeaterProfile     = Bme680HeaterProfile.Profile1,
                        Duration          = 150,
                        TargetTemperature = 320
                    }
                },
                HumiditySampling    = Sampling.HighResolution,
                PressureSampling    = Sampling.HighResolution,
                TemperatureSampling = Sampling.HighResolution,
                ActiveProfile       = Bme680HeaterProfile.Profile1,
                I2CAddress          = Bme680.SecondaryI2cAddress
            };

            var bme680DeviceConfig = new DeviceConfig
            {
                Name          = "Bme680",
                Configuration = JsonSerializer.Serialize(bme680Config)
            };

            config.DeviceConfig.Add(bme680DeviceConfig);
        }
 private void SetPropertiesFromConfig(Bme680Configuration config)
 {
     _bme680.TemperatureSampling    = config.TemperatureSampling;
     _bme680.PressureSampling       = config.PressureSampling;
     _bme680.HumiditySampling       = config.HumiditySampling;
     _bme680.FilterMode             = config.FilteringMode;
     _bme680.GasConversionIsEnabled = config.GasConversionIsEnabled;
     _bme680.HeaterIsEnabled        = config.HeaterIsEnabled;
 }
        private void SetHeaterProfilesFromConfig(Bme680Configuration config)
        {
            if (config.HeaterProfiles.Count > 10)
            {
                config.HeaterProfiles.RemoveRange(10, config.HeaterProfiles.Count - 10);
            }

            _bme680.TryReadTemperature(out var temperature);
            foreach (var heaterProfile in config.HeaterProfiles)
            {
                _bme680.ConfigureHeatingProfile(heaterProfile.HeaterProfile, heaterProfile.TargetTemperature,
                                                heaterProfile.Duration, temperature.DegreesCelsius);
            }

            _bme680.HeaterProfile = config.ActiveProfile;
        }