Hier eine Variante Sony TVs zu steuern. Diese habe ich auf RasPi aktiv. Auf Ubuntu Linux dürfte es auch klappen. Danke für die Hilfe hier im Forum!
Ausgangsbasis dieser Scripts ist die Arbeit von:
https://github.com/breunigs/bravia-auth-and-remote
Es gibt zwei Varianten
- Script erstellen mit dem Inhalt „Sony Bravia steuern“ und dieses Script dann über include in andere Scripte einbinden und die Sony-Funktionen aufrufen.
- Script erstellen mit dem Inhalt „Sony Bravia schalten per Variable“
„Sony Bravia steuern“:
<?
// Ausgangsbasis dieses Scripts ist die Arbeit von:
// https://github.com/breunigs/bravia-auth-and-remote
// 1. im Sony Bravia ein statisches Passwort/& Pre-Shared-Key einstellen (Details siehe Readme.txt bei github (siehe oben))
// 2. in der Datei send_command.sh das eben gesetzte Passwort hinter "X-Auth-PSK:" eintragen
// 3. Datei bzw. Ordner auf den RasPi schieben
// 4. Die auf den RasPi kopierte Datei muss ausführbar (Berechtigung "x" für Execute) gemacht werden!
// 5. ggf. curl auf Linux/ RasPi installieren
// So kann über Linux Ubuntu getestet werden, wenn curl installiert ist über den terminal:
// ./send_command.sh 192.168.178.29 AAAAAQAAAAEAAAATAw==
// Tipps um das auf dem RasPi zum laufen zu bringen sind von Ralla in diesem Beitrag zu finden:
// https://www.symcon.de/forum/threads/32156-Auf-RasPi-Linux-Befehle-ausführen?p=298340
// Die auf den RasPi kopierte Datei muss ausführbar (Berechtigung "x" für Execute) gemacht werden!
/*Ausgewählte Befehle für Sony Bravia 2015er-Modell KD-43x8307C:
TV Power: AAAAAQAAAAEAAAAVAw==
Power off: AAAAAQAAAAEAAAAvAw==
Wake up: AAAAAQAAAAEAAAAuAw==
HDMI 1: AAAAAgAAABoAAABaAw==
HDMI 2: AAAAAgAAABoAAABbAw==
HDMI 3: AAAAAgAAABoAAABcAw==
Mute: AAAAAQAAAAEAAAAUAw==
Volume up: AAAAAQAAAAEAAAASAw==
Volume down: AAAAAQAAAAEAAAATAw==
*/
//-----------------config------------------------
$ip = "192.168.178.29"; //IP-Adresse vom Fernseher in eurem Netzwerk
$pfad = "/var/lib/symcon/bravia"; //z.B. "/var/lib/symcon/bravia" Pfad auf eurem RasPi
//-----------------config------------------------
//--------------->Beispiel zum DIREKT ANSTEUERN<-------------------------------------------------
/*
$cmd = "AAAAAQAAAAEAAAAvAw==";
$result = IPS_Execute("$pfad/send_command.sh","$ip $cmd",false,true);
*/
//--------------->ODER per FUNKTION<-------------------------------------------------
//Dieses Script per include Befehl in jedem Script wo die Functions benutzt werden zu beginn einbinden
//danach stehen die SONY_Functions in dem Script zur Verfügung
//Die Befehle sind CaseSensitive!!!!
// und dann so aufrufen: SONY_Power($ip, $pfad);
function SONY_Power($ip, $pfad)
{
$cmd = "AAAAAQAAAAEAAAAVAw==";
$result = IPS_Execute("$pfad/send_command.sh","$ip $cmd",false,true);
}
function SONY_WakeUp($ip, $pfad)
{
$cmd = "AAAAAQAAAAEAAAAuAw==";
$result = IPS_Execute("$pfad/send_command.sh","$ip $cmd",false,true);
}
function SONY_OFF($ip, $pfad)
{
$cmd = "AAAAAQAAAAEAAAAvAw==";
$result = IPS_Execute("$pfad/send_command.sh","$ip $cmd",false,true);
}
function SONY_MUTE($ip, $pfad)
{
$cmd = "AAAAAQAAAAEAAAAUAw==";
$result = IPS_Execute("$pfad/send_command.sh","$ip $cmd",false,true);
}
function SONY_up($ip, $pfad)
{
$cmd = "AAAAAQAAAAEAAAASAw==";
$result = IPS_Execute("$pfad/send_command.sh","$ip $cmd",false,true);
}
function SONY_down($ip, $pfad)
{
$cmd = "AAAAAQAAAAEAAAATAw==";
$result = IPS_Execute("$pfad/send_command.sh","$ip $cmd",false,true);
}
function SONY_HDMI1($ip, $pfad)
{
$cmd = "AAAAAgAAABoAAABaAw==";
$result = IPS_Execute("$pfad/send_command.sh","$ip $cmd",false,true);
}
function SONY_HDMI2($ip, $pfad)
{
$cmd = "AAAAAgAAABoAAABbAw==";
$result = IPS_Execute("$pfad/send_command.sh","$ip $cmd",false,true);
}
function SONY_HDMI3($ip, $pfad)
{
$cmd = "AAAAAgAAABoAAABcAw==";
$result = IPS_Execute("$pfad/send_command.sh","$ip $cmd",false,true);
}
/* Um alle Befehle des TVs zu bekommen im Terminal/putty diesen Befehl ausführen: print_ircc_codes.sh IP-des-TVs
Dies ist das Ergebnis für den Sony Bravia KD-43x8307C:
{
"id": 10,
"result": [
{
"bundled": true,
"type": "IR_REMOTE_BUNDLE_TYPE_AEP_N"
},
[
{
"name": "Num1",
"value": "AAAAAQAAAAEAAAAAAw=="
},
{
"name": "Num2",
"value": "AAAAAQAAAAEAAAABAw=="
},
{
"name": "Num3",
"value": "AAAAAQAAAAEAAAACAw=="
},
{
"name": "Num4",
"value": "AAAAAQAAAAEAAAADAw=="
},
{
"name": "Num5",
"value": "AAAAAQAAAAEAAAAEAw=="
},
{
"name": "Num6",
"value": "AAAAAQAAAAEAAAAFAw=="
},
{
"name": "Num7",
"value": "AAAAAQAAAAEAAAAGAw=="
},
{
"name": "Num8",
"value": "AAAAAQAAAAEAAAAHAw=="
},
{
"name": "Num9",
"value": "AAAAAQAAAAEAAAAIAw=="
},
{
"name": "Num0",
"value": "AAAAAQAAAAEAAAAJAw=="
},
{
"name": "Num11",
"value": "AAAAAQAAAAEAAAAKAw=="
},
{
"name": "Num12",
"value": "AAAAAQAAAAEAAAALAw=="
},
{
"name": "Enter",
"value": "AAAAAQAAAAEAAAALAw=="
},
{
"name": "GGuide",
"value": "AAAAAQAAAAEAAAAOAw=="
},
{
"name": "ChannelUp",
"value": "AAAAAQAAAAEAAAAQAw=="
},
{
"name": "ChannelDown",
"value": "AAAAAQAAAAEAAAARAw=="
},
{
"name": "VolumeUp",
"value": "AAAAAQAAAAEAAAASAw=="
},
{
"name": "VolumeDown",
"value": "AAAAAQAAAAEAAAATAw=="
},
{
"name": "Mute",
"value": "AAAAAQAAAAEAAAAUAw=="
},
{
"name": "TvPower",
"value": "AAAAAQAAAAEAAAAVAw=="
},
{
"name": "Audio",
"value": "AAAAAQAAAAEAAAAXAw=="
},
{
"name": "MediaAudioTrack",
"value": "AAAAAQAAAAEAAAAXAw=="
},
{
"name": "Tv",
"value": "AAAAAQAAAAEAAAAkAw=="
},
{
"name": "Input",
"value": "AAAAAQAAAAEAAAAlAw=="
},
{
"name": "TvInput",
"value": "AAAAAQAAAAEAAAAlAw=="
},
{
"name": "TvAntennaCable",
"value": "AAAAAQAAAAEAAAAqAw=="
},
{
"name": "WakeUp",
"value": "AAAAAQAAAAEAAAAuAw=="
},
{
"name": "PowerOff",
"value": "AAAAAQAAAAEAAAAvAw=="
},
{
"name": "Sleep",
"value": "AAAAAQAAAAEAAAAvAw=="
},
{
"name": "Right",
"value": "AAAAAQAAAAEAAAAzAw=="
},
{
"name": "Left",
"value": "AAAAAQAAAAEAAAA0Aw=="
},
{
"name": "SleepTimer",
"value": "AAAAAQAAAAEAAAA2Aw=="
},
{
"name": "Analog2",
"value": "AAAAAQAAAAEAAAA4Aw=="
},
{
"name": "TvAnalog",
"value": "AAAAAQAAAAEAAAA4Aw=="
},
{
"name": "Display",
"value": "AAAAAQAAAAEAAAA6Aw=="
},
{
"name": "Jump",
"value": "AAAAAQAAAAEAAAA7Aw=="
},
{
"name": "PicOff",
"value": "AAAAAQAAAAEAAAA+Aw=="
},
{
"name": "PictureOff",
"value": "AAAAAQAAAAEAAAA+Aw=="
},
{
"name": "Teletext",
"value": "AAAAAQAAAAEAAAA/Aw=="
},
{
"name": "Video1",
"value": "AAAAAQAAAAEAAABAAw=="
},
{
"name": "Video2",
"value": "AAAAAQAAAAEAAABBAw=="
},
{
"name": "AnalogRgb1",
"value": "AAAAAQAAAAEAAABDAw=="
},
{
"name": "Home",
"value": "AAAAAQAAAAEAAABgAw=="
},
{
"name": "Exit",
"value": "AAAAAQAAAAEAAABjAw=="
},
{
"name": "PictureMode",
"value": "AAAAAQAAAAEAAABkAw=="
},
{
"name": "Confirm",
"value": "AAAAAQAAAAEAAABlAw=="
},
{
"name": "Up",
"value": "AAAAAQAAAAEAAAB0Aw=="
},
{
"name": "Down",
"value": "AAAAAQAAAAEAAAB1Aw=="
},
{
"name": "ClosedCaption",
"value": "AAAAAgAAAKQAAAAQAw=="
},
{
"name": "Component1",
"value": "AAAAAgAAAKQAAAA2Aw=="
},
{
"name": "Component2",
"value": "AAAAAgAAAKQAAAA3Aw=="
},
{
"name": "Wide",
"value": "AAAAAgAAAKQAAAA9Aw=="
},
{
"name": "EPG",
"value": "AAAAAgAAAKQAAABbAw=="
},
{
"name": "PAP",
"value": "AAAAAgAAAKQAAAB3Aw=="
},
{
"name": "TenKey",
"value": "AAAAAgAAAJcAAAAMAw=="
},
{
"name": "BSCS",
"value": "AAAAAgAAAJcAAAAQAw=="
},
{
"name": "Ddata",
"value": "AAAAAgAAAJcAAAAVAw=="
},
{
"name": "Stop",
"value": "AAAAAgAAAJcAAAAYAw=="
},
{
"name": "Pause",
"value": "AAAAAgAAAJcAAAAZAw=="
},
{
"name": "Play",
"value": "AAAAAgAAAJcAAAAaAw=="
},
{
"name": "Rewind",
"value": "AAAAAgAAAJcAAAAbAw=="
},
{
"name": "Forward",
"value": "AAAAAgAAAJcAAAAcAw=="
},
{
"name": "DOT",
"value": "AAAAAgAAAJcAAAAdAw=="
},
{
"name": "Rec",
"value": "AAAAAgAAAJcAAAAgAw=="
},
{
"name": "Return",
"value": "AAAAAgAAAJcAAAAjAw=="
},
{
"name": "Blue",
"value": "AAAAAgAAAJcAAAAkAw=="
},
{
"name": "Red",
"value": "AAAAAgAAAJcAAAAlAw=="
},
{
"name": "Green",
"value": "AAAAAgAAAJcAAAAmAw=="
},
{
"name": "Yellow",
"value": "AAAAAgAAAJcAAAAnAw=="
},
{
"name": "SubTitle",
"value": "AAAAAgAAAJcAAAAoAw=="
},
{
"name": "CS",
"value": "AAAAAgAAAJcAAAArAw=="
},
{
"name": "BS",
"value": "AAAAAgAAAJcAAAAsAw=="
},
{
"name": "Digital",
"value": "AAAAAgAAAJcAAAAyAw=="
},
{
"name": "Options",
"value": "AAAAAgAAAJcAAAA2Aw=="
},
{
"name": "Media",
"value": "AAAAAgAAAJcAAAA4Aw=="
},
{
"name": "Prev",
"value": "AAAAAgAAAJcAAAA8Aw=="
},
{
"name": "Next",
"value": "AAAAAgAAAJcAAAA9Aw=="
},
{
"name": "DpadCenter",
"value": "AAAAAgAAAJcAAABKAw=="
},
{
"name": "CursorUp",
"value": "AAAAAgAAAJcAAABPAw=="
},
{
"name": "CursorDown",
"value": "AAAAAgAAAJcAAABQAw=="
},
{
"name": "CursorLeft",
"value": "AAAAAgAAAJcAAABNAw=="
},
{
"name": "CursorRight",
"value": "AAAAAgAAAJcAAABOAw=="
},
{
"name": "ShopRemoteControlForcedDynamic",
"value": "AAAAAgAAAJcAAABqAw=="
},
{
"name": "FlashPlus",
"value": "AAAAAgAAAJcAAAB4Aw=="
},
{
"name": "FlashMinus",
"value": "AAAAAgAAAJcAAAB5Aw=="
},
{
"name": "AudioQualityMode",
"value": "AAAAAgAAAJcAAAB7Aw=="
},
{
"name": "DemoMode",
"value": "AAAAAgAAAJcAAAB8Aw=="
},
{
"name": "Analog",
"value": "AAAAAgAAAHcAAAANAw=="
},
{
"name": "Mode3D",
"value": "AAAAAgAAAHcAAABNAw=="
},
{
"name": "DigitalToggle",
"value": "AAAAAgAAAHcAAABSAw=="
},
{
"name": "DemoSurround",
"value": "AAAAAgAAAHcAAAB7Aw=="
},
{
"name": "*AD",
"value": "AAAAAgAAABoAAAA7Aw=="
},
{
"name": "AudioMixUp",
"value": "AAAAAgAAABoAAAA8Aw=="
},
{
"name": "AudioMixDown",
"value": "AAAAAgAAABoAAAA9Aw=="
},
{
"name": "PhotoFrame",
"value": "AAAAAgAAABoAAABVAw=="
},
{
"name": "Tv_Radio",
"value": "AAAAAgAAABoAAABXAw=="
},
{
"name": "SyncMenu",
"value": "AAAAAgAAABoAAABYAw=="
},
{
"name": "Hdmi1",
"value": "AAAAAgAAABoAAABaAw=="
},
{
"name": "Hdmi2",
"value": "AAAAAgAAABoAAABbAw=="
},
{
"name": "Hdmi3",
"value": "AAAAAgAAABoAAABcAw=="
},
{
"name": "Hdmi4",
"value": "AAAAAgAAABoAAABdAw=="
},
{
"name": "TopMenu",
"value": "AAAAAgAAABoAAABgAw=="
},
{
"name": "PopUpMenu",
"value": "AAAAAgAAABoAAABhAw=="
},
{
"name": "OneTouchTimeRec",
"value": "AAAAAgAAABoAAABkAw=="
},
{
"name": "OneTouchView",
"value": "AAAAAgAAABoAAABlAw=="
},
{
"name": "DUX",
"value": "AAAAAgAAABoAAABzAw=="
},
{
"name": "FootballMode",
"value": "AAAAAgAAABoAAAB2Aw=="
},
{
"name": "iManual",
"value": "AAAAAgAAABoAAAB7Aw=="
},
{
"name": "Netflix",
"value": "AAAAAgAAABoAAAB8Aw=="
},
{
"name": "Assists",
"value": "AAAAAgAAAMQAAAA7Aw=="
},
{
"name": "ActionMenu",
"value": "AAAAAgAAAMQAAABLAw=="
},
{
"name": "Help",
"value": "AAAAAgAAAMQAAABNAw=="
},
{
"name": "TvSatellite",
"value": "AAAAAgAAAMQAAABOAw=="
},
{
"name": "WirelessSubwoofer",
"value": "AAAAAgAAAMQAAAB+Aw=="
}
]
]
}
*/
?>
zur 2. Variante:
- Dummy-Instanz anlegen
- Integer-Variable anlegen (bei mir „Sony schalten“)
- neues Variablen-Profil anlegen und mit den Werten belegen (siehe Screenshot)
- dahinter habe ich als nicht sichtbares Objekt das Script angehängt (siehe Screenshot)
„Sony Bravia schalten per Variable“
<?
/*Ausgewählte Befehle für Sony Bravia 2015er-Modell KD-43x8307C:
TV Power: AAAAAQAAAAEAAAAVAw==
Power off: AAAAAQAAAAEAAAAvAw==
Wake up: AAAAAQAAAAEAAAAuAw==
HDMI 1: AAAAAgAAABoAAABaAw==
HDMI 2: AAAAAgAAABoAAABbAw==
HDMI 3: AAAAAgAAABoAAABcAw==
Mute: AAAAAQAAAAEAAAAUAw==
Volume up: AAAAAQAAAAEAAAASAw==
Volume down: AAAAAQAAAAEAAAATAw==
*/
// Unbedingt darauf achten, dass die Berechtigung X für Execute bei der Datei send_command.sh gesetzt ist!
//-----------------config------------------------
$ip = "192.168.178.29"; //IP-Adresse vom Fernseher in eurem Netzwerk
$pfad = "/var/lib/symcon/bravia"; //z.B. "/var/lib/symcon/bravia" Pfad auf eurem RasPi
//-----------------config------------------------
switch($_IPS['SENDER'])
{
case "WebFront":
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
switch($_IPS['VALUE'])
{
case 0: // Wert Assoziation
$cmd = "AAAAAQAAAAEAAAAVAw==";
break;
case 1:
$cmd = "AAAAAQAAAAEAAAAvAw==";
break;
case 12:
$cmd = "AAAAAQAAAAEAAAASAw==";
break;
case 13:
$cmd = "AAAAAQAAAAEAAAATAw==";
break;
case 14:
$cmd = "AAAAAQAAAAEAAAAUAw==";
break;
case 31:
$cmd = "AAAAAgAAABoAAABaAw==";
break;
case 32:
$cmd = "AAAAAgAAABoAAABbAw==";
break;
case 33:
$cmd = "AAAAAgAAABoAAABcAw==";
break;
}
break;
}
$result = IPS_Execute("$pfad/send_command.sh","$ip $cmd",false,true);
?>
Viel Spaß damit!