Hilfe bei Websocket client für Samsung Tizen Fernseher gesucht,

Wenn Dir das am Anfang schwer fällt kannst Du ja PHP Modul Dataflow Generator nutzten, dort wählst Du Vorhandene GUID und trägst die Werte die bei Nall Chan in der Doku stehen bei RX und TX ein dann generiert Dir das Modul die Einträge.

Ich versuch das in laufe der Woche mal mit deinen Dataflow Generator Module zu erstellen.

Danke schon einmal für eure Hilfe.

Soweit scheint alles jetzt zu funktionieren, Teste noch bis zum Wochenende und dann gibt’s hier einen Version

Hallo,

cool ist gar nicht so schwer wie gedacht, oder?
Vorallem hast du jetzt ein Beispiel, welches du dir selbst geschrieben hast und verstehst es. :slight_smile:

Grüße,
Kai

Zwar noch nicht zu 100%, aber das sollte erst mal soweit reichen.

Danke für eure Hilfe und Danke Nall-chan für sein WebSocket Modul.

Ist jetzt unter
GitHub - Acer90/SymconModule
verfügbar!

Für die Verwendung des Modules werden die Module von Nall-chan benötigt.
GitHub - Nall-chan/IPSNetwork: PHP-Library enthält verschiedene PHP-Module für Netzwerkanwendungen in IP-Symcon

Bitte testen und Prüfen ob es geht.
Fernseher feste ip zuweisen und Mac Adresse raussuchen.

Befehle:


SamsungTizen_WakeUp(47268 /*[SamsungTizen]*/);
SamsungTizen_SendKeys(47268 /*[SamsungTizen]*/,"KEY_POWER");

Send Keys geht auch mit mehren Tasten gleichzeitig, dann als Trennzeichen ";"verwenden.

SamsungTizen_SendKeys(47268 /*[SamsungTizen]*/,"KEY_1;KEY_2;KEY_ENTER");

Key befehle;

