Changelogs » Async-upnp-client





- Support state varable types: date, dateTime,, time,


- Ability to pass timeout argument to async_search


- Fix service resubscription failure: wrong timeout format (romaincolombo)
- Disable transport action checks for non capable devices (romaincolombo)


- Added the disable_unknown_out_argument_error to disable exception raising for not found arguments (p3g4asus)


- Better handle empty default values for state variables (LooSik)


- Fixes to CLI
- Handle invalid event-XML containing invalid trailing characters
- Improve constructing metadata when playing media on DLNA/DMR devices
- Upgrade to python-didl-lite==1.2.4 for namespacing changes


- Allow overriding of callback_url in AiohttpNotifyServer (KarlVogel)
- Check action/state_variable exists when retrieving it, preventing an error


- Ignore unknown state variable changes via LastChange events


- Upgrade to python-didl-lite==1.2.2 for typing info, add `py.typed` marker
- Add fix for HEOS-1 speakers: default subscription time-out to 9 minutes, only use channel Master (stp6778)
- Upgrade to python-didl-lite==1.2.3 for bugfix


- Fix parsing response of Action call without any return values


- Fix missing async_upnp_client.profiles in package


- Add __repr__ for UpnpAction.Argument and UPnpService.Action (rytilahti)
- Support advertisements and rename discovery to search
- Use defusedxml to parse XML (scop)
- Fix UpnpProfileDevice.async_search() + add UpnpProfileDevice.upnp_discover() for backwards compatiblity
- Add work-around for win32-platform when using `upnp-client search`
- Minor changes
- Typing fixes + automated type checking
- Support binding to IP(v4) for search and advertisements


- Send content-type/charset on call-action, increasing compatiblity (tsvi)


- Make UpnpProfileDevice.device public and add utility methods for device information


- Add manufacturer, model_description, model_name, model_number properties to UpnpDevice


- Minor refactorings: less private variables which are actually public (through properties) anyway
- Store XML-node at UpnpDevice/UpnpService/UpnpAction/UpnpAction.Argument/UpnpStateVariable
- Use http.HTTPStatus
- Try to be closer to the UPnP spec with regard to eventing


- Show a bit more information on unexpected status from HTTP GET
- Try to handle invalid XML from LastChange event
- Pylint fixes


- Add option to `upnp-client` to set timeout for device communication/discovery
- Add option to be strict (default false) with regard to invalid data
- Add more error handling to `upnp-client`
- Add async_discovery
- Fix discovery-traffic not being logged to async_upnp_client.traffic-logger
- Add discover devices specific from/for Profile


- Better parsing + robustness for media_duration/media_position in dlna-profile
- Ensure absolute URL in case a relative URL is returned for DmrDevice.media_image_url (with fix by rytilahti)
- Fix events not being handled when subscribing to all services ('*')
- Gracefully handle invalid values from events by setting None/UpnpStateVariable.UPNP_VALUE_ERROR/None as value/value_unchecked
- Work-around for devices which don't send the SID upon re-subscribing


- Try to subscribe if re-subscribe didn't work + push subscribe-related methods upwards to UpnpProfileDevice
- Do store min/max/allowed values at stateVariable even when disable_state_variable_validation has been enabled
- Add relative and absolute Seek commands to DLNA DMR profile
- Try harder to get a artwork picture for DLNA DMR Profile


- Add support for discovery via SSDP
- Make IGD aware that certain actions live on WANPPP or WANIPC service


- Log cases where a stateVariable has no sendEvents/sendEventsAttribute set at debug level, instead of warning


- Handle cases where a stateVariable has no sendEvents/sendEventsAttribute set


- Prevent error when not subscribed
- upnp-client is more friendly towards user/missing arguments
- Debug log spelling fix (scop)
- Add some more IGD methods (scop)
- Add some more IGD WANIPConnection methods (scop)
- Remove new_ prefix from NatRsipStatusInfo fields, fix rsip_available type (scop)
- Add DLNA RC picture controls + refactoring (scop)
- Typing improvements (scop)
- Ignore whitespace around state variable names in XML (scop)
- Add basic printer support (scop)


- Upgrade python-didl-lite to 1.1.0


- Install the command line tool via setuptools' console_scripts entrypoint (mineo)
- Show available services/actions when unknown service/action is called
- Add configurable timeout to aiohttp requesters
- Add IGD device + refactoring common code to async_upnp_client.profile
- Minor fixes to CLI, logging, and state_var namespaces


- Add TravisCI build
- Add AiohttpNotifyServer
- More robustness in DmrDevice.media_*
- Report service with device UDN


- Fix examples/
- Fix README.rst
- Add aiohttp utility classes


- Add upnp-client, move async_upnp_client.async_upnp_client to async_upnp_client.__init__
- Hide voluptuous errors, raise UpnpValueError
- Move UPnP eventing to UpnpEventHandler
- Do traffic logging in UpnpRequester
- Add DLNA DMR implementation/abstraction


- Fix log message
- Fix typo in case of failed subscription (yottatsa)


- Log getting initial description XMLs with traffic logger as well
- Improve SUBSCRIBE and implement SUBSCRIBE-renew
- Add more type hints


- Add more type hints
- Allow ignoring of data validation for state variables, instead of just min/max values


- Fixes to and setup.cfg
- Do not crash on empty body on notifications (rytilahti)
- Styling/linting fixes
- modelDescription from device description XML is now optional
- Move to async/await syntax, from old asyncio.coroutine/yield from syntax
- Allow ignoring of allowedValueRange for state variables
- Fix handling of UPnP events and add utils to handle DLNA LastChange events
- Do not crash when state variable is not available, allow easier event debugging (rytilahti)


- Remove aiohttp dependency, user is now free/must now provide own UpnpRequester
- Don't depend on pytz
- Proper (un)escaping of received and sent data in UpnpActions
- Add async_upnp_client.traffic logger for easier monitoring of traffic
- Support more data types


- Support old style `sendEvents`
- Add response-body when an error is received when calling an action
- Fixes to README
- Fixes to setup


- Initial release