Metadata-Version: 2.1 Name: async-upnp-client Version: 0.13.4 Summary: Async UPnP Client Home-page: https://github.com/StevenLooman/async_upnp_client Author: Steven Looman Author-email: steven.looman@gmail.com License: http://www.apache.org/licenses/LICENSE-2.0 Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Requires-Dist: voluptuous (>=0.11.1) Requires-Dist: aiohttp (>=3.3.2) Requires-Dist: async-timeout (>=3.0.0) Requires-Dist: python-didl-lite (==1.2.0) Async UPnP Client ================= Asyncio UPnP Client library for Python/asyncio. Written initially for use in `Home Assistant `_ to drive `DLNA DMR`-capable devices, but useful for other projects as well. Status ------ .. image:: https://img.shields.io/travis/StevenLooman/async_upnp_client.svg :target: https://travis-ci.org/StevenLooman/async_upnp_client/branches .. image:: https://img.shields.io/pypi/v/async_upnp_client.svg :target: https://pypi.python.org/pypi/async_upnp_client .. image:: https://img.shields.io/pypi/format/async_upnp_client.svg :target: https://pypi.python.org/pypi/async_upnp_client .. image:: https://img.shields.io/pypi/pyversions/async_upnp_client.svg :target: https://pypi.python.org/pypi/async_upnp_client .. image:: https://img.shields.io/pypi/l/async_upnp_client.svg :target: https://pypi.python.org/pypi/async_upnp_client Contributing ------------ See `CONTRIBUTING.rst`. Usage ----- See `examples/` for examples on how to use async_upnp_client. upnp-client ----------- A command line interface is provided via the `upnp-client` script. This script can be used to: - call an action - subscribe to services and listen for events - show UPnP traffic (--debug-traffic) from and to the device - show pretty printed JSON (--pprint) for human readability - discover devices The output of the script is a single line of JSON for each action-call or subscription-event. See the programs help for more information. An example of calling an action:: $ upnp-client --pprint call-action http://192.168.178.10:49152/description.xml RC/GetVolume InstanceID=0 Channel=Master { "timestamp": 1531482271.5603056, "service_id": "urn:upnp-org:serviceId:RenderingControl", "service_type": "urn:schemas-upnp-org:service:RenderingControl:1", "action": "GetVolume", "in_parameters": { "InstanceID": 0, "Channel": "Master" }, "out_parameters": { "CurrentVolume": 70 } } An example of subscribing to all services, note that the program stays running until you stop it (ctrl-c):: $ upnp-client --pprint subscribe http://192.168.178.10:49152/description.xml \* { "timestamp": 1531482518.3663802, "service_id": "urn:upnp-org:serviceId:RenderingControl", "service_type": "urn:schemas-upnp-org:service:RenderingControl:1", "state_variables": { "LastChange": "\n\n\n\n\n\n" } } { "timestamp": 1531482518.366804, "service_id": "urn:upnp-org:serviceId:RenderingControl", "service_type": "urn:schemas-upnp-org:service:RenderingControl:1", "state_variables": { "Mute": false, "Volume": 70 } } ... You can subscribe to list of services by providing these names or abbreviated names, such as:: $ upnp-client --pprint subscribe http://192.168.178.10:49152/description.xml RC AVTransport An example of discovering devices:: $ upnp-client --pprint discover { "cache-control": "max-age=3600", "date": "Sat, 27 Oct 2018 10:43:42 GMT", "ext": "", "location": "http://192.168.178.1:49152/description.xml", "opt": "\"http://schemas.upnp.org/upnp/1/0/\"; ns=01", "01-nls": "906ad736-cfc4-11e8-9c22-8bb67c653324", "server": "Linux/4.14.26+, UPnP/1.0, Portable SDK for UPnP devices/1.6.20.jfd5", "x-user-agent": "redsonic", "st": "upnp:rootdevice", "usn": "uuid:e3a17dd5-9d85-3131-3c34-b827eb498d72::upnp:rootdevice", "_timestamp": "2018-10-27 12:43:09.125408" } Abstractions ------------ - `DLNA Digital Media Renderer` (DLNA DMR) devices - Primarily built for use with `Home Assistant `_, but might be useful in other projects too. - `Internet Gateway Devices` (IGD) - Printers