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
projekte:schlosssystem_2026 [2026-05-01 21:20] robinprojekte:schlosssystem_2026 [2026-05-08 22:47] (aktuell) – [MQTT] wene
Zeile 152: Zeile 152:
  
 # Kommando zum Öffnen an's Schloss schicken: # Kommando zum Öffnen an's Schloss schicken:
-mosquitto_pub -h wene-raspi-lock -t "main-door/lock" -m "open" -p 8883 --cafile path/to/ca.crt+mosquitto_pub -h wene-raspi-lock -t "main_lock/command/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-door/status" -r -m "opened" -p 8883 --cafile ca.crt+mosquitto_pub -h wene-raspi-lock -t "main_lock/status" -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>
Zeile 173: Zeile 173:
 <file - tls.conf> <file - tls.conf>
 listener 8883 listener 8883
-# allow_anonymous true 
 cafile /etc/mosquitto/ca_certificates/ca.crt cafile /etc/mosquitto/ca_certificates/ca.crt
 certfile /etc/mosquitto/certs/server.crt certfile /etc/mosquitto/certs/server.crt
Zeile 180: Zeile 179:
  
 <file - password.conf> <file - password.conf>
-password_file /run/mosquitto_password +password_file /etc/mosquitto/passwd
-password_file /etc/mosquitto/passwd+
 allow_anonymous false allow_anonymous false
 +</file>
 +
 +<file - acl.conf>
 +acl_file /etc/mosquitto/acl
 </file> </file>
  
Zeile 191: Zeile 193:
 <code bash> <code bash>
 # Passwortdatei anlegen mit dem ersten Benutzer namens "system" und dem Passwort "syspass" # Passwortdatei anlegen mit dem ersten Benutzer namens "system" und dem Passwort "syspass"
-sudo mosquitto_passwd -c -b /run/mosquitto_password system syspass+sudo mosquitto_passwd -c -b /etc/mosquitto/passwd system syspass
  
 # Den Eigentümer der Passwortdatei festlegen # Den Eigentümer der Passwortdatei festlegen
-sudo chown mosquitto:mosquitto /run/mosquitto_password+sudo chown mosquitto:mosquitto /etc/mosquitto/passwd
  
 # Weitere Einträge zur existierenden Datei hinzufügen # Weitere Einträge zur existierenden Datei hinzufügen
-sudo mosquitto_passwd -b /run/mosquitto_password user password+sudo mosquitto_passwd -b /etc/mosquitto/passwd towel_key password
 # Es wird eine Warnung angezeigt, dass die Datei nicht root gehört. Diese kann # Es wird eine Warnung angezeigt, dass die Datei nicht root gehört. Diese kann
 # ignoriert werden, da der mosquitto Service nicht als root ausgeführt wird. # ignoriert werden, da der mosquitto Service nicht als root ausgeführt wird.
Zeile 203: Zeile 205:
 </code> </code>
  
-Im obigen Beispiel wird die Passwortdatei unter ''/run'' angelegt. ''/run'' ist ein ''tmpfs'', also nur im Arbeitsspeicher vorhandenBei einem Neustart geht sie verlorenHier gehe ich davon aus, dass die Passwortdatei bei jedem Start neu von einem Skript aus der Datenbank des Schlosssystems generiert wird.+Über die Datei ''/etc/mosquitto/acl'' wird definiertwelche MQTT Themen von wem gelesen und von wem geschrieben werden könnenSomit können alle Schlüssel den gleichen MQTT Benutzer verwenden und ihr Geheimnis trotzdem als Thema veröffentlichenEs kann von anderen Benutzern nicht gelesen werden solange sie dieses Thema nur schreiben, aber nicht lesen können. 
 + 
 +<file - acl> 
 +user system 
 +topic read main_lock/command/# 
 +topic write main_lock/status/# 
 + 
 +user towel_key  
 +topic write main_lock/command/# 
 +topic read main_lock/status/# 
 +</file>
  
 === Python Library Paho === === Python Library Paho ===
projekte/schlosssystem_2026.txt · Zuletzt geändert: von wene