Autor Thema: [Q] Hilfe gesucht: Loewe Connect ID DR+ Smart-TV mit FHEM steuern  (Gelesen 4569 mal)

Offline der.einstein

  • Jr. Member
  • **
  • Beiträge: 76
Hallo Fhemler,
Ich suche nach einer Möglichkeit meinen Loewe Smart-TV Connect ID DR+ 46" Baujahr 2013 über FHEM zu steuern.
Leider gibt es kein fertiges Modul hierfür.
Es gibt aber bereits vom Hersteller und Drittanbietern Android Apps, die dies können (vom Handy aus).
In einem Forum für Loewe-TVs hab ich eine Möglicht keit über eine SOAP-API gefunden, mit der ich jede Eingabe der Fernbedienung übers Netzwerk schicken kann. Die gibt mir dann sogar eine Antwort mit, z.B. welches Programm aktuell läuft z.B. ARD statt nur Kanal 1.
Dies funktioniert mit Curl:

curl -v -XPOST -H 'Accept: */*' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: nl-nl' -H 'Content-Type: application/soap+xml; charset=utf-8' -H 'Connection: keep-alive' -H 'SOAPAction: InjectRCKey' -H 'User-Agent: Assist Media/23 CFNetwork/808 Darwin/16.0.0' -d '<env:Envelope
        xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:ltv="urn:loewe.de:RemoteTV:Tablet">
        <env:Body>
            <ltv:InjectRCKey>
                <fcid>111</fcid>
                <ClientId>LRemoteClient-0-1470814689</ClientId>
                <InputEventSequence>
                    <RCKeyEvent
                        alphabet="l2700"
                        value="12"
                        mode="press"/>
                    </InputEventSequence>
                </ltv:InjectRCKey>
            </env:Body>
        </env:Envelope>' 'http://10.0.102.51:905/loewe_tablet_0001'

Jetzt die Frage: Damit müsste sich doch eine FHEM-Steuerung basteln lassen?
Kann ich dafür das Modul HTTPMOD verwenden? Und wenn ja, wie? Ich muss quasi für jede FB-Taste eine Funktion schreiben.

Hilfe dringend erwünscht...
Danke

PS: Falls jemand auch einen Loewe hat und es ausprobieren möchte, man muss auf dem Handy eine FB-App installieren, diese benutzen um den TV fernzubedienen und währenddessen die WLAN-Pakete mitschneiden. Warum? Der TV und die App müssen sich kennen und IDs erstellen und austauschen, das kann die App, ich aber nicht. Daher die App das übernehmen lassen und die ID herausfiltern. Sie kann dann benutzt werden, um mittels Curl den TV fernzusteuern.

EDIT: Laut mehrerer Quellen soll das auch mit SHARP Smart-TVs funktionieren, die haben wohl diesselbe Firmware.

« Letzte Änderung: 17 August 2017, 14:44:50 von der.einstein »

Offline der.einstein

  • Jr. Member
  • **
  • Beiträge: 76
Antw:Loewe Connect ID DR+ Smart-TV mit FHEM steuern
« Antwort #1 am: 14 Juli 2017, 08:19:03 »
Mir liegt inzwischen die Dokumentation der Loewe API vor (siehe Anhang).

Es war mir damit auch möglich ein Pairing mit dem TV hinzubekommen und danach alle Funktionen fernzusteuern (mittels curl).

Ich suche nun immer noch nach einer Möglichkeit, dies in FHEM umzusetzen, das heißt über Perl mit z.B. HTTPMOD.

Im Endeffekt müsste FHEM/HTTPMOD nur ein (X)POST absetzen und dabei die SOAP Message senden.

Interessant ist auch die Möglichkeit, dass der Client (FHEM) beim Server (TV) "subscribed". Dann sendet der TV an FHEM eine Info, wenn sich bei ihm was ändert, z.B. umschalten etc.

Offline der.einstein

  • Jr. Member
  • **
  • Beiträge: 76
