Ich habe z.B. folgenden Sender in meinem Bouquet. Dieser wurde mit Partnerbox angelegt und ich habe lediglich die URL auf die rtsp-Variante geändert:
#SERVICE 1:256:19:EF10:421:1:C00000:0:0:0:rtsp%3a//XXXXXX%3XXXXXX@XXXXXX%3a554/stream?ref=1%3a0%3a19%3aEF10%3a421%3a1%3aC00000%3a0%3a0%3a0%3a:RTL HD
#DESCRIPTION RTL HD
Legt man auf der Client-Box einen Remote-Timer an, erhält man als Fehlermeldung: 400 Bad Request
Das journal sieht dann so aus:
Feb 07 16:40:25 dm520 enigma2[629]: action -> SetupActions save
Feb 07 16:40:25 dm520 enigma2[629]: [Connector] - Running command http://10.8.0.1:80/web/session
Feb 07 16:40:25 dm520 enigma2[629]: [Connector] - Read sessionId
Feb 07 16:40:25 dm520 enigma2[629]: [Partnerbox] - got session
Feb 07 16:40:25 dm520 enigma2[629]: [Connector] - Running command http://10.8.0.1:80/web/timeradd?sRef=1:256:19:EF10:421:1:C00000:0:0:0:rtsp%3a//XXXXXX%3aXXXXXX@XXXXXX%3a554/stream?ref=1%3a0%3a19%3aEF10%3a421%3a1%3aC00000%3a0%3a0%3a0%3a:RTL HD&begin=1518015600&end=1518019200&name=Verdachtsf%C3%A4lle&description=Verdachtsf%C3%A4lle&dirname=/media/hdd/movie/&tags=None&eit=3364&justplay=0&afterevent=3&repeated=0
Feb 07 16:40:26 dm520 enigma2[629]: [Connector] - Error in runCommand [Failure instance: Traceback (failure with no frames): <class 'twisted.web.error.Error'>: 400 Bad Request
Feb 07 16:40:26 dm520 enigma2[629]: ]
Feb 07 16:40:26 dm520 enigma2[629]: [Partnerbox] - Error in sendPartnerBoxWebCommand 400 Bad Request
Feb 07 16:40:26 dm520 enigma2[629]: [Partnerbox] - Error in getSessionId [Failure instance: Traceback (failure with no frames): <class 'twisted.web.error.Error'>: 400 Bad Request
Feb 07 16:40:26 dm520 enigma2[629]: ]
Das liegt daran, dass die URL falsch aufgebaut ist ("RTL HD" statt "RTL%20HD").
Ich habe dann in RemoteTimerEntry.py ein urllib.quote() um die sref gepackt. Danach funktioniert das Anlegen des Timers:
Feb 07 17:00:22 dm520 enigma2[562]: action -> SetupActions save
Feb 07 17:00:22 dm520 enigma2[562]: [Connector] - Running command http://10.8.0.1:80/web/session
Feb 07 17:00:22 dm520 enigma2[562]: [Connector] - Read sessionId
Feb 07 17:00:22 dm520 enigma2[562]: [Partnerbox] - got session
Feb 07 17:00:22 dm520 enigma2[562]: [Connector] - Running command http://10.8.0.1:80/web/timeradd?sRef=1%3A256%3A19%3AEF10%3A421%3A1%3AC00000%3A0%3A0%3A0%3Artsp%253a//XXXXXX%253aXXXXXX%40XXXXXX%253a554/stream%3Fref%3D1%253a0%253a19%253aEF10%253a421%253a1%253aC00000%253a0%253a0%253a0%253a%3ARTL%20HD&begin=1518019200&end=1518021000&name=Betrugsf%C3%A4lle&description=Betrugsf%C3%A4lle&dirname=/media/hdd/movie/&tags=None&eit=3424&justplay=0&afterevent=3&repeated=0
Feb 07 17:00:23 dm520 enigma2[562]: create buffer for widget 600 x 200
Ich bekam jedoch auch einen 400 Bad Request beim Versuch die Remote Timer Liste zu öffnen und den angelegten Timer wieder zu löschen. Da wurde dann wieder die sref nicht encoded.
Ich habe daraufhin alle *.py durchsucht und die entsprechenden Stellen geändert. Patch im Anhang des Posts.
Client-Box hat original unstable DMM-Image - Serverbox läuft mit NN2