Hands-on with Augment Code(3 min read)

Augment Code, one of the new AI-powered coding assistants, promises to make software development faster and more intuitive. But does it hold up in real-world scenarios, beyond demo apps and sample code?

Open source software provides a great opportunity to learn these tools with real code, solving real problems. Plus you get to contribute back to the community.

I decided to put Augment Code through its paces by solving a practical improvement I wanted to make to the pysunspec2 project, involving home IoT devices and solar energy controllers.

Continue reading Hands-on with Augment Code(3 min read)

SmartSetup is the best Matter switch so far(6 min read)

It is not perfect, but the best Matter switch I’ve found so far, for Australia, is the Matter over Thread series by SmartSetup (also available on Amazon).

I’ve previously reviewed a few Matter inline switch modules, including the Sonoff MINIR4M and Zemismart ZME2 dual inline switch, however all older ones are WiFi.

Now Thread-based switches, and inline modules, are starting to appear on the market, and will be a key element to building the mesh backbone of a Thread network.

This article will go through a few of the reasons why the SmartSetup is great, considering external switches vs inline modules, Thread vs wi-fi, and support for detached relay/smart light mode.

I still think there are improvements to be made, so I’ll finish with a discussion of Matter control Binding, and an outline of my ideal device.

SmartSetup packaging

Continue reading SmartSetup is the best Matter switch so far(6 min read)

D&D 2024 – New spellcasting rules(5 min read)

The rules for how you can cast multiple spells in a turn have slightly changed in the new 2024 rules. In some areas they are more permissive, and in others they are less.

The main rule is:

“On a turn, you can expend only one spell slot to cast a spell.”

The other rule, relevant to Sorcerer metamagic Quickened Spell is:

“You can’t modify a spell in this way if you’ve already cast a level 1+ spell on the current turn, nor can you cast a level 1+ spell on this turn after modifying a spell in this way.”

The rules are more permissive by allowing combining with Bonus Action spells, not just cantrips, but other spells that don't use slots, such as free daily spells (e.g. Fey Touched), Aberrant Sorcerer Psionic Sorcery, and Warlock Mystic Arcanum.

Downsides are that you generally can't cast Reaction spells for your own spells, such as Silvery Barbs or Counterspell (an opposing Countspell) -- you either need to not use a slot, or use teamwork -- and that Action Surge no longer allows spellcasting.

Sorcerer metamagic Quickened Spell still restricts any other Level 1+ spell, so you need to quicken the main spell and can then use a cantrip (and not the other way around). Because of the Level 1+ restriction, it is irrelevant whether you use a slot or not.

A table of specific combinations is provided.

Continue reading D&D 2024 – New spellcasting rules(5 min read)

Mainline branching strategy using GitVersion(5 min read)

Many versioning and branching strategies are available. I prefer a simple approach: mainline development using GitVersion for automatic Semantic Versioning.

Branch diagram showing Mainline branching strategy

Continue reading Mainline branching strategy using GitVersion(5 min read)

Setting up iZone climate control with Home Assistant(11 min read)

The iZone Climate Control system is an effective way to manage ducted air conditioning in your home allowing multiple zones with separate target temperatures and controlling the central unit and airflow to each area.

Through the bridge component you can integrate it locally with Home Assistant, as well as other smart home platforms (Google etc, Apple Home, etc). The iZone platform supports other components (lights, irrigation, etc), however I am focussing on the climate control.

You need some additional manual configuration to bring in all the system details, including the current control zone, target temperature, supply temperature, and operating modes.

Once configured you can set up a dashboard to track the climate in your house throughout the day:

History graph of temperatures and climate control states

Continue reading Setting up iZone climate control with Home Assistant(11 min read)

Hands on with Matter and Thread(11 min read)

Matter and Thread offer many benefits, with standardised interoperability, local-only control, built-in security, multi-admin, and IPv6 support — helping drive IPv6 adoption and development skills.

Several devices have now launched, and I have tried out a few of the available devices with Google Home and Home Assistant, however these are early days, and feature implementation still lags behind native integrations in some significant areas.

Thread-based devices:

  • Nanoleaf Essentials light bulb and LED light strip
  • Eve Home smart plug

Wi-Fi devices:

  • Sonoff MINIR4M inline switch
  • Zemismart ZME2 dual inline switch
  • Wiz light bulbs
  • Tapo P110m smart plug

Most devices initially required their native app for firmware upgrades (although the new Eve device updated without it), and there were many features only accessible via native apps (even where the features are in the Matter standard).

In particular none of the switches had separate switch and relay parts for detached operation via Matter bindings, although the Sonoff does support detached mode via the native app, and the Zemismart had the Binding cluster but I couldn't get it working.

Continue reading Hands on with Matter and Thread(11 min read)

Deploying a secure LwM2M IPv6 test server on AWS(15 min read)

Lightweight Machine-to-Machine (LwM2M) is a compact protocol design for Internet-of-Things (IoT) scenarios, that provides end-to-end services including efficient transport, encryption, device lifecycle, and messaging semantics. Devices deployed to the field will connect to full LwM2M endpoints, however you may also want to deploy your own LwM2M demo server for testing purposes.

This article shows you how to deploy an Eclipse Leshan server onto Amazon Web Services (AWS), configured for secure connections (COAPS for messaging, and HTTPS with basic authentication for the Web UI), accessible over the internet, and including support for both IPv6 and legacy IPv4.

First we will configure a network in AWS, then deploy the server, and then test the deployment.

AWS container diagram

Continue reading Deploying a secure LwM2M IPv6 test server on AWS(15 min read)

AI and copyright: Addressing an incongruity(4 min read)

In our rapidly evolving digital age, traditional concepts such as copyright are being rigorously tested. The advent of Artificial Intelligence (AI), in particular, has initiated a crucial debate on the validity and efficacy of existing copyright laws. This debate becomes particularly intense when we consider the striking difference in the treatment of photographs and AI-generated art under current copyright laws. This discrepancy calls into question our collective understanding of creativity, ownership, and the essence of copyright itself. Is it time for us to reevaluate the concept of copyright in the digital era?

Continue reading AI and copyright: Addressing an incongruity(4 min read)

Device Authentication with Nordic Thingy:91 and Azure IoT Hub(22 min read)

Security is an important topic for the Internet of Things, and there are several considerations to secure device identity. A good practice is to use secure protocols (such as TLS or DTLS) for transmitting any sensitive information over the network and to ensure that passwords and other sensitive information are securely stored.

This article will provide an example of using X.509 client certificates for connecting to Azure IoT, using the Nordic Thingy:91 platform. The certificates are securely loaded directly to the device, so they are not exposed in the device firmware.

Using certificates allows a hierarchy of trust to be established, allowing system owners to delegate certificate management to third parties while retaining control of the root trust.

The article also covers the usage of IPv6, and accessing IPv4 servers from the Telstra IoT network, running in IPv6-only mode and using NAT64.

Nordic Thingy:91 Cellular IoT Prototyping Platform, unboxed.

Continue reading Device Authentication with Nordic Thingy:91 and Azure IoT Hub(22 min read)