Antw:Loewe Connect ID DR+ Smart-TV mit FHEM steuern
« Antwort #2 am: 14 Juli 2017, 08:22:17 »
Hier mal noch die 2 (X)POST Messages, um den TV auf stumm zu schalten:

#!/bin/bash
curl -v -XPOST -H 'Accept: */*' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: de-de' -H 'Content-Type: application/soap+xml; charset=utf-8' -H 'Connection: keep-alive' -H 'SOAPAction: RequestAccess' -H 'User-Agent: Assist Media/23 CFNetwork/808 Darwin/16.0.0' -d '
<env:Envelope
        xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:ltv="urn:loewe.de:RemoteTV:Tablet">
        <env:Body>
<ltv:RequestAccess>
<ltv:fcid>12345</ltv:fcid>
<ltv:ClientId>LRemoteClient-0-1499966172</ltv:ClientId>
<ltv:DeviceType>Apple iPad</ltv:DeviceType>
<ltv:DeviceName>Odroid64-FHEM</ltv:DeviceName>
<ltv:DeviceUUID>00:1e:06:33:95:c9</ltv:DeviceUUID>
<ltv:RequesterName>Assist Media App</ltv:RequesterName>
</ltv:RequestAccess>
        </env:Body>
</env:Envelope> ' 'http://192.168.0.3:905/loewe_tablet_0001'

exit 0

und:

#!/bin/bash
curl -v -XPOST -H 'Accept: */*' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: de-de' -H 'Content-Type: application/soap+xml; charset=utf-8' -H 'Connection: keep-alive' -H 'SOAPAction: InjectRCKey' -H 'User-Agent: Assist Media/23 CFNetwork/808 Darwin/16.0.0' -d '
<env:Envelope
        xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:ltv="urn:loewe.de:RemoteTV:Tablet">
        <env:Body>
<ltv:InjectRCKey>
<fcid>12345</fcid>
<ClientId>LRemoteClient-0-1499966172</ClientId>
<InputEventSequence>
<RCKeyEvent alphabet="l2700" value="13" mode="press"/>
<RCKeyEvent alphabet="l2700" value="13" mode="release"/>
</InputEventSequence>
</ltv:InjectRCKey>
</env:Body>
</env:Envelope>
' 'http://192.168.0.3:905/loewe_tablet_0001'

exit 0

Offline Elektrolyt

  • New Member
  • *
  • Beiträge: 19
Antw:Loewe Connect ID DR+ Smart-TV mit FHEM steuern
« Antwort #3 am: 03 August 2017, 11:10:58 »
Hallo der.einstein,

