Sony Bravia TV 2014 per Lan steuern

Ich habe das Skript von tomgr installiert und habe nun auch die Webfront wie es sein soll.
Aber bei mir läuft das Anmelden nicht.


Fatal error:  Maximum execution time of 30 seconds exceeded in [Sony TV\Sony Bravia TV 2014\Anmeldung] on line 45
Abort Processing during Fatal-Error: Maximum execution time of 30 seconds exceeded
   Error in Script C:\IP-Symcon\scripts\51534.ips.php on Line 45

Ich habe die IP, die MAC eingetragen fehlt noch etwas ?

Der Fernseher sollte keine Probleme machen nutze die Apps und FHEM derzeit über LAN.
Es kommt keine Anmeldung am TV, Firewall ist deaktiviert.

Wäre nett wenn jemand nen Tip für mich hat
Gruß Daniel

Hallo Daniel,

habe die Anmeldung lange nicht mehr probiert.
Ich vermute, du brauchst länger als 30Sekunden um den Code, der dir am TV angezeigt wird, in IPS einzutragen, und bestätigen.

Der Fernseher zeigt nix an, kein Anmeldefenster.

Das Skript läuft und dann kommt die Meldung.

Habe es gerade noch mal getestet,
Am TV erscheint ein Popup Fenster mit dem Code, nach dem Aufruf vom Skript.

Da muss ja ein Problem sein bei mir.
Ich muss doch nur ne IP eingeben und den Rest holt sich das Skript oder habe ich da einen Denkfehler?

   $tv_ip_ID                    IP vom TV
   $my_device_ID           ???
   $my_nick_ID               ???
   $my_uuid_ID               ???
   $TVCode_ID               Code wenn Anmeldung erfolgreich
   $Cookie_ID                 Coockie ID der TV Verbindung nach Anmeldung
<?
$Parent                                   = IPS_GetParent($_IPS['SELF']);
$ParentModul                                = IPS_GetObject($Parent);

    // Variablen identifizieren
       $tv_ip_ID                    = IPS_GetObjectIDByName('Tv-IP', IPS_GetParent($_IPS['SELF']));
       $my_device_ID                    = IPS_GetObjectIDByName('my_device', IPS_GetParent($_IPS['SELF']));
       $my_nick_ID                    = IPS_GetObjectIDByName('my_nick', IPS_GetParent($_IPS['SELF']));
       $my_uuid_ID                    = IPS_GetObjectIDByName('my_uuid', IPS_GetParent($_IPS['SELF']));
       $TVCode_ID                    = IPS_GetObjectIDByName('TVCode', IPS_GetParent($_IPS['SELF']));
       $Cookie_ID                    = IPS_GetObjectIDByName('Cookie', IPS_GetParent($_IPS['SELF']));
    // IPS Werte auslesen


    // IPS Werte auslesen
        $tv_ip=getValueString($tv_ip_ID);
        $my_device=GetValueString ($my_device_ID);
        $my_nick=GetValueString ($my_nick_ID );
        $my_uuid=GetValueString ($my_uuid_ID );
        $TVCode=GetValueString ($TVCode_ID );
        $cookie= getValueString($Cookie_ID);

# use only A-Z a-z 0-9 for device. Probably. Havent checked.
// Start anlernen
$url ='/sony/accessControl';
$data='{"method":"actRegister","params":[{"clientid":"'.$my_nick.':'.$my_uuid.'","nickname":"'.$my_nick.' ('.$my_device.')","level":"private"},[{"value":"yes","function":"WOL"}]],"id":8,"version":"1.0"}';
$ch = curl_init('http://'. $tv_ip . $url);
curl_setopt($ch, CURLOPT_USERAGENT,"curl 7.26.0");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
$ausgabe = curl_exec($ch);
curl_close($ch);
//echo $ausgabe.chr(10);
// Hier auf Eingabe vom Code warten (WebFront)
$tv_key ='Neu';
SetValueString ($TVCode_ID , $tv_key);
$i = 0;
while( $tv_key === 'Neu')
{
    $tv_key=GetValueString ($TVCode_ID);
//    echo $tv_key;
    IPS_sleep(1000);
   $i++;
   if( $i == 40 )break;
}

// Key senden
    $tv_key=GetValueString ($TVCode_ID);
