/**************************************************************************************************************/
        /* Temperature Groups                                                                                         */
        /**************************************************************************************************************/
        public static void AddTemperatureGroup(TemperatureGroupSettings settings, bool saveToFile = true)
        {
            if (TemperatureGroupNameExists(settings.name))
            {
                throw new Exception(string.Format("Temperature Group: {0} already exists", settings.name));
            }

            temperatureGroups[settings.name] = new TemperatureGroup(
                settings.name,
                settings.highTemperatureAlarmSetpoint,
                settings.lowTemperatureAlarmSetpoint,
                settings.temperatureSetpoint,
                settings.temperatureDeadband,
                settings.temperatureProbes);

            if (_defaultTemperatureGroup.IsEmpty())
            {
                _defaultTemperatureGroup = settings.name;
            }

            if (saveToFile)
            {
                AddTemperatureGroupSettingsToFile(settings.name);
            }
        }
        public static void UpdateTemperatureGroup(string name, TemperatureGroupSettings settings)
        {
            if (TemperatureGroupNameExists(name))
            {
                RemoveTemperatureGroup(name);
            }

            AddTemperatureGroup(settings);
        }
        /***Settings***************************************************************************************************/
        public static TemperatureGroupSettings GetTemperatureGroupSettings(string name)
        {
            CheckTemperatureGroupKey(name);
            var settings = new TemperatureGroupSettings();

            settings.name = name;
            settings.highTemperatureAlarmSetpoint = GetTemperatureGroupHighTemperatureAlarmSetpoint(name);
            settings.lowTemperatureAlarmSetpoint  = GetTemperatureGroupLowTemperatureAlarmSetpoint(name);
            settings.temperatureSetpoint          = GetTemperatureGroupTemperatureSetpoint(name);
            settings.temperatureDeadband          = GetTemperatureGroupTemperatureDeadband(name);
            settings.temperatureProbes            = GetAllTemperatureProbesForTemperatureGroup(name);
            return(settings);
        }