Beheersing van een Kwikset Smartcode slot met een Intel Edison (2 / 6 stap)

Stap 2: Kwikset protocol script toevoegen

Nu open te stellen een nieuw document en geef deze de naam kwikset_protocol.py met de volgende opdracht

 #!/usr/bin/python# This is a library for providing access to Kwikset Smartcode Locks via UART # The h/w interface is 3.3V 9600 baud 8N1 standard UART # This is more of a protocol encoder/decoder though# You can find more information at randomwire.bizfrom binascii import hexlify,unhexlifypkt_count = 0NO_DATA = '' LOCK_CMD = 'e703' UNLOCK_CMD = 'e705' INIT_CMDS = ('e707','e74d','e702','e70a','e718','e709','e742','e70f') INIT_DATAS = ('','','','','','','01010101','15031301471205') PARSE_LOOKUP = {'e709':"parse_initack",'e727':"parse_lockstatus",'e729':"parse_newlockcode",'e742':"parse_error"}def generate_packet(cmd,data): global pkt_count pkt_count += 1 length = (len(cmd+data)/2)+2 base_pkt = "%0.2x%0.2x" % (length,pkt_count)+cmd+data pkt = "bd"+base_pkt+calculate_crc(base_pkt) return pktdef calculate_crc(pkt): crc = int("ff",16) #print "Starting crc = %0.2x"%crc while len(pkt)>1: crc ^= int(pkt[0:2],16) #print "After byte 0x%s, CRC = %0.2x, Len=%d"%(pkt[0:2],crc,len(pkt)) pkt = pkt[2:] return "%0.2x"%crcdef validate_crc(pkt): if calculate_crc(pkt) == '00': return True else: return Falsedef parse_packet(pkt): if pkt[0:2] != 'bd': print "Bad packet header" return False if not validate_crc(pkt[2:]): print "Bad packet CRC" return False if ((len(pkt)/2)-2) != int(pkt[2:4],16): print "Bad packet length" return False cmd = pkt[6:10] data = pkt[10:-2] print "Found cmd=%s & data=%s"%(cmd,data) if cmd in PARSE_LOOKUP: parse = globals()[PARSE_LOOKUP[cmd]] return parse(data) return Truedef parse_initack(data): if data == '64': return True else: return False def parse_lockstatus(data): code_used = int(data[2:4],16) status_bits = int(data[4:6],16) if status_bits & 0x80: cause = "Remote Control" elif status_bits & 0x40: cause = "Code %d Entered"%(code_used) elif status_bits & 0x20: cause = "Automatic Lock" else: cause = "Manual/Key" if status_bits & 0x02: lock_state = "Unlocked" elif status_bits & 0x01: lock_state = "Locked" else: lock_state = "Unknown" return (lock_state,cause) def parse_newlockcode(data): return datadef parse_error(data): return datadef generate_init_packet(num): return unhexlify(generate_packet(INIT_CMDS[num],INIT_DATAS[num]))def generate_lock_packet(): return unhexlify(generate_packet(LOCK_CMD,''))def generate_unlock_packet(): return unhexlify(generate_packet(UNLOCK_CMD,'')) 

In dit geval ik vi heb gebruikt, maar u kunt altijd installeren en gebruiken van nano of een andere teksteditor van uw keuze.

Dit is het script dat alle opdrachten voor het communiceren met uw Kwikset slot via UART zal bevatten.

Plak de volgende code in het bestand, sla het bestand op en sluit vervolgens uw tekst-editor.

 vi kwikset.py 

Gerelateerde Artikelen

Verzenden van een e-mail van een Intel Edison (met nodemailer)

Verzenden van een e-mail van een Intel Edison (met nodemailer)

Dit project wordt een methode voor het verzenden van e-mail vanaf een Intel Edison IOT-computer door te drukken op een knop verbonden voor de Edison gedemonstreerd. Hoewel dit niet bijzonder interessant of handig lijkt misschien, zou kunnen men denke
Aanbrengen van een Intel Edison Talk in Game Maker: Studio

Aanbrengen van een Intel Edison Talk in Game Maker: Studio

In dit instructable ik zal u tonen hoe te maken van een programma in Game Maker die een Intel Edison sturen wanneer de ruimte knop werd ingedrukt en vervolgens de Edison Game Maker vertellen zal dat zij het ontvangen. Dit is niet handig op dit moment
Snelle geïmproviseerde ' face-tracking camera met behulp van een Intel Edison

Snelle geïmproviseerde ' face-tracking camera met behulp van een Intel Edison

Dit is een tutorial over het bouwen van een eenvoudige camera van de face-tracking met arduino breakout board, een android-smartphone, een servomotor en een paar andere dingen die kan je rondslingeren in uw bureau met behulp van een Edison. De code i
Herstellen van een Intel Edison met een beschadigde Linux Image

