Home Assistant


I have been a licensed user of Homeseer for years, probably over 20. It worked ok, I have figured out the quirks.

In summer 2020, I was finally getting tired of the X10 stuff not being quite reliable, and an unacknowledged protocol. I decided to more to Z-Wave, I already had some Z-Wave, but a major sticking point was my 16 unit relay board I use for sprinklers. There were also som issues with compatibility with certain Z-Wave products, and I found that HomeSeer intentionally locked out certain manufacturers' products so they could sell their own. Disgusting. I was not liking this especially if I was going to get more Z-Wave units, and they are significantly more expensive than my old X10.

The feces hit the rotary impeller when I bought a new setup to make a 16 port relay board with Z-Wave. The unit just worked crazy, and it pointed to a program error. The manufacturer pointed at HomeSeer, and HomeSeer pointed at the manufacturer. I then did something an engineer would do, I got a Z-Wave "sniffer" so I could see the protocol and commands. Indeed HomeSeer was not sending the right data. So that was it, I was determined to ditch HomeSeer.

So I looked at alternatives, and found Home Assistant. The relay board now worked, and many more Z-Wave units worked, even with my ancient Z-Wave controller.

My configuration:

  • The system runs on Ubuntu on a Hyper-V server on my Windows Server 2012 R2.
  • The serial ports used by the Z-Wave and X10 interfaces are virtualized with Digi One serial to Ethernet units. This allows placement anywhere on my network, and most importantly, serves to virtualize the com ports since Hyper-V will not pass through the actual com ports on the host.
  • Z-Wave commands are handled by a Ztroller
  • X10 commands are handled by a CM11.

Virtual machine notes

The virtual machine configuration files are stored in “C:\ProgramData\Microsoft\Windows\Hyper-V”.

The virtual hard drives are stored in “C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks”.

Ubuntu notes:

 Home Assistant directory: cd /home/homeassistant/.homeassistant

System operation notes:

Most issues where the system does not work right are fixed with a restart.
You can restart Home Assistant within it's menu, but sometimes it needs to have the service restarted.
The other common issue for me is if I disconnect one of the serial controllers, it can no longer connect with that controller.

Restart HomeAssistant service:

sudo systemctl restart homeassistant - works more consistently that restarting from GUI

Restart Digi One serial ports (services):

sudo systemctl restart dgrp

if you unplug the serial port from the x10 transmitter, or cycle power on the ethernet <> serial dongle, you need to restart this service

note well: you should restart the home assistant service after this

To check serial ports are ok:

check serial ports exist:
ls /dev directory

you should see two devices:

/dev/ttyX00 x.x.x.250
/dev/ttyZ00 x.x.x.251

If restarting serial port services does not work:


The script to link the com port to an IP address is in in /home/greg/.scripts

The script creates a device and a symbolic link to the device, and then sets rights and ownership

I create 2 devices, one X for X10 and one Z for Z-Wave

Here's the script:

sudo dgrp_cfg_node init X 1
sudo dgrp_cfg_node start X 1
sudo chown -R homeassistant /dev/ttyX00
sudo chown -R homeassistant /dev/tty_dgrp_X_0
sudo chmod 755 /dev/ttyX00
sudo chmod 755 /dev/tty_dgrp_X_0
sudo dgrp_cfg_node init Z 1
sudo dgrp_cfg_node start Z 1
sudo chown -R homeassistant /dev/ttyZ00
sudo chown -R homeassistant /dev/tty_dgrp_Z_0
sudo chmod 755 /dev/ttyZ00
sudo chmod 755 /dev/tty_dgrp_Z_0



use dmsg to debug


service is defined in /etc/systemd/system/dgrp.service

scripts are in


If the system is really messed up, full restart:

stop homeassistant service
delete Z-Wave config file ( /home/homeassistant/.homeassistant/zwcfg_0x003d0b40.xml )
(re)start serial services
(re)start homeassistant service
check Z-Wave service (how?)

Undocumented quirks:

Often you will need to restart the system if new Z-Wave devices are not added after a restart. It's common for just one to be added every time you restart the system.

When this happens, I can see the Z-Troller sending data, as you can see the node numbers, but it's like the system needs a couple of restarts to fully read in the new device.

Configuring the Home Assistant application

Using the GUI

there are devices and entities. Devices are easy to control, entities may not be able to be used directly.

Other Configuration

Most files are in /home/homeassistant/.homeassistant

sudo vim filename  (since files are owned by ha user)

the icons are in: https://cdn.materialdesignicons.com/5.3.45/




X10 Configuration:

configuration.yaml - put new x10 devices - be very careful on syntax


Z-Wave Configuration:

zwc.xml - zwave config file, can be deleted
zwc.log - duhh



automation.yaml - automations

date and time can be tricky



scripts.yaml - guess


look for icon directory  mdi??

[email protected]:/home/homeassistant/.homeassistant



to get huge log file
ssh into server
stop home assistant using systemctl
sudo -u homeassistant -H -s
source /srv/homeassistant/bin/activate
hass (starts ha as long as ssh window activity) runs as app

Z wave devices


X10 devices

OK, so X10 is a bit of a kludge.

Z-Wave devices show up as devices and entities, X10 only show as entities.


In an automation, you can include any device easily.

For X10, you need to do a call_service instead of a device.

then you can use the  light.turn_off or the light.turn_on

dimming is a bit different, use service data and enter    brightness:  xxx    where xxx is from 1 to 255 I think...