tag:blogger.com,1999:blog-9130450719881994773.post4398540203965345162..comments2024-03-26T16:13:00.476+00:00Comments on Paul's Geek Dad Blog: Sky IP Speech Control with AndroidGeek Dadhttp://www.blogger.com/profile/12159682162763730420noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-9130450719881994773.post-6365794964665952692019-04-11T05:14:50.911+01:002019-04-11T05:14:50.911+01:00Amazing blog. This post is looking interesting. Th...Amazing blog. This post is looking interesting. Thanks for sharing this with us <a href="https://TogetherReviewBlog.blogspot.com" rel="nofollow">TogetherReviewBlog</a>Ernesto Kleinhttps://www.blogger.com/profile/11518403048137008519noreply@blogger.comtag:blogger.com,1999:blog-9130450719881994773.post-61939913297258680752013-10-07T20:00:51.774+01:002013-10-07T20:00:51.774+01:00Hi Paul
Thanks very much for the quick answer, muc...Hi Paul<br />Thanks very much for the quick answer, much appreciated. I should perhaps explain more about the IP commands that prove to work in Demopad. I'm afraid I know very little about Python and as far as I know, Demopad issues these commands as http (post commands) to the IP address of my Sky box on my home network with port 49153 and command suffix \x0D\x0A. I don't know why the post command has the IP address 192.168.1.16 which is NOT my address but it doesn't seem to matter.<br />For example, the code for pause is;<br />POST /SkyPlay2 HTTP/1.1\x0D\x0AHost: 192.168.1.16:49153\x0D\x0AUser-Agent: SKY_skyplus\x0D\x0AContent-Length: 369\x0D\x0AAccept: */*\x0D\x0AContent-Type: text/xml; charset=utf-8\x0D\x0ASOAPACTION: "urn:schemas-nds-com:service:SkyPlay:2#Pause"\x0D\x0AAccept-Language: en-us\x0D\x0AAccept-Encoding: gzip, deflate\x0D\x0AConnection: keep-alive\x0D\x0A\x0D\x0A\x0D\x0A\x0D\x0A \x0D\x0A \x0D\x0A 0\x0D\x0A 1\x0D\x0A \x0D\x0A \x0D\x0A\x0D\x0A<br />and this works, as do play, stop, ff and rew.<br />I tried changing some parts based on your's and Liam's code and as recently suggested on the Demopad forum to send a change channel command as follows but no luck. I've tried different hex values for the channel including ff0 but again no joy.<br />POST /SkyPlay HTTP/1.1\x0D\x0AHost: 192.168.1.16:49153\x0D\x0AUser-Agent: SKY_skyplus\x0D\x0AContent-Length: 369\x0D\x0AAccept: */*\x0D\x0AContent-Type: text/xml; charset=utf-8\x0D\x0ASOAPACTION: "urn:schemas-nds-com:service:SkyPlay:2#SetAVTransportURI"\x0D\x0AAccept-Language: en-us\x0D\x0AAccept-Encoding: gzip, deflate\x0D\x0AConnection: keep-alive\x0D\x0A\x0D\x0A\x0D\x0A\x0D\x0A \x0D\x0A \x0D\x0A 0\x0D\x0A xsi://fdd\x0D\x0A NOT_IMPLEMENTED\x0D\x0A \x0D\x0A \x0D\x0A\x0D\x0A<br />Again, any thoughts would be much appreciated :)<br />Cheers<br />ChrisAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-9130450719881994773.post-32336334915036675222013-10-06T19:21:48.200+01:002013-10-06T19:21:48.200+01:00Hi Chris
Just did a bit of revision on this as it&...Hi Chris<br />Just did a bit of revision on this as it's been a while since I put this together. <br /><br />Looking at the code, first I make sure I've got a 3 digit number returned from the speech recognition routine:<br /><br />elif len(speech[1]) == 3 and speech[1].isdigit: <br /><br />I then take the number and do a look-up to the file that does mapping between decimal channel numbers and the hex equivalent:<br /><br />channelId, channelName = findSkyChannel(str(speech[1]))<br /><br />The findSkyChannel routine simply opens the reference file, finds the decimal number and then looks up the hex, returned as channelID.<br /><br />This line calls a routine to check the current channel:<br /><br />elif channelId == getSkyChannel():<br /><br />Perhaps you could try and replicate the XML I build in getSkyChannel and see what you get back from your box. I'm not an expert in Demopad so can't advise how to replicate the the string that I build.<br /><br />Changing the channel is then done with:<br />changeSkyChannel(channelId)<br /><br />...again, I guess it's a case of trying to replicate the XML string that I build in the Python routine.<br /><br />One thing I spent a lot of time doing is modifying the decimal to hex mapping file. So I would put the Sky box on channel 001, run a getSkyChannel and log the hex value associated with the channel and update the mapping file.<br /><br />I can't remember doing any tricks to get the channel changing to work. It was just a case of getting the XML right and getting the mapping file right.<br /><br />Cheers<br />Paul<br /><br />Geek Dadhttps://www.blogger.com/profile/12159682162763730420noreply@blogger.comtag:blogger.com,1999:blog-9130450719881994773.post-63509854309699059272013-10-06T18:24:28.294+01:002013-10-06T18:24:28.294+01:00Hi, I wonder if you can help please? I'm a big...Hi, I wonder if you can help please? I'm a big fan of Demopad and can send transport (stop, play, pause, etc) commands to Sky by IP but I cannot get it to change channel despite far too many hours trying!? Any help you could give would be much appreciated :) Thanks, ChrisAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-9130450719881994773.post-39920275518076028842013-03-13T06:00:45.546+00:002013-03-13T06:00:45.546+00:00I like your blog, I wanted to leave a comment to s...I like your blog, I wanted to leave a comment to support you and wish you a good continuation. Wish you all the best for all your best efforts. Thanks !<br /><br /><br /><a href="http://www.rapidsofttechnologies.com/android-application-development.html" rel="nofollow">android application development</a> <br /><br /> AARENhttps://www.blogger.com/profile/02147041998964590838noreply@blogger.com