This commit is contained in:
marcinator_2 committed 2026-10-14 02:29:29 +02:00
1 parent 2856b7f8ad
commit bfecfd0640
6 files changed
+65 -14

No files matched your search

+7
View File
@@ -163,6 +163,10 @@ Versorgung und Sicherheit im Plan.
- `run.py` startet die FastAPI-WebUI nur auf `127.0.0.1`; Laptop-Zugriff - `run.py` startet die FastAPI-WebUI nur auf `127.0.0.1`; Laptop-Zugriff
erfolgt per SSH-Tunnel. `--demo` kennzeichnet ein synthetisches Bild. erfolgt per SSH-Tunnel. `--demo` kennzeichnet ein synthetisches Bild.
- Nutzer wünscht nun direkten Zugriff im Heimnetz. Manueller Start über
Uvicorn mit `--factory --host 0.0.0.0` ist in `SOFTWARE.md` beschrieben.
Aktuell ohne Login; keine öffentliche Internetfreigabe beauftragt.
`run.py` und systemd bleiben unverändert bei Loopback.
- Picamera2 liefert das MJPEG-Livebild; auf dem Entwicklungsrechner wurde - Picamera2 liefert das MJPEG-Livebild; auf dem Entwicklungsrechner wurde
nur der Demo-Feed geprüft, nicht die echte Pi-Kamera. nur der Demo-Feed geprüft, nicht die echte Pi-Kamera.
- Moduswahl und simulierte Sequenz sind implementiert. GPIO, automatische - Moduswahl und simulierte Sequenz sind implementiert. GPIO, automatische
@@ -172,6 +176,9 @@ Versorgung und Sicherheit im Plan.
Merkmalsvektoren für Auto-Profile mit 30-Tage-Frist speichern; die Kamera Merkmalsvektoren für Auto-Profile mit 30-Tage-Frist speichern; die Kamera
schreibt derzeit keine solchen Datensätze. schreibt derzeit keine solchen Datensätze.
- Laufzeitdaten unter `data/` nicht mit dem Uploadskript überschreiben. - Laufzeitdaten unter `data/` nicht mit dem Uploadskript überschreiben.
- Nutzer-Screenshot vom 14. Oktober 2026 bestätigt SSH-Zugang als
`marcinator_2` auf `raspi5wlan.local` und Projektdateien unter `~/halloween`.
Standgleichheit, Python-Einrichtung und laufende WebUI noch prüfen.
- Optionaler systemd-Autostart der WebUI wird mit `--install-service` beim - Optionaler systemd-Autostart der WebUI wird mit `--install-service` beim
Upload eingerichtet; auf einem echten Pi noch nicht geprüft. Upload eingerichtet; auf einem echten Pi noch nicht geprüft.
+20 -5
View File
@@ -137,7 +137,8 @@ ist für den zunächst vorgesehenen langsamen direkten Handhub nicht nötig.
2,4- und 5-GHz-WLAN (Wi-Fi 5/802.11ac). Empfang am Aufstellort und die 2,4- und 5-GHz-WLAN (Wi-Fi 5/802.11ac). Empfang am Aufstellort und die
tatsächliche Verbindung sind noch nicht geprüft. tatsächliche Verbindung sind noch nicht geprüft.
- Aufkleber am Pi zeigt `raspi5WLAN.local` und darunter `_2`; tatsächlicher - Aufkleber am Pi zeigt `raspi5WLAN.local` und darunter `_2`; tatsächlicher
Hostname und Erreichbarkeit sind noch nicht geprüft. SSH-Zugang über `raspi5wlan.local` als `marcinator_2` ist durch den
Nutzer-Screenshot vom 14. Oktober 2026 bestätigt.
- „2mini“ vorhanden: genaue Bezeichnung noch klären. - „2mini“ vorhanden: genaue Bezeichnung noch klären.
- Kamera: Raspberry Pi Camera Module 3 NoIR, anhand der Beschriftung auf dem - Kamera: Raspberry Pi Camera Module 3 NoIR, anhand der Beschriftung auf dem
Nutzerfoto identifiziert. Funktion noch nicht getestet; Display eventuell vorhanden. Nutzerfoto identifiziert. Funktion noch nicht getestet; Display eventuell vorhanden.
@@ -945,6 +946,17 @@ sind bekannt und der Betreiber kann jederzeit stoppen oder sanft schalten.
- [x] Projektregeln und erster Plan angelegt. - [x] Projektregeln und erster Plan angelegt.
- [x] Allgemeines Uploadskript und Anleitung für Projektdateien vorbereitet. - [x] Allgemeines Uploadskript und Anleitung für Projektdateien vorbereitet.
- [x] SSH-Zugang und Projektdateien unter `~/halloween` auf dem Pi durch
Nutzer-Screenshot vom 14. Oktober 2026 bestätigt.
- [ ] Pi-Dateien mit aktuellem lokalen Stand vergleichen; Python-Einrichtung
und Start der WebUI am Pi prüfen.
- [x] Nutzer-Screenshot vom 14. Oktober 2026 zeigt erfolgreichen Start von
`run.py` mit Uvicorn auf `127.0.0.1:8000` am Pi. Kamera und Browserzugriff
sind dadurch noch nicht bestätigt.
- [x] Alternativen manuellen Uvicorn-Start für den gewünschten direkten
Heimnetzzugriff dokumentiert; kein Code-Update am Pi nötig.
- [ ] Direkten Browserzugriff über `http://raspi5wlan.local:8000` bestätigen;
Zugangsschutz bleibt offen, keine Internetfreigabe beauftragt.
- [x] Erste Kamera-WebUI mit Demo-Feed und simulierter Steuerung erstellt; - [x] Erste Kamera-WebUI mit Demo-Feed und simulierter Steuerung erstellt;
fünf lokale Softwaretests bestanden. fünf lokale Softwaretests bestanden.
- [x] SQLite-Ereignisdatenbank mit Profilkennungen und WebUI-Verwaltung - [x] SQLite-Ereignisdatenbank mit Profilkennungen und WebUI-Verwaltung
@@ -962,10 +974,13 @@ sind bekannt und der Betreiber kann jederzeit stoppen oder sanft schalten.
- [ ] Plan abgestimmt und freigegeben. - [ ] Plan abgestimmt und freigegeben.
- [x] Softwareumsetzung begonnen; echte Kamera und Aktoren nicht geprüft. - [x] Softwareumsetzung begonnen; echte Kamera und Aktoren nicht geprüft.
Die WebUI ist lokal per ASGI und Demo-Bild geprüft. Pi-Kamera, SSH-Tunnel, Die WebUI ist lokal per ASGI und Demo-Bild geprüft. Der Nutzer-Screenshot
Netz, Verdrahtung, Aktoren und Außeneinsatz sind nicht praktisch verifiziert. vom 14. Oktober 2026 zeigt einen erfolgreichen SSH-Login auf `raspi5wlan.local`
Das Upload- und Autostartskript wurde nur lokal geprüft; eine Verbindung zum als `marcinator_2` und Projektdateien unter `~/halloween`. Übertragungsmethode,
Pi, die Unit-Installation und ein Neustart wurden noch nicht getestet. Zeitpunkt und Standgleichheit sind offen. Pi-Kamera, WebUI auf dem Pi,
SSH-Tunnel, Verdrahtung, Aktoren und Außeneinsatz sind nicht praktisch
verifiziert. Das Upload- und Autostartskript wurde nur lokal geprüft;
Unit-Installation und Neustart am Pi wurden noch nicht getestet.
Einkaufslisten mit konkreten Modellen folgen nach Phase 1. Einkaufslisten mit konkreten Modellen folgen nach Phase 1.
Gitea-Prüfung am 14. Oktober 2026: Instanz mit aktivierter TLS-Prüfung und Gitea-Prüfung am 14. Oktober 2026: Instanz mit aktivierter TLS-Prüfung und
+3 -2
View File
@@ -19,8 +19,9 @@ python3 -m venv .venv
``` ```
Danach `http://127.0.0.1:8000` öffnen. Das Bild ist synthetisch und als Danach `http://127.0.0.1:8000` öffnen. Das Bild ist synthetisch und als
Demo gekennzeichnet. Die WebUI bindet ausschließlich an `127.0.0.1`. Demo gekennzeichnet. `run.py` bindet ausschließlich an `127.0.0.1`.
Für den Zugriff auf einen Pi ist ein SSH-Tunnel vorgesehen. Für den Zugriff auf einen Pi ist ein SSH-Tunnel vorgesehen; der alternative
manuelle Start für direkten Heimnetzzugriff steht in [SOFTWARE.md](SOFTWARE.md).
## Dokumentation ## Dokumentation
+17
View File
@@ -59,6 +59,23 @@ ein Schlüssel ist nicht nötig. Ist Port 8000 auf dem Laptop belegt, links
vom ersten Doppelpunkt einen anderen freien Port wählen; rechts bleibt der vom ersten Doppelpunkt einen anderen freien Port wählen; rechts bleibt der
Pi-Port 8000, solange `run.py` dort mit dem Standardport läuft. Pi-Port 8000, solange `run.py` dort mit dem Standardport läuft.
### Direkt im Heimnetz ansehen
Auf Nutzerwunsch ist für den aktuellen Test auch direkter Zugriff im Heimnetz
vorgesehen. Dafür auf dem Pi den laufenden Server mit `Strg+C` beenden und
im Ordner `~/halloween` starten:
```bash
.venv/bin/python -m uvicorn halloween.web:create_app --factory --host 0.0.0.0 --port 8000
```
Auf dem Laptop anschließend `http://raspi5wlan.local:8000` öffnen; kein
SSH-Tunnel nötig. `0.0.0.0` ist die Bind-Adresse, keine Browseradresse.
Die WebUI hat noch keinen Login: Geräte im erreichbaren Heimnetz können
Kamera und Bedienoberfläche nutzen. Eine öffentliche Internetfreigabe ist
damit nicht beauftragt. Direkter Browserzugriff im Heimnetz ist noch nicht
bestätigt. `run.py` und der bisherige systemd-Dienst bleiben bei Loopback.
## Ohne Kamera testen ## Ohne Kamera testen
Auf einem Rechner mit den Paketen aus `requirements.txt`: Auf einem Rechner mit den Paketen aus `requirements.txt`:
+12 -5
View File
@@ -2,9 +2,10 @@
Das Skript `tools/upload_to_pi.sh` kopiert den gewählten lokalen Ordner per Das Skript `tools/upload_to_pi.sh` kopiert den gewählten lokalen Ordner per
SSH und `rsync` auf **einen** Pi. Ohne `--source` ist das Projektverzeichnis SSH und `rsync` auf **einen** Pi. Ohne `--source` ist das Projektverzeichnis
die Quelle. Es löscht keine Dateien auf dem Pi. Die Pi-Adresse, der Benutzer die Quelle. Es löscht keine Dateien auf dem Pi. Benutzer, Host und absoluter
und der Zielpfad sind noch nicht am Gerät geprüft und werden beim Aufruf Zielpfad werden beim Aufruf angegeben. Der Nutzer-Screenshot vom 14. Oktober
angegeben. 2026 zeigt einen erfolgreichen SSH-Login als `marcinator_2` auf
`raspi5wlan.local` und Projektdateien unter `~/halloween`.
## Voraussetzungen ## Voraussetzungen
@@ -62,5 +63,11 @@ keine alten Dateien auf dem Pi. Zugangsdaten und andere Geheimnisse gehören
nicht in den Quellordner. Für zwei Pis den Upload mit den jeweils geprüften nicht in den Quellordner. Für zwei Pis den Upload mit den jeweils geprüften
Zielwerten separat ausführen. Zielwerten separat ausführen.
Es wurde bisher keine Verbindung zu einem Pi, keine Übertragung und keine ## Bestätigter Stand
Installation der systemd-Unit am Gerät geprüft.
Der Nutzer-Screenshot vom 14. Oktober 2026 bestätigt SSH-Zugang und vorhandene
Projektdateien auf dem Pi: unter anderem `run.py`, `halloween/`, `tools/`,
`tests/` und die Requirements-Dateien. Zeitpunkt und Methode der bisherigen
Übertragung sowie die Übereinstimmung mit dem aktuellen lokalen Stand sind
offen. Installation der Python-Pakete, WebUI-Start, Kamera, SSH-Tunnel und
systemd-Autostart sind damit noch nicht bestätigt.
+6 -2
View File
@@ -11,6 +11,9 @@ Hier liegt die erste Pi-WebUI. `run.py` im Projektstamm startet sie.
kommen. Beschädigte Einstellungen schalten auf `aus`. kommen. Beschädigte Einstellungen schalten auf `aus`.
- `web.py` bietet WebUI und API; `index.html` ist die Oberfläche. `run.py` - `web.py` bietet WebUI und API; `index.html` ist die Oberfläche. `run.py`
bindet an `127.0.0.1`, Zugriff vom Laptop erfolgt per SSH-Tunnel. bindet an `127.0.0.1`, Zugriff vom Laptop erfolgt per SSH-Tunnel.
Für den vom Nutzer gewünschten direkten Heimnetzzugriff kann Uvicorn
`halloween.web:create_app` als Factory auf `0.0.0.0:8000` starten;
siehe `SOFTWARE.md`. `run.py` und systemd bleiben bei Loopback.
- `event_store.py` verwaltet `data/events.sqlite3`. Erfolgreiche manuelle - `event_store.py` verwaltet `data/events.sqlite3`. Erfolgreiche manuelle
Testauslösungen werden als Ereignisse gespeichert; Profile besitzen Testauslösungen werden als Ereignisse gespeichert; Profile besitzen
Kennungen und können Ereignissen zugeordnet werden. Profil-Löschen entfernt Kennungen und können Ereignissen zugeordnet werden. Profil-Löschen entfernt
@@ -22,8 +25,9 @@ Hier liegt die erste Pi-WebUI. `run.py` im Projektstamm startet sie.
noch nicht implementiert. Eine künftige Erkennung muss Unsicherheit und noch nicht implementiert. Eine künftige Erkennung muss Unsicherheit und
mögliche Fehlzuordnungen sichtbar machen und am echten Pi geprüft werden. mögliche Fehlzuordnungen sichtbar machen und am echten Pi geprüft werden.
- Der Header `X-Halloween-UI` ist nur eine einfache Schranke für - Der Header `X-Halloween-UI` ist nur eine einfache Schranke für
Schreibaufrufe, kein echter Zugangsschutz. Vor Betrieb mit anderen Schreibaufrufe, kein echter Zugangsschutz. Der direkte Heimnetzzugriff ist
Netzfreigaben Authentifizierung entwerfen und prüfen. auf Nutzerwunsch für den aktuellen Test ohne Login vorgesehen; öffentliche
Internetfreigabe ist nicht beauftragt. Zugangsschutz bleibt offen.
- Laufzeitdaten liegen standardmäßig unter `data/` und werden weder - Laufzeitdaten liegen standardmäßig unter `data/` und werden weder
hochgeladen noch in Git aufgenommen. hochgeladen noch in Git aufgenommen.
- Echte GPIO-/Aktorsteuerung erst nach geklärter Mechanik, Versorgung, - Echte GPIO-/Aktorsteuerung erst nach geklärter Mechanik, Versorgung,