🌩️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
🔴 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
🧠 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
📶 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:
- A Bluetooth Power switch that enables and disables the Bluetooth on the computer 
- 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
🎤 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.
🔆 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
🎮 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
🌍 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. 
🎮 Steam
Creates a select entity with a list of all steam or non steam games.
🧩 Advanced/Other
⏳ 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 
🐳 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
Lutris Game Launcher
Active window Wayland
AM2302 Temperature and Humidity
Satisfactory Server module
GPU nvidia-settings
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
