[Q] Hilfe gesucht: Loewe Connect ID DR+ Smart-TV mit FHEM steuern

Begonnen von der.einstein, 08 April 2017, 15:40:50

Vorheriges Thema - Nächstes Thema

CoolTux

Das wake on LAN Problem konnte ich nun abschließend lösen. Den Code werde ich heute Abend mergen. Ihr müsstet dann bitte einmal testen und Feedback geben.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

der.einstein

#136
Habe eben die Version 30 getestet.
Die Funktionen (set und get) scheinen alle eine korrekte Response zu generieren. Was aber meines erachtens nach fehlt ist eine "AUtomatik", dass FHEM sich immer rückversichert, dass die aktuelle ClientId noch gültig ist. Dafür müsste eigentlich nur vor jedem sonstigen SendRequest einmalig "RequestAccess" geschickt werden, mit der aktuellen ClientId. Kennt der TV die Id noch, schickt er "Accepted" und alles ist gut, die eigentliche SendRequest wird geschickt. Ist die ClientId nicht mehr gültig, schickt der TV "Denied" oder "Pending" zurück. Dann muss noch 1 oder 2 "RequestAccess" geschickt werden, bis "Accepted" zurück kommt, dann erst sollte die eigentliche "SendRequest" gesendet werden.
Das würde dafür sorgen, dass die Pflicht, eine gültige ClientId vorzuhalten vom User auf FHEM übergeht, was in meinen Augen eine gute Idee ist.

Was meint ihr?

PS: Was mir noch eingefallen ist: die Kanalliste/n und die Zuordnung MediaItem/Locator/ShortTitle/Stream müsste nur 1-malig beim define ausgelesen und so abgespeichert werden, dass sie nach einem Reboot/Restart von FHEM bzw. AN/AUS des TV immer noch zur Verfügung steht. Ist das bei $hash->{helper} der Fall?

Grüße.

CoolTux

Das ginge nur als Reading oder ausserhalb in eine Datei. Ich finde das sollten wir einfach nach jeden Neustart machen lassen und nach einen power on des TV abfragen ob die liste existiert und wenn ja nicht erneut einlesen. Ausser natürlich die Programmliste die kann man ja alle 15 oder 30 min einlesen oder immer nach einem Kanalwechsel.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

viegener

Zitat von: der.einstein am 18 September 2017, 20:43:00
Habe eben die Version 30 getestet.
Die Funktionen (set und get) scheinen alle eine korrekte Response zu generieren. Was aber meines erachtens nach fehlt ist eine "AUtomatik", dass FHEM sich immer rückversichert, dass die aktuelle ClientId noch gültig ist. Dafür müsste eigentlich nur vor jedem sonstigen SendRequest einmalig "RequestAccess" geschickt werden, mit der aktuellen ClientId. Kennt der TV die Id noch, schickt er "Accepted" und alles ist gut, die eigentliche SendRequest wird geschickt. Ist die ClientId nicht mehr gültig, schickt der TV "Denied" oder "Pending" zurück. Dann muss noch 1 oder 2 "RequestAccess" geschickt werden, bis "Accepted" zurück kommt, dann erst sollte die eigentliche "SendRequest" gesendet werden.
Das würde dafür sorgen, dass die Pflicht, eine gültige ClientId vorzuhalten vom User auf FHEM übergeht, was in meinen Augen eine gute Idee ist.

Was meint ihr?

PS: Was mir noch eingefallen ist: die Kanalliste/n und die Zuordnung MediaItem/Locator/ShortTitle/Stream müsste nur 1-malig beim define ausgelesen und so abgespeichert werden, dass sie nach einem Reboot/Restart von FHEM bzw. AN/AUS des TV immer noch zur Verfügung steht. Ist das bei $hash->{helper} der Fall?

Grüße.

Natürlich ist es geplant, dass nicht der User sich um RequestAccess kümmern muss. Aber ich habe noch nicht verstanden, warum die ClientID relativ schnell wieder ungültig wird. Und den Aufruf 2 mal zu machen erschliesst sich mir auch noch nicht, denn das klingt danach als ob wir noch etwas falsch machen.

