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

Es werden heute im laufe des Tages einige Änderungen am Module vorgenommen, um das Module soweit ready für Später Version zu machen, und es von der Bedienung her einfach zu machen.

Danke an das Development Team von Symcon für die Tolle Dev Session gestern, da werde ich gleich alle Module überarbeiten. :smiley:

Swen

Update ist raus, bitte testen ob alles noch so klappt wie es soll. :smiley:

könnte man zufällig auch Benachrichtigungen hinschicken die dann angezeigt werden?

Gesendet von meinem SM-G950F mit Tapatalk

Also mit der benutzen Api ist es nur möglich Tasten an das gerät zu senden.

Von benachrichtigen ist mir nichts bekannt.

Swen

Hi,
Ich habe das Modul erfolgreich sowohl mit dem KS7090 als auch mit der neuen MU6179 Serie getestet.

Leider klappt das Wake On LAN leider nur mit dem KS7090, bei dem MU6179 tut sich nichts. Wenn ich es über die Fritzbox mit „Computer starten“ probiere geht der Fernseher aber an, was könnte das sein?

Gruß

Gesendet von iPhone mit Tapatalk

Bitte Updaten und über den Button in der Testumgebung testen.
Im Anschluss hier den Output posten.

Swen

Hi,
habe ich gemacht, bei Wake Up in der Testumgebung beim MU6179 öffnet sich jetzt ein Popup mit der Meldung „1“. Der Fernseher bleibt nach wie vor aus.

Gruß

Ok auf welchen Betriebssystem läuft dein IPS?

Läuft auf Win10 Pro!

Ich bau da heute Abend mal wieder was am WoL Skript herum. Du bekommst von mir mal einige Skripte die du testen musst.

Hab noch eine frage, der Symcon Server sitzt aber im gleichen netz?

Swen

Super, danke dir für die Unterstützung! Ja, der Server sitzt im gleichen LAN!

Gesendet von iPhone mit Tapatalk

Folgende Skripte bitte testen:

function WakeOnLan($addr, $mac,$socket_number) {    
  $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));
    return FALSE;
  } 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) . "
";
      return FALSE;
    }

    if (socket_sendto($s, $msg, strlen($msg), 0, $addr, $socket_number)) {
      echo "Magic Packet sent successfully!";
      socket_close($s);
      return TRUE;
    } else {
      echo "Magic packet failed!";
      return FALSE;
    }
  }
}

// Port number where the computer is listening. Usually, any number between 1-50000 will do. Normally people choose 7 or 9.
$socket_number = "1009";
// MAC Address of the listening computer's network device
$mac_addy = "XX:XX:XX:XX:XX:XX";
// IP address of the listening computer. Input the domain name if you are using a hostname (like when under Dynamic DNS/IP)
$ip_addy = "1.1.2.3";

WakeOnLan($ip_addy, $mac_addy,$socket_number)

oder

function wakeup($mac_addr,$router_addr) {
	if ($fp = fsockopen($router_addr, 9, $errno, $errstr, 4)) {		
		$hexchars = array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","a","b","c","d","e","f");//erlaubte Zeichen:	
		$data = "\xFF\xFF\xFF\xFF\xFF\xFF";						// 6 "volle" bytes (Also mit Wert 255 bzw. FF in hexadezimal)
		$hexmac = "";
		for ($i = 0; $i < strlen($mac_addr); $i++) {			// Unntige Zeichen in der mac-adresse entfernen (also z.B. die bindestriche usw.)
			if (!in_array(substr($mac_addr, $i, 1), $hexchars)) {
				$mac_addr = str_replace(substr($mac_addr, $i, 1), "",
				$mac_addr);
			}
		}
		for ($i = 0; $i < 12; $i += 2) {
			$hexmac .= chr(hexdec(substr($mac_addr, $i, 2)));
		}
			
		for ($i = 0; $i < 16; $i++) {							// Hexadresse wird 16mal hintereinandergeschrieben
			$data .= $hexmac;
		}
		fputs($fp, $data);
		fclose($fp);
		echo 'MagicPaket wurde verschickt';
		return true;
	}
	Else {
		echo "<b>Warnung: $errno</b> $errstr<br>";
		return false;
	}
}

$mac = 'B0DDF139C268'; 											//MAC Adresse
$ip = 'udp://192.168.1.255'; 									//oder mit IP z.B.: udp://192.168.0.1
wakeup($mac, $ip);

Und mir hier schreiben, ob variante a, oder b geht.
Geht nämlich darum ob es über socket, oder fsockopen läuft.

Swen

Hi,
vielen Dank für die Scripte!

Beim ersten Script funktioniert das Einschalten, folgende Warnung wird unten ausgegeben:

Warning: socket_set_option(): unable to set socket option [10022]: Ein ung�ltiges Argument wurde angegeben.
in C:\IP-Symcon\scripts\28487.ips.php on line 22
Magic Packet sent successfully!

Das zweite Script funktioniert nicht, folgender Fehler:

Parse error: syntax error, unexpected ‚wakeup‘ (T_STRING) in C:\IP-Symcon\scripts\16346.ips.php on line 5

Gruß

Ich kümmere mich am Wochenende darum.
Ich weis aber jetzt soweit bescheid.

Swen

Super, ich danke dir!

Gesendet von iPhone mit Tapatalk

Swen ist beim Kopieren des zweiten Scripts das f von function verloren gegangen :wink: Wenn du das noch dran setzt, dann sollte das zweite Script auch funktionieren.

Hi,
danke für die Aufmerksamkeit, das habe ich tatsächlich garnicht gesehen! Nach der Korrektur funktioniert nun auch das zweite Script, im Gegensatz zum ersten auch ohne Warnung, folgende Meldung wird ausgegeben:

MagicPaket wurde verschickt

Gruß

EDIT:
Ich habe es jetzt nochmal nach ca. 10 Minuten Wartezeit versucht, jetzt klappt es mit keinem der Scripte mehr, jedoch über die Fritzbox… Vorher hatte ich es nur mit Einschalten ca. 30 Sekunden nach dem Ausschalten versucht, da ging es mit den Scripten? Ich beobachte weiter…

Ja, das habe ich bei meinem auch so erfahren (ältere Version des Moduls / Samsung M-Klasse :wink: ) … der Websocket ist noch eine Zeit lang aktiv (<60sek) und da klappt das mit dem Ansprechen noch … danach aber geht es nicht mehr.

Zum Testen daher am besten immer ein paar Minuten warten

Alles klar, dann werde ich da nochmal weiter testen, aber sollte Wake on LAN nicht unabhängig von der Websocket Verbindung sein oder verstehe ich da was falsch? Die Fritzbox schafft es auch nach diesen paar Minuten noch den TV „aufzuwecken“…

Gesendet von iPhone mit Tapatalk

Ja, sorry … das hab ich grad mit dem KEY_POWER verwechselt … dieser hat den TV in den kurzen Sekunden nach dem Ausschalten wieder angeschaltet, aber eben nicht mehr, wenn der Socket geschlossen war