[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

patch habe ich eingeflegt. Version 0.0.40 Hoffe ich habe alles getroffen. Musste doch mit Hand einpflegen.
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

#226
Sehr gut, danke dir.

Hier ist der nächste: Lasse "StreamingUrl" mit aus der CHannellist bzw. GetMediaItem auslesen und in der Channellist ablegen. Anzeige mit showchannellist.

--- off/82_LoeweTV_v4.pm 2017-09-25 19:54:00.017833395 +0200
+++ 82_LoeweTV.pm 2017-09-25 21:18:05.371440385 +0200
@@ -184,6 +184,7 @@ my $LoeweTV_cl_shortinfo = 3;

my $LoeweTV_dr_caption = 2;
my $LoeweTV_cl_shortinfo = 3;
+my $LoeweTV_cl_streamingurl = 4;

#########################
# TYPE routines
@@ -727,7 +728,8 @@ sub LoeweTV_SendRequest($$;$$$) {
                                         {"m:ResultItem" => sub { if ( defined( $actPar2 ) ) {
                                             LoeweTV_ChannelList_AddChannelXML( $hash,
                                                 $_->get_xpath('.//m:uuid', 0), $_->get_xpath('.//m:Locator', 0),
-                                                $_->get_xpath('.//m:Caption', 0), $_->get_xpath('.//m:ShortInfo', 0) );}}}
+                                                $_->get_xpath('.//m:Caption', 0), $_->get_xpath('.//m:ShortInfo', 0),
+                                                $_->get_xpath('.//m:StreamingUrl', 0) );}}}
                                     ],
########## in progress           

@@ -1101,8 +1103,8 @@ sub LoeweTV_ChannelList_Fragment($$$$$)