KEY_0 
KEY_1 
KEY_11 
KEY_12 
KEY_16_9 
KEY_2 
KEY_3 
KEY_3SPEED 
KEY_4 
KEY_4_3 
KEY_5 
KEY_6 
KEY_7 
KEY_8 
KEY_9 
KEY_AD 
KEY_ADDDEL 
KEY_ALT_MHP 
KEY_ANGLE 
KEY_ANTENA 
KEY_ANYNET 
KEY_ANYVIEW 
KEY_APP_LIST 
KEY_ASPECT 
KEY_AUTO_ARC_ANTENNA_AIR 
KEY_AUTO_ARC_ANTENNA_CABLE 
KEY_AUTO_ARC_ANTENNA_SATELLITE 
KEY_AUTO_ARC_ANYNET_AUTO_START 
KEY_AUTO_ARC_ANYNET_MODE_OK 
KEY_AUTO_ARC_AUTOCOLOR_FAIL 
KEY_AUTO_ARC_AUTOCOLOR_SUCCESS 
KEY_AUTO_ARC_C_FORCE_AGING 
KEY_AUTO_ARC_CAPTION_ENG 
KEY_AUTO_ARC_CAPTION_KOR 
KEY_AUTO_ARC_CAPTION_OFF 
KEY_AUTO_ARC_CAPTION_ON 
KEY_AUTO_ARC_JACK_IDENT 
KEY_AUTO_ARC_LNA_OFF 
KEY_AUTO_ARC_LNA_ON 
KEY_AUTO_ARC_PIP_CH_CHANGE 
KEY_AUTO_ARC_PIP_DOUBLE 
KEY_AUTO_ARC_PIP_LARGE 
KEY_AUTO_ARC_PIP_LEFT_BOTTOM 
KEY_AUTO_ARC_PIP_LEFT_TOP 
KEY_AUTO_ARC_PIP_RIGHT_BOTTOM 
KEY_AUTO_ARC_PIP_RIGHT_TOP 
KEY_AUTO_ARC_PIP_SMALL 
KEY_AUTO_ARC_PIP_SOURCE_CHANGE 
KEY_AUTO_ARC_PIP_WIDE 
KEY_AUTO_ARC_RESET 
KEY_AUTO_ARC_USBJACK_INSPECT 
KEY_AUTO_FORMAT 
KEY_AUTO_PROGRAM 
KEY_AV1 
KEY_AV2 
KEY_AV3 
KEY_BACK_MHP 
KEY_BOOKMARK 
KEY_CALLER_ID 
KEY_CAPTION 
KEY_CATV_MODE 
KEY_CH_LIST 
KEY_CHDOWN 
KEY_CHUP 
KEY_CLEAR 
KEY_CLOCK_DISPLAY 
KEY_COMPONENT1 
KEY_COMPONENT2 
KEY_CONTENTS 
KEY_CONVERGENCE 
KEY_CONVERT_AUDIO_MAINSUB 
KEY_CUSTOM 
KEY_CYAN 
KEY_DEVICE_CONNECT 
KEY_DISC_MENU 
KEY_DMA 
KEY_DNET 
KEY_DNIe 
KEY_DNSe 
KEY_DOOR 
KEY_DOWN 
KEY_DSS_MODE 
KEY_DTV 
KEY_DTV_LINK 
KEY_DTV_SIGNAL 
KEY_DVD_MODE 
KEY_DVI 
KEY_DVR 
KEY_DVR_MENU 
KEY_DYNAMIC 
KEY_ENTER 
KEY_ENTERTAINMENT 
KEY_ESAVING 
KEY_EXIT 
KEY_EXT1 
KEY_EXT10 
KEY_EXT11 
KEY_EXT12 
KEY_EXT13 
KEY_EXT14 
KEY_EXT15 
KEY_EXT16 
KEY_EXT17 
KEY_EXT18 
KEY_EXT19 
KEY_EXT2 
KEY_EXT20 
KEY_EXT21 
KEY_EXT22 
KEY_EXT23 
KEY_EXT24 
KEY_EXT25 
KEY_EXT26 
KEY_EXT27 
KEY_EXT28 
KEY_EXT29 
KEY_EXT3 
KEY_EXT30 
KEY_EXT31 
KEY_EXT32 
KEY_EXT33 
KEY_EXT34 
KEY_EXT35 
KEY_EXT36 
KEY_EXT37 
KEY_EXT38 
KEY_EXT39 
KEY_EXT4 
KEY_EXT40 
KEY_EXT41 
KEY_EXT5 
KEY_EXT6 
KEY_EXT7 
KEY_EXT8 
KEY_EXT9 
KEY_FACTORY 
KEY_FAVCH 
KEY_FF 
KEY_FF_ 
KEY_FM_RADIO 
KEY_GAME 
KEY_GREEN 
KEY_GUIDE 
KEY_HDMI 
KEY_HDMI1 
KEY_HDMI2 
KEY_HDMI3 
KEY_HDMI4 
KEY_HELP 
KEY_HOME 
KEY_ID_INPUT 
KEY_ID_SETUP 
KEY_INFO 
KEY_INSTANT_REPLAY 
KEY_LEFT 
KEY_LINK 
KEY_LIVE 
KEY_MAGIC_BRIGHT 
KEY_MAGIC_CHANNEL 
KEY_MDC 
KEY_MENU 
KEY_MIC 
KEY_MORE 
KEY_MOVIE1 
KEY_MS 
KEY_MTS 
KEY_MUTE 
KEY_NINE_SEPERATE 
KEY_OPEN 
KEY_PANNEL_CHDOWN 
KEY_PANNEL_CHUP 
KEY_PANNEL_ENTER 
KEY_PANNEL_MENU 
KEY_PANNEL_POWER 
KEY_PANNEL_SOURCE 
KEY_PANNEL_VOLDOW 
KEY_PANNEL_VOLUP 
KEY_PANORAMA 
KEY_PAUSE 
KEY_PCMODE 
KEY_PERPECT_FOCUS 
KEY_PICTURE_SIZE 
KEY_PIP_CHDOWN 
KEY_PIP_CHUP 
KEY_PIP_ONOFF 
KEY_PIP_SCAN 
KEY_PIP_SIZE 
KEY_PIP_SWAP 
KEY_PLAY 
KEY_PLUS100 
KEY_PMODE 
KEY_POWER 
KEY_POWEROFF 
KEY_POWERON 
KEY_PRECH 
KEY_PRINT 
KEY_PROGRAM 
KEY_QUICK_REPLAY 
KEY_REC 
KEY_RED 
KEY_REPEAT 
KEY_RESERVED1 
KEY_RETURN 
KEY_REWIND 
KEY_REWIND_ 
KEY_RIGHT 
KEY_RSS 
KEY_RSURF 
KEY_SCALE 
KEY_SEFFECT 
KEY_SETUP_CLOCK_TIMER 
KEY_SLEEP 
KEY_SOUND_MODE 
KEY_SOURCE 
KEY_SRS 
KEY_STANDARD 
KEY_STB_MODE 
KEY_STILL_PICTURE 
KEY_STOP 
KEY_SUB_TITLE 
KEY_SVIDEO1 
KEY_SVIDEO2 
KEY_SVIDEO3 
KEY_TOOLS 
KEY_TOPMENU 
KEY_TTX_MIX 
KEY_TTX_SUBFACE 
KEY_TURBO 
KEY_TV 
KEY_TV_MODE 
KEY_UP 
KEY_VCHIP 
KEY_VCR_MODE 
KEY_VOLDOWN 
KEY_VOLUP 
KEY_W_LINK 
KEY_WHEEL_LEFT 
KEY_WHEEL_RIGHT 
KEY_YELLOW 
KEY_ZOOM_IN 
KEY_ZOOM_MOVE 
KEY_ZOOM_OUT 
KEY_ZOOM1 
KEY_ZOOM2 