vielen Dank für deinen sehr interessanten Post!
Hast du mal das Modul DLNARenderer probiert? (https://fhem.de/commandref.html#DLNARenderer)
Das hier https://www.loewe-friends.de/viewtopic.php?t=6475 fand ich auch interessant (hast du wahrscheinlich ebenfalls bereits gelesen)

Gruß, Jens
PasPi und Cb2 als Server, COC, CUL868, NanoCUL, RFBee als CUL_RFR, Buderus GB172 / 2 Kreise / CP / KM200 , FRM, FS20, IT, Revolt, CUL_EM, HMS, KS300, OWServer,  ECMD, VSM-102, FHEM2FHEM, einige DOIFs...

Offline der.einstein

  • Jr. Member
  • **
  • Beiträge: 76
Antw:Loewe Connect ID DR+ Smart-TV mit FHEM steuern
« Antwort #4 am: 03 August 2017, 12:49:09 »
Hab mir eben das Modul angeschaut, auch den Link zum Loewe Forum; kannte ich noch nicht

Aber ich hab mittlerweile etwas Perl gelernt und obiges in einem Perl Script umsetzen können, löste ich heute Nachmittag.

Problem ist dann noch die Integration in FHEM und ein Webview.

Zu dem DLNA: Es geht eher um eine reine TV Steuerung analog LGTV oder PHTV, DLNA kann der TV auch dafür wäre das oben genannte Modul schon ganz gut.

Ich möchte aber erreichen, dass ich ihn basierend auf anderen Einflüßen z. B. Licht an/aus und Uhrzeit, gezielt ein/ausschalten kann und einen bestimmten Sender einstellen kann.

Zudem wäre es cool wenn die Aufnahmefunktion mit FHEM möglich wäre zusammen mit dem Auslesen des EPG und der gespeicherten Aufnahmen. Diese macht der Loewe automatisch als DLNA Server bekannt -> kann ich somit auch woanders schaun.

Die Krönung wäre das oben genannte Subscription Feature: der TV meldet bei FHEM zum B. das auf ein bestimmtes Programm ungeschälten wurde.

Ich hoffe, du bleibst mir als Gesprächsteilnehmer erhalten

Grüße

Gesendet von meinem LG-D855 mit Tapatalk


Offline der.einstein

  • Jr. Member
  • **
  • Beiträge: 76
Antw:Loewe Connect ID DR+ Smart-TV mit FHEM steuern
« Antwort #5 am: 08 August 2017, 22:08:57 »
So, es hat leider etwas länger gedauert, dafür funktioniert es nun schon sehr gut (allerdings standalone).

Hier das Skript bis dato:

#!/usr/bin/perl -w
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request::Common;
use XML::Twig;
use Net::Address::Ethernet qw( get_address );
use Net::Ping;
use Net::Wake;

my $mac = get_address;
my $ip = "192.168.0.2";
my $tvmac = "00:09:82:19:ab:58";
my $action = $ARGV[0];
my $RCkey = $ARGV[1];
my $clientid = $ARGV[2];
my $fcid = $ARGV[3];
my $status = "";
my $noobie = "";
my $connectsuccess = "false";

################################################################################
#######                            INFOS                                ########
################################################################################
# use first command line argument as "action", eg. InjectRCKey
# use second command line argument as "RCkey", eg. 13
# use third command line argument as "clientid", eg. LRemoteClient-0-1501098376 or ?
# use fourth command line argument as "fcid", eg. 1234
# eg.: ./dertest7.pm RequestAccess 13 abcd

my $p = Net::Ping->new();
if (! $p->ping($ip)){Net::Wake::by_udp($ip,$tvmac);};
$p->close();

if (! defined $clientid){$clientid = "?"};
if (! defined $fcid){$fcid = "1234"};

my ($message, $response, $request, $userAgent, $noob, $twig1, $twig2, $content, $content_ra, $content_key);
$content_ra = ' <ltv:DeviceType>Apple iPad</ltv:DeviceType>
<ltv:DeviceName>FHEM</ltv:DeviceName>
<ltv:DeviceUUID>'.$mac.'</ltv:DeviceUUID>
<ltv:RequesterName>Assist Media App</ltv:RequesterName>';
$content_key = ' <InputEventSequence>
<RCKeyEvent alphabet="l2700" value="'.$RCkey.'" mode="press"/>
<RCKeyEvent alphabet="l2700" value="'.$RCkey.'" mode="release"/>
</InputEventSequence>';
$content = $content_ra;
$action = "RequestAccess";
&sendRequest;

if ($status ne "Accepted") {&sendRequest};
if ($status ne "Accepted") {&sendRequest};
$content = $content_key;
$action = $ARGV[0];
if ($status eq "Accepted")
{
&sendRequest;
}
#else {}

sub sendRequest {
my $header = "<env:Envelope
xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'
xmlns:ltv='urn:loewe.de:RemoteTV:Tablet'>
<env:Body>\n";
my $action_xml1 = " <ltv:$action>\n";
my $header2 = " <ltv:fcid>".$fcid."</ltv:fcid>
<ltv:ClientId>".$clientid."</ltv:ClientId>\n";
my $action_xml2 = " \n </ltv:$action>";
my $footer = "\n</env:Body>
</env:Envelope>\n";
$message = $header.$action_xml1.$header2.$content.$action_xml2.$footer;
$request = HTTP::Request->new(POST => 'http://'.$ip.':905/loewe_tablet_0001');
$userAgent = LWP::UserAgent->new(agent => 'Assist Media/23 CFNetwork/808 Darwin/16.0.0');
$request->header('Accept' => '*/*');
$request->header('Accept-Encoding' => 'gzip, deflate');
$request->header('Accept-Language' => 'de-de');
$request->header('Connection' => 'keep-alive');
$request->header('SOAPAction' => $action);
$request->content_type("application/soap+xml; charset=utf-8");
$request->content($message);
$response = $userAgent->request($request);
$noob = $response->decoded_content;
$twig1= new XML::Twig;
$twig1->parse($noob);
$twig2 = XML::Twig->new(
    twig_handlers => {
        'm:ClientId' => sub {
$clientid = $_->text_only('m:ClientId');     
        },
'm:AccessStatus' => sub {
$status = $_->text_only('m:AccessStatus');
},
    },
)->parse($noob);
}

if($response->code == 200) {
$connectsuccess = "true";
#print $noob;
#print $response->as_string;
}
else {
print $response->error_as_HTML;
}

print "Status: ",$status, " ClientId: ",$clientid, " ConnectSuccess: ",$connectsuccess,"\n";

Aufruf mit z.B.: meinscript.pl InjectRCKey 79Was passiert? Am TV wird die Taste "Info" gedrückt.

Jetzt die wichtige Frage: Wie krieg ich das jetzt in FHEM rein? Als Modul?  8)

