Media Server Upgrade 2022 (Part 2)

In the first part of this post, I talked about making sure all the new hardware that I recently purchased works. Yesterday, upgrading from Ubuntu 20.04 LTS to 22.04 LTS was super simple. Unfortunately, that was the end of the easy part.

I thought I could just image by old boot drive and make a carbon copy of it on my new boot drive. My old boot drive is a simple SATA 512GB SSD, and my new boot drive is an NVMe M.2 1TB SSD plugged directly to the motherboard. The copying was pretty simple, but because the drives differ in size, I had to relayout the partition table with the new drive once the copy is completed. I did this with the parted command.

Unfortunately the new boot drive did not want to boot. At this point I had to do some research. The most helpful articles were:

Both of the above articles were an excellent refresher on how GRUB works. I have used GRUB since the beginning, but one gets super rusty when these types of tasks are only performed once every three or six years!

Instead of detailing what went wrong, I will just explain what I should have done. This way if I need it again in the future, it is here for my reference.

Step 1: Perform a backup of the old boot drive from a Live USB in shell mode. This is done on my server on a nightly basis. This method is clearly described on the Ubuntu Community Help Wiki.

Following this method I will end up with a compressed tar archive for my entire root directory, skipping some runtime and other unwanted directories.

Step 2: After installing a fresh install of the new Ubuntu LTS Server operating system on the new server and boot drive, I proceeded to backup the new boot with the same technique used in Step 1. I stored the backup of the new install on another external SSD drive that I have lying around. Also it is important that new boot drive partition layout of the new install contains a swap partition.

Step 3: I then restore the most recent backup (done in Step 1) of the old boot drive to the new boot drive. I then replaced the /boot/grub directory with the new contents from the new install which was backed up in Step 2. The new GRUB is already installed when we performed a brand new installation on the drive. We just want to make sure the boot partition matches the /boot/grub contents.

Step 4: We also need to fix up the /etc/fstab file because it contains references to drive devices from the old hardware. Paid special attention the main data partition and the swap partition. It should look something like this:

# /etc/fstab: static file system information.
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/nvme1n1p2 during curtin installation
UUID=fc939be4-5292-4252-8120-7ef59b177e5b / ext4 defaults 0 1

# /boot/efi was on /dev/nvme0n1p1 during curtin installation
UUID=5187-A8C6 /boot/efi vfat defaults 0 1

# Swap partition
UUID=512d611e-6944-4a57-9748-ea68e9ec3fad	none	swap	sw	0	0

# /dev/mapper/airvideovg2-airvideo /mnt/airvideo ext4 rw,noatime 0 0
UUID=9e78425c-c1f3-4285-9fa1-96cac9114c55 /mnt/airvideo ext4 rw,noatime 0 0

Noticed that I also added the LVM logical volume for /mnt/airvideo, which is my RAID-1 array. The UUID can be obtained by the blkid command. Below is a sample output:

% blkid
/dev/sdf1: UUID="60024298-9915-3ad8-ae6c-ed7adc98ee62" UUID_SUB="fe08d23c-8e11-e02b-63f9-1bb806046db7" LABEL="avs:4" TYPE="linux_raid_member" PARTLABEL="primary" PARTUUID="552bdff7-182f-40f0-a378-844fdb549f07"
/dev/nvme0n1p1: UUID="r2rLMD-BEnc-wcza-yvro-chkB-1vB6-6Jtzgz" TYPE="LVM2_member" PARTLABEL="primary" PARTUUID="6c85af69-19a0-4720-9588-808bc0d818f7"
/dev/sdd1: UUID="34c6a19f-98ea-0188-bb3f-a5f5c3be238d" UUID_SUB="4174d106-cae4-d934-3ed4-5057531acb3c" LABEL="avs:3" TYPE="linux_raid_member" PARTLABEL="primary" PARTUUID="2fc4e9ad-be4b-48aa-8115-f32472e61005"
/dev/sdb1: UUID="ac438ac6-344a-656b-387f-017036b0fafa" UUID_SUB="0924dc67-cd3f-dec5-1814-ab46ebdf2fbe" LABEL="avs:1" TYPE="linux_raid_member" PARTUUID="29e7cfce-9e7b-4067-a0ca-453b39e0bd3d"
/dev/md4: UUID="gjbtdL-homY-wyRG-rUBw-lFgm-t0vZ-Gi8gSz" TYPE="LVM2_member"
/dev/md2: UUID="0Nky5e-52t6-b1uZ-GAIl-4Ior-XWTz-wFpHh1" TYPE="LVM2_member"
/dev/sdi1: UUID="5b483ac2-5b7f-4951-84b2-08adc602f705" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="data" PARTUUID="e0515517-9fbb-4d8a-88ad-674622f20e00"
/dev/sdg1: UUID="3d1afb64-8785-74e6-f9be-b68600eebdd5" UUID_SUB="c146cd05-8ee8-5804-b921-6d87cdd4a092" LABEL="avs:2" TYPE="linux_raid_member" PARTLABEL="lvm" PARTUUID="2f25ec17-83c4-4c0b-8653-600283d58109"
/dev/sde1: UUID="34c6a19f-98ea-0188-bb3f-a5f5c3be238d" UUID_SUB="8aabfe5b-af16-6e07-17c2-3f3ceb1514e3" LABEL="avs:3" TYPE="linux_raid_member" PARTLABEL="primary" PARTUUID="2fc4e9ad-be4b-48aa-8115-f32472e61005"
/dev/sdc1: UUID="ac438ac6-344a-656b-387f-017036b0fafa" UUID_SUB="c188f680-01a8-d5b2-f8bc-9f1cc1fc3598" LABEL="avs:1" TYPE="linux_raid_member" PARTUUID="29e7cfce-9e7b-4067-a0ca-453b39e0bd3d"
/dev/nvme1n1p2: UUID="fc939be4-5292-4252-8120-7ef59b177e5b" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="912e805d-fe68-48f8-b845-9bba0e3e8c78"
/dev/nvme1n1p3: UUID="512d611e-6944-4a57-9748-ea68e9ec3fad" TYPE="swap" PARTLABEL="swap" PARTUUID="04ac46ff-74f3-499a-814d-32082f6596d2"
/dev/nvme1n1p1: UUID="5187-A8C6" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="fe91a6b2-9cd3-46af-813a-b053a181af52"
/dev/sda1: UUID="3d1afb64-8785-74e6-f9be-b68600eebdd5" UUID_SUB="87fe80a1-4a79-67f3-273e-949e577dd5ee" LABEL="avs:2" TYPE="linux_raid_member" PARTUUID="c8dce45e-5134-4957-aee9-769fa9d11d1f"
/dev/md3: UUID="XEJI0m-PEmZ-VFiI-o4h0-bnQc-Y3Be-3QHB9n" TYPE="LVM2_member"
/dev/md1: UUID="usz0sA-yO01-tlPL-12j2-2C5r-Ukhc-9RLCaX" TYPE="LVM2_member"
/dev/mapper/airvideovg2-airvideo: UUID="9e78425c-c1f3-4285-9fa1-96cac9114c55" BLOCK_SIZE="4096" TYPE="ext4"
/dev/sdh1: UUID="60024298-9915-3ad8-ae6c-ed7adc98ee62" UUID_SUB="a1291844-6587-78b0-fcd1-65bc367068e5" LABEL="avs:4" TYPE="linux_raid_member" PARTLABEL="primary" PARTUUID="ed0274b9-21dc-49bf-bdda-566b2727ddc2"

Step 4B (Potentially): If the system boots in the “grub>” prompt, then we will have persuade grub to manually boot by providing the following at the prompt:

grub> set root=(hd9,gpt2)
grub> linux /boot/vmlinuz root=/dev/nvme1n1p2
grub> initrd /boot/initrd.img
grub> boot

To find the root value on the first line, you have use the ls command which is explained in this article. The root parameter on the linux line references the partition which the root directory is mounted. In my case, it was /dev/nvme1n1p2.

After I rebooted, I reinstalled GRUB with the following as super user:

grub-install /dev/nvme1n1

It may also be required to update our initramfs using:

update-initramfs -c -k all

Step 5: At this point the system should reboot and all of the old server’s content should now be on the old hardware. Unfortunately we will need to fix the network interface.

First obtain the MAC address of the network interface using:

% sudo lshw -C network | grep serial   
    serial: 04:42:1a:05:d3:c4

And then we will have to edit the /etc/netplan/00-installer-config.yaml file.

% cat /etc/netplan/00-installer-config.yaml 
# This is the network config written by 'subiquity'
      dhcp4: true
        macaddress: 04:42:1a:05:d3:c4
      set-name: enp6s0
  version: 2

Ensuring the MAC address matches from lshw and that the name is the same as the old system. The name in this example is enp6s0. We then need to execute the following commands to generate the interface.

netplan generate
netplan apply

We need to ensure the name matches because many services on the server have configurations that references the interface name, such as:

  • Configurations in /var/network/interfaces
  • Samba (SMB) (/etc/samba/smb.conf)
  • Pihole (/etc/pihole/setupVars.conf)
  • Homebridge (/var/lib/homebridge/config.json)

