Sonos Controller Micro is a lightweight and efficient controller for Sonos speakers. This project aims to provide a minimalistic yet powerful interface to manage and control your Sonos devices.
- Discover and list available Sonos speakers on your network
- Control playback (play, pause, stop, next, previous)
- Adjust volume and mute/unmute
- Group and ungroup speakers
- Manage playlists and queues
- Cross-platform compatibility
- Raspberry Pi Pico W: The microcontroller used to run the application.
- Waveshare Display HAT: The display interface for the controller. The display is initialized in the code as
Class LCD1.3
.
To install and run the Sonos Controller Micro, follow these steps:
-
Clone the repository:
git clone https://github.com/robotbanker/sonos_controller_micro.git cd sonos_controller_micro
-
Install dependencies:
pip install -r requirements.txt
-
Upload the code to Raspberry Pi Pico W:
Use your preferred method to upload the code to the Raspberry Pi Pico W. You can use tools like Thonny IDE or rshell.
-
Connect the Waveshare Display HAT:
Ensure that the Waveshare Display HAT is properly connected to the Raspberry Pi Pico W.
-
Run the application:
python app.py
Once the application is running, you can use the provided interface to manage your Sonos speakers. The interface offers various controls and settings to customize your listening experience.
You can configure the application by modifying the config.json
file. This file includes settings such as network discovery options, default volume levels, and other preferences.
The code for this project is based on the official SONOS XML Framework: http://schemas.xmlsoap.org/soap/envelope/. This framework allows for efficient communication and control of Sonos devices using standard SOAP (Simple Object Access Protocol) messages.
We welcome contributions to improve the Sonos Controller Micro. To contribute, please follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature-branch
) - Make your changes and commit them (
git commit -am 'Add new feature'
) - Push to the branch (
git push origin feature-branch
) - Create a new Pull Request
This project is licensed under the MIT License. See the LICENSE
file for more details.
For any questions or feedback, please open an issue on the GitHub repository.