Benutzer-Werkzeuge

Webseiten-Werkzeuge


projects:2014:gatekeeper

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
projects:2014:gatekeeper [2018-05-23 14:06]
tux
projects:2014:gatekeeper [2018-06-03 00:44] (aktuell)
tux
Zeile 1: Zeile 1:
 +====== Gatekeeper (Schließanlage) ======
  
 +Follow-Up zur [[projects:​2013:​spacenotification|SpaceNotification]] und [[projects_protected:​2012:​schliessanlage_fuer_den_space|altem Schließanlagen-Projekt]],​ konkret geht es um die Schließanlage.
 +
 +===== Meta =====
 +
 +  ? Maintainer
 +  : tux
 +  ? Pad
 +  : https://​pad.n39.eu/​p/​2014_Gatekeeper
 +  ? Git-Repo
 +  : https://​github.com/​netz39/​space_notification
 +  ? Git-Repo
 +  : https://​github.com/​netz39/​rollladensteuerung
 +  ? Git-Repo
 +  : https://​github.com/​netz39/​xmpp_space_control.git
 +  ? Git-Repo
 +  : https://​github.com/​netz39/​i2cbridge
 +  ​
 +
 +===== Aufbau und Funktionsweise =====
 +==== Software ====
 +Es gibt ein Failsafe-Script,​ das die Tür abschließt,​ wenn die Tür offen ist, aber seit 30 Sekunden die SpaceTime inaktiv (aka Ampel rot/aus) ist.
 +
 +=== Komponenten kommunizieren per XMPP ===
 +
 +[[https://​github.com/​netz39/​xmpp_space_control/​blob/​master/​space_control/​README.protocol.txt|README im GitHub]]
 +
 +==== Hardware ====
 +
 +{{:​projects:​2014:​img_20140130_195545.jpg?​200|}}
 +{{:​projects:​2014:​img_20140202_190317.jpg?​200|}}
 +
 +==== Authentifizierung====
 +
 +=== Telefon ===
 +  ? Ansprechpartner
 +  : [[user:​tux|Tux]]
 +
 +=== SSH ===
 +  ? Ansprechpartner
 +  : [[user:​bastinat0r|Basti]]
 +
 +=== mit einer Webcam und einem QR-Code ===
 +  ? Ansprechpartner
 +  : [[user:​eriu|Michel]]
 +  * Links:
 +    * http://​www.jeremyblum.com/​portfolio/​libetech/​
 +    * https://​github.com/​sciguy14/​LibeTech-QR-Entry
 +    * https://​github.com/​sciguy14/​LibeTech-QR-WebSystem ​
 +
 +==== I3C-Bus ====
 +
 +Der I3C-Bus besteht aus 5 Leitungen:
 +  * SDA und SCL für I²C
 +  * einer Interrupt-Leitung INT
 +  * Versorgungsspannung 5V
 +  * Masse
 +
 +Für die Verbindung zwischen Geräten werden Steckverbinder oder [[http://​www.reichelt.de/​index.html?​ARTICLE=11171|5-polige DIN-Buchsen (Reichelt MAB 5)]] verwendet.
 +
 +=== Belegung Steckverbinder ===
 +  - SDA
 +  - SCL
 +  - INT
 +  - Vcc (5V)
 +  - GND
 +
 +=== Belegung DIN-Buchse ===
 +
 +{{:​projects:​2014:​din_buchse.gif?​200|}}
 +(Draufsicht)
 +
 +  - GND
 +  - INT
 +  - SDA
 +  - Vcc (5V)
 +  - SCL
 +
 +==== I3C-Kommandos ====
 +
 +Wenn kein data-Wert spezifiziert wird, ist der Parameter nicht relevant.
 +Wenn kein output spezifiziert wird, bedeutet 1 Erfolg. 0 bedeutet immer Fehler einen Parity-Fehler und sollte zum erneuten Aufruf führen.
 +
 +=== Device 0x20: Ampel ===
 +
 +  #define CMD_I3C_RESET 0x00
 +  #define CMD_GETLIGHT ​ 0x01
 +  #define CMD_SETLIGHT ​ 0x02
 +
 +  * I3C_RESET: Interrupt-Leitung zurücksetzen (sollte bei der Ampel derzeit nicht nötig sein)
 +  * GETLIGHT: Ampelstatus zurückliefern
 +  * SETLIGHT: Ampelstatus setzen
 +
 +  data (DDDD)
 +    1 bit blink-Status
 +    3 bit Farbe: 0=keine, 1=rot, 2=grün
 +
 +{{ :​projects:​2014:​ampel_gruen.jpg?​direct&​400 |}} {{ :​projects:​2014:​ampel_rot.jpg?​direct&​400 |}}
 +
 +=== Device 0x21: Controller Rollläden ===
 +
 +  #define CMD_ALL_STOP ​ 0x0
 +  #define CMD_STOP ​     0x1
 +  #define CMD_UP ​       0x2
 +  #define CMD_DOWN ​     0x3
 +
 +  * ALL_STOP: alle Rollläden stoppen
 +  * STOP: Rollladen aus //data// anhalten
 +  * UP: Rollladen aus //data// hochfahren
 +  * DOWN: Rollladen aus //data// herunterfahren
 +
 +//data// gibt jeweils die Nummer des Rollladens (0: fenster bastelbereich,​ 1: tür bastelbereich,​ 2: tür lounge, 3: fenster lounge) an
 +Ausgabe: 0 == fehler, 1 == erfolg
 +
 +{{ :​projects:​2014:​controller_rollladen_mit_pi.jpg?​direct&​400 |}}
 +
 +=== Device 0x22: Manuellsteuerung ===
 +
 +  #define CMD_RESET ​      0x00
 +  #define CMD_BEEP ​       0x01
 +  #define CMD_MANUAL_MODE 0x02
 +  #define CMD_GET_SWITCH ​ 0x03
 +  #define CMD_MANUAL_SW ​  0x05
 +
 +  * RESET: I3C-Interrupt-Status zurücksetzen
 +  * BEEP: Summer nach Muster aktivieren
 +    * data enthält das Bitmuster für die Aktivierung
 +  * MANUAL_MODE:​ LED-Anzeige setzen ​
 +    * data: 0 = aus, 1 = langsam blinken, 2 = schnell blinken, 3 = an
 +  * GET_SWITCH: Schalterstellung auslesen
 +    * data: Nummer des Schalters, korrespondierend zur Rollladen-Nummer
 +    * output: 1 = hoch, 2 = runter, 3 = neutral
 +  * MANUAL_SW: Status des Tasters setzen/​auslesen
 +    * data: 1 = Blockstatus löschen, 2 = Blockstatus setzen, sonst keine Änderung
 +    * output: 1 = Blockstatus gesetzt, 2 = Blockstatus gelöscht (Wert vor Manipulation)
 +
 +{{ :​projects:​2014:​rollladen_manuellsteuerung.jpg?​direct&​400 |}}
 +
 +=== Device 0x23: Tür-Controller ===
 +
 +  #define CMD_RESET ​      0x00
 +  #define CMD_OPEN ​       0x01
 +  #define CMD_CLOSE ​      0x02
 +  #define CMD_STATE ​      0x03
 +
 +  * RESET: Tür-Status zurücksetzen,​ inklusive I3C-Interrupt
 +  * OPEN: Tür öffnen
 +  * CLOSE: Tür schließen
 +  * STATE: Tür-Status zurückliefern. Löscht auch den I3C-Interrupt
 +    * output enthält Bitmaske: ​
 +
 +  Input Status Byte (ISB)
 +  ​
 +   ​+-----+----+----+----+----+----+----+
 +   | 7-6 | 5  | 4  | 3  | 2  | 1  | 0  |
 +   | res | GB | RB | DC | LO | FC | FO |
 +   ​+-----+----+----+----+----+----+----+
 +  ​
 +   GB Green Button active (Force-open door)
 +   RB Red Button active (Force-close door)
 +   DO Door Open
 +   LC Lock Closed
 +   FC Force Close
 +   FO Force Open
 +
 +  * Bit-Bedeutung
 +    * DO: Tür steht offen (1) oder ist geschlossen (0)
 +    * LC: Schloss verriegelt (1) / offen (0)
 +    * FC: Force Close – Signalleitung "​Verriegeln"​ ist aktiv
 +    * FO: Force Open – Signalleitung "​Öffnen"​ ist aktiv
 +    * RB, GB sind die beiden Buttons (rot/grün) an der Tür
 +
 +{{ :​projects:​2014:​tuercontroller_buttons.jpg?​direct&​400 |}}
 +{{ :​projects:​2014:​tuermechanik_1.jpg?​direct&​400 |}}
 +{{ :​projects:​2014:​tuermechanik_2.jpg?​direct&​400 |}}
 +
 +=== Device 0x24: SpaceStatus-Switch ===
 +
 +  #define CMD_RESET ​       0x00
 +  #define CMD_GETSTATE ​    0x01
 +  #define CMD_SETSTATE ​    0x02
 +
 +  * RESET: Tür-Status zurücksetzen,​ inklusive I3C-Interrupt
 +  * GETSTATE: Aktivierten SpaceStatus zurückgeben (1 closed, 2 open, 3 unbekannt)
 +  * SETSTATE: Setzt einen SpaceStatus (verhindert Notifications über Änderungen,​ wenn der eig. Status schon angepasst ist)
 +
 +===== Ideen =====
 +  * USV
 +    * https://​hackaday.com/​2016/​11/​26/​diying-a-raspberry-pi-power-bank/​
projects/2014/gatekeeper.txt · Zuletzt geändert: 2018-06-03 00:44 von tux