This is only a preview of the October 2025 issue of Silicon Chip. You can view 34 of the 104 pages in the full issue, including the advertisments. For full access, purchase the issue for $10.00 or subscribe for access to the latest issues. Items relevant to "Digital Preamp & Crossover":
Items relevant to "HomeAssistant, Part 2":
Items relevant to "Vacuum Controller":
Items relevant to "Dual Train Controller":
Articles in this series:
Purchase a printed copy of this issue for $14.00. |
Part 2 by Richard palmer
HOME
ASSISTANT
R
P
with a
aspberry
i
Having set up a custom
Home Automation (HA)
system, we now look
at advanced features
like cameras, custom
dashboards, IR remote
control, notifications
and remote access on a
mobile phone, tablet or PC.
L
ast month, our article on Home Automation explained how to set up a Raspberry Pi to act as a Home Automation hub. We also presented a project
article to build a Satellite, allowing
the connection of all sorts of low-cost
sensors, relays, displays and more.
We mentioned some cameras that
can be connected to this HA system
but didn’t give instructions on doing
so. We will now explain how to connect a few different types of camera.
After that, we will create a custom
dashboard, a temperature history chart
and an adjustable thermostat. We will
then look at switching devices on and
off with infrared remote control, set
up remote access from a smartphone
or tablet using a VPN and create an
intruder alert with a passive infrared
(PIR) sensor detects motion.
Finally, we will explain how to back
up your HA system in case something
goes wrong.
configure. Daylight image quality was
limited, but good enough for many
purposes.
The ONVIF IP camera was the most
complex to set up, requiring a smartphone app to connect it to the network.
Two of the four IP cameras we obtained
were not ONVIF-compliant, despite
their specifications saying they were.
Once connected to the network
using the mobile phone app, the two
ONVIF-compliant cameras were automatically set up by HA. These cameras
produced the best pictures overall,
particularly in poor light or darkness.
Both had pan and tilt capabilities that
could be accessed from HA.
USB camera setup
Plug the USB (UVC) camera into a
spare port on the Raspberry Pi. There is
no need to switch the hub off to do this.
Click on your name at the bottom
of the left menu bar. Enable the
“Advanced mode” slider in the first
block of options. Go to Settings, then
System, then Hardware and click
on the ALL HARDWARE link. Type
“video” into the search box.
Click on the down arrow next to the
first entry that resembles “video0”.
Copy the “Device path:” value. It will
be something like “/dev/video0”.
Exit the menu and go to Settings,
then Add-ons. Install the “File editor” add-on by going to the ADD-ON
STORE and searching for “file”. Once
it has finished installing, enable the
“Watchdog” and “Show in sidebar”
options and start the add-on.
Once it has started, click on the File
editor link in the sidebar menu. The
file “/homeassistant/configuration.
yaml” should open automatically. If
not, click on the folder icon at the
top left corner of the panel and select
Setting up cameras
Three of the options for adding a
camera to HomeAssistant are explored
below: a USB camera connected
directly to the HA hub; a $10 ESP-CAM
converted into an ESPHome webcam,
and an ONVIF compliant IP camera
with pan and tilt functions. Each has
advantages and disadvantages.
The UVC-compliant USB camera
was the easiest to configure, but must
be plugged directly into the HA hub.
It provided good images in daylight.
The ESP-CAM has WiFi and was the
least expensive and straightforward to
46
Silicon Chip
Screen 8: the USB camera’s card in
the Overview dashboard.
Screen 9: the ESP-CAM card with the
LED toggle visible.
Australia's electronics magazine
siliconchip.com.au
“configuration.yaml”. Click the red
edit icon at the bottom right-hand corner of the screen.
Add the code shown in Block #1 at
the end of the file (you need to type
the indentation spaces exactly like
this, not just the text - indents are two
spaces), and save it with the red disk
icon at the top right.
Restart Home Assistant using the
cog icon at the top right of the screen.
Once HA has restarted, the camera
card should appear in the Overview
dashboard – see Screen 8.
Setting up the ESP-CAM
ESP-CAMs have an ESP32 microcontroller attached to a small camera
module. If the USB daughterboard was
not supplied with your camera, you
will need a USB-to-TTL serial adaptor to complete the process. You can
find instructions for doing that from
siliconchip.au/link/ac5x
Now connect the ESP-CAM to a
USB port on the HA hub. In ESPHome
Builder, click on +NEW DEVICE and
name your device ESP-CAM or similar.
Select ESP32 as the device type. Click
INSTALL, then select “Plug into the
computer running ESPHome Device
Builder”.
A USB Serial device should be
identified. Select it, and the firmware
should automatically compile and
upload. It might take some time for the
ESP32 platform files and libraries to
download before compilation begins.
Once the compilation and ESP32 programming are complete, the ESP-CAM
should be visible in the ESPHome
Builder tab.
Add the code from Block #2 to the
device’s YAML configuration file in
ESPHome Builder and re-install the
firmware wirelessly (again, you must
include any spaces at the start of the
lines exactly like this).
Once the device has rebooted, go to
Settings then Devices & services and
accept the discovered device, naming it ESPCAM or similar. Re-load the
Overview dashboard and a new entry
for ESP-CAM, and its associated LED
switch should appear within a minute or so – see Screen 9. The ESPCAM
LED slider enables the onboard LED.
If the camera image does not appear,
it is likely that your camera doesn’t
follow the original AI-Thinker pinouts. Opening the logs may help you
figure out what’s going on. Several
other pin-out options are available in
siliconchip.com.au
CODE BLOCK #1
## USB_camera.yaml
camera:
- platform: ffmpeg
name: USBcam
input: /dev/video0
CODE BLOCK #2
## ESPCAM.yaml
esp32_camera:
external_clock:
pin: GPIO0
frequency: 20MHz
i2c_pins:
sda: GPIO26
scl: GPIO27
data_pins: [GPIO5, GPIO18, GPIO19,
GPIO21, GPIO36, GPIO39, GPIO34, GPIO35]
vsync_pin: GPIO25
href_pin: GPIO23
pixel_clock_pin: GPIO22
power_down_pin: GPIO32
## Image settings
name: ESPcam
id: ESPCAM
switch:
- platform: gpio
id: espcam_led
name: “ESPCAM LED”
pin: 4
CODE BLOCK #3
## SamsungTV_IR.yaml
## IR funtions for Pico
external_components:
- source: github://pr#5974
components: [remote_transmitter]
refresh: always
## IR infra red
remote_transmitter:
pin: 0
carrier_duty_percent: 50%
## toggle power on/off
button:
- platform: template
name: “TV on/off”
id: TV_toggle
on_press:
- remote_transmitter.transmit_pronto:
data: “paste hex string here”
CODE BLOCK #4
{{now() - state_attr(‘’automation.Intrusion’’, ‘’last_triggered’’) >
timedelta(minutes = 1) }}
CODE BLOCK #5
## intruder_alert_enable.yaml
- platform: template
name: “Intruder active”
id: Intruder_active
optimistic: True
the documentation at siliconchip.au/
link/ac5y
IP camera setup
While integrating an IP camera
into HA is straightforward, finding
a camera compliant with the ONVIF
standard for pan, tilt and zoom (PTZ)
can be tricky. Marketplaces like eBay
or AliExpress will return hundreds
of matches to a search for “ONVIF
Australia's electronics magazine
These code blocks will be
available as a download
from siliconchip.com.au/
Shop/6/2482
webcam” or “ONVIF IP camera”.
Check in the item’s specifications for
a mention of ONVIF compliance.
I had the most success with V380
cameras that also indicate ONVIF
compliance.
Install the camera on your local network using the app that applies to your
camera, eg, V380 or V380 Pro. I found
the V380 mobile phone app straightforward to use; the cameras behave like
October 2025 47
Screens 10 & 11: the IP camera’s dashboard card (left), and the dashboard card with pan and tilt controls added.
a WiFi hotspot when first switched on.
This time, we’ll launch the installation via a link on the HomeAssistant website. Navigate to the ONVIF
page on the HomeAssistant webpage
(www.home-assistant.io/integrations/
onvif) and click on the blue ADD INTEGRATION TO MY button. Accept the
invitation to open another HA settings
page as well as the “Do you want to
set up ONVIF” prompt.
Allow the device setup to search
automatically for your camera. Your
camera should appear in the “Select
ONVIF device” pop-up options. Select
it and click SUBMIT. Name your camera “IP camera” and finish the setup.
Refresh the Overview dashboard and
the camera should appear, as shown
in Screen 10.
The pan and tilt functions can’t be
enabled in the automatically configured Overview dashboard, as additional code needs to be added to the
display card. These functions will be
enabled later, when creating a custom
dashboard.
sign icon inside the dashed box to
create the section, then click the “+”
sign within the section to create a new
card. Type “picture” into the search
box and select “Picture glance” from
the results.
Select your IP camera from the Camera entity drop-down menu. In the
“Entities (required)” section, delete
the existing entries. Click on SHOW
CODE EDITOR immediately below.
In the “entities:” section of the
existing configuration, below the
existing “- entity” line, paste the contents of the IP_camera.yaml file from
the download pack (siliconchip.au/
Shop/6/2482) and save the configuration. The “camera_image” line should
be after the pasted text. Click DONE
to exit editing mode. The pan and tilt
controls on the camera card should
look like those shown in Screen 11;
you can test them now.
If the arrows don’t appear on the
camera card, it’s likely that you have
pasted the file into the wrong spot
or your camera’s stream name is different from the one in the file. In the
latter case, make all references to the
camera the same as the one in the “entity” line.
A temperature history chart
This section relies on you having built the Satellite described last
month, which incorporates a temperature sensor, relay and LED indicating
when the relay is on.
To create another card for the temperature graph in a new section on the
dashboard, enter editing mode and
click on the “+” sign. Type “history”
into the search box and select “History
graph”. Change “Hours to show” to 1.
Under the “Entities” heading, delete
any existing entity and add “myHome
Temperature” from the drop-down list,
then save the result. A graph of the
temperature over the last hour should
appear, as shown in Screen 12.
A custom dashboard
So far, we’ve relied on the Overview
dashboard, which is maintained automatically by HA. While it displays all
the enabled devices, more advanced
features are not available. The system
supports multiple dashboards, so we
will create one to enable the pan and
tilt functions of the IP camera and to
graph temperature over time.
Go to Settings, then Dashboards and
select + ADD DASHBOARD. Select the
“New dashboard from scratch” option
and make the Title “myDash”. “Show
in sidebar” should be enabled. Select
your new dashboard from the main
left menu and click on the edit pencil
at the top right corner of the screen.
To create a card for the IP camera
in a new section on the dashboard,
click on the four squares and a “+”
48
Silicon Chip
Screen 12: the custom temperature-over-time chart shown at the bottom and the
relay LED history shown at the very top.
Australia's electronics magazine
siliconchip.com.au
To complete the dashboard, we can
add a timeline to show when the thermostat was switched on. Re-open the
card by clicking on the pencil that
appears when you hover over the control. Add a second entity, “myHome
Relay LED” to the card. Click Save
and a timeline should appear above
the graph. Click DONE to exit editing mode.
Place your finger on the temperature
sensor. When the LED lights due to the
AC On automation triggering, the end
of the grey bar should turn yellow as
the temperature graph spikes – see the
top of Screen 12.
A better thermostat
The thermostat created in last
month’s article lacks a key feature: the
ability to easily change the temperature setpoint. HomeAssistant has a
generic thermostat integration that can
control the relay. First, disable the two
existing AC automations in the Automations settings menu by moving their
Enable sliders to the left.
Go to Devices settings and add an
integration called “Generic thermostat (helper)”. Name it “AC Thermostat”; select “Cooling mode”, use the
“myHome Temperature” sensor and
“myHome Relay LED” as the Actuator
switch, then set the Cold tolerance to
1. The minimum and maximum target
temperatures can be set to 10 and 30,
respectively. Scroll down and click
NEXT.
Add temperature values into the
Comfort and Eco presets, then click
SUBMIT and FINISH.
The card will appear in the Overview dashboard – see Screen 13. The
setpoint is displayed in the centre of
the card and is controlled by moving
the larger open circle on the gauge.
Enable the thermostat by clicking the
snowflake icon. The relay LED should
switch on when the setpoint is 0.5°C
lower than the room temperature, and
off when the setpoint is 0.5°C higher.
The activity bar above the temperature graph that we created earlier
should show the Relay LED’s activity
as the thermostat is exercised.
To use one of the temperature presets, click on the three dots at the topright of the card. A drop-down menu
at the bottom right of the pop-up
allows selection of any available presets (Screen 14). Selecting None will
revert to the last manual setting.
A home air conditioner (especially a
siliconchip.com.au
split system) is likely to have an infrared remote control. The TV remote
control below could readily be adapted
for this purpose.
IR remote control
Adding remote functions for devices
with infrared remotes involves adding
a button to your dashboard and connecting it to an appropriate code for
the IR LED to transmit (like the one on
our Satellite).
Finding the correct codes for your
device may take some hunting around.
The most comprehensive source I
have found is IRDB (siliconchip.au/
link/ac5z). The free sign-up allows
five codes per day to be downloaded.
The code begins with a patch to
enable the IR function on a Pico. By
the time this is in print, the “external_components:” section may no longer be required. If the code compiles
properly, then leave it in; otherwise,
try without it.
A Button input is then defined,
which will appear on the dashboard.
Finally, get the PRONTO IR code from
IRDB and paste it into the “data:” line.
A separate section of code starting with
“– platform: template” will need to be
created for each additional function
button (see Block #3).
The SamsungTV_IR.yaml code in
the download pack includes the code
to toggle a Samsung TV’s power. Once
the Satellite has been updated, a “TV
on/off” button labelled PRESS should
appear in the myHome card on the
Overview dashboard – see Screen 15.
If you have a Samsung TV, point
the IR LED toward the TV and press
the button. The TV should switch on
or off with each button press. The
appropriate codes for many other TV
brands should be available from the
IRDB database.
Screens 13 & 14: the thermostat card
(above) and accessing the thermostat
presets (below).
Access from a phone or tablet
To provide access to a smartphone
or tablet dashboard while connected
to your local WiFi network, install the
HomeAssistant app for iOS or Android.
Start the app & follow the prompts.
If you don’t enable location permissions, the device tracking function
and the sensors on the mobile device
won’t register properly with HA. The
Notifications permission will be used
in a later example, so enable it now.
Enter the username and password
you created earlier in HomeAssistant
into the app. All HA functions should
Australia's electronics magazine
Screen 15: myDash on a mobile
phone, with the TV on/off button
visible near the bottom.
October 2025 49
Screen 16: the TailScale website console page. The HomeAssistant entry needs
to be made an Exit Node, and the detected subnet approved in the “Edit route
settings” dialog.
Screen 17: the TailScale control panel after a PC and phone have been added.
be available. As mentioned before, creating and using a profile on HA without the ability to administer the system is a good idea for everyday and
particularly mobile use.
Virtual private network
Remote access to HA from outside
your local network requires several
elements: a URL that is recognisable
externally, a way to convert that to an
IP address and secure access to the
HA hub through your internet router.
There are several different
approaches to providing remote
access to HomeAssistant, which are
discussed at siliconchip.au/link/ac60
WunderTech provides a complete
examination of the pros & cons of each
method at siliconchip.au/link/ac61
Virtual Private Network (VPN) connections are relatively easy to set up
and offer a high level of security. Tail
Scale has a free offering that is a recommended HA option for remote access.
TailScale needs to be installed on
every device that has remote access.
Each connects to TailScale’s cloud service to discover the other members.
In most cases, no router settings need
to be changed when using TailScale.
50
Silicon Chip
The VPN requires setting up a Tail
Scale account plus configuration of HA
and your mobile device. If you find the
instructions below difficult to follow,
there are several good YouTube tutorials on connecting HA to TailScale. I
found the one by Joyce Lin to be helpful (https://youtu.be/EJ3cjoJAaQA).
Go to TailScale’s website (https://
tailscale.com) and set up a free
account. It requires you to use an
existing identity provider rather than
setting up a new username and password. If your preferred identity source
is not in the list, the OpenID Connect
(OIDC) option can provide linkage to
a wide range of additional providers.
To add the integration in HA, go to
the Settings then Add-ons menu and
click the + ADD-ON STORE button.
Search for “TailScale” and follow the
installation prompts. Enable all four
options in the configuration panel,
then start the add-on and then click
the OPEN WEB UI button.
Log HomeAssistant into TailScale
with the same credentials you used to
create the account, re-authenticating if
required. Next, connect your Home
Assistant to your TailNet.
The final step of the installation
Australia's electronics magazine
process on HomeAssistant opens a
browser window that logs you into
TailScale’s control panel. Under the
“homeassistant” entry, there will be
several blue indicator boxes – see
Screen 16. If they have exclamation
marks in circles, click on the ellipsis
(…) at the end of the homeassistant
line and select “Edit route settings”.
Select both check boxes and then Save.
The “Exit node” option allows HA
to act as a server on your personal
TailNet.
You can now log into HomeAssistant from any device that is connected
to your TailNet. The Subnet router
option authorises the HA hub to route
traffic from satellite devices through
the TailNet.
Install the TailScale app on your
mobile device from the app store and
log in to it. The HA app should now be
able to access your hub when outside
your wireless network’s range. Similarly, TailScale can be added on a PC
– see the “linus” entry on Screen 17.
Switching off WiFi on your phone,
if it is enabled, will allow this feature
to be tested. The HomeAssistant app
on your phone will ask for a new IP
address. http://homeassistant:8123
should do the trick, as TailScale provides address translation and routing
services. After a few seconds, your
connection to HA should be restored.
An alternative, configured with just
a few mouse clicks, is Home Assistant’s Cloud service, which has a
31-day free trial followed by subscriptions at around $11 per month or $110
per year, including GST.
Your default HomeAssistant login
has full administrator privileges on
the remote device. For better security, creating a second, less-privileged
account. Go to the Settings then People menu on the main HA screen then
click + ADD PERSON and it will lead
you through the process. Do not enable
the Administrator option for this new
account.
Thermostat notification
Notifications are implemented by
creating an action in an automation.
To create a new automation, add
a Trigger, selecting Entity and then
State as the type. In the When panel,
select “AC Thermostat” as the entity,
“Current action” as the Attribute.
Set “From” to Idle and “To” to Cooling, then click on + ADD ACTION
at the bottom of the screen, select
siliconchip.com.au
“Notifications” and “send a persistent
notification”
Fill in an appropriate message and
click the SAVE button – see Screen 18.
Each time the virtual AC switches
on, a timestamped notification message will appear in the Notifications
panel on all connected devices.
To disable the automation, go to the
Automations menu & move the slider
attached to the automation to the left.
A PIR intruder alert
Now let’s create an automation that
produces a notification each time the
PIR sensor on the Satellite is triggered.
The trigger will be the myHome.PIR
entity. Set “From” to Clear and “To”
to Detected, then click on “+ ADD
ACTION” at the bottom of the screen
and select Notifications.
If you have set up remote access on
a phone, select “send a notification
via mobile_app_xxxx”. Put “Intruder
alert!” in the message and in the title
and click SAVE; name your automation “Intrusion”. If you have not
enabled remote access at this point,
use the “Persistent notification” option
instead.
Every time something moves in front
of the PIR sensor, a notification message will be sent. If a human intrusion
occurs or the cat decides to play in
front of the sensor at midnight, you’ll
be flooded by messages. A time delay
on the automation being re-triggered
will limit the number of messages.
To delay re-triggering, a condition is
added to the automation that detects
the last time it was triggered and calculates whether it was longer than
one minute ago. The automation is
not re-triggered if the time was less
than this.
Edit the Intrusion automation, using
the “And if” clause, and select Template from the “Other conditions”
option. Enter the code in Block #4
(all on one line), which is also in the
intruder_alert_enable.yaml file, into
the “Value template *” box.
Save the automation and test it. You
should be able to trigger the PIR sensor multiple times, but only receive a
notification on your mobile device if
the PIR is triggered more than a minute after the last notification.
To create a switch to turn off these
notifications entirely, place the code
from Block #5 directly under the Relay
LED switch code and update the Satellite.
siliconchip.com.au
Edit the Intrusion automation, adding another condition. Select Entity
and “myHome.Intruder active”. Set
the State field to On, then save the
automation. The new switch should
appear on the myHome card in the
Overview dashboard – see Screen 19.
If the switch is off, no notifications
should be sent.
Two useful tools in debugging automations are the Logbook in the main
menu and TRACES when editing the
automation. In TRACES, clicking on
an icon in the sequence will display
what happened at that point in the
automation’s flow.
Backups
Backups are important in maintaining the integrity of your setup over
time. HA’s update function triggers a
local backup of specific components
each time the configuration is changed,
or the system is updated. Backup information is stored in several folders on
the SD card.
To enable regular backups, go to
Settings then System then Backups.
In the “Backup settings” panel, enable
“Use automatic backups” and adjust
the Schedule and Retention parameters as desired.
In the “Backup data” panel, disable
History and Media, as these can generate large video files that may fill the
SD card and crash the system.
Scroll down to the “Encryption
key” panel and download the emergency kit. The encryption key and
instructions in the kit will be required
to restore from the backup.
If you want to save backups externally, HA can access external and
cloud storage. I found that the most
straightforward path was to make HA’s
files accessible via an SMB (CIFS) file
share (see siliconchip.au/link/ac62).
To do this, install the “Samba share”
add-on. Using the Configuration tab
at the top of the installation page and
add a password for remote access. The
Username and Workgroup fields can be
left as they are or changed to meet your
needs. Start the add-on with “Start on
boot” and Watchdog both enabled.
After a minute or so, you should be
able to see a HOMEASSISTANT host
in your computer’s file browser under
Network (if using Windows) or the
appropriate heading on Mac or Linux
(you may need to install the samba
package to access it in Linux).
If it doesn’t appear, try refreshing or
re-opening your file browser window.
Map network drives for the “backup”
and “config” folders, using the credentials you saved in the Samba configuration tab. Use your PC’s backup tool
to regularly save the files.
Conclusion
In this series, we have touched on
some key elements of home automation using the HomeAssistant and
ESPHome platforms. We hope it has
whetted your appetite to explore more
of the many features these platforms
SC
offer.
Screens 18 & 19: setting up the
“When” parameters for the AC
Thermostat notification (left). The
myHome Overview dashboard card
with all features enabled (below).
Australia's electronics magazine
October 2025 51
|