2016-04-12 4 views
1

Ich habe LIFX Lichter und ein VoIP-Telefonsystem. Ich versuche herauszufinden, wie man ein Licht zum Ein- oder Ausschalten auslöst, wenn ein Telefon benutzt wird. Wenn ein Benutzer nimmt oder einen Hörer auflegt, sendet das Telefon seinen Zustand über UDP 2088.Lernen in Python zu programmieren. Kann nicht herausfinden, wie Conditionals basierend auf UDP-Payload

Mit Wireshark, ich weiß, dass die Nutzlast für offhook 0b1f1001c0a8fa33dcd19b200000000813ed020412020066 ist und die Nutzlast für On-Hook ist 0b1f1001c0a8fa33dcd19b200000000813ed000412020066 (obwohl, wenn ich kopiere direkt von Wireshark, es fügt Doppelpunkte ein, wenn ich 0b einfüge: 1f: 10: 01: c0 ...)

Ich habe herausgefunden, wie man meine Bürobeleuchtung mit dem LIFXLan-Modul ein- und ausschaltet und es geschafft hat der Punkt, an dem ich Lichter manuell auslösen kann, indem ich Klartext von einem Client zu einem Server sende, der auf jedem UDP-Port zuhört. Ich versuche jedoch, Daten von den Telefonen zu verwenden, um die Lichter auszulösen. Ich bin mir nicht 100% sicher, dass es tatsächlich möglich ist. Mein Code ist wie folgt:.

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 

Der Ausgang ich in der Regel ist Kauderwelsch wie al▒ ~ 5Vn] D▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒ 123456789 :; ? < => @ ABCDEFGHIJKLMNOPQRSTUVWXYZ []^_ `abcdefghijklmnopqrstuvwxyz {|} ▒▒▒▒▒▒▒▒

Ich weiß, dass ich die Nutzlast konvertieren, aber ich habe festgesessen ich (ich gestern begonnen.) Ich vermute, das ist etwas extrem Leichtes oder lächerlich schwer.

Antwort

0

Haben es herausgefunden. Erforderlich zum Hinzufügen von .decode ("hex") an das Ende der Deklarationen für ON_HOOK und OFF_HOOK