• akleeb

    (@akleeb)


    I get this error message after month of correct running on Plugin: Weather Station

    Warning: A non-numeric value encountered in /home/wildspit/public_html/wordpress/wp-content/plugins/live-weather-station/includes/traits/DataUnitConversion.php on line 1083

    Warning: A non-numeric value encountered in /home/wildspit/public_html/wordpress/wp-content/plugins/live-weather-station/includes/traits/DataUnitConversion.php on line 1083

    Warning: A non-numeric value encountered in /home/wildspit/public_html/wordpress/wp-content/plugins/live-weather-station/includes/traits/DataUnitConversion.php on line 1083

    Warning: A non-numeric value encountered in /home/wildspit/public_html/wordpress/wp-content/plugins/live-weather-station/includes/traits/DataUnitConversion.php on line 1083

    Warning: A non-numeric value encountered in /home/wildspit/public_html/wordpress/wp-content/plugins/live-weather-station/includes/traits/DataUnitConversion.php on line 1083

    Warning: A non-numeric value encountered in /home/wildspit/public_html/wordpress/wp-content/plugins/live-weather-station/includes/traits/DataUnitConversion.php on line 1083

    Warning: A non-numeric value encountered in /home/wildspit/public_html/wordpress/wp-content/plugins/live-weather-station/includes/traits/DataUnitConversion.php on line 1083

    Warning: A non-numeric value encountered in /home/wildspit/public_html/wordpress/wp-content/plugins/live-weather-station/includes/traits/DataUnitConversion.php on line 1083

    Warning: A non-numeric value encountered in /home/wildspit/public_html/wordpress/wp-content/plugins/live-weather-station/includes/traits/DataUnitConversion.php on line 1083

    Warning: A non-numeric value encountered in /home/wildspit/public_html/wordpress/wp-content/plugins/live-weather-station/includes/traits/DataUnitConversion.php on line 1083

    The page I need help with: [log in to see the link]

Viewing 3 replies - 1 through 3 (of 3 total)
  • Pierre Lannoy

    (@pierrelannoy)

    Hello @akleeb and thanks for the report.

    It’s tricky issue I’ve identified too and I’m currently working on a fix which will be released before the end of the month (it will be 3.8.11).

    Sorry for the inconvenience.

    Thread Starter akleeb

    (@akleeb)

    Hello
    the item is still not fixed officialy so I did it myself.
    It is an easy wordaround. In the module DataUnitConversion.php I added the conversion text to number before line 1083. In case of NIL, I added zero. Now it works without any further problem.

    Thread Starter akleeb

    (@akleeb)

    Here the fixed code of DataUnitConversion.php:
    =======================================================

    <?php
    
    namespace WeatherStation\Data\Unit;
    
    /**
     * Units conversions functionalities for Weather Station plugin.
     *
     * @package Includes\Traits
     * @author Pierre Lannoy <https://pierre.lannoy.fr/>.
     * @license https://www.gnu.org/licenses/gpl-2.0.html GPLv2 or later
     * @since 1.0.0
     */
    trait Conversion {
    
        private $radio_correct_db = 35;
        private $wifi_correct_db = 1;
        private $battery_max = 6000;
        private $signal_max = 0;
        private $battery_cutoff = 500;
        private $signal_cutoff = 10;
        private $beaufort_thresholds = array(1.1, 5.5, 11.9, 19.7, 28.7, 38.8, 49.9, 61.8, 74.6, 88.1, 102.4, 117.4, 143);
    
        /**
         * Convert the absolute pressure to MSLP.
         *
         * @param float $baro The absolute pressure in hPa.
         * @param float $altitude The altitude, in meter, (elevation + height above ground) of the probe.
         * @param float $temperature Optional. The temperature, in °C, at the given altitude.
         * @return string The MSL pressure, with right decimal point, in hPa .
         * @since 3.6.2
         */
        protected function convert_from_baro_to_mslp($baro, $altitude, $temperature=15.0){
            if (!is_numeric($baro) || !is_numeric($altitude) || !is_numeric($temperature)) {
                return 0;
            }
            $H = 0.0065 * $altitude;
            $T = 273.15 + $temperature;
            $result = $baro * pow(1 - ($H / ($T + $H)), -5.257);
            return sprintf('%.1F', round($result, 1));
        }
    
        /**
         * Convert the absolute pressure to MSLP.
         *
         * @param float $mslp The mean sea level pressure in hPa.
         * @param float $altitude The altitude, in meter, (elevation + height above ground) of the probe.
         * @param float $temperature Optional. The temperature, in °C, at the given altitude.
         * @return string The absolute pressure, with right decimal point, in hPa .
         * @since 3.6.2
         */
        protected function convert_from_mslp_to_baro($mslp, $altitude, $temperature=15.0){
            if (!is_numeric($mslp) || !is_numeric($altitude) || !is_numeric($temperature)) {
                return 0;
            }
            $H = 0.0065 * $altitude;
            $T = 273.15 + $temperature;
            $result = $mslp * pow(1 - ($H / ($T + $H)), 5.257);
            return sprintf('%.1F', round($result, 1));
        }
    
        /**
         * Get the health index expressed in its unique unit.
         *
         * @param mixed $value The value of the health index.
         * @return string The health index expressed in its unique unit.
         * @since 3.1.0
         */
        protected function get_health_index($value)
        {
            $result = $value;
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the Chandler Burning index expressed in its unique unit.
         *
         * @param mixed $value The value of the Chandler Burning index.
         * @return string The Chandler Burning index expressed in its unique unit.
         * @since 3.1.0
         */
        protected function get_cbi($value)
        {
            $result = $value;
            return sprintf('%.1F', round($result, 1));
        }
    
        /**
         * Get the mass mixing ratio from volume mixing ratio.
         *
         * @param float $vmr The volume mixing ratio value.
         * @param float $density The density/air of the converted gas.
         * @return float The mass mixing ratio value.
         * @since 3.1.0
         */
        protected function convert_from_vmr_to_mmr($vmr, $density)
        {
            $result = $vmr / $density;
            return $result;
        }
    
        /**
         * Get the volume mixing ratio from mass mixing ratio.
         *
         * @param float $mmr The mass mixing ratio value.
         * @param float $density The density/air of the converted gas.
         * @return float The volume mixing ratio value.
         * @since 3.3.0
         */
        protected function convert_from_mmr_to_vmr($mmr, $density)
        {
            $result = $mmr * $density;
            return $result;
        }
    
        /**
         * Get the mass concentration from volume mixing ratio.
         *
         * @param float $vmr The volume mixing ratio value.
         * @param float $molecular_mass The molecular mass of the converted gas.
         * @param float $molar_volume Optional. The molar volume of the air.
         * @return float The mass concentration value.
         * @since 3.1.0
         */
        protected function convert_from_vmr_to_mass_concentration($vmr, $molecular_mass, $molar_volume=24.45 )
        {
            $result = ($vmr * $molecular_mass) / $molar_volume;
            return $result;
        }
    
        /**
         * Get the volume mixing ratio from mass concentration.
         *
         * @param float $mc The mass concentration value.
         * @param float $molecular_mass The molecular mass of the converted gas.
         * @param float $molar_volume Optional. The molar volume of the air.
         * @return float The volume mixing ratio value.
         * @since 3.3.0
         */
        protected function convert_from_mass_concentration_to_vmr($mc, $molecular_mass, $molar_volume=24.45 )
        {
            $result = ($mc * $molar_volume) / $molecular_mass ;
            return $result;
        }
    
        /**
         * Get the partial pressure from volume mixing ratio.
         *
         * @param float $vmr The volume mixing ratio value.
         * @param float $pressure Optional. The total gas pressure (in Pa).
         * @return float The partial pressure value.
         * @since 3.1.0
         */
        protected function convert_from_vmr_to_partial_pressure($vmr, $pressure=100000.0)
        {
            $result = $vmr * $pressure / 1000000;
            return $result;
        }
    
        /**
         * Get the volume mixing ratio from partial pressure.
         *
         * @param float $p The partial pressure value.
         * @param float $pressure Optional. The total gas pressure (in Pa).
         * @return float The volume mixing ratio value.
         * @since 3.3.0
         */
        protected function convert_from_partial_pressure_to_vmr($p, $pressure=100000.0)
        {
            $result = $p * 1000000 / $pressure;
            return $result;
        }
    
        /**
         * Get the co2 expressed in specific unit.
         *
         * @param mixed $value The value of the co2.
         * @param integer $id Optional. The unit id.
         * @return string The co2 expressed in specific unit.
         * @since 1.0.0
         */
        protected function get_co2($value, $id=0)
        {
            $result = $value;
            $format = '%d';
            $prec = 0;
            switch ($id) {
                case 1:
                    $result = $this->convert_from_vmr_to_mmr($value, 1.53);
                    break;
                case 2:
                    $result = $this->convert_from_vmr_to_mass_concentration($value, 44.01);
                    break;
                case 3:
                    $result = $this->convert_from_vmr_to_partial_pressure($value, 101325);
                    $format = '%.1F';
                    $prec = 1;
                    break;
            }
            return sprintf($format, round($result, $prec));
        }
    
        /**
         * Get the co2 expressed in standard unit.
         *
         * @param mixed $value The value of the co2.
         * @param integer $id Optional. The unit id.
         * @return string The co2 expressed in standard unit.
         * @since 3.3.0
         */
        protected function get_reverse_co2($value, $id=0)
        {
            switch ($id) {
                case 1:
                    $result = $this->convert_from_mmr_to_vmr($value, 1.53);
                    break;
                case 2:
                    $result = $this->convert_from_mass_concentration_to_vmr($value, 44.01);
                    break;
                case 3:
                    $result = $this->convert_from_partial_pressure_to_vmr($value, 101325);
                    break;
                default:
                    $result = $value;
            }
            return round($result);
        }
    
        /**
         * Get the CO expressed in specific unit.
         *
         * @param mixed $value The value of the CO.
         * @param integer $id Optional. The unit id.
         * @return string The CO expressed in specific unit.
         * @since 2.7.0
         */
        protected function get_co($value, $id=0)
        {
            $value *= 1000;
            $result = $value;
            $format = '%d';
            $prec = 0;
            switch ($id) {
                case 1:
                    $result = $this->convert_from_vmr_to_mmr($value, 0.97);
                    break;
                case 2:
                    $result = $this->convert_from_vmr_to_mass_concentration($value, 28.01);
                    break;
                case 3:
                    $result = $this->convert_from_vmr_to_partial_pressure($value);
                    break;
            }
            return sprintf($format, round($result, $prec));
        }
    
        /**
         * Get the CO expressed in standard unit.
         *
         * @param mixed $value The value of the CO.
         * @param integer $id Optional. The unit id.
         * @return string The CO expressed in standard unit.
         * @since 3.3.0
         */
        protected function get_reverse_co($value, $id=0)
        {
            $result = $value;
            switch ($id) {
                case 1:
                    $result = $this->convert_from_mmr_to_vmr($value, 0.97);
                    break;
                case 2:
                    $result = $this->convert_from_mass_concentration_to_vmr($value, 28.01);
                    break;
                case 3:
                    $result = $this->convert_from_partial_pressure_to_vmr($value);
                    break;
            }
            return $result / 1000;
        }
    
        /**
         * Get the SO2 expressed in specific unit.
         *
         * @param mixed $value The value of the SO2.
         * @param integer $id Optional. The unit id.
         * @return string The SO2 expressed in specific unit.
         * @since 3.1.0
         */
        protected function get_so2($value, $id=0)
        {
            $value *= 1000;
            $result = $value;
            $format = '%d';
            $prec = 0;
            switch ($id) {
                case 1:
                    $result = $this->convert_from_vmr_to_mmr($value, 2.22);
                    break;
                case 2:
                    $result = $this->convert_from_vmr_to_mass_concentration($value, 64.06);
                    break;
                case 3:
                    $result = $this->convert_from_vmr_to_partial_pressure($value);
                    break;
            }
            return sprintf($format, round($result, $prec));
        }
    
        /**
         * Get the SO2 expressed in standard unit.
         *
         * @param mixed $value The value of the SO2.
         * @param integer $id Optional. The unit id.
         * @return string The SO2 expressed in standard unit.
         * @since 3.3.0
         */
        protected function get_reverse_so2($value, $id=0)
        {
            $result = $value;
            switch ($id) {
                case 1:
                    $result = $this->convert_from_mmr_to_vmr($value, 2.22);
                    break;
                case 2:
                    $result = $this->convert_from_mass_concentration_to_vmr($value, 64.06);
                    break;
                case 3:
                    $result = $this->convert_from_partial_pressure_to_vmr($value);
                    break;
            }
            return $result / 1000;
        }
    
        /**
         * Get the NO2 expressed in specific unit.
         *
         * @param mixed $value The value of the NO2.
         * @param integer $id Optional. The unit id.
         * @return string The NO2 expressed in specific unit.
         * @since 3.1.0
         */
        protected function get_no2($value, $id=0)
        {
            $value *= 1000;
            $result = $value;
            $format = '%d';
            $prec = 0;
            switch ($id) {
                case 1:
                    $result = $this->convert_from_vmr_to_mmr($value, 1.88);
                    break;
                case 2:
                    $result = $this->convert_from_vmr_to_mass_concentration($value, 46.01);
                    break;
                case 3:
                    $result = $this->convert_from_vmr_to_partial_pressure($value);
                    break;
            }
            return sprintf($format, round($result, $prec));
        }
    
        /**
         * Get the NO2 expressed in standard unit.
         *
         * @param mixed $value The value of the NO2.
         * @param integer $id Optional. The unit id.
         * @return string The NO2 expressed in standard unit.
         * @since 3.3.0
         */
        protected function get_reverse_no2($value, $id=0)
        {
            $result = $value;
            switch ($id) {
                case 1:
                    $result = $this->convert_from_mmr_to_vmr($value, 1.88);
                    break;
                case 2:
                    $result = $this->convert_from_mass_concentration_to_vmr($value, 46.01);
                    break;
                case 3:
                    $result = $this->convert_from_partial_pressure_to_vmr($value);
                    break;
            }
            return $result / 1000;
        }
    
        /**
         * Get the o3 expressed in its unique unit.
         *
         * @param mixed $value  The value of the co2.
         * @return string The o3 expressed in its unique unit.
         * @since 2.7.0
         */
        protected function get_o3($value)
        {
            $result = $value;
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get o3 expressed in standard unit.
         *
         * @param mixed $value The value of o3.
         * @return string The o3 expressed in standard unit.
         * @since 3.0.0
         */
        protected function get_reverse_o3($value)
        {
            $result = $value;
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the humidity expressed in its unique unit.
         *
         * @param   mixed   $value  The value of the humidity.
         * @return  string  The humidity expressed in its unique unit.
         * @since    1.0.0
         * @access   protected
         */
        protected function get_humidity($value)
        {
            $result = $value;
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the emc expressed in its unique unit.
         *
         * @param mixed $value The value of the emc.
         * @return string The emc expressed in its unique unit.
         * @since 3.3.0
         */
        protected function get_emc($value){
            $result = $value;
            return sprintf('%.1F', round($result, 1));
        }
    
        /**
         * Get humidity expressed in standard unit.
         *
         * @param mixed $value The value of humidity.
         * @return string The humidity expressed in standard unit.
         * @since 3.0.0
         */
        protected function get_reverse_humidity($value)
        {
            $result = $value;
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the moon illumibation expressed in its unique unit.
         *
         * @param   mixed   $value  The value of the humidity.
         * @return  string  The moon illumibation expressed in its unique unit.
         * @since    2.0.0
         */
        protected function get_moon_illumination($value)
        {
            $result = $value;
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the cloudiness expressed in its unique unit.
         *
         * @param   mixed   $value  The value of the cloudiness.
         * @return  string  The cloudiness expressed in its unique unit.
         * @since    2.0.0
         * @access   protected
         */
        protected function get_cloudiness($value)
        {
            $result = $value;
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get cloudiness expressed in standard unit.
         *
         * @param mixed $value The value of cloudiness.
         * @return string The cloudiness expressed in standard unit.
         * @since 3.0.0
         */
        protected function get_reverse_cloudiness($value)
        {
            $result = $value;
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the noise expressed in its unique unit.
         *
         * @param   mixed $value  The value of the noise.
         * @return  string  The noise expressed in its unique unit.
         * @since    1.0.0
         * @access   protected
         */
        protected function get_noise($value)
        {
            $result = $value;
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get noise expressed in standard unit.
         *
         * @param mixed $value The value of noise.
         * @return string The noise expressed in standard unit.
         * @since 3.0.0
         */
        protected function get_reverse_noise($value)
        {
            $result = $value;
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the rain expressed in its unique unit.
         *
         * @param   mixed   $value The value of the rain.
         * @param   integer $id     Optional. The unit id.
         * @return  string  The rain expressed in its unique unit.
         * @since    1.0.0
         * @access   protected
         */
        protected function get_rain($value, $id = 0)
        {
            $result = $value;
            $format = '%.1F';
            $prec = 1;
            switch ($id) {
                case 2:  // l(in) = l(mm) / 25.4
                case 3:
                    $result = $value / 25.4;
                    $format = '%.2F';
                    $prec = 2;
                    break;
            }
            return sprintf($format, round($result, $prec));
        }
    
        /**
         * Get rain expressed in standard unit.
         *
         * @param mixed $value The value of rain.
         * @param integer $id The unit id.
         * @return string The rain expressed in standard unit.
         * @since 3.0.0
         */
        protected function get_reverse_rain($value, $id)
        {
            $result = $value;
            switch ($id) {
                case 1:  // l(mm) = l(in) * 25.4
                    $result = $value * 25.4;
                    break;
            }
            return sprintf('%.1F', round($result, 1));
        }
    
        /**
         * Get the degree diameter expressed in its unique unit.
         *
         * @param   mixed   $value The value of the degree diameter.
         * @return  string  The rain expressed in its unique unit.
         * @since    2.0.0
         */
        protected function get_degree_diameter($value)
        {
            $result = $value;
            return sprintf('%.4F', round($result, 4));
        }
    
        /**
         * Get the snow expressed in specific unit.
         *
         * @param   mixed   $value  The value of the snow.
         * @param   integer $id     Optional. The unit id.
         * @return  string  The snow expressed in specific unit.
         * @since    2.0.0
         * @access   protected
         */
        protected function get_snow($value, $id = 0)
        {
            $result = $value / 10;
            if ($value > 0 && $result < 1) {
                $result = 1;
            }
            $format = '%d';
            $prec = 0;
            switch ($id) {
                case 1:
                    $result = $value / 25.4;
                    $format = '%.1F';
                    $prec = 1;
                    break;
            }
            return sprintf($format, round($result, $prec));
        }
    
        /**
         * Get snow expressed in standard unit.
         *
         * @param mixed $value The value of snow.
         * @param integer $id The unit id.
         * @return string The snow expressed in standard unit.
         * @since 3.0.0
         */
        protected function get_reverse_snow($value, $id)
        {
            $result = $value;
            switch ($id) {
                case 0:
                    $result = $value * 10;
                    break;
                case 1:
                    $result = $value * 25.4;
                    break;
            }
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the day expressed in its unique unit.
         *
         * @param mixed $value The value of the day.
         * @return string The day length expressed in its unique unit.
         * @since 3.1.0
         */
        protected function get_day_length($value)
        {
            $result = $value;
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the dusk or dawn expressed in its unique unit.
         *
         * @param mixed $value The value of the dusk or dawn twilight.
         * @return string The dusk or dawn twilight expressed in its unique unit.
         * @since 3.1.0
         */
        protected function get_dusk_dawn($value)
        {
            $result = $value;
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the irradiance expressed in its unique unit.
         *
         * @param mixed $value The value of the irradiance.
         * @return string The irradiance expressed in its unique unit.
         * @since 3.3.0
         */
        protected function get_irradiance($value)
        {
            $result = $value;
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the uv expressed in its unique unit.
         *
         * @param mixed $value The value of the uv.
         * @return string The uv expressed in its unique unit.
         * @since 3.8.4
         */
        protected function get_uv($value)
        {
            $result = $value;
            return sprintf('%.2F', round($result, 2));
        }
    
        /**
         * Get the illuminance expressed in its unique unit.
         *
         * @param mixed $value The value of the illuminance.
         * @return string The illuminance expressed in its unique unit.
         * @since 3.3.0
         */
        protected function get_illuminance($value)
        {
            $result = $value / 1000;
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the illuminance expressed in standard unit.
         *
         * @param mixed $value The value of the illuminance.
         * @return string The illuminance expressed in standard unit.
         * @since 3.3.0
         */
        protected function get_reverse_illuminance($value)
        {
            $result = $value * 1000;
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the wind angle expressed in its unique unit.
         *
         * @param mixed $value The value of the wind angle.
         * @return string The wind angle expressed in its unique unit.
         * @since 1.0.0
         */
        protected function get_wind_angle($value)
        {
            $result = $value;
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get wind angle expressed in standard unit.
         *
         * @param mixed $value The value of wind angle.
         * @return string The wind angle expressed in standard unit.
         * @since 3.0.0
         */
        protected function get_reverse_wind_angle($value) {
            $result = $value;
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get an angle in degree from readable text (i.e. NNW, S, ...).
         *
         * @param string $value The readable text of the angle.
         * @return integer The wind angle in degree.
         * @since 3.3.0
         */
        protected function get_reverse_wind_angle_text($value) {
            $dir = array();
            $dir['N'] = 0;
            $dir['NNE'] = 22.5 * 1;
            $dir['NE'] = 22.5 * 2;
            $dir['ENE'] = 22.5 * 3;
            $dir['E'] = 22.5 * 4;
            $dir['ESE'] = 22.5 * 5;
            $dir['SE'] = 22.5 * 6;
            $dir['SSE'] = 22.5 * 7;
            $dir['S'] = 22.5 * 8;
            $dir['SSW'] = 22.5 * 9;
            $dir['SW'] = 22.5 * 10;
            $dir['WSW'] = 22.5 * 11;
            $dir['W'] = 22.5 * 12;
            $dir['WNW'] = 22.5 * 13;
            $dir['NW'] = 22.5 * 14;
            $dir['NNW'] = 22.5 * 15;
            if (array_key_exists($value, $dir)) {
                return $dir[$value];
            }
            else {
                return 0;
            }
        }
    
    /**
         * Get the density expressed in specific unit.
         *
         * @param mixed $value The value of the temperature.
         * @param integer $id Optional. The unit id.
         * @return string The density expressed in specific unit.
         * @since 3.0.0
         */
        protected function get_density($value, $id = 0)
        {
            $result = $value;
            $format = '%.4F';
            $prec = 4;
            switch ($id) {
                case 1:
                    $format = '%.5F';
                    $prec = 5;
                    $result = $result / 16.01846;
                    break;
            }
            return sprintf($format, round($result, $prec));
        }
    
        /**
         * Get the density expressed in standard unit.
         *
         * @param mixed $value The value of the temperature.
         * @param integer $id Optional. The unit id.
         * @return string The density expressed in standard unit.
         * @since 3.3.0
         */
        protected function get_reverse_density($value, $id = 0)
        {
            $result = $value;
            switch ($id) {
                case 1:
                    $result = $value * 16.01846;
                    break;
            }
            return sprintf('%.4F', round($result, 4));
        }
    
        /**
         * Get the enthalpy expressed in specific unit.
         *
         * @param mixed $value The value of the enthalpy.
         * @param integer $id Optional. The unit id.
         * @return string The enthalpy expressed in specific unit.
         * @since 3.0.0
         */
        protected function get_enthalpy($value, $id = 0)
        {
            $result = $value / 1000;
            $format = '%.2F';
            $prec = 2;
            switch ($id) {
                case 1:
                    $format = '%.2F';
                    $prec = 2;
                    $result = $result / 2.326;
                    break;
            }
            return sprintf($format, round($result, $prec));
        }
    
        /**
         * Get the enthalpy expressed in standard unit.
         *
         * @param mixed $value The value of the enthalpy.
         * @param integer $id Optional. The unit id.
         * @return string The enthalpy expressed in standard unit.
         * @since 3.3.0
         */
        protected function get_reverse_enthalpy($value, $id = 0)
        {
            $result = $value;
            switch ($id) {
                case 1:
                    $result = $result * 2.326;
                    break;
            }
            return sprintf('%.2F', round($result * 1000, 2));
        }
    
        /**
         * Get the temperature expressed in specific unit.
         *
         * @param   mixed   $value  The value of the temperature.
         * @param   integer $id     Optional. The unit id.
         * @return  string  The temperature expressed in specific unit.
         * @since    1.0.0
         */
        protected function get_temperature($value, $id = 0)
        {
            $result = $value;
            switch ($id) {
                case 1:  // T(°F) = 1.8 T(°C) + 32
                    $result = 1.8 * $result + 32;
                    break;
                case 2:  // T(K) = T(°C) + 273.15
                    $result = $result + 273.15;
                    break;
            }
            return sprintf('%.1F', round($result, 1));
        }
    
        /**
         * Get temperature expressed in standard unit.
         *
         * @param mixed $value The value of temperature.
         * @param integer $id The unit id.
         * @return string The temperature expressed in standard unit.
         * @since 3.0.0
         */
        protected function get_reverse_temperature($value, $id)
        {
            $result = $value;
            switch ($id) {
                case 1:  // T(°C) = ( T(°F) - 32 ) / 1.8
                    $result = ($result - 32) / 1.8;
                    break;
                case 2:  // T(°C) = T(K) + 273.15
                    $result = $result - 273.15;
                    break;
            }
            return sprintf('%.1F', round($result, 1));
        }
    
        /**
         * Get the pressure expressed in specific unit.
         *
         * @param   mixed   $value  The value of the pressure (in hPa).
         * @param   integer $id     Optional. The unit id.
         * @return  string  The pressure expressed in specific unit.
         * @since    1.0.0
         * @access   protected
         */
        protected function get_pressure($value, $id = 0)
        {
            $result = $value;
            $format = '%.1F';
            $prec = 1;
            switch ($id) {
                case 1:  // P(inHg) = P(hPa) / 33.8639
                    $result = $result / 33.8639;
                    $format = '%.2F';
                    $prec = 2;
                    break;
                case 2:  // P(mmHg) = P(hPa) / 1.33322368
                    $result = $result / 1.33322368;
                    break;
                case 3:
                    $format = '%.1F';
                    $prec = 1;
                    break;
            }
            return sprintf($format, round($result, $prec));
        }
    
        /**
         * Get the pressure expressed in specific unit.
         *
         * @param mixed $value The value of the pressure (in Pa).
         * @param integer $id Optional. The unit id.
         * @return string The pressure expressed in specific unit.
         * @since 3.3.0
         */
        protected function get_precise_pressure($value, $id = 0)
        {
            $result = $value;
            $format = '%d';
            $prec = 0;
            switch ($id) {
                case 1:  // P(inHg) = P(Pa) / 3386.39
                    $result = $result / 3386.39;
                    $format = '%.2F';
                    $prec = 2;
                    break;
                case 2:  // P(mmHg) = PhPa) / 133.322368
                    $result = $result / 133.322368;
                    break;
                case 3:
                    $format = '%.1F';
                    $prec = 1;
                    break;
            }
            return sprintf($format, round($result, $prec));
        }
    
        /**
         * Get the pressure expressed in standard unit.
         *
         * @param mixed $value The value of the pressure.
         * @param integer $id The unit id.
         * @return string The pressure expressed in standard unit.
         * @since 3.3.0
         */
        protected function get_reverse_precise_pressure($value, $id)
        {
            $result = $value;
            switch ($id) {
                case 1:  // P(hPa) = P(inHg) * 33.8639
                    $result = $result * 3386.39;
                    break;
                case 2:  // P(hPa) = P(mmHg) * 1.33322368
                    $result = $result * 133.322368;
                    break;
            }
            return sprintf('%.1F', round($result, 1));
        }
    
        /**
         * Get the absolute humidity expressed in specific unit.
         *
         * @param mixed $value The value of the absolute humidity (in kg/kg).
         * @param integer $id Optional. The unit id.
         * @return string The absolute humidity expressed in specific unit.
         * @since 3.3.0
         */
        protected function get_absolute_humidity($value, $id = 0)
        {
            $result = $value * 1000;
            $format = '%.2F';
            $prec = 2;
            switch ($id) {
                case 1:
                    $result = $result / 0.1429;
                    $format = '%.1F';
                    $prec = 1;
                    break;
            }
            return sprintf($format, round($result, $prec));
        }
    
        /**
         * Get the absolute humidity expressed in standard unit.
         *
         * @param mixed $value The value of the absolute humidity (in kg/kg).
         * @param integer $id Optional. The unit id.
         * @return string The absolute humidity expressed in standard unit.
         * @since 3.3.0
         */
        protected function get_reverse_absolute_humidity($value, $id = 0)
        {
            $result = $value;
            switch ($id) {
                case 1:
                    $result = $result * 0.1429;
                    break;
            }
            return $result / 1000;
        }
    
        /**
         * Get the pressure expressed in standard unit.
         *
         * @param mixed $value The value of the pressure.
         * @param integer $id The unit id.
         * @return string The pressure expressed in standard unit.
         * @since 3.0.0
         */
        protected function get_reverse_pressure($value, $id)
        {
            $result = $value;
            switch ($id) {
                case 1:  // P(hPa) = P(inHg) * 33.8639
                    $result = $result * 33.8639;
                    break;
                case 2:  // P(hPa) = P(mmHg) * 1.33322368
                    $result = $result * 1.33322368;
                    break;
            }
            return sprintf('%.1F', round($result, 1));
        }
    
        /**
         * Get the wind speed expressed in specific unit.
         *
         * @param   mixed   $value  The value of the wind speed.
         * @param   integer $id     Optional. The unit id.
         * @return  string  The wind speed expressed in specific unit.
         * @since    1.0.0
         * @access   protected
         */
        protected function get_wind_speed($value, $id = 0)
        {
            $result = $value;
    		
    		
    		if (is_numeric($value)) {
    			$result = $value;
    		} else {
    			$result = 0;
    		}
    		
    		
    		
            $format = '%d';
            $prec = 0;
            switch ($id) {
                case 1:  // V(mph) = V(km/h) / 1.609344
                    $result = $result / 1.609344;
                    if ($result < 10) {
                        $format = '%.1F';
                    }
                    break;
                case 6:  // V(mph) = V(km/h) / 1.609344
                    $format = '%.2F';
                    $prec = 2;
                    $result = $result / 1.609344;
                    break;
                case 2:  // V(m/s) = V(km/h) / 3.6
                    $result = $result / 3.6;
                    $format = '%.1F';
                    $prec = 1;
                    break;
                case 5:  // V(m/s) = V(km/h) / 3.6
                    $format = '%.2F';
                    $prec = 2;
                    $result = $result / 3.6;
                    break;
                case 3:  // see https://en.wikipedia.org/wiki/Beaufort_scale
                    $result = 12;
                    for ($i = 11; $i >= 0; $i--) {
                        if ($value < $this->beaufort_thresholds[$i] ) {
                            $result = $i;
                        }
                    }
                    break;
                case 4:  // V(kn) = V(km/h) / 1.852
                    $result = $result / 1.852;
                    if ($result < 10) {
                        $format = '%.1F';
                    }
                    break;
            }
            return sprintf($format, round($result, $prec));
        }
    
        /**
         * Get the wind state (normal, advisory or warning).
         *
         * @param mixed $value The value of the wind speed.
         * @param boolean $text Optional. Return string if true, integer value otherwise.
         * @return integer|string The state of the wind.
         * @since 3.0.0
         */
        protected function get_wind_state($value, $text=false)
        {
            if ($text) {
                $result = __('none', 'live-weather-station');
            }
            else {
                $result = 0;
            }
            $beaufort = $this->get_wind_speed($value, 3);
            if ($beaufort >= 6) {
                if ($text) {
                    $result = __('Small craft', 'live-weather-station');
                }
                else {
                    $result = 1;
                }
            }
            if ($beaufort >= 8) {
                if ($text) {
                    $result = __('Gale', 'live-weather-station');
                }
                else {
                    $result = 2;
                }
            }
            if ($beaufort >= 10) {
                if ($text) {
                    $result = __('Storm', 'live-weather-station');
                }
                else {
                    $result = 3;
                }
            }
            if ($beaufort >= 12) {
                if ($text) {
                    $result = __('Hurricane', 'live-weather-station');
                }
                else {
                    $result = 4;
                }
            }
            return $result;
        }
    
        /**
         * Get wind speed expressed in standard unit.
         *
         * @param mixed $value The value of wind speed.
         * @param integer $id The unit id.
         * @return string The wind speed expressed in standard unit.
         * @since 3.0.0
         */
        protected function get_reverse_wind_speed($value, $id)
        {
            $result = $value;
            $format = '%d';
            $prec = 1;
            switch ($id) {
                case 1:  // V(km/h) = V(mph) * 1.609344
                case 6:
                    $result = $result * 1.609344;
                    break;
                case 2:  // V(km/h) = V(m/s) * 3.6
                case 5:
                    $result = $result * 3.6;
                    break;
                case 3:  // see https://en.wikipedia.org/wiki/Beaufort_scale
                    if ($value == 12) {
                        $result = 130 ;
                    }
                    elseif ($value == 0) {
                        $result = 0;
                    }
                    else {
                        $result = ($this->beaufort_thresholds[$value]+$this->beaufort_thresholds[$value-1]) / 2;
                    }
                    break;
                case 4:  // V(km/h) = V(kn) * 1.852
                    $result = $result * 1.852;
                    break;
            }
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the battery level in numeric format.
         *
         * @param   integer $value  The value of the battery gauge.
         * @param   string  $type   The type of the module.
         * @return  integer The battery level in numeric format.
         * @since    1.0.0
         * @access   protected
         */
        protected function get_battery_level($value, $type) {
            switch (strtolower($type)) {
                case 'namain':
                    $result = -1;
                    break;
                case 'namodule1': // Outdoor module
                case 'namodule3': // Rain gauge
                    if ($value <= \WeatherStation\SDK\Netatmo\Common\NABatteryLevelModule::BATTERY_LEVEL_3) {$result = 4;}
                    if ($value > \WeatherStation\SDK\Netatmo\Common\NABatteryLevelModule::BATTERY_LEVEL_3) {$result = 3;}
                    if ($value > \WeatherStation\SDK\Netatmo\Common\NABatteryLevelModule::BATTERY_LEVEL_2) {$result = 2;}
                    if ($value > \WeatherStation\SDK\Netatmo\Common\NABatteryLevelModule::BATTERY_LEVEL_1) {$result = 1;}
                    if ($value > \WeatherStation\SDK\Netatmo\Common\NABatteryLevelModule::BATTERY_LEVEL_0) {$result = 0;}
                    break;
                case 'namodule2': // Wind gauge
                    if ($value <= \WeatherStation\SDK\Netatmo\Common\NABatteryLevelWindGaugeModule::WG_BATTERY_LEVEL_3) {$result = 4;}
                    if ($value > \WeatherStation\SDK\Netatmo\Common\NABatteryLevelWindGaugeModule::WG_BATTERY_LEVEL_3) {$result = 3;}
                    if ($value > \WeatherStation\SDK\Netatmo\Common\NABatteryLevelWindGaugeModule::WG_BATTERY_LEVEL_2) {$result = 2;}
                    if ($value > \WeatherStation\SDK\Netatmo\Common\NABatteryLevelWindGaugeModule::WG_BATTERY_LEVEL_1) {$result = 1;}
                    if ($value > \WeatherStation\SDK\Netatmo\Common\NABatteryLevelWindGaugeModule::WG_BATTERY_LEVEL_0) {$result = 0;}
                    break;
                case 'namodule4': // Additional indoor module
                    if ($value <= \WeatherStation\SDK\Netatmo\Common\NABatteryLevelIndoorModule::INDOOR_BATTERY_LEVEL_3) {$result = 4;}
                    if ($value > \WeatherStation\SDK\Netatmo\Common\NABatteryLevelIndoorModule::INDOOR_BATTERY_LEVEL_3) {$result = 3;}
                    if ($value > \WeatherStation\SDK\Netatmo\Common\NABatteryLevelIndoorModule::INDOOR_BATTERY_LEVEL_2) {$result = 2;}
                    if ($value > \WeatherStation\SDK\Netatmo\Common\NABatteryLevelIndoorModule::INDOOR_BATTERY_LEVEL_1) {$result = 1;}
                    if ($value > \WeatherStation\SDK\Netatmo\Common\NABatteryLevelIndoorModule::INDOOR_BATTERY_LEVEL_0) {$result = 0;}
                    break;
                default:
                    $result = 5;
            }
            return $result;
        }
    
        /**
         * Get the battery level in percent.
         *
         * @param   integer $value  The value of the battery gauge.
         * @param   string  $type   The type of the module.
         * @return  integer The battery level in percent.
         * @since    1.0.0
         * @access   protected
         */
        protected function get_battery_percentage($value, $type) {
            switch (strtolower($type)) {
                case 'namain':
                    $max = 100;
                    $val = 100;
                    break;
                case 'namodule1': // Outdoor module
                case 'namodule3': // Rain gauge
                    $max = $this->battery_max - \WeatherStation\SDK\Netatmo\Common\NABatteryLevelModule::BATTERY_LEVEL_3 + $this->battery_cutoff;
                    $val = $value - \WeatherStation\SDK\Netatmo\Common\NABatteryLevelModule::BATTERY_LEVEL_3 + $this->battery_cutoff;
                    break;
                case 'namodule2': // Wind gauge
                    $max = $this->battery_max - \WeatherStation\SDK\Netatmo\Common\NABatteryLevelWindGaugeModule::WG_BATTERY_LEVEL_3 + $this->battery_cutoff;
                    $val = $value - \WeatherStation\SDK\Netatmo\Common\NABatteryLevelWindGaugeModule::WG_BATTERY_LEVEL_3 + $this->battery_cutoff;
                    break;
                case 'namodule4': // Additional indoor module
                    $max = $this->battery_max - \WeatherStation\SDK\Netatmo\Common\NABatteryLevelIndoorModule::INDOOR_BATTERY_LEVEL_3 + $this->battery_cutoff;
                    $val = $value - \WeatherStation\SDK\Netatmo\Common\NABatteryLevelIndoorModule::INDOOR_BATTERY_LEVEL_3 + $this->battery_cutoff;
                    break;
                case 'nacomputed':
                case 'nacurrent':
                case 'napollution':
                    $max = 100;
                    $val = 100;
                    break;
                default:
                    $max = 100;
                    $val = 0;
            }
            if ($val<0) {$val=0;}
            if ($val>$max) {$val=$max;}
            return sprintf('%d',round(100*$val/$max));
        }
    
        /**
         * Get the signal level in percent.
         *
         * @param   integer $value  The value of the signal gauge.
         * @param   string  $type   The type of the module.
         * @return  integer The signal level in percent.
         * @since    1.0.0
         * @access   protected
         */
        protected function get_signal_percentage($value, $type) {
            switch (strtolower($type)) {
                case 'namain':
                    $max = \WeatherStation\SDK\Netatmo\Common\NAWifiRssiThreshold::RSSI_THRESHOLD_0 + $this->signal_cutoff;
                    $min = \WeatherStation\SDK\Netatmo\Common\NAWifiRssiThreshold::RSSI_THRESHOLD_2 - $this->signal_cutoff;
                    $val = $value;
                    break;
                case 'namodule1': // Outdoor module
                case 'namodule3': // Rain gauge
                case 'namodule2': // Wind gauge
                case 'namodule4': // Additional indoor module
                    $max = \WeatherStation\SDK\Netatmo\Common\NARadioRssiTreshold::RADIO_THRESHOLD_0 + $this->signal_cutoff;
                    $min = \WeatherStation\SDK\Netatmo\Common\NARadioRssiTreshold::RADIO_THRESHOLD_3 - $this->signal_cutoff;
                    $val = $value;
                    break;
                default:
                    $max = 100;
                    $min = 0;
                    $val = 0;
            }
            if ($val<$min) {$val=$min;}
            if ($val>$max) {$val=$max;}
            return sprintf('%d',round(100-(100*($val-$min)/($max-$min))));
        }
    
        /**
         * Get the RF level in numeric format.
         *
         * @param   integer $value  The value of the RF gauge.
         * @return  integer The RF level in numeric format.
         * @since    1.0.0
         * @access   protected
         */
        protected function get_rf_level($value) {
            $result = -1;
            if ($value < \WeatherStation\SDK\Netatmo\Common\NARadioRssiTreshold::RADIO_THRESHOLD_0 + $this->radio_correct_db) {$result = 0;}
            if ($value < \WeatherStation\SDK\Netatmo\Common\NARadioRssiTreshold::RADIO_THRESHOLD_1) {$result = 1;}
            if ($value < \WeatherStation\SDK\Netatmo\Common\NARadioRssiTreshold::RADIO_THRESHOLD_2) {$result = 2;}
            if ($value < \WeatherStation\SDK\Netatmo\Common\NARadioRssiTreshold::RADIO_THRESHOLD_3) {$result = 3;}
            return $result;
        }
    
        /**
         * Get the wifi level in numeric format.
         *
         * @param   integer $value  The value of the wifi gauge.
         * @return  integer The wifi level in numeric format.
         * @since    1.0.0
         * @access   protected
         */
        protected function get_wifi_level($value) {
            $result = -1;
            if ($value < \WeatherStation\SDK\Netatmo\Common\NAWifiRssiThreshold::RSSI_THRESHOLD_0 + $this->wifi_correct_db) {$result = 0;}
            if ($value < \WeatherStation\SDK\Netatmo\Common\NAWifiRssiThreshold::RSSI_THRESHOLD_1) {$result = 1;}
            if ($value < \WeatherStation\SDK\Netatmo\Common\NAWifiRssiThreshold::RSSI_THRESHOLD_2) {$result = 2;}
            if ($value == 9999) {
                $result = $value;
            }
            return $result;
        }
    
        /**
         * Get the altitude of cloud ceiling expressed in specific unit.
         *
         * @param mixed $value The value of the altitude.
         * @param integer $id Optional. The unit id.
         * @return string The cloud ceiling altitude expressed in specific unit.
         * @since 3.0.9
         */
        protected function get_cloud_ceiling($value, $id = 0)
        {
            $result = $this->get_altitude($value, $id);
            if ($result < 100) {
                $result = 5 * round($result/5, 0);
            }
            elseif ($result < 200) {
                $result = 10 * round($result/10, 0);
            }
            elseif ($result < 500) {
                $result = 50 * round($result/50, 0);
            }
            elseif ($result < 2000) {
                $result = 100 * round($result/100, 0);
            }
            elseif ($result < 10000) {
                $result = 500 * round($result/500, 0);
            }
            else {
                $result = 1000 * round($result/1000, 0);
            }
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the pressure/density altitude in specific unit.
         *
         * @param mixed $value The value of the altitude.
         * @param integer $id Optional. The unit id.
         * @return string The cloud ceiling altitude expressed in specific unit.
         * @since 3.8.0
         */
        protected function get_alt_pressure_density($value, $id = 0) {
            $result = $this->get_altitude($value, $id);
            if (abs($result) < 100) {
                $result = 5 * round($result/5, 0);
            }
            elseif (abs($result) < 200) {
                $result = 10 * round($result/10, 0);
            }
            elseif (abs($result) < 500) {
                $result = 50 * round($result/50, 0);
            }
            elseif (abs($result) < 2000) {
                $result = 100 * round($result/100, 0);
            }
            elseif (abs($result) < 10000) {
                $result = 500 * round($result/500, 0);
            }
            else {
                $result = 1000 * round($result/1000, 0);
            }
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the visibility expressed in specific unit.
         *
         * @param mixed $value The value of the altitude.
         * @param integer $id Optional. The unit id.
         * @return string The cloud ceiling altitude expressed in specific unit.
         * @since 3.0.9
         */
        protected function get_visibility($value, $id = 0)
        {
            $result = $this->get_altitude($value, $id);
            if ($result < 100) {
                $result = 5 * round($result/5, 0);
            }
            elseif ($result < 200) {
                $result = 10 * round($result/10, 0);
            }
            elseif ($result < 500) {
                $result = 50 * round($result/50, 0);
            }
            elseif ($result < 2000) {
                $result = 100 * round($result/100, 0);
            }
            elseif ($result < 10000) {
                $result = 500 * round($result/500, 0);
            }
            else {
                $result = 1000 * round($result/1000, 0);
            }
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the altitude expressed in specific unit.
         *
         * @param   mixed   $value  The value of the altitude.
         * @param   integer $id     Optional. The unit id.
         * @return  string  The altitude expressed in specific unit.
         * @since    1.1.0
         * @access   protected
         */
        protected function get_altitude($value, $id = 0)
        {
            $result = $value;
            switch ($id) {
                case 1:  // D(ft) = D(m) / 0.3048
                    $result = $result / 0.3048;
                    break;
            }
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get altitude expressed in standard unit.
         *
         * @param mixed $value The value of altitude.
         * @param integer $id The unit id.
         * @return string The altitude expressed in standard unit.
         * @since 3.0.0
         */
        protected function get_reverse_altitude($value, $id)
        {
            $result = $value;
            switch ($id) {
                case 1:  // D(m) = D(ft) * 0.3048
                    $result = $result * 0.3048;
                    break;
            }
            return sprintf('%d', round($result, 0));
        }
    
        /**
         * Get the distance expressed in specific unit.
         *
         * @param   mixed   $value  The value of the distance.
         * @param   integer $id     Optional. The unit id.
         * @return  string  The distance expressed in specific unit.
         * @since    1.1.0
         * @access   protected
         */
        protected function get_distance_from_kilometers($value, $id = 0)
        {
            $result = $value;
            switch ($id) {
                case 1:  // D(mi) = D(km) / 1.609
                    $result = $result / 1.609;
                    break;
            }
            return sprintf('%d', round($result));
        }
    
        /**
         * Get the distance expressed in specific unit.
         *
         * @param   mixed   $value  The value of the distance.
         * @param   integer $id     Optional. The unit id.
         * @return  string  The distance expressed in specific unit.
         * @since    2.7.0
         */
        protected function get_distance_from_meters($value, $id = 0)
        {
            $result = $value / 1000;
            switch ($id) {
                case 1:  // D(mi) = D(km) / 1.609
                    $result = $result / 1.609;
                    break;
            }
            if ($result < 10) {
                return sprintf('%.1F', round($result, 1));
            }
            else {
                return round($result);
            }
        }
    
        /**
         * Get the distance expressed in standard unit.
         *
         * @param mixed $value The value of the distance.
         * @param integer $id Optional. The unit id.
         * @return string The distance expressed in standard unit.
         * @since 3.3.0
         */
        protected function get_reverse_distance_from_meters($value, $id = 0)
        {
            $result = $value * 1000;
            switch ($id) {
                case 1:  // D(mi) = D(km) / 1.609
                    $result = $result * 1.609;
                    break;
            }
            return round($result);
        }
    
        /**
         * Get the standard value of a value expressed in user's unit.
         *
         * @param mixed $value The value to output.
         * @param string $type The type of the value.
         * @param integer $force_ref Optional. The unit in which the value is originally expressed.
         * @return string The value expressed in the standard unit.
         * @since 3.0.0
         */
    
        protected function convert_value($value, $type, $force_ref=9999) {
            $result = $value;
            switch (strtolower($type)) {
                case 'pressure':
                case 'pressure_sl':
                case 'pressure_min':
                case 'pressure_max':
                case 'moisture_tension':
                    if ($force_ref != 9999) {
                        $ref = $force_ref;
                    }
                    else {
                        $ref = get_option('live_weather_station_unit_pressure');
                    }
                    $result = $this->get_reverse_pressure($value, $ref);
                    break;
                case 'humidity':
                case 'humidity_min':
                case 'humidity_max':
                case 'humint':
                case 'humext':
                case 'humidity_ref':
                case 'leaf_wetness':
                case 'moisture_content':
                    $result = $this->get_reverse_humidity($value);
                    break;
                case 'temperature':
                case 'tempint':
                case 'tempext':
                case 'temperature_min':
                case 'temperature_max':
                case 'temperature_ref':
                case 'dew_point':
                case 'frost_point':
                case 'heat_index':
                case 'humidex':
                case 'wind_chill':
                case 'soil_temperature':
                case 'steadman':
                case 'delta_t':
                case 'summer_simmer':
                    if ($force_ref != 9999) {
                        $ref = $force_ref;
                    }
                    else {
                        $ref = get_option('live_weather_station_unit_temperature');
                    }
                    $result = $this->get_reverse_temperature($value, $ref);
                    break;
                case 'loc_altitude':
                case 'cloud_ceiling':
                case 'alt_pressure':
                case 'alt_density':
                    if ($force_ref != 9999) {
                        $ref = $force_ref;
                    }
                    else {
                        $ref = get_option('live_weather_station_unit_altitude');
                    }
                    $result = $this->get_reverse_altitude($value, $ref);
                    break;
                case 'cloudiness':
                    $result = $this->get_cloudiness($value);
                    break;
                case 'co2':
                    if ($force_ref != 9999) {
                        $ref = $force_ref;
                    }
                    else {
                        $ref = get_option('live_weather_station_unit_gas');
                    }
                    $result = $this->get_reverse_co2($value, $ref);
                    break;
                case 'o3':
                    $result = $this->get_reverse_o3($value);
                    break;
                case 'co':
                    if ($force_ref != 9999) {
                        $ref = $force_ref;
                    }
                    else {
                        $ref = get_option('live_weather_station_unit_gas');
                    }
                    $result = $this->get_reverse_co($value, $ref);
                    break;
                case 'noise':
                    $result = $this->get_reverse_noise($value);
                    break;
                case 'rain':
                case 'rain_hour_aggregated':
                case 'rain_day_aggregated':
                case 'rain_yesterday_aggregated':
                case 'rain_month_aggregated':
                case 'rain_season_aggregated':
                case 'rain_year_aggregated':
                case 'evapotranspiration':
                    if ($force_ref != 9999) {
                        $ref = $force_ref;
                    }
                    else {
                        $ref = get_option('live_weather_station_unit_rain_snow');
                    }
                    $result = $this->get_reverse_rain($value, $ref);
                    break;
                case 'snow':
                    if ($force_ref != 9999) {
                        $ref = $force_ref;
                    }
                    else {
                        $ref = get_option('live_weather_station_unit_rain_snow');
                    }
                    $result = $this->get_reverse_snow($value, $ref);
                    break;
                case 'windangle':
                case 'gustangle':
                case 'windangle_max':
                case 'windangle_day_max':
                case 'windangle_hour_max':
                case 'winddirection_max':
                case 'winddirection_day_max':
                case 'winddirection_hour_max':
                case 'strike_bearing':
                    $result = $this->get_reverse_wind_angle($value);
                    break;
                case 'windstrength':
                case 'guststrength':
                case 'windstrength_max':
                case 'windstrength_day_max':
                case 'windstrength_hour_max':
                case 'wind_ref':
                    if ($force_ref != 9999) {
                        $ref = $force_ref;
                    }
                    else {
                        $ref = get_option('live_weather_station_unit_wind_strength');
                    }
                    $result = $this->get_reverse_wind_speed($value, $ref);
                    break;
                case 'air_density':
                    if ($force_ref != 9999) {
                        $ref = $force_ref;
                    }
                    else {
                        $ref = get_option('live_weather_station_unit_psychrometry');
                    }
                    $result = $this->get_reverse_density($value, $ref);
                    break;
                case 'specific_enthalpy':
                    if ($force_ref != 9999) {
                        $ref = $force_ref;
                    }
                    else {
                        $ref = get_option('live_weather_station_unit_psychrometry');
                    }
                    $result = $this->get_reverse_enthalpy($value, $ref);
                    break;
                case 'vapor_pressure':
                    if ($force_ref != 9999) {
                        $ref = $force_ref;
                    }
                    else {
                        $ref = get_option('live_weather_station_unit_psychrometry');
                    }
                    $result = $this->get_reverse_precise_pressure($value, $ref);
                    break;
                case 'absolute_humidity':
                    if ($force_ref != 9999) {
                        $ref = $force_ref;
                    }
                    else {
                        $ref = get_option('live_weather_station_unit_psychrometry');
                    }
                    $result = $this->get_reverse_absolute_humidity($value, $ref);
                    break;
                case 'illuminance':
                    $result = $this->get_reverse_illuminance($value);
                    break;
                case 'strike_distance':
                case 'visibility':
                if ($force_ref != 9999) {
                    $ref = $force_ref;
                }
                else {
                    $ref = get_option('live_weather_station_unit_distance');
                }
                    $result = $this->get_reverse_altitude($value, $ref);
                    break;
            }
            return $result;
        }
    }
Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘A non-numeric value’ is closed to new replies.