Introduction
HomA (Home Automation) automatically searches LAN, WiFi and Bluetooth. It allows you to turn devices on and off from your computer. Devices such as:
- Sony Bravia KDL Televisions / Professional Displays using REST API
- TCL Google Android TVs using ADB (Android Debugging Bridge)
- TP-Link / Kasa WiFi Smart plugs (great for controlling Bias Lights behind TVs)
- Happy Lighting Bluetooth Low Energy (BLE) LED light strips
- Power on/off laptop displays
- Suspend computer and automatically power off all devices above
- When resuming, automatically power on all devices above
Extra features
- Open source application written in Python with Tkinter user interface
- The same HomA version works in both Python 2.7.12+ and Python 3.5+
- LED Light Strip âbreathing colorsâ feature varies colors and brightness levels
- View Breathing Color Statistics to fine-tune color changes and times
- Turn Sony TV picture off but leave on sound for listening to music or podcasts
- Automatically turn on TV bias lights only during nighttime
- Automatically rediscover new network devices every minute
- Communicate with devices using static MAC address to find dynamic IP address
- Big number calculator with TeraByte, GigaByte, MegaByte units of measure
- Large digit countdown timer with alarm
- View Bluetooth devices and reset Bluetooth features
- Command timeouts to eliminate wasted time waiting for negative response
- Command event viewer of error messages, return codes and run times
- Floating sub windows that raise to top and move when main window is dragged
- Message dialog boxes stay on top and cannot be âburiedâ under windows
- Fading in/out tooltips appear when mouse hovers over buttons and labels
- Help buttons open web browser and this webpage. Then the page automatically scrolls to the appropriate section
Table of Contents
- Introduction
- Menus
- HomA Help Buttons
- Rediscover Now
- Edit Preferences
- View Bluetooth LED Breathing Colors Statistics
- View Bluetooth Devices
- Installation
- How to Start HomA
- How to Open HomA From the System Tray
- Custom Images
- Router Modems
Menus
There are two types of menus in HomA:
- Dropdown Menus at the top of the window: File, Edit, View and Tools.
- Right-click Popup Menus. Use the mouse right button to click on any network device and a popup menu will appear. General menu options for all devices are: Turn On, Turn Off, Move device Up (the display order), Move device Down (the display order) and Close menu. Some devices such as a Sony TV and a Bluetooth LED have extra right-click popup menu options.
Dropdown Menus
The top-left corner of HomAâs main window contains four dropdown menus; File, Edit, View and Tools. Click on the name and the dropdown menu options appear:
File Dropdown Menu
Some options will be disabled out when they are not applicable. For example, the Save Playlist and Close Playlist options are disabled (greyed out) until a Playlist is opened.
- Rediscover now - Rediscovery happens every minute but you can force immediate rediscovery with this option.
- Minimize - Duplicates the
Minimize
button at the bottom of the window. The HomA window is minimized with this option.xdotool
andwmctrl
must be installed to enable this option. - Suspend - Duplicates the
Suspend
button at the bottom of the window. All devices are powered off and the computer suspends. - Exit - HomA shuts down.
Edit Dropdown Menu
- Preferences - Settings to control HomA operation.
View Dropdown Menu
- Sensors - Displays CPU and GPU temperature and fan speeds. The network devices view is closed.
- Nnetwork devices - Displays Network devices and status. The sensors view is closed.
- Bluetooth devices - Displays all bluetooth devices (including your neighbours or people walking by your location). Helpful to identify your Bluetooth LED Light Strips. Provides option to âkillâ abandoned gatttool jobs and/or jobs taking more than 10% of a CPU single core.
- Discovery timings - Display how long it takes to communicate with devices to tweak Preference time-outs.
- Discovery errors - Display errors communicating with devices to tweak Preference time-outs.
- Breathing stats - While Bluetooth LED lights are âbreathing colorsâ, display statistics to help tweak Preference settings. This option is greyed out (inaccessible) when not breathing colors.
Tools Dropdown Menu
- Big Number Calculator - Calculator with units of measure for large numbers using MB (Megabytes), GB (Gigabytes), TB (Terabytes), etc.
- Timer 600 seconds - Run a timer and display large digit countdown. Alarm sounds when timer ends. â600 secondsâ changed in Preferences.
- Forget sudo password - If you had entered your sudo password to control laptop display or reset Bluetooth you can use this option to âforgetâ the password. That said, it is automatically encrypted and reused on the next HomA restart so you donât have to reenter it.
Right-Click Popup Menus
In the Network Devices view, you can move the mouse over a device and right click for a context-sensitive popup menu.
All devices have these menu options:
- Turn On - turn on the device
- Turn Off - turn off the device
- Move device Up - move the device up in the display order
- Move device Down - Move the device down the display order
- Help - Open a new browser window and navigate to this webpage
- Close menu - Close the popup menu. The same result achieved by moving mouse out of the menu and left-clicking.
Some devices such as a Sony TV and a Bluetooth LED have extra right-click popup menu options.
Sample Right-Click Popup Menu
Here is a sample screenshot of right-clicking on a Bluetooth LED Light Strip:

Bluetooth LED Light Strip
When you right-click on a Bluetooth LED Light Strip, the following menu options appear:
- Set Bluetooth LED color - Set color and brightness. Remembers your last selection.
- Nighttime brightness - Set LED light strip for nighttime brightness.
- Breathing colors - Cycle colors between Red, Red + Green, Green, Green + Blue, Blue and Blue + Red. Breathe in (make brighter) and Breathe out (make dimmer) for each color combination.
- View Breathing Statistics - Whilst Bluetooth LED lights are âbreathing colorsâ, display statistics to help tweak Preference settings. This option is greyed out (inaccessible) when not breathing colors.
- Reset Bluetooth - Use this from time to time if your computerâs bluetooth adapter goes offline.
- View Bluetooth Devices - Use this to view all Bluetooth devices in your area. Helpful to find the MAC address of your Bluetooth LED Light Strip. The MAC address must be entered into Preferences to control your LED Light Strip.
- Turn On - Turn on the Bluetooth LED Light Strip.
- Turn Off - Turn off the Bluetooth LED Light Strip.
- Move Up - Move device up the Network Devices view.
- Move Down - Move device down the Network Devices view.
- Close menu - Closes the menu. You can also close the menu by clicking anywhere outside the menu area.
Sony Bravia Professional Display TV
When you right-click on a Sony Bravia Professional Display TV, the following menu options appear:
- Picture On - If you had turned the display off, turn it back on.
- Picture Off - Turn the display off but leave audio active.
- Turn On - If you had turned the TV off, turn it back on.
- Turn Off - Turn off the TV.
- Move Up - Move device up the Network Devices view.
- Move Down - Move device down the Network Devices view.
- Close menu - Closes the menu. You can also close the menu by clicking anywhere outside the menu area.
Google Android TV
When you right-click on a Google Android TV, the following menu options appear:
- Turn On - If you had turned the TV off, turn it back on.
- Turn Off - Turn off the TV.
- Move Up - Move device up the Network Devices view.
- Move Down - Move device down the Network Devices view.
- Close menu - Closes the menu. You can also close the menu by clicking anywhere outside the menu area.
Laptop Display
When you right-click on a Laptop Display, the following menu options appear:
- Turn On - If you had turned the display off, turn it back on.
- Turn Off - Turn off the display. Requires sudo password.
- Move Up - Move device up the Network Devices view.
- Move Down - Move device down the Network Devices view.
- Close menu - Closes the menu. You can also close the menu by clicking anywhere outside the menu area.
Laptop Base or Computer
When you right-click on a Laptop Base or your computer, the following menu options appear:
- Turn On - This option is greyed out because your computer is on.
- Turn Off - Turn off the the computer. This invokes a suspend.
- Move Up - Move device up the Network Devices view.
- Move Down - Move device down the Network Devices view.
- Close menu - Closes the menu. You can also close the menu by clicking anywhere outside the menu area.
HomA Help Buttons
HomA windows contain âHelpâ buttons that:
- Open a new web browser window
- Open this web page
- Navigate down to the appropriate section on the web page
Help Button Sample Video
Help Button Sample Video Highlights
- The main window is dragged and the View Breathing Statistics child window is dragged along with it. The child window forces itself overtop of the parent.
- The mouse hovers over button bar at bottom of child window.
- Button Tooltips appear after a short delay.
- Tooltips gradually fade in, remain a short period, then gradually fade out.
- The Help button is clicked and this webpage appears in a new browser window.
- The video above is played.
- The webpage is scrolled.
- The âCopyâ button is used to copy source code to the system clipboard.
- Lightning bolt - âjumpsâ to different sections.
- Section heading jump buttons are selected.
- The child window is closed and the main window is fully visible.
Rediscover Now
Rediscover Now is accessed from the Dropdown Menus at the top of the screen. Select:
- âFileâ menu with mouse or Alt + F
- âRediscover nowâ with mouse or R
Rediscovery is automatically run every minute. However, you can run it immediately using Rediscover Now.
If you use your TV remote to turn the TV on or off, HomA will not register the fact for a minute. To force HomA to see the power state change, run Rediscover Now.
If you connect a new device to your network, HomA will not register it for a minute. To force HomA to see the new device immediately, run Rediscover Now.
Sample Rediscover Now Video
The above video shows how the Rediscover Now feature is activated with the mouse. The network searched by IP address and each matching device in HomA is highlighted in green. The power status is checked and set to:
- âOnâ if the device is powered on.
- âOffâ if the device is powered off but, still connected to the network.
- â?â if communication is lost with the device. E.G. TV is unplugged from the LAN.
How Network Devices are discovered
Most Network Devices are discovered using arp -a
, getent hosts
,
ip addr
and hostnamectl status
. The exception is a Bluetooth device
where you need to specify
the MAC address. Another exception is your computer which is already
running HomA in the first place.
arp -a
Capabilities
If you type arp -a
at the command line your network devices are displayed.
For example:
$ arp -a
SONY.Light (192.168.0.15) at 50:d4:f7:eb:41:35 [ether] on enp59s0
Hitronhub.home (192.168.0.1) at a8:4e:3f:82:98:b2 [ether] on enp59s0
SONY.LAN (192.168.0.19) at ac:9b:0a:df:3f:d9 [ether] on enp59s0
TCL.LAN (192.168.0.17) at c0:79:82:41:2f:1f [ether] on enp59s0
F3_Pro (192.168.0.22) at 00:fe:1e:2a:5b:eb [ether] on enp59s0
TCL.Light (192.168.0.20) at 50:d4:f7:eb:46:7c [ether] on enp59s0
NOTE:Â Â Lines above have spaces inserted between fields for column alignment.
The fields on each arp
line (in order of appearance) are:
- Hostname, E.G.
SONY.Light
- IP Address, E.G.
192.168.0.15
- MAC Address, E.G.
50:d4:f7:eb:41:35
- Computerâs Network Adapter name, E.G.
enp59s0
(Ethernet Adapter). Note that hostnameSony.Light
itself is a TP-Link Smart Plug on Wifi.
getent hosts
Capabilities
The program getent
is a Linux command that reads the file
/etc/hosts
. When you type getent hosts
at the command line
you will see something like this:
127.0.0.1 localhost
127.0.1.1 Alien
192.168.0.1 Hitronhub.home Admin a8:4e:3f:82:98:b2
192.168.0.10 Alien AW 17R3 WiFi 9c:b6:d0:10:37:f7
192.168.0.12 Alien AW 17R3 Ethernet 28:f1:0e:2a:1a:ed
192.168.0.11 Phone Moto E4 Plus fc:d4:36:ea:82:36
192.168.0.13 Dell Inspiron 17R-SE-7720 Ethernet 5c:f9:dd:5c:9c:53
192.168.0.14 Dell Inspiron 17R-SE-7720 WiFi 60:6c:66:86:de:bd
192.168.0.15 SONY.Light hs100 Sony TV Bias Light 50:d4:f7:eb:41:35
192.168.0.16 SONY.WiFi Sony Bravia KDL TV WiFi 18:4f:32:8d:aa:97
192.168.0.17 TCL.LAN TCL / Google TV Ethernet c0:79:82:41:2f:1f
192.168.0.18 TCL.WiFi TCL / Google TV WiFi fc:d4:36:ea:82:36
192.168.0.19 SONY.LAN Sony Bravia KDL TV Ethernet ac:9b:0a:df:3f:d9
192.168.0.20 TCL.Light hs100 TCL TV Bias Light 50:d4:f7:eb:46:7c
192.168.0.21 TCL.LAN2 amazon-54d22a1a9.hitronhub 98:28:a6:ba:76:f6
192.168.0.22 F3_Pro Umidigi F3 Pro 5G 46:f0:89:36:f5:1d
192.168.0.254 Router.Login Hitron Technology 00:05:ca:00:00:09
NOTE: extra spacing inserted above for readability.
The fields on each arp
line (in order of appearance) are:
- IP Address, E.G. â192.168.0.15â
- Host name, E.G. âSONY.lightâ
- Alias, E.G. âhs100 Sony TV Bias Lightâ
- MAC Address, E.G. â50:d4:f7:eb:41:35â
The MAC Address is not in the typical /etc/hosts
file. It is required
for you to add it in order to allow HomA to link rows to arp
output
and override dynamic IP addresses.
ip addr
Capabilities
The program ip
will show / manipulate routing, devices,
policy routing and tunnels. When
you type ip addr
at the command line you will see
something like this:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: enp59s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 28:f1:0e:2a:1a:ed brd ff:ff:ff:ff:ff:ff
inet 192.168.0.12/24 brd 192.168.0.255 scope global dynamic enp59s0
valid_lft 594184sec preferred_lft 594184sec
inet6 fe80::2af1:eff:fe2a:1aed/64 scope link
valid_lft forever preferred_lft forever
3: wlp60s0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 9c:b6:d0:10:37:f7 brd ff:ff:ff:ff:ff:ff
HomA looks at relevant lines in ip addr
:
- âenp59s0:â - The Ethernet Adapter name
- âlink/ether 28:f1:0e:2a:1a:edâ - The Ethernet Adapterâs MAC Address
- âinet 192.168.0.12/24â - The Ethernet Adapterâs IP Address
- âwlp60s0:â - The WiFi Adapter name
- âlink/ether 9c:b6:d0:10:37:f7â - The WiFi Adapterâs MAC Address
hostnamectl status
Capabilities
When you type hostnamectl status
at the command line you will see
something like this:
Static hostname: alien
Pretty hostname: Dell AW17R3
Icon name: computer-laptop
Chassis: laptop
Machine ID: 1ff17e6df1874fb3b2a75e669fa978f1
Boot ID: 562af12a56c640faa3e74c465277267d
Operating System: Ubuntu 16.04.7 LTS
Kernel: Linux 4.14.216-0414216-generic
Architecture: x86-64
HomA only looks at one line in hostnamectl status
:
- âChassis:â - E.G. âlaptopâ. Laptops and computers offer different options in HomA
Edit Preferences
To edit Preferences, access the Dropdown Menus at the top of the screen. Select:
- âEditâ menu with mouse or Alt + E
- âPreferencesâ with mouse or P
Sample Edit Preferences Notebook Video
The above video walks through all the tabs in the Edit Preferences notebook. The fields in each tab are documented in the sections below.
Bonus footage shows how the Sensors and Devices views are toggled with the
button at the bottom of the window:
Preferences Notebook Tabs
NOTES:
The Preferences Notebook is divided into multiple tabs. Click on a specific tab to edit the fields.
Fields are validated based on type. For example, you cannot enter the letter âaâ into a numeric field.
Fields that are greyed out are read-only. You cannot enter data into these fields.
Wait times like
CURL_TIME
is how long to wait before deciding a command failed. For example, every network device must be tested to see if it is a Sony TV. The REST API response time is very fast. So only0.2
seconds is required to wait. If the network device doesnât reply appropriately after0.2
seconds, HomA knows the device isnât a Sony TV. If the timeout is longer, HomA takes longer to discover all the network devices.Every Network Device is assigned a type code that HomA uses internally. â10â = TP-Link/Kasa Smart Plug, â20â = Sony TV, â30â = TCL / Google Android TV. â40â = Bluetooth Low Energy (BLE) LED Light Strip. â100â = Desktop Computer. â110â = Laptop base. â120â = Laptop Display.
Preferences Notebook Sony TV tab:
Sony TV | Description |
---|---|
SONY_PWD | Sony TV REST API Password. Default â123â. |
CURL_TIME | How long to wait for curl command to finish. Default â0.2â. |
KDL_TV | HomA internal type code for Sony TV. Static value is â20â. |
Preferences Notebook Google TV tab:
Goggle TV | Description |
---|---|
ADB_CON_TIME | ADB connection time. Default â0.3â. |
ADB_PWR_TIME | ADB power on / power off time. Default â2.0â. |
ADB_KEY_TIME | ADB remote control keycode wait time. Default â5.0â. |
ADB_MAGIC_TIME | Wake-on-lan command wait time. Default is â0.2â. |
TCL_TV | TCL / Google Android TV type code. Static value is â30â. |
Preferences Notebook Smart Plug tab:
Smart Plug | Description |
---|---|
PLUG_TIME | TP-Link/Kasa Smart Plug wait time. Default is â2.0â |
HS1_SP | Smart Plug type code. Static value is â10â |
Preferences Notebook LED Lights tab:
LED Lights | Description |
---|---|
LED_LIGHTS_MAC | MAC Address of Bluetooth LED Light Strip. Must be entered. Use View Bluetooth Devices to see MAC addresses. |
LED_LIGHTS_STARTUP | On HomA startup, lights are turned on (â1â) or off (â0â). |
LED_LIGHTS_COLOR | Last used color when Set Bluetooth LED Color was applied. |
LED_RED+GREEN_ADJ | When Red and Green are mixed together, boost red by 50%. Necessary for Happy Lighting showing light green instead of yellow. |
BLUETOOTH_SCAN_TIME | How many seconds to scan for Bluetooth devices. Longer scan time may reveal more devices. |
BLE_LS | Bluetooth Low Energy LED Light Strip type code value is â40â. Value used internally by HomA and cannot be changed. |
Preferences Notebook Miscellaneous tab:
Miscellaneous | Description |
---|---|
TIMER_SEC | Seconds to run âToolsâ, âTimerâ. Default â600â (ten minutes). |
TIMER_ALARM | .wav filename to play when timer ends. Default âAlarm_01.wavâ. |
SENSOR_CHECK | How often the sensors command is run. Defaults to 1 second. |
SENSOR_LOG | How often to log sensor values. Default â3600â every hour. |
FAN_GRANULAR | Log sensor override when fan speed changes > x. Default â200â RPM. |
Preferences Notebook Refresh tab:
Refresh | Description |
---|---|
CONFIG_FNAME | Configuration filename. Static value is âconfig.jsonâ |
DEVICES_FNAME | Previously discovered network devices. Static value âdevices.jsonâ. |
VIEW_ORDER_FNAME | Saved order network devices are display in. Value âview_order.jsonâ. |
REFRESH_MS | How many milliseconds screen is refreshed. Default â16â ms. |
REDISCOVERY_SECONDS | How often new network devices are checked. Default â60â seconds. |
RESUME_TEST_SECONDS | How many âdisappearingâ seconds represent suspend. Default â30â. |
RESUME_DELAY_RESTART | How many seconds after resume for network on-line. Default â5â. |
Preferences Notebook Computer tab:
Computer | Description |
---|---|
DESKTOP | Desktop computer (anything not a laptop) type code is â100â. |
LAPTOP_B | Laptop Base (âbrainsâ) CPU, GPU, Fans, USB, etc. Type code â110â. |
LAPTOP_D | Laptop Display type code. Static value is â120â. |
BACKLIGHT_NAME | Automatically obtained from /sys/class/backlight . |
BACKLIGHT_ON | Value for laptop display backlight on. Default is â0â. |
BACKLIGHT_OFF | Value for laptop display backlight off. Default is â4â. |
POWER_OFF_CMD_LIST | Command and arguments to suspend. Default systemctl suspend . |
POWER_OFF_EXCL_LIST | Devices HomA doesnât need to power on/off during resume/suspend. |
The POWER_OFF_EXCL_LIST
field contains three type codes for devices that do not need
to be powered off. These devices are powered down automatically during system suspend:
100
for Desktop computer110
for Laptop base120
for Laptop display
View Bluetooth LED Breathing Colors Statistics
The View Breathing Statistics window displays in realtime the color values (Red, Green and Blue) communicated to the LED Light Strips via the computerâs Bluetooth adapter.
Sample Breathing Statistics Video
NOTE: After clicking play, move the mouse off the video in order to see the color changing button bar at the bottom of the video.
View Breathing Statistics Window Fields
Window Field | Description |
---|---|
Dimmest value | Lowest LED value used is 4. Range is 0 to 255. |
Brightest value | Highest LED value used is 30. Range is 0 to 255. |
Dimmest hold seconds | Number of seconds to hold dimmest value used is 1.5 seconds. |
Brightest hold seconds | Number of seconds to hold brightest value used is 0.5 seconds. |
Breathe duration | How much time is spent moving from dimmest to brightest. |
Step duration | How much time is spent on each color change. Value 0.275. |
Step count | Calculated by Breathe duration (6.0) / Step duration (0.275) |
Step value | Calculated by Breathe duration (6.0) / Step count (21) |
Red | Current red value of LED. 0 = Off. |
Green | Current green value of LED. 0 = Off. |
Blue | Current blue value of LED. 0 = Off. |
Sunlight Percentage | Range 0% (nighttime) to 100% (full sunlight). Controlled by GNOME Nightlight or Pippim Eyesome. Percentage boosts the the dimmest and brightest values but not the number of steps. |
Set LED Color | Time spent setting LED colors. |
Set LED Sleep | After setting LED color, how much time sleeping before next. |
Regular Refresh | This refresh allows screen updating and mouse input. |
Fast Refresh | This refresh appears to âfreezeâ HomA but keeps CPU use low. |
LED Failures | How many times Bluetooth lost communication for 1 second. |
MAX_FAIL | How many sequential LED failures until Breathing quits. |
Breathing Statistics Control Parameters
The first five fields are parameters you can control:
Field | Internal argument name |
---|---|
Dimmest value | low value is 4. If too low light will be off. |
Brightest value | high value is 30. Max is 255 but is way to bright. |
Dimmest hold seconds | bots value is 1.5. Abbreviation is for âbottom secondsâ. |
Brightest hold seconds | tops value is 0.5. Abbreviation is for âtop secondsâ. |
Breathe duration | span value is 6.0. Longer span allows gradual color change. |
Step duration | step value is 0.275. Longer step allows regular refresh. |
# homa.py - BluetoothLedLightStrip(DeviceCommonSelf) class - breathColors() method:
def breatheColors(self, low=4, high=30, span=6.0, step=0.275, bots=1.5, tops=0.5):
View Bluetooth Devices
In order to control Bluetooth Low Energy (BLE) LED Light Strips, you need to enter the MAC address using Edit Preferences. In order to discover the MAC address use the View Bluetooth Devices feature found on the View dropdown menu.
Sample View Bluetooth Devices Window
Here is a sample window that appears:

