Home Assistant Control Widget for Plasma 6
This is a Plasma 6 compatible widget for controlling Home Assistant entities from your KDE desktop.
Version 2.0 Changes (Plasma 6 Compatibility)
This widget has been updated for Plasma 6 compatibility with the following changes:
Key Updates:
- Qt/QML Imports: Updated to use version-less imports compatible with Qt6
- Kirigami Integration: Added proper Kirigami units and theming
- Configuration System: Updated to use KCM.SimpleKCM for better integration
- Icon Handling: Replaced deprecated PlasmaCore.IconItem with Kirigami.Icon
- Internationalization: Added proper i18n() calls for all user-visible strings
- Layout Improvements: Better responsive design using Kirigami.Units
- Tooltips: Added proper tooltip integration
Technical Changes:
- Removed version numbers from import statements
- Updated
PlasmaCore.IconItemtoKirigami.Icon - Updated configuration UI to use
KCM.SimpleKCM - Added
QtQuick.ControlsasQQC2alias - Updated action calls to use
plasmoid.internalAction() - Added proper switchWidth/switchHeight properties for compact representation
Installation
The widget is installed in the standard Plasma widget location:
~/.local/share/plasma/plasmoids/org.neiam.kde.homeassistant/
Configuration
- Right-click the widget and select “Configure”
- Enter your Home Assistant URL (e.g., http://homeassistant.local:8123)
- Enter your long-lived access token from Home Assistant
- Set the update interval (5-300 seconds)
Compatibility
- Plasma 6+: Fully compatible
- Qt 6+: Required
- KDE Frameworks 6+: Required
Development Notes
This widget serves as a foundation for Home Assistant integration. Future versions may include:
- Entity state display
- Entity control buttons
- Custom entity selection
- Real-time updates via WebSocket
Files Structure
contents/
├── config/
│ ├── config.qml # Configuration categories
│ └── main.xml # Configuration schema
└── ui/
├── main.qml # Main widget UI
└── configGeneral.qml # Configuration page UI
metadata.json # Widget metadata
Troubleshooting
If the widget doesn’t load:
- Check Plasma version (must be 6+)
- Verify all files are in the correct location
- Restart Plasma:
systemctl --user restart plasma-plasmashell - Check system logs:
journalctl --user -f | grep plasma