Step 6: Fix the router provisioning DHCP IP addresses so that the new server has the same fixed IP address as the old server. This is important because there may be firewall rules referencing this IP address directly. The hostname should have been automatically restored when we restored the partition in Step 3.

Step 7: Our final step is to test the various services and ensure they are working properly. These include:

  • Mail
  • Our web site
  • Homebridge
  • Plex
  • Pihole (DNS server)
  • SMB (File sharing)

Finally the new system is completed!

New system all up and running!

Media Server Upgrade 2022

On May 15th, 2019 (more than three years ago), I performed a performance boost to my media server by upgrading its CPU, Motherboard, and Memory. You can read that experience in this post.

Today, I am going to be doing the same. It looks like we are on a cadence of every 3 years or so to do a spec bump. This time around we are also changing the same items, but will include the power supply as well in the swap. I also decided to swap the boot drive hardware from an old SSD drive to an NVME drive. All of this resulted in the following hardware acquisitions, all from Amazon, which I find them to have lower pricing (when factoring free shipping through Prime), than Newegg even during Black Friday and Cyber Monday offers.

  • AMD Ryzen 7 5700G 8-Core, 16-Thread Unlocked Desktop Processor with Radeon Graphics
  • ASUS TUF GAMING B550-PLUS AMD AM4 (3rd Gen Ryzen™)
  • G.SKILL Ripjaws V Series DDR4 3600MHz 32GB(16GBx2) Memory Kit
  • ASUS ROG Strix 850W Gold PSU
  • Samsung 980 PRO SSD 1TB – M.2 NVMe

The above totalled $1045.60 CAD.

The plan is to spend the time today to roughly test out all the new hardware.

Test Setup

I quickly did a skeleton setup to make sure Ubuntu 22.04.01 Server Edition works with all hardware involved, especially the networking.

Memory Test

Once I know Ubuntu server is working good, I am now testing the server’s new 32GB DDR4 memory. This is running as I write this post and will let it run overnight.

The plan for tomorrow is to upgrade the current media server from Ubuntu 20.04.5 LTS to Ubuntu 22.04.1 LTS. Once this is done, I can then backup everything, and move the new hardware into the old casing and hope everything works.

Length of Days Throughout the Year

Winter has arrived, and our solar production is seeing a sizeable drop in production. Although the month of November is still incomplete, here is our current solar production history so far:

Historical monthly solar production

We were operating at 50% utilization when on of our SolarEdge inverters went down in June, and as pointed out earlier, November is only about 75% completed as of the time of the writing of this post.

Even with the above discrepancies in mind, we can see a gradual reduction in generation from the summer months. From a peak of over 2500 kWh in July to just around 1230 kWh in the month of October. That is half of our peak from July. Based on the November trend, we will have even less.

These reductions got me curious to the length of day variation through the year, and I found this handy chart:

Number of hours when the sun is out throughout the year

The above chart is customized by our home location of course. From trough to peak, there is a difference of about a 6.5 hours! I must say, I knew there is a difference between the longest and shortest days, but seeing number was a bit of a shock. These short days are made worst by lowest sun elevation on our Southern horizon during the winter months.

It will be interesting to see how much power we end up generating during December which will be our lowest generating month, per the above chart.

Solar with Snow

The past few days we have met our first signs of Canadian winter. Although winter has not officially arrived, we have received at least a couple of snow dustings that resulted in enough accumulation on the roof to cover the solar panels.

I wanted to record our observation with this “new” experience in terms of the impact to power generation. Below is a chart on solar power generation in the past few days with different weather conditions during the shorter days of our Canadian autumn.

Solar power generation from Nov. 07 to 18 with different weather

Our highest recorded power per day is around ~110 kWh during a nice sunny, long, summer day in June. We are now facing shorter days with the panels active from around 8am to a little after 3pm, as the chart below shows.

Solar generation through out the day during Nov. 17 (partially cloudy)

Below you will see what my roof looks like today on November the 18th. Click the video below to see the entire roof.

Partially covered roof on a cloudy November 18th (click to play)

You can see that we have some panels that are fully exposed, and some that are partially covered. The solar optimizers are optimizing away during these times, and when the sun comes out, we can still sometimes generate above 3500W of instantaneous solar power.

During these dark and short days, we are now definitely eating into our stored electrical credits from Alectra Utilities.

XWPro Configurations