Ordentliche Erklärung folgt am Wochenende im Startpost.

mfg: Ace

Hallo,
bei mir kommt immer folgende Fehlermeldung.

Testweise hab ich nun IPS4.4 auf einen zweiten PC unter Win10 neu installiert und nur die beide Module aus den vorrigen Beitrag hinzugefügt, mit den selben Fehler.
Beim Instanz erstellen kommt ebfalls dieser Fehler.

Vieleicht könnt Ihr mir weiterhelfen.
Vielen Dank im Voraus, für Eure Hilfe!

Die gleiche Anzeige habe ich auch.

Die websocket_client.php, die versucht wird zu includen, liegt dem git-Repository nicht bei, oder der Pfad stimmt nicht.

Es ist leider so auch nicht erkennbar, was in dieser enthalten sein soll. Hoffe, der TE kann uns hier noch nähere Auskunft geben

Johannes

Oh man garnicht gesehen das hier jemand geschrieben hat. Danke an Luca für die PM.

Nun zum Problem.
Ihr nutz wahrscheinlich die Git Branch Master :-D, Hab mal die Master geupdatet, da ich die Branch development dafür verwende.
Hab mal einen Update durchgeführt, sollte jetzt funktionieren.

mfg: Swen

P.s. die wird nicht mehr gebraucht, da umgestellt auf das Module von Nall-chan

Guten Abend :slight_smile:

@Acer ich habe dein Script gerade nochmal installiert und bekomme nun keinen Fehler mehr :slight_smile: Auch die Steuerung funktioniert soweit sehr gut :slight_smile: Das WOL muss ich mal genauer testen

VG Johannes

Ja, sollte eigentlich soweit funktionieren. Kann manchmal ca. 5-10 Sec dauern bis der Fernseher an ist und wenn du den Fernseher vom Strom getrennt hast must du den einmal manuell einschalten. Ansonsten probiere mal den Button „KEY_POWER“, oder „KEY_POWERON“ wenn er aus ist.

P.S. Achso das Module ist soweit noch im Development-State, deshalb noch nicht im Php-Module Forum zu finden.

Moin zuzsammen,

tolles Modul ! Danke. Klappt soweit ganz gut, jedoch ist mein TV im Netzwerk nach „PowerOFF“ nicht mehr per IP erreichbar. Hab in Tizen keine Funktion gefunden, die das Netzwerk im Standby aktiv lässt. (Ich trenne den TV nicht vom Strom)
Wie macht ihr das ? Das ist ja gerade das interessante. Den TV per Alexa aus dem Standby aufwecken und Netflix starten :wink:

Mein TV: UE78KS9590

