LG TV steuern/abfragen?

Entweder nutzt Du so was wie IPSStudio oder auch NEO. Wenn Du das im Webfront selber machen willst dann mit einer String Variable mit Variablenprofil ~HTMLBox z.B. so oder ähnlich.

Genial, auf das wäre ich nicht gekommen :slight_smile:

Ich poste mal die Skripte (am Abend)

Für mich wäre halt wichtig für die „Kinderruhigstellung“ einen Button im IPS zu haben, der SCHNELL die Biene Maja von der Synology NAS abspielt, oder von mir aus auch den kleinen Maulwurf :slight_smile:

Hi Fonzo!

IPSStudio habe ich, aber ich möchte zuert mal ein reines Webfront basteln…

Danke für den Link, werds mir gleich ansehen.

Wie könnte denn so ein Skript dann komplett aussehen. Ich habe mir den Sleep Befehl angeschaut, aber da kann ich mir noch keinen reim draus machen. Ich denke ich muss da auf jeden Fall das übergeordnete LG Skript mit einbeziehen.
Sorry für die vielen dummen fragen. Aber so langsam freunde ich mich ja mit IPS an.:wink:

Hier mein Testscript, es braucht nur Deine LG IP Adresse und Deine Pairing Nr. nix weiter.
Meine Versuche siehst Du ganz unten im Script.
Gruß Helmut

LG Script.zip (3.02 KB)

Super! Danke! Werde ich heute Abend mal testen und das Skript mal studieren.

:slight_smile: cool Helmut du hast da schon fast mehr drin als bei mir, gleiche es am Weekend ab und ergänze sonst noch was ich zusätzlich drin habe. Wenn aber jemand herausfindet wie die YouTube-Funktion direkt gestartet werden kann dem spendier ich ein Mittagessen :slight_smile:

Gesendet von iPhone mit Tapatalk

Das Beispiel ist nur meine Spielwiese, IPS sleep ist nicht gut, muß mit der Timerfunktion besser gemacht werden.

Man könnte diese Klammerinhalt von einer zu übergebenden Variable füllen

processCommand(TV_CMD_CHANGE_CHANNEL, $channel)

Für mich ist es nicht so wichtig: Prime oder Netflix zu erreichen, weil ich dann immer noch den Film auswählen muß…
Das Schalten auf meine TV-Senderliste habe ich hin bekommen, reicht mir schon :wink:

Leider kann ich nicht so gut PHP programmieren, kopieren und einfügen schon :wink: Bewundere die Jungs die Module erstellen können.
Dafür kann ich gut Eier „weich“ kochen.
Gruß Helmut

Hello,
I’m French, and thank you for the php scripts (good job)
I use the PHP script „webos.inc.php“ to control my LG OLED TV (with WebOS 1)
When I test to send a message I sometimes get this error

Command response : {„type“:„error“,„id“:„message“,„error“:„401 insufficient permissions (not registered)“,„payload“:{}}

Do you have an idea of the origin of the problem?

Sorry für die wirklich späte Antwort!
Hier die Skripte für Netflix, Amazon. (wobei Amazon seit ein paar Tagen nicht mehr funktionert - also das Skript - UPDATE: falscher Code - funktioniert nun wieder)

Habe das „Welche App läuft gerade“ Skript ausprobiert, aber es gibt einen Fehlercode zurück. Ich denke LG hat ein Update gemacht!?

[b]<?[/b]
include_once '12280.ips.php';
include_once '14099.ips.php'; // wakeonlane

WakeOnLan('10.0.0.255', '20:17:42:6F:31:F8'); //Broadcastadresse des Netzwerks und MAC-Adrresse des Gerätes

sleep(2);

$tv = new webOSTV("10.0.0.130",3000,"609c232453f2abc26cef7c97680c31a6");   //LG Client-Key eintragen
$tv->connect();
$tv->lg_handshake();

$tv->send_command('{"id":"SET_INPUT","type":"request","uri":"ssap://system.launcher/open","payload":{"id": "amazon"}}');
//system.launcher/open


$tv->disconnect();

Umschalten auf Amazon Prime Skript

[b]<?[/b]
include_once '12280.ips.php';
include_once '14099.ips.php'; // wakeonlane

WakeOnLan('10.0.0.255', '20:17:42:6F:31:F8'); //Broadcastadresse des Netzwerks und MAC-Adrresse des Gerätes

