🌩️LNXlink

Effortlessly manage your Linux machine

Welcome

This is a Home Assistant companion app for Linux that allows you to monitor and control your PC directly from Home Assistant. It integrates seamlessly using MQTT, enabling automatic discovery of entities and real-time communication between your system and Home Assistant.

Features

  • Sensors: Automatically discovers sensors that monitor and control the system.

  • Home Assistant: Uses MQTT Autodiscovery to create entities and indicate if an update is required.

  • Minimal System Requirements: Requires only basic system packages.

  • Easily Expanded: Automatically imports new modules; custom modules can also be added.

Supported Modules

Modules marked in Orange require a graphical interface, while those in Green require or support manual configuration.

✅ System Actions

Module
Description

🔴 Shutdown

Creates a button that shuts down the computer.

⚪ Restart

Creates a button that restarts the computer.

💤 Suspend

Creates a button that puts the computer to sleep mode.

🚀 Boot Select

Creates a select entity that lets you choose which OS to boot on the next boot.

⚡ Power Profile

Creates a select entity with all the available power profiles.

⚙️ SystemD

Creates a switch for each systemd service which is configured, allowing for status checks, starting or stopping Linux services. Settings

📢 Notify

This doesn't create any entity, so it must be used using MQTT commands. Usage

📂 Open URL/File

Uses xdg_open command to open files or URLs. Usage

🚥 Keep Alive

Creates a switch that enables or disables the monitor idle with the system commands xset or gsettings.

🖥 System Information

Module
Description

🧠 CPU

Creates an entity with the current CPU usage.

💾 RAM

Creates an entity with the current RAM memory usage.

🖼️ GPU

Creates entities for each NVIDIA or AMD GPU load usage.

🔋 Battery

Creates sensor entities for each device that reports it's battery usage in percentage.

This supports auto-discovery, so it will create the sensor even if it is connected for the 1st time.

🌡️ Temperature

Creates sensors for all the temperature sensors that are discovered on the system.

⚠️ Restart required

Creates a binary sensor that shows if the system needs to be restarted, most likely due to an update.

🔄 System Updates

Creates a binary sensor that shows if an update is waiting to be installed and a sensor that shows the pending updates.

🗔 Active Window

Creates a sensor with the name of the focused window.

📥 Disk IO

Creates sensors for each disk and shows the Input/Output percentage of disk used.

📀 Disk usage

Creates a sensor for showing the percentage of used space on each disk. Usage

🖴 Mounts

Creates a sensor for showing the percentage of used space on each mounted volume. Usage

Idle time

Creates a sensor that measures how much time the computer is idle.

📡 Network & Devices

Module
Description

📶 Network Speed

Creates a sensor for upload speed and a sensor for download speed.

🌐 Interfaces

Creates a sensor for each network interface found on the system with it's IP address.

📱 Bluetooth

Creates two types of switches:

  1. A Bluetooth Power switch that enables and disables the Bluetooth on the computer

  2. A Bluetooth Device switch for each connected device that disconnects and connects to the device.

These are auto-discovered even when the app is running.

🛜 WiFi

Creates a sensor with the WiFi signal and some basic information.

🔌 WOL

Creates a switch for all network interfaces that support WOL which allows it to be allowed to be woken using Wake-On-LAN magic packets.

🗺️ BeaconDB

Scans the available WiFi networks and finds the location from BeaconDB or manually by configuring a custom position. Settings

🎚️ Audio/Video

Module
Description

🎤 Microphone Used

Creates a binary sensor that shows if the microphone is used by any application.

🔈 Speaker Used

Creates a binary sensor that shows if the speaker is outputting audio.

🎥 Camera Used

Creates a binary sensor that shows if the camera is used by any application.

🎶 Media

Creates a sensor with the current player status and the media info at it's attributes.

It also creates buttons for controlling the player which by default are disabled.

Media Setup/Usage

🔆 Brightness

It creates a number entity for controlling the brightness of all displays, but also entities for each individual display.

💡 Screen On/Off

Creates a switch with the monitor status which can also be controlled using the xset command.

Fullscreen

Creates a binary sensor that shows if a window is full screen and it's name.

📸 Screenshot Show

Creates a switch that enables a camera entity to show a stream of the desktop.

🎧 Audio Select

Creates select entities for selecting the speaker or microphone input device to use.

🧮 Input/Output

Module
Description

🎮 Gamepad Used

Creates a binary sensor that shows if the gamepad is used in the last 40 seconds.

⌨️ Keyboard Hotkeys

Creates a sensor that shows the key pressed based on the configured keys. Settings

🖱️ Mouse control

Creates buttons that can sends the mouse movement using xdotool by accelerating each second.

🔑 Send Keys

Creates a text entity that can send a series of keys using the xdotool. Usage

🧰 Applications & Tools

Module
Description

🌍 LNXlink Update

Creates an update entity to update to the latest version. It supports installations via System or Development. Usage

🗣️ Speech Recognition

Listens to the user's input and sends the response as an attribute to the binary sensor of speech recognition entity. Usage

🧲 GPIO

Used for Raspberry to create binary_sensors and switches for the configured input and output pins. Settings

📺 IR Remote

Used to control devices or receive IR signals. It creates the following entities:

  • Sensor entity for reading the decoded IR signals.

  • Text entity that sends any data provided.

  • Button entities that send the pre-configured data.

Settings

🎮 Steam

Creates a select entity with a list of all steam or non steam games.

🧩 Advanced/Other

Module
Description

Inference Time

Creates a sensor to show how much time it took for the sensors to get a result. This is used for debugging purposes.

📜 Logging Level

Creates a select entity that lets the user select the debug type while running. Very useful for debugging an issue.

🐚 Bash commands

One of the most powerful modules that lets you easily create any type of sensor:

  • sensors

  • binary_sensors

  • buttons

  • switches

Settings

🐳 Docker

Creates a switch for each discovered docker container, a binary sensor for checking for updates and a button that can prune all the unused images/containers/etc... Settings

📊 Statistics

Used to send anonymous data for measuring how many installations are used each day. Usage

📮 RESTful

Used to get information or control the system using HTTP requests. Usage

🪟 Display Environment

Mendatory for all desktop environments.

📦 Custom modules

Supported OS

Only Linux is supported. There is no plan on supporting Windows or MacOS due to system dependencies that can't be easily ported. For windows a recommended companion app is HASS.Agent. A cross-platform alternative is IoTuring.

Last updated