Das mit der Ping-Erreichbarkeit scheint bei den Modellen unterschiedlich zu sein. Meiner ist über WLAN im AUS-Zustand auch nicht mehr erreichbar, bei einem Bekannten (hat ein neueres Modell) ist dieser noch über Ping erreichbar.

Wie das über LAN ist…keine Ahnung… Möglicherweise gilt das „Standby erreichbar“ nur bei LAN-Verbindung.

Grüße,
Chris

Ich hab meinen per LAN angebunden. Sobald er aus (Standby) ist, bekomme ich den socket connection error.
Sehr schade wenn Samsung hier wieder zwischengrätscht.

Ich habe es gerade mal getestet: Samsung M5590 über WLAN

Wenn man schnell genug ist (unter 1min) dann kann man noch mit dem TV „sprechen“, auch wenn er über IPS den POWER-Key bekommen hat. Danach reagiert er nicht mehr und im Log taucht auch kein Ping mehr auf. Allerdings lies er sich durch Wake-On-LAN wieder einschalten. Ob es da ein timeout gibt, habe ich noch nicht getestet, kann ich aber gerne mal machen.

Johannes

Genau das hab ich auch beobachten könnten.

Bei mir auch ! Perfekt… damit kann man arbeiten. Hast du ein WOL Script zufällig liegen ?
Vielleicht wird die WOL Funktion ja noch ins Modul integriert ?! :wink:

Ja, Acer90 hat es in seinem Script drin :wink:


	
    $broadcast = 'XXX.XXX.XXX.XXX';
    $mac_addr = 'YY:YY:YY:YY:YY:YY';
    
    if (!$fp = fsockopen('udp://' . $broadcast, 2304, $errno, $errstr, 10))  return false; 
    $mac_hex = preg_replace('=[^a-f0-9]=i', '', $mac_addr);     
    $mac_bin = pack('H12', $mac_hex);     
    $data = str_repeat("\xFF", 6) . str_repeat($mac_bin, 16);     
    fputs($fp, $data);     
    fclose($fp); 


Ist das so richtig ? Bekomme nämlich eine Fehlermeldung:

Warning:  fsockopen(): unable to connect to udp://192.168.2.255:2304 (Keine Berechtigung) in /var/lib/symcon/scripts/25874.ips.php on line 6
<?

    $broadcast = '192.168.2.255';
    $mac_addr = 'b7:bb:af:02:53:c5';
    
    if (!$fp = fsockopen('udp://' . $broadcast, 2304, $errno, $errstr, 10))  return false; 
    $mac_hex = preg_replace('=[^a-f0-9]=i', '', $mac_addr);     
    $mac_bin = pack('H12', $mac_hex);     
    $data = str_repeat("\xFF", 6) . str_repeat($mac_bin, 16);     
    fputs($fp, $data);     
    fclose($fp);

?>

EDIT:
Funktioniert hat bei mir folgendes Script

<?php 
# Wake on LAN - (c) HotKey (at SPR dot AT), upgraded by Murzik <tomurzik@inbox.ru> 
 
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; 
 
// send it to the broadcast address using UDP 
// SQL_BROADCAST option isn't help!! 
$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 
{ 
// setting a broadcast option to socket: 
$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('yourIPorDomain.dyndns.org', 'your:MAC:address'); 
#WakeOnLan('192.168.0.2', '00:30:84:2A:90:42'); 
#WakeOnLan('192.168.1.2', '00:05:1C:10:04:05'); 
 
//if you have switch or other routing devices in LAN, sendign to 
// the local IP isn't helps! you need send to the broadcast address like this: 
WakeOnLan('192.168.2.255', 'b6:bb:af:02:53:c5'); 
 
?>

Hi.

Bei mir funktioniert es so in eine Funktion gebracht, ja. Aber das return true; am Ende hat er wohl nicht kopiert.

VG Johannes

Gesendet von meinem E6853 mit Tapatalk

Ja, das ist bekannt das der Websocket Server des Fernsehers sich abschaltet, erzeugt derzeit auch einen Fehler, dass der Fernseher nicht erreichbar ist. Sobald dieser wieder eingeschalten ist geht er auch wieder an, deshalb ich auch ein WOL Skript eingebaut habe.