Offline der.einstein

  • Jr. Member
  • **
  • Beiträge: 76
Antw:[Q] Hilfe gesucht: Loewe Connect ID DR+ Smart-TV mit FHEM steuern
« Antwort #6 am: 17 August 2017, 14:49:00 »
Nach Absprache mit einem Moderator wurde dieses Thema aus der Bastelecke verschoben nach Multimedia, um hoffentlich mehr Unterstützung zu erhalten.

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10403
Antw:[Q] Hilfe gesucht: Loewe Connect ID DR+ Smart-TV mit FHEM steuern
« Antwort #7 am: 17 August 2017, 19:50:45 »
Nun, jetzt wo Du so weit gekommen bist ist der Rest ein Klacks.

Du liest Die das Developer Guide im FHEM Wiki durch.
Sucht Dir ein Modul welches in Deine Richtung geht
Schreibst einem Developer der Dir Sympathisch ist ob er Lust und Zeit hat Dein Mentor zu sein.



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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline der.einstein

  • Jr. Member
  • **
  • Beiträge: 76
Antw:[Q] Hilfe gesucht: Loewe Connect ID DR+ Smart-TV mit FHEM steuern
« Antwort #8 am: 17 August 2017, 20:20:37 »


Nun, jetzt wo Du so weit gekommen bist ist der Rest ein Klacks.

Du liest Die das Developer Guide im FHEM Wiki durch.
Sucht Dir ein Modul welches in Deine Richtung geht
Schreibst einem Developer der Dir Sympathisch ist ob er Lust und Zeit hat Dein Mentor zu sein.



Grüße

Und wer könnte der Glückliche sein?

Gesendet von meinem LG-D855 mit Tapatalk


Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10403
Antw:[Q] Hilfe gesucht: Loewe Connect ID DR+ Smart-TV mit FHEM steuern
« Antwort #9 am: 17 August 2017, 20:27:03 »
Lese Dich bisschen durch das Forum und schaue wo Developer antworten. Dann entscheide und schreibe dir einfach mal an.
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline der.einstein

  • Jr. Member
  • **
  • Beiträge: 76
Antw:[Q] Hilfe gesucht: Loewe Connect ID DR+ Smart-TV mit FHEM steuern
« Antwort #10 am: 28 August 2017, 22:10:35 »
So, ich bin mittlerweile selbst etwas weitergekommen.

Das Skript kann nun die meisten Funktionen:
- Online-Status checken
- wenn offline, dann WoL-Paket senden, dann TV hochfahren
- ausschalten und einschalten
- Pairing mit dem TV
- Lautstärke und Muting auslesen und senden
- Tastendruck senden (beliebigen)
- aktuelles Programm checken,
- Mode/App am TV checken und ändern (z.B. umschalten auf Browser mit bestimmter URL)
- Kanallisten Auslesen (auch setzen möglich)
- beliebigen Text in eingeblendetem Dialog anzeigen