-sub LoeweTV_ChannelList_AddChannelXML($$$$$) {
-    my ($hash,$uuid, $locator, $caption, $shortinfo)  = @_;
+sub LoeweTV_ChannelList_AddChannelXML($$$$$$) {
+    my ($hash,$uuid, $locator, $caption, $shortinfo, $streamingurl)  = @_;
     
     my $name                    = $hash->{NAME};
 
@@ -1110,17 +1112,18 @@ sub LoeweTV_ChannelList_AddChannelXML($$
     $locator = $locator->text_only() if ( defined( $locator ) );
     $caption = $caption->text_only() if ( defined( $caption ) );
     $shortinfo = $shortinfo->text_only() if ( defined( $shortinfo ) );
+    $streamingurl = $streamingurl->text_only() if ( defined( $streamingurl ) );
     
-    Log3 $name, 5, "LoeweTV_ChannelList_AddChannel $name: UUID: ".$uuid."  shortinfo: ".$shortinfo."   caption: ".$caption."  locator :".$locator.":";
+    Log3 $name, 5, "LoeweTV_ChannelList_AddChannel $name: UUID: ".$uuid."  shortinfo: ".$shortinfo."   caption: ".$caption."  locator :".$locator."  streamingurl: ".$streamingurl.":";
     
     # no channellist ignore
     return undef if ( ! defined( $hash->{helper}{ChannelList} ) );
     
     if ( defined( $hash->{helper}{ChannelList}->{$uuid} ) ) {
-      Log3 $name, 2, "LoeweTV_ChannelList_AddChannel $name: DUPLICATE FOUND UUID: ".$uuid."  shortinfo: ".$shortinfo."   caption: ".$caption."  locator :".$locator.":";
+      Log3 $name, 2, "LoeweTV_ChannelList_AddChannel $name: DUPLICATE FOUND UUID: ".$uuid."  shortinfo: ".$shortinfo."   caption: ".$caption."  locator :".$locator."  streamingurl: ".$streamingurl.":";
     }

-    my @channel = ( $uuid, $locator, $caption, $shortinfo );
+    my @channel = ( $uuid, $locator, $caption, $shortinfo , $streamingurl );
     $hash->{helper}{ChannelList}->{$uuid} = \@channel;
     
     push( $hash->{helper}{ChannelSequence}, $uuid );
@@ -1205,7 +1208,7 @@ sub LoeweTV_ChannelListText($) {
       my $c = $$channel[$LoeweTV_cl_caption];
       $c = sprintf( "%4d", $c ) if ( $c =~ /\d+/ );
       
-      $s .= $c."   ".$$channel[$LoeweTV_cl_shortinfo]." : ".$uuid."\r    ".$$channel[$LoeweTV_cl_locator]."\r";
+      $s .= $c."   ".$$channel[$LoeweTV_cl_shortinfo]." : ".$uuid."\r    ".$$channel[$LoeweTV_cl_locator]."\r    ".$$channel[$LoeweTV_cl_streamingurl]."\r";
       $num++
     }
     $s .= "\r Channel count ".$num."\r";


Vorsichtshalber mal mit der patch Datei im Anhang  8)

Ich würde mich allmählich drüber freuen, wenn wir die Presence Abfrage regelmäßig schalten könnten.
Außerdem eine "set MyLoewe on" "Einschaltroutine", die erst den Präsenz-Wert und den Access-Wert abfragt und dann entsprechend an der richtigen Stelle der folgenden Aufrufe einspringt:
1. WakeUp (WOL)
2. sleep 5 sec
3. RequestAccess
4. remotekey 22

@viegener: Kannst du bei deinem Loewe die Live Kanäle und Aufnahmen übers Netzwerk freigeben? Also über DLNA? Falls das geht müsste es eine Funktion geben, dass er das immer bereit stellt. Das müsste dazu führen, dass der LoeweTV immer per LAN erreichbar ist.

Ach und Drop Down Liste für Befehle fänd ich super, aber ich denke wir sollten jetzt da wo möglich die DevelopmentGuidelineAV umsetzen, dann die Drop Down Listen machen, und dann die wichtigsten Befehle als webcmd verfügbar machen, allen voran ob/Off.

CoolTux

Ich habe soaben Version 0.0.41 mit der.einstein seinem patch hochgeladen.
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

Kann mir einer verraten woran ich definitiv erkennen kann das der Fernsehr an geschalten ist? Geht zum Beispiel ein RequestAccess nur wenn der Fernsehr wirklich an ist oder reicht es wenn er im Standby ist?
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

Zitat von: CoolTux am 27 September 2017, 06:46:52
Kann mir einer verraten woran ich definitiv erkennen kann das der Fernsehr an geschalten ist? Geht zum Beispiel ein RequestAccess nur wenn der Fernsehr wirklich an ist oder reicht es wenn er im Standby ist?
Also der TV kann mehrere Zustände haben, in denen er auf SOAP Befehle antwortet:
- er ist An (zeigt TV kanal, Radio, Stream, Aufnahme)
- er ist im Standby und bietet die TV Kanäle und Aufnahmen im Netzwerk über DLNA an (dann leuchtet die LED bei mir blau)
- er ist im Standby, nimmt aber grade etwas auf (LED rot bei mir)
- er ist im Standby und ich habe ihm ein WOL geschickt

In allen Fällen, also auch im letzteren, klappt ein RequestAccess und auch alle anderen SOPA Befehle.

Ein reines Stanby reicht nicht, hier ist zwar Strom auf der Netzwerkkarte, aber die Firmware nicht gebootet (falls man das in dem Fall so sagt).

Hilft dir das?

Gesendet von meinem LG-D855 mit Tapatalk

CoolTux

Weiß ich noch nicht.
Wir brauchen ein Reading power. Dieses Reading soll on oder off gesetzt werden. Hier bei geht es darum um der Fernsehr richtig an ist oder nicht (also mit Bild). Kann mir einer ein Reading verraten an das ich mich da halten kann?
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

#231
Zitat von: CoolTux am 27 September 2017, 13:04:27
Weiß ich noch nicht.
Wir brauchen ein Reading power. Dieses Reading soll on oder off gesetzt werden. Hier bei geht es darum um der Fernsehr richtig an ist oder nicht (also mit Bild). Kann mir einer ein Reading verraten an das ich mich da halten kann?
Wie wär's mit dem Ergebnis vom Ping?
Wenn er zurück ping't ist er an (genug).
Für Power ist doch die Frage ob er Bild zeigt oder nicht egal?

Gesendet von meinem LG-D855 mit Tapatalk

CoolTux

Naja wir sollten uns schon an die AV Konventionen vom FHEM Development Guide halten. Da steht drin was in und off für das Reading Power bedeuten. Und wie willst du unterscheiden wann der Fernseher an ist oder auf Standby.
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

Also ich meine das presence Reading sollte passen, da machen wir ja das Ping'en. Nen anderes passendes Reading haben wir nicht.
Was halt nicht geht ist rauszufinden, ob der TV komplett aus ist oder im Standby, weil er in keinem Fall Rückmeldung ins Netz geben kann.
Nur nachdem ein WOL gesendet wurde, kriegt man was vom TV zurück.

CoolTux

Wenn ich dich aber richtig verstanden habe kann man ihn anpingen auch wenn er im Standby ist. Richtig?
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

Also normalerweise leider nicht, das trifft nur zu, wenn er in einem der oben genannten "besonderen" Zustände ist. Besonders im Sinne von "auf den ersten Blick aus bzw. im Standby", was er aber nicht ist, erkennbar an der roten bzw. blauen LED, die ist im normalen Standby weiß.

Oder anders ausgedrückt: im Standby kriegst du kein Ping zurück (mit Ausnahmen).

viegener

Zitat von: CoolTux am 27 September 2017, 06:19:21
Ich habe soaben Version 0.0.41 mit der.einstein seinem patch hochgeladen.

Habe gerade Version 42 hochgeladen, mit ein paar Korrekturen und zwei neuen getcalls - feature und settings.
Leider werden wohl beide von meinem Chassis auch nicht unterstützt, deshalb kann ich nur begrenzt testen...
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Zitat von: der.einstein am 27 September 2017, 20:35:08
Also normalerweise leider nicht, das trifft nur zu, wenn er in einem der oben genannten "besonderen" Zustände ist. Besonders im Sinne von "auf den ersten Blick aus bzw. im Standby", was er aber nicht ist, erkennbar an der roten bzw. blauen LED, die ist im normalen Standby weiß.

Oder anders ausgedrückt: im Standby kriegst du kein Ping zurück (mit Ausnahmen).

Habe gerade mein TV mal ein wenig traktiert um rauszufinden, ob es etwas gibt, um die Fälle Standy mit Aufzeichnung und wirklich aus unterscheiden kann. Leider habe ich dazu nichts gefunden. Denn im Zustand einer laufenden Aufzeichnung im Standby ist nicht vom aktuellen Betrieb zu unterscheiden (man kann aktuellen Kanal abfragen, umschalten alle normalen Requests machen).

Also würde ich auch sagen - wenn er auf ping antwortet und device daten zurückliefert ist er an.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Zitat von: der.einstein am 25 September 2017, 21:49:59
@viegener: Kannst du bei deinem Loewe die Live Kanäle und Aufnahmen übers Netzwerk freigeben? Also über DLNA? Falls das geht müsste es eine Funktion geben, dass er das immer bereit stellt. Das müsste dazu führen, dass der LoeweTV immer per LAN erreichbar ist.

Dazu habe ich bei mir keine Möglichkeit gefunden - In welchem Menu geht das bei Dir?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

und gleich noch eine Version 43 hinterher (fiel mir schwer die 42 nicht länger zu behalten...)

Jetzt wird regelmässig der presence status abgefragt und auch volume und mute und currentEvent

Das Interval bezieht sich auf presence - Die anderen Daten werden nur bei jedem 2. mal abgefragt (und natürlich nur wenn present)

Allerdings sollte das wohl bei Euch auch noch etwas mehr getestet werden.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können