The device name QHM-T095
is highlighted in yellow and the MAC address
is highlighted in red. For devices to appear in the window, they MUST BE
powered on.
The highlighting appears after HomA knows the MAC address for your Bluetooth LED Light Strip. If the MAC address hasnât been entered into HomA, via the Edit Preferences feature, there is NO highlighting.
After the device name, E.G. QHM-T095
, appears the number of times the
device was discovered. E.G. (4)
means the device was discovered 4 times.
The discovery period defaults to 10 seconds. Over that period, a given device can be discovered many times.
Do not be surprised if there are many device names you donât recognize. These devices belong to your neighbor(s) or passerbyâs. For example, someone passing by could have Bluetooth Earbuds or a Bluetooth Smartwatch.
Use Happy Lighting to Discover LED Device Name
The smartphone Happy Lighting App can display the Bluetooth LED Light Strip device name:

The Happy Lighting smartphone app works with many common Bluetooth Smart LED Light Strips.
For the App to work, HomA cannot be running and connected to the LED Light Strip using Bluetooth.
In the App, selected the icon with three green horizontal lines. Then click âMy Deviceâ.
In this screenshot, the device name is QHM-T095
.
After running the Happy Lighting App, exit it so it doesnât conflict with HomA operations.
Enter Bluetooth LED MAC Address in HomA
You need to enter the discovered Bluetooth LED MAC address into HomA using the Edit Preferences feature:

After entering the MAC address you can select the File dropdown menu option Rediscover Now. The Bluetooth LED Light Strips should be added to the bottom of the Network Devices view. If not, restart HomA.
Installation
HomA (Home Automation) is found in the HomA GitHub Repository ⧠đ.
Click the above link and then click the green code button shown below:

- Select the Download ZIP option
- Extract the archive to your home directory
Open a terminal window and type these two commands:
/home/<USER>/HomA-main/src/homa-indicator.py &
/home/<USER>/HomA-main/src/homa.py
WHERE: <USER>
is your username.
The first command runs HomA Indicator in the System Tray / Task Bar as a background job. When you close the terminal, HomA Indicator will disappear from the System Tray. Later, you can add HomA Indicator to your Startup Applications Preferences in Ubuntu. Then it will be automatically started after you log in and stay there until you log out.
The second command runs HomA. Although you can run HomA via the HomA Indicator, it is recommended the first few times you use HomA in the terminal so you can see any unusual error messages.
For example, if you see something like âmodule serial not foundâ, type:
sudo apt install python3-serial
.
If you are on Ubuntu 16.04 it would be python-serial
(without the 3
).
Read more about installing dependencies in the next section.
Under Construction

HomA is still under construction. Installation requires
manually downloading files from GitHub and installing any
missing dependencies with apt get install
in Debian/Ubuntu
or pip install
on other Operating Systems.
Requirements include:
- Linux or compatible Apple, Google Chrome OS, WSL
- Bluez tools (kernel version not GNOME desktop version) which
provides
hcitool
,hciconfig
andgatt
commands. trionesControl
(already included in HomA subdirectory)gatttool
(already included in HomA subdirectory). It callsserial
python module which must be installed separately.python-serial
orpython3-serial
debian package in Ubuntu.ttkwidgets
(already included in HomA subdirectory)adb
(Android Debugging Bridge for Google TV on Ethernet or WiFi)wakeonlan
â Wakeup Google TV over Ethernetcurl
(internet downloading tool required for Sony REST API over Ethernet or WiFi)xdotool
(required for moving windows)arp
(Address Resolution Protocol tool) should be on all machinesgetent
â to access/etc/hosts
(network device name, alias, IP address and optional MAC address)ip
command to get address names for Ethernet and WiFixrandr
â X11 windowing systemhostnamectl
â Get the system hostnamegsettings
â to test if GNOME Night Light is being usedsensors
â to display Dell CPU and GPU temperature and fan speedsnmap
Network mapping toolhs100.sh
TP-Link / Kasa WiFi Smart Plug controller (already included in HomA subdirectory)nc
â arbitrary TCP and UDP connections and listensrfkill
â tool for enabling and disabling wireless devicesifconfig
andiwconfig
internet configuration tools- Miscellaneous builtin Linux commands â
od
,base64
,shasum
,ls
,grep
,sort
,uniq
,ps
,aplay
(may not be builtin),ps
andcut
- A web browser like Firefox, Chrome or Edge is required for Help buttons
systemctl
or similar method to suspend the computer
For granular sunrise/sunset brightness control you can use Pippim Eyesome.
IMPORTANT NOTES:
HomA was tested with Linux, specifically Ubuntu 16.04 LTS ECM/Plus using Python 2.7.12 and Python 3.5.
You can toggle between Pyhon 2.7.x and Python 3.x by changing the âshebangâ. The first line of
homa.py
andhoma-indicator.py
contain the âshebangâ of#!/usr/bin/env python
to run the default python. You can changepython
topython2
orpython3
to override.Changes can be made daily to HomA. As such it is probably a good idea to keep the default path of
/home/<USER>/HomA-main/src
for the HomA program files. This way updating to the current version is easier.If you discover an error in HomA, or have a question, or have a suggestion, use the Issues Tab in the HomA GitHub Repository ⧠đ. Then click the New Issue button.
How to Start HomA
You can start homa.py
from the command line, from a desktop icon or
start it from homa-indicator.py
.
In this section, the examples assume HomA was installed to /home/<USER>/HomA-main
.
Where <USER>
is your User Id.
Starting HomA From the Command Line
If HomA is not in your path, change to the directory where HomA is installed:
cd /home/<USER>/HomA-main/src
Then type homa.py
and press Enter:
$ homa.py
######################################################
////////////// \\\\\\\\\\\\\\
<<<<<<<<<<<<<< HomA - Home Automation >>>>>>>>>>>>>>
\\\\\\\\\\\\\\ //////////////
######################################################
Started: 4:18 PM
= = = = = System Monitor Processor Temps & Fans = = = = =
Seconds | CPU Temp Fan RPM | GPU Temp Fan RPM | Time
-------- | ---------------- | ---------------- | --------
7.67 | 75.0°C 4500 RPM | 77.0°C 4300 RPM | 4:18 PM
3608.15 | 70.0°C 4500 RPM | 74.0°C 4300 RPM | 5:18 PM
7208.30 | 75.0°C 4500 RPM | 77.0°C 4300 RPM | 6:18 PM
9003.52 | 95.0°C 4700 RPM | 82.0°C 4600 RPM | 6:48 PM
9005.66 | 86.0°C 5000 RPM | 81.0°C 4800 RPM | 6:48 PM
9933.77 | 75.0°C 5300 RPM | 75.0°C 5000 RPM | 7:04 PM
When homa.py
is called with no parameters there are minimal lines printed.
The sensors for processor temperature (CPU & GPU) and fan speed for
each processor is printed. Sensors are always logged each hour and whenever
a fanâs speed changes by more than 200 RPM:
- 4:18 PM, 5:18 PM and 6:18 PM: the fan speeds are consistent
- 6:48 PM: GPU fan speed changes from 4300 RPM to 4600 RPM
- 6:48 PM: CPU fan speed changes from 4700 RPM to 5000 RPM
- 7:04 PM: CPU fan speed changes from 5000 RPM to 5300 RPM
homa.py
Command Line Parameters
Optional parameters (A.K.A. arguments) can be passed to homa.py
:
Parameter | Usage |
---|---|
-s | -s invokes silent mode. Nothing will print to the console. |
-f | -f invokes fast mode. Network discovery is delayed. |
-v | -v invokes verbose mode. Method names are printed. |
-vv | -vv Extra verbosity. Command names are printed. |
-vvv | -vvv Super verbosity. Results of every command are printed. |
When homa-indicator.py
calls homa.py
, it uses the parameters -s -f
.
If homa.py
is not performing as expected, use -v
, -vv
or -vvv
in that
order to narrow down the problem.
Starting HomA using homa-indicator.py
homa-indicator.py
is an âApplication Indicatorâ that sits in the System Tray /
Task Bar. There are no optional parameters when calling it. Simply type:
/home/<USER>/HomA-main/src/homa-indicator.py
Using your mouse, left-click or right-click on the icon in the system tray as the video below shows:
The HomA
option opens the HomA application at the mouse position. If
HomA is already running, itâs window is moved to the mouse position.
The eyesome
option only appears when Pippimâs Eyesome is active.
When selected, Eyesome Setup opens at the mouse position.
The quit
option removes HomA Indicator from the system tray / taskbar.
This doesnât close the HomA application if already opened.
How to Open HomA From the System Tray
The program homa-indicator.py
is an âApplication Indicatorâ that runs
in the System Tray a.k.a. the Taskbar.
Here is a video showing HomA, already running in one monitor, being moved to another monitor:
The ability to call HomA from any monitor is paramount, because you can use HomA to turn off a monitor it is running on. To turn the monitor back on, you must be able to call HomA from another monitor.
The video shows how the HomA main window is moved, and then the child window View Breathing Statistics is moved overtop. Child windows are automatically moved when the main window is moved. When you try to click on the main window, any child windows are automatically moved overtop. This includes message dialog boxes that might otherwise be âburiedâ under the main window.
Where HomA Opens When Called From the System Tray
When you call HomA from the System Tray, its position is
controlled by the following line in homa-indicator.py
:
MOVE_WINDOW_RIGHT_ADJUST = -40 # Move Window Top Right Adjustment
The right edge of the HomA window is the current mouse position
plus the adjustment offset. The value shown is -40
so the right edge
will be 40 pixels to the left of the current mouse position.
Custom Images
If you grab an image for your device and it is in .webp
format you have
to convert it to .jpeg
or .png
format for HomA to display it.
For example, you have a file called hitron CGNM-2250.webp
and there are
no .webp
image converters on your machine:
$ sudo apt install webp
The following additional packages will be installed:
freeglut3
The following NEW packages will be installed:
freeglut3 webp
0 upgraded, 2 newly installed, 0 to remove and 2 not upgraded.
Need to get 135 kB of archives.
After this operation, 521 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
$ dwebp "hitron CGNM-2250.webp" -o "hitron CGNM-2250.png"
Decoded hitron CGNM-2250.webp. Dimensions: 1000 x 750 . Format: lossy. Now saving...
Saved file hitron CGNM-2250.png
Credit: https://stackoverflow.com/a/70641330/6929343
Router Modems
There are five types of modems including cable modems, telephone modems, satellite modems, dial modem and digital subscriber line. What is the purpose of a modem? The primary purpose of a modem is to facilitate the connection between a computer or network and an Internet service provider (ISP).Jan 23, 2025

Turn Off Router
Turning off the router doesnât physically power it off. It merely disconnects your computer from the router.
When you stop the âNetworkManager.serviceâ on a Linux system, your computer will lose its ability to automatically manage network connections, meaning you will not be able to connect to Wi-Fi or wired networks through the graphical user interface or standard network management tools as Network Manager handles the discovery, connection, and configuration of network interfaces; essentially, your system will be unable to connect to the internet unless you manually configure network settings directly in the systemâs network interface configuration files.
Key points about stopping NetworkManager:
No automatic connections:
You will need to manually configure network interfaces and connections using
the systemâs traditional network configuration files, like
/etc/network/interfaces.
No network discovery:
Network Manager actively searches for available networks, so stopping it prevents your system from automatically detecting nearby Wi-Fi networks.
Potential for manual configuration complexity:
Depending on your network setup, manually configuring network settings can be a more complex process compared to using Network Manager.
How to stop NetworkManager:
Command: sudo systemctl stop NetworkManager
To start NetworkManager.service, replace stop
with start