<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-AU" xmlns:media="http://search.yahoo.com/mrss/">
  <id>https://david.gardiner.net.au/feed.xml</id>
  <title type="html">David Gardiner</title>
  <updated>2026-08-30T14:04:18.629Z</updated>
  <subtitle>A blog of software development, .NET and other interesting things</subtitle>
  <rights>Copyright 2026 David Gardiner</rights>
  <icon>https://www.gravatar.com/avatar/37edf2567185071646d62ba28b868fab?s=64</icon>
  <logo>https://www.gravatar.com/avatar/37edf2567185071646d62ba28b868fab?s=256</logo>
  <generator uri="https://github.com/flcdrg/astrojs-atom" version="3">astrojs-atom</generator>
  <author>
    <name>David Gardiner</name>
  </author>
  <link href="https://david.gardiner.net.au/feed.xml" rel="self" type="application/atom+xml"/>
  <link href="https://david.gardiner.net.au/" rel="alternate" type="text/html" hreflang="en-AU"/>
  <category term=".NET"/>
  <category term="Software Development"/>
  <category term="Azure"/>
  <category term="DevOps"/>
  <entry>
    <id>https://david.gardiner.net.au/2026/08/evnex</id>
    <updated>2026-08-30T23:00:00.000+09:30</updated>
    <title>Evnex E2 Plus EV Charger</title>
    <link href="https://david.gardiner.net.au/2026/08/evnex" rel="alternate" type="text/html" title="Evnex E2 Plus EV Charger"/>
    <category term="Energy"/>
    <category term="Home Assistant"/>
    <published>2026-08-30T23:00:00.000+09:30</published>
    <summary type="html">An overview of the Evnex E2 Plus Charger, using the Evnex mobile app to manage charging, and Home Assistant integration.</summary>
    <content type="html">&lt;p&gt;As part of the discussions with Adam from &lt;a href=&quot;https://www.lammelectrical.com.au/&quot;&gt;LAMM Solar and Electrical&lt;/a&gt;, I mentioned that we were getting an electric vehicle and I was interested in getting a home charger for faster charging. After clarifying that I wanted nothing to do with a certain T*sla brand, they recommended taking a look at an &lt;a href=&quot;https://www.evnex.com/au/chargers/compare&quot;&gt;Evnex charger&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We only have single-phase power in our house (and no immediate plans to change that), so that narrowed it down to one of their E2 range that can provide up to 7.4 kilowatts:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Connectivity&lt;/th&gt;
&lt;th&gt;Solar&lt;/th&gt;
&lt;th&gt;Cable&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;E2 Flex&lt;/td&gt;
&lt;td&gt;WiFi&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;5m&lt;/td&gt;
&lt;td&gt;$AU799&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;E2 Core&lt;/td&gt;
&lt;td&gt;WiFi&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;5m&lt;/td&gt;
&lt;td&gt;$AU1,099&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;E2 Plus&lt;/td&gt;
&lt;td&gt;WiFi+4G&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;8m&lt;/td&gt;
&lt;td&gt;$AU1,399&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The Flex is the base model. It doesn&apos;t have the &apos;Solar smart&apos; feature that allows you to &quot;schedule your charging to use only your excess solar power without drawing from the grid, giving you free kilometres from sunshine&quot;.&lt;/p&gt;
&lt;p&gt;The Core sounded like it was the one, but I took note of Adam&apos;s advice to always get a longer cable than you think you&apos;ll need, as you wont regret it. Some chargers let you plug in your own cable, whereas unfortunately the Evnex ones don&apos;t. That pushed me to the &apos;Plus&apos; as rather than 5m it comes with an 8m cable. It also supports a client/server model which I understand would be useful if we wanted to get a second charger installed and they could be managed together.&lt;/p&gt;
&lt;p&gt;I was also interested to see what kind of ongoing support they had - I found there&apos;s an active &lt;a href=&quot;https://community.evnex.com/&quot;&gt;support forum&lt;/a&gt; with prompt responses to queries, so that was also encouraging. They&apos;re designed and manufactured in New Zealand. If I can&apos;t by Australian then New Zealand is the next best thing!&lt;/p&gt;
&lt;p&gt;And so that&apos;s what we got. We ordered directly from Evnex and it arrived a couple of weeks later, just in time for LAMM to install when they refreshed our solar panels (there was a small reduction in costs for doing both together).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/evnex-wall-mounted.QJNPkC16_Z2buJVq.webp&quot; alt=&quot;Evnex charger mounted on brick wall&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Oh and Adam was spot on with the longer cable. 8 metres was enough that I could run the cable along the ceiling of our carport over to near the charging port on our car. Keeping it off the ground and avoiding a tripping hazard. 5m would have been too short to do that.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/evnex-charging-kia.C-L61qLV_1vDuxT.webp&quot; alt=&quot;Evnex charging cable plugged into Kia EV5&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Mobile app&lt;/h2&gt;
&lt;p&gt;Evnex provide a mobile app that you can view and manage your charger.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/evnex-app-home-charging.DDeQn4FT_ZCpnAj.webp&quot; alt=&quot;Screenshot of Evnex app home screen&quot; /&gt;&lt;/p&gt;
&lt;p&gt;For comparison, here&apos;s the Kia app at the same time:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/kia-app-charging-in-progress.5wgxNfFI_Z1xBnwU.webp&quot; alt=&quot;Screenshot of Kia app with charging in progress&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In the Evnex app you can view the details of the current charging session (and past ones too)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/evnex-app-charging.CqWi1Y0N_70HLM.webp&quot; alt=&quot;Screenshot of Evnex app current charging session details&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Like the solar inverter, the Evnex also uses a CT clamp to monitor actual electricity usage in your house. I&apos;d say &apos;current usage&apos; but that could be confusing🙂&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/evnex-app-live-load.B_yjyr2k_Z9X8Wh.webp&quot; alt=&quot;Screenshot of Evnex app Live Load screen&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You might just want to be able to charge any time, but for me I wanted to limit charging to when our electricity plan is cheapest. It is true that the Kia app provides simple scheduling for when to accept charging:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/kia-app-scheduled-charging.Cdfw0mS4_Z2nFvoN.webp&quot; alt=&quot;Screenshot of Kia app scheduled charging page&quot; /&gt;&lt;/p&gt;
&lt;p&gt;But the Evnex app has much more advanced controls:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/evnex-app-charge-settings.DioeqroV_ZFXWel.webp&quot; alt=&quot;Screenshot of Evnex app charge settings&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The app has an advanced schedule setting, where you can configure when you want to allow charging and the costs that it would incur (from your electricity plan).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/evnex-app-schedule.DXYNpP0-_Z2gXS6q.webp&quot; alt=&quot;Screenshot of Evnex app edit schedule&quot; /&gt;&lt;/p&gt;
&lt;p&gt;My current electricity plan has free power from 11am-2pm, so that&apos;s the main time I allow the car to charge. But on occasion I may want to allow charging overnight (when it isn&apos;t free but the cost is low) so I&apos;ve created 1 hour intervals that I can selectively enable if needed.&lt;/p&gt;
&lt;p&gt;You can add in different prices.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/evnex-app-price-settings.gb2azmHc_ZGRhCR.webp&quot; alt=&quot;Screenshot of Evnex app price settings&quot; /&gt;&lt;/p&gt;
&lt;p&gt;And for each time period you can assign one of three behaviours:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/evnex-app-behaviour-settings.BbDsl2cd_ZynQ4e.webp&quot; alt=&quot;Screenshot of Evnex app behaviour settings&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If we had a larger solar installation, then the Solar Smart feature could be useful too, to manage how much of your solar-generated electricity to allocate to EV charging.&lt;/p&gt;
&lt;p&gt;Charging done (set to stop at 90%):&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/kia-app-charging-complete.CBLiZ5lC_1O8RHN.webp&quot; alt=&quot;Screenshot of Kia app showing charging complete&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Home Assistant&lt;/h2&gt;
&lt;p&gt;Yes, there&apos;s a really good Home Assistant integration for the Evnex chargers. It provides two devices:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-evnex-device.COnIzvzU_15XbhP.webp&quot; alt=&quot;Screenshot of Home Assistant Evnex integration two devices&quot; /&gt;&lt;/p&gt;
&lt;p&gt;There&apos;s a number of controls and a bunch of sensors&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-evnex-controls.DdznzjC1_Z1nEvs3.webp&quot; alt=&quot;Screenshot of Home Assistant Evnex integration&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-evnex-charger-sensors.zftnz-vi_Z1jxsGL.webp&quot; alt=&quot;Screenshot of Home Assistant Evnex integration&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You can use these to track usage and generate some nice graphs. I can imagine you could get quite clever with using Home Assistant provide even finer control over how your car is charged. I could see something like monitoring the weather forecast to predict likely future solar generation to adjust how and when charging is offered. Not something I&apos;m going to do now, but there&apos;s all kinds of possibilities.&lt;/p&gt;
&lt;h2&gt;Money back&lt;/h2&gt;
&lt;p&gt;Narelle discovered that our local council were offering a &lt;a href=&quot;https://www.onkaparingacity.com/Services/Waste-and-recycling/Sustainability-rebates-and-subsidies&quot;&gt;number of sustainability rebates&lt;/a&gt;, including for installing your own EV charger! We just had to supply a before and after photo of the installation and then a week or two later we got $200 back. Nice!&lt;/p&gt;
</content>
    <media:thumbnail url="https://david.gardiner.net.au/_astro/evnex-wall-mounted.QJNPkC16.jpg" width="429" height="571"/>
    <media:content medium="image" url="https://david.gardiner.net.au/_astro/evnex-wall-mounted.QJNPkC16.jpg" width="429" height="571"/>
  </entry>
  <entry>
    <id>https://david.gardiner.net.au/2026/08/new-solar-panels</id>
    <updated>2026-08-27T22:00:00.000+09:30</updated>
    <title>Replacing those panels</title>
    <link href="https://david.gardiner.net.au/2026/08/new-solar-panels" rel="alternate" type="text/html" title="Replacing those panels"/>
    <category term="Energy"/>
    <category term="Home Assistant"/>
    <published>2026-08-27T22:00:00.000+09:30</published>
    <summary type="html">Is it possible to improve the efficiency of our home solar panels without losing our feed-in tariff?</summary>
    <content type="html">&lt;p&gt;So previously I described how &lt;a href=&quot;/2026/08/solar-problems&quot;&gt;our rooftop solar panels had a small failure&lt;/a&gt; that resulted in a reduced generating capacity. Now that we also &lt;a href=&quot;/2026/08/kia-ev5&quot;&gt;have an EV&lt;/a&gt;, I was keen to get them back working as  efficiently as possible. Ideally we&apos;d be generating as much power as possible, not only to use in our house, but also to charge the new car.&lt;/p&gt;