Wie schon beschrieben, das mit der Automatik ist im Prinzip schon vorbereitet, das sollte aber erst aktiviert werden, wenn es etwas stabiler ist (s.o.)

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Zitat von: CoolTux am 18 September 2017, 21:00:49
Das ginge nur als Reading oder ausserhalb in eine Datei. Ich finde das sollten wir einfach nach jeden Neustart machen lassen und nach einen power on des TV abfragen ob die liste existiert und wenn ja nicht erneut einlesen. Ausser natürlich die Programmliste die kann man ja alle 15 oder 30 min einlesen oder immer nach einem Kanalwechsel.

Ja, ich denke auch, das wir die Kanalliste beim Neustart (und auf Anforderung) neulesen sollten. Ich würde die Kanalliste aber nicht regelmässig neu einlesen, sondern das erstmal nur auf manuelle Anforderung (wer will kann das ja alle 15 min per at antriggern).

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

@der.einstein: Könntest Du mal aus dem log das Ergebnis Deiner "default" channellist hier posten und auf die erste uuid ein get mediaitem machen? Ich möchte gerne wissen, wie das mit den mediaitems bei neueren chassis aussieht, denn ich habe ja nur das alte chassis.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

der.einstein

Hier mal ein paar Responses, wie sie bei mir vom TV kommen:

my $channellists = '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Header/> <SOAP-ENV:Body>  <m:GetListOfChannelListsResponse xmlns:m="urn:loewe.de:RemoteTV:Tablet">  <m:fcid>0</m:fcid><m:ClientId>LRemoteClient-0-1504032928</m:ClientId><m:ResultItemChannelLists sequenceNumber="9076677" totalResults="5" returnedResults="5" startIndex="0"><m:ResultItemChannelList><m:View>favlist0</m:View><m:Name>Persönliche Liste 1</m:Name><m:TotalResults>38</m:TotalResults><m:Hash>817932246</m:Hash></m:ResultItemChannelList><m:ResultItemChannelList><m:View>favlist1</m:View><m:Name>Persönliche Liste 2</m:Name><m:TotalResults>29</m:TotalResults><m:Hash>236324662</m:Hash></m:ResultItemChannelList><m:ResultItemChannelList><m:View>fastscan0</m:View><m:Name>DVB-C</m:Name><m:TotalResults>391</m:TotalResults><m:Hash>4024613345</m:Hash></m:ResultItemChannelList><m:ResultItemChannelList><m:View>fastscan1</m:View><m:Name>Unitymedia</m:Name><m:TotalResults>0</m:TotalResults><m:Hash>509297849</m:Hash></m:ResultItemChannelList><m:ResultItemChannelList><m:View>avlist0</m:View><m:Name>#3051</m:Name><m:TotalResults>9</m:TotalResults><m:Hash>2242429194</m:Hash></m:ResultItemChannelList></m:ResultItemChannelLists><m:Result>OK</m:Result></m:GetListOfChannelListsResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>';

