Benutzer-Werkzeuge

Webseiten-Werkzeuge


infrastruktur:portal300

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
infrastruktur:portal300 [2022-06-12 12:26] – Dokumentation letzte Sitzung sowie Definition der MQTT-Nachrichten xqinfrastruktur:portal300 [2024-03-25 21:56] (aktuell) chris
Zeile 1: Zeile 1:
-====== Portal 300 ======+====== Portal 300 | P300 ======
 {{tag> software hardware infrastructure computing networking shackoperations electronics }} {{tag> software hardware infrastructure computing networking shackoperations electronics }}
 +
 +===== Handbuch ===== 
 +
 +==== tl;dr ====
 +
 +  * WLAN: ''Portal-Dev'' (später: ''portal'')
 +  * Aufschließen (Fronteingang): ''ssh open-front@portal.shackspace.de''
 +  * Aufschließen (Hintereingang): //nicht implementiert//
 +  * Abschließen: ''ssh close@portal.shackspace.de''
 +  * Statusabfrage: ''ssh status@portal.shackspace.de''
 +  * Statusabfrage (maschinenlesbar): ''ssh status@portal.shackspace.de simple-status''. Die möglichen Antworten stehen unten.
 +  * Alternative mit SSH command: Es kann jeder Benutzer auch als Befehl hinter einen anderen Benutzer geschrieben werden, hiermit können auch Apps wie [[https://f-droid.org/en/packages/com.example.trigger/|Trigger]] bedient werden. Beispiel:
 +    * ''ssh status@portal.shackspace.de open-front''
 +  * Türen
 +    * A: Die Holztüre an der Straße
 +    * B: Die Glastüre an der Straße
 +    * B2: Die innere Türe zum shackspace, an der Straße
 +    * C: Die Hintertüre auf dem Hof.
 +    * C2: Die innere Türe zum shackspace, Richtung Hof
 +  * shack-Zustände
 +    *  ''open'': shack ist aufgeschlossen und open for public
 +    *  ''locked'': Alle Türen sind abgeschlossen, shack ist zu.
 +    *  ''unlocked via b2'': Der shack ist aktuell nur über die Türe B2 betretbar.
 +    *  ''unlocked via c2'': Der shack ist aktuell nur über die Türe C2 betretbar.
 +    *  ''unobserved'': Die Sensoren haben noch keine ausreichenden Informationen für die Zustandserfassung geliefert.
  
 ===== Initial-Fragen aus U300 Haustechnik ===== ===== Initial-Fragen aus U300 Haustechnik =====
Zeile 20: Zeile 45:
 ===== Initialzustand Gebäudetechnik ===== ===== Initialzustand Gebäudetechnik =====
  
-{{ :infrastruktur:u300:plaene:u300-eg-plan_tueren_schluessel.gif?600 |}}+[[https://wiki.shackspace.de/infrastruktur/u300/plaene|{{ :infrastruktur:u300:plaene:u300-eg-plan_tueren_schluessel.gif?600 }}]]
  
   * In Raum 04 ist die Gegensprechanlage S, um die Tür zu öffnen   * In Raum 04 ist die Gegensprechanlage S, um die Tür zu öffnen
Zeile 57: Zeile 82:
 ==== MQTT-Nachrichten ==== ==== MQTT-Nachrichten ====
  
-Die folgenden MQTT-Nachrichten sind im Portal-System definiert: +Die MQTT-Nachrichten sind nun [[https://github.com/shackspace/portal300/blob/master/firmware/common/portal300/include/portal300.h|in der Software]] an einer zentralen Stelle dokumentiert.
- +
-  * ''shackspace/portal/action/unlock_front_door'' \\ Nachricht ohne InhaltEntsperrt die Fronttüre B. +
-  * ''shackspace/portal/action/unlock_space'' \\ Nachricht ohne Inhalt. Aktiviert bei allen Türsteuerungen die ÖFFNEN-Sequenz. +
-  * ''shackspace/portal/action/lock_space'' \\ Nachricht ohne Inhalt. Aktiviert bei allen Türsteuerungen die SCHLIESSEN-Sequenz. +
-  * ''shackspace/portal/status/door_changed'' \\ Enthält eine Nachricht im Format ''${Tür-ID}:${opened|closed|locked}''. Wird geschickt, wenn eine Türe geöffnet, geschlossen oder verriegelt wird. +
-  * ''shackspace/portal/event/doorbell'' \\ Nachricht ohne InhaltEs wurde die Klingel an der Fronttüre B betätigt.+
  
 ===== Hardware & Elektronik ===== ===== Hardware & Elektronik =====
Zeile 92: Zeile 111:
     * ~400mA Stromaufnahme bei dauerhafter Motorbewegung (unbelastet)     * ~400mA Stromaufnahme bei dauerhafter Motorbewegung (unbelastet)
     * ~900mA Stromaufnahme bei Anfahren (unbelastet)     * ~900mA Stromaufnahme bei Anfahren (unbelastet)
 +    * ~1000mA Stromaufnahme bei Blockieren
   * Motor fährt beim Anschalten kurzzeitig zurück, und anschließend in die gewünschte Richtung   * Motor fährt beim Anschalten kurzzeitig zurück, und anschließend in die gewünschte Richtung
   * Die Motoren werden direkt mit der Batteriespannung versorgt   * Die Motoren werden direkt mit der Batteriespannung versorgt
Zeile 102: Zeile 122:
 Der Anschluss //BAT// erwartet zwischen **-** (GND) und **+** (VCC) 4.5 Volt. Hier ist zu klären, ob auch 5V Versorgungsspannung gehen.  Der Anschluss //BAT// erwartet zwischen **-** (GND) und **+** (VCC) 4.5 Volt. Hier ist zu klären, ob auch 5V Versorgungsspannung gehen. 
  
-===== Busch-Welcome =====+===== Türsprechanlage Busch-Welcome =====
  
   * Busch-/ABB-Welcome [[https://search.abb.com/library/Download.aspx?DocumentID=2CKA001373A1614&LanguageCode=de&DocumentPartId=&Action=Launch|Systemhandbuch]]   * Busch-/ABB-Welcome [[https://search.abb.com/library/Download.aspx?DocumentID=2CKA001373A1614&LanguageCode=de&DocumentPartId=&Action=Launch|Systemhandbuch]]
Zeile 109: Zeile 129:
     * Türöffner (Tö) wird mit internen 12V~ versorgt. Für direkte Ansteuerung wäre also ein Wechselkontakt zur Vermeidung von Kurzschlüssen nötig.     * Türöffner (Tö) wird mit internen 12V~ versorgt. Für direkte Ansteuerung wäre also ein Wechselkontakt zur Vermeidung von Kurzschlüssen nötig.
     * Tö wird für 1s bis 10s (einstellbar an der Zentrale) aktiviert. Die Tür kann geöffnet werden, solange es "summt".     * Tö wird für 1s bis 10s (einstellbar an der Zentrale) aktiviert. Die Tür kann geöffnet werden, solange es "summt".
 +    * siehe auch: [[infrastruktur/u300/tuersprechanlage| Türsprechanlage TS02]]
     * Innenbus OUT1 ist im Rack 1-UG-2-2, AMP-Panel "51-100", Port 21-25 aufgelegt und nach 1-UG-1-2 B022, B028, B046, und B089 gepatcht.     * Innenbus OUT1 ist im Rack 1-UG-2-2, AMP-Panel "51-100", Port 21-25 aufgelegt und nach 1-UG-1-2 B022, B028, B046, und B089 gepatcht.
     * Innenbus OUT2 ist unbeschaltet. Restleistung von ~30W sollte für einen RPi reichen :)     * Innenbus OUT2 ist unbeschaltet. Restleistung von ~30W sollte für einen RPi reichen :)
Zeile 179: Zeile 200:
  
 Beim Schließen können einfach beide Türen abgeschlossen werden, der shack kann aktuell sowieso nur durch die Türen A1, anschließend A zuverlässig verlassen werden. C ist potentiell abgschlossen. Beim Schließen können einfach beide Türen abgeschlossen werden, der shack kann aktuell sowieso nur durch die Türen A1, anschließend A zuverlässig verlassen werden. C ist potentiell abgschlossen.
 +
 +===== Mechanik & Montage =====
 +
 +==== Anforderungen ====
 +
 +  * minimal invasiv im Hinblick auf die Mietsache
 +  * vollständig rückbaufähig
 +  * robust
 +  * mechanisch sachgerechter Aufbau
 +  * ohne Heissklebstoff, Klebeband, fliegende Leitungen o.ä. pfuschige Methoden
 +
 +==== Kabelführung ====
 +
 +  * Leitungen werden in Kabelkanälen geführt
 +  * um das Kabel zwischen Türe und Wand zu führen wird ein [[https://secure.effeff.de/index.php?key=produktkatalog&lang=de&c=effeff&ID=100542|Kabelübergang]] verwendet.
 +
 +==== Aufbau ====
 +
 +{{infrastruktur:portal300:p1090326-annotated.jpg?600}}
 +
 +**Legende**
 +  * SWITCH01 - koppelt die Komponenten des Portal-LANs
 +    * APU
 +    * ESP32 "Control"
 +    * PoE-Injector #2
 +    * PoE-Injector #3
 +  * APU
 +    * WLAN-Accesspoint für SSID "Portal-Dev"
 +    * Zentrale Steuerung für
 +      * ESP32 Schloßantrieb Türe B2
 +      * ESP32 Schloßantrieb Türe C2
 +      * ESP32 "Control"
 +      * ESP32 "Status"
 +   * ESP32 "Control"
 +     * Interface zum Terminal ("Telefon")
 +     * Detektiert das Klingelsignal am Lautsprecher des Terminals
 +     * Löst den Türöffnerkontakt am Terminal aus
 +   * ESP32 "Status"
 +     * empfängt den Zustand des Portals via USB serial 
 +     * übermittelt den Zustand des Portals über das shack-WLAN zum Internetservice
 +   * "Telefon"
 +     * Terminal zur Türsprechanlage
 +     * Wird vom ESP32 "Control" gesteuert und überwacht
 +   * INJ#2
 +     * PoE-Injektor #2 für ESP32 Schloßantrieb Türe C2
 +   * INJ#3
 +     * Pseudo-PoE-Injektor #3 für ESP32 Schloßantrieb Türe B2 
 +
 +**Trägersystem**\\
 +
 +{{infrastruktur:portal300:p1090329-crop.jpg?200}} \\
 +{{infrastruktur:portal300:p1090328-crop.jpg?100}}
 +{{infrastruktur:portal300:p1090327-annotated-crop.jpg?200}}
 +
 +  * Die komplette OSB-Platte hängt mit einer Keilschiene an einem Querträger
 +  * Um die OSB-Platte abnehmen zu können müssen 5 Leitungen abgezogen werden:
 +    * Schukostecker der 6-fach Steckdosenleiste abziehen (roter Halbkreis)
 +    * RJ45-Stecker aus der Buchse "Tö" abziehen (roter Kreis)
 +    * RJ45-Stecker aus der Buchse "BUS" abziehen (roter Kreis)
 +    * RJ45-Stecker von Leitung "B2" von "INJ#3" abziehen (roter Kreis)
 +    * RJ45-Stecker von Leitung "C2" von "INJ#2" abziehen (roter Kreis)
 +  * Jetzt kann die Platte ca. 1.5cm angehoben, in Richtung Wand verschoben und dann abgenommen werden.
 +  * Das Terminal ("Telefon"), der ESP32 "Control" und die Wanddose "BUS" / "Tö" sind als Baugruppe auf einer Sperrholzplatte montiert und können mit zwei Schrauben (grüne Kreise) en bloc von der OSB-Platte getrennt werden.
  
 ===== Arbeitssitzungen ===== ===== Arbeitssitzungen =====
Zeile 225: Zeile 309:
   * Es wurde die Ablauf-Sequenz für ÖFFNEN und SCHLIESSEN definiert und implementiert   * Es wurde die Ablauf-Sequenz für ÖFFNEN und SCHLIESSEN definiert und implementiert
   * Der ESP32 wurde erfolgreich mit der Sprechstelle verheiratet   * Der ESP32 wurde erfolgreich mit der Sprechstelle verheiratet
 +
 +==== 13.06.2022 ====
 +
 +Anwesende: xq, m1k3y
 +
 +  * Die APU wurde vorbereitet
 +    * WLAN, DHCP, DNS eingerichtet
 +    * MQTT-Server installiert
 +    * Experimente mit Captive Portal, es wird leider nicht so einfach, Android von gutem Verhalten zu überzeugen. Apple ist da gemütlicher
 +  * Ein neuer Key-Export-Prozess wurde definiert
 +  * Key-Export aus dem Byro wurde implementiert
 +  * ''authorized_keys'' erzeugen wurde implementiert
 +  * Signieren und Verifizieren der Signatur mit ''openssl'' wurde getestet
 +  * Neues Konzept für Türsteuerungen: Statt RPI wird nun ein ESP32 benutzt, SSH terminiert nur auf der APU
 +    * 4 weitere ESP32-Boards wurden bestellt
 +
 +==== 18.06.2022 ====
 +
 +Anwesende: xq, m1k3y, stefan
 +
 +  * Die Portal-Software wurde auf die APU deployed.
 +  * Es wurde ein Script zum automatischen Import eines Key-Exports entwickelt.
 +  * Umbau der beiden Software-Repositories in ein großes Monorepo.
 +  * Ein ESP wurde erfolgreich in die //Busch Welcome//-Interface integriert.
 +  * Es wurde eine Platine für die Motorsteuerung gelötet.
 +  * Motor-Steuerung wurde mechanisch reperiert, Freilauf funktioniert jetzt wieder zuverlässig.
 +  * Integrations-Versuch von Motorsteuerung, //Busch Welcome//-Interface sowie des Daemons.
 +  * Motor-Stromaufnahme wurde noch einmal mit besserem Messgerät verifiziert.
 +
 +Es wurde folgende Projektziele erreicht:
 +
 +  * **Die Fronttüre B kann nun per SSH geöffnet werden!**
 +  * **Die Fronttüre B kann nun per Klingel geöffnet werden, wenn der shack als //aufgeschlossen// gilt.**
 +
 +==== 2022-09-09 ====
 +Anwesende: xq, chris, jens, stefan
 +  * Montage des [[infrastruktur:portal300:traeger_fuer_tuerelektronik|Trägers für die Türelektronik]]
 +  * Montage des Trägers für den Magneten des Sensors zur Erkennung der Position des Türblatts und des Magneten selbst
 +
 +==== 2022-09-10 ====
 +Anwesende: xq, stefan, chris
 +
 +  * Einbau von Magneten & Hallsensoren in die [[infrastruktur:portal300:einsteckschlosssensorik|Einsteckschlösser]] zur Erkennung der Position der Schließriegel
 +
 +==== 2022-12-25 ====
 +Anwesend: c-mon
 +  * Usability-Verbesserung für legacy-user. Beim Login über open@portal.portal wird jetzt ein nützlicher Hinweis auf den neuen Login-Prozess angezeigt.
 +
 +==== 2022-12-25 ====
 +Anwesend: c-mon, chris
 +  * Usability-Verbesserung für legacy-user:
 +    * Zeichen am Wegesrand für die Kinder Israels.
 +      * User "open", für Legacy-Meldung:
 +        * in /etc/passwd: ''open:x:1007:1007::/home/open:/bin/false''
 +        * in /etc/group: ''open:x:1007:''
 +      * Meldung ausgeben, dass der User "open" nicht mehr besteht:
 +<file txt /etc/ssh/sshd_config.d/banner-open.conf>
 +# set explanatory message for legacy login user:
 +Match User open
 +        Banner /etc/ssh/banner-open
 +        PasswordAuthentication No
 +</file>
 +<file txt /etc/ssh/banner-open>
 +## Dear legacy-user,
 +## 
 +## login using the user "open" is no longer supported.
 +## Please log in with 
 +##     "open-front" 
 +## for opening the front door or 
 +##     "open-back"
 +## for opening the back door.
 +## 
 +## For more information read the documentation at https://wiki.shackspace.de/infrastruktur/portal300
 +## Farewell,
 +## open
 +</file>
 +    * damit als DNS-Name ''portal.portal'' UND ''portal.shackspace.de'' funktionieren:
 +      * in ''/etc/hosts'' eintragen:\\ ''192.168.77.1    portal.portal portal.shackspace.de''
 +    * ein Eintrag ''server=...'' in ''/etc/dnsmasq.conf'' ist nicht erforderlich.
 +
 +==== 2022-12-26 ====
 +Anwesend: chris
 +  
 +  
 +Zeitstempel in der shell-history eingefügt. Dazu in ''/root/.bashrc'' und ''/home/loginuser/.bashrc'' eingetragen: ''HISTTIMEFORMAT="%F %T "''. Klappt natürlich erst ab sofort, zurückliegende Einträge werden mit dem Modification Date von .bash_history gelistet. Wird i.L.d.Z herausrotieren...
 +
 +**2023-01-29**
 +  * Anwesend: Stefan, Andreas, chris
 +  * Montage eines Trägers oberhalb Türe B2
 +  * Montage der Komponenten APU, Switch, ESP32, Steckdosenleiste auf ein Board
 +  * Kabelzuführungen aus dem Schrank neben B2 in die Decke oberhalb B2
 +  * ToDo:
 +    * "Telefon" auf das Board montieren
 +    * Kabelverbindungen herstellen
 +    * Board in den Träger oberhalb B2 einhängen
 +
 +**2023-01-29**
 +  * Anwesend: Stefan, Karl, Raute, chris
 +  * Montage der Komponenten "Telefon", ESP32, RJ45-Buchsen auf ein Modulboard
 +  * Modulboard & Netzteile auf dem Haupt-Board montiert
 +  * Kabelverbindungen hergestellt
 +  * Board in den Träger oberhalb B2 eingehängt
 +  * Ergebnis:
 +    * die Portal-Steuerung ist jetzt komplett oberhalb B2 montiert
 +    * der Aufbau ist modular und kann für Wartung und Fehlersuche einfach abgebaut werden
 +
 +**2024-03-25**
 +  * Anwesend: chris
 +  * Montage und Anschluß des ABUS-Reedkontakts und des zugehörigen Magneten an Türe C2.
  
 ==== nächste Schritte ==== ==== nächste Schritte ====
  
-  * Material organisieren +  * <del>Umzug der Hardware in die Werkstatt</del> 
-    * 1 [[https://www.conrad.de/de/p/eqiva-142950a0-tuerschlossantrieb-ip20-bluetooth-faehig-1486674.html|Türschloßantrieb]] für Hintertür(C2)-Projekt organisieren +    * <del>Staubdichtes Gehäuse IP65 z.B. https://www.ekabel24.de/Schaltschraenke/Schaltschrank-ABS-Kunststoff-Leergehaeuse/mit-Sichttuer/339/Schaltschrank-ABS-300x400x170-mit-Sichttuer-IP65 beschaffen</del> 
-    * 3 Geldkassetten für die RaspberryPis organisieren +    * <del>Kabelweg für Ethernet in den Flur finden. Optionen:</del> 
-      * Geldkassette +      * <del>Kernbohrung im Flur, verlegung an der Kellerdecke</del> 
-      * USB-Durchreichung (B =A) ([[https://www.reichelt.de/rueckwand-verbinder-usb-b-stecker-ip68-px0848-b-p124609.html?|sowas]] oder ähnlich) +      * <del>durch Foyer/Decke</del> 
-      * Ethernet-Durchreichung ([[https://www.reichelt.de/cat-5e-verbinder-auf-pcb-px0839-90-p124592.html|sowas]] oder ähnlich) +      * <del>durch die Werkstatt-Decke (nicht klar, wie)</del> 
-      * Durchreichung für Motorboard und I/O-Board (potentiell auch RJ45-basiert?) +      * <del>via Starlab - da gibt's keine Schrankwände </del> 
-    RaspberryPi für Hintertür(C2) organisieren +  Statemachine der Firmware auf neues Modell umschreiben 
-  * Arbeitsgebiet: Fronttüre (B2) +  * Zweite Hardware fertig stellen 
-    Motorschloss-Bluetooth deaktivieren +     <del>Magnetsensor an der Türe anbringen</del> 
-    Motorschloss mit Strom versorgen +     Elektronik bespaßen 
-      Einfache Lösung: Kabel sauber auf Tür verlegen +     Verkabelung organisieren 
-      Fancy Lösung: Kontakte im Türrahmen montieren, sodass Motorschloss mit Strom versorgt wird, wenn Tür geschlossen. Türschließkontakt kann hiermit auch implementiert werden +  System-Reset via MQTT implementieren 
-    Adapter-Platine zwischen RaspberryPi und Motorschloss anlegen +  Debug-Interface implementieren 
-    * Türbolzen-Sensorik in Türschloss integrieren und Anschluss bereitstellen +    * Dazu auch: LEDs einbauen, die Zustände anzeigen, z.B. 
-  Arbeitsgebiet: Hintertüre (C2) +      Anliegen von Betriebsspannungen 
-    Materialorganisation abwarten +      Seriell in die Ansteuerung der Optokoppler 
-  * Arbeitsgebiet: Türöffner +  * Vorstands-Scripte fertigstellen 
-    * Software muss noch MQTT-Nachrichten für "Klingeln" verschicken +  * Portal-Box clean aufsetzen 
-    * Software muss noch "Türe öffnen"-Nachricht via MQTT weitergeben +  * Neue CA erzeugen und neue Keys deployen 
-    * Gerät muss an einer finalen Stelle montiert werden +
-  * Arbeitsgebiet: Netzwerk/Infrastruktur +
-    * Plätze für die Geräte (PI-B2, PI-C2, APU, Türöffner) finden +
-    * APU aufsetzen (macht m1k3y) +
-  * Arbeitsgebiet: Security +
-    * Geldkassetten für Montage vorbereiten (Kabeldurchführungen) +
-    * Montage-Möglichkeit für RPI schaffen (Distanzbolzen)+
infrastruktur/portal300.1655029569.txt.gz · Zuletzt geändert: 2022-06-12 12:26 von xq