Home AssistantOverview: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 ZtrollerX10 commands are handled by a CM11.Virtual machine notesThe 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/.homeassistantSystem 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 GUIRestart Digi One serial ports (services):sudo systemctl restart dgrpif you unplug the serial port from the x10 transmitter, or cycle power on the ethernet <> serial dongle, you need to restart this servicenote well: you should restart the home assistant service after thisTo check serial ports are ok:check serial ports exist: ls /dev directoryyou should see two devices:/dev/ttyX00 x.x.x.250 /dev/ttyZ00 x.x.x.251If restarting serial port services does not work: The script to link the com port to an IP address is in in /home/greg/.scriptsThe script creates a device and a symbolic link to the device, and then sets rights and ownershipI create 2 devices, one X for X10 (250) and one Z for Z-Wave (251)Here's the script: in /home/greg/.scriptssudo ./start_virt_serial.sh#!/bin/bashsudo dgrp_cfg_node init X 192.168.10.250 1sudo dgrp_cfg_node start X 192.168.10.250 1sudo chown -R homeassistant /dev/ttyX00sudo chown -R homeassistant /dev/tty_dgrp_X_0sudo chmod 755 /dev/ttyX00sudo chmod 755 /dev/tty_dgrp_X_0sudo dgrp_cfg_node init Z 192.168.10.251 1sudo dgrp_cfg_node start Z 192.168.10.251 1sudo chown -R homeassistant /dev/ttyZ00sudo chown -R homeassistant /dev/tty_dgrp_Z_0sudo chmod 755 /dev/ttyZ00sudo chmod 755 /dev/tty_dgrp_Z_0 sudo journalctl -xebaud on x10 CM11A 4800 baud use dmsg to debug service is defined in /etc/systemd/system/dgrp.servicescripts 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 applicationUsing the GUIthere are devices and entities. Devices are easy to control, entities may not be able to be used directly.Other ConfigurationMost files are in /home/homeassistant/.homeassistantsudo 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 deletedzwc.log - duhh Automations:automation.yaml - automationsdate and time can be trickyhttps://community.home-assistant.io/t/trigger-an-action-on-specific-date-time/13524Scripts:scripts.yaml - guessIcons: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 appZ wave deviceshttps://github.com/OpenZWave/open-zwave/tree/master/configX10 devicesOK, 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_ondimming is a bit different, use service data and enter brightness: xxx where xxx is from 1 to 255 I think...