my $channellist = '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Header/> <SOAP-ENV:Body>  <m:GetChannelListResponse xmlns:m="urn:loewe.de:RemoteTV:Tablet">  <m:fcid>0</m:fcid><m:ClientId>LRemoteClient-0-1504032928</m:ClientId><m:ChannelListView>favlist0</m:ChannelListView><m:ChannelListName>Persönliche Liste 1</m:ChannelListName><m:ResultItemFragment sequenceNumber="9076676" totalResults="38" returnedResults="38" startIndex="0" hash="817932246"><m:ResultItemReference
mediaItemUuid="chl0:00-00030001ffff041b2b5c"/><m:ResultItemReference mediaItemUuid="chl0:00-00030001ffff04372b66"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff271fc35c"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff271fc362"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff271dc35d"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff271ec359"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff271dc35f"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff271fc35b"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff2716c36c"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff2719c37b"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff2716c363"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff2724c375"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff271e2b70"/><m:ResultItemReference mediaItemUuid="chl0:00-00030001ffff04312856"/><m:ResultItemReference mediaItemUuid="chl0:00-00030001ffff044d2859"/><m:ResultItemReference mediaItemUuid="chl0:00-00030001ffff041b6ea5"/><m:ResultItemReference mediaItemUuid="chl0:00-00030001ffff041b2840"/><m:ResultItemReference mediaItemUuid="chl0:00-00030001ffff0437286f"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff271e2873"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff27192b7a"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff27212b8e"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff2719285b"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff27192b98"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff271ac385"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff271ac381"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff2720c36f"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff2726d04c"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff271ec35a"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff2716c365"/><m:ResultItemReference mediaItemUuid="chl0:00-00030001ffff04316f46"/><m:ResultItemReference mediaItemUuid="chl0:00-00030001ffff044d2870"/><m:ResultItemReference mediaItemUuid="chl0:00-00030001ffff041b7033"/><m:ResultItemReference mediaItemUuid="chl0:00-00030001ffff04376d6b"/><m:ResultItemReference mediaItemUuid="chl0:00-00030001ffff04376d70"/><m:ResultItemReference mediaItemUuid="chl0:00-00030001ffff041b6f47"/><m:ResultItemReference mediaItemUuid="chl0:00-00030001ffff041b7031"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff2721cf11"/><m:ResultItemReference mediaItemUuid="chl0:00-0003f001ffff2712cf76"/></m:ResultItemFragment></m:GetChannelListResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>';

my $curplayback = '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Header/> <SOAP-ENV:Body>  <m:GetCurrentPlaybackResponse xmlns:m="urn:loewe.de:RemoteTV:Tablet">  <m:fcid>1234</m:fcid><m:ClientId>LRemoteClient-0-1504032928</m:ClientId><m:Mode>tv</m:Mode><m:Locator>channel://9:fffca5971e530d32982</m:Locator></m:GetCurrentPlaybackResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>';

my $curevent = '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Header/> <SOAP-ENV:Body>  <m:GetCurrentEventResponse xmlns:m="urn:loewe.de:RemoteTV:Tablet">  <m:fcid>1234</m:fcid><m:ItemLocator>channel://9:fffca5971e530d32982</m:ItemLocator><m:Locator>channel://9:fffca5971e530d32982</m:Locator><m:LiveEvent><m:Name>Mrs. Doubtfire - Das stachelige Kindermädchen</m:Name><m:ExtendedInfo>Um seinen Kindern täglich nah sein zu können, schlüpft der geschiedene Schauspieler und Stimmenimitator Daniel Hillard kurzerhand in die Rolle des betagten Kindermädchens Mrs. Doubtfire. Der ständige Rollenwechsel hat jedoch seine Tücken - und verheerende Folgen...</m:ExtendedInfo><m:Availability><m:ScheduledTime startTime="1504030500" duration="9300"/></m:Availability></m:LiveEvent></m:GetCurrentEventResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>';

my $mediaitem = '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Header/> <SOAP-ENV:Body>  <m:GetMediaItemResponse xmlns:m="urn:loewe.de:RemoteTV:Tablet">  <m:fcid>1234</m:fcid><m:ClientId>LRemoteClient-0-1504032928</m:ClientId><m:ResultItem><m:MediaItem itemInfoClass="object.item.videoItem"><m:uuid>chl0:00-0003f001ffff2716c36c</m:uuid><m:Locator>channel://9:fffca5971e530d32982</m:Locator><m:Caption>9</m:Caption></m:MediaItem><m:MediaInformation><m:ShortInfo>SUPER RTL HD</m:ShortInfo><m:Attributes>13</m:Attributes><m:StreamingUrl>http://192.168.0.2:1543/lt0/0/$1$0$8</m:StreamingUrl></m:MediaInformation></m:ResultItem></m:GetMediaItemResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>';


Zu beachten:
Beim "GetListOfChannelLists gibt er mir immer einen Hash aus, der laut API Doku sich nur ändert, wenn auch in der Liste Änderungen stehen: "<m:Hash>817932246</m:Hash>"
Somit könnte man das nutzen, um ein GetChannelList zu triggern bzw. zu überspringen.

