Projekt
Open Source
SmartBeet wird vollständig Open Source. Noch ist das Repository privat, und die Lizenz ist nicht entschieden.
Auf dieser Seite
Was offen wird
Alles. Es gibt keinen Teil von SmartBeet, der geschlossen bleiben soll.
| Teil | Inhalt |
|---|---|
| Server | Backend, Oberfläche, Datenbankschema, Compose-Dateien |
| Firmware | für Hub und Module, mit allen Tests |
| Simulator | samt Physik, Elektrik und Fehlerkatalog |
| Protokoll | Topics, Nachrichten, Busprotokoll |
| Unterlagen | Plan, Verhalten von Hub und Modulen, Entscheidungen mit Begründung, Liste des Ungeprüften |
Aufbau des Repositories
Ein Monorepo mit pnpm.
| Ordner | Inhalt |
|---|---|
packages/protocol |
der gemeinsame Vertrag: Topics, Nachrichten, Konfiguration, Modulkatalog, Layout, Regelgraph |
apps/backend |
Geräteverwaltung, Messwerte, Regeln, Alarme, Mail, Push, Benutzer, Firmware |
apps/frontend |
React-App mit Live-Modell der Anlage |
apps/simulator |
ersetzt Hub und Module |
firmware |
C++ mit PlatformIO, Kern ohne Hardware testbar |
e2e |
End-to-End-Tests und Bildschirmfotos des Modells |
infra |
Broker, nginx, mDNS, ntfy, Skripte für Sicherung und Rechte |
docs |
Verhalten, Protokoll, Entscheidungen |
Unterlagen im Repository
| Datei | Inhalt |
|---|---|
PLAN.html |
Gesamtplan |
docs/HUB-VERHALTEN.md |
was Hub und Module tun. Firmware und Simulator setzen genau das um. |
docs/PROTOKOLL.md |
MQTT, CAN, Firmware-Updates |
docs/ENTSCHEIDUNGEN.md |
Entscheidungen mit Begründung, nummeriert |
docs/GLOSSAR.md |
Begriffe der Oberfläche und ihre Namen im Code |
firmware/ENTSCHEIDUNGEN.md |
Entscheidungen der Firmware |
firmware/UNGETESTET.md |
was nie auf echter Hardware lief, nach Risiko sortiert |
CHANGELOG.md |
Änderungen je Version |
Entscheidungen werden nicht stillschweigend getroffen. Jede bekommt eine Nummer, eine Begründung und die Nachteile, die sie mit sich bringt.
Arbeitsweise
- Zwei Branches. Entwickelt wird auf
dev.mainbekommt Änderungen nur per Merge. - Rot heißt: nicht fertig. Formatierung, Lint, Typen und Tests laufen vor jedem Abschluss.
- Verhalten an einer Stelle. Änderungen am Verhalten von Hub und Modulen kommen zuerst in das Dokument, dann in Firmware und Simulator, jeweils mit Tests.
- Keine Secrets im Repository. Geheimnisse entstehen beim ersten Start in einem eigenen Volume.
- Kein Dienst läuft als root.
- Alles bleibt lokal. Keine Cloud-Dienste, Schriften und Skripte liefert der eigene Server.
- Code auf Englisch, Texte auf Deutsch. Seit Version 0.3.0 sind Bezeichner, Kennungen, Topics, Routen, Kommentare und Logs englisch. Oberfläche, Mails und Unterlagen bleiben deutsch. Ein Glossar übersetzt verbindlich zwischen beiden.
Entwickeln
pnpm install
pnpm dev:up # Anlage mit Simulator und Mail-Fänger
pnpm check # Formatierung, Lint, Typen, Tests
pnpm e2e # End-to-End mit Playwright
pnpm firmware:test # Firmware-Tests im Container
pnpm firmware:build # Firmware für ESP32-S3 und ESP32-C3
Mitmachen
Solange Lizenz und Veröffentlichung offen sind, gibt es noch keinen Weg für Beiträge. Wenn es so weit ist, hilft am meisten, was das Projekt selbst nicht kann:
- Tests an echter Hardware. Die Liste des Ungeprüften nennt zu jedem Punkt, was beim ersten Test zu prüfen ist.
- Sensortreiber an echten Sensoren prüfen, vor allem die als unsicher markierten.
- Andere Anlagen: Gewächshaus, Terrarium, Anzuchtregal, offene Beete im Garten. Die Software kennt keine feste Anzahl, erprobt ist das nur im Simulator.
- Andere Hardware: Pumpen, Antriebe und Heizungen, die schon da sind. SmartBeet macht keine Annahmen über die Hardware, das muss sich an vielen Anlagen zeigen.
Diese Website
Die Website ist ein eigenes Repository und gehört nicht zum offenen Teil. Ihr Quelltext ist nicht öffentlich. Sie ist statisch, lädt nichts von fremden Servern und setzt keine Cookies. Das steht unter Datenschutz.