&lt;p&gt;Again, I contacted a few different installers, but ended back with &lt;a href=&quot;https://www.lammelectrical.com.au/&quot;&gt;LAMM Solar and Electrical&lt;/a&gt; again. There were a couple of constraints that they understood and worked with us on:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;We&apos;re still receiving a generous government feed-in tariff for power we send back to the grid (paid in addition to any input rate on our electricity plan)&lt;/li&gt;
&lt;li&gt;We don&apos;t have heaps of money to throw at a huge upgrade.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The first point is important. As I understand it, if you make any significant changes to your system, like increasing capacity or installing a battery, then the government tariff gets cancelled. So if at all possible, I&apos;d prefer to keep that until it runs out in a couple of years.&lt;/p&gt;
&lt;p&gt;Adam from LAMM patiently came up with a few different options to choose from that all kept any changes compliant. As long as the new system didn&apos;t exceed the capacity of the original then the feed-in tariff would continue.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/new-solar.J7HO6D3V_nzfuJ.webp&quot; alt=&quot;New solar panels installed on roof&quot; /&gt;&lt;/p&gt;
&lt;p&gt;One thing I hadn&apos;t considered was that solar panel technology has advanced a lot since our original panels were installed. The old system consisted of 24 x 190W panels.&lt;/p&gt;
&lt;p&gt;The new system is 9 x 500W panels - and as it takes up a lot less roof space, it gives us physical room to expand in the future.&lt;/p&gt;
&lt;p&gt;The alignment of the original panels was in two strings - with a longer one more north-aligned. It was great in Summer, but shaded by trees a lot more in Winter. The second string was at a slightly less north-facing angle, but not impacted by trees, so it could be relied on to keep generating through the whole year.&lt;/p&gt;
&lt;p&gt;The replacement installation kept the second string. The plan was to put all 9 panels in that position, but on the day of installation we realised that they were just a bit too big to fit, so 3 panels were put on a different part of the roof. Those will pick up more afternoon sun and should also do well over Summer.&lt;/p&gt;
&lt;p&gt;One slight annoyance was to discover that the government incentives for installing solar actually meant it was cheaper to put in a brand new inverter, rather than keep the perfectly fine one we had (it was only a few years old, having replaced the original inverter when that became faulty).&lt;/p&gt;
&lt;p&gt;In a similar way, there wasn&apos;t much that could be done with the remaining old panels. If I had a farm shed or something similar I might have been able to repurpose them in some off-grid system, but I don&apos;t have any such thing. Even donating them to someone else would not be worth it, as I was informed that the cost of reinstallation would outweigh any savings compared to just putting in a new system. A shame but not much I could do about that.&lt;/p&gt;
&lt;h2&gt;Home Assistant monitoring&lt;/h2&gt;
&lt;p&gt;The new inverter is a &lt;a href=&quot;https://www.goodwe.com.au/dns-g4&quot;&gt;GoodWe&lt;/a&gt; brand, and &lt;a href=&quot;https://www.home-assistant.io/&quot;&gt;Home Assistant&lt;/a&gt; has support for that built in with the &lt;a href=&quot;https://www.home-assistant.io/integrations/goodwe&quot;&gt;GoodWe Inverter integration&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I had read the documentation for that integration which mentioned you needed the &lt;em&gt;Modbus TCP option enabled&lt;/em&gt;. That wasn&apos;t on by default. I want to give an extra thanks to the LAMM installers (Liam, Ethan and Ben), as they not only completed the installation but were happy to stay on a bit longer and adjust the inverter settings for me until the HA integration worked. That was much appreciated.&lt;/p&gt;
&lt;p&gt;One advantage to getting a new inverter is it comes with a CT (Current Transformer) clamp. This allows it to monitor the electrical current in the mains connection. With that in place, you are able to see the actual amount of electricity that is being consumed by the house (in addition to any that is being generated by the solar panels).&lt;/p&gt;
&lt;p&gt;I wish I&apos;d started using Home Assistant much earlier, as I would have had a much longer history to compare with. As it is, here&apos;s a couple of months of the old system (and bear in mind it is Winter here in Adelaide, so any sunshine peaking through the clouds this time of year is a bonus!)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/fronius-generation.COjbcoUV_1cfAbu.webp&quot; alt=&quot;Graph of Fronius power generation with just a few days peaking above 6 kWh&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The new panels are already proving their worth. Whereas the old panels were lucky to get 6 kWh maximum, the new ones seem to have that as almost a daily minimum!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/goodwe-generation.8jEEmMEp_1KUDTN.webp&quot; alt=&quot;Graph of GoodWe power generation with most days at a minimum of 6 kWh&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Replacing the panels was an unplanned expense, but the proceeds from selling the old Kia Sorento car ended up covering a good portion of the cost.&lt;/p&gt;
&lt;p&gt;There&apos;s one other thing that I got LAMM Solar and Electrical to install on the day. I&apos;ll talk about that more in another post!&lt;/p&gt;
</content>
    <media:thumbnail url="https://david.gardiner.net.au/_astro/new-solar.J7HO6D3V.jpg" width="571" height="428"/>
    <media:content medium="image" url="https://david.gardiner.net.au/_astro/new-solar.J7HO6D3V.jpg" width="571" height="428"/>
  </entry>
  <entry>
    <id>https://david.gardiner.net.au/2026/08/kia-ev5</id>
    <updated>2026-08-20T20:30:00.000+09:30</updated>
    <title>An electric vehicle</title>
    <link href="https://david.gardiner.net.au/2026/08/kia-ev5" rel="alternate" type="text/html" title="An electric vehicle"/>
    <category term="Energy"/>
    <category term="Family"/>
    <category term="Transport"/>
    <published>2026-08-20T20:30:00.000+09:30</published>
    <summary type="html">We bought a new car. A Kia EV5 in fact. Why did we pick that one, and how is it going?</summary>
    <content type="html">&lt;p&gt;We got an EV! I had been thinking for a while now that our next car should be an electric vehicle. Our good friend Jane had got one last year (and prior to that had a hybrid), and was a strong proponent making the switch, so it was definitely on my radar. We also attended a really informative community seminar early last year, where lots of EV owners brought their along cars for people to look at and ask questions. A few speakers gave really good presentations on what it&apos;s like owning an EV and the current state of the market. Given our driving patterns it just felt like the logical choice.&lt;/p&gt;
