public HomeLoggerService(ILogger <HomeLoggerService> logger,
                          IOptions <HomeLoggerConfig> config,
                          IHomeLoggerHardware hardware)
 {
     _logger   = logger;
     _config   = config;
     _hardware = hardware;
     _timer    = new Timer(ChangeLeds);
     _hardware.ButtonChanged.Do(args =>
     {
         _logger.LogInformation($"Button: {args.IsPressed}");
     });
 }
        public static void SetLed(this IHomeLoggerHardware hardware, Colours color)
        {
            switch (color)
            {
            case Colours.Red:
                hardware.SetLed(1, 0, 0);
                return;

            case Colours.Green:
                hardware.SetLed(0, 1, 0);
                return;

            case Colours.Blue:
                hardware.SetLed(0, 0, 1);
                return;
            }
            throw new NotImplementedException($"The colour {color} has not been implemented.");
        }