Was noch fehlt:
- Aufnahme-Timer setzen
- beliebige Quelle abspielen (z.B: auch aus dem Netzwerk oder Internetstream)
- Subscribe (d.h. update push durch den Fernseher, wenn mit der Fernbedienung geschalten wurde)
- Aufnahmen auslesen (aus DR+ Archiv, wie es bei Loewe heißt)

Was ich nicht hinbekommen habe, trotz einlesen in diverse Pakete und Wiki-Seiten: ein FHEM Paket   :'(
Ich hab alles in einer handvoll Funktionen umgesetzt, alle werden aus einem Hash gespeist. So zuminest sollte es beim FHEM Modul auch sein.
Aber die Sache mit Initialize etc.pp. => da brauch ich Nachhilfe. Wie mache ich ab hier weiter?

Grüße!

#!/usr/bin/perl -w
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request::Common;
use XML::Twig;
use Net::Address::Ethernet qw( get_address );
use Net::Ping::External qw(ping);
use Net::Wake;
use Data::Dumper::Simple;

$Data::Dumper::Indent = 1;
$Data::Dumper::Sortkeys = 1;

my $themac = get_address;
my %hash = ( ip => '192.168.0.2',
tvmac => '00:09:82:19:ab:58',
action => $ARGV[0],
RCkey => $ARGV[1],
clientid => $ARGV[2],
fcid => $ARGV[3],
status => "",
connectsuccess => "false",
pingresult => "down",
mac => $themac,
lastresponse => "",
lastchunk => "",
volstate => "",
mutstate => "",
curlocator => "",
curevent => "",
nextevent => "",
);

################################################################################
#######                            INFOS                                ########
################################################################################
# use first command line argument as "action", eg. InjectRCKey
# use second command line argument as "RCkey", eg. 13
# use third command line argument as "clientid", eg. LRemoteClient-0-1501098376 or ?
# use fourth command line argument as "fcid", eg. 1234
# eg.: ./dertest7.pm RequestAccess 13 abcd

&LoeweTV_setKey();

sub LoeweTV_setKey {
print "RUNNING SETKEY   \n";
if (! defined $hash{RCkey}){$hash{RCkey} = ""};
if (! defined $hash{fcid}){$hash{fcid} = "1234"};
&LoeweTV_hostUp($hash{ip},$hash{tvmac},$hash{mac});
if (! defined $hash{clientid}){$hash{clientid} = "?"};
&LoeweTV_checkAccess($hash{clientid},$hash{fcid});
if ($hash{status} eq "Accepted") {&LoeweTV_sendRequest($hash{action},$hash{RCkey});}
}

sub LoeweTV_hostUp {
#my($hash{ip}, $hash{tvmac}, $hash{mac}) = @_;
print "RUNNING PING: ";
if (ping(host=>$hash{ip})) {$hash{pingresult} = "up";print "ONLINE \n"}else{print "OFFLINE \n";Net::Wake::by_udp($hash{ip},$hash{tvmac});Net::Wake::by_udp($hash{ip},$hash{tvmac});Net::Wake::by_udp($hash{ip},$hash{tvmac});Net::Wake::by_udp($hash{ip},$hash{tvmac});Net::Wake::by_udp($hash{ip},$hash{tvmac});&LoeweTV_checkAccess($hash{clientid},$hash{fcid});&LoeweTV_sendRequest("InjectRCKey",22)};
return($hash{pingresult});
}

sub LoeweTV_checkAccess {
print "RUNNING CHECKACCESS   \n";
#my($clientid,$fcid) = @_;
my $n = 1;
while (($hash{status} ne "Accepted") and ($n<=3)) {$n=$n+1;&LoeweTV_sendRequest("RequestAccess",0,)};
print "RAN CHECKACCESS: $hash{status}   \n";
return($hash{status});
}