This is going to be a fairly technical post on the topic of my Conext XWPro battery inverter configurations. I am writing this post primarily to document my experience and my current rationale, and for my future, forgetful self.

Previously I had my Grid Support SOC (State of Charge) and the Recharge SOC set to 40%. With these settings, the battery will be used (anytime during the day and night) until it discharged to 40%, which will initiate a charge cycle that will charge the battery back to 100%. Under normal circumstances, the battery will typically discharge during a very cloudy day, but mostly in the evenings and at night.

I had the above settings because I stupidly thought I should stay off the grid as much as possible. The intent is to try to charge the batteries in the evening during off peak hours, and not to use the grid at all during on peak hours. These settings certainly accomplish this, but at the expense of shortening battery life. Another big downside with this approach is that charging the battery through the Conext XWPro inverters only achieves around 83% efficiency. This observation is based on my real-time data observations from the actual inverters.

Yesterday I noticed that my batteries are reporting a State of Health (SOH) drop to 99% instead of 100%. This was a bit alarming given only 6 months of uses. I also realized from the Alectra invoices that Time of Use (ToU) is not a factor in Alectra’s billing calculations. All of this resulted in a shift in my thinking. We will now use the grid as our primary battery, and preserve our Lithium Ion as our backup batteries only. Time shifting of loads will no longer be my primary concern since it is no longer worth it with zero benefits.

To do this, I have set the Grid Support SOC to 90% and the Recharge SOC set to 85%. This way immediately after a charge cycle, the battery will be used a little bit to draw down from 100% to 90%. This has two benefits in my opinion. The first is to get some charge flow through the batteries, so it is not only sitting there. The second is that it leaves a 10% SOC gap. If we have a power failure during a sunny day, there is space for the excess solar production to go without tripping the solar inverters.

The 5% gap between Grid Support and Recharge is currently a guess. My thinking is that over time the charge on the Lithium batteries will leak and it will trigger a recharge cycle. Of course I did not want to set the Recharge the same as the Grid Support, because this will cause a constant recharge loop which defeats the purpose of preserving battery life. I do not know how long it will take to naturally draw down from 90% to 85%. This is why it is still a guess at this point. If there is no leakage, which is great news because it shows how good the batteries are, then I will have to trigger a recharge cycle at least once a month just to keep the charge flow within the battery’s chemistry.

For now I will live with the new settings and see how often the battery cycles. If it only cycles once every one or two months, then that is perfect. If it does not cycle through more than three months, then I may have to add the monthly charging cycle logic into my custom controller.

Electricity Bills & Natural Gas Rates

Since our solar installation, and our live commissioning of our net metering with Alectra Utilities, our last payment to Alectra was in May, 2022. Since then, we have not paid a dime to Alectra, but instead we are sitting on a nice credit as the attached snapshot of our bill showed:

October Alectra Bill

As the above bill indicates, we created 372 kWh during the 30 days of this last bill that we received. I was also surprised by the fact that during the summer months, we were still able to generate excess while running our AC without compromising our comfort requirements. The extended summer days and the higher angle of sun’s elevation were very conducive to solar production.

I also noticed our natural gas prices increased by 110% from the same time last year. Below is directly from the Ontario Energy Board (OEB):

Gas Prices

Our goal now is to try to switch our heating source from natural gas to electric, so that we can use our excess electricity for this winter’s heating needs. This makes total sense, since our electricity is almost free, while natural gas is not!

There are reports out there saying the rate increase is significantly less. This is because they are comparing against the July, 2022 rates and not the October, 2021 rates, so read carefully.

I went on Amazon and purchased three of these electric based heaters.

De’Longhi Slim Style HCX9115ECA Convector Panel Heater

At time of purchase, they were $219 CAD each. We tried the cheaper ones, but their fans were simply too loud. These ones are nice and quiet with a very user friendly interface.

The master plan is to set the house thermostat to 18ºC, so that it acts as a backup heating source. While these electric panels will try to heat the house during most of the winter days. We will see how this plan goes. I would consider this to be a win if we can reduce our natural gas consumption this winter by more than 50%, which will effectively normalize the rate increase. In the end, these electric heaters may not be enough. Time will tell.

I also investigated the possibility of installing a centralized heat pump, but current technology is limited to -20ºC outside temperature. I decided to table this for now until the technology matures a bit more. I want a solution that can transfer heat from -30ºC outside to indoors.

Our next plan is to research our water heating needs and to see if there are any electric based tankless solutions out there.

Wish us luck and I’ll keep everyone updated!

Update: November 14, 2022

Previously I got the rates from the Enbridge web site. Below is an actual excerpt from my Enbridge bills. However you compare, the increase is significant.