sleep(2);

$tv = new webOSTV("10.0.0.130",3000,"609c232453f2abc26cef7c97680c31a6");   //LG Client-Key eintragen
$tv->connect();
$tv->lg_handshake();

$tv->send_command('{"id":"SET_INPUT","type":"request","uri":"ssap://system.launcher/launch","payload":{"id": "netflix"}}');


$tv->disconnect(); 

Umschalten auf Netflix Skript

include_once'12280.ips.php';include_once '14099.ips.php'; // wakeonlane

WakeOnLan('10.0.0.255', '20:17:42:6F:31:F8'); //Broadcastadresse des Netzwerks und MAC-Adrresse des Gerätes

sleep(2);

$tv = new webOSTV("10.0.0.130",3000,"609c232453f2abc26cef7c97680c31a6");   //LG Client-Key eintragen
$tv->connect();
$tv->lg_handshake();


$tv->send_command('{"id":"GET_INPUTS","type":"request","uri":"ssap://com.webos.service.appstatus/getAppStatus"}'); 

Welche App läuft gerade Skript

Helmut, processCommand wirft bei mir einen Fehler zurück. Hast du diese Funktion selber implementiert?

Hallo Cbham oder in der jetzigen Zeit : CBhome :wink:
Ich glaube meine Funktion(en) habe ich zusammenkopiert, angefangen ab hier.
Mags Du Deine Include Scripte mal zippen und hier posten?
Denn Deine „webOSTV“ habe gar nicht.
Gruß Helmut.

Hi Helmut,

hier das WebOS.inc.php

[b]<?[/b]

