Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekte:schlosssystem_2026

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
projekte:schlosssystem_2026 [2026-08-21 18:59] – [Spezifikationen] weneprojekte:schlosssystem_2026 [2026-09-18 22:13] (aktuell) – [MQTT] wene
Zeile 121: Zeile 121:
  
 <code> <code>
 +┌─────────────────────────┐                       ┌─────────────────┐
 +│ Authentifizierungsmodul │                       │ Schlossaktuator │
 +└┬────────────────────────┘                       └────────────────┬┘
 + │                                                  bind()         │ 
 + │                                                  listen()       │ 
 + │ connect()                                                       │ 
 + ├────────────────────────────────────────────────────────────────►│ 
 + │                                                  accept()       │ 
 + │                                                  send(state)    │ 
 + │◄────────────────────────────────────────────────────────────────┤ 
 + │ recv()                                                          │ 
 +                                                                     
 + │                  Aussenlicht wird eingeschaltet                 │ 
 +                                                    send(state)      
 + │◄────────────────────────────────────────────────────────────────┤ 
 + │ recv()                                                          │ 
 + │ Bereit, authentifizierungen entgegen zu nehmen                  │ 
 +                                                                     
 + │                Ein Benutzer löst ein Öffnen aus                 │ 
 +   send(command)                                                     
 + ├────────────────────────────────────────────────────────────────►│ 
 + │                                                  recv()         │ 
 + │                                                  Schloss öffnen │ 
 + │                                                  send(state)    │ 
 + │◄────────────────────────────────────────────────────────────────┤ 
 + │ recv()                                                          │ 
 + │                                                                 │ 
 +</code>
 +
 +Die Kommando- und Statusnachrichten sind ASCII Strings, die mit einem "line feed" (''\n'') enden.
 +
 +  * Bereitschaftszustand des Schlossaktuators - im Ruum42 ob Licht brennt, kann aber auch anders definiert werden: ''isReady:true'' / ''isReady:false''
 +  * Status des Schlosses: ''isOpen:true'' / ''isOpen:false''
 +  * Kommando zum öffnen und schliessen: ''command:open'' / ''command:close''
  
-work in progress... 
  
-Authentifizierungsmodul                          Schlossaktuator 
-          │                                             │        
-          │                                             │        
-          ├────────────────────────────────────────────►│        
-          │                                             │        
-          │                                             │        
-          │◄────────────────────────────────────────────┤        
-          │                                             │        
-          ├────────────────────────────────────────────►│        
-          │                                             │        
-          │                                             │        
-          │                                             │        
-          │                                             │        
-          │                                             │        
-          │                                             │        
-          │                                             │        
  
-</code> 
 ===== Anleitungen ===== ===== Anleitungen =====
  
Zeile 167: Zeile 183:
 # Den RasPi Timestamp anpassen für den Fall, dass es ohne Verbindung zum NTP Server startet # Den RasPi Timestamp anpassen für den Fall, dass es ohne Verbindung zum NTP Server startet
 sudo touch /var/lib/systemd/timesync/clock sudo touch /var/lib/systemd/timesync/clock
 +
 +# Existierendes Zertifikat erneuern
 +openssl x509 -x509toreq -in server.crt -out server.csr -signkey server.key 
 +openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -out server.crt -days 30
 +
 </code> </code>
 +
  
 ==== MQTT ==== ==== MQTT ====
Zeile 184: Zeile 206:
  
 # Kommando zum Öffnen an's Schloss schicken: # Kommando zum Öffnen an's Schloss schicken:
-mosquitto_pub -h wene-raspi-lock -t "main_lock/command/userName/userSecret" -m "open" -p 8883 --cafile path/to/ca.crt+mosquitto_pub -h wene-raspi-lock -t "command/main_lock/userName/userSecret" -m "open" -p 8883 --cafile path/to/ca.crt
  
 # Das Schloss schickt den Status "opened" zurück: # Das Schloss schickt den Status "opened" zurück:
-mosquitto_pub -h wene-raspi-lock -t "main_lock/status" -r -m "opened" -p 8883 --cafile ca.crt+mosquitto_pub -h wene-raspi-lock -t "status/main_lock" -r -m "opened" -p 8883 --cafile ca.crt
 # Das Flag '-r' steht für "retain" und bedeutet, dass dieser Wert auf dem Broker als Status gespeichert bleibt und neuen Clients bei Verbindung zugestellt wird. # Das Flag '-r' steht für "retain" und bedeutet, dass dieser Wert auf dem Broker als Status gespeichert bleibt und neuen Clients bei Verbindung zugestellt wird.
 </code> </code>
projekte/schlosssystem_2026.1787331582.txt.gz · Zuletzt geändert: von wene