April vs July Gas Rates in 2022 from my invoices

Update: November 26, 2022

Found this CTV article.

Reflecting on our Mauritius Trip

We just returned from Mauritius in the afternoon of October 24th. We left Mauritius on an Air Mauritius flight at around 11pm at night on October 23rd, and arrive the next day at around 4pm in Toronto, with a 6 hours layover in Paris. If you do the math, we have a total of 25 hours from the first takeoff to the final landing, and 19 hours of actual flight time when the layover time is accounted for. If you count, the transit and waiting to and from the airport, which is another 5 hours in Mauritius, and 1½ hours in Toronto, that is a total of 31½ hours door to door time from our vacation condo in Mauritius to the front door of our home in Richmond Hill. Whew!

The arduous travel itinerary aside, we had a wonderful stay in Mauritius. We stayed at the Residence Abrico near Mon Choisy beach. The owner was wonderful and the place was just right for the four of us. For 33 nights, and the privilege of both early check-in and late check-out, we paid less than $2200 CAD. You can read my review here. I also rented a car from Azam Joomun, who resided in Grand Bay. My cousin Nathalie arranged an excellent price for the car. The car is a Suzuki compact car with automatic transmission, perfect size for the cramped lanes in Mauritius. For the entire month of our stay, we paid less than $600 CAD. The combination of a wonderful condo with free parking, and a rental car resulted in absolute freedom to explore the island and command our own schedule during our stay.

It took about a week to fully acclimate myself to driving on the opposite side of the road and on the opposite side of the car. That particular change is difficult enough, but why the car manufacturer had to also switch the windshield wiper and turn signalling levers as well? I totally do not understand that design decision. As a result, I constantly turn on the wipers when I really just wanted to signal my turn.

Nonetheless possessing a car allowed us to drive to neighbouring malls like La Croisette and Super U Grand Bay, to purchase convenient groceries, toiletry supplies, etc. If we are lazy, then there are plenty of restaurants in Grand Bay near the coast for us to sample. We also discovered Chez Popo Supermarket, that has a more international selection at its store. If we really, really miss the super malls of the West, then we can drive to Bagatelle Shopping Mall South of Port Louis.

With the car, we can visit family who resided in Port Louis, as well as other regions such as Rose Hill, Pereybere, and Balaclava. Aside from the beaches, reacquainting with family members and catching up is the other highlight of the trip. Speaking of family, we also took the opportunity to pay respect to my grandparents and other memorable family figures at the Bois Marchand Cemetery. Let’s face it. If it was not for family, going to the Caribbean can probably have similar access to paradise like beaches and comfort.

Of course the other reason for being in Mauritius is to ensure that we get our fill of Mauritian street food, such as Roti and Dhal Puri. These pancake like delights are pasted with the usual curry or tomato based fillings. The baguette sandwiches that we got from street stall on BourBon St North of Royal Rd were also very delicious. This place is literally downstairs from our family grand central nexus in Port Louis at La Rue Royal, which makes it super convenient for breakfast, brunch, and lunch!

On our second day, our Uncle Claude and family invited us to eat at Restaurant Lai Min, a restaurant with literally decades of history in Chinatown of the Mauritian capital city, Port Louis. That meal was exquisite! I don’t know whether I was hungry or not, but everything from the soup, the deep fried calamari, the Hakka dishes, and the chicken were all very savoury and I devoured them all to my happy and fulfilling belly. Throughout our stay, we frequented Lai Min and the food there has never disappointed.

On a similar note, The City Orient Restaurant, near our family’s place in Port Louis was also delicious. The stir fry dishes, and winter melon soup were all very memorable to my palate. Thank you Uncle Regis, and Auntie Dominique for treating us there. The dumplings, fried noodles and vermicelli at the Restaurant Panda were extremely moreish. A big thank you to Auntie Mary and Josiane of showing and treating us to Panda.

Our cousin Jimmy treated us to local Creole food at Friends Cafe-Restaurant. This provided a unique experience. It is not Chinese and not Western food. A different mixture of spices and a combination and interpretation of different cooking techniques from different culture. That night was a tasty experience.

The restaurant food is one thing, but family cooked meals like the dishes provided by Auntie Maryse, Ah Manfa, and Ah Moy, were all very good. Personally I think their personal touch made their food better than the restaurants.