&lt;p&gt;Our old car (a &lt;a href=&quot;/2011/09/busy-but-enjoyable-weekend&quot;&gt;Kia Sorento 7 seater SUV&lt;/a&gt;) has had a good run, but it had recently ticked over 300,000 kms and while it was still going remarkably well (we did a road trip from Adelaide to Sydney earlier this year with it), it was likely going to get more expensive to keep on the road.&lt;/p&gt;
&lt;p&gt;In hindsight I really should have done something about this last year - but I didn&apos;t count on a world-wide oil shortage, which then encouraged a lot of other people to start buying EVs too!&lt;/p&gt;
&lt;p&gt;I also decided to take advantage of using a novated lease through work. There&apos;s some helpful government discounts that made this an option to consider. Some employers might only support a single lease provider, but &lt;a href=&quot;https://handbook.sixpivot.com.au/perks-and-benefits/benefits&quot;&gt;SixPivot doesn&apos;t have any such limitation&lt;/a&gt;. I looked around at a number of leasing companies and also spoke to my work colleagues who were already leasing to hear their experiences. That&apos;s how I ended up choosing &lt;a href=&quot;https://www.fleetcare.com.au/referred&quot;&gt;Fleetcare&lt;/a&gt; (If you&apos;re interested in using them, let me know and I&apos;ll share a referral code with you, and we both get a $250 gift card each if your lease is settled).&lt;/p&gt;
&lt;p&gt;After a decent amount of research we settled on a &lt;a href=&quot;https://www.kia.com/au/cars/ev5/features.html&quot;&gt;Kia EV5&lt;/a&gt;. The base model (which we got) has a ~400km range and quite decent boot space compared to some other cars we looked at. It&apos;s a 5 seater SUV. Not quite as big as our old Sorento, but it does pass the &quot;Cello&quot; test. That&apos;s where you take a full-size Cello in its case and try and fit it into the car boot without having to put down one of the back seats. It&apos;s a lot more modern than our old car, but there&apos;s still a bit of &quot;Kia&quot; familiarity to it.&lt;/p&gt;
&lt;p&gt;I&apos;d also spent a bit of time looking at our past driving history and running costs to try and get a good idea of how much we could afford to budget for a new car. (The running costs also proved useful when filling out the lease documentation).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/kia-ev5-showroom.hPwFEQqb_2mcKAk.webp&quot; alt=&quot;Kia EV5 in car showroom&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Some other brands I tried felt like the usable area of the windscreen was reduced quite a bit, especially around the rear-view mirror area - almost like driving with blinkers on. Maybe that&apos;s ok for shorter people, but as someone slightly taller, that was noticeable to me. A number of new cars seem to be adopting a US layout with indicator and wiper controls on the &quot;wrong&quot; side of the steering wheel. Not a deal breaker, but it was appreciated that the EV5 keeps with what I&apos;m used to - wipers on the left, indicator on the right.&lt;/p&gt;
&lt;p&gt;There&apos;s also a lot of variation across EV models as to how the gear stick is located. Not that you usually have more than just forward, park and reverse. Some have a dial in the centre console, some have what looks like a traditional gear stick, and some (like the EV5) have the gear stick as an extra &quot;stalk&quot; on the steering wheel.&lt;/p&gt;
&lt;h2&gt;A few bumps&lt;/h2&gt;
&lt;p&gt;About a week after we got the new car, I started noticing some weird error messages appearing on the dashboard display. They&apos;d appear briefly and then go away, but a small warning icon would remain. They&apos;d disappear when the car was turned off, but then another error would show up at some stage later. The strange thing was it wasn&apos;t always the same system that the error was referring to. They weren&apos;t predictable either.&lt;/p&gt;
&lt;p&gt;Here&apos;s one that I did manage to get a photo of. The text would only appear for a few seconds, but the warning icon would stay in the bottom right of the display until you turned off the car.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/kia-ev5-error.DfSD7wjB_Z2tFc7a.webp&quot; alt=&quot;Photo of EV5 dashboard showing &apos;Check Parking Distance Warning System&apos; error&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I contacted our car sales guy to ask what the message meant, and he referred it to their service department. They asked for me to bring it in for a day. The result of that was they said they needed to book it in again for an extended period as they weren&apos;t sure what the problem was.&lt;/p&gt;
&lt;p&gt;As a software developer, the worst kind of bug is one that you can&apos;t reproduce. Given the amount of software that runs inside a car these days, I was worried this might be one of those situations. But I was somewhat relieved to hear that when they plugged in their diagnostic tools into the car the technician could see a whole bunch of errors being logged. So it wasn&apos;t just me.&lt;/p&gt;
&lt;p&gt;A couple of weeks later we took it back and it stayed in for a few days, during which they informed me they&apos;d referred it up to Kia Australia. Finally they identified a fault with a high-voltage cable being too close to other wiring and causing interference and the &apos;phantom&apos; warnings.&lt;/p&gt;
&lt;p&gt;It was disappointing to be without our new car for about a week all up (at least we were given a loan car) but hopefully that problem is permanently resolved.&lt;/p&gt;
&lt;h2&gt;Bells and whistles&lt;/h2&gt;
&lt;p&gt;The new car is quite an upgrade from the old Sorento. Like most new cars on the market these days, it comes with a fully electronic dashboard, with navigation and all kinds of driving assistance features. Many of these like to go &apos;ding&apos;! The steering wheel will rumble if the car thinks you&apos;re going out of your lane (or if it thinks you&apos;re about to change lanes and bump into a car).&lt;/p&gt;
&lt;p&gt;As an avid Double-J Radio listener, I do appreciate having DAB digital radio built in.&lt;/p&gt;
&lt;p&gt;Apple CarPlay is also nice, though maybe I&apos;m &quot;holding it wrong&quot; as I&apos;ve missed a few messages sometimes, that I thought I would get notified about. Also a bonus to be able to rely on Bluetooth and retire the old Aux cable. There can be a bit of competition now as to whose phone is the one to connect first and choose their music!&lt;/p&gt;
&lt;p&gt;The built-in speed limit warnings are handy, except when they&apos;re not. As I understand it, the car can detect speed limit signs, but it presumably has some fallback mapping data that it defaults to. The quality of that data is variable. Some roads that have changed speed limits in the last year are obviously still using the old speed limits in its dataset. Others seem to have weird limits that make no sense - eg. there&apos;s a couple of roads where it insists the limit is &quot;55km/h&quot; - there is never a &quot;55&quot; speed limit. 40, 50 or 60, but not 55. I wish I knew how to submit updates or give feedback.&lt;/p&gt;
&lt;p&gt;The EV5 does come with V2L (Vehicle to Load) with a standard Australian power point inside the boot. I haven&apos;t used it yet, but it&apos;s good to know the option is there. Handy if you&apos;re out on a picnic and want to boil a kettle, or if we ever have another massive storm with extended blackouts then we could use the car&apos;s battery to tide us over.&lt;/p&gt;
&lt;p&gt;The car came with a standard charging cable (known by some as a &apos;granny&apos; charger), that just plugs into a regular wall socket. My plan was to see how we went with that, knowing that it may take a while to recharge. In the short-term I could always take the car to a nearby fast-charging point, but if it became a regular problem then installing a higher-powered home charger would always an option.&lt;/p&gt;
&lt;h2&gt;Range anxiety?&lt;/h2&gt;
&lt;p&gt;The old car would average around 600km on a full tank. The new car has a nominal range of 400km, but I&apos;ve found it can vary a bit depending on the kind of driving you&apos;re doing. Shorter drives to the shops or around town are easy. The longest we&apos;ve done so far is a round trip to Port Elliott/Victor Harbor (~145km) which has been fine as well. I did notice that the faster highway driving does use up a bit more battery than just the normal suburban trips. But that&apos;s pretty normal for current generation EVs.&lt;/p&gt;
&lt;p&gt;The more we use it, the more we get a feel for what it can do. I&apos;m looking forward to taking on a longer drive. Yes, we&apos;ll need to plan out our stops for recharging, but given you really should stop every couple of hours for a break, I think that should coincide nicely.&lt;/p&gt;
&lt;p&gt;And then there&apos;s the joy of driving past a petrol station and just ignoring the price of petrol. Probably the only downside to that is it means I need to be more intentional about stopping in occasionally just to keep the tyres up to pressure.&lt;/p&gt;
&lt;p&gt;So yes, I&apos;m happy we chose it.&lt;/p&gt;
</content>
    <media:thumbnail url="https://david.gardiner.net.au/_astro/kia-ev5-showroom.hPwFEQqb.jpg" width="1142" height="857"/>
    <media:content medium="image" url="https://david.gardiner.net.au/_astro/kia-ev5-showroom.hPwFEQqb.jpg" width="1142" height="857"/>
  </entry>
  <entry>
    <id>https://david.gardiner.net.au/2026/08/home-assistant</id>
    <updated>2026-08-16T22:00:00.000+09:30</updated>
    <title>Home Assistant</title>
    <link href="https://david.gardiner.net.au/2026/08/home-assistant" rel="alternate" type="text/html" title="Home Assistant"/>
    <category term="Energy"/>
    <category term="Home Assistant"/>
    <category term="Synology"/>
    <published>2026-08-16T22:00:00.000+09:30</published>
    <summary type="html">Getting started with Home Assistant, installing and configuring the Home Assistant Community Store,
and then installing an integration for GloBird Energy to track electricity (and later gas) usage.</summary>
    <content type="html">&lt;p&gt;My first exposure to &lt;a href=&quot;https://www.home-assistant.io/&quot;&gt;Home Assistant&lt;/a&gt; (or &apos;HA&apos; for short) was as an option for triggering a hallway light from a motion sensor for people who might want to go to the bathroom in the middle of the night. I know you can get self-contained sensor lights that do all that, but while I was researching those I found a few references to HA and I was intrigued.&lt;/p&gt;
