Metadata-Version: 2.1 Name: roonapi Version: 0.1.6 Summary: Provides a python interface to interact with Roon Home-page: https://github.com/pavoni/pyroon License: Apache-2.0 Keywords: roon,api Author: Greg Dowling Author-email: mail@gregdowling.com Requires-Python: >=3.7.2,<4.0.0 Classifier: License :: OSI Approved :: Apache Software License Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Requires-Dist: ifaddr (>=0.1.0) Requires-Dist: requests (>=2.0) Requires-Dist: six (>=1.10.0) Requires-Dist: websocket_client (>=1.4.0) Project-URL: Repository, https://github.com/pavoni/pyroon Description-Content-Type: text/markdown # pyRoon ![Build status](https://github.com/pavoni/pyroon/workflows/Build/badge.svg) ![PyPi version](https://img.shields.io/pypi/v/roonapi) ![PyPi downloads](https://img.shields.io/pypi/dm/roonapi) python library to interface with the Roon API (www.roonlabs.com) See https://github.com/pavoni/pyroon/tree/master/examples for code examples. An example of connecting to the roon server and using a subscription: ``` import time from roonapi import RoonApi appinfo = { "extension_id": "python_roon_test", "display_name": "Python library for Roon", "display_version": "1.0.0", "publisher": "gregd", "email": "mygreat@emailaddress.com", } # Can be None if you don't yet have a token token = open("mytokenfile").read() # Take a look at examples/discovery if you want to use discovery. server = "192.168.1.160" roonapi = RoonApi(appinfo, token, server) def my_state_callback(event, changed_ids): """Call when something changes in roon.""" print("my_state_callback event:%s changed_ids: %s" % (event, changed_ids)) for zone_id in changed_ids: zone = roonapi.zones[zone_id] print("zone_id:%s zone_info: %s" % (zone_id, zone)) # receive state updates in your callback roonapi.register_state_callback(my_state_callback) time.sleep(60) # save the token for next time with open("mytokenfile", "w") as f: f.write(roonapi.token)```