//echo $tv_key;
$tv_key=':'.$tv_key;
$tv_challenge = base64_encode($tv_key);
$tv_auth_header='Authorization: Basic '.$tv_challenge;
//echo $tv_auth_header.chr(10);
$headers = array();
$headers[]=$tv_auth_header;
$ch = curl_init('http://'. $tv_ip . $url);
curl_setopt($ch, CURLOPT_USERAGENT,"curl 7.26.0");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HEADER, true);
$ausgabe = curl_exec($ch);
//echo $ausgabe.chr(10);
curl_close($ch);
list($headers, $response) = explode("

", $ausgabe, 2);
$headers = explode("
", $headers);
foreach($headers as $header) {
    if (stripos($header, 'Set-Cookie:') !== false) {
//        echo $header.chr(10);
        $header = substr($header,0,strpos($header,";"));
        $auth = strstr($header, "a");
//          echo $auth;
        SetValueString ($Cookie_ID , $auth );
    }
}
?>

$my_device_ID ???
$my_nick_ID ???
$my_uuid_ID ???

müssen plausible Werte enthalten, sonst geht das nicht.
Eine uuid mit 1 hat bei mir nicht funktioniert.

Ansonsten kann ich jetzt nur mal die ganz dumme frage stellen: ist die IP-Adresse die richtige?

Schau dir das Bild in dem Post noch mal an.
Sony Bravia TV 2014 per Lan steuern

Ich habe einen Sony Bravia-Fernseher gekauft: KD43x8307c SAEP. Das ist ein Modell aus dem Jahr 2015 mit 4K.

Basierend auf diesem Script aus Post #12 (https://www.symcon.de/forum/threads/26330-Sony-Bravia-TV-2014-per-Lan-steuern?p=247986#post247986)
Das Anmelden per Script funktioniert. Cookie holen sorgt dafür, dass es am unteren Rand des Fernsehers kurz blau aufleuchtet. Eine Verbindung ist also da. Ansonsten liefert leider keine Funktion (an, aus, hoch, runter, mute, leiser, lauter) eine Reaktion des Fernsehers. Per verbundener anderer App klappt es.
Hat jemand eine Idee wie ich weiter vorgehen kann? Könnte es sein, dass die 2015er Modelle andere Befehle brauchen?

Gruß
Matthias

Push. Hat keiner eine Idee? Würde mich sehr über Hilfe freuen.

Kann dir leider nicht helfen, im Moment hängt mein TV nicht mehr im Netzwerk, da der PI hinter dem TV das Kabel braucht…

Hallo Gemeinde,

ich habe einen Sony Bravia 40EX725 geschenkt bekommen.

Nun habe ich mal brav hier alles gelesen, aber irgendwie werde ich hier nicht ganz schlau…

Könnt ihr mal eventuell ein „punkt für punkt“ tutorial zeigen, um einen Sony Bravia per IP Symcon zu steuern ?

Das wäre ganz lieb :slight_smile:

Grüße
Sascha

Hallo Zusammen,
ich bin versuche gerade meinen Fernseh (Sony KDL65W858C) in meine IPS zu integrieren, weil ich den Weg über einen Harmony Hub unschön finde (ist Plan B).
Ich bekomme die Registrierung meiner IPS im TV hin, sobald ich dann den Sender auslesen möchte, bekomme ich „Illegal Argument“ angezeigt.
Ich habe alles wie in Post #4 gemacht (nicht mehr und nicht weniger), Adressen angepasst und Skript ausgeführt.

Über einen Denkanstoß bzw. Hinweis würde ich mich freuen.

Frohe (Rest-)Ostern.

Sorry Leute,
habe zwar den Sony noch, aber der hängt nicht mehr am Netzwerk,
Der wird nur noch per schaltbare Steckdose geschaltet, da ein Pi mit Kodi hier besser werkelt.
Ich nutze den nur noch als „Monitor“.
Zweitfernseher ist auch nur ein PC Monitor mit PI3 und Kodi geworden.

Servus zusammen. Für die RasPi Nutzer gibt es eine Lösung. Ich poste die Details noch diese Woche.
Grüße
Matthias

Wie versprochen. Hier eine Lösung die bei mir läuft:
Sony Bravia Fernseher/TV ansteuern (RasPi/ Linux)