Monitor your TeamSpeak server directly from Home Assistant! This integration provides real-time information about your TeamSpeak server using the WebQuery API.
- 🎯 7 Sensor Entities tracking key server metrics
- 👥 Client Monitoring with detailed client list attributes
- 📊 Bandwidth Tracking for sent and received data
- ⏱️ Server Uptime monitoring
- 🔄 Configurable Update Interval
- 🎨 Device-based Organization - all sensors grouped under one device per virtual server
| Sensor | Description | Device Class | Attributes |
|---|---|---|---|
| Clients Online | Number of connected clients | - | Client list, Query clients count |
| Channels | Number of channels on the server | - | Full channel list |
| Uptime | Server uptime in seconds | Duration | - |
| Max Clients | Maximum allowed clients | - | - |
| Bandwidth Received | Incoming bandwidth (bytes/sec) | Data Rate | Total bytes, Last minute average |
| Bandwidth Sent | Outgoing bandwidth (bytes/sec) | Data Rate | Total bytes, Last minute average |
| Server Status | Current server status | - | Server name, version, platform, port |
- WebQuery API enabled on your server
- API Key for authentication
- Make sure HACS is installed in your Home Assistant instance
- Add this repository as a custom repository in HACS:
- Click on HACS in the sidebar
- Click on "Integrations"
- Click the three dots in the top right corner
- Select "Custom repositories"
- Add
https://github.com/SamuelReithmeir/teamspeak_status_sensorsas repository - Select "Integration" as category
- Click "Add"
- Click "Install" on the TeamSpeak Server Info card
- Restart Home Assistant
- Download the latest release from the releases page
- Extract the
custom_components/samuelre_teamspeakfolder - Copy it to your Home Assistant's
custom_componentsdirectory - Restart Home Assistant
- Go to Settings → Devices & Services
- Click + Add Integration
- Search for TeamSpeak Server Info
- Enter your configuration:
- Host: IP address or hostname of your TeamSpeak server
- WebQuery Port: Port where WebQuery is running (default: 10080)
- Virtual Server ID: The ID of your virtual server (usually 1)
- API Key: Your WebQuery API key
- Scan Interval: How often to update (in seconds, default: 60)
automation:
- alias: "TeamSpeak Server Full Alert"
trigger:
- platform: template
value_template: "{{ states('sensor.teamspeak_server_clients_online') | int >= states('sensor.teamspeak_server_max_clients') | int }}"
action:
- service: notify.mobile_app
data:
message: "TeamSpeak server is full!"sensor:
- platform: template
sensors:
ts_active_users:
friendly_name: "Active TeamSpeak Users"
value_template: >
{% set clients = state_attr('sensor.teamspeak_server_clients_online', 'client_list') %}
{{ clients | map(attribute='client_nickname') | join(', ') if clients else 'None' }}- Verify WebQuery is enabled: Check your TeamSpeak server configuration
- Test API access: Use curl to test the API:
curl -X POST http://YOUR_SERVER_IP:10080/1/serverinfo \ -H "x-api-key: YOUR_API_KEY" - Check firewall: Ensure port 10080 (or your custom port) is accessible
- Verify credentials: Make sure the API key is correct and has proper permissions
- Clear browser cache
- Restart Home Assistant
- Check
home-assistant.logfor errors related tosamuelre_teamspeak
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Developed by @SamuelReithmeir
This integration is not officially affiliated with or endorsed by TeamSpeak Systems GmbH.
If you like this integration, please give it a ⭐ on GitHub!