LIFX ışıkları ve bir VOIP telefon sistemi var. Bir telefon kullanımda olup olmadığına göre açmak veya kapatmak için bir ışığın nasıl tetikleneceğini anlamaya çalışıyorum. Bir kullanıcı alır veya ahizesi, telefon Wireshark'ı Kullanılması 2088.Python'da kodlamayı öğrenmek. UDP yüküne bağlı koşullu koşulların nasıl kullanılacağını anlayamıyorum
, ben (OffHook için yük 0b1f1001c0a8fa33dcd19b200000000813ed020412020066 ve 0b1f1001c0a8fa33dcd19b200000000813ed000412020066 olduğu açık bağlantıda için yük olduğunu biliyoruz UDP üzerindeki devlet yayınlar eğer rağmen doğrudan Wireshark'dan kopyala, 0b: 1f: 10: 01: c0 ... yapıştırıyorken iki nokta üstbilgisini ekler
LIFXLan modülünü kullanarak ofis lambamı nasıl açıp kapatacağımı anladım. UDP bağlantı noktasını dinleyen bir istemciden bir istemciden düz metin göndererek ışıkları manuel olarak tetikleyebileceğim nokta. Ancak, ışıkları tetiklemek için telefonlardan veri kullanmaya çalışıyorum. Aslında,% 100 emin değilim. .
import Bulb_Off
import Bulb_On
import sys
import socket
import codecs
import binascii
#I may have imported unnecessary modules
UDP_PORT = 2088
OFF_HOOK = "0b1f1001c0a8fa33dcd19b200000000813ed020412020066"
ON_HOOK = "0b1f1001c0a8fa33dcd19b200000000813ed000412020066" #I am hoping I can simply match the data in the data field of the packet
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('', UDP_PORT))
while True:
data, addr = sock.recvfrom(1024)
if data == ON_HOOK:
Bulb_Off.main()
print "received message:", data
print "1"
elif data == OFF_HOOK:
Bulb_On.main()
print "received message:", data
print "2"
else:
print data
Genellikle olsun çıkış böyle al▒ olarak anlamsız olduğu ~ 5Vn] D▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ şu şekildedir: Benim kodudur ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 12 123456789 :; ? < => @ ABCDEFGHIJKLMNOPQRSTUVWXYZ []^_ `abcdefghijklmnopqrstuvwxyz {|} ▒▒▒▒▒▒▒▒
ben yükü dönüştürmek zorunda biliyorum, ama sıkışıp kaldım ben (dün başladı.) Bunun tahmin edilmesi son derece kolay ve gülünç bir şekilde zor bir şey.