class webOSTV
{
private$host, $port, $ws_key, $path, $lg_key, $sock, $connected=false, $handshaked=false;

function__construct($host, $port=3000, $lgKey="NOKEY", $path="/")
    {
$this->host = $host;
$this->port = $port;
$this->lg_key = $lgKey;
$this->path = $path;
$this->ws_key = $key = base64_encode(generateRandomString(16, false, true));
if ($this->lg_key=="NOKEY") unset($this->lg_key);    
    }

function connect()
    {
$ws_handshake_cmd = "GET " . $this->path . " HTTP/1.1
";
$ws_handshake_cmd.= "Upgrade: websocket
";
$ws_handshake_cmd.= "Connection: Upgrade
";
$ws_handshake_cmd.= "Sec-WebSocket-Version: 13
";            
$ws_handshake_cmd.= "Sec-WebSocket-Key: " . $this->ws_key . "
";
$ws_handshake_cmd.= "Host: ".$this->host.":".$this->port."

";
$this->sock = fsockopen($this->host, $this->port, $errno, $errstr, 2);
        socket_set_timeout($this->sock, 0, 10000);
echo"Sending WS handshake
$ws_handshake_cmd
";
$response = $this->send($ws_handshake_cmd);
if ($response)
        {
echo"WS Handshake Response:
$response
";
        } 
else
echo"ERROR during WS handshake!
";
        preg_match('#Sec-WebSocket-Accept:\s(.*)$#mU', $response, $matches);
if ($matches) 
            {
$keyAccept = trim($matches[1]);
$expectedResonse = base64_encode(pack('H*', sha1($this->ws_key . '258EAFA5-E914-47DA-95CA-xxxxxxxx')));

$this->connected = ($keyAccept === $expectedResonse) ? true : false;
            } 
else$this->connected=false;
if ($this->connected) echo"Sucessfull WS connection to $this->host:$this->port

";
return$this->connected;  
    }

function lg_handshake()
    {
if (!$this->connected) $this->connect();
if ($this->connected)
        {
$handshake =    '{"type":"register","id":"register_0","payload":{"forcePairing":false,"pairingType":"PROMPT","client-key":"HANDSHAKEKEYGOESHERE","manifest":{"manifestVersion":1,"appVersion":"1.1","signed":{"created":"20140509","appId":"com.lge.test","vendorId":"com.lge","localizedAppNames":{"":"LG Remote App","ko-KR":"리모컨 앱","zxx-XX":"ЛГ R�мot� AПП"},"localizedVendorNames":{"":"LG Electronics"},"permissions":["TEST_SECURE","CONTROL_INPUT_TEXT","CONTROL_MOUSE_AND_KEYBOARD","READ_INSTALLED_APPS","READ_LGE_SDX","READ_NOTIFICATIONS","SEARCH","WRITE_SETTINGS","WRITE_NOTIFICATION_ALERT","CONTROL_POWER","READ_CURRENT_CHANNEL","READ_RUNNING_APPS","READ_UPDATE_INFO","UPDATE_FROM_REMOTE_APP","READ_LGE_TV_INPUT_EVENTS","READ_TV_CURRENT_TIME"],"serial":"2f930e2d2cfe083771f68e4fe7bb07"},"permissions":["LAUNCH","LAUNCH_WEBAPP","APP_TO_APP","CLOSE","TEST_OPEN","TEST_PROTECTED","CONTROL_AUDIO","CONTROL_DISPLAY","CONTROL_INPUT_JOYSTICK","CONTROL_INPUT_MEDIA_RECORDING","CONTROL_INPUT_MEDIA_PLAYBACK","CONTROL_INPUT_TV","CONTROL_POWER","READ_APP_STATUS","READ_CURRENT_CHANNEL","READ_INPUT_DEVICE_LIST","READ_NETWORK_STATE","READ_RUNNING_APPS","READ_TV_CHANNEL_LIST","WRITE_NOTIFICATION_TOAST","READ_POWER_STATE","READ_COUNTRY_INFO"],"signatures":[{"signatureVersion":1,"signature":"eyJhbGdvcml0aG0iOiJSU0EtU0hBMjU2Iiwia2V5SWQiOiJ0ZXN0LXNpZ25pbmctY2VydCIsInNpZ25hdHVyZVZlcnNpb24iOjF9.hrVRgjCwXVvE2OOSpDZ58hR+59aFNwYDyjQgKk3auukd7pcegmE2CzPCa0bJ0ZsRAcKkCTJrWo5iDzNhMBWRyaMOv5zWSrthlf7G128qvIlpMT0YNY+n/FaOHE73uLrS/g7swl3/qH/BGFG2Hu4RlL48eb3lLKqTt2xKHdCs6Cd4RMfJPYnzgvI4BNrFUKsjkcu+WD4OO2A27Pq1n50cMchmcaXadJhGrOqH5YmHdOCj5NSHzJYrsW0HPlpuAx/ECMeIZYDh6RMqaFM2DXzdKX9NmmyqzJ3o/0lkk/N97gfVRLW5hA29yeAwaCViZNCP8iC9aO0q9fQojoa7NQnAtw=="}]}}}';
if (isset($this->lg_key)) 
$handshake = str_replace('HANDSHAKEKEYGOESHERE',$this->lg_key,$handshake);
else$handshake =    '{"type":"register","id":"register_0","payload":{"forcePairing":false,"pairingType":"PROMPT","manifest":{"manifestVersion":1,"appVersion":"1.1","signed":{"created":"20140509","appId":"com.lge.test","vendorId":"com.lge","localizedAppNames":{"":"LG Remote App","ko-KR":"리모컨 앱","zxx-XX":"ЛГ R�мot� AПП"},"localizedVendorNames":{"":"LG Electronics"},"permissions":["TEST_SECURE","CONTROL_INPUT_TEXT","CONTROL_MOUSE_AND_KEYBOARD","READ_INSTALLED_APPS","READ_LGE_SDX","READ_NOTIFICATIONS","SEARCH","WRITE_SETTINGS","WRITE_NOTIFICATION_ALERT","CONTROL_POWER","READ_CURRENT_CHANNEL","READ_RUNNING_APPS","READ_UPDATE_INFO","UPDATE_FROM_REMOTE_APP","READ_LGE_TV_INPUT_EVENTS","READ_TV_CURRENT_TIME"],"serial":"2f930e2d2cfe083771f68e4fe7bb07"},"permissions":["LAUNCH","LAUNCH_WEBAPP","APP_TO_APP","CLOSE","TEST_OPEN","TEST_PROTECTED","CONTROL_AUDIO","CONTROL_DISPLAY","CONTROL_INPUT_JOYSTICK","CONTROL_INPUT_MEDIA_RECORDING","CONTROL_INPUT_MEDIA_PLAYBACK","CONTROL_INPUT_TV","CONTROL_POWER","READ_APP_STATUS","READ_CURRENT_CHANNEL","READ_INPUT_DEVICE_LIST","READ_NETWORK_STATE","READ_RUNNING_APPS","READ_TV_CHANNEL_LIST","WRITE_NOTIFICATION_TOAST","READ_POWER_STATE","READ_COUNTRY_INFO"],"signatures":[{"signatureVersion":1,"signature":"eyJhbGdvcml0aG0iOiJSU0EtU0hBMjU2Iiwia2V5SWQiOiJ0ZXN0LXNpZ25pbmctY2VydCIsInNpZ25hdHVyZVZlcnNpb24iOjF9.hrVRgjCwXVvE2OOSpDZ58hR+59aFNwYDyjQgKk3auukd7pcegmE2CzPCa0bJ0ZsRAcKkCTJrWo5iDzNhMBWRyaMOv5zWSrthlf7G128qvIlpMT0YNY+n/FaOHE73uLrS/g7swl3/qH/BGFG2Hu4RlL48eb3lLKqTt2xKHdCs6Cd4RMfJPYnzgvI4BNrFUKsjkcu+WD4OO2A27Pq1n50cMchmcaXadJhGrOqH5YmHdOCj5NSHzJYrsW0HPlpuAx/ECMeIZYDh6RMqaFM2DXzdKX9NmmyqzJ3o/0lkk/N97gfVRLW5hA29yeAwaCViZNCP8iC9aO0q9fQojoa7NQnAtw=="}]}}}';
echo"Sending LG handshake
$handshake
";
$response = $this->send(hybi10Encode($handshake));
if ($response)
            {
echo"
LG Handshake Response
".json_string($response)."
";
$result = json_array($response);
if ($result && array_key_exists('id',$result) &&  $result['id']=='result_0' && array_key_exists('client-key',$result['payload']))
                {
if ($this->lg_key == $result['payload']['client-key'])
echo"LG Client-Key successfully approved
"; 
                } 
elseif ($result && array_key_exists('id',$result) &&  $result['id']=='register_0' && array_key_exists('pairingType',$result['payload']) && array_key_exists('returnValue',$result['payload']))
                {
if ($result['payload']['pairingType'] == "PROMPT" && $result['payload']['returnValue'] == "true") 
                    {
$starttime = microtime(1);
$lg_key_received = false;
$error_received = false;
do
                        {
$response = @fread($this->sock, 8192);
$result = json_array($response);
if ($result && array_key_exists('id',$result) &&  $result['id']=='register_0' && is_array($result['payload']) && array_key_exists('client-key',$result['payload']))
                            {
$lg_key_received = true;
$this->lg_key = $result['payload']['client-key'];
echo"LG Client-Key successfully received: $this->lg_key
"; 
                            } 
elseif ($result && array_key_exists('id',$result) &&  $result['id']=='register_0' && array_key_exists('error',$result))
                            {
$error_received = true;
echo"ERROR: ".$result['error']."
";
                            }
                            usleep(200000);
$time = microtime(1);
                        } 
while ($time-$starttime<60 && !$lg_key_received && !$error_received);
                    }
                }
            } 
elseecho"ERROR during LG handshake:
";
        } 
elsereturn FALSE; 
    }

function disconnect()
    { 
$this->connected=false;
        @fclose($this->sock);
echo"Connection closed to $this->host
";
    }

function send($msg)
    {
        @fwrite($this->sock, $msg);
        usleep(250000);
$response = @fread($this->sock, 8192);
return$response;
    }

function send_command($cmd)
    {
if (!$this->connected) $this->connect();
if ($this->connected)
        {
echo"Sending command      : $cmd
";
$response = $this->send(hybi10Encode($cmd));
if ($response)
echo"Command response     : ".json_string($response)."
";
else
echo"Error sending command: $cmd
";
return$response;            
        } 
    }

//Ab hier können Funktionen hinzugefügt werden

function turnOff() //Einschalten geht nur über WOL!
    {
$command = '{"id":"turnOff","type":"request","uri":"ssap://system/turnOff"}';
$this->send_command($command);
    }

function volumeUp()
    {
$command = '{"id":"volumeUp","type":"request","uri":"ssap://audio/volumeUp"}';
$this->send_command($command);
    }

function volumeDown()
    {
$command = '{"id":"volumeDown","type":"request","uri":"ssap://audio/volumeDown"}';
$this->send_command($command);
    }
}    

