With the help of Roy over PM we have been able to get the App and Driver to install and I have then been able to get the driver to pause / play etc. But it isn't reading the state of the playing media.
I have got it to work by overriding the auto-discovery as this doesn't find my devices.
The error I'm getting is groovy.lang.MissingMethodException: No signature of method: user_app_boshdirect_Kodi__formerly_XBMC__195.parseLanMessage() is applicable for argument types: (java.lang.String, java.lang.Boolean) values: [mac:XXXXXXX, networkAddress:C0A801B4, deviceAddress:50, ssdpPath:/description.xml, ssdpUSN:uuid:2f402f80-da50-11e1-9b23-0017882d484c, ssdpTerm:urn:schemas-upnp-org:device:basic:1, ssdpNTS:, ...] on line 257 (onLocation)
Line 257 onwards is " def lanEvent = parseLanMessage(evt.description, true)" and is in the group as follows:
/**
-
Called when location has changed, contains information from
-
network transactions. See deviceDiscovery() for where it is
-
registered.
-
-
@param evt Holds event information
*/
def onLocation(evt) {
// Convert the event into something we can use
def lanEvent = parseLanMessage(evt.description, true)
lanEvent << ["hub":evt?.hubId]
//log.debug "LAN EVENT: ${lanEvent}"
// Determine what we need to do...
if ( lanEvent?.ssdpTerm?.contains(getDeviceType()) )
{
parseSSDP(lanEvent)
}
else if (
lanEvent.headers && lanEvent.body &&
lanEvent.headers."content-type".contains("xml")
)
{
def xmlData = new XmlSlurper().parseText(lanEvent.body)
parseDESC(xmlData)
}
}