&lt;p&gt;I spun up a container on our Synology and had a play. Then I discovered that we already had a few devices in our house that it could talk to, like our UniFi network gear, the Synology itself and even our solar inverter!&lt;/p&gt;
&lt;p&gt;I was curious about what else it could work with. I noticed that there were &lt;a href=&quot;https://www.home-assistant.io/integrations/&quot;&gt;lots of integrations you could search for&lt;/a&gt;, including some power companies. But not the one I was using at the time - &lt;a href=&quot;https://quote.globirdenergy.com.au/quote?pcode=refer&amp;amp;ref=6OIYNZ&quot;&gt;GloBird Energy&lt;/a&gt;. I did a general web search and discovered someone had built a custom integration for GloBird with HA - &lt;a href=&quot;https://github.com/bolagnaise/globird-ha&quot;&gt;https://github.com/bolagnaise/globird-ha&lt;/a&gt; using something called &quot;HACS&quot;. It turns out that HACS is the &lt;a href=&quot;https://hacs.xyz/&quot;&gt;Home Assistant Community Store&lt;/a&gt;. Once you add HACS to your HA, you can add a whole bunch of additional 3rd-party integrations, plugins, themes and scripts. Lots of these are listed in the HACS store, but you can also add custom repositories that point to a Git repo (eg on GitHub) too.&lt;/p&gt;
&lt;h2&gt;Adding HACS to Home Assistant&lt;/h2&gt;
&lt;p&gt;After confirming I was running a recent version of Home Assistant, I followed the &lt;a href=&quot;https://hacs.xyz/docs/use/download/download/#to-download-hacs-container&quot;&gt;HACS instructions for installing into a Container&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As my container is running on my Synology NAS server, I needed to &lt;code&gt;ssh&lt;/code&gt; to the Synology, then I could use the &lt;code&gt;docker&lt;/code&gt; command to manage the container&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-01-configure-hacs.DovvZHwh_17CRrD.webp&quot; alt=&quot;Screenshot of terminal session enabling HACS download&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Once you&apos;ve done that then you can return to HA and proceed to setup HACS from within the UI.&lt;/p&gt;
&lt;p&gt;Now you can search for HACS as a new integration&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-03-install-hacs.DciOIMC9_ZsKN2e.webp&quot; alt=&quot;Screenshot of HA searching for HACS&quot; /&gt;&lt;/p&gt;
&lt;p&gt;There&apos;s a few conditions to confirm before proceeding&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-02-install-hacs-confirm.DlH55fS9_Wjc72.webp&quot; alt=&quot;Screenshot of HA HACS confirmation dialog&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Then a short wait for HACS to activate&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-04-activate-hacs.g7Lc7s0p_uq7m9.webp&quot; alt=&quot;Screenshot of HA waiting for HACS activation&quot; /&gt;&lt;/p&gt;
&lt;p&gt;And then you need to authorise HACS with GitHub&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-05-authorise-hacs.iZklQCvu_Z1GSUOF.webp&quot; alt=&quot;Screenshot of HA authorising HACS&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Give HACS a name (or accept the default)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-06-hacs-name-assign.CogyEuGb_1GXiLJ.webp&quot; alt=&quot;Screenshot of HA giving HACS device a name&quot; /&gt;&lt;/p&gt;
&lt;p&gt;And you&apos;re done&lt;/p&gt;
&lt;h2&gt;Adding GloBird integration from HACS to Home Assistant&lt;/h2&gt;
&lt;p&gt;Now that HACS is installed, there&apos;s a whole new list of integrations to choose from. But at the time GloBird wasn&apos;t in that list. That&apos;s ok. We can add a custom repository to let HACS know about it. Use the context menu.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-07-hacs-add-custom-repo.C2_resbr_1i8TdG.webp&quot; alt=&quot;Screenshot of HACS showing custom repositories menu item&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Then enter the Git repository URL and select &apos;Integration&apos; from the &lt;strong&gt;Type&lt;/strong&gt; list.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-08-hacs-globird-repo.BTqFddB6_CfDPc.webp&quot; alt=&quot;Screenshot of HACS entering GloBird custom repository details&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Now that HACS is aware of the new repository, you can search the HACS store and GloBird will appear in the list.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-09-hacs-store.bqTI5oSb_2rql9K.webp&quot; alt=&quot;Screenshot of HACS store showing &quot; /&gt;&lt;/p&gt;
&lt;p&gt;Click on the context menu and choose &lt;strong&gt;Download&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-10-hacs-globird-downloading.s4bynB5R_ZqrmFw.webp&quot; alt=&quot;Screenshot of HACS store downloading GloBird&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Once it is downloaded, HA lets you know that it needs to be restarted.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-11-hacs-globird-pending-resart.CraryHFX_ZBEchO.webp&quot; alt=&quot;Screenshot of HA showing GloBird integration pending restart&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The first time I saw this, I switched back to the Synology Container Manager to restart the container. (I later realised that HA can actually restart itself through the UI and using Container Manager wasn&apos;t necessary!)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-12-synology-container-manager.BLZbenLX_27c1aE.webp&quot; alt=&quot;Screenshot of Synology showing Container Manager&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Now that the GloBird integration is installed, you can click on the Plus icon, and choose &lt;strong&gt;Add device&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Then enter &apos;GloBird&apos; and click on the matching item.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-13-find-brand.DTBo4mVD_Zj9ESR.webp&quot; alt=&quot;Screenshot of HA searching for GloBird&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You&apos;ll be prompted to enter your credentials. For GloBird this is your account email and password.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-14-globird-credentials.BvFkfCHN_ZFNGHK.webp&quot; alt=&quot;Screenshot of HA entering GloBird credentials&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You can accept the default device name or change it, and optionally assign the device to a &apos;room&apos;. That makes more sense for physical devices in or around your house, but you can still do the same for &apos;utility&apos; devices like an electricity provider.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-15-globird-name-assign.DaDjDpP8_rowT4.webp&quot; alt=&quot;Screenshot of HA assigning a name to GloBird device&quot; /&gt;&lt;/p&gt;
&lt;p&gt;And with that, the integration should be installed and configured. You can now see a page that shows all the current sensors and information from the device.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-16-globird-device-info.BUqhBRdx_Z1BcrVY.webp&quot; alt=&quot;Screenshot of HA showing GloBird device details&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You might choose to add this to one or more dashboards, and also given in this case it relates to electricity, you could also add it to the Energy page.&lt;/p&gt;
&lt;p&gt;Interestingly, when I first added the GloBird integration it provided information about our electricity account and usage, but GloBird also provide gas too (and we are using them as our gas provider). I contributed an update to the GloBird integration so that if you have a gas service with them, then you can also get that information as well.&lt;/p&gt;
&lt;p&gt;Unlike electricity, gas requires a manual measurement - either by an official meter checker, or by me taking a photo of the meter and submitting it to GloBird. So the measurements are not &quot;live&quot; like a lot of HA devices, but always in the past. Because of that, the implementation I contributed sends the readings directly to HA&apos;s &quot;&lt;a href=&quot;https://www.home-assistant.io/integrations/recorder/&quot;&gt;recorder&lt;/a&gt;&quot;. They show up in HA as &apos;statistics&apos;, and you can visualise them.&lt;/p&gt;
&lt;p&gt;Here&apos;s our recent monthly gas usage in HA.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ha-17-gas-usage.DHDF10YB_13tiok.webp&quot; alt=&quot;Graph of gas usage from March to August&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I&apos;ve since switched to a different electricity provider but I&apos;m still using GloBird for gas. I&apos;ll be keeping an eye on their plans and there&apos;s always a chance I switch back.&lt;/p&gt;
&lt;p&gt;Feel free to use &lt;a href=&quot;https://quote.globirdenergy.com.au/quote?pcode=refer&amp;amp;ref=6OIYNZ&quot;&gt;this referral link if you want to check out GloBird for electricity or gas&lt;/a&gt; in Australia. You and I both get $50 credit (&lt;a href=&quot;https://www.globirdenergy.com.au/legal/referral-terms-conditions/&quot;&gt;conditions apply&lt;/a&gt;)&lt;/p&gt;
</content>
    <media:thumbnail url="https://david.gardiner.net.au/_astro/ha-17-gas-usage.DHDF10YB.png" width="690" height="634"/>
    <media:content medium="image" url="https://david.gardiner.net.au/_astro/ha-17-gas-usage.DHDF10YB.png" width="690" height="634"/>
  </entry>
  <entry>
    <id>https://david.gardiner.net.au/2026/08/solar-problems</id>
    <updated>2026-08-13T21:30:00.000+09:30</updated>
    <title>Solar panel problems</title>
    <link href="https://david.gardiner.net.au/2026/08/solar-problems" rel="alternate" type="text/html" title="Solar panel problems"/>
    <category term="Energy"/>
    <published>2026-08-13T21:30:00.000+09:30</published>
    <summary type="html">When you start getting emails from your solar panels, something strange is going on</summary>
    <content type="html">&lt;p&gt;Back in March last year I discovered that the company that originally &lt;a href=&quot;/2011/10/going-solar&quot;&gt;installed our solar panels back in 2011&lt;/a&gt; had gone out of business. It was only in 2022 that they&apos;d replaced a faulty inverter, so that was quite a surprise. I thought that they were a stayer, but like so many other solar companies, they didn&apos;t last.&lt;/p&gt;
&lt;p&gt;When the inverter was installed, they configured it so that supposedly they would be monitoring it, and I was given &quot;guest&quot; access to view the daily statistics. I realised that obviously they wouldn&apos;t be monitoring it now they no longer existed. I got in touch with &lt;a href=&quot;https://www.fronius.com/en-au/australia&quot;&gt;Fronius&lt;/a&gt; (the inverter manufacturer) and they were able to give me &apos;administrator&apos; access. In doing that I updated the email it was using to send any notifications.&lt;/p&gt;
&lt;p&gt;With my admin access, I now discovered that the firmware for the inverter and data sensor were both really outdated. Probably the same version it came with when it was installed. Something I assumed the installer would have been taking care of, but apparently not. Needless to say I fixed that.&lt;/p&gt;
&lt;p&gt;And all was good until around November when I started getting some emails from the inverter saying &quot;Code 475 Isolation Error&quot;. Not the most helpful of error messages! And we&apos;re heading into Summer when you want those panels working hard.&lt;/p&gt;
&lt;p&gt;I contacted a few local solar companies - some just wanted to replace everything with a brand new, larger system, without even coming to take a look. &lt;a href=&quot;https://www.lammelectrical.com.au/&quot;&gt;LAMM Solar and Electrical&lt;/a&gt; were a bit more helpful.&lt;/p&gt;
&lt;p&gt;One reason I tried them in the first place was that I remember seeing them at a local community fete. I was in favour of using a local company if possible.&lt;/p&gt;
&lt;p&gt;One of their guys came out, discovered that one of my panels had actually cracked. It could have been a branch blown in the wind, or a bird dropping something on it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/shattered-solar-panel.Bx64Kc91_SfTGQ.webp&quot; alt=&quot;A solar panel with the glass cover all shattered&quot; /&gt;&lt;/p&gt;
&lt;p&gt;As a short-term fix they disconnected the group of panels it was in. Our inverter was happier, though we now had slightly less generating capacity. Unfortunately, due to the age of the panel, it would be really unlikely to be able to replace it with another of the same capacity.&lt;/p&gt;
&lt;p&gt;Our panels were back up and running, and if we ever needed someone to do more work on them then I now know a good company to deal with (and more about that soon).&lt;/p&gt;
</content>
    <media:thumbnail url="https://david.gardiner.net.au/_astro/shattered-solar-panel.Bx64Kc91.jpg" width="321" height="428"/>
    <media:content medium="image" url="https://david.gardiner.net.au/_astro/shattered-solar-panel.Bx64Kc91.jpg" width="321" height="428"/>
  </entry>
  <entry>
    <id>https://david.gardiner.net.au/2026/08/power-posts</id>
    <updated>2026-08-09T21:00:00.000+09:30</updated>
    <title>Power Posts</title>
    <link href="https://david.gardiner.net.au/2026/08/power-posts" rel="alternate" type="text/html" title="Power Posts"/>
    <category term="Energy"/>
    <published>2026-08-09T21:00:00.000+09:30</published>
    <summary type="html">I want to write some blog posts related to energy and electricity, but am having trouble knowing where to start</summary>
    <content type="html">&lt;p&gt;I&apos;ve got a number of blog posts buzzing around in my head that I need to write up, all related to the topics of energy and electricity.&lt;/p&gt;
