Files
grossanzeige/deploy.sh
T
admin 0a893d0684 Helligkeit: zwei Werte und eine Schwelle, zur Laufzeit aenderbar
Die vier abgestuften Helligkeiten des alten MSP430-Programms (5/15/50/100 %)
entfallen. Fuer die Sternwarte genuegt der Wechsel Tag/Nacht: unterhalb der
Schwelle laeuft die Anzeige mit dunkel_prozent, oberhalb mit hell_prozent.

Die Werte stehen nicht mehr im Code, sondern in settings.json auf dem Geraet --
Vorbereitung fuer die spaetere MQTT-Anbindung:

    settings.load()                        # mit Vorgaben aufgefuellt
    settings.update({"hell_prozent": 60})  # aendern und speichern

Vorgaben: dunkel 5 %, hell 50 %, Schwelle 1800, Hysterese 150. Die Schwelle liegt
mit Abstand zwischen den gemessenen Lagen (abgedeckt 0, Raumlicht 2453).

Beibehalten, weil die Messung vom 27.07. sie verlangt: der gleitende Mittelwert
und eine Hysterese um die Schwelle. Der ADC rauscht mit +/-32 (nach Mittelung,
1 Sigma) -- ohne Hysterese wuerde die Anzeige am Umschaltpunkt springen.

settings.py prueft jeden Wert beim Laden UND beim Schreiben auf Typ und Bereich.
Das ist der eigentliche Zweck: Mit MQTT kommen die Werte von aussen, und ein
Helligkeitswert von 500 % oder eine Schwelle von -1 wuerde die Anzeige sonst
unbrauchbar machen. Eine fehlende oder beschaedigte Datei faellt auf die Vorgaben
zurueck, ein einzelner kaputter Wert verwirft nur diesen -- ein Geraet in der
Sternwarte soll sich nicht an seiner Konfigurationsdatei aufhaengen.

settings.json wird von deploy.sh bewusst NICHT mitkopiert und steht in
.gitignore: Es ist Laufzeitzustand, kein Quellcode. Sonst waeren die
eingestellten Werte nach jedem Deployen weg.

Am Geraet bestaetigt: schreiben, wiederlesen, Controller uebernimmt die Werte,
beide Helligkeiten auf der Anzeige sichtbar. 119 Tests gruen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-27 16:34:47 +02:00

64 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
# Die Projektdateien auf den XIAO ESP32-C3 kopieren.
#
# ./deploy.sh # alle Dateien kopieren
# ./deploy.sh /dev/cu.usbmodem1101 # anderen Port erzwingen
#
# Braucht mpremote: pip install mpremote
# Danach am REPL (mpremote repl, mit Ctrl-] wieder raus):
#
# import run_esp32
# run_esp32.main()
set -e
PORT="${1:-auto}"
# Alles, was auf dem Geraet gebraucht wird. run_display.py, show_coords.py,
# mount_mock.py und die Tests bleiben auf dem Mac -- sie brauchen argparse
# bzw. threading.
#
# probe.py kommt mit aufs Geraet: Seit die Anzeige am ESP32 haengt und nicht mehr
# am Mac, laesst sich die Geometrie nur noch von dort ausmessen. Es benutzt zwar
# sys.argv, aber nur in main() -- die Messfunktionen ruft man am REPL direkt auf:
# import probe, display
# d = display.open_display(); probe.pitch(d, 6); d.close()
#
# settings.json steht bewusst NICHT in dieser Liste: Das ist Laufzeitzustand auf
# dem Geraet (Helligkeiten, Schwelle -- spaeter per MQTT verstellt). Wuerde
# deploy.sh sie mitkopieren, waeren diese Einstellungen nach jedem Deployen weg.
# Fehlt die Datei, gelten die Vorgaben aus settings.DEFAULTS.
FILES="
ticks.py
migra.py
config.py
settings.py
transport.py
display.py
coords.py
lx200.py
mount_client.py
brightness.py
displayloop.py
wifi.py
run_esp32.py
probe.py
"
if [ ! -f wifi_config.py ]; then
echo "wifi_config.py fehlt." >&2
echo " cp wifi_config_example.py wifi_config.py und ausfuellen" >&2
exit 1
fi
for f in $FILES wifi_config.py; do
echo "-> $f"
mpremote connect "$PORT" fs cp "$f" ":$f"
done
echo
echo "Fertig. Starten mit:"
echo " mpremote connect $PORT repl"
echo " >>> import run_esp32"
echo " >>> run_esp32.main()"