Home Assistant

Overview:

Just started using this in summer 2020. Was getting tired of the X10 stuff not being quite reliable, and an unacknowledged protocol. Decided to move to more Z-Wave. There were also issues with compatibility, and I found that HomeSeer intentionally locked out certain manufacturers' products so they could sell their own. Disgusting.

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 I looked at alternatives.

My configuration:

The system runs 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. There are scripts that symbolic link actual com port to ip address

The Z-Wave is handled by a Ztroller, and the X10 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

https://github.com/tdhoward/COMpipe

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.

Restart HomeAssistant:

sudo systemctl restart homeassistant

Restart Digi One serial ports:

sudo systemctl restart dgrp

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

 

there are scripts that creat a symbolic link that links the com port to an ip address *** complete ***

If it is really messed up, full restart:

stop homeassistant service
delete zwc config file
restart serial
start ha service
check zwave service

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. 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 times.

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/

 

https://community.home-assistant.io/t/z-wave-xml-config-files/109118/2

 

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

 

Automations:

automation.yaml - automations

date and time can be tricky

https://community.home-assistant.io/t/trigger-an-action-on-specific-date-time/13524

Scripts:

scripts.yaml - guess

Icons:

look for icon directory  mdi??

 

 

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


Debugging:

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

https://github.com/OpenZWave/open-zwave/tree/master/config

 

 

 

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...