function hybi10Encode($payload, $type = 'text', $masked = true) {
$frameHead = array();
$frame = '';
$payloadLength = strlen($payload);

switch ($type) {
case'text':
$frameHead[0] = 129;
break;

case'close':
$frameHead[0] = 136;
break;

case'ping':
$frameHead[0] = 137;
break;

case'pong':
$frameHead[0] = 138;
break;
        }

if ($payloadLength > 65535)
        {
$payloadLengthBin = str_split(sprintf('%064b', $payloadLength), 8);
$frameHead[1] = ($masked === true) ? 255 : 127;
for ($i = 0; $i < 8; $i++) 
            {
$frameHead[$i + 2] = bindec($payloadLengthBin[$i]);
            }
if ($frameHead[2] > 127) 
            {
$this->close(1004);
returnfalse;
            }
        } 
elseif ($payloadLength > 125) 
        {
$payloadLengthBin = str_split(sprintf('%016b', $payloadLength), 8);
$frameHead[1] = ($masked === true) ? 254 : 126;
$frameHead[2] = bindec($payloadLengthBin[0]);
$frameHead[3] = bindec($payloadLengthBin[1]);
        } 
else
        {
$frameHead[1] = ($masked === true) ? $payloadLength + 128 : $payloadLength;
        }
foreach (array_keys($frameHead) as$i) 
        {
$frameHead[$i] = chr($frameHead[$i]);
        }
if ($masked === true) 
        {
$mask = array();
for ($i = 0; $i < 4; $i++)
            {
$mask[$i] = chr(rand(0, 255));
            }
$frameHead = array_merge($frameHead, $mask);
        }
$frame = implode('', $frameHead);
for ($i = 0; $i < $payloadLength; $i++) 
        {
$frame .= ($masked === true) ? $payload[$i] ^ $mask[$i % 4] : $payload[$i];
        }
return$frame;
    }