&lt;p&gt;I think what&apos;s making it hard to get them out is they&apos;re all kind of interrelated. Yes, there is a timeline of events, but they cross over a bit, so figuring out which one to start with has me spinning my wheels a bit.&lt;/p&gt;
&lt;p&gt;Hence this short post to at least get the ideas down as a list:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Solar panels (repairing vs replacing ours)&lt;/li&gt;
&lt;li&gt;Electric vehicles (and the one we now have)&lt;/li&gt;
&lt;li&gt;EV charging&lt;/li&gt;
&lt;li&gt;Electricity smart meters&lt;/li&gt;
&lt;li&gt;Choosing electricity plans&lt;/li&gt;
&lt;li&gt;Home Assistant&lt;/li&gt;
&lt;li&gt;Creating Home Assistant integrations&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ok. That&apos;s probably the posts I need to work on. Let&apos;s see which one comes together first 😀&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://david.gardiner.net.au/2026/07/dotnet-on-macos</id>
    <updated>2026-07-19T13:30:00.000+09:30</updated>
    <title>Multiple .NET SDK versions and PowerShell on macOS with Homebrew</title>
    <link href="https://david.gardiner.net.au/2026/07/dotnet-on-macos" rel="alternate" type="text/html" title="Multiple .NET SDK versions and PowerShell on macOS with Homebrew"/>
    <category term=".NET"/>
    <category term="macOS"/>
    <category term="PowerShell"/>
    <published>2026-07-19T13:30:00.000+09:30</published>
    <summary type="html">How to run multiple .NET SDK versions on macOS with Homebrew while keeping PowerShell working, by using alternate casks and adjusting PATH precedence.</summary>
    <content type="html">&lt;p&gt;As a long-time &lt;a href=&quot;https://community.chocolatey.org&quot;&gt;Chocolatey&lt;/a&gt; user on Windows, it&apos;s not surprising that &lt;a href=&quot;https://brew.sh/&quot;&gt;Homebrew&lt;/a&gt; has become my go-to solution for installing software on macOS. There are a few quirks though, and the .NET SDK is one of them.&lt;/p&gt;