Mauritian cuisine is good, but in the end, one earns the variety and quality that Toronto culinary reputations have to offer. However, one can never get tired of the fresh baguettes in Mauritius. We found a local bakery that we can walk to during the morning. It is located just South of the pharmacy on Trou Aux Biches Rd. At the bakery, we can have a long fresh baguette for just 5 Rs! That is equivalent to a little over $0.15 CAD. I’ve been told that the flour is subsidized that is why it is so cheap.

Me holding onto the 5 Rs baguette (the paper bag cost 3 Rs!)

Having our family largely centred in the city of Port Louis, I have to drive and park there. The experience of driving in Port Louis during morning and afternoon rush hours is not for the faint of heart. One has stay calm and possess nerves of steel to get to where you want to go. If you drive with hesitancy, you will get no where fast. Parking is another matter. During my stay, I either park at my relatives who reside outside of the commercial district of the city, and then simply do a 20 minute walk to city centre, or I give up and park at Dias Pier Parking at Caudan. The latter costs money, but it is so much more stress free, and relative to Canadian parking rates it is cheaper beyond any comparison. If I park at Caudan during the weekdays, then I usually move the car back to our family building at La Rue Royal at around 5:30pm to 6pm. If it was the weekend, then Saturday after 2pm or anytime Sunday I can usually find parking near La Rue Royal.

Our rental condo is already pretty satisfying with a semi-private pool steps away, and a pretty quiet, beautiful beach minutes walk away. We still have to plan our meals, do laundry, and wash our dishes. For a real relaxing experience, we decided to stay a couple of nights at Constance Prince Maurice. You can read my review here. I can summarize by saying that it was heavenly.

We also took a sojourn of 4 days to the Rodrigues island, which is also part of Mauritius, staying at the Cotton Bay Resort. The beaches and scenery there was beautiful, and we love to sleep with the natural sound of the waves, and the nighttime stars were glistening and calming. The locals on the island were friendly, and the hotel services were indicative of the island’s gentle and calm culture.

Our trip ended with a big climax with our Uncle Claude’s 85th birthday celebration, which was held at the Opium Restaurant. It was a unique location. The restaurant is actually situated above an Audi car dealership. The decor was the most beautiful Chinese restaurant that we have experienced on the island. The food was prepared by a chef from Hong Kong. The family and food combination created a celebratory atmosphere that is difficult to forget. We thoroughly enjoyed ourselves.

I started out this post with a notion that Mauritius is not an easy place to get to, at least from the Eastern part of Canada. Having said that, the generosity and welcoming nature of our family makes the visit memorable. Although when we left on the 23rd of October, there is a mixed feeling of the desire to return home, and the sadness of not seeing some family members for sometime.

One thing is certain, we left happy. Although the company of family may have been cut short, the memories that we created here on this visit will be ever lasting. I want to thank all my Mauritian family members who helped to make our stay as memorable as it is. To ensure of this, my next task is ahead of me is the video editing of all the footages marking those happy memories!

Constance Prince Maurice

We decided to spice up our stay in Mauritius with a two night stay at the Constance Prince Maurice, one of the 5 star luxury hotels on the island, located on the East shores.

The drive from our apartment at Mon Choisy to the hotel was longer than expected, as we twist and turn to follow the many curvy roads of the Mauritian country side, bridging from the West to the East of the island, passing many sweet, but pungent smelling sugar cane fields.

The final stretch was lined with palm trees on both sides, which ended with a double, metal front gates, welcomed by staff members who have your reservations at hand. After providing our names, we were promptly let through and we drove directly to the reception area. Our luggages were handled and our car was parked for us. All we needed to do was to take our passports and were guided to the magnificent, welcome lobby, and a spectacular view of the elegantly placed, central swimming pools that blends with the natural, and beautiful beaches of Mauritius. The afternoon skies just had enough cotton clouds to contrast against the comforting blue skies. Our eyes were filled with the near perspective of man made wonder and far horizon of natural paradise that only Mauritius can offer. The welcoming experience culminates into a single word in our minds, and that is “relax”.

Colorful and flowery pool at the reception

Youdish and Shaan, the manager, who handled our check in were very gracious and welcoming. Youdish had a sense of humour about him that I find it at home and was certainly easy to open up to, he was the perfect ice breaker. Shaan informed us that we were upgraded to a honeymoon suite, a junior suite on stilts, overlooking a lagoon connected to the white sand beach. Upon entering the suite, our eyes were graced with a magnificent view. I will not even attempt to use words to describe here, but check out our media below.

Play the above video to see the scenery to our suite.
Our suite consists of a balcony overlooking this beautiful view. (click to enlarge)
Another perspective of our balcony view.
A quick tour of our suite. (play the video)