Übrigens könnte man die MediaItems der TV-Sender auch "berechnen". Bei mir geht das über die Seite [url]https://helpdesk.kdgforum.de/sendb/belegung-284.html[/url mit den Angaben aus der Loewe Remote API bzgl. TSID, ONID, SID (wenn man das möchte

Beim Response zu "MediaItem" seht ihr auch "<m:StreamingUrl>http://192.168.0.2:1543/lt0/0/$1$0$8</m:StreamingUrl>". Diese URL könnte ich am PC oder am Smartphone öffnen und mir den TV-Kanal vom TV hierhin streamen lassen. Könnte eine ziemlich geile "follow me" Funktion abgeben  8)

Grüße.

viegener

@cooltux: Sehe ich das richtig, dass presence eigentlich nur einmal durchlaufen wird beim define und nicht immer wieder ?
War das so gedacht nur beim define festzustellen ob das Gerät gefunden wird?


Ich hatte mir das bisher noch nicht angeschaut. Wäre es sinnvoll, das regelmässig auszuführen oder war das nicht so gedacht?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

der.einstein

Hier mal eine Änderung mit funktionierendem GetCurrentEvent und GetNextEvent. Hoffe, das passt für euch so  8)
Es ist ein Diff gegen Version 31:

0a1,4
> ###############################################################################
> #
> # Developed with Kate
> #
284,286c288,289
<     if( lc $cmd eq 'setactionfield' ) {
<         return "$cmd needs text to show" if ( ( scalar( @args ) != 1 ) );
<         @actionargs = ( 'SetActionField', $args[0] );
---
>     if( lc $cmd eq 'setactionfield' ) {
>
346,351d348
<     } elsif( lc $cmd eq 'currentevent' ) {
<         @actionargs = ( 'GetCurrentEvent' );
<
<     } elsif( lc $cmd eq 'nextevent' ) {
<         @actionargs = ( 'GetNextEvent' );
<     
371c368
<         my $list    = 'volume:noArg mute:noArg currentplayback:noArg listofchannellists channellist mediaitem currentevent:noArg nextevent:noArg';
---
>         my $list    = 'volume:noArg mute:noArg currentplayback:noArg listofchannellists channellist mediaitem';
580,590c577
<         
<         "GetCurrentEvent" =>  [sub {$content="<ltv:Player>0</ltv:Player>";},
<         {"m:Name" => sub {LoeweTV_PrepareReading($hash,"CurrentEvent_Name", $_->text("m:Name"));},
<         "m:ExtendedInfo" => sub {LoeweTV_PrepareReading($hash,"CurrentEvent_Info",$_->text("m:ExtendedInfo"));},
<         "m:Locator" => sub {LoeweTV_PrepareReading($hash,"CurrentEvent_Locator",$_->text("m:Locator"));}}],
<
<         "GetNextEvent" =>  [sub {$content="<ltv:Player>0</ltv:Player>";},
<         {"m:Name" => sub {LoeweTV_PrepareReading($hash,"NextEvent_Name", $_->text("m:Name"));},
<         "m:ExtendedInfo" => sub {LoeweTV_PrepareReading($hash,"NextEvent_Info",$_->text("m:ExtendedInfo"));},
<         "m:Locator" => sub {LoeweTV_PrepareReading($hash,"NextEvent_Locator",$_->text("m:Locator"));}}],
<     
---
>             
595a583,590
>         "GetCurrentEvent"       =>  [sub {$content="<ltv:Player>0</ltv:Player>";},
>                                         {"m:Name" => sub {$hash->{curevent}[0] = $_->text("m:Name");},
>                                         "m:ExtendedInfo" => sub {$hash->{curevent}[1] = $_->text("m:ExtendenInfo");},
>                                         "m:Locator" => sub {$hash->{curlocator} = $_->text_only("m:Locator");}},
>                                     ],
>                                         
>         "GetNextEvent"          => [sub {$content="<ltv:Player>0</ltv:Player>";$result="m:GetNextEventResponse"}],
>             
888a884
>
890a887
>
891a889
>
892a891
>
894a894
>
895a896
>
896a898
>


Und hier mal, was ich jetzt im List habe:

Internals:
   CLIENTID   LRemoteClient-0-1505759665
   DEF        192.168.0.2 00:09:82:19:ab:58
   FCID       1234
   HOST       192.168.0.2
   INTERVAL   15
   NAME       LoeweTV
   NR         47
   STATE      connected
   TVMAC      00:09:82:19:ab:58
   TYPE       LoeweTV
   VERSION    0.0.31
   curlocator channel://6:fffca5971e530532991
   doStatus
   lastresponse <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Header/> <SOAP-ENV:Body>  <m:GetNextEventResponse xmlns:m="urn:loewe.de:RemoteTV:Tablet">  <m:fcid>1234</m:fcid><m:ItemLocator>channel://6:fffca5971e530532991</m:ItemLocator><m:Locator>channel://6:fffca5971e530532991</m:Locator><m:LiveEvent><m:Name>Zwei bärenstarke Typen</m:Name><m:ExtendedInfo>Im letzten Moment können die Kleinganoven Roscoe und Doug mal wieder der Polizei entkommen, weil sie sich am Flughafen als die ausgerufenen Passagiere Steinberg und Mason ausgeben. Damit gelangen sie allerdings vom Regen in die Traufe: Denn Steinberg und Mason sind CIA-Agenten. Nun müssen Roscoe und Doug in die Rolle der Spione schlüpfen und, ausgerüstet mit allerhand technischem Schickschnack, auf die Jagd nach dem Bösewicht K1 gehen.

Regie: E. B. Clucher
Drehbuch: Marcotullio Barboni
Komponist: Franco Micalizzi
Kamera: Ben McDermott

Darsteller:
Terence Hill (Rosco Frazer)
Bud Spencer (Doug O'Riordon)
Buffy Dee (K1)
Faith Minton (Der Vamp)
David Huddleston (Tiger)
Riccardo Pizzuti (Infido)
Dan Fitzgerald (Porter)
Dan Rambo (Jeremy Scott)
Susan Teesdale (Wirtin)</m:ExtendedInfo><m:Availability><m:ScheduledTime startTime="1505773231" duration="7176"/></m:Availability></m:LiveEvent></m:GetNextEventResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>
   Hu_do_params:
     args:
       GetNextEvent
       undef
       undef
       1
   Hu_sr_params:
     NAME
     action     GetNextEvent
     addr       http://192.168.0.2:905
     buf
     conn
     displayurl http://192.168.0.2:905/loewe_tablet_0001
     header     User-Agent: Assist Media/23 CFNetwork/808 Darwin/16.0.0

Accept: */*

Accept-Encoding: gzip, deflate

Accept-Language: de-de

Content-Type: application/soap+xml; charset=utf-8

Connection: keep-alive

SOAPAction: GetNextEvent
     host       192.168.0.2
     httpheader HTTP/1.1 200 OK

Date: Mon, 18 Sep 2017 22:48:46 GMT

Server: Nano HTTPD library

Content-Type: text/xml

Content-Length: 1514
     hu_blocking 0
     hu_filecount 1
     hu_portSfx :905
     loglevel   4
     method     POST
     path       /loewe_tablet_0001
     protocol   http
     redirects  0
     timeout    30
     url        http://192.168.0.2:905/loewe_tablet_0001
     Sr_readings:
       NextEvent_Info Im letzten Moment können die Kleinganoven Roscoe und Doug mal wieder der Polizei entkommen, weil sie sich am Flughafen als die ausgerufenen Passagiere Steinberg und Mason ausgeben. Damit gelangen sie allerdings vom Regen in die Traufe: Denn Steinberg und Mason sind CIA-Agenten. Nun müssen Roscoe und Doug in die Rolle der Spione schlüpfen und, ausgerüstet mit allerhand technischem Schickschnack, auf die Jagd nach dem Bösewicht K1 gehen.

Regie: E. B. Clucher
Drehbuch: Marcotullio Barboni
Komponist: Franco Micalizzi
Kamera: Ben McDermott

Darsteller:
Terence Hill (Rosco Frazer)
Bud Spencer (Doug O'Riordon)
Buffy Dee (K1)
Faith Minton (Der Vamp)
David Huddleston (Tiger)
Riccardo Pizzuti (Infido)
Dan Fitzgerald (Porter)
Dan Rambo (Jeremy Scott)
Susan Teesdale (Wirtin)
       NextEvent_Locator channel://6:fffca5971e530532991
       NextEvent_Name Zwei bärenstarke Typen
     Handlers:
     Hash:
     Sslargs:
   Readings:
     2017-09-17 23:00:05   Chassis         SL220
     2017-09-18 22:48:44   CurrentEvent_Info Der Chinese Han Sing, ein knallharter Ex-Cop, kommt in die USA, um den Tod seines Bruders zu rächen, eines hochrangigen Mitglieds einer mächtigen asiatischen Gang. Als Han in den blutigen Bandenkrieg zwischen den Asiaten und einer rivalisierenden afro-amerikanischen Gang gerät, versucht er zu vermitteln. Doch dann verliebt er sich in Trish O'Day, die Tochter des Anführers der Gegenseite. Gemeinsam suchen Han und Trish nach einer friedlichen Lösung für die Feindseligkeiten.

Regie: Andrzej Bartkowiak
Drehbuch: John Jarrell, Jerrold E. Brown, Mitchell Kapner
Komponist: Stanley Clarke
Kamera: Glen MacPherson

Darsteller:
Jet Li (Han Sing)
Aaliyah (Trish O'Day)
Russell Wong (Kai Sing)
Isaiah Washington (Mac)
Delroy Lindo (Isaak O'Day)
Anthony Anderson (Maurice)
DMX (Silk)
DB Woodside (Colin O'Day)
Henry O (Ch'u Sing)
     2017-09-18 22:48:44   CurrentEvent_Locator channel://6:fffca5971e530532991
     2017-09-18 22:48:44   CurrentEvent_Name Romeo Must Die
     2017-09-18 22:48:47   NextEvent_Info  Im letzten Moment können die Kleinganoven Roscoe und Doug mal wieder der Polizei entkommen, weil sie sich am Flughafen als die ausgerufenen Passagiere Steinberg und Mason ausgeben. Damit gelangen sie allerdings vom Regen in die Traufe: Denn Steinberg und Mason sind CIA-Agenten. Nun müssen Roscoe und Doug in die Rolle der Spione schlüpfen und, ausgerüstet mit allerhand technischem Schickschnack, auf die Jagd nach dem Bösewicht K1 gehen.

Regie: E. B. Clucher
Drehbuch: Marcotullio Barboni
Komponist: Franco Micalizzi
Kamera: Ben McDermott

Darsteller:
Terence Hill (Rosco Frazer)
Bud Spencer (Doug O'Riordon)
Buffy Dee (K1)
Faith Minton (Der Vamp)
David Huddleston (Tiger)
Riccardo Pizzuti (Infido)
Dan Fitzgerald (Porter)
Dan Rambo (Jeremy Scott)
Susan Teesdale (Wirtin)
     2017-09-18 22:48:47   NextEvent_Locator channel://6:fffca5971e530532991
     2017-09-18 22:48:47   NextEvent_Name  Zwei bärenstarke Typen
     2017-09-17 23:00:05   SW_Version      2.4.55.0
     2017-09-17 23:00:05   TVMAC           00:09:82:19:ab:58
     2017-09-18 22:48:01   access          accepted
     2017-09-18 22:18:34   presence        present
     2017-09-18 22:48:47   requestAction   GetNextEvent
     2017-09-18 22:48:47   requestResult   SUCCESS
     2017-09-18 22:48:01   state           connected
     2017-09-18 22:48:18   volume          20
   actionQueue:
   curevent:
     Romeo Must Die
     Der Chinese Han Sing, ein knallharter Ex-Cop, kommt in die USA, um den Tod seines Bruders zu rächen, eines hochrangigen Mitglieds einer mächtigen asiatischen Gang. Als Han in den blutigen Bandenkrieg zwischen den Asiaten und einer rivalisierenden afro-amerikanischen Gang gerät, versucht er zu vermitteln. Doch dann verliebt er sich in Trish O'Day, die Tochter des Anführers der Gegenseite. Gemeinsam suchen Han und Trish nach einer friedlichen Lösung für die Feindseligkeiten.

Regie: Andrzej Bartkowiak
Drehbuch: John Jarrell, Jerrold E. Brown, Mitchell Kapner
Komponist: Stanley Clarke
Kamera: Glen MacPherson

Darsteller:
Jet Li (Han Sing)
Aaliyah (Trish O'Day)
Russell Wong (Kai Sing)
Isaiah Washington (Mac)
Delroy Lindo (Isaak O'Day)
Anthony Anderson (Maurice)
DMX (Silk)
DB Woodside (Colin O'Day)
Henry O (Ch'u Sing)
   Helper:
Attributes:
   fhemMAC    00:1e:06:33:95:c9
   room       Andreas


Sieht sowiet ganz gut aus. Man könnte jetzt überlegen, wie man das präsentieren will, es gäbe ja auch noch die Startzeit und die Dauer zum Auslesen bzw. Berechnen (Startzeit+Dauer=Endzeit).

PS: "SetActionField" hatte bei mir irgendwie nicht hingehaun. Mit den Änderungen oben klappt es aber.

Grüße.

viegener

Ich habe gerade noch version 32 hochgeladen.

Hauptsächlich mit einem kompletten Auslesen der channellist (die daten werden aber noch nicht abgelegt)
Es gibt ein attribut channellist in dem man die abgefragte channellist hinterlegen kann

Achtung. Die ist sehr geschwätzig im log file!!!! - da alle channelinfos gelesen werden und dann automatisch für jeden Eintrag ein getMediaIteam ausgelöst wird.

Ich kann sagen das Queuing funktioniert  ;)

Es steht aber noch an
- Daten im helper - hash ablegen (Format: Ich tendiere als ersten Schritt mal zu einem String aus
    caption url name
- Log file einträge muss ich noch etwas disziplinieren
- irgendwas muss noch mit den channelinfos passieren - also umschaltung oder so
   ich hatte gedacht, dass man ein set channel mit dropdown anbieten
...
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

CoolTux

Zitat von: viegener am 18 September 2017, 22:45:13
@cooltux: Sehe ich das richtig, dass presence eigentlich nur einmal durchlaufen wird beim define und nicht immer wieder ?
War das so gedacht nur beim define festzustellen ob das Gerät gefunden wird?


Ich hatte mir das bisher noch nicht angeschaut. Wäre es sinnvoll, das regelmässig auszuführen oder war das nicht so gedacht?

Guten Morgen,

Die presence Funktion sollte später in einem Timer laufen. Sobald erkannt wird das der TV presence ist können die Daten geholt werden. So war die Idee.

Ich hoffe das ich heute Mal dazu komme mir alles neue an zu schauen und das wake on LAN ein zu bauen.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ich habe soeben Version 0.0.33 eingecheckt. Der WakeOnLAN sollte nun funktionieren.
@Johannes
Wenn ich das richtig gesehen habe, hast Du den patch von der.einstein schon eingebaut!?




Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

viegener

Zitat von: CoolTux am 19 September 2017, 08:38:50
@Johannes
Wenn ich das richtig gesehen habe, hast Du den patch von der.einstein schon eingebaut!?

Nein, den Fix von der.einstein habe ich NICHT eingebaut, den habe ich zu spät gesehen und musste dann erstmal die Änderungen zum Queuing der channellist durchbekommen - damit ich keinen unfertigen Branch bei mir habe. Übrigens das mit der Kollaboration auf Deinem github-Repository funktioniert für mich sehr gut.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

CoolTux

So war das ja auch gedacht mit der Zusammenarbeit  ;D
Wenn ich dazu komme werde ich den patch einarbeiten. Sah nur für mich so aus als wenn da schon was wäre.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

viegener

Zitat von: CoolTux am 19 September 2017, 07:23:06
Die presence Funktion sollte später in einem Timer laufen. Sobald erkannt wird das der TV presence ist können die Daten geholt werden. So war die Idee.

Ich hoffe das ich heute Mal dazu komme mir alles neue an zu schauen und das wake on LAN ein zu bauen.


Ja das hatte ich so angenommen. Danke für die Bestätigung.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können