Get your Ultra Skelly connected to Home Assistant in minutes!
- ✅ Home Assistant installed and running
- ✅ HACS (Home Assistant Community Store) installed
- ✅ Your Skelly powered on
- ✅ Bluetooth enabled on your Home Assistant device
This gets you basic control: lights, switches, sensors, and playing files stored on your Skelly.
- Open HACS in your Home Assistant sidebar
- Click the 3 dots menu (⋮) in the top right corner
- Select Custom repositories
- Add this repository:
- Repository:
https://github.com/martinecker/SkellyUltra - Category:
Integration
- Repository:
- Click Add
- Click Download on the Skelly Ultra card
- Restart Home Assistant
- Go to Settings → Devices & Services
- Click + Add Integration
- Search for "Skelly Ultra"
- Choose Scan to automatically find your Skelly
- Or choose Manual if you know the Bluetooth MAC address
- Click Submit
You now have control over:
- 💡 Lights: Change head and torso colors
- 🔌 Switches: Toggle movements and color cycling
- 🎵 Media Player: Play audio files stored on your Skelly
- 📊 Sensors: Monitor volume, storage, and more
That's it! You can now control your Skelly from Home Assistant dashboards and automations.
Want to make your Skelly speak using Text-to-Speech? This requires additional setup.
Live Mode lets you:
- 🗣️ Use TTS (Text-to-Speech) to make your Skelly talk
- 🎵 Stream any audio file to the Skelly's speaker
- 🔊 Play sounds from automations in real-time
- 🐧 A Linux device (Raspberry Pi, Ubuntu server, etc.) with Bluetooth
- ⚙️ About 15-30 minutes for setup
-
Set up REST Server on your Linux device
- Install Python, Bluetooth tools, and PipeWire
- Run the server script (see detailed guide)
-
Pair Bluetooth (one-time setup)
- Use automatic pairing when running the REST Server (requires python3 to get elevanted iiviledges for pairing), or
- Pair manually:
- Enable Live Mode in Home Assistant
- Use
bluetoothctlto pair with your Skelly
-
Configure the integration
- Add REST server URL:
http://<linux-device-ip>:8765 - Turn on "Live Mode" switch in Home Assistant
- Add REST server URL:
👉 For detailed Live Mode setup, see the REST Server README
Add to your dashboard:
type: light
entity: light.animated_skelly_torsoautomation:
- alias: "Skelly Moves When Someone Approaches"
trigger:
- platform: state
entity_id: binary_sensor.front_door_motion
to: "on"
action:
- service: switch.turn_on
target:
entity_id: switch.animated_skelly_movement_allautomation:
- alias: "Play Spooky Sound at Sunset"
trigger:
- platform: sun
event: sunset
action:
- service: skelly_ultra.play_file
data:
file_index: 1 # Play first file on deviceautomation:
- alias: "Greet Visitors"
trigger:
- platform: state
entity_id: binary_sensor.doorbell
to: "on"
action:
- service: tts.google_translate_say
target:
entity_id: media_player.animated_skelly_live_mode_speaker
data:
message: "Welcome to my haunted house!"- Make sure you restarted Home Assistant after installing via HACS
- Check that the files are in
config/custom_components/skelly_ultra/
- Make sure Skelly is powered on
- Check that Bluetooth is enabled on your Home Assistant device
- Try using Manual mode and enter the MAC address if you know it (via
bluetoothctrlfor example)
- Did you set up the REST server? (It's optional, only needed for Live Mode)
- Is the REST server running on your Linux device?
- Did you pair the device using
bluetoothctl? Check the HA and REST server logs for hints as to what could be wrong.
Go to Settings → Devices & Services → Skelly Ultra → Click on your device name
Entity IDs are based on your device name. If your Skelly is named "Animated Skelly", look for entities like:
light.animated_skelly_torsoswitch.animated_skelly_live_modemedia_player.animated_skelly_internal_files
- 📖 Full README - Complete documentation
- 🌐 Web Controller - Browser-based controller
- 🐛 Report Issues - Found a bug?
- Basic features (lights, switches, internal file playback) work immediately after installation
- Live Mode (TTS, streaming audio) requires the optional REST server setup
- This is an unofficial community project - use at your own risk!
- Your Skelly's entities will have unique IDs based on your device name and MAC address
Ready to get started? Follow Step 1 above and you'll be controlling your Skelly in just a few minutes! 🎃