We started out our stay with a light lunch at the beach at the main restaurant, which we planned to visit again for dinner, since we were unsuccessful in attaining a reservation at the Asian restaurant. However on the same evening, I received a surprising call from Akshada, a wonderful magical worker who made it possible for us to attend the Asian restaurant that same night. We were really appreciative of this gesture. Thank you Akshada for pulling a rabbit out of your hat!

Our first lunch by the beach (click to enlarge)

The Asian dining was very pleasant. The most enjoyable was my after dinner chat with our waitress, Anousha, who was extremely friendly. I feel that all the staff members were genuinely friendly, and not the facade that most other hotel staff put up during their working hours. I hope my five plus decades of life experience can tell the two apart!

At the Asian restaurant (click to enlarge)

Sticking with dining experiences, the breakfasts at the main restaurant were pleasant and accompanied by the ever present, heavenly view of the sea side. The neighbouring birds all seem friendly enough to dine with us adding to our angelic culinary experience.

Another special restaurant is one that consists of several floating platforms on the lagoon. Each platform consists of around four to five tables. We had our last dinner there, where I had the scrumptious and mouth watering Sous Vide veal on the rib. That was the best piece of meat that I have tasted in recent memories. There are fishes of different sorts swimming around the platform, and a light rain that evening, added nuance during dining.

Walk way to the floating restaurant.
The floating restaurant

My wife is a frequent swimmer, who took advantage of the lap pool every morning while I sleep in. I would usually walk along the beach but I’m still recovering from an earlier heat stroke so understandably I was a bit allergic to the sun, BUT not the SPA. We both took advantage of the SPA services, taking on a Deep Tissue and a Balinese massage spanning across two days. The masseuse that I had — she was phenomenal — probably the best masseuse that I have ever had, and I have been getting massages for many decades. Once again I have to apologize for not remembering her name. Something about Mauritian multi-syllable names always throw me out.

Can you tell how relax I am at the SPA?

On our last night, another wonderful conversation with Atish, our housekeeping supervisor, whose department arranged a wonderful flower petals covered bath which my wife thoroughly enjoyed. Happy wife, happy life!

A rosey bubble bath

As I am writing this in the last few hours of our stay, I just wanted to thank every staff member at Constance Prince Maurice for a truly wonderful, and relaxing experience that was sorely needed from the hustling and bustling of noise infested traffic of Port Louis.

Last and certainly not least, our many thanks to Jean-Philippe who facilitated to help bringing this heavenly, paradise experience to us. We also appreciated the early and late check-in and check-out respectively, allowing to savour our relaxation as long as we can, before rejoining the crowd in the whistling winds.

If the fruits of life are happy memories, then the Constance Prince Maurice is certainly an orchard ripe of such fruits! We look forward to more harvesting at our next Constance experience.

Until next time, goodbye!

Mobile Phone in Mauritius

In an earlier post, I mentioned that we purchased the my.t tourist package. In this article, I will explain how to configure the iPhone when using the Dual SIM feature.

Fig. 1: All Configurations are in Cellular

In Canada I have the Koodo mobile service, and when I arrived in Mauritius I purchased the my.t tourist package. This package can be provisioned with an eSim. An eSim is an electronic SIM card. This is a digital, virtual SIM card residing in the secure memory of the phone instead of a physical SIM card. Any iPhone above an iPhone Xs has the ability to add one or more eSIM card. My Koodo service has an existing physical SIM card already within my iPhone. Both the eSIM card and the existing physical Koodo SIM card can coexist on the iPhone. In other words, the iPhone can access both networks at the same time. This is essentially the Dual SIM feature.

Fig. 2: Adding an eSIM

To add the eSIM, simply goto Cellular Settings and select Add eSIM. You will need to scan the QR code which is provided by the my.t provider. This is important. Remember that you must have WiFi service before you scan the QR code. We did this at the airport using the telecom kiosk WiFi. You can have eight or more eSIM installed but only two phone numbers active at the same time, so this is quite a handy feature if you frequently travel to many destinations.

Once the eSIM is activated, you should have my.t service in Mauritius. By default the iPhone labeled my existing Koodo service as Primary and my my.t service as Personal. I renamed the Personal to Travel as depicted in Fig. 2. I also make sure that Cellular Data and Default Voice Line is using the Travel (my.t) service.

Fig. 3: Ensure Data Roaming is OFF

The other thing that I did was to ensure that Data Roaming is off. See Fig. 3. You can do this by tapping into the details of the SIM service. In my case, I tapped on “Travel”.