sub LoeweTV_sendRequest {
my($action, $RCkey) = @_;
print "STARTING SENDREQUEST: $action   \n";
my ($message, $response, $request, $userAgent, $noob, $twig1, $twig2, $content);
our $result ="";
my $header = "<env:Envelope
xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'
xmlns:ltv='urn:loewe.de:RemoteTV:Tablet'>
<env:Body>\n";
my $action_xml1 = " <ltv:$action>\n";
my $header2 = " <ltv:fcid>".$hash{fcid}."</ltv:fcid>
<ltv:ClientId>".$hash{clientid}."</ltv:ClientId>\n";
my $action_xml2 = " \n </ltv:$action>";
my $footer = "\n</env:Body>
</env:Envelope>\n";
my %actions = (
        "RequestAccess" => sub {$content='<ltv:DeviceType>Apple iPad</ltv:DeviceType>
<ltv:DeviceName>FHEM</ltv:DeviceName>
<ltv:DeviceUUID>'.$hash{mac}.'</ltv:DeviceUUID>
<ltv:RequesterName>Assist Media App</ltv:RequesterName>'},
        "InjectRCKey",  => sub {$content='<InputEventSequence>
<RCKeyEvent alphabet="l2700" value="'.$RCkey.'" mode="press"/>
<RCKeyEvent alphabet="l2700" value="'.$RCkey.'" mode="release"/>
</InputEventSequence>'},
        "GetDeviceData"  => sub {$content='';$result="m:MAC-Address"},
        "GetChannelList"    => sub {$content="<ltv:ChannelListView>".$RCkey."</ltv:ChannelListView>
<ltv:QueryParameters>
<ltv:Range startIndex='".$ARGV[4]."' maxItems='9999'/>
<ltv:OrderField field='userChannelNumber' type='ascending'/>
</ltv:QueryParameters>";$result="m:GetChannelListResponse"},
"GetListOfChannelLists" => sub {$content="<ltv:QueryParameters>
<ltv:Range startIndex='".$RCkey."' maxItems='9999'/>
<ltv:OrderField field='userChannelNumber' type='ascending'/>
</ltv:QueryParameters>";$result="m:ResultItemChannelLists"},
"GetMediaItem"    => sub {$content='<MediaItemReference mediaItemUuid="'.$RCkey.'"/>'},
"GetChannelInfo" => sub {$content=""},
"GetCurrentPlayback"    => sub {$content='';$result="m:Locator"},
"GetCurrentEvent"    => sub {$content="<ltv:Player>0</ltv:Player>";$result="m:GetCurrentEventResponse"},
"GetNextEvent"    => sub {$content="<ltv:Player>0</ltv:Player>";$result="m:GetNextEventResponse"},
"SetActionField"    => sub {$content="<ltv:InputText>".$RCkey."</ltv:InputText>";$result="m:Result"},
"SetVolume"    => sub {$content="<Value>".$RCkey."</Value>";$result="m:Value"},
"GetVolume"    => sub {$content="";$result="m:Value"},
"SetMute"    => sub {$content="<Value>".$RCkey."</Value>";$result="m:Value"},
"GetMute"    => sub {$content="";$result="m:Value"},
    );
if ($actions{$action}) {$actions{$action}->();} else {die "Unknown action: $action\n";};
$message = $header.$action_xml1.$header2.$content.$action_xml2.$footer;
$request = HTTP::Request->new(POST => 'http://'.$hash{ip}.':905/loewe_tablet_0001');
$userAgent = LWP::UserAgent->new(agent => 'Assist Media/23 CFNetwork/808 Darwin/16.0.0');
$request->header('Accept' => '*/*');
$request->header('Accept-Encoding' => 'gzip, deflate');
$request->header('Accept-Language' => 'de-de');
$request->header('Connection' => 'keep-alive');
$request->header('SOAPAction' => $action);
$request->content_type("application/soap+xml; charset=utf-8");
$request->content($message);
$response = $userAgent->request($request);
$noob = $response->decoded_content;
$twig1= new XML::Twig;
$twig1->parse($noob);
my $handlers = {'m:ClientId' => sub {$hash{clientid} = $_->text_only('m:ClientId');},
'm:AccessStatus' => sub {$hash{status} = $_->text_only('m:AccessStatus');},
$result => sub {$hash{lastchunk} = $_->text_only($result);},
};
$twig2 = XML::Twig->new(twig_handlers => $handlers)->parse($noob);
if($response->code == 200) {
$hash{connectsuccess} = "true";
$hash{lastresponse} = $response->content;
}
else {
$hash{connectsuccess} = "false";
$hash{lastresponse} = $response->error_as_HTML;
}
if($hash{action} eq "RequestAccess"){return($hash{status})}else{return($hash{status})};
}

print Dumper(\%hash);
« Letzte Änderung: 28 August 2017, 22:30:17 von der.einstein »


Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10403
Antw:[Q] Hilfe gesucht: Loewe Connect ID DR+ Smart-TV mit FHEM steuern
« Antwort #12 am: 29 August 2017, 06:58:19 »
Hier hast du Mal ein einfaches Modul mit den HttpUtils. Daran kannst Du Dich halten.

https://github.com/LeonGaultier/fhem-SmartPi/blob/master/46_SmartPi.pm


Wenn Du Fragen hast dann frag einfach.
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.me/MOldenburg
Mein GitHub: https://github.com/LeonGaultier

Offline FHEM-Freak

  • New Member
  • *
  • Beiträge: 28
Antw:Loewe Connect ID DR+ Smart-TV mit FHEM steuern
« Antwort #13 am: 30 August 2017, 14:55:01 »
Ich hoffe, du bleibst mir als Gesprächsteilnehmer erhalten
Ich bleib dir erhalten  ;)

Sehr interessant was du bis jetzt schon gemacht hast.
Mein Thema ist Statusmeldungen von Fhem an den TV zu senden.
Dazu verwende ich
<ltv:InputText>Test</ltv:InputText>

Somit werden mir Meldungen die von Fhem kommen am TV angezeigt.

Welches Chassis hat dein Connect ID (Schätze mal SL151) ?
Ich verwende einen Loewe Connect UHD (Chassis SL320) und einen bild7 (SL420)
Frage deshalb weil die älteren Chassis (L2710) noch die Möglichkeit hatten aktiv etwas an Fhem zu senden.
Sprich es konnte am TV ein Menü erstellt werde womit was abgefragt werden konnte.
Das gibt es bei der neueren Generation leider nicht mehr.
Bsp. https://www.loewe-friends.de/viewtopic.php?f=7&t=589&p=15644

Was noch fehlt:
- Aufnahme-Timer setzen
- beliebige Quelle abspielen (z.B: auch aus dem Netzwerk oder Internetstream)
- Subscribe (d.h. update push durch den Fernseher, wenn mit der Fernbedienung geschalten wurde)
- Aufnahmen auslesen (aus DR+ Archiv, wie es bei Loewe heißt)

Die API befehle dazu hast du ?

Banana Pi
HMLAN
3 x HM-CC-TC + HM-CC-VC
1 x HM-PB-2-WM55, 1 x HM-WDS10-TH-O
1 x HM-WDS30-T-O, 1 x HM-WDS40-TH-I

Offline der.einstein

  • Jr. Member
  • **
  • Beiträge: 76
Antw:[Q] Hilfe gesucht: Loewe Connect ID DR+ Smart-TV mit FHEM steuern
« Antwort #14 am: 31 August 2017, 22:06:09 »
Hallo,
Es ist ein SL220 aus 2013/2014.

Statusmeldungen anzeigen geht super mit dem Script!

API Befehle liegen mir vor, siehe erster Post.

Aktuell arbeite ich am Parsen der Antworten vom TV (z. B. bei den Aufnahmen etwas aufwändiger). Dann sollte es ein erstes FHEM Modul geben.

Das Ganze sollte auch bei deinen Loewes funktionieren, da die API mit den Firmware-Updates aktuell gehalten wird.

Wäre toll, wenn sich noch paar mehr Leute melden würden, die einen Loewe zu hause rumstehen haben.

Gesendet von meinem LG-D855 mit Tapatalk

Gefällt mir Gefällt mir x 2 Liste anzeigen

 

decade-submarginal