Herstellen van een Intel Edison met een beschadigde Linux Image

Onlangs, tijdens het spelen rond met mijn nieuwe Intel Edison Developement boord, ik maakte een fout terwijl het reflashing van de Raad van bestuur, en eindigde met een beschadigde afbeelding voor Linux (dwz de Linux OS) op het bord. Met andere woord
Beheersing van een Matrix LED

Beheersing van een Matrix LED

LED-arrays zijn veel plezier, en eenvoudiger dan u te controleren denkt wellicht. In dit Instructable leert u hoe een matrix LED is opgebouwd en werkt en hoe te rijden met behulp van een MAX7219 driver chip. We zullen met behulp van een Intel Edison
Het creëren van een IOT monitor voor de kwaliteit van de lucht met de Intel Edison

Het creëren van een IOT monitor voor de kwaliteit van de lucht met de Intel Edison

Schone lucht wordt een luxe in de maatschappij van vandaag. Vertrouwd raken met uw onzichtbare omgeving met behulp van een Intel Edison met Arduino breakout board, een Grove Starter Kit en IBM Bluemix - een online bron voor geeks, knutselaars en wete
Afspelen van muziek met uw Intel Edison

Afspelen van muziek met uw Intel Edison

Wie houdt van muziek? Ik wed dat degenen die doen vindt dit Instructable interessant en leuk om te doen. Er zijn zo veel single-board computers die we allemaal hebben en liefde met inbegrip van de Raspberry Pi, Beaglebone en nu de Intel Edison. Deze
Beheersing van een RC Servo motor met een Arduino en twee pulsschakelaars

Beheersing van een RC Servo motor met een Arduino en twee pulsschakelaars

de naam zegt het al. Beheersing van een RC auto servomotor met een Arduino en sommige weerstanden, jumper draden en twee tactiele schakelaars. Ik maakte dit de tweede dag kreeg ik mijn Arduino, dus ik erg trots op mezelf ben.Stap 1: Onderdelenlijst O
Een nieuwe heldere Toy Bulldozer met een Intel Edison rijden

Een nieuwe heldere Toy Bulldozer met een Intel Edison rijden

Dit instructable zal presenteren de stappen nodig voor het omzetten van een bulldozer vastgebonden extern gecontroleerde speelgoed aan een autonome machine gecontroleerd door een Intel Edison microcontroller.Wat u nodig hebt:Batterij geëxploiteerd To
Eenvoudig als het verzenden van IoT sensor-waardes door SigFox en Intel Edison, met behulp van Python

Eenvoudig als het verzenden van IoT sensor-waardes door SigFox en Intel Edison, met behulp van Python

Ik had de kans, op een Intel IoT Hackaton gehouden bij Usine.io in Parijs, naast een Intel Edison Arduino board en een bos van Grove sensoren/actuatoren, tot ook het nieuwe bestuur van de Akene van Snootlab krijgen.Dankzij de Intel IoT jongens, Nicol
MONTAGE van de EDISON van het bestuur van de INTEL® met de INTEL® EDISON MINI BREAKOUT BOARD

MONTAGE van de EDISON van het bestuur van de INTEL® met de INTEL® EDISON MINI BREAKOUT BOARD

In dit instructable, u zult verbinden met de Intel® Edison-module een Intel® Edison mini breakout board.Vereisten> Intel Edison module> Intel Edison mini breakout board> 2 micro B naar USB Type A-kabelsMerk op dat de breakout board twee micro USB
Controlerende Kerstverlichting met de Intel Edison + Grove Smart Relay

Controlerende Kerstverlichting met de Intel Edison + Grove Smart Relay

Dit Instructable begeleidt u door het proces voor het besturen van kerstverlichting (of een ander elektronisch item voor die materie) met de Intel Edison-bestuur en de Grove Smart estafette.Aan het einde van dit Instructable zul je een stopcontact wi
Natuur Tracker: parameter mapping met de Intel Edison

Natuur Tracker: parameter mapping met de Intel Edison

Gegevens zijn mooi. En ver van "vernietigen de poëzie van de regenboog" (Keats), een wetenschappelijke benadering kan helpen ons beter waarderen de dingen die we doen genieten. Hier hebben we een kit voor IoT goodies genomen en gemonteerd hen na
Aan de slag met de Intel Edison

Aan de slag met de Intel Edison

Langs kant met mijn regelmatige Particle kern instructables besloten heb ik om te beginnen met een andere set van tutorials met de Intel Edison. De Intel Edison is een echt cool stukje hardware is echt klein in de zijkant van een SD-kaart en het klei