I also went online to Koodo self-service and activated Easy Roam® International. At this point, you are probably wondering why are you roaming with Koodo when you already have a local Mauritian eSIM? The answer is that I am simply enabling Koodo roaming services but will actually not be using it. The Koodo roaming needs to be enabled so that my existing Koodo phone number is “reachable” by voice and SMS from Canada and elsewhere.

Fig. 4: My Primary Service Configuration

To ensure that I do not roam on the Koodo network, I then have to make sure that Data Roaming for my Primary service is also turned off, as depicted in Fig. 4. Notice that the “Network Selection” is EMTEL-MRU instead of Koodo, because Koodo is roaming under EMTEL.

So now while I’m in Mauritius when I use data and voice, by default it will use the my.t local Mauritian service. However, I am also reachable from Canada with my existing Koodo number. Koodo roaming is only activated if I accept an inbound call from Canada or other international countries other than Mauritius. Not to worry, receiving international SMS messages is free. This is especially handy for two factor authentications, like logging into a bank. You can even customize which service each contact should use, but I won’t go into that here.

Any apps that uses your primary number, like WhatsApp and WeChat will still be okay, because that number is still active, but those apps will use the local data service. You do not need to change your number that is associated with WhatsApp and WeChat.

If all goes well, your iPhone should report dual services.

Fig. 5: This is what your iPhone

Finally I turned on automatic Data Switching, so when I go back home to Canada, Koodo data will be used again.

Fig. 6: Turn on data switching

Hopefully you will find this useful.

To Mauritius!

September 19 6:55pm (Toronto):

Today we are heading off to Mauritius, taking an Air France flight this evening. I’m going to try to live blog our travel experience here. It has been several years since our last flight, so it will be interesting to see how much have changed and what remains the same.

We arrived at the airport about 4 hours prior to our flight. The check-in counter for Air France / KLM in Terminal 3 opened about 3.5 hours before the flight. This was perfect timing. We had our bags checked and passed security in about 45 minutes since arriving at the airport.

The terminal is super busy. Glad that masks are mandatory here. We situated ourselves in front of Smoke’s Burritorie to kill about 2 hours or so.

September 20 3:33am (In Air):

Just finished breakfast and we are close to Paris now. Ended up paying for Wifi on the flight costing about $45 for the entire flight. Caught up on the House of Dragons and did some surfing.

Flight Information

September 20 11:31am (CDG Paris):

Even though we are connecting and going through the same terminal (2E), we still had to go through security. The security at CDG airport is more strict. Anything that is electronics had to be taken out. This is quite different than in Toronto. A couple of us were caught and had to get our bags separately inspected. Now we are going to the gate for our connecting flight to Mauritius.

Our layover is approximately 5 hours long. We spent the time snacking and napping. I was partially amazed that our Apple Pay continues to work flawlessly with my Apple Watch at the airport. However, not all electrical outlets had power. This is a bit of a mystery. My theory is that power consumption that is impacting the entire EU, and perhaps this is an energy conservation policy that is being enacted. Just 30 minutes before our boarding, we finally discovered an active outlet. We quickly charged our Apple Watches that were all on their last legs.

September 20 3:30pm (CDG Paris – Gate M45 – Boarding):

During the boarding process, half of us had no issues with our electronic boarding passes and their corresponding QR codes worked flawlessly. The other half were sidelined to get our passport rechecked. I am not sure if this is a random selection process, or something went wrong with the QR code validation.

September 21 5:50am (Mauritius Airport):

There was no issues with immigration, since we had our health information form all previously filled out. We got to baggage claim quite quickly.

Mobile shop at airport

I previously signed up for the my.t tourist package. My expectation was that once we landed we can just scan the eSim with the QR codes provisioned after my registration. Unfortunately, this did not go as plan. Our cell activations with the provided QR code continuously fail to activate. While other waited for our checked baggages at the baggage claim area, I went out first to the telecom kiosk to see if we can resolve the activation issue.

I was told by the representative, that a face-to-face check-in is required at the kiosk so that a passport authentication can be performed prior to the activation of the eSim. All of this makes sense, I just wished they told us this when they provided the QR code!

The good news is that everything got sorted out and we all had our dual eSim ready to go online and make calls.

September 21 7:15am (Mauritius Airport – Parking Lot):

Our vacation home

We found our driver and started our journey to our vacation home. This took much longer than I thought. The traffic in Mauritius was horrendous! Someone needs to tell urban planning that roundabouts and motorways do not mix. The concept of on and off ramps are the way to go.

September 21 9:00am (Mauritius – Trou aux Biches):

Finally reached our home away from home. The host was very gracious and nice, and the hand over was without a hitch.