private void GetValue(object state)
        {
            if (_device.DeviceIsDead)
            {
                state = null;
                _timer.Dispose();
                return;
            }

            try
            {
                if (OnNewValue == null)
                {
                    return;
                }

                var temp = GetTemperature();

                Task.Run(() => OnNewValue.Invoke(temp));
            }
            catch (Exception)
            {
                //ignore
            }
        }