Задать вопрос
@mantiss81

Wake on wi-fi lan, как настроить?

здравствуйте. есть телевизор 55pus6503, у него есть функция wowlan(wake on wi-fi lan), хотел чтоб телек включался после включения компа(вместо монитора), но что-то не выходит.
в сети комп по кабелю, телефон и телевизор по воздуху.
на телефоне стоит прога philips tv remote, она при нажатии кнопки питания вЫключить телевизор может, а включить не совсем. при выключенном телевизоре она включает только подсветку экрана, сам экран остается черным. но если потом нажать кнопку домой, то телек включается полностью. другие проги, что с телефона, что с компа могут только включить подсветку. видно, что проги посылают wol пакеты, но вот что посылает кнопка домой непонятно. wireshark показывает wol пакеты при нажатии кнопки питания, а при нажатии кнопки домой - нет. httpcanary на телефоне вроде показывает что-то при нажатии домой, но может это другие пакеты.
скрин с телефона
5df75d3fcfea0037964841.jpeg

телевизор выключился. включил с пульта
примерно в тоже время на компе
5df75ee336f98479433710.png

230 - это телефон, стоит фильтр по этому адресу.
я вообще могу как-то эти пакеты скопировать и отправить?
вот скрипт питновский с компа пытается разбудить включенный телевизор
5df7601b66a63409495064.png

скрипт нашел готовый, что он делает не понимаю)
mac и ip тут другие, запускаю с правильными

#!/usr/bin/env python3
import struct
import re
import socket
import sys

MAC = '1c:5a:6b:b8:93:c0'


def wake_on_lan(mac):
    if len(mac) == 12:
        pass
    elif len(mac) == 12 + 5:
        mac = mac.replace(mac[2], '')
    else:
        raise ValueError('Incorrect MAC address format')

    data = ''.join(['FFFFFFFFFFFF', mac * 16])

    # Split up the hex values and pack.
    send_data = b''
    for i in range(0, len(data), 2):
        send_data = b''.join([send_data, struct.pack('B', int(data[i: i + 2], 16))])

    # Broadcast it to the LAN.
    for _ in range(15):
        sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
        sock.sendto(send_data, ('172.16.15.255', 9))


if __name__ == '__main__':
    # mac = get_mac_address(sys.argv[1])
    # print(mac)
    wake_on_lan(MAC)


этот скрипт будит телевизор, но не включает экран. как поймать включение с телефона и вставить в этот скрипт?
  • Вопрос задан
  • 3773 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
@LjaPb
Попробуй еще вкл "Пробуждать через Chromecast", тогда будит сразу с кнопки питания.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы