forked from fritob/Camper-Monitor
README aktualisieren: Demo-Modus, Votronic-Quelle, keine persönlichen Pfade
* Demo-Modus-Abschnitt an den tatsächlichen Code angeglichen: Schalter in den Einstellungen (für lokal installierte Builds ohne Xcode) und Umgebungsvariable, beide dokumentiert. * Quelle für den Votronic-Solarregler ergänzt (syssi/esphome-votronic), eigener Abschnitt analog zu Kühlbox/WattCycle. * Persönlichen Pfad aus der Bauanleitung entfernt (open VanControl.xcodeproj statt eines lokalen Nutzerpfads); Beispiel-Bundle-ID im Demo-Modus-Befehl durch Platzhalter ersetzt. Zusätzlich: Symbolliste für Fahrzeugprofile auf Wunsch exakt auf die aus solar-integration zurückgesetzt (car, car.side, suv.side, truck.pickup.side, box.truck, bus), statt sie mit dev_watchs Liste zusammenzuführen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
eed8f33e30
commit
8e5ee6927e
@@ -38,7 +38,7 @@ liegen als `firmware/vanalign/esp32_ble_solar.yaml` im selben Ordner.
|
||||
## Bauen und installieren
|
||||
|
||||
```bash
|
||||
open /Users/fritob/GIT/Camper-Management/VanControl.xcodeproj
|
||||
open VanControl.xcodeproj
|
||||
```
|
||||
|
||||
Dann in Xcode:
|
||||
@@ -177,6 +177,21 @@ sie mit, was einen Quervergleich zu Batterie und Solarregler erlaubt.
|
||||
Protokoll und Feldbelegung stammen aus
|
||||
[Gruni22/alpicool_ha_ble](https://github.com/Gruni22/alpicool_ha_ble).
|
||||
|
||||
### Votronic-Solarladeregler
|
||||
|
||||
Anders als der Victron-Regler hängt der Votronic-Regler nicht selbst am
|
||||
BLE-Advertising – er wird über eine eigene, unabhängige ESP32-Bridge
|
||||
ausgelesen (siehe `firmware/vanalign/esp32_ble_solar.yaml`). Die Bridge
|
||||
bewirbt ihren eigenen Dienst, wird beim Einrichten also automatisch erkannt
|
||||
und die Art vorbelegt, genau wie beim Neigungsmesser.
|
||||
|
||||
Die Bridge liest den Regler über dessen Displaylink-Port (UART) mit der
|
||||
externen ESPHome-Komponente
|
||||
[syssi/esphome-votronic](https://github.com/syssi/esphome-votronic) aus und
|
||||
stellt PV-Leistung, PV-Spannung/-Strom, Batteriespannung, Reglertemperatur
|
||||
sowie Lade- und Reglerstatus über eigene Charakteristiken bereit – reine
|
||||
Lesewerte, im Takt abgefragt wie beim Neigungsmesser.
|
||||
|
||||
### Nivellierung
|
||||
|
||||
Der Neigungsmesser [VanAlign Pro](https://github.com/) ist ein ESP32 mit
|
||||
@@ -414,14 +429,31 @@ eingerichtet wurden, wandern beim Update automatisch ins erste Profil.
|
||||
|
||||
## Ohne Fahrzeug ansehen
|
||||
|
||||
Ein Demo-Modus füllt die App mit erfundenen Werten, damit sich die Ansichten
|
||||
ohne Bluetooth prüfen lassen. In Xcode unter *Product → Scheme → Edit Scheme →
|
||||
Run → Arguments* die Umgebungsvariable `CAMPER_DEMO` auf `1` setzen. Er greift
|
||||
nur in Debug-Builds.
|
||||
Ein Demo-Modus füllt die App mit erfundenen Fahrzeugen und Messwerten, damit
|
||||
sich die Ansichten ohne Bluetooth prüfen lassen. Nur in Debug-Builds, auf zwei
|
||||
Wegen einzuschalten:
|
||||
|
||||
Die Watch-App kennt denselben Schalter und braucht dann kein iPhone: Im Schema
|
||||
`VanControlWatch` dieselbe Variable setzen. Die Neigung wandert dort
|
||||
langsam hin und her, sonst hätte der Ausrichtungs-Assistent nichts zu zeigen.
|
||||
* **Schalter in den Einstellungen** (*Einstellungen → Entwicklung →
|
||||
Demo-Modus*) – der Weg für einen lokal installierten Build ohne
|
||||
Xcode-Verbindung, etwa auf dem eigenen iPhone. Wirkt erst nach einem
|
||||
Neustart der App (im App-Umschalter nach oben wischen, dann neu öffnen),
|
||||
weil `DeviceStore` und `BluetoothManager` den Stand nur beim Start lesen.
|
||||
* **Umgebungsvariable** `CAMPER_DEMO=1` – in Xcode unter *Product → Scheme →
|
||||
Edit Scheme → Run → Arguments*, oder im Simulator direkt:
|
||||
|
||||
```bash
|
||||
xcrun simctl launch --terminate-running-process booted <deine-bundle-id>
|
||||
# mit SIMCTL_CHILD_CAMPER_DEMO=1 davor
|
||||
```
|
||||
|
||||
Solange der Demo-Modus läuft, schreibt die App nichts in die echte
|
||||
Geräteliste – Änderungen an den erfundenen Fahrzeugen/Geräten verschwinden
|
||||
beim Ausschalten wieder.
|
||||
|
||||
Die Watch-App kennt nur den Umgebungsvariablen-Weg und braucht dann kein
|
||||
iPhone: Im Schema `VanControlWatch` dieselbe Variable setzen. Die Neigung
|
||||
wandert dort langsam hin und her, sonst hätte der Ausrichtungs-Assistent
|
||||
nichts zu zeigen.
|
||||
|
||||
## Protokolle prüfen
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ struct Profile: Identifiable, Codable, Hashable, Sendable {
|
||||
|
||||
init(id: UUID = UUID(),
|
||||
name: String,
|
||||
symbol: String = "box.truck",
|
||||
symbol: String = "suv.side",
|
||||
trackWidth: Double? = nil,
|
||||
wheelbase: Double? = nil) {
|
||||
self.id = id
|
||||
@@ -47,7 +47,6 @@ struct Profile: Identifiable, Codable, Hashable, Sendable {
|
||||
/// Alle Namen gegen NSImage(systemSymbolName:) geprüft – ein nicht
|
||||
/// existierendes Symbol lässt SwiftUI stillschweigend auf Text zurückfallen.
|
||||
static let symbols = [
|
||||
"box.truck", "truck.pickup.side", "bus", "bus.doubledecker",
|
||||
"car", "car.side", "tent", "sailboat", "house.lodge", "mountain.2",
|
||||
"car", "car.side", "suv.side", "truck.pickup.side", "box.truck", "bus",
|
||||
]
|
||||
}
|
||||
|
||||
@@ -145,7 +145,7 @@ private struct ProfileEditView: View {
|
||||
@Environment(\.dismiss) private var dismiss
|
||||
|
||||
@State private var name = ""
|
||||
@State private var symbol = "box.truck"
|
||||
@State private var symbol = "suv.side"
|
||||
@State private var trackWidth = ""
|
||||
@State private var wheelbase = ""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user