&lt;p&gt;There&apos;s a &lt;a href=&quot;https://formulae.brew.sh/formula/dotnet&quot;&gt;dotnet&lt;/a&gt; &apos;Formula&apos; (which installs the &lt;code&gt;dotnet&lt;/code&gt; binary in &lt;code&gt;/opt/homebrew/bin/dotnet&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;There&apos;s also a &lt;a href=&quot;https://formulae.brew.sh/cask/dotnet-sdk&quot;&gt;dotnet-sdk&lt;/a&gt; &apos;Cask&apos;, but these are not compatible, and are known to conflict with each other.&lt;/p&gt;
&lt;p&gt;(&lt;a href=&quot;https://docs.brew.sh/Formula-Cookbook#homebrew-terminology&quot;&gt;For my own benefit&lt;/a&gt;, a &apos;formula&apos; is &quot;Homebrew package definition that builds from upstream sources&quot;, and a &apos;cask&apos; is a &quot;Homebrew package definition that installs pre-compiled binaries built and signed by upstream&quot;)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://formulae.brew.sh/formula/powershell&quot;&gt;PowerShell&lt;/a&gt; is also available via Homebrew, and interestingly it depends on the &apos;dotnet&apos; formula, so if you also want to install PowerShell this way then that makes the decision for you.&lt;/p&gt;
&lt;p&gt;But there&apos;s another problem. It&apos;s quite common to need to have multiple versions of .NET SDKs installed. Unfortunately the way that the default &apos;dotnet&apos; formulae work is that while you can run &lt;code&gt;brew install dotnet@8&lt;/code&gt; as well, you only end up with one .NET SDK available (e.g. when you run &lt;code&gt;dotnet --list-sdks&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Fortunately, some community members have built their own Homebrew packages that resolve this. I&apos;ve used the one created by &lt;a href=&quot;https://www.junian.dev/&quot;&gt;Junian Triajianto&lt;/a&gt; in &lt;a href=&quot;https://github.com/junian/homebrew-dotnet&quot;&gt;https://github.com/junian/homebrew-dotnet&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After adding his &apos;tap&apos; (a &lt;a href=&quot;https://docs.brew.sh/Taps&quot;&gt;Tap&lt;/a&gt; is Homebrew&apos;s term for a 3rd-party repository)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew trust junian/homebrew-dotnet
brew tap junian/homebrew-dotnet
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can then install the SDKs. Note that you should use the full version number &apos;8.0&apos; or &apos;10.0&apos; otherwise Homebrew might install the above cask instead of Junian&apos;s&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew install dotnet-sdk@8.0
brew install dotnet-sdk@10.0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That installs &lt;code&gt;dotnet&lt;/code&gt; in &lt;code&gt;/usr/local/share/dotnet/dotnet&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&quot;But hey, what about PowerShell?&quot; you ask!&lt;/p&gt;
&lt;p&gt;Installing PowerShell via Homebrew will still install the dependent package &apos;dotnet&apos;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew install powershell
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And by default Homebrew will have updated the PATH so that its binaries are found first. We need to fix that&lt;/p&gt;
&lt;p&gt;I edited my &lt;code&gt;~/.zprofile&lt;/code&gt; and appended the following to it:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Force the https://github.com/junian/homebrew-dotnet versions of .NET (not the one installed by PowerShell)
export DOTNET_ROOT=&quot;/usr/local/share/dotnet&quot;

# Keep dotnet ahead of Homebrew paths.
typeset -U path
path=(&quot;$DOTNET_ROOT&quot; &quot;$HOME/.dotnet/tools&quot; $path)
export PATH
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The end result is that I get multiple .NET SDKs working:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;dotnet --list-sdks
8.0.423 [/usr/local/share/dotnet/sdk]
10.0.302 [/usr/local/share/dotnet/sdk]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But PowerShell is still happy too:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/macos-powershell-launching.8pddqUKe_Z2aY3e5.webp&quot; alt=&quot;Screenshot of macOS terminal with PowerShell being launched&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In this scenario, I&apos;d suggest that Chocolatey probably does a better job of curating packages so that you don&apos;t end up with multiple variations of packages for the same software, but it&apos;s good that Homebrew offers a way to resolve the issue.&lt;/p&gt;
</content>
    <media:thumbnail url="https://david.gardiner.net.au/_astro/dotnet.DQUHciW5.png" width="456" height="456"/>
    <media:content medium="image" url="https://david.gardiner.net.au/_astro/dotnet.DQUHciW5.png" width="456" height="456"/>
  </entry>
  <entry>
    <id>https://david.gardiner.net.au/2026/06/switchy-switch</id>
    <updated>2026-06-16T20:30:00.000+09:30</updated>
    <title>The network switch that keeps switching more than it should</title>
    <link href="https://david.gardiner.net.au/2026/06/switchy-switch" rel="alternate" type="text/html" title="The network switch that keeps switching more than it should"/>
    <category term="Hardware"/>
    <category term="Networking"/>
    <category term="Synology"/>
    <published>2026-06-16T20:30:00.000+09:30</published>
    <summary type="html">How I accidentally discovered that one of my home network switches seems unable to decide who its upstream
device should be.</summary>
    <content type="html">&lt;p&gt;A couple of months ago a suggestion came up at home about getting some kind of low-powered light in the hallway for people who might need to go to the bathroom in the middle of the night. Not an unreasonable request - maybe some LED strip lights would work? And then I wondered, how about adding a motion sensor? And then could you integrate it with some home automation of some kind? And that&apos;s how I ended up completely distracted looking at &lt;a href=&quot;https://www.home-assistant.io/&quot;&gt;Home Assistant&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Installing it on our Synology NAS seemed the logical choice, and it was pretty straightforward, going down the Docker container route. I clicked around the UI and it looked interesting, but didn&apos;t go much further (and I must admit by that time I&apos;d forgotten the original reason for heading down this rabbit hole).&lt;/p&gt;
&lt;p&gt;Then a couple of weeks ago we got a new car (a Kia EV5) and it has an app that you can use to check current status and some limited remote control options. Given the need to charge it at home started me off on a new area of research for home charging devices, and also considering the current state of our home solar panels - whether to upgrade them, or at least figure out how to replace some that have had to be taken out of service due to impact damage.&lt;/p&gt;
&lt;p&gt;That inspired me to go back and take another look at my Home Assistant instance, and see if I could add some &apos;integrations&apos; with some of the existing networked devices we already have. It turns out our current model solar panel inverter (a &lt;a href=&quot;https://www.fronius.com/en-au/australia/solar-energy/home-owners&quot;&gt;Fronius&lt;/a&gt;) is supported, as well as the &lt;a href=&quot;https://techspecs.ui.com/unifi&quot;&gt;Ubiquiti UniFi&lt;/a&gt; networking gear I have installed. That is pretty cool.&lt;/p&gt;
&lt;p&gt;And that is a very long way of getting to the point of this blog post - once I had these devices integrated, I noticed in Home Assistant&apos;s &lt;strong&gt;Activity&lt;/strong&gt; page, that there were heaps of these entries being logged for my UniFi &lt;a href=&quot;https://www.amazon.com.au/Ubiquiti-Flex-Managed-Gigabit-Switch/dp/B08VRV9PWD?&amp;amp;linkCode=ll2&amp;amp;tag=flcdrg07-22&amp;amp;linkId=0dfeac74af4a36b6280c22ca74a2afad&amp;amp;ref_=as_li_ss_tl&quot;&gt;USW Flex Mini&lt;/a&gt; switch:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/home-assistant-activity-uplink-mac.8u9k_5cq_Z96Tnj.webp&quot; alt=&quot;Screenshot of Activity page in Home Assistant showing USW Flex Mini Uplink MAC address changing frequently&quot; /&gt;&lt;/p&gt;
&lt;p&gt;For some reason, either the Flex Mini switch itself, or my &lt;a href=&quot;https://www.amazon.com.au/Ubiquiti-UniFi-Cloud-Gateway-Ultra/dp/B0D8PSW2BZ?&amp;amp;linkCode=ll2&amp;amp;tag=flcdrg07-22&amp;amp;linkId=39ad4320d21517a1048ccd7df111cbd5&amp;amp;ref_=as_li_ss_tl&quot;&gt;UniFi Cloud Gateway Ultra&lt;/a&gt; thinks that the uplink MAC address for the switch is changing every minute. That is really weird.&lt;/p&gt;
&lt;p&gt;The physical arrangement of networking hardware in our home looks roughly like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
graph TD;
    ISP --&amp;gt; GW
    GW[Cloud Gateway Ultra]
    click GW href &quot;https://www.amazon.com.au/Ubiquiti-UniFi-Cloud-Gateway-Ultra/dp/B0D8PSW2BZ?&amp;amp;linkCode=ll2&amp;amp;tag=flcdrg07-22&amp;amp;linkId=39ad4320d21517a1048ccd7df111cbd5&amp;amp;ref_=as_li_ss_tl&quot; &quot;Cloud Gateway Ultra on Amazon&quot; _blank
    GW --&amp;gt; TP

    TP[TP-Link Switch]
    TP --&amp;gt; PR

    LT(UAP AC Lite)
    TP --&amp;gt; LT

    PR(AC Pro)
    click PR href &quot;https://www.amazon.com.au/UAP-AC-PRO-UBIQUITI-Ac1750-Access-Injector/dp/B07JDNS774?&amp;amp;linkCode=ll2&amp;amp;tag=flcdrg07-22&amp;amp;linkId=bfe6e1c092cbf6dbf88d14b28e295ed4&amp;amp;ref_=as_li_ss_tl&quot; &quot;AC Pro&quot; _blank

    USW(USW Flex Mini)
    click USW href &quot;https://www.amazon.com.au/Ubiquiti-Flex-Managed-Gigabit-Switch/dp/B08VRV9PWD?&amp;amp;linkCode=ll2&amp;amp;tag=flcdrg07-22&amp;amp;linkId=0dfeac74af4a36b6280c22ca74a2afad&amp;amp;ref_=as_li_ss_tl&quot; &quot;USW Flex Mini switch on Amazon&quot; _blank
    TP --&amp;gt; USW
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I had to do some hunting within the Cloud Gateway UI to figure out what the devices where that corresponded to the two MAC addresses.&lt;/p&gt;
&lt;p&gt;One was indeed the gateway (which is what I would expect). The second, surprisingly turned out to be &lt;a href=&quot;https://www.amazon.com.au/UAP-AC-PRO-UBIQUITI-Ac1750-Access-Injector/dp/B07JDNS774?&amp;amp;linkCode=ll2&amp;amp;tag=flcdrg07-22&amp;amp;linkId=bfe6e1c092cbf6dbf88d14b28e295ed4&amp;amp;ref_=as_li_ss_tl&quot;&gt;AC Pro wireless access point&lt;/a&gt;. That doesn&apos;t make a lot of sense - it&apos;s a wireless access point. It should not be acting as the upstream for a wired device.&lt;/p&gt;
&lt;p&gt;It&apos;s funny though. Once you&apos;re paying attention to something, you often notice other things that have probably been there the whole time.&lt;/p&gt;
&lt;p&gt;Switching to the Cloud Gateway UI and bringing up the &lt;strong&gt;Network&lt;/strong&gt; page, I noticed something interesting.&lt;/p&gt;
&lt;p&gt;At first it looked as I would have expected:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/gateway-network1.1E1pG1Li_2UGfQ.webp&quot; alt=&quot;Screenshot from Cloud Gateway Network page with expected layout&quot; /&gt;&lt;/p&gt;
&lt;p&gt;But then while on that page it updated and woah! That lines up with those logs!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/gateway-network2.1r40Rzbb_ZC8CXu.webp&quot; alt=&quot;Screenshot from Cloud Gateway Network page with unexpected layout&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Both the Flex Mini switch and the AC Pro access point use Power over Ethernet (PoE), and the &lt;a href=&quot;https://www.amazon.com.au/TP-Link-Gigabit-Ethernet-Unmanaged-TL-SG1008P/dp/B00BP0SSAS?th=1&amp;amp;linkCode=ll2&amp;amp;tag=flcdrg07-22&amp;amp;linkId=6bbad2b757ca1431cfe8c2b8e50ccbfc&amp;amp;ref_=as_li_ss_tl&quot;&gt;TP-Link switch&lt;/a&gt; provides that on some of its ports so I had them both plugged into that.&lt;/p&gt;
&lt;p&gt;The TP-Link is not a managed switch. It is essentially &apos;invisible&apos; to other devices on the network (notice how it doesn&apos;t show up on those Gateway Network diagrams above), so I wonder if that may be relevant?&lt;/p&gt;
&lt;p&gt;To test this theory, I changed the cables so that the Flex Mini is plugged directly into the Cloud Gateway. But as the gateway doesn&apos;t provide PoE I needed to power the Mini directly through its USB-C port.&lt;/p&gt;
&lt;p&gt;Making that change, and now the Cloud Gateway&apos;s Network page reverts back to the expected layout and doesn&apos;t change. Home Assistant&apos;s Activity log also becomes a lot quieter.&lt;/p&gt;
&lt;p&gt;That seems to have solved the problem. I&apos;d really prefer to keep using PoE for the Flex Mini switch, but I suspect to do that in a reliable way might mean replacing the unmanaged TP-Link switch with a newer managed one - something like the UniFi &lt;a href=&quot;https://www.amazon.com.au/Ubiquiti-UniFi-Switch-8-Port-Network/dp/B0C6BPKXDF?&amp;amp;linkCode=ll2&amp;amp;tag=flcdrg07-22&amp;amp;linkId=5a4b1ea1f998e5eb75850909842534ac&amp;amp;ref_=as_li_ss_tl&quot;&gt;USW Lite 8&lt;/a&gt; or &lt;a href=&quot;https://www.amazon.com.au/Ubiquiti-Ultra-8-Port-Network-Switch/dp/B0CR1YNLXC?&amp;amp;linkCode=ll2&amp;amp;tag=flcdrg07-22&amp;amp;linkId=a2f9311298976c19d21acec1f9d7eb81&amp;amp;ref_=as_li_ss_tl&quot;&gt;USW Ultra&lt;/a&gt;. Except it does seem the price jumps quite a bit when you go from 5 ports to 8. Maybe I&apos;ll stick with the USB-C power option for now.&lt;/p&gt;
&lt;p&gt;Amazon affiliate links&lt;/p&gt;
</content>
    <media:thumbnail url="https://david.gardiner.net.au/_astro/unifi-usw-flex-mini-00.BEVh-cO7.jpg" width="493" height="180"/>
    <media:content medium="image" url="https://david.gardiner.net.au/_astro/unifi-usw-flex-mini-00.BEVh-cO7.jpg" width="493" height="180"/>
  </entry>
  <entry>
    <id>https://david.gardiner.net.au/2026/06/azure-function-errors</id>
    <updated>2026-06-11T23:00:00.000+09:30</updated>
    <title>.NET Azure Function error - A connection string was not found</title>
    <link href="https://david.gardiner.net.au/2026/06/azure-function-errors" rel="alternate" type="text/html" title=".NET Azure Function error - A connection string was not found"/>
    <category term=".NET"/>
    <category term="Azure Functions"/>
    <category term="macOS"/>
    <published>2026-06-11T23:00:00.000+09:30</published>
    <summary type="html">Surprisingly, a freshly created .NET Azure Function project isn&apos;t running for me without making a small, but critical configuration change.</summary>
    <content type="html">&lt;p&gt;I&apos;m trying out running &lt;a href=&quot;https://learn.microsoft.com/en-us/azure/azure-functions/dotnet-isolated-process-guide?tabs=ihostapplicationbuilder%2Cconfig%2Cwindows&quot;&gt;.NET Azure Functions&lt;/a&gt; on my &lt;a href=&quot;/2026/06/macbookpro&quot;&gt;new laptop&lt;/a&gt;, and thought I&apos;d start from scratch by creating a brand new .NET Azure Function project.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/azure-function.B3FwAwqX_2tR59E.webp&quot; alt=&quot;Azure Function logo&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I installed the Azure Function Core Tools using Homebrew. (Note that &lt;a href=&quot;https://github.com/Azure/azure-functions-core-tools#homebrew&quot;&gt;official instructions&lt;/a&gt; missed the &apos;trust&apos; command):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew tap azure/functions
brew trust azure/functions
brew install azure-functions-core-tools@4
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I then created a new Function project using the CLI, following these &lt;a href=&quot;https://learn.microsoft.com/en-us/azure/azure-functions/functions-run-local?tabs=macos%2Cisolated-process%2Cnode-v4%2Cpython-v2%2Chttp-trigger%2Ccontainer-apps&amp;amp;pivots=programming-language-csharp&quot;&gt;instructions&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;func init --worker-runtime dotnet-isolated --language csharp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And then attempt to run it:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;dotnet run
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And was greeted by this error:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Failed to start language worker process for runtime: dotnet-isolated. workerId:80487f5d-6d73-4858-a55a-2e56d0853367
Language Worker Process exited. Pid=4680.
Microsoft.Azure.WebJobs.Script.Grpc: dotnet exited with code 134 (0x86). Unhandled exception. System.InvalidOperationException: A connection string was not found. Please set your connection string.
Removing errored webhost language worker channel for runtime: dotnet-isolated workerId:80487f5d-6d73-4858-a55a-2e56d0853367
Microsoft.Azure.WebJobs.Script.Grpc: dotnet exited with code 134 (0x86). Unhandled exception. System.InvalidOperationException: A connection string was not found. Please set your connection string.
A host error has occurred during startup operation &apos;67dfffee-7a1e-4970-9014-209232677f0f&apos;.
Microsoft.Azure.WebJobs.Script.Grpc: dotnet exited with code 134 (0x86). Unhandled exception. System.InvalidOperationException: A connection string was not found. Please set your connection string.
Failed to stop host instance &apos;a4c866ff-2d8e-4423-b022-308f56a22348&apos;.
Microsoft.Azure.WebJobs.Host: The host has not yet started.
meter &apos;provider&apos;)
Host startup operation has been canceled
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That&apos;s a weird error. My Function app is pretty much empty - there&apos;s the &lt;code&gt;Program.cs&lt;/code&gt; file but I haven&apos;t even added any actual Functions yet!&lt;/p&gt;
&lt;p&gt;A bit of searching and throwing the error at Copilot turned up the suggestion that it&apos;s the &lt;code&gt;UseAzureMonitorExporter()&lt;/code&gt; method call that is added by default in &lt;code&gt;Program.cs&lt;/code&gt; that is the culprit:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;builder.Services.AddOpenTelemetry()
    .UseFunctionsWorkerDefaults()
    .UseAzureMonitorExporter();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It is throwing an error because &lt;code&gt;APPLICATIONINSIGHTS_CONNECTION_STRING&lt;/code&gt; environment variable has not been set. It&apos;s a pity the error message was not more descriptive.&lt;/p&gt;
&lt;p&gt;The solution is to either change the code so that &lt;code&gt;UseAzureMonitorExporter()&lt;/code&gt; is only called if that environment variable has been set, or alternatively make sure that it is set.&lt;/p&gt;
&lt;p&gt;For local development you can add it to your &lt;code&gt;local.settings.json&lt;/code&gt; file. If you don&apos;t have a real App Insights resource to point to, you can set it to &lt;code&gt;InstrumentationKey=00000000-0000-0000-0000-000000000000&lt;/code&gt; which is recognised as a &quot;null&quot; connection string. With that value it no longer fails, but all traces and telemetry are just ignored.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;IsEncrypted&quot;: false,
  &quot;Values&quot;: {
    &quot;AzureWebJobsStorage&quot;: &quot;UseDevelopmentStorage=true&quot;,
    &quot;FUNCTIONS_WORKER_RUNTIME&quot;: &quot;dotnet-isolated&quot;,
    &quot;APPLICATIONINSIGHTS_CONNECTION_STRING&quot;: &quot;InstrumentationKey=00000000-0000-0000-0000-000000000000&quot;
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you deployed this Function App to Azure, you would ideally have a real Application Insights resource, and had set the &lt;code&gt;APPLICATIONINSIGHTS_CONNECTION_STRING&lt;/code&gt; to point to it.&lt;/p&gt;
&lt;p&gt;See &lt;a href=&quot;https://learn.microsoft.com/en-us/azure/azure-monitor/app/connection-strings&quot;&gt;Connection strings in Application Insights&lt;/a&gt; for more info about what options there are for connection strings.&lt;/p&gt;
&lt;p&gt;Not an ideal experience. Hopefully they&apos;ll update the generated code so that it includes that so things work right out of the box.&lt;/p&gt;
</content>
    <media:thumbnail url="https://david.gardiner.net.au/_astro/azure-function.B3FwAwqX.png" width="400" height="400"/>
    <media:content medium="image" url="https://david.gardiner.net.au/_astro/azure-function.B3FwAwqX.png" width="400" height="400"/>
  </entry>
  <entry>
    <id>https://david.gardiner.net.au/2026/06/macbookpro</id>
    <updated>2026-06-09T15:00:00.000+09:30</updated>
    <title>I bought a MacBook Pro!</title>
    <link href="https://david.gardiner.net.au/2026/06/macbookpro" rel="alternate" type="text/html" title="I bought a MacBook Pro!"/>
    <category term="Hardware"/>
    <category term="macOS"/>
    <category term="Work"/>
    <published>2026-06-09T15:00:00.000+09:30</published>
    <summary type="html">The decision has been made. David is broadening his hardware horizons with the selection of an Apple MacBook Pro as his next laptop.</summary>
    <content type="html">&lt;p&gt;So last time I shared how I was trying to figure out &lt;a href=&quot;/2026/05/which-laptop&quot;&gt;what my next laptop would be&lt;/a&gt;. Well I made a decision.. and it is a bit of a surprising one, but yes. I now have an Apple MacBook Pro!&lt;/p&gt;
&lt;p&gt;I remember the first time I attended Microsoft&apos;s &lt;a href=&quot;/2015/11/north-america-trip-mvp-summit-2015&quot;&gt;MVP Summit&lt;/a&gt; in Redmond back in 2015, being really surprised at the number of MVPs and Microsoft staff that were using MacBooks. I just assumed being a Microsoft event everyone would be using Windows, but apparently not. That made a lasting impression.&lt;/p&gt;
&lt;p&gt;More recently I&apos;ve read with interest how a few of my SixPivot colleagues have been using MacBooks for work. Some were long-time Mac users, others more recent adopters. One good piece of advice was to make sure you still had a good Windows laptop available. We work with a diverse range of clients - some provide their own laptops (often with preconfigured VPN/security software), some allow you to use your preferred device, and some might need it to be a Windows machine. My old Dell is still in good shape, so I have that covered.&lt;/p&gt;
&lt;p&gt;After weighing up all the options I wrote about in the last post, I ended up picking the MacBook.&lt;/p&gt;
&lt;p&gt;The specs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;16-inch MacBook Pro in Space Black with M5 Pro chip&lt;/li&gt;
&lt;li&gt;18-core CPU, 20-core GPU, 16-core Neural Engine&lt;/li&gt;
&lt;li&gt;64GB unified memory&lt;/li&gt;
&lt;li&gt;2TB SSD storage&lt;/li&gt;
&lt;li&gt;Standard display&lt;/li&gt;
&lt;li&gt;US English Backlit Magic Keyboard with Touch ID&lt;/li&gt;
&lt;li&gt;Three Thunderbolt 5 ports, MagSafe 3 port, 3.5mm headphone jack, HDMI port, SDXC card slot&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/macbook-with-box.aih314YC_2GN1M.webp&quot; alt=&quot;New MacBook Pro laptop sitting on the box it came in&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Physically it&apos;s not dissimilar to other laptops I&apos;ve used. One obvious thing is the different arrangement of modifier keys on the keyboard. (More about that later).&lt;/p&gt;
&lt;p&gt;The getting started process was pretty straightforward:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Confirm language and region&lt;/li&gt;
&lt;li&gt;Optionally transfer data from another device (I chose to set up as new)&lt;/li&gt;
&lt;li&gt;Accessibility preferences&lt;/li&gt;
&lt;li&gt;Data and privacy preferences&lt;/li&gt;
&lt;li&gt;Creating a local Mac account&lt;/li&gt;
&lt;li&gt;Optionally then sign in with Apple Account (which I did)&lt;/li&gt;
&lt;li&gt;Confirm Mac settings&lt;/li&gt;
&lt;li&gt;Siri and AI&lt;/li&gt;
&lt;li&gt;Notifications&lt;/li&gt;
&lt;li&gt;Touch ID&lt;/li&gt;
&lt;li&gt;Apple Pay&lt;/li&gt;
&lt;li&gt;And then you&apos;re about done.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A friendly welcome screen and we&apos;re up and running. Sometimes change is a good thing. You can challenge your habits and assumptions and sometimes find better ways of doing things.&lt;/p&gt;
&lt;h2&gt;Nice things&lt;/h2&gt;
&lt;p&gt;Everyone raves about battery life, especially with the newer ARM-based MacBooks. For the most part I&apos;m seeing this to be true.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://support.apple.com/en-au/guide/app-store/fird2c7092da/mac&quot;&gt;integration with iPhone apps&lt;/a&gt; is nifty. I wrote a few years back &lt;a href=&quot;/2011/02/comparison-of-public-weather-forecasts&quot;&gt;how dodgy a lot of the weather data for Australia is&lt;/a&gt;. So it&apos;s nice that through this feature I can have the Australian Bureau of Meteorology&apos;s iOS app sitting on my desktop as a &lt;a href=&quot;https://support.apple.com/en-au/guide/mac-help/mchl52be5da5/mac&quot;&gt;widget&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/desktop-gadgets.rpQC1f3S_ZT77Fa.webp&quot; alt=&quot;Screenshot of macOS desktop showing calendar and Adelaide weather gadgets&quot; /&gt;&lt;/p&gt;
&lt;p&gt;That integration also includes Messages, Phone and FaceTime. Messages is the one I&apos;ve noticed the most, as they pop up as notifications in macOS in addition to on my iPhone. As I normally have my phone on silent, the &apos;ding&apos; from macOS surprised me at first. Being able to copy/paste screenshots into Messages from macOS is a nice bonus. Yes, you can do that on iPhone, but it is much easier viewing a 600 page PDF on a big screen that you want to copy a diagram out of.&lt;/p&gt;
&lt;h2&gt;New and different things&lt;/h2&gt;
&lt;p&gt;macOS is Unix-based. Or according to Wikipedia: A &quot;proprietary Unix operating system, derived from OPENSTEP for Mach and FreeBSD&quot;.&lt;/p&gt;
&lt;p&gt;As an experienced iPhone user, there are some areas of the user interface that are quite familiar. System Settings is a good example.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/macos-system-settings.LSeT9782_Z8Kvep.webp&quot; alt=&quot;Screenshot of macOS System Settings&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I suspect many Mac users may have never even opened a shell and are quite happy sticking with the GUI interface. macOS comes with &apos;Terminal&apos; as the default terminal program, and &lt;a href=&quot;https://zsh.sourceforge.io/&quot;&gt;zsh&lt;/a&gt; as the default shell.&lt;/p&gt;
&lt;p&gt;zsh is an interesting choice for macOS - it&apos;s apparently &lt;a href=&quot;https://sourceforge.net/p/zsh/code/commit_browser&quot;&gt;still hosted on SourceForge&lt;/a&gt; (there&apos;s a blast from the past!), but from what I&apos;ve seen online, the reason Apple chose it was due to the software license it uses.&lt;/p&gt;
&lt;p&gt;I could switch to another shell (including PowerShell) but for now I want to immerse myself in all things &apos;Mac&apos; so becoming more acquainted with zsh is the way to go.&lt;/p&gt;
&lt;p&gt;I have installed &lt;a href=&quot;https://ghostty.org/&quot;&gt;Ghostty&lt;/a&gt; on the recommendation of &lt;a href=&quot;https://blog.gertjvr.com/&quot;&gt;Gert&lt;/a&gt; and have been using that in preference to Terminal.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/ghostty.DLMn2rUY_Z1Y7uvJ.webp&quot; alt=&quot;Ghostty screenshot&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Swiping to switch applications&lt;/h3&gt;
&lt;p&gt;I&apos;ve been impressed when I&apos;ve seen other MacBook users somehow swishing left and right between fullscreen applications. I accidentally swiped with three fingers on the trackpad and discovered that was how you do that! &lt;kbd&gt;Command&lt;/kbd&gt;-&lt;kbd&gt;Tab&lt;/kbd&gt; is the keyboard equivalent (and similar to Windows Alt-&lt;kbd&gt;Tab&lt;/kbd&gt;)
&lt;/p&gt;&lt;h3&gt;Menus&lt;/h3&gt;
&lt;p&gt;This has caught me out a few times, and I was vaguely aware of this but had kind of forgotten. macOS menus always live at the top of the screen. Sometimes if the application you&apos;re using is fullscreen then the menu will disappear unless you mouse up to the top.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/finder-menu.D6UM4Ym4_Z1l8IVi.webp&quot; alt=&quot;screenshot of menus&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Start menu&lt;/h3&gt;
&lt;p&gt;It&apos;s called the Dock, it lives at the bottom, and like the application menus hides itself unless you mouse down the bottom of the screen.&lt;/p&gt;
&lt;p&gt;I do keep hitting the &lt;kbd&gt;Command&lt;/kbd&gt; key thinking it&apos;s the &lt;kbd&gt;Windows&lt;/kbd&gt; key and it will bring up the dock (or Apps list). Turns out I should be using &lt;kbd&gt;Fn&lt;/kbd&gt;-&lt;kbd&gt;A&lt;/kbd&gt; and &lt;kbd&gt;Fn&lt;/kbd&gt;-&lt;kbd&gt;Shift&lt;/kbd&gt;-&lt;kbd&gt;A&lt;/kbd&gt; respectively.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/dock.a4IM3S1-_Z1KrVou.webp&quot; alt=&quot;screenshot of dock&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Keyboard&lt;/h3&gt;
&lt;p&gt;The keyboard is fine. The feel is quite comparable to my Dell, which I&apos;ve had no complaints with. As I mentioned above, the modifier keys are slightly different. There&apos;s a &lt;kbd&gt;Control&lt;/kbd&gt; key but it is used differently to Windows. All the familiar shortcuts that you&apos;d use &lt;kbd&gt;Ctrl&lt;/kbd&gt; on Windows, you actually use the &lt;kbd&gt;Command&lt;/kbd&gt; key (with the funny squiggle &apos;⌘&apos;).&lt;/p&gt;
&lt;p&gt;So close, but so different:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/windows-modifier-keys.De9A2oJr_SUasB.webp&quot; alt=&quot;Windows keyboard showing modifier keys&quot; /&gt;&lt;img src=&quot;https://david.gardiner.net.au/_astro/mac-modifier-keys.DSil0LSd_cu6Xd.webp&quot; alt=&quot;MacBook Pro keyboard showing modifier keys&quot; /&gt;&lt;/p&gt;
&lt;p&gt;And no &lt;kbd&gt;Delete&lt;/kbd&gt; key! How bizarre. Well technically there is a key that Apple refers to as &apos;Delete&apos;, but it has the ⌫ icon and acts like what I think of as &lt;kbd&gt;Backspace&lt;/kbd&gt; (in that it deletes the character to the left and moves left). If you use &lt;kbd&gt;fn&lt;/kbd&gt;-&lt;kbd&gt;Delete&lt;/kbd&gt; then that does the equivalent of a normal delete key (Apple refer to this as &apos;forward delete&apos;), or you may be able to use &lt;kbd&gt;Control&lt;/kbd&gt;-&lt;kbd&gt;D&lt;/kbd&gt;.&lt;/p&gt;
&lt;p&gt;I need to memorise the &lt;a href=&quot;https://support.apple.com/en-us/102650&quot;&gt;Mac keyboard shortcuts&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;I also regularly use an external keyboard. That creates a conundrum. When connected to my MacBook, do I:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use the modifier keys on the external keyboard like they physically mirror the ones on the MacBook Pro keyboard, or&lt;/li&gt;
&lt;li&gt;Change the mapping of the external keyboard so that I use it in same way as when I&apos;m connected to a Windows machine.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I guess the question is which muscle memory is a stronger trigger - does the &quot;feel&quot; of the external keyboard have me fall into thinking &quot;Windows&quot; modifiers, or does looking at the MacBook Pro screen help transition my brain&apos;s process to work in &quot;Apple&quot; mode?&lt;/p&gt;
&lt;h2&gt;Equivalent things&lt;/h2&gt;
&lt;p&gt;As &lt;a href=&quot;https://chocolatey.org/&quot;&gt;Chocolatey&lt;/a&gt; is for Windows, &lt;a href=&quot;https://brew.sh/&quot;&gt;Homebrew&lt;/a&gt; is a package manager for macOS (and also Linux). Where possible I&apos;ve been using &lt;code&gt;brew&lt;/code&gt; to install software.&lt;/p&gt;
&lt;p&gt;It&apos;s nice to find familiar applications are available on both platforms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.firefox.com&quot;&gt;Firefox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;Visual Studio Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/en-au/microsoft-365&quot;&gt;Microsoft Office&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bitwarden.com/&quot;&gt;Bitwarden&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://slack.com/intl/en-au/&quot;&gt;Slack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.scootersoftware.com/&quot;&gt;Beyond Compare&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Missing things&lt;/h2&gt;
&lt;p&gt;A few Windows favourites that I will need to find alternatives to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://paint.net/&quot;&gt;Paint.NET&lt;/a&gt; (I&apos;m trying &lt;a href=&quot;https://www.gimp.org/&quot;&gt;GIMP&lt;/a&gt; but it feels overly complex for what I need)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tortoisegit.org/&quot;&gt;TortoiseGit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Weird things&lt;/h2&gt;
&lt;p&gt;I&apos;m quite used to Windows Hello being able to sign me in by looking at me on my Windows laptop. Likewise on my iPhone using Face ID. So it is really odd that this is missing on the MacBook. I&apos;ve found myself a few times smiling sweetly at my sleeping laptop, only to realise that it was oblivious to my attentions. There is Touch ID at least.&lt;/p&gt;
&lt;p&gt;I started to install the &lt;a href=&quot;https://www.synology.com/en-global/dsm/packages/ActiveBackup&quot;&gt;Synology Active Backup for Business agent&lt;/a&gt;, but there&apos;s some extra steps that sounded tricky. That may deserve a separate blog post if I get it working.&lt;/p&gt;
&lt;h2&gt;Limited support for Dell docks&lt;/h2&gt;
&lt;p&gt;I have a &lt;a href=&quot;/2021/02/new-laptop&quot;&gt;Dell WD19TB Dock&lt;/a&gt; that I usually run two of my three monitors through. I was a bit surprised to discover that the MacBook couldn&apos;t see the second external monitor connected to the dock - it was just mirroring the same content on both. I found this documentation on &lt;a href=&quot;https://www.dell.com/support/kbdoc/en-au/000124312/dell-thunderbolt-dock-wd19tb-and-apple-usb-c-hosts&quot;&gt;Dell Thunderbolt Docks and Apple USB-C Hosts&lt;/a&gt; which explains what is possible.&lt;/p&gt;
&lt;p&gt;It turns out macOS doesn&apos;t support &quot;&lt;a href=&quot;https://www.intel.com/content/www/us/en/support/articles/000059105/graphics.html&quot;&gt;Multi-Stream Transport&lt;/a&gt;&quot;. And if you&apos;re using DisplayPort and DisplayPort/HDMI (which I was), then mirroring is what happens. The workaround is to make sure one of the monitors is instead connected via USB-C. None of my monitors have USB-C output, so I bought one of these &lt;a href=&quot;https://www.amazon.com.au/gp/product/B0DJSHRWFT?th=1&amp;amp;linkCode=ll2&amp;amp;tag=flcdrg07-22&amp;amp;linkId=fcb96e0b880ec7f1655eae1dbe21b454&amp;amp;ref_=as_li_ss_tl&quot;&gt;USB-C to HDMI cables&lt;/a&gt;, and sure enough I then had two distinct external monitors.&lt;/p&gt;
&lt;p&gt;While the dock can technically host 3 monitors, it doesn&apos;t look like that will work at all with macOS. I usually run the 3rd monitor through a separate hub (as my Dell laptop can&apos;t run 3 through the dock at high resolution), so I can do the same with the MacBook.&lt;/p&gt;
&lt;p&gt;According to the &apos;M5 Pro chip&apos; section of &lt;a href=&quot;https://support.apple.com/en-us/101571#macbook-pro-m5-pro&quot;&gt;How many displays can be connected to MacBook Pro&lt;/a&gt;, 3 external displays is the hard limit.&lt;/p&gt;
&lt;h2&gt;SixPivot laptop allowance&lt;/h2&gt;
&lt;p&gt;One of the things I realised when I was researching laptops was that, even though the &lt;a href=&quot;https://handbook.sixpivot.com.au/perks-and-benefits/laptop-allowance#how-the-laptop-scheme-works&quot;&gt;laptop allowance at SixPivot&lt;/a&gt; is very generous, because of the crazy hardware price hikes, you don&apos;t get as much as you used to. I&apos;m pleased to see that just in the last few days they&apos;ve not only increased the allowance, but also provided a second option if you are happy to wait 3 years for a hardware refresh instead of the normal 2. In two (or three) years time that will be something to consider.&lt;/p&gt;
&lt;h2&gt;Onwards&lt;/h2&gt;
&lt;p&gt;It&apos;s been a pretty smooth start. I&apos;m looking forward to learning more about what this machine can do 😀&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</content>
    <media:thumbnail url="https://david.gardiner.net.au/_astro/macbook-with-box.aih314YC.jpg" width="857" height="643"/>
    <media:content medium="image" url="https://david.gardiner.net.au/_astro/macbook-with-box.aih314YC.jpg" width="857" height="643"/>
  </entry>
</feed>
