я стараюсь общаться с telnetlib на мою настольную лампу - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь общаться с telnetlib на моей настольной лампе yeelight с такими командами: {"id": 1, "method": "set_power", "params": ["on", "smooth", 500]}и я получаю такие ошибки:

tn.write("{"id":1,"method":"set_power","params":["off","smooth",500]}")
             ^
SyntaxError: invalid syntax

и мой код:

import time
import telnetlib
HOST ="192.168.1.100"
tn=telnetlib.Telnet(HOST,55443)
tn.write("{"id":1,"method":"set_power","params":["off","smooth",500]}")
l=tn.read_all()

1 Ответ

1 голос
/ 01 ноября 2019

попробуйте это:

tn.write("""{"id":1,"method":"set_power","params":["off","smooth",500]}""")

Другой способ будет следующим:

import json 
tn.write(json.dumps({'id': 1, 'method': 'set_power', 'params': ['off', 'smooth', 500])}))

Или это:

tn.write('{"id":1,"method":"set_power","params":["off","smooth",500]}')

Суть в том, что вы должны отправитьстрока json, и будьте осторожны, чтобы не разрезать ее, используя "

...