function generateRandomString($length = 10, $addSpaces = true, $addNumbers = true)
    {  
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"§$%&/()=[]{}';
$useChars = array();
for($i = 0; $i < $length; $i++)
        {
$useChars[] = $characters[mt_rand(0, strlen($characters)-1)];
        }
if($addSpaces === true)
        {
            array_push($useChars, ' ', ' ', ' ', ' ', ' ', ' ');
        }
if($addNumbers === true)
        {
            array_push($useChars, rand(0,9), rand(0,9), rand(0,9));
        }
        shuffle($useChars);
$randomString = trim(implode('', $useChars));
$randomString = substr($randomString, 0, $length);
return$randomString;
    }

function json_array($str)

    {
$result = json_decode(json_string($str),true);
return$result;
    }

function json_string($str)
    {
$from = strpos($str,"{");
$to = strripos($str,"}");
$len = $to-$from+1;
$result = substr($str,$from,$len);
return$result;
    }




webOS.handshake

[b]<?[/b]
//1. TV Einschalten und Einstellungen im TV für Steuerung via App usw. prüfen ob aktiviert

include_once'12280.ips.php';                    //2. Skript ID des "webos.inc.php" Skript eintragen

$tv = new webOSTV("10.0.0.130",3000,"");    //3. IP des TV eintragen
$tv->connect();
$tv->lg_handshake();
$tv->disconnect();  

//4. Skript ausführen
//5. Meldung am TV beachten und akzeptieren (kurzes Zeitfenster)
//6. Response abwarten und LG Client-Key notieren. "LG Client-Key successfully received: 0afd4c4xxxxxxxxxx..."
//7. Mit einem neuen Skript befehle testen




Einchalten via Wakeup LAN

[b]<?[/b]

# Wake on LAN WebOS LG TV

flush(); 
function WakeOnLan($addr, $mac) 
{ 
$addr_byte = explode(':', $mac); 
$hw_addr = ''; 
for ($a=0; $a < 6; $a++) $hw_addr .= chr(hexdec($addr_byte[$a])); 
$msg = chr(255).chr(255).chr(255).chr(255).chr(255).chr(255); 
for ($a = 1; $a <= 16; $a++) $msg .= $hw_addr; 
$s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); 
if ($s == false) 
    { 
echo"Error creating socket!
"; 
echo"Error code is '".socket_last_error($s)."' - " . socket_strerror(socket_last_error($s)); 
    } 
else
    {
$opt_ret = socket_set_option($s, 1, 6, TRUE); 
if($opt_ret < 0) 
            { 
echo"setsockopt() failed, error: " . strerror($opt_ret) . "
"; 
            } 
$e = socket_sendto($s, $msg, strlen($msg), 0, $addr, 2050); 
echo$e;
        socket_close($s); 
echo"Magic Packet sent (".$e.") to ".$addr.", MAC=".$mac; 
    } 
} 

WakeOnLan('10.0.0.255', '20:17:42:6F:31:F8'); //Broadcastadresse des Netzwerks und MAC-Adrresse des Gerätes 



Umschalten auf Netflix

[b]<?[/b]

include_once'12280.ips.php';
include_once'14099.ips.php'; // wakeonlane

WakeOnLan('10.0.0.255', '20:17:42:6F:31:F8'); //Broadcastadresse des Netzwerks und MAC-Adrresse des Gerätes

sleep(2);

$tv = new webOSTV("10.0.0.130",3000,"609c232453f2abc26XXXXXXXXXXXX");   //Your LG Client-Key eintragen
$tv->connect();
$tv->lg_handshake();

$tv->send_command('{"id":"SET_INPUT","type":"request","uri":"ssap://system.launcher/launch","payload":{"id": "netflix"}}');

$tv->disconnect(); 




Volume Up

[b]<?[/b]

include_once'12280.ips.php';
$tv = new webOSTV("10.0.0.130",3000,"609c232453f2abc26XXXXXXXXXXXX");   //LG Client-Key eintragen
$tv->lg_handshake();

$tv->volumeUp();               // Gewünschte Funktion aus webos.inc eintragen (Hier volumeUp - lautstärke um +1 erhöhen)




lg

Hallo zusammen,

ich habe keine kleine Frage :slight_smile:

Gibt es einen einfachen Befehl um dem TV zusagen schalte das Bild aus?

Mein Problem wenn Alexa Musik über den AVR Stream schält der TV sich ein und es kommt dann der Songtext.
Dann muss ich immer über die LG Fernbedienung das Bild ausschalten.

So würde ich es mit den Befehl dann über eine Routine einstellen.

Haben den LG 86UM7600PLB

Vielen Dank :slight_smile:

Hallöchen, habe das gerade gefunden. Kann jemand etwas damit anfangen??

LG webOS - Bindings | openHAB

Hallo, falls von Interesse, der HDMI Port lässt sich bei mir so schalten:

$tv->send_command('{"id":"SET_INPUT","type":"request","uri":"ssap://system.launcher/launch","payload":{"id": "com.webos.app.hdmi1"}}');

entsprechend:
com.webos.app.hdmi1
com.webos.app.hdmi2
com.webos.app.hdmi3
com.webos.app.hdmi4
com.webos.app.externalinput.av1
com.webos.app.externalinput.av2
com.webos.app.externalinput.component
com.webos.app.externalinput.scart

Moin
Ich hole das hier mal wieder hoch :wink:

Die neueren Modelle mit dem aktuellen WebOs unterstützen jetzt wohl auch MQTT.
Hat sich schon jemand damit befasst ?

Gruß
Jens

Ich würde gerne eine Licht-Szene aktivieren sobald mein neuer LG TV eingeschaltet wird. Gibt es hier vlt jemanden der das simpel lösen konnte?

Hast irgendwo eine Referenz dazu ? Link ?
Google war dahingehend nicht auskunftsfreudig.

thx
bb

Bitte sehr :slight_smile:

Ich weiß gar nicht mehr wie ich darauf gekommen bin, scheint aber wohl doch schon älter zu sein … :disappointed:

Hallo, ich nutze seit Jahren den Script „WEBOS.INC“ zum steuern meines LG-TVs.
Seit dem Wechsel auf die 7.0 erhalte ich folgenden Fehler:

Warning: fsockopen(): Unable to connect to :0 (Failed to parse address „“) in /var/lib/symcon/scripts/31719.ips.php on line 31
Fatal error: Uncaught TypeError: socket_set_timeout(): Argument #1 ($stream) must be of type resource, bool given in /var/lib/symcon/scripts/31719.ips.php:33
Stack trace:
#0 /var/lib/symcon/scripts/31719.ips.php(33): socket_set_timeout(false, 0, 10000)
#1 /var/lib/symcon/scripts/31719.ips.php(63): webOSTV->connect()
#2 /var/lib/symcon/scripts/43219.ips.php(5): webOSTV->lg_handshake()
#3 {main}
thrown in /var/lib/symcon/scripts/31719.ips.php on line 33

Kann mir da jemand weiterhelfen, wie ich den Script wieder zum laufen bringen kann?
Danke schon mal!